" !" # ! $% &'% #$ ""% #% %( ! ' )% " & $ %& %# % $ " $ *+"& ) (%$ & % ! ,% - " , " ' ." $- &'% " $" % !% &'% $" "( 0 1 2 %"$ " " , ""% &% ' ! #& / ' . & "* / " # ! !" ' "" " %"" *%' 3, 4 5/ 6% 78 9: " 3 %"$ ' " "4 * * %' ""% %! " ! " ' . ";! # ( 0" %& &# .0" %& < = &' & $ % , # ( 0 0 " !#$ .. > # ! ! ! %& & ! " *& & %'0 ""% " " & %$ && %$ " 0 0 , ." ), # " , ! %'0 " &' # " % " , % ' "" = =% & ) "" ( @ ' +#" ! # ! % $A "* "' ' "B 0 "" ! C B3 4DC 9 2 " ""#& $ ? Bias in Occurrence of Message Orderings [p=8; “MCR” (Pentium4)] ,%'0 ! ! , ""% + ! " % & ' #(% ) *# $( / 01 %" +'' $+, . .$23 / ' * (7,*) ) (2,*) (1,*) 2 Bias in Occurrence of Message Orderings [p=8; “Thunder” (Itanium 2)] %" , ""% + ! " .0 ! 5 C : 4123675 3412657 2341765 1234765 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 9 Bias in Occurrence of Message Orderings [p=8; BG/L] %" , ""% + ! " >; 5 C : 4213765 4123765 3124567 2453761 2315467 2134567 1423765 1234567 0 2000 4000 6000 8000 Co-processor Mode 10000 12000 14000 16000 Virtual Node Mode 18000 20000 + & !' 4 %! % """% .. > - , #% & %$ = %& " &" '&" " ! ' " % !!"' "" ) ! " ', , !& -#" %' =% &" 0% '% %"! ! " '@ ' , ' % " "' *'' % # " < &0 ! *# '' "@ F #& " ! " '' ! ! % $A " , % " %#&A =% &" #(%& / 5' 65 7 %' %!! $( 0 & 0 %! ! . " =% &" ?7/ 0&" 0 " / " # !!%%" ' " 7(8 & ) '" & 5 - "E ) ! "' ' =% & if rank is 0 then // Master receive on p0 repeat p-1 times MPI_Recv (*); // “Wildcard” receive else MPI_Send (message 0); // Send to p0 " ! , !& #& .%"< >&#%&" + ' "" -& & '"" !G; %& %'' & % " %& " %$ *&( , !& ", %& %& 0 " *&( #& if rank is 0 then let s (an initial value) repeat p-1 times t MPI_Recv (*); s s + t // May overflow! else let u (some constant > 0) if rank is odd then message u else message -u MPI_Send (message 0); , !& #& 2 ' repeat .%"< >&#%& ! ' '%&' % %!'%" " & # " &"* 0 '" "% &#%& " & -& & %&% ' ! &#%& " &3 %#&4 *@ A %"" '% , !& " % '%& 0! -& & '"' % &#%& "! %& @ A "*&% %!! cond(s) ""* ' ' s local_computation (); // Non-blocking send all foreach n Neighbors do MPI_Isend (s n); repeat |Neighbors| times x MPI_Recv (*); s s x // Combine // Wait for sends to complete MPI_Waitall (); until cond (s); + & !' ! %! % ) " ', ! & #& " 9"!!: ;<' ") = %& " &" '&" " ! ' " % !!"' "" . .. > - , , ""% ! %- & $ % "3 , - " !" / & %$#$% % ! & / " - ' " & # . "4 % & %% B !& "@ ""% ** % ! ! = &' ' & , "" ' & #% , * A ! %$ " !"% ! ' #% " " ""% " ! ""% "( 0%# %$!%% $ " #$!$ % '%& & $ ' " !; ' ( 0 5H I! "< '%& & " J : ? ! "! / & %$" !#$ " '0 "" * * + #% , !& '0 " * & $ 5 % %= * 0 % &' " %& &0 **' & % 0 % &'% " &' %= % . %'<"" %& &( ! ( * K 0 !% % ( 0 %=: ! ' %"" % '%& & $ %!% "# ( %& " ' & $ " !" 2 ' "! & #% & $! "' '& -"" % " ""% * %& & 0 ** *= ! # * ""% " ""% " ! ! % % > '"% %'0 ' % $'%& &" %! % ' !&=' % 0'%& & $ ' %" ! * pC2 3 ?4 3 ? 4 3 ?4 3 ? 4 3? 4 3? " **' * *' ' %& " %& & ! "( & &# & $ ! 4 " ! 0% !& %& % " 9 ' , , ), %& & " " % !%!! * "% *& *%' ,%$ ' % $'%& & . &! & & "! " !, ! & ! &%% ), " & & L "! J && %$ " %< " " * % %! & %$ , " '*'' % " && %$ " % "'%& &'0% "* %& &" '0 & 6% !! "< K 0% , & " " & E ! &" + & ) .. := !' ! > %! " ', - , '&" " ! ' % !& ""% #& " #% & %$ " % !!"' "" = %& " &" % ? ) ! "* %'0 * 0 !& #& " %&) #% " ! ! "! #% ' ' "! # ** %&% & %* &" * 9 (%$ 7 2 >MN 2 ! " O %! '" & % ?G, , & % '$19 P" #% !( ! 01 ?2 , ;" ,%= * !" ' "" ; ! ) ! "' ' = -& & '"" ! '" .0 % C 3p 4DC 9 2 " ! %= C 7 9 " =% & B #" ""% ! " pC .0 " $K & &" 1 ?Q *%& & ""#& ! -"" -* C ""#& ! %& & ! " L %& & $&< & $ RR %& " = ' " L ! 1 d d 1 d %& " " k k d ,d "%* 1 1 d 1 e No Perturbation [p=8] ) ! "' ' % & ' #(% ) *# $( / 1272 ) $+, . .$23 / #% ) With Perturbation [p=8] ) ! "' ' K 0 #% ) ! % "' ' , ""% + ! " '' ) "%& & ! ! "! "' ' " '%& & $ / ** "* % @ ! %& A ' "" (0'0 ""% ! * & $% % ! & %' '! " % = % 0" ! %&% " %& & %&' #% **' % "( 0 " &" "% '0 " " ( <&%! 0( ! %& $0 % $ "% ) %&0%"&( ' % * ! !'% ! ! " &" = ! , ! & #& 3+ *&(4 0 %'0 " ? " &"* , ! & & #& 2 ' ! &#%&%& & %& &*&% * " & '" '" %& & '"' "% " % "! " " ! ** = " pC2 % ! 0 " '%& %& "% !cond(s) #%" ! ""#& " " , %" @*%& % A * L '$ 0% % $cond(s) !"% & %? * !"% SpD % " " " # & !"% " '" *%& % 2 ' " &"3 C 4 9 + & ) .. = 8 !' ! > %! % " ', !& - , ""% %& " &" #& " #% & %$ '&" " % '0 L "% & $ % %& & $ , & "" ! % ! ' "! = ! ' "! ! & 0% !& 0 % K& &% & $ %&% &'% " .. > . (%!%@' & A " , & && %$ "' # ! 0 , " '*'' % & %$ % G %& & " '*' , % ( 0 %! .. > *% ( <* , 0 % " #% " % " ), & " 5H I! "< J : ), "% '% %& $"" " % %&' % & " , ." % '- %& $""* F ! , % % , "%& % ! ' " 0 '<#%"'-!% =" .%"<" L "% & ", ! ' M " , % "E &=- TBF ! "BF%'0 7H J 9 % % %& $"" & $ %'0 !" !"; ' " #% " ' & &' " ** " " %!# * #&'< . %& "% " " $#$/ 6% T 0 I ! "< 8 9 = ! =" % %& $""#$ 0 " / .-J B ' & " 7 8 & #%"!. " + ' " ' . & "( 0 + & U' 3 77/ + 7* " ' &* # & ! ' " 6 !" ' " ' * % ! GGBF % ! & .% " " "(; ' & #%'< ! *%" ' " * ";( %"" % ' " % !! # $B ) 4 & " % % %& $"" %+ - %& $"" -> V K0 & % - . *& ;+ " %&6% '& & %# % " " % % !!$ % '% %& $"" %" ' % 5 ,: , %" %&!% +" $5 % % ! /% ": ) '%& %& ;# !"% %& $""5,',%" 7 : *%' ,+ ! &'0 '< 5 & & # %& & & : %' % " %&6% H 66- %& $6 5 % %" ) : ! ? , !& .%"< #& %' %!! V (% " 0 ' "%& &% %& %#& ""% " 0 & ! V %& & 0 # %$" " ""#& -!% !* & 0 %! ! . " =% & if rank is 0 then sleep (.1 sec); let s 0 while messages available do MPI_Recv (*); t s s + t print (s); else let message 10rank-1 MPI_Send (message 0); ? , !& #& #& ? / / " 0&" 0 " ! %!&'< " ' %'L " 0&" 0 "" % %' ' & % %#& % !"0% %'0 0&" 0 @ 0 <"A % !@ %"A . @ %A " %'L # 0 "& "% ! &%" $ @. ' ' &3 &* "& " & $(0 ! 0 %4 %! % # ! ' "" "% 0&" 0 " !!% 0&" 0 "" ! $ %'L "& "#$" ! , !& " / " # !!%%" ' %"<L "& " ""% " & & & %& & $! %!&'<" 0 < - , A &< &0 ! *! %!&'<#$' '& " % ? ), & &" % ! ?? ) ! "' ' .0 '%& & $ * +! % " " ! ?2 " &"* , ! & #& %' %!! = C B= ' ! * " !! & %$ *7 ? "' ' +#" !%& & ""#& % ! " # & !& %$ *7 " ' "%* 2 " ?9 " &"* , ! & #& ? / 0&" 0 " = & !"$ ' '& .0 < % ! % "# 0!" # ! "% !%!! % 7 "' % * %& " @F%& A C "% % 3' & ! " 4 0 " %!% & $ %= ' +#" % , % =' %& & $( 0 % 7 9 "' " #! " *%&! # * %& " *%& * %&$ 7 9 #! " 1?9 %& " ? ' " &"3 C24 ? + U' % ! *%" ' . &* # & ! .% '" 6 !" ' * % ! GGBF % " " "(; ' & #%'< F '" * %' 6% " & " ! & ! * "' / % " '*'% %& $""% ! +#U' !%#" %' ' '0& % "* % " *%" ' " ' 6% *'' " * ";( %"" % ' " % % %& $"" %+ - %& $"" -> V K0 & % - . *& ;+ " %&6% M <" +" $3 %" "4 ,+ 3 " !#$ 77/ % * % !! # ! &'0 '< 4 ,% & V $ %# %'%! ' ! " %& " "% !' & & %# % " + " ' &%" 0"$ % ? + - '0 ' - &'% F # %$ - % " !3 /> #%"!4 - . . & " *%' ,! ! - . *% -# %' ' -#" %' -(% - %& $"" -#" %' & % = ! !. %! %&+ 6% " ' G- . . % "* % " ' - . *% ' *% - . *% - . *% %'< ! . % "* !% &'% " ' ?