PVM and MPI

Embed Size (px)

Citation preview

  • 7/27/2019 PVM and MPI

    1/35

    1

    O v e r v i e w o f P V M a n d M P I

    J a c k D o n g a r r a

    C o m p u t e r S c i e n c e D e p a r t m e n t

    U n i v e r s i t y o f T e n n e s s e e

    a n d

    M a t h e m a t i c a l S c i e n c e s S e c t i o n

    O a k R i d g e N a t i o n a l L a b o r a t o r y

    h t t p : w w w . n e t l i b . o r g u t k p e o p l e J a c k D o n g a r r a . h t m l

    2

    O u t l i n e

    M o t i v a t i o n f o r M P I

    T h e p r o c e s s t h a t p r o d u c e d M P I

    W h a t i s d i e r e n t a b o u t M P I ?

    t h e u s u a l " s e n d r e c e i v e

    t h e M P I s e n d r e c e i v e

    s i m p l e c o l l e c t i v e o p e r a t i o n s

    N e w i n M P I : N o t i n M P I

    S o m e s i m p l e c o m p l e t e e x a m p l e s , i n F o r t r a n a n d C

    C o m m u n i c a t i o n m o d e s , m o r e o n c o l l e c t i v e o p e r a t i o n s

    I m p l e m e n t a t i o n s t a t u s

    M P I C H - a f r e e , p o r t a b l e i m p l e m e n t a t i o n

    M P I r e s o u r c e s o n t h e N e t

    M P I - 2

    3

    W h a t i s S P M D ?

    2 S i n g l e P r o g r a m , M u l t i p l e D a t a

    2 S a m e p r o g r a m r u n s e v e r y w h e r e .

    2 R e s t r i c t i o n o n t h e g e n e r a l m e s s a g e - p a s s i n g m o d e l .

    2 S o m e v e n d o r s o n l y s u p p o r t S P M D p a r a l l e l p r o g r a m s .

    2 G e n e r a l m e s s a g e - p a s s i n g m o d e l c a n b e e m u l a t e d .

    4

    M e s s a g e s

    2 M e s s a g e s a r e p a c k e t s o f d a t a m o v i n g b e t w e e n s u b - p r o g r a m s .

    2 T h e m e s s a g e p a s s i n g s y s t e m h a s t o b e t o l d t h e

    f o l l o w i n g i n f o r m a t i o n :

    S e n d i n g p r o c e s s o r

    S o u r c e l o c a t i o n

    D a t a t y p e

    D a t a l e n g t h

    R e c e i v i n g p r o c e s s o r s

    D e s t i n a t i o n l o c a t i o n

    D e s t i n a t i o n s i z e

  • 7/27/2019 PVM and MPI

    2/35

    5

    A c c e s s

    2 A s u b - p r o g r a m n e e d s t o b e c o n n e c t e d t o a m e s s a g e p a s s i n g

    s y s t e m .

    2 A m e s s a g e p a s s i n g s y s t e m i s s i m i l a r t o :

    M a i l b o x

    P h o n e l i n e

    f a x m a c h i n e

    e t c .

    6

    P o i n t - t o - P o i n t C o m m u n i c a t i o n

    2 S i m p l e s t f o r m o f m e s s a g e p a s s i n g .

    2 O n e p r o c e s s s e n d s a m e s s a g e t o a n o t h e r

    2 D i e r e n t t y p e s o f p o i n t - t o p o i n t c o m m u n i c a t i o n

    7

    Synchronous Sends

    Provide information about the completion of themessage.

    "Beep"

    8

    Asynchronous Sends

    Only know when the message has left.

    ?

  • 7/27/2019 PVM and MPI

    3/35

    9

    B l o c k i n g O p e r a t i o n s

    2 R e l a t e t o w h e n t h e o p e r a t i o n h a s c o m p l e t e d .

    2 O n l y r e t u r n f r o m t h e s u b r o u t i n e c a l l w h e n t h e

    o p e r a t i o n h a s c o m p l e t e d .

    1 0

    NonBlocking OperationsReturn straight away and allow the subprogram tocontinue to perform other work. At some later timethe subprogram can TEST or WAIT for thecompletion of the nonblocking operation.

    1 1

    BarriersSynchronise processes.

    Barrier

    Barrier

    Barrier

    1 2

    BroadcastA onetomany communication.

  • 7/27/2019 PVM and MPI

    4/35

    1 3

    Reduction Operations

    Combine data from several processes to produce asingle result.

    STRIKE

    1 4

    P a r a l l e l i z a t i o n G e t t i n g S t a r t e d

    S t a r t i n g w i t h a l a r g e s e r i a l a p p l i c a t i o n

    L o o k a t t h e P h y s i c s

    I s p r o b l e m i n h e r e n t l y p a r a l l e l ?

    E x a m i n e l o o p s t r u c t u r e s

    A r e a n y i n d e p e n d e n t ? M o d e r a t e l y s o ?

    T o o l s l i k e F o r g e 9 0 c a n b e h e l p f u l

    L o o k f o r t h e c o r e l i n e a r a l g e b r a r o u t i n e s

    R e p l a c e w i t h p a r a l l e l i z e d v e r s i o n s

    A l r e a d y b e e n d o n e . c h e c k s u r v e y

    1 5

    P o p u l a r D i s t r i b u t e d P r o g r a m m i n g S c h e m e s

    M a s t e r S l a v e

    M a s t e r t a s k s t a r t s a l l s l a v e t a s k s a n d c o o r d i n a t e s t h e i r w o r k a n d I O

    S P M D h o s t l e s s

    S a m e p r o g r a m e x e c u t e s o n d i e r e n t p i e c e s o f t h e p r o b l e m

    F u n c t i o n a l

    S e v e r a l p r o g r a m s a r e w r i t t e n ; e a c h p e r f o r m s a d i e r e n t f u n c t i o n i n t h e

    a p p l i c a t i o n .

    1 6

    P a r a l l e l P r o g r a m m i n g C o n s i d e r a t i o n s

    G r a n u l a r i t y o f t a s k s

    K e y m e a s u r e i s c o m m u n i c a t i o n c o m p u t a t i o n r a t i o o f t h e m a c h i n e : N u m -

    b e r o f b y t e s s e n t d i v i d e d b y n u m b e r o f o p s p e r f o r m e d . L a r g e r g r a n u -

    l a r i t y g i v e s h i g h e r s p e e d u p s b u t o f t e n l o w e r p a r a l l e l i s m .

    N u m b e r o f m e s s a g e s

    D e s i r a b l e t o k e e p t h e n u m b e r o f m e s s a g e s l o w b u t d e p e n d i n g o n t h e a l -

    g o r i t h m i t c a n b e m o r e e c i e n t t o b r e a k l a r g e m e s s a g e s u p a n d p i p e l i n e

    t h e d a t a w h e n t h i s i n c r e a s e s p a r a l l e l i s m .

    F u n c t i o n a l v s . D a t a p a r a l l e l i s m

    W h i c h b e t t e r s u i t s t h e a p p l i c a t i o n ? P V M a l l o w s e i t h e r o r b o t h t o b e

    u s e d .

  • 7/27/2019 PVM and MPI

    5/35

    1 7

    N e t w o r k P r o g r a m m i n g C o n s i d e r a t i o n s

    M e s s a g e l a t e n c y

    N e t w o r k l a t e n c y c a n b e h i g h . A l g o r i t h m s s h o u l d b e d e s i g n e d t o a c c o u n t

    f o r t h i s f . e . s e n d d a t a b e f o r e i t i s n e e d e d .

    D i e r e n t M a c h i n e P o w e r s

    V i r t u a l m a c h i n e s m a y b e c o m p o s e d o f c o m p u t e r s w h o s e p e r f o r m a n c e

    v a r i e s o v e r o r d e r s o f m a g n i t u d e . A l g o r i t h m m u s t b e a b l e t o h a n d l e t h i s .

    F l u c t u a t i n g m a c h i n e a n d n e t w o r k l o a d s

    M u l t i p l e u s e r s a n d o t h e r c o m p e t i n g P V M t a s k s c a u s e t h e m a c h i n e a n d

    n e t w o r k l o a d s t o c h a n g e d y n a m i c a l l y . L o a d b a l a n c i n g i s i m p o r t a n t .

    1 8

    L o a d B a l a n c i n g M e t h o d s

    S t a t i c l o a d b a l a n c i n g

    P r o b l e m i s d i v i d e d u p a n d t a s k s a r e a s s i g n e d t o p r o c e s s o r s o n l y o n c e .

    T h e n u m b e r o r s i z e o f t a s k s m a y b e v a r i e d t o a c c o u n t f o r d i e r e n t

    c o m p u t a t i o n a l p o w e r s o f m a c h i n e s .

    D y n a m i c l o a d b a l a n c i n g b y p o o l o f t a s k s

    T y p i c a l l y u s e d w i t h m a s t e r s l a v e s c h e m e . T h e m a s t e r k e e p s a q u e u e

    o f t a s k s a n d s e n d s t h e m t o i d l e s l a v e s u n t i l t h e q u e u e i s e m p t y . F a s t e r

    m a c h i n e s e n d u p g e t t i n g m o r e t a s k s n a t u r a l l y . s e e x e p e x a m p l e i n

    P V M d i s t r i b u t i o n

    D y n a m i c l o a d b a l a n c i n g b y c o o r d i n a t i o n

    T y p i c a l l y u s e d i n S P M D s c h e m e . A l l t h e t a s k s s y n c h r o n i z e a n d r e d i s -

    t r i b u t e t h e i r w o r k e i t h e r a t x e d t i m e s o r i f s o m e c o n d i t i o n o c c u r s f . e .

    l o a d i m b a l a n c e e x c e e d s s o m e l i m i t

    1 9

    C o m m u n i c a t i o n T i p s

    L i m i t s i z e , n u m b e r o f o u t s t a n d i n g m e s s a g e s

    C a n l o a d i m b a l a n c e c a u s e t o o m a n y o u t s t a n d i n g m e s s a g e s ?

    M a y h a v e t o s e n d v e r y l a r g e d a t a i n p a r t s

    SendingTask

    Pvmd

    ReceivingTask

    C o m p l e x c o m m u n i c a t i o n p a t t e r n s

    N e t w o r k i s d e a d l o c k - f r e e , s h o u l d n ' t h a n g

    S t i l l h a v e t o c o n s i d e r

    C o r r e c t d a t a d i s t r i b u t i o n

    B o t t l e n e c k s

    C o n s i d e r u s i n g a l i b r a r y

    S c a L A P A C K : L A P A C K f o r d i s t r i b u t e d - m e m o r y m a c h i n e s

    B L A C S : C o m m u n i c a t i o n p r i m i t i v e s

    O r i e n t e d t o w a r d s l i n e a r a l g e b r a

    M a t r i x d i s t r i b u t i o n w n o s e n d - r e c v

    U s e d b y S c a L A P A C K

    2 0

    B a g o f T a s k s

    C o m p o n e n t s

    J o b p o o l

    W o r k e r p o o l

    S c h e d u l e r

    State of each job

    Unstarted

    Running

    Finished

    Idle

    Busy

    A

    B

    AB

    State of each worker

    F i g u r e 1 : B a g o f t a s k s s t a t e m a c h i n e s

    P o s s i b l e i m p r o v e m e n t s

    A d j u s t s i z e o f j o b s

    T o s p e e d o f w o r k e r s

    T o t u r n a r o u n d t i m e g r a n u l a r i t y

    S t a r t b i g g e r j o b s b e f o r e s m a l l e r o n e s

    A l l o w w o r k e r s t o c o m m u n i c a t e

    m o r e c o m p l e x s c h e d u l i n g

  • 7/27/2019 PVM and MPI

    6/35

    2 1

    P V M I s

    P V M i s a s o f t w a r e p a c k a g e t h a t a l l o w s a c o l l e c t i o n o f s e r i a l , p a r a l l e l a n d

    v e c t o r c o m p u t e r s o n a n e t w o r k t o b e m a n a g e d a s o n e l a r g e c o m p u t i n g

    r e s o u r c e .

    P o o r m a n ' s s u p e r c o m p u t e r

    H i g h p e r f o r m a n c e f r o m n e t w o r k o f w o r k s t a t i o n s

    O - h o u r s c r u n c h i n g

    M e t a c o m p u t e r l i n k i n g m u l t i p l e s u p e r c o m p u t e r s

    V e r y h i g h p e r f o r m a n c e

    C o m p u t i n g e l e m e n t s a d a p t e d t o s u b p r o b l e m s

    V i s u a l i z a t i o n

    E d u c a t i o n a l t o o l

    S i m p l e t o i n s t a l l

    S i m p l e t o l e a r n

    A v a i l a b l e

    C a n b e m o d i e d

    2 2

    P h y s i c a l a n d L o g i c a l V i e w s o f P V M

    Pvmd (host)

    Multiprocessorhost

    Tasks

    Console(s)

    IP Network (routers, bridges, ...)

    Host

    Physical

    Logical

    2 3

    P a r t s o f t h e P V M S y s t e m

    P V M d a e m o n p v m d

    O n e m a n a g e s e a c h h o s t o f v i r t u a l m a c h i n e

    M a i n l y a m e s s a g e r o u t e r , a l s o h a s k e r n e l - l i k e f u n c t i o n s

    H a s m e s s a g e e n t r y p o i n t s w h e r e t a s k s r e q u e s t s e r v i c e

    I n t e r - h o s t p o i n t o f c o n t a c t

    A u t h e n t i c a t i o n

    C r e a t e s p r o c e s s e s

    C o l l e c t s o u t p u t p r i n t e d b y p r o c e s s e s

    F a u l t d e t e c t i o n o f p r o c e s s e s , n e t w o r k

    M o r e r o b u s t t h a n a p p l i c a t i o n c o m p o n e n t s

    I n t e r f a c e l i b r a r y l i b p v m

    L i n k e d w i t h e a c h a p p l i c a t i o n c o m p o n e n t

    1 . F u n c t i o n s t o c o m p o s e , s e n d , r e c e i v e m e s s a g e s

    2 . P V M s y s c a l l s t h a t s e n d r e q u e s t s t o p v m d

    M a c h i n e - d e p e n d e n t c o m m u n i c a t i o n p a r t c a n b e r e p l a c e d

    K e p t a s s i m p l e a s p o s s i b l e

    P V M C o n s o l e

    I n t e r a c t i v e c o n t r o l o f v i r t u a l m a c h i n e

    K i n d o f l i k e a s h e l l

    N o r m a l P V M t a s k , s e v e r a l c a n b e a t t a c h e d , t o a n y h o s t

    2 4

    P r o g r a m m i n g i n P V M

    A s i m p l e m e s s a g e - p a s s i n g e n v i r o n m e n t

    H o s t s , T a s k s , M e s s a g e s

    N o e n f o r c e d t o p o l o g y

    V i r t u a l m a c h i n e c a n b e c o m p o s e d o f a n y m i x o f m a c h i n e t y p e s

    P r o c e s s C o n t r o l

    T a s k s c a n b e s p a w n e d k i l l e d a n y w h e r e i n t h e v i r t u a l m a c h i n e

    C o m m u n i c a t i o n

    A n y t a s k c a n c o m m u n i c a t e w i t h a n y o t h e r

    D a t a c o n v e r s i o n i s h a n d l e d b y P V M

    D y n a m i c P r o c e s s G r o u p s

    T a s k s c a n j o i n l e a v e o n e o r m o r e g r o u p s a t a n y t i m e

    F a u l t T o l e r a n c e

    T a s k c a n r e q u e s t n o t i c a t i o n o f l o s t g a i n e d r e s o u r c e s

    U n d e r l y i n g o p e r a t i n g s y s t e m u s u a l l y U n i x i s v i s i b l e

    S u p p o r t s C , C + + a n d F o r t r a n

    C a n u s e o t h e r l a n g u a g e s m u s t b e a b l e t o l i n k w i t h C

  • 7/27/2019 PVM and MPI

    7/35

    2 5

    H e l l o s W o r l d

    P r o g r a m h e l l o 1 . c , t h e m a i n p r o g r a m :

    i n c l u d e s t d i o . h

    i n c l u d e " p v m 3 . h "

    m a i n

    i n t t i d ; * t i d o f c h i l d *

    c h a r b u f 1 0 0 ;

    p r i n t f " I ' m t x n " , p v m _ m y t i d ;

    p v m _ s p a w n " h e l l o 2 " , c h a r * * 0 , 0 , " " , 1 , & t i d ;

    p v m _ r e c v - 1 , - 1 ;

    p v m _ b u f i n f o c c , i n t * 0 , i n t * 0 , & t i d ;

    p v m _ u p k s t r b u f ;

    p r i n t f " M e s s a g e f r o m t x : s n " , t i d , b u f ;

    p v m _ e x i t ;

    e x i t 0 ;

    P r o g r a m h e l l o 2 . c , t h e s l a v e p r o g r a m :

    i n c l u d e " p v m 3 . h "

    m a i n

    i n t p t i d ; * t i d o f p a r e n t *

    c h a r b u f 1 0 0 ;

    p t i d = p v m _ p a r e n t ;

    s t r c p y b u f , " h e l l o , w o r l d f r o m " ;

    g e t h o s t n a m e b u f + s t r l e n b u f , 6 4 ;

    p v m _ i n i t s e n d P v m D a t a D e f a u l t ;

    p v m _ p k s t r b u f ;

    p v m _ s e n d p t i d , 1 ;

    p v m _ e x i t ;

    e x i t 0 ;

    2 6

    U n i q u e F e a t u r e s o f P V M

    S o f t w a r e i s h i g h l y p o r t a b l e

    A l l o w s f u l l y h e t e r o g e n e o u s v i r t u a l m a c h i n e h o s t s , n e t w o r k

    D y n a m i c p r o c e s s , m a c h i n e c o n g u r a t i o n

    S u p p o r t f o r f a u l t t o l e r a n t p r o g r a m s

    S y s t e m c a n b e c u s t o m i z e d

    L a r g e e x i s t i n g u s e r b a s e

    S o m e c o m p a r a b l e s y s t e m s

    P o r t a b l e m e s s a g e - p a s s i n g

    M P I

    p 4

    E x p r e s s

    P I C L

    O n e - o f - a - k i n d

    N X

    C M M D

    O t h e r t y p e s o f c o m m u n i c a t i o n

    A M

    L i n d a

    A l s o D O S s , L a n g u a g e s , . . .

    2 7

    P o r t a b i l i t y

    C o n g u r a t i o n s i n c l u d e

    8 0 3 4 8 6 B S D I , N e t B S D , F r e e B S D A l l i a n t F X 8

    8 0 3 4 8 6 L i n u x B B N B u t t e r y T C 2 0 0 0

    D E C A l p h a O S F - 1 , M i p s , u V A X C o n v e x C 2 , C S P P

    D G A v i i o n C r a y T - 3 D , Y M P , 2 , C 9 0 U n i c o s

    H P 6 8 0 0 0 , P A - R i s c E n c o r e M u l t i m a x

    I B M R S - 6 0 0 0 , R T F u j i t s u 7 8 0 U X P M

    M i p s I B M P o w e r - 4

    N e X T I n t e l P a r a g o n , i P S C 8 6 0 , i P S C 2

    S i l i c o n G r a p h i c s K e n d a l l S q u a r e

    S u n 3 , 4 x S u n O S , S o l a r i s M a s p a r

    N E C S X - 3

    S e q u e n t

    S t a r d e n t T i t a n

    T h i n k i n g M a c h i n e s C M - 2 , C M - 5

    V e r y p o r t a b l e a c r o s s U n i x m a c h i n e s , u s u a l l y j u s t p i c k o p t i o n s

    M u l t i p r o c e s s o r s :

    D i s t r i b u t e d - m e m o r y : T - 3 D , i P S C 8 6 0 , P a r a g o n , C M - 5 , S P - 2 M P I

    S h a r e d - m e m o r y : C o n v e x H P , S G I , A l p h a , S u n , K S R , S y m m e t r y

    S o u r c e c o d e l a r g e l y s h a r e d w i t h g e n e r i c 8 0

    P V M i s p o r t a b l e t o n o n - U n i x m a c h i n e s

    V M S p o r t h a s b e e n d o n e

    O S 2 p o r t h a s b e e n d o n e

    W i n d o w s N T p o r t i n p r o g r e s s

    P V M d i e r e n c e s a r e a l m o s t t r a n s p a r e n t t o p r o g r a m m e r

    S o m e o p t i o n s m a y n o t b e s u p p o r t e d

    P r o g r a m r u n s i n d i e r e n t e n v i r o n m e n t

    2 8

    H o w t o G e t P V M

    P V M h o m e p a g e U R L O a k R i d g e i s

    h t t p : w w w e p m o r n l g o v p v m p v m

    h o m e . h t m l

    P V M s o u r c e c o d e , u s e r ' s g u i d e , e x a m p l e s a n d r e l a t e d m a t e r i a l a r e p u b -

    l i s h e d o n N e t l i b , a s o f t w a r e r e p o s i t o r y w i t h s e v e r a l s i t e s a r o u n d t h e

    w o r l d .

    T o g e t s t a r t e d , s e n d e m a i l t o n e t l i b :

    m a i l n e t l i b @ o r n l . g o v

    S u b j e c t : s e n d i n d e x f r o m p v m 3

    A l i s t o f l e s a n d i n s t r u c t i o n s w i l l b e a u t o m a t i c a l l y m a i l e d b a c k

    U s i n g x n e t l i b : s e l e c t d i r e c t o r y p v m 3

    F T P : h o s t n e t l i b 2 . c s . u t k . e d u , l o g i n a n o n y m o u s , d i r e c t o r y p v m 3

    U R L : h t t p : w w w . n e t l i b . o r g p v m 3 i n d e x . h t m l

    B u g r e p o r t s , c o m m e n t s , q u e s t i o n s c a n b e m a i l e d t o :

    p v m @ m s r . e p m . o r n l . g o v

    U s e n e t n e w s g r o u p f o r d i s c u s s i o n a n d s u p p o r t :

    c o m p . p a r a l l e l . p v m

    B o o k :

    P V M : P a r a l l e l V i r t u a l M a c h i n e

    A U s e r s ' G u i d e a n d T u t o r i a l f o r N e t w o r k e d P a r a l l e l C o m p u t i n g

    M I T p r e s s 1 9 9 4 .

  • 7/27/2019 PVM and MPI

    8/35

    2 9

    I n s t a l l i n g P V M

    P a c k a g e r e q u i r e s a f e w M B o f d i s k + a f e w M B a r c h i t e c t u r e

    D o n ' t n e e d r o o t p r i v e l e g e

    L i b r a r i e s a n d e x e c u t a b l e s c a n b e s h a r e d b e t w e e n u s e r s

    P V M c h o o s e s m a c h i n e a r c h i t e c t u r e n a m e f o r y o u

    m o r e t h a n 6 0 c u r r e n t l y d e n e d

    E n v i r o n m e n t v a r i a b l e P V M

    R O O T p o i n t s t o i n s t a l l e d p a t h

    E . g . u s r l o c a l p v m 3 . 3 . 4 o r $ H O M E p v m 3

    I f y o u u s e c s h , a d d t o y o u r . c s h r c :

    s e t e n v P V M R O O T u s r l o c a l p v m 3

    I f y o u u s e s h o r k s h , a d d t o y o u r . p r o f i l e :

    P V M R O O T = u s r l o c a l p v m 3

    P V M

    D P A T H = $ P V M R O O T l i b p v m d

    e x p o r t P V M R O O T P V M D P A T H

    I m p o r t a n t d i r e c t o r i e s b e l o w $ P V M R O O T

    i n c l u d e H e a d e r l e s

    m a n M a n u a l p a g e s

    l i b S c r i p t s

    l i b A R C H S y s t e m e x e c u t a b l e s

    b i n A R C H S y s t e m t a s k s

    3 0

    B u i l d i n g P V M P a c k a g e

    S o f t w a r e c o m e s w i t h c o n g u r a t i o n s f o r m o s t U n i x m a c h i n e s

    I n s t a l l a t i o n i s e a s y

    A f t e r p a c k a g e i s e x t r a c t e d

    c d $ P V M

    R O O T

    m a k e

    S o f t w a r e a u t o m a t i c a l l y

    D e t e r m i n e s a r c h i t e c t u r e t y p e

    C r e a t e s n e c e s s a r y s u b d i r e c t o r i e s

    B u i l d s p v m d , c o n s o l e , l i b r a r i e s , g r o u p s e r v e r a n d l i b r a r y

    I n s t a l l s e x e c u t a b l e s a n d l i b r a r i e s i n l i b a n d b i n

    3 1

    S t a r t i n g P V M

    T h r e e w a y s t o s t a r t P V M

    p v m - d d e b u g m a s k - n h o s t n a m e h o s t l e

    P V M c o n s o l e s t a r t s p v m d , o r c o n n e c t s t o o n e a l r e a d y r u n n i n g

    x p v m

    G r a p h i c a l c o n s o l e , s a m e a s a b o v e

    p v m d - d d e b u g m a s k - n h o s t n a m e h o s t l e

    M a n u a l s t a r t , u s e d m a i n l y f o r d e b u g g i n g o r w h e n n e c e s s a r y t o e n t e r

    p a s s w o r d s

    S o m e c o m m o n e r r o r m e s s a g e s

    C a n ' t s t a r t p v m d

    C h e c k P V M

    R O O T i s s e t , . r h o s t s c o r r e c t , n o g a r b a g e i n . c s h r c

    C a n ' t c o n t a c t l o c a l d a e m o n

    P V M c r a s h e d p r e v i o u s l y ; s o c k e t l e l e f t o v e r

    V e r s i o n m i s m a t c h

    M i x e d v e r s i o n s o f P V M i n s t a l l e d o r s t a l e e x e c u t a b l e s

    N o s u c h h o s t

    C a n ' t r e s o l v e I P a d d r e s s

    D u p l i c a t e h o s t

    H o s t a l r e a d y i n v i r t u a l m a c h i n e o r s h a r e d t m p d i r e c t o r y

    f a i l e d t o s t a r t g r o u p s e r v e r

    G r o u p o p t i o n n o t b u i l t o r e p = n o t c o r r e c t

    s h m g e t : . . . N o s p a c e l e f t o n d e v i c e

    S t a l e s e g m e n t s l e f t f r o m c r a s h o r n o t e n o u g h a r e c o n g u r e d

    3 2

    X P V M

    G r a p h i c a l i n t e r f a c e f o r P V M

    P e r f o r m s c o n s o l e - l i k e f u n c t i o n s

    R e a l - t i m e g r a p h i c a l m o n i t o r w i t h

    V i e w o f v i r t u a l m a c h i n e c o n g u r a t i o n , a c t i v i t y

    S p a c e - t i m e p l o t o f t a s k s t a t u s

    H o s t u t i l i z a t i o n p l o t

    C a l l l e v e l d e b u g g e r , s h o w i n g l a s t l i b p v m c a l l b y e a c h t a s k

    W r i t e s S D D F f o r m a t t r a c e l e s

    C a n b e u s e d f o r p o s t - m o r t e m a n a l y s i s

    B u i l t o n t o p o f P V M u s i n g

    G r o u p l i b r a r y

    L i b p v m t r a c e s y s t e m

    O u t p u t c o l l e c t i o n s y s t e m

  • 7/27/2019 PVM and MPI

    9/35

    3 3

    P r o g r a m m i n g I n t e r f a c e

    A b o u t 8 0 f u n c t i o n s

    M e s s a g e b u e r m a n i p u l a t i o n C r e a t e , d e s t r o y b u e r s

    P a c k , u n p a c k d a t a

    M e s s a g e p a s s i n g S e n d , r e c e i v e

    M u l t i c a s t

    P r o c e s s c o n t r o l C r e a t e , d e s t r o y t a s k s

    Q u e r y t a s k t a b l e s

    F i n d o w n t i d , p a r e n t t i d

    D y n a m i c p r o c e s s g r o u p s W i t h o p t i o n a l g r o u p l i b r a r y

    J o i n , l e a v e g r o u p

    M a p g r o u p m e m b e r s ! t i d s

    B r o a d c a s t

    G l o b a l r e d u c e

    M a c h i n e c o n g u r a t i o n A d d , r e m o v e h o s t s

    Q u e r y h o s t s t a t u s

    S t a r t , h a l t v i r t u a l m a c h i n e

    M i s c e l l a n e o u s G e t , s e t o p t i o n s

    R e q u e s t n o t i c a t i o n

    R e g i s t e r s p e c i a l t a s k s

    G e t h o s t t i m e o f d a y c l o c k o s e t s

    3 4

    P r o c e s s C o n t r o l

    p v m s p a w n f i l e , a r g v , f l a g s , w h e r e , n t a s k , t i d s

    S t a r t n e w t a s k s

    P l a c e m e n t o p t i o n s

    P v m T a s k D e f a u l t R o u n d - r o b i n

    P v m T a s k H o s t N a m e d h o s t " . " i s l o c a l

    P v m T a s k A r c h N a m e d a r c h i t e c t u r e c l a s s

    O t h e r a g s

    P v m H o s t C o m p l C o m p l e m e n t s h o s t s e t

    P v m M p p F r o n t S t a r t o n M P P s e r v i c e n o d e

    P v m T a s k D e b u g E n a b l e d e b u g g i n g d b x

    P v m T a s k T r a c e E n a b l e t r a c i n g

    S p a w n c a n r e t u r n p a r t i a l s u c c e s s

    p v m m y t i d

    F i n d m y t a s k i d e n r o l l a s a t a s k

    p v m p a r e n t

    F i n d p a r e n t ' s t a s k i d

    p v m e x i t

    D i s c o n n e c t f r o m P V M

    p v m k i l l t i d

    T e r m i n a t e a n o t h e r P V M t a s k

    p v m p s t a t t i d

    Q u e r y s t a t u s o f a n o t h e r P V M t a s k

    3 5

    B a s i c P V M C o m m u n i c a t i o n

    T h r e e - s t e p s e n d m e t h o d

    p v m i n i t s e n d e n c o d i n g

    I n i t i a l i z e s e n d b u e r , c l e a r i n g c u r r e n t o n e

    E n c o d i n g c a n b e

    P v m D a t a D e f a u l t

    P v m D a t a R a w

    P v m D a t a I n P l a c e

    p v m p k t y p e d a t a , n u m i t e m s , s t r i d e

    P a c k b u e r w i t h v a r i o u s d a t a

    p v m s e n d d e s t , t a g

    p v m m c a s t d e s t s , c o u n t , t a g

    S e n d s b u e r t o o t h e r t a s k s , r e t u r n s w h e n s a f e t o c l e a r b u e r

    T o r e c e i v e

    p v m r e c v s o u r c e , t a g

    p v m n r e c v s o u r c e , t a g

    B l o c k i n g o r n o n - b l o c k i n g r e c e i v e

    p v m

    u p k t y p e d a t a , n u m i t e m s , s t r i d e

    U n p a c k m e s s a g e i n t o u s e r v a r i a b l e s

    C a n a l s o p v m

    p r o b e s o u r c e , t a g f o r a m e s s a g e

    A n o t h e r r e c e i v e p r i m i t i v e : p v m t r e c v s o u r c e , t a g , t i m e o u t

    E q u i v a l e n t t o p v m n r e c v i f t i m e o u t s e t t o z e r o

    E q u i v a l e n t t o p v m r e c v i f t i m e o u t s e t t o n u l l

    3 6

    H i g h e r P e r f o r m a n c e C o m m u n i c a t i o n

    T w o m a t c h e d c a l l s f o r h i g h - s p e e d l o w - l a t e n c y m e s s a g e s

    p v m

    p s e n d d e s t , t a g , d a t a , n u m i t e m s , d a t a t y p e

    p v m p r e c v s o u r c e , t a g , d a t a , n u m i t e m s , d a t a t y p e ,

    a s o u r c e , a t a g , a l e n g t h

    P a c k a n d s e n d a c o n t i g u o u s , s i n g l e - t y p e d d a t a b u e r

    A s f a s t a s n a t i v e c a l l s o n m u l t i p r o c e s s o r m a c h i n e s

  • 7/27/2019 PVM and MPI

    10/35

    3 7

    C o l l e c t i v e C o m m u n i c a t i o n

    C o l l e c t i v e f u n c t i o n s o p e r a t e a c r o s s a l l m e m b e r s o f a g r o u p

    p v m

    b a r r i e r g r o u p , c o u n t

    S y n c h r o n i z e a l l t a s k s i n a g r o u p

    p v m b c a s t g r o u p , t a g

    B r o a d c a s t m e s s a g e t o a l l t a s k s i n a g r o u p

    p v m

    s c a t t e r r e s u l t , d a t a , n u m i t e m s , d a t a t y p e ,

    m s g t a g , r o o t i n s t , g r o u p

    p v m

    g a t h e r r e s u l t , d a t a , n u m i t e m s , d a t a t y p e ,

    m s g t a g , r o o t i n s t , g r o u p

    D i s t r i b u t e a n d c o l l e c t a r r a y s a c r o s s t a s k g r o u p s

    p v m r e d u c e * f u n c , d a t a , n u m i t e m s , d a t a t y p e ,

    m s g t a g , g r o u p , r o o t i n s t

    R e d u c e d i s t r i b u t e d a r r a y s . P r e d e n e d f u n c t i o n s a r e

    P v m M a x

    P v m M i n

    P v m S u m

    P v m P r o d u c t

    3 8

    V i r t u a l M a c h i n e C o n t r o l

    p v m a d d h o s t s h o s t s , n u m h o s t s , t i d s

    A d d h o s t s t o v i r t u a l m a c h i n e

    p v m c o n f i g n h o s t s , n a r c h , h o s t s

    G e t c u r r e n t V M c o n g u r a t i o n

    p v m d e l h o s t s h o s t s , n u m h o s t s , r e s u l t s

    R e m o v e h o s t s f r o m v i r t u a l m a c h i n e

    p v m h a l t

    S t o p a l l p v m d s a n d t a s k s s h u t d o w n

    p v m m s t a t h o s t

    Q u e r y s t a t u s o f h o s t

    p v m s t a r t p v m d a r g c , a r g v , b l o c k

    S t a r t n e w m a s t e r p v m d

    3 9

    P V M E x a m p l e s i n D i s t r i b u t i o n

    E x a m p l e s i l l u s t r a t e u s a g e a n d s e r v e a s t e m p l a t e s

    E x a m p l e s i n c l u d e

    h e l l o , h e l l o o t h e r H e l l o w o r l d

    m a s t e r , s l a v e M a s t e r s l a v e p r o g r a m

    s p m d S P M D p r o g r a m

    g e x a m p l e G r o u p a n d c o l l e c t i v e o p e r a t i o n s

    t i m i n g , t i m i n g s l a v e T e s t s c o m m u n i c a t i o n p e r f o r m a n c e

    h i t c , h i t c s l a v e D y n a m i c l o a d b a l a n c e e x a m p l e

    x e p , m t i l e I n t e r a c t i v e X - W i n d o w e x a m p l e

    E x a m p l e s c o m e w i t h M a k e l e . a i m k l e s

    B o t h C a n d F o r t r a n s v e r s i o n s f o r s o m e e x a m p l e s

    4 0

    C o m p i l i n g A p p l i c a t i o n s

    H e a d e r l e s

    C p r o g r a m s s h o u l d i n c l u d e

    p v m 3 . h A l w a y s

    p v m t e v . h T o m a n i p u l a t e t r a c e m a s k s

    p v m s d p r o . h F o r r e s o u r c e m a n a g e r i n t e r f a c e

    S p e c i f y i n c l u d e d i r e c t o r y : c c - I $ P V M R O O T i n c l u d e . . .

    F o r t r a n : I N C L U D E ' u s r l o c a l p v m 3 i n c l u d e f p v m 3 . h '

    C o m p i l i n g a n d l i n k i n g

    C p r o g r a m s m u s t b e l i n k e d w i t h

    l i b p v m 3 . a A l w a y s

    l i b g p v m 3 . a I f u s i n g g r o u p l i b r a r y f u n c t i o n s

    p o s s i b l y o t h e r l i b r a r i e s f o r s o c k e t o r X D R f u n c t i o n s

    F o r t r a n p r o g r a m s m u s t a d d i t i o n a l l y b e l i n k e d w i t h l i b f p v m 3 . a

  • 7/27/2019 PVM and MPI

    11/35

    4 1

    C o m p i l i n g A p p l i c a t i o n s , C o n t ' d

    A i m k

    S h a r e s s i n g l e m a k e l e b e t w e e n a r c h i t e c t u r e s

    B u i l d s f o r d i e r e n t a r c h i t e c t u r e s i n s e p a r a t e d i r e c t o r i e s

    D e t e r m i n e s P V M a r c h i t e c t u r e

    R u n s m a k e , p a s s i n g i t P V M

    A R C H

    D o e s o n e o f t h r e e t h i n g s

    I f $ P V M A R C H M m a k e f i l e e x i s t s :

    R u n s m a k e i n s u b d i r e c t o r y , u s i n g m a k e l e

    E l s e i f M a k e f i l e . a i m k e x i s t s :

    C r e a t e s s u b d i r e c t o r y , r u n s m a k e u s i n g M a k e f i l e . a i m k

    O t h e r w i s e :

    R u n s m a k e i n c u r r e n t d i r e c t o r y

    4 2

    L o a d B a l a n c i n g

    I m p o r t a n t f o r a p p l i c a t i o n p e r f o r m a n c e

    N o t d o n e a u t o m a t i c a l l y y e t ?

    S t a t i c A s s i g n m e n t o f w o r k o r p l a c e m e n t o f t a s k s

    M u s t p r e d i c t a l g o r i t h m t i m e

    M a y h a v e d i e r e n t p r o c e s s o r s p e e d s

    E x t e r n a l l y i m p o s e d s t a t i c m a c h i n e l o a d s

    D y n a m i c A d a p t i n g t o c h a n g i n g c o n d i t i o n s

    M a k e s i m p l e s c h e d u l e r : E . g . B a g o f T a s k s

    S i m p l e , o f t e n w o r k s w e l l

    D i v i d e w o r k i n t o s m a l l j o b s

    G i v e n t o p r o c e s s o r s a s t h e y b e c o m e i d l e

    P V M c o m e s w i t h e x a m p l e s

    C x e p

    F o r t r a n h i t c

    C a n i n c l u d e s o m e f a u l t t o l e r a n c e

    W o r k m i g r a t i o n : C a n c e l f o r w a r d j o b

    P o l l f o r c a n c e l m e s s a g e f r o m m a s t e r

    C a n i n t e r r u p t w i t h p v m

    s e n d s i g

    K i l l w o r k e r e x p e n s i v e

    T a s k m i g r a t i o n : N o t i n P V M y e t

    E v e n w i t h l o a d b a l a n c i n g , e x p e c t p e r f o r m a n c e t o b e v a r i a b l e

    4 3

    S i x E x a m p l e s

    C i r c u l a r m e s s a g i n g

    I n n e r p r o d u c t

    M a t r i x v e c t o r m u l t i p l y r o w d i s t r i b u t i o n

    M a t r i x v e c t o r m u l t i p l y c o l u m n d i s t r i b u t i o n

    I n t e g r a t i o n t o e v a l u a t e

    S o l v e 1 - D h e a t e q u a t i o n

    4 4

    C i r c u l a r M e s s a g i n g

    A v e c t o r c i r c u l a t e s a m o n g t h e p r o c e s s o r s

    E a c h p r o c e s s o r l l s i n a p a r t o f t h e v e c t o r

    P1

    P2

    P3 P4

    P5

    S o l u t i o n :

    S P M D

    U s e s t h e f o l l o w i n g P V M f e a t u r e s :

    s p a w n

    g r o u p

    b a r r i e r

    s e n d - r e c v

    p a c k - u n p a c k

  • 7/27/2019 PVM and MPI

    12/35

    4 5

    p r o g r a m s p m d 1

    i n c l u d e ' s r c i c l p v m p v m 3 i n c l u d e f p v m 3 . h '

    P A R A M E T E R N P R O C = 4

    i n t e g e r r a n k , l e f t , r i g h t , i , j , i e r r

    i n t e g e r t i d s N P R O C - 1

    i n t e g e r d a t a N P R O C

    C G r o u p C r e a t i o n

    c a l l p v m f j o i n g r o u p ' f o o ' , r a n k

    i f r a n k . e q . 0 t h e n

    c a l l p v m f s p a w n ' s p m d 1 ' , P V M D E F A U L T , ' * ' , N P R O C - 1 , t i d s 1 , i e r r

    e n d i f

    c a l l p v m f b a r r i e r ' f o o ' , N P R O C , i e r r

    C c o m p u t e t h e n e i g h b o u r s I D s

    c a l l p v m f g e t t i d ' f o o ' , M O D r a n k + N P R O C - 1 , N P R O C , l e f t

    c a l l p v m f g e t t i d ' f o o ' , M O D r a n k + 1 , N P R O C , r i g h t

    i f r a n k . e q . 0 t h e n

    C I a m t h e f i r s t p r o c e s s

    d o 1 0 i = 1 , N P R O C

    1 0 d a t a i = 0

    c a l l p v m f i n i t s e n d P V M D E F A U L T , i e r r

    c a l l p v m f p a c k I N T E G E R 4 , d a t a , N P R O C , 1 , i e r r

    c a l l p v m f s e n d r i g h t , 1 , i e r r

    c a l l p v m f r e c v l e f t , 1 , i e r r

    c a l l p v m f u n p a c k I N T E G E R 4 , d a t a , N P R O C , 1 , i e r r

    w r i t e * , * ' R e s u l t s r e c e i v e d : '

    w r i t e * , * d a t a j , j = 1 , N P R O C

    e l s e

    C I a m a n i n t e r m e d i a t e p r o c e s s

    c a l l p v m f r e c v l e f t , 1 , i e r r

    c a l l p v m f u n p a c k I N T E G E R 4 , d a t a , N P R O C , 1 , i e r r

    d a t a r a n k + 1 = r a n k

    c a l l p v m f i n i t s e n d P V M D E F A U L T , i e r r

    c a l l p v m f p a c k I N T E G E R 4 , d a t a , N P R O C , 1 , i e r r

    c a l l p v m f s e n d r i g h t , 1 , i e r r

    e n d i f

    c a l l p v m f l v g r o u p ' f o o ' , i e r r

    c a l l p v m f e x i t i e r r

    s t o p

    e n d

    4 6

    I n n e r P r o d u c t

    P r o b l e m : I n p a r a l l e l c o m p u t e

    s =

    n

    X

    i = 1

    x

    T

    y

    X

    Y

    DdotPartial

    S o l u t i o n :

    M a s t e r - S l a v e

    U s e s t h e f o l l o w i n g P V M f e a t u r e s :

    s p a w n

    g r o u p

    b a r r i e r

    s e n d - r e c v

    p a c k - u n p a c k

    M a s t e r s e n d s o u t d a t a , c o l l e c t s t h e p a r t i a l s o l u t i o n s a n d c o m p u t e s t h e

    s u m .

    S l a v e s r e c e i v e d a t a , c o m p u t e p a r t i a l i n n e r p r o d u c t a n d s e n d t h e r e s u l t s

    t o m a s t e r .

    4 7

    I n n e r P r o d u c t - P s e u d o c o d e

    M a s t e r

    D d o t = 0

    f o r i = 1 t o n u m b e r o f s l a v e s

    s e n d i t h p a r t o f X t o t h e i t h s l a v e

    s e n d i t h p a r t o f Y t o t h e i t h s l a v e

    e n d f o r

    D d o t = D d o t + D d o t r e m a i n i n g p a r t o f X a n d Y

    f o r i = 1 t o n u m b e r o f s l a v e s

    r e c e i v e a p a r t i a l r e s u l t

    D d o t = D d o t + p a r t i a l r e s u l t

    e n d f o r

    S l a v e

    R e c e i v e a p a r t o f X

    R e c e i v e a p a r t o f Y

    p a r t i a l = D d o t p a r t o f X a n d p a r t o f Y

    s e n d p a r t i a l t o t h e m a s t e r

    4 8

    p r o g r a m i n n e r

    i n c l u d e ' s r c i c l p v m p v m 3 i n c l u d e f p v m 3 . h '

    P A R A M E T E R N P R O C = 7

    P A R A M E T E R N = 1 0 0

    d o u b l e p r e c i s i o n d d o t

    e x t e r n a l d d o t

    i n t e g e r r e m a i n , n b

    i n t e g e r r a n k , i , i e r r , b u f i d

    i n t e g e r t i d s N P R O C - 1 , s l a v e , m a s t e r

    d o u b l e p r e c i s i o n x N , y N

    d o u b l e p r e c i s i o n r e s u l t , p a r t i a l

    r e m a i n = M O D N , N P R O C - 1

    n b = N - r e m a i n N P R O C - 1

    c a l l p v m f j o i n g r o u p ' f o o ' , r a n k

    i f r a n k . e q . 0 t h e n

    c a l l p v m f s p a w n ' i n n e r ' , P V M D E F A U L T , ' * ' , N P R O C - 1 , t i d s , i e r r

    e n d i f

    c a l l p v m f b a r r i e r ' f o o ' , N P R O C , i e r r

    c a l l p v m f g e t t i d ' f o o ' , 0 , m a s t e r

    C M A S T E R

    i f r a n k . e q . 0 t h e n

    C S e t t h e v a l u e s

    d o 1 0 i = 1 , N

    x i = 1 . 0 d 0

    1 0 y i = 1 . 0 d 0

    C S e n d t h e d a t a

    c o u n t = 1

    d o 2 0 i = 1 , N P R O C - 1

    c a l l p v m f i n i t s e n d P V M D E F A U L T , i e r r

    c a l l p v m f p a c k R E A L 8 , x c o u n t , n b , 1 , i e r r

    c a l l p v m f p a c k R E A L 8 , y c o u n t , n b , 1 , i e r r

    c a l l p v m f g e t t i d ' f o o ' , i , s l a v e

    c a l l p v m f s e n d s l a v e , 1 , i e r r

    c o u n t = c o u n t + n b

    2 0 c o n t i n u e

  • 7/27/2019 PVM and MPI

    13/35

    4 9

    r e s u l t = 0 . d 0

    C A d d t h e r e m a i n d i n g p a r t

    p a r t i a l = d d o t r e m a i n , x N - r e m a i n + 1 , 1 , y N - r e m a i n + 1 , 1

    r e s u l t = r e s u l t + p a r t i a l

    C G e t t h e r e s u l t

    d o 3 0 i = 1 , N P R O C - 1

    c a l l p v m f r e c v - 1 , 1 , b u f i d

    c a l l p v m f u n p a c k R E A L 8 , p a r t i a l , 1 , 1 , i e r r

    r e s u l t = r e s u l t + p a r t i a l

    3 0 c o n t i n u e

    p r i n t * , ' T h e d d o t = ' , r e s u l t

    C S L A V E

    e l s e

    C R e c e i v e t h e d a t a

    c a l l p v m f r e c v - 1 , 1 , b u f i d

    c a l l p v m f u n p a c k R E A L 8 , x , n b , 1 , i e r r

    c a l l p v m f u n p a c k R E A L 8 , y , n b , 1 , i e r r

    C C o m p u t e t h e p a r t i a l p r o d u c t

    p a r t i a l = d d o t n b , x 1 , 1 , y 1 , 1

    C S e n d b a c k t h e r e s u l t

    c a l l p v m f i n i t s e n d P V M D E F A U L T , i e r r

    c a l l p v m f p a c k R E A L 8 , p a r t i a l , 1 , 1 , i e r r

    c a l l p v m f s e n d m a s t e r , 1 , i e r r

    e n d i f

    c a l l p v m f l v g r o u p ' f o o ' , i e r r

    c a l l p v m f e x i t i e r r

    s t o p

    e n d

    5 0

    M a t r i x - V e c t o r P r o d u c t

    R o w D i s t r i b u t i o n

    P r o b l e m : I n p a r a l l e l c o m p u t e y = y + A x , w h e r e y i s o f l e n g t h m , x i s o f

    l e n g t h n a n d A i s a n m n m a t r i x .

    S o l u t i o n :

    M a s t e r - S l a v e

    U s e s t h e f o l l o w i n g P V M f e a t u r e s :

    s p a w n

    g r o u p

    b a r r i e r

    s e n d - r e c v

    p a c k - u n p a c k

    m

    n

    A X Y

    P1

    P2

    P3

    P4

    Y

    5 1

    M a t r i x - V e c t o r P r o d u c t

    R o w D i s t r i b u t i o n

    P s e u d o C o d e

    M a s t e r

    f o r i = 1 t o n u m b e r o f s l a v e s

    s e n d X t o t h e i t h s l a v e

    s e n d Y t o t h e i t h s l a v e

    e n d f o r

    f o r i = 1 t o n u m b e r o f s l a v e s

    r e c e i v e a p a r t i a l r e s u l t f r o m a s l a v e

    u p d a t e t h e c o r r e s p o n d i n g p a r t o f Y

    e n d f o r

    S l a v e

    R e c e i v e X

    R e c e i v e Y

    C o m p u t e m y p a r t o f t h e p r o d u c t

    a n d U p d a t e m y p a r t o f Y

    S e n d b a c k m y p a r t o f Y

    5 2

    p r o g r a m m a t v e c _ r o w

    i n c l u d e ' s r c i c l p v m p v m 3 i n c l u d e f p v m 3 . h '

    C

    C y - - - y + A * x

    C

    C A : M x N v i s i b l e o n l y o n t h e s l a v e s

    C X : N

    C Y : M

    C

    P A R A M E T E R N P R O C = 4

    P A R A M E T E R M = 9 , N = 6

    P A R A M E T E R N B Y = I N T M N P R O C + 1

    d o u b l e p r e c i s i o n X N , Y M

    i n t e g e r t i d s N P R O C

    i n t e g e r m y t i d , r a n k , i , i e r r , f r o m

    c a l l p v m f m y t i d m y t i d

    c a l l p v m f j o i n g r o u p ' f o o ' , r a n k

    i f r a n k . e q . 0 t h e n

    c a l l p v m f s p a w n ' m a t v e c s l v _ r o w ' , P V M D E F A U L T , ' * ' , N P R O C , t i d s , i e r r

    e n d i f

    c a l l p v m f b a r r i e r ' f o o ' , N P R O C + 1 , i e r r

    C D a t a i n i t i a l i z e f o r m y p a r t o f t h e d a t a

    d o 1 0 i = 1 , N

    x i = 1 . d 0

    1 0 c o n t i n u e

    d o 1 5 i = 1 , M

    y i = 1 . d 0

    1 5 c o n t i n u e

    C S e n d X a n d Y t o t h e s l a v e s

    c a l l p v m f i n i t s e n d P V M D E F A U L T , i e r r

    c a l l p v m f p a c k R E A L 8 , X , N , 1 , i e r r

    c a l l p v m f p a c k R E A L 8 , Y , M , 1 , i e r r

    c a l l p v m f b c a s t ' f o o ' , 1 , i e r r

  • 7/27/2019 PVM and MPI

    14/35

    5 3

    C I g e t t h e r e s u l t s

    d o 2 0 i = 1 , N P R O C

    c a l l p v m f r e c v - 1 , 1 , i e r r

    c a l l p v m f u n p a c k I N T E G E R 4 , f r o m , 1 , i e r r

    i f f r o m . E Q . N P R O C t h e n

    c a l l p v m f u n p a c k R E A L 8 , Y f r o m - 1 * N B Y + 1 ,

    $ M - N B Y * N P R O C - 1 , 1 , i e r r

    e l s e

    c a l l p v m f u n p a c k R E A L 8 , Y f r o m - 1 * N B Y + 1 ,

    $ N B Y , 1 , i e r r

    e n d i f

    2 0 c o n t i n u e

    w r i t e * , * ' R e s u l t s r e c e i v e d '

    d o 3 0 i = 1 , M

    w r i t e * , * ' Y ' , i , ' = ' , Y i

    3 0 c o n t i n u e

    c a l l p v m f l v g r o u p ' f o o ' , i e r r

    c a l l p v m f e x i t i e r r

    s t o p

    e n d

    5 4

    p r o g r a m m a t v e c s l v _ r o w

    i n c l u d e ' s r c i c l p v m p v m 3 i n c l u d e f p v m 3 . h '

    C

    C y - - - y + A * x

    C A : M x N v i s i b l e o n l y o n t h e s l a v e s

    C X : N

    C Y : M

    C

    P A R A M E T E R N P R O C = 4

    P A R A M E T E R M = 9 , N = 6

    P A R A M E T E R N B Y = I N T M N P R O C + 1

    d o u b l e p r e c i s i o n A N B Y , N

    d o u b l e p r e c i s i o n X N , Y M

    i n t e g e r r a n k , i , i e r r , t o

    e x t e r n a l d g e m v

    c a l l p v m f j o i n g r o u p ' f o o ' , r a n k

    c a l l p v m f b a r r i e r ' f o o ' , N P R O C + 1 , i e r r

    C D a t a i n i t i a l i z e f o r m y p a r t o f t h e d a t a

    d o 1 0 j = 1 , N

    d o 2 0 i = 1 , N B Y

    A i , j = 1 . d 0

    2 0 c o n t i n u e

    1 0 c o n t i n u e

    C I r e c e i v e X a n d Y

    c a l l p v m f r e c v - 1 , 1 , i e r r

    c a l l p v m f u n p a c k R E A L 8 , X , N , 1 , i e r r

    c a l l p v m f u n p a c k R E A L 8 , Y , M , 1 , i e r r

    C I c o m p u t e m y p a r t

    i f r a n k . N E . N P R O C t h e n

    c a l l d g e m v ' N ' , N B Y , N , 1 . d 0 , A , N B Y ,

    $ X , 1 , 1 . d 0 , Y r a n k - 1 * N B Y + 1 , 1

    e l s e

    c a l l d g e m v ' N ' , M - N B Y * N P R O C - 1 , N , 1 . d 0 , A , N B Y ,

    $ X , 1 , 1 . d 0 , Y N P R O C - 1 * N B Y + 1 , 1

    e n d i f

    5 5

    C I s e n d b a c k m y p a r t o f Y

    c a l l p v m f i n i t s e n d P V M D E F A U L T , i e r r

    c a l l p v m f p a c k I N T E G E R 4 , r a n k , 1 , 1 , i e r r

    i f r a n k . N E . N P R O C t h e n

    c a l l p v m f p a c k R E A L 8 , Y r a n k - 1 * N B Y + 1 , N B Y , 1 , i e r r

    e l s e

    c a l l p v m f p a c k R E A L 8 , Y r a n k - 1 * N B Y + 1 , M - N B Y * N P R O C - 1 , 1 , i e r r

    e n d i f

    c a l l p v m f g e t t i d ' f o o ' , 0 , t o

    c a l l p v m f s e n d t o , 1 , i e r r

    C d o n e

    c a l l p v m f l v g r o u p ' f o o ' , i e r r

    c a l l p v m f e x i t i e r r

    s t o p

    e n d

    5 6

    M a t r i x - V e c t o r P r o d u c t

    C o l u m n D i s t r i b u t i o n

    P r o b l e m : I n p a r a l l e l c o m p u t e y = y + A x , w h e r e y i s o f l e n g t h m , x i s o f

    l e n g t h n a n d A i s a n m n m a t r i x .

    S o l u t i o n :

    M a s t e r - S l a v e

    U s e s t h e f o l l o w i n g P V M f e a t u r e s :

    s p a w n

    g r o u p

    b a r r i e r

    r e d u c e

    s e n d - r e c v

    p a c k - u n p a c k

    m

    n

    A X

    P1 P2 P3 P4

    Y

  • 7/27/2019 PVM and MPI

    15/35

    5 7

    M a t r i x - V e c t o r P r o d u c t

    C o l u m n D i s t r i b u t i o n

    P s e u d o C o d e

    M a s t e r

    f o r i = 1 t o n u m b e r o f s l a v e s

    s e n d X t o t h e i t h s l a v e

    e n d f o r

    G l o b a l S u m o n Y r o o t

    S l a v e

    R e c e i v e X

    C o m p u t e m y C o n t r i b u t i o n t o Y

    G l o b a l S u m o n Y l e a f

    5 8

    p r o g r a m m a t v e c _ c o l

    i n c l u d e ' s r c i c l p v m p v m 3 i n c l u d e f p v m 3 . h '

    C

    C y - - - y + A * x

    C

    C A : M x N v i s i b l e o n l y o n t h e s l a v e s

    C X : N

    C Y : M

    C

    P A R A M E T E R N P R O C = 4

    P A R A M E T E R M = 9 , N = 6

    d o u b l e p r e c i s i o n X N , Y M

    e x t e r n a l P V M S U M

    i n t e g e r t i d s N P R O C

    i n t e g e r m y t i d , r a n k , i , i e r r

    c a l l p v m f m y t i d m y t i d

    c a l l p v m f j o i n g r o u p ' f o o ' , r a n k

    i f r a n k . e q . 0 t h e n

    c a l l p v m f s p a w n ' m a t v e c s l v _ c o l ' , P V M D E F A U L T , ' * ' , N P R O C , t i d s , i e r r

    e n d i f

    c a l l p v m f b a r r i e r ' f o o ' , N P R O C + 1 , i e r r

    C D a t a i n i t i a l i z e f o r m y p a r t o f t h e d a t a

    d o 1 0 i = 1 , N

    x i = 1 . d 0

    1 0 c o n t i n u e

    d o 1 5 i = 1 , M

    y i = 1 . d 0

    1 5 c o n t i n u e

    5 9

    C S e n d X

    c a l l p v m f i n i t s e n d P V M D E F A U L T , i e r r

    c a l l p v m f p a c k R E A L 8 , X , N , 1 , i e r r

    c a l l p v m f b c a s t ' f o o ' , 1 , i e r r

    C I g e t t h e r e s u l t s

    c a l l p v m f r e d u c e P V M S U M , Y , M , R E A L 8 , 1 , ' f o o ' , 0 , i e r r

    w r i t e * , * ' R e s u l t s r e c e i v e d '

    d o 3 0 i = 1 , M

    w r i t e * , * ' Y ' , i , ' = ' , Y i

    3 0 c o n t i n u e

    c a l l p v m f l v g r o u p ' f o o ' , i e r r

    c a l l p v m f e x i t i e r r

    s t o p

    e n d

    6 0

    p r o g r a m m a t v e c s l v _ c o l

    i n c l u d e ' s r c i c l p v m p v m 3 i n c l u d e f p v m 3 . h '

    C

    C y - - - y + A * x

    C A : M x N v i s i b l e o n l y o n t h e s l a v e s

    C X : N

    C Y : M

    C

    P A R A M E T E R N P R O C = 4

    P A R A M E T E R M = 9 , N = 6

    P A R A M E T E R N B X = I N T N N P R O C + 1

    e x t e r n a l P V M S U M

    d o u b l e p r e c i s i o n A M , N B X

    d o u b l e p r e c i s i o n X N , Y M

    i n t e g e r r a n k , i , i e r r

    e x t e r n a l d g e m v

    c a l l p v m f j o i n g r o u p ' f o o ' , r a n k

    c a l l p v m f b a r r i e r ' f o o ' , N P R O C + 1 , i e r r

    C D a t a i n i t i a l i z e f o r m y p a r t o f t h e d a t a

    d o 1 0 j = 1 , N B X

    d o 2 0 i = 1 , M

    A i , j = 1 . d 0

    2 0 c o n t i n u e

    1 0 c o n t i n u e

    C I r e c e i v e X

    c a l l p v m f r e c v - 1 , 1 , i e r r

    c a l l p v m f u n p a c k R E A L 8 , X , N , 1 , i e r r

  • 7/27/2019 PVM and MPI

    16/35

    6 1

    C I c o m p u t e m y p a r t

    i f r a n k . N E . N P R O C t h e n

    c a l l d g e m v ' N ' , M , N B X , 1 . d 0 , A , M ,

    $ X r a n k - 1 * N B X + 1 , 1 , 1 . d 0 , Y , 1

    e l s e

    c a l l d g e m v ' N ' , M , N - N B X * N P R O C - 1 , 1 . d 0 , A , M ,

    $ X N P R O C - 1 * N B X + 1 , 1 , 1 . d 0 , Y , 1

    e n d i f

    C I s e n d b a c k m y p a r t o f Y

    c a l l p v m f r e d u c e P V M S U M , Y , M , R E A L 8 , 1 , ' f o o ' , 0 , i e r r

    C d o n e

    c a l l p v m f l v g r o u p ' f o o ' , i e r r

    c a l l p v m f e x i t i e r r

    s t o p

    e n d

    6 2

    I n t e g r a t i o n t o e v a l u a t e

    C o m p u t e r a p p r o x i m a t i o n s t o b y u s i n g n u m e r i c a l i n t e g r a t i o n

    K n o w

    t a n 4 5

    0

    = 1 ;

    s a m e a s

    t a n

    4

    = 1 ;

    S o t h a t ;

    4 t a n

    , 1

    1 =

    F r o m t h e i n t e g r a l t a b l e s w e c a n n d

    t a n

    , 1

    x =

    Z

    1

    1 + x

    2

    d x

    o r

    t a n

    , 1

    1 =

    Z

    1

    0

    1

    1 + x

    2

    d x

    U s i n g t h e m i d - p o i n t r u l e w i t h p a n e l s o f

    u n i f o r m l e n g t h h = 1 = n , f o r v a r i o u s v a l u e s o f n

    E v a l u a t e t h e f u n c t i o n a t t h e m i d p o i n t s o f

    e a c h s u b i n t e r v a l x

    i , 1

    , x

    i

    i h , h = 2 i s t h e m i d p o i n t .

    F o r m u l a f o r t h e i n t e g r a l i s

    x =

    n

    X

    i = 1

    f h i , 1 = 2

    = h x

    w h e r e

    f x =

    4

    1 + x

    2

    6 3

    I n t e g r a t i o n t o e v a l u a t e c o n t i n u e d

    N u m b e r o f w a y s t o d i v i d e u p t h e p r o b l e m .

    E a c h p a r t o f t h e s u m i s i n d e p e n d e n t .

    D i v i d e t h e i n t e r v a l i n t o m o r e o r l e s s e q u a l p a r t s a n d g i v e e a c h p r o c e s s

    a p a r t .

    L e t e a c h p r o c e s s o r t a k e t h e p

    t h

    p a r t .

    C o m p u t e p a r t o f i n t e g r a l .

    S u m p i e c e s .

    T h e e x a m p l e g i v e n l e t ' s e a c h p r o c e s s o r t a k e t h e p

    t h

    p a r t . U s e s t h e f o l l o w i n g

    P V M f e a t u r e s :

    s p a w n

    g r o u p

    b a r r i e r

    b c a s t

    r e d u c e

    6 4

    p r o g r a m s p m d 2

    i n c l u d e ' s r c i c l p v m p v m 3 i n c l u d e f p v m 3 . h '

    P A R A M E T E R N P R O C = 3

    E X T E R N A L P V M S U M

    i n t e g e r m y t i d , r a n k , i , i e r r

    i n t e g e r t i d s 0 : N P R O C - 1

    d o u b l e p r e c i s i o n P I 2 5 D T

    p a r a m e t e r P I 2 5 D T = 3 . 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 2 3 8 4 6 2 6 4 3 d 0

    d o u b l e p r e c i s i o n m y p i , p i , h , s u m , x , f , a

    C f u n c t i o n t o i n t e g r a t e

    f a = 4 . d 0 1 . d 0 + a * a

    c a l l p v m f m y t i d m y t i d

    c a l l p v m f j o i n g r o u p ' f o o ' , r a n k

    1 0 i f r a n k . e q . 0 t h e n

    c a l l p v m f s p a w n ' s p m d 2 ' , P V M D E F A U L T , ' * ' , N P R O C - 1 , t i d s 1 , i e r r

    e n d i f

    c a l l p v m f b a r r i e r ' f o o ' , N P R O C , i e r r

    i f r a n k . e q . 0 t h e n

    w r i t e 6 , 9 8

    9 8 f o r m a t ' E n t e r t h e n u m b e r o f i n t e r v a l s : 0 q u i t s '

    r e a d 5 , 9 9 n

    9 9 f o r m a t i 1 0

    i f n . G T . 1 0 0 0 0 0 t h e n

    p r i n t * , ' T o o l a r g e v a l u e o f p i '

    p r i n t * , ' U s i n g 1 0 0 0 0 0 i n s t e a d '

    n = 1 0 0 0 0 0

    e n d i f

    c a l l p v m f i n i t s e n d P V M D E F A U L T , i e r r

    c a l l p v m f p a c k I N T E G E R 4 , n , 1 , 1 , i e r r

    c a l l p v m f b c a s t ' f o o ' , 0 , i e r r

    e n d i f

    i f r a n k . n e . 0 t h e n

    c a l l p v m f r e c v - 1 , - 1 , i e r r

    c a l l p v m f u n p a c k I N T E G E R 4 , n , 1 , 1 , i e r r

    e n d i f

  • 7/27/2019 PVM and MPI

    17/35

    6 5

    C c h e c k f o r q u i t s i g n a l

    i f n . l e . 0 g o t o 3 0

    C c a l c u l a t e t h e i n t e r v a l s i z e

    h = 1 . 0 d 0 n

    s u m = 0 . 0 d 0

    d o 2 0 i = r a n k + 1 , n , N P R O C

    x = h * d b l e i - 0 . 5 d 0

    s u m = s u m + f x

    2 0 c o n t i n u e

    m y p i = h * s u m

    C c o l l e c t a l l t h e p a r t i a l s u m s

    p r i n t * , ' r e d u c e '

    c a l l p v m f r e d u c e P V M S U M , m y p i , 1 , R E A L 8 , 0 , ' f o o ' , 0 , i e r r

    C n o d e 0 p r i n t s t h e n u m b e r

    i f r a n k . e q . 0 t h e n

    p i = m y p i

    w r i t e 6 , 9 7 p i , a b s p i - P I 2 5 D T

    9 7 f o r m a t ' p i i s a p p r o x i m a t i v e l y : ' , F 1 8 . 1 6 ,

    + ' E r r o r i s : ' , F 1 8 . 1 6

    g o t o 1 0

    e n d i f

    3 0 c a l l p v m f l v g r o u p ' f o o ' , i e r r

    c a l l p v m f e x i t i e r r

    s t o p

    e n d

    6 6

    1 - D H e a t E q u a t i o n

    P r o b l e m : C a l c u l a t i n g h e a t d i u s i o n t h r o u g h a w i r e .

    T h e o n e - d i m e n s i o n a l h e a t e q u a t i o n o n a t h i n w i r e i s :

    @ A

    @ t

    =

    @

    2

    A

    @ x

    2

    a n d a d i s c r e t i z a t i o n o f t h e f o r m :

    A

    i + 1 j

    , A

    i j

    t

    =

    A

    i j + 1

    , 2 A

    i j

    + A

    i j , 1

    x

    2

    g i v i n g t h e e x p l i c i t f o r m u l a :

    A

    i + 1 j

    = A

    i j

    +

    t

    x

    2

    A

    i j + 1

    , 2 A

    i j

    + A

    i j , 1

    i n i t i a l a n d b o u n d a r y c o n d i t i o n s :

    A t ; 0 = 0 ; A t ; 1 = 0 f o r a l l t

    A 0 ; x = s i n x f o r 0 x 1

    6 7

    1 - D H e a t E q u a t i o n

    C o n t i n u a t i o n

    P1 P2 P4P3

    Boundaries

    S o l u t i o n :

    M a s t e r S l a v e

    S l a v e s c o m m u n i c a t e t h e i r b o u n d a r i e s v a l u e s

    U s e s t h e f o l l o w i n g P V M f e a t u r e s :

    s p a w n

    g r o u p

    b a r r i e r

    s e n d - r e c v

    p a c k - u n p a c k

    6 8

    1 - D H e a t E q u a t i o n

    P s e u d o C o d e

    M a s t e r

    S e t t h e i n i t i a l t e m p e r a t u r e s

    f o r i = 1 t o n u m b e r o f s l a v e s

    s e n d t h e i t h p a r t o f t h e i n i t i a l

    t e m p e r a t u r e s t o t h e i t h s l a v e

    e n d f o r

    f o r i = 1 t o n u m b e r o f s l a v e s

    r e c e i v e r e s u l t s f r o m i t h s l a v e

    u p d a t e m y d a t a

    e n d f o r

    S l a v e

    R e c e i v e m y p a r t o f t h e i n i t i a l v a l u e s

    f o r i = 1 t o n u m b e r o f t i m e i t e r a t i o n s

    s e n d m y l e f t b o u n d t o m y l e f t n e i g h b o r

    s e n d m y r i g h t b o u n d t o m y r i g h t n e i g h b o r

    r e c e i v e m y l e f t n e i g h b o r ' s l e f t b o u n d

    r e c e i v e m y r i g h t n e i g h b o r ' s r i g h t b o u n d

    c o m p u t e t h e n e w t e m p e r a t u r e s

    e n d f o r

    s e n d b a c k m y r e s u l t t o t h e m a s t e r

  • 7/27/2019 PVM and MPI

    18/35

    6 9

    C

    C U s e P V M t o s o l v e a s i m p l e h e a t d i f f u s i o n d i f f e r e n t i a l e q u a t i o n ,

    C u s i n g 1 m a s t e r p r o g r a m a n d 5 s l a v e s .

    C

    C T h e m a s t e r p r o g r a m s e t s u p t h e d a t a , c o m m u n i c a t e s i t t o t h e s l a v e s

    C a n d w a i t s f o r t h e r e s u l t s t o b e s e n t f r o m t h e s l a v e s .

    C P r o d u c e s x g r a p h r e a d y f i l e s o f t h e r e s u l t s .

    C

    p r o g r a m h e a t

    i n c l u d e ' s r c i c l p v m p v m 3 i n c l u d e f p v m 3 . h '

    i n t e g e r N P R O C , T I M E S T E P , P L O T I N C , S I Z E

    d o u b l e p r e c i s i o n P I

    P A R A M E T E R P I = 3 . 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 2 3 8 4 6

    P A R A M E T E R N P R O C = 3

    P A R A M E T E R T I M E S T E P = 1 0

    P A R A M E T E R P L O T I N C = 1

    P A R A M E T E R S I Z E = 1 0 0

    P A R A M E T E R S L A V E N A M E = ' h e a t s l v '

    i n t e g e r n u m _ d a t a

    i n t e g e r m y t i d , t a s k _ i d s N P R O C , i , j

    i n t e g e r l e f t , r i g h t , k , l

    i n t e g e r s t e p

    i n t e g e r i e r r

    e x t e r n a l w h

    i n t e g e r w h

    d o u b l e p r e c i s i o n i n i t S I Z E

    d o u b l e p r e c i s i o n r e s u l t T I M E S T E P * S I Z E N P R O C

    d o u b l e p r e c i s i o n s o l u t i o n T I M E S T E P , S I Z E

    c h a r a c t e r * 2 0 f i l e n a m e 4

    d o u b l e p r e c i s i o n d e l t a t 4 , d e l t a x 2

    r e a l e t i m e

    r e a l t 0 2

    r e a l e l t i m e 4

    s t e p = T I M E S T E P

    n u m _ d a t a = I N T S I Z E N P R O C

    f i l e n a m e 1 = ' g r a p h 1 '

    f i l e n a m e 2 = ' g r a p h 2 '

    f i l e n a m e 3 = ' g r a p h 3 '

    f i l e n a m e 4 = ' g r a p h 4 '

    d e l t a t 1 = 5 . 0 E - 1

    d e l t a t 2 = 5 . 0 E - 3

    d e l t a t 3 = 5 . 0 E - 6

    d e l t a t 4 = 5 . 0 E - 9

    7 0

    C e n r o l l i n p v m

    c a l l p v m f m y t i d m y t i d

    C s p a w n t h e s l a v e t a s k s

    c a l l p v m f s p a w n ' h e a t s l v ' , P V M D E F A U L T , ' * ' , N P R O C , t a s k _ i d s , i e r r

    C c r e a t e t h e i n i t i a l d a t a s e t

    d o 1 0 i = 1 , S I Z E

    i n i t i = S I N P I * D B L E i - 1 D B L E S I Z E - 1

    1 0 c o n t i n u e

    i n i t 1 = 0 . d 0

    i n i t S I Z E = 0 . d 0

    C r u n t h e p r o b l e m 4 t i m e s f o r d i f f e r e n t v a l u e s o f d e l t a t

    d o 2 0 l = 1 , 4

    d e l t a x 2 = d e l t a t l 1 . 0 D B L E S I Z E * * 2 . 0

    C s t a r t t i m i n g f o r t h i s r u n

    e l t i m e l = e t i m e t 0

    C s e n d t h e i n i t i a l d a t a t o t h e s l a v e s .

    C i n c l u d e n e i g h b o r i n f o f o r e x c h a n g i n g b o u n d a r y d a t a

    d o 3 0 i = 1 , N P R O C

    c a l l p v m f i n i t s e n d P V M D E F A U L T , i e r r

    I F i . E Q . 1 T H E N

    l e f t = 0

    E L S E

    l e f t = t a s k _ i d s i - 1

    E N D I F

    c a l l p v m f p a c k I N T E G E R 4 , l e f t , 1 , 1 , i e r r

    I F i . E Q . N P R O C T H E N

    r i g h t = 0

    E L S E

    r i g h t = t a s k _ i d s i + 1

    E N D I F

    c a l l p v m f p a c k I N T E G E R 4 , r i g h t , 1 , 1 , i e r r

    c a l l p v m f p a c k I N T E G E R 4 , I N T s t e p , 1 , 1 , i e r r

    c a l l p v m f p a c k R E A L 8 , d e l t a x 2 , 1 , 1 , i e r r

    c a l l p v m f p a c k I N T E G E R 4 , I N T n u m _ d a t a , 1 , 1 , i e r r

    c a l l p v m f p a c k R E A L 8 , i n i t n u m _ d a t a * i - 1 + 1 , n u m _ d a t a , 1 , i e r r

    c a l l p v m f s e n d t a s k _ i d s i , 4 , i e r r

    3 0 c o n t i n u e

    C w a i t f o r t h e r e s u l t s

    d o 4 0 i = 1 , N P R O C

    c a l l p v m f r e c v t a s k _ i d s i , 7 , i e r r

    c a l l p v m f u n p a c k R E A L 8 , r e s u l t , n u m _ d a t a * T I M E S T E P , 1 , i e r r

    7 1

    C u p d a t e t h e s o l u t i o n

    d o 5 0 j = 1 , T I M E S T E P

    d o 6 0 k = 1 , n u m _ d a t a

    s o l u t i o n j , n u m _ d a t a * i - 1 + 1 + k - 1 =

    $ r e s u l t w h j - 1 , k - 1 , n u m _ d a t a + 1

    6 0 c o n t i n u e

    5 0 c o n t i n u e

    4 0 c o n t i n u e

    C s t o p t i m i n g

    e l t i m e l = e t i m e t 0 - e l t i m e l

    C p r o d u c e t h e o u t p u t

    w r i t e * , * ' W r i t i n g o u t p u t t o f i l e ' , f i l e n a m e l

    o p e n 2 3 , F I L E = f i l e n a m e l

    w r i t e 2 3 , * ' T i t l e T e x t : W i r e H e a t o v e r D e l t a T i m e : ' , d e l t a t l

    w r i t e 2 3 , * ' X U n i t T e x t : D i s t a n c e '

    w r i t e 2 3 , * ' Y U n i t T e x t : H e a t '

    d o 7 0 i = 1 , T I M E S T E P , P L O T I N C

    w r i t e 2 3 , * ' " T i m e i n d e x : ' , i - 1

    d o 8 0 j = 1 , S I Z E

    w r i t e 2 3 , * j - 1 , R E A L s o l u t i o n i , j

    8 1 F O R M A T I 5 , F 1 0 . 4

    8 0 c o n t i n u e

    w r i t e 2 3 , * ' '

    7 0 c o n t i n u e

    e n d f i l e 2 3

    c l o s e U N I T = 2 3 , S T A T U S = ' K E E P '

    2 0 c o n t i n u e

    w r i t e * , * ' P r o b l e m s i z e : ' , S I Z E

    d o 9 0 i = 1 , 4

    w r i t e * , * ' T i m e f o r r u n ' , i - 1 , ' : ' , e l t i m e i , ' s e c . '

    9 0 c o n t i n u e

    C k i l l t h e s l a v e p r o c e s s e s

    d o 1 0 0 i = 1 , N P R O C

    c a l l p v m f k i l l t a s k _ i d s i , i e r r

    1 0 0 c o n t i n u e

    c a l l p v m f e x i t i e r r

    E N D

    i n t e g e r F U N C T I O N w h x , y , z

    i n t e g e r x , y , z

    w h = x * z + y

    R E T U R N

    E N D

    7 2

    C

    C T h e s l a v e s r e c e i v e t h e i n i t i a l d a t a f r o m t h e h o s t ,

    C e x c h a n g e b o u n d a r y i n f o r m a t i o n w i t h n e i g h b o r s ,

    C a n d c a l c u l a t e t h e h e a t c h a n g e i n t h e w i r e .

    C T h i s i s d o n e f o r a n u m b e r o f i t e r a t i o n s , s e n t b y t h e m a s t e r .

    C

    C

    p r o g r a m h e a t s l v

    i n c l u d e ' s r c i c l p v m p v m 3 i n c l u d e f p v m 3 . h '

    P A R A M E T E R M A X 1 = 1 0 0 0

    P A R A M E T E R M A X 2 = 1 0 0 0 0 0

    i n t e g e r m y t i d , l e f t , r i g h t , i , j , m a s t e r

    i n t e g e r t i m e s t e p

    e x t e r n a l w h

    i n t e g e r w h

    d o u b l e p r e c i s i o n i n i t M A X 1 , A M A X 2

    d o u b l e p r e c i s i o n l e f t d a t a , r i g h t d a t a

    d o u b l e p r e c i s i o n d e l t a , l e f t s i d e , r i g h t s i d e

    C e n r o l l i n p v m

    c a l l p v m f m y t i d m y t i d

    c a l l p v m f p a r e n t m a s t e r

    C r e c e i v e m y d a t a f r o m t h e m a s t e r p r o g r a m

    1 0 c o n t i n u e

    c a l l p v m f r e c v m a s t e r , 4 , i e r r

    c a l l p v m f u n p a c k I N T E G E R 4 , l e f t , 1 , 1 , i e r r

    c a l l p v m f u n p a c k I N T E G E R 4 , r i g h t , 1 , 1 , i e r r

    c a l l p v m f u n p a c k I N T E G E R 4 , t i m e s t e p , 1 , 1 , i e r r

    c a l l p v m f u n p a c k R E A L 8 , d e l t a , 1 , 1 , i e r r

    c a l l p v m f u n p a c k I N T E G E R 4 , n u m _ d a t a , 1 , 1 , i e r r

    c a l l p v m f u n p a c k R E A L 8 , i n i t , n u m _ d a t a , 1 , i e r r

    C c o p y t h e i n i t i a l d a t a i n t o m y w o r k i n g a r r a y

    d o 2 0 i = 1 , n u m _ d a t a

    A i = i n i t i

    2 0 c o n t i n u e

    d o 2 2 i = n u m _ d a t a + 1 , n u m _ d a t a * t i m e s t e p

    A i = 0

    2 2 c o n t i n u e

  • 7/27/2019 PVM and MPI

    19/35

    7 3

    C p e r f o r m t h e c a l c u l a t i o n

    d o 3 0 i = 1 , t i m e s t e p - 1

    C t r a d e b o u n d a r y i n f o w i t h m y n e i g h b o r s

    C s e n d l e f t , r e c e i v e r i g h t

    I F l e f t . N E . 0 T H E N

    c a l l p v m f i n i t s e n d P V M D E F A U L T , i e r r

    c a l l p v m f p a c k R E A L 8 , A w h i - 1 , 0 , n u m _ d a t a + 1 , 1 , 1 , i e r r

    c a l l p v m f s e n d l e f t , 5 , i e r r

    E N D I F

    I F r i g h t . N E . 0 T H E N

    c a l l p v m f r e c v r i g h t , 5 , i e r r

    c a l l p v m f u n p a c k R E A L 8 , r i g h t d a t a , 1 , 1 , i e r r

    c a l l p v m f i n i t s e n d P V M D E F A U L T , i e r r

    c a l l p v m f p a c k R E A L 8 , A w h i - 1 , n u m _ d a t a - 1 , n u m _ d a t a + 1 ,

    $ 1 , 1 , i e r r

    c a l l p v m f s e n d r i g h t , 6 , i e r r

    E N D I F

    I F l e f t . N E . 0 T H E N

    c a l l p v m f r e c v l e f t , 6 , i e r r

    c a l l p v m f u n p a c k R E A L 8 , l e f t d a t a , 1 , 1 , i e r r

    E N D I F

    C d o t h e c a l c u l a t i o n s f o r t h i s i t e r a t i o n

    d o 4 0 j = 1 , n u m _ d a t a

    I F j . E Q . 1 T H E N

    l e f t s i d e = l e f t d a t a

    E L S E

    l e f t s i d e = A w h i - 1 , j - 2 , n u m _ d a t a + 1

    E N D I F

    I F j . E Q . n u m _ d a t a T H E N

    r i g h t s i d e = r i g h t d a t a

    E L S E

    r i g h t s i d e = A w h i - 1 , j , n u m _ d a t a + 1

    E N D I F

    I F j . E Q . 1 . A N D . l e f t . E Q . 0 T H E N

    A w h i , j - 1 , n u m _ d a t a + 1 = 0 . d 0

    E L S E I F j . E Q . n u m _ d a t a . A N D . r i g h t . E Q . 0 T H E N

    A w h i , j - 1 , n u m _ d a t a + 1 = 0 . d 0

    E L S E

    A w h i , j - 1 , n u m _ d a t a + 1 = A w h i - 1 , j - 1 , n u m _ d a t a + 1 +

    $ d e l t a * r i g h t s i d e - 2 * A w h i - 1 , j - 1 , n u m _ d a t a + 1 + l e f t s i d e

    E N D I F

    4 0 c o n t i n u e

    3 0 c o n t i n u e

    7 4

    C s e n d t h e r e s u l t s b a c k t o t h e m a s t e r p r o g r a m

    c a l l p v m f i n i t s e n d P V M D E F A U L T , i e r r

    c a l l p v m f p a c k R E A L 8 , A , n u m _ d a t a * t i m e s t e p , 1 , i e r r

    c a l l p v m f s e n d m a s t e r , 7 , i e r r

    g o t o 1 0

    C j u s t f o r g o o d m e a s u r e

    c a l l p v m f e x i t i e r r

    E N D

    i n t e g e r F U N C T I O N w h x , y , z

    i n t e g e r x , y , z

    w h = x * z + y

    R E T U R N

    E N D

    7 5

    M o t i v a t i o n f o r a N e w D e s i g n

    M e s s a g e P a s s i n g n o w m a t u r e a s p r o g r a m m i n g p a r a d i g m

    w e l l u n d e r s t o o d

    e c i e n t m a t c h t o h a r d w a r e

    m a n y a p p l i c a t i o n s

    V e n d o r s y s t e m s n o t p o r t a b l e

    P o r t a b l e s y s t e m s a r e m o s t l y r e s e a r c h p r o j e c t s

    i n c o m p l e t e

    l a c k v e n d o r s u p p o r t

    n o t a t m o s t e c i e n t l e v e l

    7 6

    M o t i v a t i o n c o n t .

    F e w s y s t e m s o e r t h e f u l l r a n g e o f d e s i r e d f e a t u r e s .

    m o d u l a r i t y f o r l i b r a r i e s

    a c c e s s t o p e a k p e r f o r m a n c e

    p o r t a b i l i t y

    h e t e r o g e n e i t y

    s u b g r o u p s

    t o p o l o g i e s

    p e r f o r m a n c e m e a s u r e m e n t t o o l s

  • 7/27/2019 PVM and MPI

    20/35

    7 7

    T h e M P I P r o c e s s

    B e g a n a t W i l l i a m s b u r g W o r k s h o p i n A p r i l , 1 9 9 2

    O r g a n i z e d a t S u p e r c o m p u t i n g ' 9 2 N o v e m b e r

    F o l l o w e d H P F f o r m a t a n d p r o c e s s

    M e t e v e r y s i x w e e k s f o r t w o d a y s

    E x t e n s i v e , o p e n e m a i l d i s c u s s i o n s

    D r a f t s , r e a d i n g s , v o t e s

    P r e - n a l d r a f t d i s t r i b u t e d a t S u p e r c o m p u t i n g ' 9 3

    T w o - m o n t h p u b l i c c o m m e n t p e r i o d

    F i n a l v e r s i o n o f d r a f t i n M a y , 1 9 9 4

    W i d e l y a v a i l a b l e n o w o n t h e W e b , f t p s i t e s , n e t l i b

    h t t p : w w w . n e t l i b . o r g m p i i n d e x . h t m l

    P u b l i c i m p l e m e n t a t i o n s a v a i l a b l e

    V e n d o r i m p l e m e n t a t i o n s c o m i n g s o o n

    7 8

    M P I L a c k s . . .

    M e c h a n i s m s f o r p r o c e s s c r e a t i o n

    O n e s i d e d c o m m u n i c a t i o n p u t , g e t , a c t i v e m e s s a g e s

    L a n g u a g e b i n d i n g f o r F o r t r a n 9 0 a n c C + +

    T h e r e a r e a x e d n u m b e r o f p r o c e s s e s f r o m s t a r t t o n i s h o f a n a p p l i c a i t o n .

    M a n y f e a t u r e s w e r e c o n s i d e r e d a n d n o t i n c l u d e d

    T i m e c o n s t r a i n t

    N o t e n o u g h e x p e r i e n c e

    C o n c e r n t h a t a d d i t i o n a l f e a t u r e s w o u l d d e l a y t h e a p p e a r a n c e o f i m p l e -

    m e n t a t i o n s

    7 9

    W h o D e s i g n e d M P I ?

    B r o a d p a r t i c i p a t i o n

    V e n d o r s

    I B M , I n t e l , T M C , M e i k o , C r a y , C o n v e x , N c u b e

    L i b r a r y w r i t e r s

    P V M , p 4 , Z i p c o d e , T C G M S G , C h a m e l e o n , E x p r e s s , L i n d a

    A p p l i c a t i o n s p e c i a l i s t s a n d c o n s u l t a n t s

    C o m p a n i e s L a b o r a t o r i e s U n i v e r s i t i e s

    A R C O A N L U C S a n t a B a r b a r a

    C o n v e x G M D S y r a c u s e U

    C r a y R e s L A N L M i c h i g a n S t a t e U

    I B M L L N L O r e g o n G r a d I n s t

    I n t e l N O A A U o f N e w M e x i c o

    K A I N S F M i s s . S t a t e U .

    M e i k o O R N L U o f S o u t h a m p t o n

    N A G P N L U o f C o l o r a d o

    n C U B E S a n d i a Y a l e U

    P a r a S o f t S D S C U o f T e n n e s s e e

    S h e l l S R C U o f M a r y l a n d

    T M C W e s t e r n M i c h U

    U o f E d i n b u r g h

    C o r n e l l U .

    R i c e U .

    U o f S a n F r a n c i s c o

    8 0

    W h a t i s M P I ?

    A m e s s a g e - p a s s i n g l i b r a r y s p e c i c a t i o n

    m e s s a g e - p a s s i n g m o d e l

    n o t a c o m p i l e r s p e c i c a t i o n

    n o t a s p e c i c p r o d u c t

    F o r p a r a l l e l c o m p u t e r s , c l u s t e r s , a n d h e t e r o g e n e o u s n e t w o r k s

    F u l l - f e a t u r e d

    D e s i g n e d t o p e r m i t u n l e a s h ? t h e d e v e l o p m e n t o f p a r a l l e l s o f t w a r e

    l i b r a r i e s

    D e s i g n e d t o p r o v i d e a c c e s s t o a d v a n c e d p a r a l l e l h a r d w a r e f o r

    e n d u s e r s

    l i b r a r y w r i t e r s

    t o o l d e v e l o p e r s

  • 7/27/2019 PVM and MPI

    21/35

    8 1

    N e w F e a t u r e s o f M P I

    G e n e r a l

    C o m m u n i c a t o r s c o m b i n e c o n t e x t a n d g r o u p f o r m e s s a g e s e c u r i t y

    T h r e a d s a f e t y

    P o i n t - t o - p o i n t c o m m u n i c a t i o n

    S t r u c t u r e d b u e r s a n d d e r i v e d d a t a t y p e s , h e t e r o g e n e i t y

    M o d e s : n o r m a l b l o c k i n g a n d n o n - b l o c k i n g , s y n c h r o n o u s , r e a d y

    t o a l l o w a c c e s s t o f a s t p r o t o c o l s , b u e r e d

    C o l l e c t i v e

    B o t h b u i l t - i n a n d u s e r - d e n e d c o l l e c t i v e o p e r a t i o n s

    L a r g e n u m b e r o f d a t a m o v e m e n t r o u t i n e s

    S u b g r o u p s d e n e d d i r e c t l y o r b y t o p o l o g y

    8 2

    N e w F e a t u r e s o f M P I c o n t .

    A p p l i c a t i o n - o r i e n t e d p r o c e s s t o p o l o g i e s

    B u i l t - i n s u p p o r t f o r g r i d s a n d g r a p h s u s e s g r o u p s

    P r o l i n g

    H o o k s a l l o w u s e r s t o i n t e r c e p t M P I c a l l s t o i n s t a l l t h e i r o w n t o o l s

    E n v i r o n m e n t a l

    i n q u i r y

    e r r o r c o n t r o l

    8 3

    F e a t u r e s n o t i n M P I

    N o n - m e s s a g e - p a s s i n g c o n c e p t s n o t i n c l u d e d :

    p r o c e s s m a n a g e m e n t

    r e m o t e m e m o r y t r a n s f e r s

    a c t i v e m e s s a g e s

    t h r e a d s

    v i r t u a l s h a r e d m e m o r y

    M P I d o e s n o t a d d r e s s t h e s e i s s u e s , b u t h a s t r i e d t o r e m a i n c o m p a t i b l e

    w i t h t h e s e i d e a s e . g . t h r e a d s a f e t y a s a g o a l , i n t e r c o m m u n i c a t o r s

    8 4

    I s M P I L a r g e o r S m a l l ?

    M P I i s l a r g e 1 2 5 f u n c t i o n s

    M P I ' s e x t e n s i v e f u n c t i o n a l i t y r e q u i r e s m a n y f u n c t i o n s

    N u m b e r o f f u n c t i o n s n o t n e c e s s a r i l y a m e a s u r e o f c o m p l e x i t y

    M P I i s s m a l l 6 f u n c t i o n s

    M a n y p a r a l l e l p r o g r a m s c a n b e w r i t t e n w i t h j u s t 6 b a s i c f u n c t i o n s .

    M P I i s j u s t r i g h t

    O n e c a n a c c e s s e x i b i l i t y w h e n i t i s r e q u i r e d .

    O n e n e e d n o t m a s t e r a l l p a r t s o f M P I t o u s e i t .

  • 7/27/2019 PVM and MPI

    22/35

    8 5

    H e a d e r l e s

    2 C

    i n c l u d e m p i . h

    2 F o r t r a n

    i n c l u d e ` m p i f . h '

    8 6

    M P I F u n c t i o n F o r m a t

    2 C :

    e r r o r = M P I

    x x x x x p a r a m e t e r , . . . ;

    M P I x x x x x p a r a m e t e r , . . . ;

    2 F o r t r a n :

    C A L L M P I X X X X X p a r a m e t e r , . . . , I E R R O R

    8 7

    I n i t i a l i z i n g M P I

    2 C

    i n t M P I

    I n i t i n t * a r g c , c h a r * * * a r g v

    2 F o r t r a n

    M P I

    I N I T I E R R O R

    I N T E G E R I E R R O R

    2 M u s t b e r s t r o u t i n e c a l l e d .

    8 8

    MPI_COMM_WORLD

    communicator

    MPI_COMM_WORLD

    10

    2 3

    4

    5

    6

  • 7/27/2019 PVM and MPI

    23/35

    8 9

    R a n k

    2 H o w d o y o u i d e n t i f y d i e r e n t p r o c e s s e s ?

    M P I

    C o m m r a n k M P I C o m m c o m m , i n t * r a n k

    M P I C O M M R A N K C O M M , R A N K , I E R R O R

    I N T E G E R C O M M , R A N K , I E R R O R

    9 0

    S i z e

    2 H o w m a n y p r o c e s s e s a r e c o n t a i n e d w i t h i n a

    c o m m u n i c a t o r ?

    M P I

    C o m m s i z e M P I C o m m c o m m , i n t * s i z e

    M P I

    C O M M S I Z E C O M M , S I Z E , I E R R O R

    I N T E G E R C O M M , S I Z E , I E R R O R

    9 1

    E x i t i n g M P I

    2 C

    i n t M P I

    F i n a l i z e

    2 F o r t r a n

    M P I F I N A L I Z E I E R R O R

    I N T E G E R I E R R O R

    2 M u s t b e c a l l e d l a s t b y a l l p r o c e s s e s .

    9 2

    M e s s a g e s

    2 A m e s s a g e c o n t a i n s a n u m b e r o f e l e m e n t s o f s o m e p a r t i c u l a r

    d a t a t y p e .

    2 M P I d a t a t y p e s :

    B a s i c t y p e s .

    D e r i v e d t y p e s .

    2 D e r i v e d t y p e s c a n b e b u i l t u p f r o m b a s i c t y p e s .

    2 C t y p e s a r e d i e r e n t f r o m F o r t r a n t y p e s .

  • 7/27/2019 PVM and MPI

    24/35

    9 3

    M P I B a s i c D a t a t y p e s - C

    M P I D a t a t y p e C d a t a t y p e

    M P I C H A R s i g n e d c h a r

    M P I S H O R T s i g n e d s h o r t i n t

    M P I I N T s i g n e d i n t

    M P I L O N G s i g n e d l o n g i n t

    M P I U N S I G N E D C H A R u n s i g n e d c h a r

    M P I U N S I G N E D S H O R T u n s i g n e d s h o r t i n t

    M P I U N S I G N E D u n s i g n e d i n t

    M P I U N S I G N E D L O N G u n s i g n e d l o n g i n t

    M P I F L O A T o a t

    M P I D O U B L E d o u b l e

    M P I L O N G D O U B L E l o n g d o u b l e

    M P I B Y T E

    M P I P A C K E D

    9 4

    M P I B a s i c D a t a t y p e s - F o r t r a n

    M P I D a t a t y p e F o r t r a n D a t a t y p e

    M P I I N T E G E R I N T E G E R

    M P I R E A L R E A L

    M P I D O U B L E P R E C I S I O N D O U B L E P R E C I S I O N

    M P I C O M P L E X C O M P L E X

    M P I L O G I C A L L O G I C A L

    M P I C H A R A C T E R C H A R A C T E R 1

    M P I B Y T E

    M P I P A C K E D

    9 5

    PointtoPoint Communication

    1

    0

    2

    3

    4

    5

    source

    dest

    communicator

    Communication between two processes.

    Source process sends message to destination process.

    Communication takes place within a communicator.

    Destination process is identified by its rank in thecommunicator.

    9 6

    S i m p l e F o r t r a n e x a m p l e

    p r o g r a m m a i n

    i n c l u d e ' m p i f . h '

    i n t e g e r r a n k , s i z e , t o , f r o m , t a g , c o u n t , i , i e r r

    i n t e g e r s r c , d e s t

    i n t e g e r s t _ s o u r c e , s t _ t a g , s t _ c o u n t

    i n t e g e r s t a t u s M P I _ S T A T U S _ S I Z E

    d o u b l e p r e c i s i o n d a t a 1 0 0

    c a l l M P I _ I N I T i e r r

    c a l l M P I _ C O M M _ R A N K M P I _ C O M M _ W O R L D , r a n k , i e r r

    c a l l M P I _ C O M M _ S I Z E M P I _ C O M M _ W O R L D , s i z e , i e r r

    p r i n t * , ' P r o c e s s ' , r a n k , ' o f ' , s i z e , ' i s a l i v e '

    d e s t = s i z e - 1

    s r c = 0

    C

    i f r a n k . e q . s r c t h e n

    t o = d e s t

    c o u n t = 1 0

    t a g = 2 0 0 1

    d o 1 0 i = 1 , 1 0

    1 0 d a t a i = i

    c a l l M P I _ S E N D d a t a , c o u n t , M P I _ D O U B L E _ P R E C I S I O N , t o ,

    + t a g , M P I _ C O M M _ W O R L D , i e r r

    e l s e i f r a n k . e q . d e s t t h e n

    t a g = M P I _ A N Y _ T A G

    c o u n t = 1 0

    f r o m = M P I _ A N Y _ S O U R C E

    c a l l M P I _ R E C V d a t a , c o u n t , M P I _ D O U B L E _ P R E C I S I O N , f r o m ,

    + t a g , M P I _ C O M M _ W O R L D , s t a t u s , i e r r

  • 7/27/2019 PVM and MPI

    25/35

    9 7

    S i m p l e F o r t r a n e x a m p l e c o n t .

    c a l l M P I _ G E T _ C O U N T s t a t u s , M P I _ D O U B L E _ P R E C I S I O N ,

    + s t _ c o u n t , i e r r

    s t _ s o u r c e = s t a t u s M P I _ S O U R C E

    s t _ t a g = s t a t u s M P I _ T A G

    C

    p r i n t * , ' S t a t u s i n f o : s o u r c e = ' , s t _ s o u r c e ,

    + ' t a g = ' , s t _ t a g , ' c o u n t = ' , s t _ c o u n t

    p r i n t * , r a n k , ' r e c e i v e d ' , d a t a i , i = 1 , 1 0

    e n d i f

    c a l l M P I _ F I N A L I Z E i e r r

    e n d

    9 8

    F o r t r a n e x a m p l e

    p r o g r a m m a i n

    i n c l u d e " m p i f . h "

    d o u b l e p r e c i s i o n P I 2 5 D T

    p a r a m e t e r P I 2 5 D T = 3 . 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 2 3 8 4 6 2 6 4 3 d 0

    d o u b l e p r e c i s i o n m y p i , p i , h , s u m , x , f , a

    i n t e g e r n , m y i d , n u m p r o c s , i , r c

    c f u n c t i o n t o i n t e g r a t e

    f a = 4 . d 0 1 . d 0 + a * a

    c a l l M P I _ I N I T i e r r

    c a l l M P I _ C O M M _ R A N K M P I _ C O M M _ W O R L D , m y i d , i e r r

    c a l l M P I _ C O M M _ S I Z E M P I _ C O M M _ W O R L D , n u m p r o c s , i e r r

    1 0 i f m y i d . e q . 0 t h e n

    w r i t e 6 , 9 8

    9 8 f o r m a t ' E n t e r t h e n u m b e r o f i n t e r v a l s : 0 q u i t s '

    r e a d 5 , 9 9 n

    9 9 f o r m a t i 1 0

    e n d i f

    c a l l M P I _ B C A S T n , 1 , M P I _ I N T E G E R , 0 , M P I _ C O M M _ W O R L D , i e r r

    9 9

    F o r t r a n e x a m p l e c o n t .

    c c h e c k f o r q u i t s i g n a l

    i f n . l e . 0 g o t o 3 0

    c c a l c u l a t e t h e i n t e r v a l s i z e

    h = 1 . 0 d 0 n

    s u m = 0 . 0 d 0

    d o 2 0 i = m y i d + 1 , n , n u m p r o c s

    x = h * d b l e i - 0 . 5 d 0

    s u m = s u m + f x

    2 0 c o n t i n u e

    m y p i = h * s u m

    c c o l l e c t a l l t h e p a r t i a l s u m s

    c a l l M P I _ R E D U C E m y p i , p i , 1 , M P I _ D O U B L E _ P R E C I S I O N , M P I _ S U M , 0 ,

    $ M P I _ C O M M _ W O R L D , i e r r

    c n o d e 0 p r i n t s t h e a n s w e r .

    i f m y i d . e q . 0 t h e n

    w r i t e 6 , 9 7 p i , a b s p i - P I 2 5 D T

    9 7 f o r m a t ' p i i s a p p r o x i m a t e l y : ' , F 1 8 . 1 6 ,

    + ' E r r o r i s : ' , F 1 8 . 1 6

    e n d i f

    g o t o 1 0

    3 0 c a l l M P I _ F I N A L I Z E r c

    s t o p

    e n d

    1 0 0

    C e x a m p l e

    i n c l u d e " m p i . h "

    i n c l u d e m a t h . h

    i n t m a i n a r g c , a r g v

    i n t a r g c ;

    c h a r * a r g v ;

    i n t d o n e = 0 , n , m y i d , n u m p r o c s , i , r c ;

    d o u b l e P I 2 5 D T = 3 . 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 2 3 8 4 6 2 6 4 3 ;

    d o u b l e m y p i , p i , h , s u m , x , a ;

    M P I _ I n i t & a r g c , & a r g v ;

    M P I _ C o m m _ s i z e M P I _ C O M M _ W O R L D , & n u m p r o c s ;

    M P I _ C o m m _ r a n k M P I _ C O M M _ W O R L D , & m y i d ;

  • 7/27/2019 PVM and MPI

    26/35

    1 0 1

    C e x a m p l e c o n t .

    w h i l e ! d o n e

    i f m y i d = = 0

    p r i n t f " E n t e r t h e n u m b e r o f i n t e r v a l s : 0 q u i t s " ;

    s c a n f " d " , & n ;

    M P I _ B c a s t & n , 1 , M P I _ I N T , 0 , M P I _ C O M M _ W O R L D ;

    i f n = = 0 b r e a k ;

    h = 1 . 0 d o u b l e n ;

    s u m = 0 . 0 ;

    f o r i = m y i d + 1 ; i = n ; i + = n u m p r o c s

    x = h * d o u b l e i - 0 . 5 ;

    s u m + = 4 . 0 1 . 0 + x * x ;

    m y p i = h * s u m ;

    M P I _ R e d u c e & m y p i , & p i , 1 , M P I _ D O U B L E , M P I _ S U M , 0 ,

    M P I _ C O M M _ W O R L D ;

    i f m y i d = = 0

    p r i n t f " p i i s a p p r o x i m a t e l y . 1 6 f , E r r o r i s . 1 6 f n " ,

    p i , f a b s p i - P I 2 5 D T ;

    M P I _ F i n a l i z e ;

    1 0 2

    C o m m u n i c a t i o n m o d e s

    S e n d e r m o d e N o t e s

    S y n c h r o n o u s s e n d O n l y c o m p l e t e s w h e n t h e r e c e i v e h a s

    s t a r t e d .

    B u e r e d s e n d A l w a y s c o m p l e t e s u n l e s s a n e r r o r

    o c c u r s , i r r e s p e c t i v e o f r e c e i v e r .

    S t a n d a r d s e n d E i t h e r s y n c h r o n o u s o r b u e r e d .

    R e a d y s e n d A l w a y s c o m p l e t e s u n l e s s a n e r r o r

    o c c u r s , i r r e s p e c t i v e o f w h e t h e r t h e

    r e c e i v e h a s c o m p l e t e d .

    R e c e i v e C o m p l e t e s w h e n a m e s s a g e h a s

    a r r i v e d .

    1 0 3

    M P I S e n d e r M o d e s

    O P E R A T I O N M P I C A L L

    S t a n d a r d s e n d M P I S E N D

    S y n c h r o n o u s s e n d M P I S S E N D

    B u e r e d s e n d M P I B S E N D

    R e a d y s e n d M P I R S E N D

    R e c e i v e M P I R E C V

    1 0 4

    S e n d i n g a m e s s a g e

    2 C :

    i n t M P I

    S s e n d v o i d * b u f , i n t c o u n t , M P I D a t a t y p e d a t a t y p e

    i n t d e s t , i n t t a g , M P I C o m m c o m m

    2 F o r t r a n :

    M P I S S E N D B U F , C O U N T , D A T A T Y P E , D E S T , T A G ,

    C O M M , I E R R O R

    t y p e B U F *

    I N T E G E R C O U N T , D A T A T Y P E , D E S T , T A G I N T E -

    G E R C O M M , I E R R O R

  • 7/27/2019 PVM and MPI

    27/35

    1 0 5

    R e c e i v i n g a m e s s a g e

    2 C :

    i n t M P I

    R e c v v o i d * b u f , i n t c o u n t , M P I D a t a t y p e d a t a t y p e ,

    i n t s o u r c e , i n t t a g , M P I

    C o m m c o m m , M P I S t a t u s * s t a -

    t u s

    2 F o r t r a n :

    M P I

    R E C V B U F , C O U N T , D A T A T Y P E ,

    S O U R C E , T A G , C O M M , S T A T U S , I E R R O R

    t y p e B U F * I N T E G E R C O U N T ,

    D A T A T Y P E , S O U R C E , T A G , C O M M ,

    S T A T U S M P I

    S T A T U S S I Z E , I E R R O R

    1 0 6

    S y n c h r o n o u s B l o c k i n g

    M e s s a g e - P a s s i n g

    2 P r o c e s s e s s y n c h r o n i z e .

    2 S e n d e r p r o c e s s s p e c i e s t h e s y n c h r o n o u s m o d e .

    2 B l o c k i n g - b o t h p r o c e s s e s w a i t u n t i l t h e t r a n s a c t i o n h a s c o m -

    p l e t e d .

    1 0 7

    F o r a c o m m u n i c a t i o n t o

    s u c c e e d :

    2 S e n d e r m u s t s p e c i f y a v a l i d d e s t i n a t i o