A Simulator for Large-scale Parallel Computer ... - Google Sites

2 downloads 209 Views 374KB Size Report
processor models. We describe the design of the simulator, provide performance ... The use of simulation, however, can a
!"#$%&'()*+",*+"-(+./012('/"3(+(''/'" 4*%5&)/+"!+26$)/2)&+/1" " " #$%&'(")*"+,-((.-/'"0.12'"34,1(&.'-((5-/"675&&"#%,-85%4/"+5(.9:";*"]B;NY*"P:."('E$1,&5%",%7:'&.7&$%."'("E54$1,%/",115L'-2"'&"&5".,('1="D." .T&.-4.4"L'&:",44'&'5-,1"-.&L5%A"E54.1(/"&%,7."8'1."85%E,&(/",-4"E5%."4.&,'1.4" 9%57.((5%"E54.1(*"V."4.(7%'D."&:."4.('2-"58"&:."('E$1,&5%/"9%5?'4."9.%85%E,-7." %.($1&(/",-4"9%.(.-&"(&$4'.("(:5L'-2":5L",991'7,&'5-"9.%85%E,-7."'(",88.7&.4"D=" E,7:'-."7:,%,7&.%'(&'7(*""

" 8"9:)+*;&2)$*:""

P:."4.2%.."58"9,%,11.1'(E"&:,&"E$(&"D.".T95(.4"&5".88'7'.-&1="$&'1'^."E54.%-" 1,%2.I(7,1."9,%,11.1"75E9$&'-2"(=(&.E("'("'-&'E'4,&'-2*"_.7,$(."'-4'?'4$,1"9%57.((5%" 9.%85%E,-7."2,'-(",%."7$%%.-&1=",7:'.?.4"9%'E,%'1="&:%5$2:"E$1&'91."75%.("5-"," 7:'9",-4"E$1&'91."&:%.,4("58".T.7$&'5-"'-","75%./"&:."%,&.",&"L:'7:"9,%,11.1'(E"E$(&" D.".T95(.4"D=",-",991'7,&'5-"L'11"'-7%.,(.",(","8$-7&'5-"58"5?.%,11"E,7:'-." 9.%85%E,-7."%.1,&'?."&5":'(&5%'7,1"&%.-4(*"P:'("%.($1&("'-"2%.,&.%"4.('2-"75E91.T'&=" 85%"D5&:"E,7:'-.",%7:'&.7&(",-4",991'7,&'5-"(58&L,%."4.?.159.%(*"P:."$(."58" ('E$1,&'5-/":5L.?.%/"7,-",'4"D5&:"'-"&:.'%".885%&("&5"5D&,'-":'2:"$&'1'^,&'5-"8%5E" 8$&$%."75E9$&'-2"91,&85%E(*"" 6'E$1,&'5-"'(",1%.,4="$(.4".T&.-('?.1="'-"&:."4.('2-"58"75E9$&'-2"(=(&.E("85%" D5&:"8$-7&'5-,1"?.%'8'7,&'5-",-4"&'E'-2".(&'E,&'5-*"3(",-".T,E91."58"&:."%,-2."58" 7,9,D'1'&'.(",?,'1,D1./"'-71$4'-2"`$(&","8.L".T,E91.("58"59.-I(5$%7."&'E'-2" ('E$1,&5%(/"&:.%.",%."9%57.((5%"('E$1,&5%("W_'-A.%&/".&",1*/"RJJKZ"BH6'EY/"E.E5%=" ('E$1,&5%("W+,75DZ"V,-2/".&",1*/"RJJHY/",-4"-.&L5%A"-(Ia"W-(IaY*" 6.?.%,1"('E$1,&5%(":,?."D..-"4.?.159.4"&5"2.-.%,&."9.%85%E,-7.".(&'E,&.(" 85%":'2:I9.%85%E,-7."75E9$&'-2",%7:'&.7&$%.(*"P:.(."%,-2."8%5E":'2:I8'4.1'&=",-4" 75E9$&,&'5-,11=".T9.-('?."('E$1,&5%("85%"E.,($%'-2"9.%85%E,-7."D.&L..-"&L5" -54.("Wb54%'2$.(/".&",1*/"RJJaZ"]-4.%L554/").?.-:,2.-/"c"b54%'2$.(/"RJJSY"&5" 15L.%I8'4.1'&=",-4"15L.%I75(&"('E$1,&5%("&:,&"7,-".(&'E,&."9.%85%E,-7."5-"1,%2.I (7,1."E,7:'-.(*"P:.(."15L.%I8'4.1'&="('E$1,&5%("$(.","?,%'.&="58",99%5,7:.("&5" 2.-.%,&."&:.",991'7,&'5-d("9%57.((5%",-4"-.&L5%A"L5%A15,4"'-71$4'-2"&%,7'-2/"4'%.7&" .T.7$&'5-/",-4"&:."$(."58"(A.1.&5-",991'7,&'5-(*"344'&'5-,11=/"&:."815L"58"4,&," &:%5$2:"&:."-.&L5%A"'("E54.1.4"L'&:"?,%='-2"8'4.1'&=*"N-"&:."9%.(.-&"9,9.%"L.",%." 75-7.%-.4"L'&:"15L.%I8'4.1'&=",-4"15L.%I75(&"('E$1,&'5-"&.7:-'U$.("&5".-,D1." ('E$1,&'5-",&"?.%="1,%2."(7,1.(/",-4"L."L'11"D%'.81="4'(7$(("&:.(."('E$1,&5%"?,%',-&(" '-"E5%."4.&,'1/"2'?'-2".T,E91.("58"('E$1,&5%("($995%&'-2".,7:"7,9,D'1'&="D.85%." &$%-'-2"&5","4.&,'1.4"4.(7%'9&'5-"58"5$%"('E$1,&5%"'-"6.7&'5-"R*"" "

R"

V:.-",-",991'7,&'5-"'("&%,7.4/"&:."8$11"9%52%,E"'("%$-"'-"5%4.%"&5"7511.7&" '-85%E,&'5-",D5$&":5L"'&".T.7$&.(*"P:."%.($1&'-2"4,&,"'("5$&9$&"'-&5","&%,7."8'1./" L:'7:"75-&,'-("4,&,"($7:",("&:."&'E."(9.-&"'-"75E9$&,&'5-",-4"&:.",E5$-&"58"4,&," (.-&",-4"%.7.'?.4"D=".,7:"-54.*"P:'("&%,7."8'1."'("%.,4"D="&:."('E$1,&5%/",115L'-2"'&"&5" %.91,="&:."%$-/",4`$(&'-2"&:."('E$1,&.4"&'E.("&5",775$-&"85%"4'88.%.-7.("D.&L..-"&:." ('E$1,&.4"E,7:'-.",-4"&:,&"L:'7:"L,("$(.4"&5"7511.7&"&:."&%,7.("We:.-2/"V'1E,%&:/" +,2,4'(:9%,(,4/"c"39">*;/'"

P:."B.((,2.";,(('-2"N-&.%8,7."WB;NY"WB.((,2.";,(('-2"N-&.%8,7."\5%$E/"RJJfY" 9%5?'4.(","(&,-4,%4"'-&.%8,7."85%"9%52%,EE'-2"4'(&%'D$&.4"E.E5%="9,%,11.1"E,7:'-.("'-"," 95%&,D1.",-4".88'7'.-&"E,--.%*"P:."B;N"'-&.%8,7."7$%%.-&1="75-('(&("58"5?.%"RJJ"8$-7&'5-" 7,11("9%5?'4'-2","%'7:"(.&"58"75EE$-'7,&'5-"9%'E'&'?.(*"PL5"58"&:."E5(&"75EE5-"(.&("58" 9%'E'&'?.("'-71$4."&:5(."85%"95'-&I&5I95'-&"75EE$-'7,&'5-",-4"&:5(."85%"7511.7&'?." 75EE$-'7,&'5-*";5'-&I&5I95'-&"59.%,&'5-(",%.",?,'1,D1."85%","?,%'.&="58"E54.(/"'-71$4'-2" D$88.%.4/"(=-7:%5-5$("WL'11"5-1="75E91.&.",8&.%"&:."E,&7:'-2"%.7.'?."'("95(&.4Y/",-4"%.,4=" W&:."E,&7:'-2"%.7.'?."E$(&"D."95(&.4"D.85%."&:."(.-4Y"E54.(*"\5%".,7:"58"&:.(."(.-4" E54.(/",("L.11",("&:."%.7.'?."7,11(/"&:.%.",%."D157A'-2"WL:'7:":,?."75E91.&.4"L:.-"&:.=" %.&$%-Y",-4"-5-D157A'-2"W,"(.9,%,&."7,11"'("$(.4"&5"7:.7A"85%"75E91.&'5-Y"?.%('5-(*"N-" ,44'&'5-"&5"&:.(."95'-&I&5I95'-&"7,11(/"7511.7&'?."59.%,&'5-("&:,&"'-?51?."2%5$9("58" 9%57.((5%(",%."75EE5-1=".E915=.4*"P:.(."'-71$4."($7:"59.%,&'5-(",(",11I&5I,11"D%5,47,(&/" ,11I&5I5-."%.4$7./",11I&5I5-."2,&:.%/",-4"(5"5-*"_5&:"&:."95'-&I&5I95'-&",-4"7511.7&'?." 59.%,&'5-(",%."&=9'7,11="'E91.E.-&.4"$('-2","%.1,&'?.1="(E,11"(.&"58"95'-&I&5I95'-&"

"

K"

75EE$-'7,&'5-"9%'E'&'?.("L:'7:",%."(9.7'8'7"&5","9,%&'7$1,%"-.&L5%A'-2"&.7:-5152=*" 6A.1.&5-",991'7,&'5-(",-4"B;N"&%,7."8'1.("&=9'7,11="9%5?'4."'-85%E,&'5-",D5$&"5-1="B;N" 7,11(",-4"&:.'%",((57',&.4",%2$E.-&"1'(&(*"P:'("E.,-("&:,&"-5"'-85%E,&'5-"'(",?,'1,D1."&5"&:." ('E$1,&5%",D5$&"&:."15LI1.?.1"95'-&I&5I95'-&"E.((,2.("&:,&","9,%&'7$1,%"B;N"1'D%,%="$(.("&5" 'E91.E.-&",-"59.%,&'5-*"P:."&'E'-2("4$."&5"&:."15LI1.?.1"59.%,&'5-("E$(&"D."E54.1.4"D=" &:."('E$1,&5%/",-4"&:'("9%.(.-&("$("L'&:"&:."5995%&$-'&="&5"'E91.E.-&","?,%'.&="58"E54.1(/" ,&"?,%='-2"1.?.1("58"8'4.1'&=/"&5"%.9%.(.-&"&:."B;N"59.%,&'5-(*"3&"&:."15LI8'4.1'&=/"15LI75(&" .-4/"B;N"7511.7&'?.("7,-"D."&%.,&.4"L'&:5$&"75-('4.%,&'5-"58"&:."15LI1.?.1"B;N" 'E91.E.-&,&'5-*"3-",-,1=&'7"5%".E9'%'7,1"9.%85%E,-7."E54.1"75$14"D."$(.4"&5"4.&.%E'-." L:.-".,7:"9%57.(("L'11"75E91.&."&:."59.%,&'5-/",-4","('-21."('E$1,&5%".?.-&"&5"75-&'-$." .T.7$&'5-"58",11"9%57.((.(",&"&:.",99%59%',&."?'%&$,1"&'E."L5$14"D."'-(.%&.4"'-&5"&:.".?.-&" U$.$.*"3":'2:.%I8'4.1'&=",99%5,7:/"L:'7:"'("'E91.E.-&.4"'-"66PXE,7%5/"'("&5":,?."&:." ('E$1,&5%"(7:.4$1.".?.-&("-..4.4"85%",11"58"&:."15LI1.?.1"4,&,"&%,-(8.%("'-"&:."(,E."L,=",-" B;N"'E91.E.-&,&'5-"L5$14*"N8"&:'("'("45-."L:'1. ",1(5"$('-2","-.&L5%A"E54.1"&:,&"'-71$4.(" 75-2.(&'5-".88.7&(/"&:.-"&:.".88.7&"58"75-2.(&'5-"5-"&:."7511.7&'?."59.%,&'5-"&'E."'(".(&'E,&.4" D="&:."('E$1,&5%*"N-"&:'("L,=/"&:.".88.7&("58"7:,-2.("'-"&:."B;N"'E91.E.-&,&'5-"7,-"D." (&$4'.4"$('-2"&:."('E$1,&5%*" )'2:&L.'2:&",991'7,&'5-"&:%.,4("9.%85%E"B;N"59.%,&'5-("&:%5$2:"7,11("&5"&:."'-&.%8,7." 1,=.%/"%.($1&'-2"'-"4.&.%E'-,&'5-"58"75E91.&'5-"&'E.("85%"&:."%.U$'%.4".?.-&("D="&:." -.&L5%A"E54.1",-4"&:."(7:.4$1'-2"58"&:.(.".?.-&("L'&:"&:."4'(7%.&.".?.-&"('E$1,&5%*"3" &'E.1'-."4.&,'1'-2"&:."7:%5-5152="58".?.-&("(7:.4$1.4"D="&L5"1'2:&L.'2:&",991'7,&'5-" &:%.,4("9.%85%E'-2"&=9'7,1"59.%,&'5-("'("(:5L-"'-"\'2$%."a*"V:.-",-"B;N"(.-4"5%"%.7.'?." 59.%,&'5-"'("9.%85%E.4/"&:."&:%.,4"='.14("$-&'1"&:.",99%59%',&.".?.-&"'(".T.7$&.4"D="&:." ('E$1,&5%""'-4'7,&'-2"&:,&".-5$2:"('E$1,&'5-"&'E.":,(".1,9(.4"85%"&:."4,&,"&5":,?."D..-"(.-&" 5%"%.7.'?.4*")'A.L'(."L'&:"75E9$&,&'5-/"&:.",991'7,&'5-"&%,7."5%"#;]"E54.1"4.&.%E'-.(" L:.-","75E9$&,&'5-"59.%,&'5-"75E91.&.(",-4"(7:.4$1.(","75E91.&'5-".?.-&"L'&:"&:." ('E$1,&5%*"P:.",991'7,&'5-"&:%.,4"9.%85%E'-2"&:."75E9$&,&'5-"='.14("$-&'1"&:'("75E91.&'5-" .?.-&"'("&%'22.%.4*" "

" " \'2$%."aM"3"&'E.1'-."85%"&:."'-&.%,7&'5-"58"&L5"1'2:&L.'2:&",991'7,&'5-"&:%.,4("L'&:" &:."4'(7%.&.".?.-&"('E$1,&5%"85%"B;N"(.-4X%.7.'?."59.%,&'5-(",-4"75E9$&,&'5-*"" " 3"('E91'8'.4"71,(("7511,D5%,&'5-"4',2%,E"85%"&:."66PXE,7%5"B;N"75E95-.-&("'("(:5L-" "

S"

'-"\'2$%."G*"3991'7,&'5-"&:%.,4("&:,&"$&'1'^."B;N",%."'-(&,-7.("58"71,((.("'-:.%'&'-2"8%5E"&:. " mpiapp"71,((/"L:'7:"'-"&$%-"'-:.%'&("8%5E"&:."('E$1,&5%d("2.-.%'7"71,(("85%"&:%.,4(/" thread*"P:%.."($7:"B;N",991'7,&'5-(",%."(:5L-"'-"&:."8'2$%.M"mpipingpong"W,"('E91." 9'-2I95-2"(A.1.&5-",991'7,&'5-Y/"minimd"W,"(A.1.&5-"E51.7$1,%"4=-,E'7(",991'7,&'5-" L:'7:"'("4'(7$((.4"'-"6.7&'5-"RY/",-4"mpitrace"W,"&%,7."8'1."%.,4.%"L:'7:"'("4'(7$((.4"'-" 6.7&'5-"RY*"@,7:"B;N",991'7,&'5-"5D`.7&"%.8.%.-7.(",-"mpiapi"5D`.7&/"L:'7:"9%5?'4.("&:." B;N",991'7,&'5-"9%52%,EE'-2"'-&.%8,7.*"P:."mpiapi"5D`.7&"$(.(",-"mpistrategy" 5D`.7&"&5"('E$1,&."B;N"75EE$-'7,&'5-"D="D$'14'-2"&:.",99%59%',&."kernel"5D`.7&("W(:5L-" '-"\'2$%."RY*"P:."mpistrategy"5D`.7&":,(","7511.7&'5-"58"(&%,&.2'.("(9.7',1'^.4"85%" 9,%&'7$1,%"59.%,&'5-(*"\5%".T,E91./"'E91.E.-&,&'5-("58"&:. "MPI_Barrier"8$-7&'5-",%." (9.7',1'^,&'5-("58"&:."mpibarrierstrategy",D(&%,7&"D,(."&=9.*"69.7',1'^.4" 'E91.E.-&,&'5-("58"D,%%'.%"(&%,&.2'.("7,-"D."9%5?'4.4/"5%"&:."9%5?'4.4" mpicorebarrier"(9.7',1'^,&'5-"7,-"D."$(.4*"P:'("(9.7',1'^,&'5-"7,-"9%5?'4.",":'2:I 8'4.1'&="D,%%'.%"'E91.E.-&,&'5-"&=9'7,1"58"E,-=",7&$,1"B;N"'E91.E.-&,&'5-("5%"'&"7,-"

9.%85%E","15LI8'4.1'&="D,%%'.%"&:,&"%.U$'%.("E'-'E,1"9%57.((5%"&'E."&5"('E$1,&.*"P:.(."15LI 8'4.1'&="7511.7&'?."59.%,&'5-(",%."7$%%.-&1="5-1="$(.4"&5"(=-7:%5-'^."&:."-54.(",8&.%" MPI_Init"'("7,11.4*"[&:.%L'(./"&:.":'2:I8'4.1'&="B;N"75%."59.%,&'5-(",%."$(.4"'-"&:." %.($1&("9%.(.-&.4":.%.'-*" "

" " " \'2$%."GM"#511,D5%,&'5-"4',2%,E"85%"B;N"75E95-.-&(*"651'4"1'-.("'-4'7,&." '-:.%'&,-7."W'(I,"%.1,&'5-(:'9(Y",-4"4,(:.4"1'-.("'-4'7,&."75-&,'-E.-&"W:,(I," %.1,&'5-(:'9(Y*"" "

=6/"?/)@*+A">*;/'"

3("&:."-.T&"2.-.%,&'5-"$1&%,"(7,1."(=(&.E("'-7%.,('-21="%.1="5-":'2:.%" 75-7$%%.-7'.(/"&:.".88.7&"58"&:."'-&.%75--.7&'5-"-.&L5%A"5-"&:."5?.%,11"(=(&.E" 9.%85%E,-7."D.75E.(".?.-"E5%."'E95%&,-&/".(9.7',11="85%",991'7,&'5-("L'&:"'-&.-(." 75EE$-'7,&'5-"15,4(*"#5-(.U$.-&1=/"&:.%.":,("D..-"%.-.L.4"'-&.%.(&"'-" '-&.%75--.7&"4.('2-"'-"&:."75E9$&.%",%7:'&.7&$%."75EE$-'&="L'&:"E,-="-.L"'4.,(" "

f"

,-4"9%5E'('-2"%.($1&("D.'-2"%.95%&.4*"N&"'("'E95%&,-&"&5"9%.4'7&"&:."9.%85%E,-7."58" &:.(."9%595(.4"'-&.%75--.7&"'4.,("5-"E54.%-":'2:I9.%85%E,-7."75E9$&'-2" ,991'7,&'5-(*"V."D.1'.?."5$%"('E$1,&5%"L'11"D."'-(&%$E.-&,1"'-"&:'("%.(9.7&/",("&:." (58&L,%."8%,E.L5%A",115L(".,(="'-&.2%,&'5-"58"-.L"E.&:54("&5".-,D1.".T9.%'E.-&(" L'&:"9%595(.4"&.7:-'U$.("5-"1,%2."(7,1./"%.,1"L5%14",991'7,&'5-(*"" N-"A..9'-2"L'&:"&:."857$("5-"E54$1,%'&="'-"&:."('E$1,&5%"4.('2-/"&:."-.&L5%A" (=(&.E"'("4.('2-.4",(","(.9,%,&."E54$1."'-"5%4.%"&5"9%5?'4."&:."81.T'D'1'&="%.U$'%.4" &5"($995%&","%'7:"(.&"58"&.7:-'U$.(*"B5%.5?.%/"&:."-.&L5%A"7,-"D."('E$1,&.4"'-" ,%D'&%,%="4.&,'1/"L:'7:",115L("&%,4'-2"588"D.&L..-"8'4.1'&=",-4"%$-&'E."58" ('E$1,&'5-(*"\5%".T,E91./"&:."-.&L5%A"75$14"('E91="D.","1,&.-7=ID,(.4"E54.1/" L:'7:",(('2-(","9%.I(9.7'8'.4"4.1,="&5".,7:"E.((,2./"5%","7=71.I1.?.1"E54.1"&:,&" 7,9&$%.("&:."8'-.%"4.&,'1("58","%5$&.%*"P:."2.-.%,1"8%,E.L5%A"7,-"($995%&",-=" &595152=/"%5$&'-2",125%'&:E/".&7*/",-4"7,-"D.".,('1="&$-.4"85%"-.&L5%A"9,%,E.&.%(" ($7:",("D,-4L'4&:",-4"1,&.-7=*"_.15L/"L."4'(7$(("&:."D,('7"75E95-.-&("58"&:." 7$%%.-&1=",?,'1,D1."-.&L5%A"(=(&.E/"L:'7:"L."$(.4"'-"&:.".T9.%'E.-&("4.(7%'D.4"'-" 6.7&'5-"a*"

=*5*'*.B"(:;"C*&)$:."

V'&:'-"66PXE,7%5/",-"'-(&,-7."58"&:."-.&L5%A"5D`.7&"'("4.8'-.4"D="'&(" &595152'7,1"4.(7%'9&'5-"W'*.*/"&:."75--.7&'5-("D.&L..-"%5$&.%(X9%57.((5%(Y",-4"," %5$&'-2"E.&:54"&5"75E9$&.","9,&:"85%","E.((,2."D.&L..-"&L5"9%57.((5%(*"3(" '11$(&%,&.4"'-"\'2$%."H/"L."7,-"7$%%.-&1="($995%&"&5%$(/"8,&I&%../":=9.%7$D./"#15(/",-4" 2,EE,"&595152'.(/"4.&,'1.4"4.(7%'9&'5-("58"L:'7:"7,-"D."85$-4"'-"W>,11="c"P5L1.(/" RJJGY*"P:."product"5D`.7&"'-"&:'("8'2$%.".-,D1.("9%54$7'-2"&5%'"58"4'88.%.-&" 4'E.-('5-(*"P5"4.8'-.","-.L"'-&.%75--.7&/"&:."$(.%"-..4("&5"9%5?'4.","E.&:54"&5" D$'14"&:."&595152="58"&:."'-&.%75--.7&",-4","%5$&'-2"E.&:54"&5"75E9$&.","9,&:"85%"," E.((,2."D.&L..-"&L5"9%57.((5%(*"P:."(=(&.E"L'11"&,A."7,%."58"&:."4.&,'1("58" 75-2.(&'5-",("L."L'11".T91,'-"'-"&:."-.T&"(.7&'5-*" "

" \'2$%."HM"N-:.%'&,-7."4',2%,E"85%"-.&L5%A"5D`.7&(*"

"

" P:."7$%%.-&"-.&L5%A"E54$1."'("4.('2-.4"85%"E,T'E$E"%$-&'E.".88'7'.-7=*"P:." %5$&'-2",125%'&:E(",%."(&,&'7"W'*.*/"E.((,2.("D.&L..-"&L5"9%57.((5%(",1L,=("85115L" &:."(,E."9,&:/"%.2,%41.(("58"-.&L5%A"(&,&$(Y",-4"85115L"&:."(:5%&.(&"9,&:"5-"&:." -.&L5%A*"_,-4L'4&:"'(",1157,&.4"5-",11"1'-A("'-"&:."E.((,2."9,&:"85%"&:.".-&'%."&'E." %.U$'%.4"&5"&%,-(E'&",11"58"&:."4,&,*"

4*:./1)$*:">*;/'$:."

b.7.-&"(&$4'.("W]B;N"8'1.(",%." 5D&,'-.4"D="1'-A'-2"&:.",991'7,&'5-"L'&:","1'D%,%="&:,&"$(.("&:.";B;N"'-&.%8,7."&5" '-&.%7.9&"B;N"7,11(*"P:.">]B;N"85%E,&"%.75%4("E5%."'-85%E,&'5-"&:,-"[P\/" '-71$4'-2"&:."8$11"('2-,&$%."58",11"B;NI!",-4"B;NIR*"V'&:"&:'(",44'&'5-,1"4.&,'1"L.",%." ,D1."&5"E5%.",77$%,&.1="('E$1,&.",-",991'7,&'5-*"P:.">]B;N"85%E,&",1(5"%.75%4(" %.&$%-"?,1$.(",-4"B;N"%.U$.(&"'-85%E,&'5-*"P:'(",115L(".%%5%"7:.7A'-2",-4"9.%E'&(" $("&5"E,&7:"'EE.4',&."E54."B;N"59.%,&'5-("L'&:"&:."B;N"59.%,&'5-("&:,&"75E91.&." &:.E*"N-",44'&'5-/">]B;N",115L("'-4'?'4$,1"8$-7&'5-("&5"D."9%58'1.4"'-(&.,4"58"&:." .-&'%."9%52%,E*";%57.((5%":,%4L,%."9.%85%E,-7."75$-&.%"'-85%E,&'5-"7,-",1(5"D." (&5%.4"'-">]B;N"8'1.("$('-2"&:.";.%85%E,-7."3991'7,&'5-";%52%,EE'-2"N-&.%8,7." W;3;NY*"P:'(",115L("'-85%E,&'5-"($7:",("7,7:."E'((.(",-4"815,&'-2"95'-&"59.%,&'5-(" &5"D."1522.4*"6$7:"4,&,"'("%.75%4.4"D5&:"L'&:'-",-4"D.&L..-"B;N"7,11(*"P:'(" '-85%E,&'5-"L'11"D."$(.4"D="&:."('E$1,&5%"'-"E5%."4.&,'1.4"9%57.((5%"E54.1(/",(" &:.=",%."E,4.",?,'1,D1.*" "

#A/'/)*:"!55'$2()$*:1""

P%,7."8'1.(",%."2.-.%,&.4"L'&:"(9.7'8'7",991'7,&'5-"'-9$&",-4"9,%,11.1"&,(A" 75-8'2$%,&'5-/"='.14'-2","4.&,'1.4"9%58'1."58"5-."9,%&'7$1,%"%$-*"P:%5$2:"&:." E,-'9$1,&'5-"58"9,%,E.&.%("$(.4"&5"E54.1"&:.":,%4L,%.",-4"(L,99'-2"'-"4'88.%.-&" E.((,2'-2"E54.1(",-4"(&%,&.2'.(/"&%,7.I4%'?.-"('E$1,&'5-"7,-"75-&%'D$&." ('2-'8'7,-&1="&5"9.%85%E,-7."59&'E'^,&'5-",-4":,%4L,%."4.('2-",&"9,%,11.1'(E"(7,1.(" 5-"&:."(,E."5%4.%",("&:,&"$(.4"&5"2.-.%,&."&:."&%,7.*"05L.?.%/"&:."7:,11.-2."58" 59&'E'^'-2"754.("5%"4.('2-'-2":,%4L,%."85%".T&%.E."(7,1.("%.U$'%.("('E$1,&'5-" 7,9,D'1'&'.("15-2"D.85%.":,%4L,%."'(",7&$,11=",?,'1,D1."85%"&%,7."8'1."2.-.%,&'5-*" 344'&'5-,11=/"E,-="4'(&%'D$&.4IE.E5%="754.(":,?."D%,-7:"(&,&.E.-&("&:,&",%." 4.9.-4.-&"5-"L:'7:"58","(.&"58"%.U$.(&("L,("E,&7:.4",&","2'?.-"(&,2.*"P:.(." .T.7$&'5-"4.&,'1("7,--5&"D.",4.U$,&.1="7,9&$%.4"'-"&%,7.I4%'?.-".T.7$&'5-/"('-7."&:." &%,7."8'1."%.,4.%"7,--5&"%.&%5,7&'?.1="%.4'%.7&"75-&%51"815L"'-"&:.",991'7,&'5-*" >'%.7&".T.7$&'5-"'(",-".1.2,-&"(&%,&.2="85%"2.-.%,&'-2"&%,7.(",&"$1&%,"(7,1."5-" E5%."%.,4'1=",?,'1,D1.":,%4L,%./"D$&"&:."%.U$'%.E.-&"58"%$--'-2"&:."8$11",991'7,&'5-" :,E9.%("9,%,E.&.%"(&$4'.(",-4"1'E'&("&:."(7,1."&:,&"'("$1&'E,&.1=",7:'.?,D1.*" P:5$2:"7%.,&'-2"(A.1.&5-",991'7,&'5-("%.U$'%.(","2%.,&.%"9%52%,EE.%".885%&"&:,-" &%,7.I4%'?.-"('E$1,&'5-"5%"4'%.7&".T.7$&'5-/"4%'?'-2"&:."('E$1,&5%"8%5E","(A.1.&5-" ,991'7,&'5-"9%5?'4.(",-"'EE.-(.1="95L.%8$1",99%5,7:"&5".?,1$,&.".88'7'.-7=",-4" (7,1,D'1'&=",&".T&%.E."(7,1.(",-4"&5".T9.%'E.-&"L'&:"754."%.5%2,-'^,&'5-"5%":'2:I 1.?.1"%.8,7&5%'-2"L'&:5$&":,?'-2"&5"%.L%'&."&:."-$E.%'7,1"9,%&"58",-",991'7,&'5-*"P:'(" '("8$%&:.%"8,7'1'&,&.4"D="&:."%.4$7&'5-"'-"754."('^."&:,&":,99.-("L:.-"&:."D$1A"58" 75E9$&,&'5-"'("%.E5?.4*" 3(","D,('7"9,%,11.1",991'7,&'5-/"75-('4.%","('E91."9'-2I95-2"D.&L..-"9,'%L'(."%,-A(" '-","9,%,11.1"(=(&.E"W%,-A"J".T7:,-2.("4,&,"L'&:"%,-A"!/"%,-A"R"L'&:"%,-A"a/".&7*Y*" "

!!"

P:."'E91.E.-&,&'5-"58"&:'("9%52%,E"5-"&:."('E$1,&5%/"2'?.-"'-"\'2$%."K/"155A(" ,1E5(&"'4.-&'7,1"&5"&:."-,&'?."B;N"'E91.E.-&,&'5-/".T7.9&"85%"4'88.%.-7.("'-"&:." (=-&,T"58"B;N"7,11(*"_$'14'-2"5-"&:'("D,('7"(A.1.&5-",991'7,&'5-/"'&"'(".,(="&5"&.(&"&:." .88.7&("58"?,%='-2"-.&L5%A"&595152=/":,%4L,%."1,=5$&"W.*2*"9%57.((5%("9.%"-54.Y/" '-4.T'-2"(&%,&.2'.("85%"-54.",1157,&'5-/".&7*"]('-2","75-&.-&'5-I8%.."-.&L5%A"E54.1/" mpipingpong":,("D..-"%$-"L'&:"$9"&5"!KB"-54.("5-","('-21."L5%A(&,&'5-" 9%57.((5%"L'&:","E.E5%="855&9%'-&"58"%5$2:1="G" ,991'7,&'5-"'("%.,(5-,D1="(E,11/",&"!faJ"(5$%7."1'-.("58"754./",-4"&:."(A.1.&5-" ,991'7,&'5-"'("5-.IU$,%&.%"&:."('^.",&"GHK"1'-.(*"B5(&"58"&:."A.="75E9$&,&'5-("'-" E'-'B>"2.&"7511,9(.4"45L-"&5"('E91."compute(...)"7,11(/"L:'1.",11"B;N"7,11(",-4" 75-&%51"152'7"%.1.?,-&"&5".T.7$&'5-"9,&&.%-(",%."%.&,'-.4*"P:."(A.1.&5-"?.%('5-"58"&:." &'E."'-&.2%,&5%"'-"E'-'B>"W\'2$%."SY"9%5?'4.(",-".T,E91."58":5L"&:'("E'T&$%."58" 9%.I.?,1$,&.4"&'E'-2"'-85%E,&'5-",-4"5%'2'-,1"9%52%,E"152'7"7,-"D."$(.4"&5"4%'?." &:."('E$1,&5%*""

"

!R"

" " void minimd::integrate::run(shared_ptr atm, shared_ptr frc, shared_ptr nbr, shared_ptr cmm, shared_ptr thm, shared_ptr tmr) { mpiid rank = mpi_->comm_world().rank(); for(int n = 0; n < this->ntimes; ++n) { env_->compute(interpolator->get("integrate::run", 0)); if((n+1) % nbr->every) { cmm->communicate(atm); } else { cmm->exchange(atm); cmm->borders(atm); nbr->build(atm); } frc->compute(atm, nbr); env_->compute(interpolator->get("integrate::run", 1)); if(thm->nstat) thm->compute(n+1, atm, nbr, frc); } } \'2$%."SM"P'E."'-&.2%,&5%"8%5E"&:."(A.1.&5-'^.4"E'-'B>",991'7,&'5-*" " P:."&L5"7,11("&5"env->compute(...)"('E$1,&."&:.",7&$,1"&'E."'-&.2%,&'5-"'-" E'-'B>*"P:."'-&.%951,&.4"&'E."?,1$.("85%"&:.(."7,11("75E."8%5E","9,%,E.&%'7" .?,1$,&'5-"58"E'-'B>"9.%85%E,-7./"D$&"&:.="75$14"`$(&",("L.11"D."5D&,'-.4"8%5E" 4.&,'1.4"E'7%59%57.((5%"('E$1,&'5-(/"%$-("5-".E$1,&5%"(=(&.E("($7:",("j@B]/"5%" 75-(&'&$&'?."9.%85%E,-7."E54.1(*"P:.(."&'E."?,1$.("7,-",1(5"D."(7,1.4"5%":,?."-5'(." ,44.4"&5"&:.E"&5"(&$4="&:.".88.7&("58"15,4"'ED,1,-7."5%"%52$."[6"-5'(.*"P:'(" (A.1.&5-'^,&'5-".885%&"'("D.'-2"$(.4",(","4.?.159E.-&"91,&85%E"85%",-,1=^'-2",-4" '-(&%$E.-&'-2"E5%."('2-'8'7,-&",991'7,&'5-"754.(*"

G"C/1&')1"

N-"&:'("(.7&'5-"L."9%.(.-&"9.%85%E,-7."%.($1&("85%"5$%"('E$1,&5%/"D5&:"'-"&.%E("58" &:.",D'1'&="58"&:."('E$1,&5%"&5"%.9%54$7."E.,($%.4"E,7:'-."9.%85%E,-7.",-4"'-" &.%E("58"&:."75E9$&,&'5-,1".T9.-(."58"%$--'-2"&:."('E$1,&5%*"V.",1(5"$(."&:." ('E$1,&5%"&5"4.&.%E'-."&:."(.-('&'?'&="58",991'7,&'5-"%$-&'E.("&5"7:,-2.("'-"E,7:'-." 7:,%,7&.%'(&'7("'-"5%4.%"&5"4.E5-(&%,&."&:."95L.%"58"('E$1,&'5-"'-"$-4.%(&,-4'-2" ,991'7,&'5-"9.%85%E,-7.*"

HI5/+$%/:)('"#/)&5"

;.%85%E,-7."(&$4'.("L.%."7,%%'.4"5$&"5-"&L5"(.9,%,&."91,&85%E(*";,%,11.1"(&$4'.("58" 3Bk"L.%."9.%85%E.4"5-"6,-4',l("b.46&5%E"j$,1'8'7,&'5-"Wb6jY"E,7:'-./"L:'7:" "

!a"

75-('(&("58"aR"4$,1"9%57.((5%"75E9$&."-54.(",-4"Gf"U$,4"9%57.((5%"75E9$&." -54.(*"P:.(.",%."%.(9.7&'?.1="D,(.4"5-"R*G"k0^"4$,1I75%."3B>"[9&.%5-",-4"R*R"k0^" U$,4I75%."3B>"[9&.%5-"9%57.((5%(*"b6j"75-('(&("58","('-21."7,D'-.&/"'-"L:'7:"7,(." &:."'-&.%75--.7&"'("%.4$7.4"&5","R>"E.(:"58"4'E.-('5-"GTRG*"P:."E.(:"'("L%,99.4" '-"&:."1,%2.%"4'E.-('5-*"P:."1'-A"D'4'%.7&'5-,1"D,-4L'4&:"58"&:."E.(:"'("F*K"k_X(" ,-4"&:."D,-4L'4&:"58"&:."0=9.%P%,-(95%&"W0PY"&:,&"75--.7&("&:."%5$&.%"7:'9"&5"&:." 9%57.((5%"'("a*R"k_X("'-".,7:"4'%.7&'5-*";,%,E.&.%("85%"$(."'-"&:."('E$1,&'5-"58"3Bk" 5-"b6j"L.%."4.&.%E'-.4"D="%$--'-2"B;N"D.-7:E,%A("5-"&:."(=(&.E*"P:."('E$1,&5%" E54.1("&:."D'4'%.7&'5-,1"1'-A("'-"b6j",(","9,'%"58"$-'4'%.7&'5-,1"1'-A(/"&:$("5-1="4,&," 85%"$-'4'%.7&'5-,1"D,-4L'4&:("L.%."7511.7&.4*"P:."75EE$-'7,&'5-"D,-4L'4&:" D.&L..-"-54.("5-",-"5&:.%L'(."'41."-.&L5%A"'("1'E'&.4"D="&:."0P"1'-A"D.&L..-"&:." 9%57.((5%",-4"&:."%5$&.%"7:'9/",-4"&:."E.,($%.4"$-'4'%.7&'5-,1"D,-4L'4&:"L,("'-" &:'("7,(."!fRa"B_X(*"V:.-"&L5"9,'%("58"-54.("75EE$-'7,&.",-4"&:."-.&L5%A"&%,88'7" 85%".,7:"58"&:.(."9,'%("'("%5$&.4"5?.%","('-21."%5$&.%I%5$&.%"-.&L5%A"1'-A/"&:." E.,($%.4",22%.2,&."$-'4'%.7&'5-,1"D,-4L'4&:"5?.%"&:."(:,%.4"%5$&.%I%5$&.%"1'-A" L,("aRGH"B_X(*"P:."-.,%.(&"-.'2:D5%"1,&.-7="L,("E.,($%.4",&"G*GG"m(*"V.",1(5" E.,($%.4"&:."D,-4L'4&:",-4"1,&.-7="85%"B;N"75EE$-'7,&'5-"D.&L..-","9,'%"58" 9%57.((.("5-"&:."(,E."-54."&5"D."K!!H"B_X(",-4"R*f"m(*"P:.(."%.($1&("L.%." 5D&,'-.4"$('-2"5-1="&:."U$,4I75%."-54.("L:.-"&:."E,7:'-."L,("5&:.%L'(."'41.*" \5%",991'7,&'5-(/"L."$(.4"&:."mpipingpong"(A.1.&5-",991'7,&'5-"4.(7%'D.4"'-" 6.7&'5-"R",-4"&:."3BkRJJK"D.-7:E,%A"W0.-(5-"c"n,-2/"RJJRY*"3BkRJJK"'("," 9,%,11.1"'E91.E.-&,&'5-"58"&:."312.D%,'7"B$1&'k%'4"E.&:54*"N&"L,("4.?.159.4",&" ),L%.-7.")'?.%E5%."C,&'5-,1"),D5%,&5%=/",-4"'("9,%&"58"&:."6.U$5',"D.-7:E,%A" ($'&."W36#"6.U$5',"_.-7:E,%A"#54.(Y*"P:."754."'("L%'&&.-"'-"N6["(&,-4,%4"#"$('-2" B;N"85%"9,%,11.1'^,&'5-*"P:.",12.D%,'7"E$1&'2%'4"E.&:54"'("75EE5-1="$(.4"&5"(51?." (9,%(."(=(&.E("58"1'-.,%".U$,&'5-(/".(9.7',11="&:5(."&:,&",%'(."'-",991'7,&'5-("58"" 8'-'&.".1.E.-&"E.&:54(*"P:."45E'-,-&"75E9$&,&'5-,1"A.%-.1"'("(9,%(."E,&%'T"?.7&5%" E$1&'91'7,&'5-Z"&:$(/"&:."E.E5%="D,-4L'4&:"'("&:."E,'-"8,7&5%"&:,&"4.&.%E'-.(" 9.%85%E,-7.*"\5%"9,%,11.1'^,&'5-/".,7:"9%57.((5%"'(",(('2-.4","95%&'5-"58"&:."8'-'&." .1.E.-&("W($D45E,'-Y",-4"&:.",((57',&.4"?,%',D1.(X.U$,&'5-("'-"&:."(9,%(."E,&%'T*" #5EE$-'7,&'5-"'("%.U$'%.4"&5".T7:,-2."D5$-4,%="'-85%E,&'5-"D.&L..-" ($D45E,'-(*"P:.",?.%,2."B;N"E.((,2."('^."85%"&:.(."-5-7511.7&'?."7,11("'(",%5$-4"RI !J"]B;N"&%,7.("7511.7&.4"$('-2"!Rf"9%57.((5%("58"b6j*"g,%='-2"5-1=" 1,&.-7=",-4":514'-2",11"5&:.%"9,%,E.&.%("75-(&,-&/"L."(.."&:,&"85%"1,&.-7'.("5-"&:." 5%4.%"58"!J"m("&:."9%.4'7&.4"%$-&'E.(",%."8,'%1="'-(.-('&'?."&5"7:,-2.("'-"&:."1,&.-7=*" b.4$7'-2"1,&.-7'.(".?.-"8$%&:.%"9%54$7.("?.%="1'&&1."D.-.8'&"'-"%$-&'E./"L:'1.",&" 1,&.-7'.("58"!JJ"m("9.%85%E,-7."&:."%$-&'E.("D.2'-"&5"'-7%.,(."(:,%91=*"g,%='-2" -.&L5%A"D,-4L'4&:"L:'1.":514'-2"&:."1,&.-7="75-(&,-&/"L."8'-4"&:,&",&"!"k_X("5%" 2%.,&.%"D,-4L'4&:/"1'&&1."9.%85%E,-7."?,%',&'5-"'("(..-"'-"&:."3Bk"%$-&'E.(/",-4",11" 58"&:."-.&L5%A"&595152'.("9.%85%E"('E'1,%1=*"V:.-"&:."D,-4L'4&:"8,11("('2-'8'7,-&1=" 15L.%"&:,-"!"k_X(/"%$-&'E.("('2-'8'7,-&1="'-7%.,(./",-4"?,%',&'5-"'("5D(.%?.4",E5-2" &:."-.&L5%A"&595152'.(/"L'&:"&:."&5%$("&595152="2'?'-2"(1'2:&"15-2.%".T.7$&'5-"&'E.(" &:,-"8,&I&%.."5%"7%5((D,%"&595152'.(*" "

" \'2$%."!!M"6&$4'.("58"&:."(.-('&'?'&="&5"-.&L5%A"1,&.-7="58"&%,7.I4%'?.-"3Bk" ('E$1,&'5-("$('-2"!Rf"-54.("L'&:","('-21."9%57.((5%"9.%"-54.*"P'E."'("E.,($%.4",(" 1,&.-7="'("?,%'.4":514'-2"&:."D,-4L'4&:"75-(&,-&",&"!"k_X(*" "

"

!S"

" \'2$%."!RM"6&$4'.("58"&:."(.-('&'?'&="&5"-.&L5%A"D,-4L'4&:"58"&%,7.I4%'?.-"3Bk" ('E$1,&'5-("$('-2"!Rf"-54.("L'&:","('-21."9%57.((5%"9.%"-54.*"P'E."'("E.,($%.4",(" D,-4L'4&:"'("?,%'.4":514'-2"&:."1,&.-7="75-(&,-&",&"a"m(*" " V:'1."&:.(."'-'&',1"9,%,E.&.%"(&$4'.("857$("5-"-.&L5%A"7:,%,7&.%'(&'7(/",("E5%." 9%57.((5%",-4"E.((,2'-2"E54.1(",%."E,4.",?,'1,D1."L'&:'-"66PXE,7%5/"&:'("&=9."58" (.-('&'?'&="(&$4="L'11"D."95(('D1."85%","L'4."%,-2."58":,%4L,%.",-4"(58&L,%." 9,%,E.&.%(*"

K"4*:2'&1$*:1"

V.":,?."4.(7%'D.4"66PXE,7%5/","E,7%5(7,1."('E$1,&5%"85%"&:."75,%(.I2%,'-.4" ('E$1,&'5-"58",991'7,&'5-("%$--'-2"1,%2.I(7,1."9,%,11.1"75E9$&.%(*""P:."('E$1,&5%"'(" 4.('2-.4"&5",(('(&"'-"&:."4.?.159E.-&"58"75E9$&'-2",%7:'&.7&$%.(",-4",991'7,&'5-(*" P:."('E$1,&5%":,(","81.T'D1.",%7:'&.7&$%.",115L'-2"&%.,&E.-&"58"4'88.%.-&":,%4L,%." ,-4"(58&L,%."75E95-.-&(",&"?,%'5$("8'4.1'&'.(*"[$%"'E91.E.-&,&'5-"'(".T&%.E.1=" 1'2:&L.'2:&/".-,D1'-2"1,%2.I(7,1."(=(&.E("&5"D."('E$1,&.4"5-","('-21."9%57.((5%*""V." ,1(5"9%5?'4.","81.T'D1.",99%5,7:"&5"E54.1'-2"B;N"&:,&"7,-"D."$(.4"&5".,('1=" '-?.(&'2,&."&:.".88.7&"5-"9.%85%E,-7."58"7:,-2.("&5"&:."B;N"1'D%,%=",-4"45"-5&" 9%.71$4."&:."'-?.(&'2,&'5-"58",1&.%-,&'?."9%52%,EE'-2"E54.1(*"P:."('E$1,&5%"7,-"D." 4%'?.-"&:%5$2:"&%,7."8'1.("7511.7&.4"D="%$--'-2",991'7,&'5-("5-",-".T'(&'-2"E,7:'-." 5%"D="(A.1.&5-",991'7,&'5-("L:'7:"9%5?'4.".-5$2:"'-85%E,&'5-"85%"&:."('E$1,&5%"&5" 9%.4'7&"&:."75%%.(95-4'-2",991'7,&'5-(l".T.7$&'5-"&'E.(*"V.":,?."85$-4"&:,&"&:." ('E$1,&5%"%.9%54$7.(",7&$,1"%$-&'E.("L'&:",-".%%5%"&:,&"'("&=9'7,11="1.(("&:,-"!Jo*"

L"!2A:*@'/;./%/:)1"

P:.",$&:5%("L5$14"1'A."&5"&:,-A"N4,"B*"_*"C'.1(.-"85%":.198$1"75EE.-&(*" P:'("L5%A"L,("($995%&.4"D="&:."]6">.9,%&E.-&"58"@-.%2=l("C,&'5-,1"C$71.,%" 6.7$%'&="34E'-'(&%,&'5-"WCC63Y"34?,-7.4"6'E$1,&'5-",-4"#5E9$&'-2"W36#Y" 9%52%,E*""6,-4',"C,&'5-,1"),D5%,&5%'.("'(","E$1&'9%52%,E"1,D5%,&5%="59.%,&.4"D=" 6,-4',"#5%95%,&'5-/",")57A:..4"B,%&'-"#5E9,-=/"85%"&:."]-'&.4"6&,&.(">.9,%&E.-&" 58"@-.%2="$-4.%"75-&%,7&">@I3#JGIFGI3)fHJJJ*" "

!f"

M$7'$*.+(56B""

" 34?./"g*"6*/"_,2%54',/"b*/">..1E,-/"@*/"c"6,A.11,%'5$/"b*"WRJJRY*"#5E9'1.%I[9&'E'^.4" 6'E$1,&'5-"58"),%2.I67,1."3991'7,&'5-("5-"0'2:";.%85%E,-7."3%7:'&.7&$%.(*" &$'#!()*$+*,(#())-)*(!.*/012#03'2-.*4$5"'20!67*89WaY/"aFa"I"GRK*" 3Bk"D.-7:E,%A"($EE,%=*"8%5E" :&&9(MXX,(7*11-1*25?X(.U$5',XD.-7:E,%A(X3Bkpq($EE,%=pq?!*J*948" 36#"6.U$5',"_.-7:E,%A"#54.(*"8%5E":&&9(MXX,(7*11-1*25?X(.U$5',XD.-7:E,%A(X" _.-?.-'(&./"#*/"c"0.'4.1D.%2.%/";*"W!FFHY*",(#())-)*105')(20$!*$+*2:-*;,9* 0!2-#%$!!-%20$!*!-2?$#@A";,9.%"9%.(.-&.4",&"&:."!FFH"V'-&.%"6'E$1,&'5-" #5-8.%.-7./"aGH"@"GS&:"6&*/"C.L"n5%A/"Cn"!JJ!S*" _'-A.%&/"C*")*/">%.(1'-(A'/"b*"k*/"0($/")*"b*/")'E/",11=/"V*/"c"P5L1.(/"_*"WRJJGY*",#0!%0")-1*(!.*,#(%20%-1*$+*;!2-#%$!!-%20$!*C-2?$#@1M" B5%2,-"5-2,%%,"W@4(*Y/"#5E9$&,&'5-,1"67'.-7.IN##6"RJJK*"K&:"N-&.%-,&'5-,1" #5-8.%.-7.*";%57..4'-2(/";,%&"NN"W).7&$%."C5&.("'-"#5E9$&.%"67'.-7." g51*aFFRY" BH6'E*"P:."BH"6'E$1,&5%"6=(&.EM"3"E54$1,%"91,&85%E"85%"75E9$&.%"(=(&.E" ,%7:'&.7&$%."%.(.,%7:*"8%5E":&&9MXXLLL*EH('E*5%2" B,-&.?5*"8%5E":&&9(MXX(58&L,%.*(,-4',*25?XE,-&.?5X" B.((,2.";,(('-2"N-&.%8,7."\5%$E*"WRJJfY*"B;NM"3"B.((,2.I;,(('-2"N-&.%8,7." 6&,-4,%4M"g.%('5-"R*!*"8%5E":&&9MXXLLL*E9'I85%$E*5%2" -(Ia*"P:."-(Ia"-.&L5%A"('E$1,&5%*"8%5E":&&9MXXLLL*-(-,E*5%2X" ;3;N*"8%5E":&&9MXX'71*7(*$&A*.4$X9,9'X" ;.&%'-'/"\*/"c"g,--.(7:/"B*"W!FFSY*"6B3bPM"3"('E$1,&5%"58"E,(('?.",%7:'&.7&$%.(",-4" &595152'.(*"B'#$J,/>/"!fHI!F!*" ;%,A,(:/"6*/">..1E,-/"@*/"c"_,2%54',/"b*"WRJJJY*"3(=-7:%5-5$("9,%,11.1"('E$1,&'5-"58" 9,%,11.1"9%52%,E(*";BBB*G#(!1(%20$!1*$!*>$+2?(#-*B!60!--#0!67*98WHY/"afHI GJJ*" b'.(.-/"b*"WRJJKY*"3"0=D%'4"B;N"6'E$1,&5%/";BBB*;!2-#!(20$!()*4$!+-#-!%-*$!*4)'12-#* 4$5"'20!6*K4LM>GBNOP8Q*" b54%'2$.(/"3*/"B$%9:=/"b*/"*/"k,-.(:/"_*/"P$,=7:,%5.-/"C*/"_,=-.(/";WDN4T*4$5"'2A*D#%:02A*C-?17*XXWGY/" !JJI!JS*" e:.-2/"k*/"V'1E,%&:/"P*/"+,2,4'(:9%,(,4/";*/"c"

Suggest Documents