ࡱ> hkxyz{ijF-APiwr>TJFIFddDuckyd&Adobed  nsW   0@!1PAB6 !1A"Qaq2B 0R#@3bCcs$u !1AQ @a"0PqB2Rbr#!1A Qaq0@ Rk{IN-֤ć_.֢d=t f eYAvx׍s25&\Ï=T9q+_,{$<WmQ_͡3˱i>&(/#-s`pq6Is}'\嘈Y%$vurL>he' NbǽMW bS utBbbX藱=ܩp bM ,-F2F?ydҬV&JY+~ța:nc78;,XѺ2Ov6;%l|W cy%VX"3(uO:_~jDG]蒛} c.6iqʩHp{A*R[_d _:ˎp OM"*y}ה@E$x3A,,u>5Ll$XaYۯDMM33im4g;IM/RbiX}ŗtYt ۑ 36+#r$g_"%|xoYIG2X0DyHs!q(-emb!׉)qϣnͷ$? ?jy7NJoSV1G[;u\ i?'sHݿ1n^7 S"~H{.Lۧl>"Nޘ[g2Iö< h$]u ?zvtMPn'ٲH z R7wUj>Q+A(d懿Z4n>Ur yk= @KI" yy]{.kʋ巟$6S?r785 0Ӕ581)Z[F#"nuQ* C4 7mB>(-NGU{6\kܝ?y_ :u=f'.j0|ezxc,wWeLXv0c/FϲLb#w.iy$JimGe. 3F8XAYK܆%#^yC/,f7 BuSr2اv^d^9cG0~{~nzH6C^/y:%n*mۆZGkQuNFuW'(3,T޶Hz6#A-PKGBP$Z"*>rr,/pmR:wu'krS@ YbㄩN! )GXwcݽ'53"3G/lδln׭dMI6Hgc3C)pxs]i˄='DY""(͙ $ꮩ(֝Aq+xxwޔ>adn-~H8xoF֖a  wɵx;r}-n5 T6vß;Fv[2ƐOi#eS!)m8M;Zܰf#4BDc[' Ql5]^}e{i)_,֑gA]36,XWUq Tj|,7n$2{ Vӟ$c|s{Ʋj8ŋJխDng. g.Xvg"pZ$xY F ’5$~Xu&U1v Y.G(%nJ(lIcP[bj+V{ݢ $0vaQu;}x-?cff!UNǀP.ؓE=Or5&Բ$xd9hz;fU%="JP+F1PP@Ğ'>g$5fve(Ydu Uݕ@$ };~`6բv khhes@V-Pnozd9HKLNOtvM6䛋oj,ҩW5xkzLTG mvϛmLSV""a62ڭAEG 9xǞGf"mF謄{MϘˎ,obxb87XK?!͂/P .Gz<]Ӂ bS0 Mс_MFV@f|=N40Q}5 vЈܖ/7?y qQ`[6:Ά<}X^X/XE yLC. ``H̲`%h-{ Bl'z* Sf6ϯ^v5+De$O´ss \<&q)5 ON#ӵ5R0%A3fqKVu,Vr:-9v7[5x2v7>5u{ E$Q[tbt˰8x_) a(JUV:Vx()>v@PD>N5PꤍƵp^Nl=@+ LQS;r)  _Vnfzx;f{t=3VgR.1Y UњW)h`=2XoEkMÌRܨx6!Q >\fM*F5&.@i>g܎K {^ΨbQ']SOo?!xB<}3с YsqS'ԯ IÁΥvX|~ 򻚗F֟]kJҤxGoGrrW@NW1/{&2R"@X際7'{XʽtɽdG\F "۸ X|y,@'d>k '/ޯ>)Ţoz'A6lu89U3b9*G%q56jgHK??!}!ѓ*pz?fs Sg὿>P0OU>>Mw=CG~?\${QGA|oEѿmLd܇惉>:\*_63e~yjsGS M,yXb\U5C?܂=D]Leː2۷/QXO:7umv/ | j7FV.=: x `gx?'QsH4x]HL$Y`y罳7ܾm8b.tf?H T)Oh"2 8慱SͽqXzrRe*h'Kzio "2P0KM$ kI>QEu؀F=h BWoũUsd4]eTIL$RX%@ϷLpi(x+ G1ֺ`^tH@6Ÿ6u0.L$g? xmT:;* {~#gdS"h] @W}] FvEP4yz:3@F]6v|À)- D7Y@K˨lkJ6W)?^$G* O@WF :(i:qeQ=^U 0_떎(QSeX&4Xj5[~= `(]Rs{^ڦQb*-{`qPŅM ]*\I sNNE[vvq +8Dž#\+E> P. vUԗc YpKrnz`VX {{XMƐ+,.zjSSsp*W)/Ppx:T[y+Jw^Ѽ<]J̚PӋJ7OKpXP~E;Ry8>՛\ }4c8L&"\yT L@E61Ǵvk;6W8`t`3 w-GG6K/cFژᙃ/krkvv\~z0r}[[[E6d_(CE~㾏la&BB;vfbM"|.}G[4h,Fo$< Ws,a:m ' !&oFoZ b}hSڡ> 3H$mr|A.e,"SP}6>x!t8χEy^JG1[|EN=} ?cksS:>ʩg˱E::"O3eq˒!|>Siis s/|so<0ϗ<9s%lp\NX4H7"}epBIuPךAu3ӵ:x6vyc:k<)ޫ< .]d< .z8b~0L)b!V,D ޛK޶sP +t|Dԣy=#z_'/uBzUC;nd?CT=M 2J|DĞf6<s<ד>ua V|S& w,;,~iu2]z1k"%O># fȾaa -;wF³tc%cB[Wy<ߎX oTіc vgZ)^'f"li"u Xo2RA`!dž ;c~_(xoDwMvu.ZmՖK%DW* d-LsnC&ijqN9BBHV(/8!4[y_'ˎbFtwD=[Rq}pБZ6W_LjKo=zOٻ?u!tNϞN8P7X7WzOaX/\YgӑhݸM}vdo$w}58}GDo3zbJ{yCK䬗M m9 ot|pqHѿfOM.or^="?{y ه Ntpp@Giw!ugMZh;6}MtgS7Ү-l{!^G]vʬN:Onnnnnnnnnnnn877ԽUiёL G32*.eV؊R_ 1o83< -uMn*56zf,eyݺW5ߜ`^5o w!ԦhXC a@Z5n)+u hF4a\ `Un 7p 7p 7p 7p 7KqԖnn^vk6N{fܲn38[b{5r˖ rR *sZnth{w}ky*p 7p 7p 7p 7p 7p 7p 7p 7p wG|ݥ2xlk/m?^.9J}AVWÄ7k ]i _PʧEf_hjp"7*u&j~+_`TSL*shNsw}Kn\ԹmZDž +sܒ7%w_j?7n2E]>[am;wCw!g_{N{^cR:~fIa1WtUt2ukaJ ڋJM^[ma}JVmn^rE|b|tfGpێ3WsC4 7p 7p 7p 7p 7/- 7]pGf5n \٬NM"ؾ~i)qcd[HBtʘl|t:oƼآz.dyY"|&3s_4c T鶥ve*tnJ|Y\QpI|'rd[wV-<[nqܦg[w;7;Vfs-Z&ӭ:̭Cc7lꬮΔ'Nঅ--{nw#s޵*q֭IU{'6v ;ݣ󡟘*sĶq0J{5YPǡhDln?u$[lN##ۋlؗlo"?S-Hd9ngMYʆ,t1g㷝7hn?Qf-bfs VzC6uf]B79Ս8],^RrA{/i@GjhC߈^U6'!4k7UҾ?`!H0w(L_>[(x?o6lN'R1.Sk6.2'ۡs?FtGtuI>N,ϒ~;x|"Ż -O~X_~Gp܇SEjwxц^o7}kj$O^8EVS|r%Ic)f5ѯi^zqc6>21[ea]Ku t]kpyO=RYR֓>'$lk:S^VDxۃo {N% kMIԕZxbK~ޚ&bdz+3";Ϗ~TR{jeCTrwwj.ܙs$ ޴`oZ7-؛M {ӂi޴`oZ7-؛M {ӂi޴`oZ7-؛M {ӂiQdQ7"+d"x,ZUu-K[HhQ1oy:#ŎC]WP?by#{t"YVfU:u!aĥ;ȂqMk݆x0ލl(]=E. G"3 D,$o>>^{ӂi޴`oZ7-؛M {ӂzoipZg`ofofof+Mv kg;"{DdwxG"{D{W[xʁzntR6^ 79z{ۄڗ$b*ު[{Ls]'[k'̜q5Q_t ނ~w/؛ٛٛٛdžh{{ٛٛ*{_u؛M {ӂi޴`oZ7-؛1okcWL|U뢻Qh®|q:^.nbGGic6W޶7.4x|d]`{_o׌x{k޽_,{=lx~)0.'тi޴`oZ7-؛M {ӂi޴`oZ7-؛M {ӂi޴`lY['dxYy9Ύ7^B4 w?p~5 ,R}́e)ˎ,Y}T’ݤ{@`OEvzZ`ֳ¯V3\$ WQxyg\wYy wAeiËr޻kKp\XeӃCѼ-y^ޅJl\[z0l\w{Len-g5o;oz~lp|A:~d)Tj\C]9#\Q2,0uǵs6jlV{ڨw,Sy77vQv]͒:㼿/,k=.ӂi޴`oZ7-؛M {ӂiAۛ"M 4lMZ3\lOWQao\,_a"~&Aid*{c0NDCn\ Htd .SmbLI[B زliCowڻw#m}Uf'X{%oYF?7_Mީ rs ۣi0>ilsfz_kizٚ7<-|w .\ao?,=pzm8rކHtϛޘ|aJ.BXldK6x׿܈mG?}#Ӱwzk*2-ӸY}^n{ =m{gpԿWloBԨ|x+&˘m8ԋIk2.;Iio4ޥξ2#~j=IZ>\kpHLT/W\8 n&ɱ/W&=]z>忦]qku> ˤnf{֠/oB7{l^.n+v]v;cKǀR¼{~R}d;;{Aw\d#n|iXl`;!1GNn;IOY y5_Ф5}Ϸl-]}əW^ .=J}|;mhtz͓WDwNcez˖ Vuw'76^>amv%$i2ݱCq⅝kTu]7]TcRSHV;pj'醷n)2}wgKAA5Nnu/i*zs1~tKn)-@R[ tKn)-@R[ tKn)-Vo屜w-s9u5]҄ƬyW9Nw֎ycq{Mwvݛ^kuۣBM3t(}Ln;C\SW{v@.} nsS1 Jk/O#:A-=^ ǴEnou.:cdZu:?}^BD[`j1א!=Wuu(Ih!Zw[tk'6_]T,D;1׽lIE;fɟUc~|+xu.Nf`v})kk}>JB=I*jTʭZix?sfy98VtDKp.eAR[ tKn)-@R[ tKn)-@R[ tKn)-@R[ tKn)-@R[ tKn)&,Fhwl`{Nى^}NtK.?ρ}lmfnO`m8ÿot mg$t{yq0OR?`^ws}lU+=*ݗOR[ tKn)-@R[ tKn)-@R[u93[ tKn)-@R[tw48 PX-V-@R[ tKn)= \eٜE}-l1hf]1Nkqkivg<0uWzve>Or;yXc辖G7<"Y?[q[Ooդ@R[ tKn)-iH tKR[ tKn)-@Rp )-@R[ tKn)-@R[ tKn)-@‧tͥst"-9 Q0s.V qsl)[#tt-eg=džyiCy@-)j"<`s8>j.ݭ1}NQw5w#lmmw\9i>SZR[ tKn)-@R[ tKn)-@R[ tKn)-@R[ tKn)-@R[ tKn)-@R[ tKn)-@RL\]x?_!*[ tKn) ~sOn$߯ݿOEw?}_ZjoNtEXtOFIENDB`n as6vc_C PNG  IHDRaa&zbKGD#2 cmPPJCmp0712Om dIDATxڵOlT%Vl)*$2)\"T6V=Jպ RCi[c(nJA!'9,4*Jڂ^@>aΛ_oCWZY2fߌ׉k4$Hti }D3x" &zxDz|~X_pM=mDZ燵ڒ1П|6V_@O' ?Y}a촁>H\WMgp5%Oyz"g/}]ĵ&kp朁.}06( ]:ؠ48i\>aEe\ec bjۧ%µ7'k\+zJ)M7>5%˗ t> tw~4µBV}{˸&d:6з} -µ7}? IWw:'E}ڟRk} }h:ޢG k:'pmo{'n[%jcuEu+Zutڹ(kuu4>zLNi̭JU} ޸t`=+'h54mv?աOt~VC_[fPMIKնԏ\o`}l-j3UMˎp}aJQM[yrʰ~j*ѴDunVNSmTHej#PT}FZF%eP*(9#e. e^MJNRb@~uROS: !ojV_ Mt <QL$ Ӛzc!E'#)҃6M 1iU . s%C iB_mI}>^JTWy~F_+|Dkn{_)HtR@:tC4'7-PTϞw&-'$]h5 Dsn#( (s۽)D+A{Rz@ozz r,T,zu0.~hިQOOݘFD7ݢ`;߭k iA э$bXQb̗v9~gpM&ͧ;MSv!1hIzV_mFeVsGU__[:=mǰj͡Ei ?"i|뭃T,$] i^^{+vr[zvINwQчˏwH7VkBi`3UanAۼ&t{SJQjnŷ!7tzRV#ԈQD4]L`h`'n jµO:ç< 觖 NzI7װVBNtce{:iX4 %Fu=if,t3z%wͰZu :id92[OgJ+ ֜-.ΚYj⒍\vrɟf@ygG\ct4$NmRԅ(špZt5 g`a2jNdj:Rv!Vs'N-bu37ww?hc^o~#b5U\٨A5XXA5qEU SikTTIkmߏc@[z󐀵F,m:O٨uXW֪~[Z[{T,Ղu6'`9Xk5g~kU )XӸi'OJXtRڣ$1v=XnՃkJzv~5r}wg!vyCƵ7`99 1Y(> R)F=(B05R(e@}3뒇_ʍxm8>yuR:\BQFOfwZ :f =1 .;Μ;z^*Jv^1\:.XYZ׎WPrmj5>JnrTyAqJ1M08oN.q6|h.k/ĵk|$tbYIBhmj צ>Bh$p<,eR:񰢱NMMk;]О |E/, 3_Z#|WoNhWPhH?ƀW5_P>ĵ@75MFFi: +\ kt |n%t'۳ktREHB{E H5zREZ+wZfam^av$׾pQu|+mf6OMo%~Ic3Cv#iBS?kI覮5}/#!k{dõ+6B4ZN˄#T#$;!]fН)Bg6o>p?T{dЭНc΢{ 7$k7z6(&tj:;ֶĵ{NAh~&ԖQ&twz!Љ>IhfvХ 1J"B@h}BKvU}" =7NZ/ӌ.''T=9,O+Цh[ ^dz"+} + 0zs{46IhAh71FG[0z!mHB=ЮPb8犌ntPl$-vѧcAF;|h=m}B/TP:$ XYZͫĄv:etuq!C/&t+\gi]h%mkKqw$&t#tq΋ mNmt$ qBg ft:h̓vUJ_ Aֻ"IENDB`nNcC PNG  IHDR<< ")@`PLTE3=he!(-mDRMܡ}y`yͽe\R o cmPPJCmp0712HsIDATHKb8 J#c{WuP;.#no{pu]tÀ_gCOϫu_Y?~>᛺ϲ-_I<={8gtrx-! k0ށI`-x{Ḃt&O;8Z\xM.eނJkM) ehރu y3X%n~VGt*6LMro.,|' @_DcVƾ76ϋuƯK6Dm@ۚG)rvo`x/ uU= 1Ǝ?6NDFG[г-&Χ&` u!*4OcH <놎j&nXUEl @ }7DNMs;dgɟe,<3bx:U3֒Bnu6'=i^VE֪P!ȭr|4϶6= Dt^N7~#T}ߏUZP64,>[!e1Ð3~ju؏&6 N1fb]][lYZ^.exF*Yг2XL2'TZe|nG%m;xY$ZHk]h%(`w  -b2qEh ;Y;#7dn~ьyEf[<irCmN<b(>ϻ_ꠕH,9R. "Ȟ6r_(,q" okbcL+%^F #i/?AƀV,T,ɻ&x$E_vfC7*֓<~H'`=>Ͳ<}u ud26mW<@)>p\ROڀ1aK& r}䜹{45 ƻ:Vn XXu66~U{#QW NyS~ǶIENDB`n8u>K=JioPNG  IHDR#}sPLTEHH&wDzeEu,V鼼JQ,{ii΋8GSSS\SZ~~˨;33r,,[[hcbxRsS rr}jq dµ*۷iU[mץYS! <<0J$yUQuZMyh?ol'&}=^mN^ _vvyvvooh+a! _3f>bKGDH cmPPJCmp0712Hs=IDATXGŗCHRK% P X1(UY+vncRC۲v=:̄@7LB75o/Nmy]y2@~25$O^_&i$Gw.Kr 3X6e[Cr.H4:$D2vBeSZʻNTܚ5+:ɑ5J&=dZ&$`pgqG)]%<'cFR |=ɦYs J VBd"VݗJy"p 6jρi%jtaZX AzRq1$ r>=OHbwBA͙!F7/r[%Qءq$߿޾xUuܗzFm2dQS dj""oQSRH3$&:ڷ.7 .e&y3%r][':u_aɅv$+JLS$sێu2\҈{00x6IצY,'u%zHvLTJgjWX "LӞ?X|j*;沏Mvl ԩGZ jeE8y@}1ˈ0Hs' o.<$kOLU_e]aASxCIs 7^0wHWy\1D$j!bKA3(+,yr؄|#Yoշ$!]Q!|l erJ]WY!qd`ҀQIDyy%bPҎ?ۜ8yqy>V{Q6ulí61ͤ'm7?0}H?MLm D$qxN!WZVqB&BΦG#9 ?U͏$O PM_nM0d*C,C]E"w=:lSp6'xwllڵgw Hʚ#dאsyJMr66;5]Ӽx_8q$ ߶*Oɰ;JL86OuXs d&(QHP 53le7a8&{S} 6alyDt=kY9?$prX_L p|9hym n8G|2nH9(PV9wIG9EXp08f0P04D ZYKdGoYt)g;ݴ $5G$)%1PVUI݂Qe]dA!K YZeJDzJf}͉Y[ ݓ>^4)"&*M T5>P[7H f.̄' gs$j3!*Zo8hh!sD}}OV8M[N}C̜-ጭ?AB =n$@ז!}-vNHMBo[DQo|J4b4N~jěX찣#~s_(xQ7#ɚtdy1K I4TA +A |d%jUtޒѱ2 j93}VbAܥRIENDB`@=cRoW-aW)3'"xZklE>{w+ZUh+jؒR*P"P -[(H 0ISCHT~x#/&hi41X#GG9sv{i7̜̜f4aYgq< PU}74lAc@EAf,PVFʻ [pو!v8$,,NYa 2 rH[Vjb) Q:0 e'sx``r8<e<50%9[Z]^2jCw:[^7k'c\>:Wnb/s5mN'^վZ_վZ//?FGy.<ŮEڽ  :eRj8vD<3Fm~:/:w}e%o2oOv!!v 㐦?4}՚H?S硗?%d\D" }@޾ ~(q#mnؔa)}}l>R6Kk+w.Rߕ~ؑ]֑ -CكR)?2L``+iKߪĔV!JGL q0xp|SP_c> q0xp|Ķ$4#o{0N`Oxܾ`x<'VmSN~@2uKF+)ċ6!GkR܈2~O~DOF`8}I'r#Q/ 8Ip#q#> >|nĉfZ(ÔF!Ń-mRoÔBWNL*L ?T'q?(?V /,(:&?FrN֦Ü9]FL\n&Va^W}ӭܗ{]=1Iw u?|v^8j )Li;'_ȥlxG>>]r6|:eؠ́qlʅXi}_"( ̖jW횾]4}o՚Zi"sAwh;j?{4}`$)K5})Pm핮+~ bx,~>ˈÐ*W3bki óY}9#̕Z_X;TA.T].[ Npd݌)oL ( Ͱ[żNbSxTiV©Wϓƾ˩6L%Z }uq_#ޛ93|HRycY>3Q]mu?lԳ&l,`mԺ(` B񂋍6^[G4 (g"uCKQ0r\0 Yp\@B &f@̅ K6?0SBC`S=y=Zkj|A~@5x]ܤns;L%i:i6v1kfLBMȳISm>$c!ee̻R\˻~G\K(pMX^a3&{Y#qt7d}&D/f:˳t2oϼܝ-{ `x^~ ]#vz/C]N~/-1*–>8S pZ}O6 /BNqRWO+6:;g ,kK=q_;,y`5?Z?റ>|ڎ| A%ozB/es>r~8OH[yn[#^8\GYueu:ǿLH;G45^Aӑ/%(_>&0bm[bԾ*u>}^umQv=x߀yvaHC>jH> j|n]$,YC[kg֘/JcCp0sO҅c.Fcqv'B%[||rC]8U͜Z?3hQl:Vc9sfx݃[".QkE!-(KZwQKIb+SU_yl->I]%4?LyQl=˄DZ߀]@= {Eo*S2/|Rr7M xZ]lE/C5q$1g{ +1H$sr.A8y!<%@DD zw{31VzgDYG$';0'`Z %6@ >/lHkPQn&BuE亗PpW ʻ-IJe)vyK,[ 'QFpz(m݆A)R`q~ffj8E(g+>PmսV߰9 ϦVrv KZIW}?xUvٍD'&ݾn_+}?zhV~O[^P&2fxgE^ IxB20ڢ9F>WX&?#ouxwK*~c~2]>asܟ[P*DB*Jۋ\4~ ^p\S|矾yae L2ל;͹HE }5*>yki7{hpz Iq)"/MӿBPR+2 JE-)[YC~L5}$'Gd*il'[iюeGL *{́ňS| k Kqd 0bW˱k(ő- vˆl#2# зٱQ-vUV$ olc#S sNh ;ˈ]#ǮM[[GƯYFpF4|ۈG2P@fǮc׬Ŏ, R.0ƌvиz7Y4ޙQ9oٱPm1-őrx؍yR9GH/ocG1k.-vV+I,|Ǵ=\4_zoORzT7cCxj׿ғAz{n6.-%^φ=y:hx\=*9)S|l.> 7i{-e?VD0pU~5\/c~SZ$R޲)xOR$*fk=\ [x~~2]>atF_lmb?g{DGd3/cl'2c'G}A1|YI0?H"\>oBttc) K$neg!S"90 wΨD<;9/!H|odM7JEBi".0vtv&fW|3(B)KY6#Jȫ]ȫMie9e<[ky{ϱ}Os)ڟ8ܪ^WpܿZ}.?SypS[|8;}l qRykr>RExXjፎz)4 w2^㕏.u+XG;>?˾vw\N댱{U9őV1w3­αj/.G:Q9X?o%׏󵧯Cwۢ)G=)OԞ^;pO:~OUx=+ oʟu1%o¾߫o,ﱼv/K/,M*Z'*){o=EkLw,z֤X*Li1*]5it F%7</bm?ȶ>BumDg9|rX_g98k#|3 G Miʇ#B4hW.T|t ~4<}LJT6ZF /$O%w3DZDZP<}yV0Gck9Esp,lb[d.)rV؂cAxvJw+uwjLRN.֗X߉c!_2I>,UA˶7ֈٶ~%%>L{aOF3K~k>> f3ݷ=cS޺j'ooگn"Z )=~반߱;S@= {wm{w/|Rr7Q xZ]lW>wvg:)r5MeƄTVJRTɕ I &)IJCAF@^DZ)\@"" A9ιgofvgbs|{{ޙUЇdYPXՍ9v:7Y: _$^&[j,;;IfwP'Qz.|N0yX.6iOun;=( ? *X U߂8D(w΅˴60mN3{swsv ˴Q[%1GvSh 듴/_Q}5sٳER}8SA_fC~ i~cyq,񡾘gOqA, UXI%y!lGbXK-vKlx<ܒi-j< p!%,.38/7i1lg`l1:b\mfk^3Z"֢a߬N?#$oPrk1CԆcX3SǴU_SWOx?SQAUF-8ZZ+w?'0G ,xꈖ?"fq)Ϫ.,xjVt7񶟋|.&dLmc7"bGq W;eŮc*Ɩ֪k vʊl3H bSCZ+Q̨]]2dc;V=xHo# "v Z< bXkuujtZ+c nTSFxꌖ ƶ8v-"vZ<բ%~noG;jg|աOD.`%-V;Y WmJ^-n̋ȋZ<5Dc[;Ymt:L⩍Z:BoԞq\QzǦagG~s+Tb|0x }}wE׸>豚Ѻ5]u+aO~06SmFWS=E:-T Q}_sa_G 7͏@9Eg-*xc+nNSŜr--q8< sq9D sβ8te?5+ؑ'g4Hʛ5wOg3P؞1k^܍~ֹÙywM >&=˱OWu7yI&dq} c~65];MEJݱLfN:s7e><.?ӿT?y7ZZRߔQ͑Ok#~X¾'#V|t|Z>/!'7rbޥ9%9a [ߧ=;{B{!liLi~]=i7V<%y=$^%-*qbۯb:c[}kDƳܚy#9;__ g%8k#f1O_ӝ\GviO}Y iyr1xvxX1s{@KE< ':ɶ0bSS,ÝȯBZ̋x& ח߉12×Bxu"gEq0"ŴA]o_U3y[g)}a]_3u>9[[YM=wv!'G@= ɼoHʘ!Ӻ/|Rr7Q xZol,qα"`䮛@j"ab%E2RBLNjH!CA| BTj/X"I~ ȉ*j`f͍w81bfͼn(@՟x5@C[;(޼H_: ?F[+Jb->5AfPP:InU"1TMZ˖XFg'!'QnFiz(odCȃ`d1s~ffj9e q Q϶1Pjm]~v雸 ;aХ[}-ߣxUvnc''ݾn_+ן:u*T+ 7ىڃ5;-GI#܈+1/~3>7>5>=1y p2q[2/'¦{taC?l }47xsKOoA8 t:c/bp_q7ǁx^1s1No1NaS_zɦ_ϗ5(fdq?PoE"`-Jh{x3B筥;Ԯz 5 Jq)"/ÿBPR/ E-)E[9Fch1,8Ⱄc?"SO#fqO6,8bZW6 |.Fb; nXmX#7XDz]6&)_}F(fi$_ƎbFZjIQ#%2bBGj|؝bGq;+ő."v&]6V)_S qF4|ۈG I/blscmbGq  )c wc~;hQ;Ŭ }bwk&82~T[n(f1.ml[ELtIqd?7v#fGp<'#R1`z V IAJ/3ig#iߙonttҳċb-˭={?".ԭEApO|:o`k$^TG{'e4?whg-e?㰎Ǐ?һ.meu:UשׁߔNH ʉ)xWR$*f{\!W޸>Cg; }o4tF/561M_6"W-r ECO,5ۍٹGsA9|YV=`~Gnp#{&޾Dc! uq~2Kt<#Du{ϨD'}_ 8%>idMKEBi&.0vtvfW<̻օKyvkbKr?t/2IQ13|'lڧv"{koP B#4:~PNnߡ1,Yx6btxݎڏڍށVvʘS8nG!=g9vy&I朳x.9'iOWb4 N̬xL\r{6}|-\:+LOb{ʟwT< π{)P1%).G]*S=]7m/<^';7:T0]rrh~|$tW[:*8t>usyαy.j3J(δ kvïq}T8p9v;2>_g8? _!/Rjzgz)xn4{<թ3*S>}6=gzu[U oՊɧӞߕ\I[G^}ôf ]|Y|QҬ<ԬEoja~b֋4~bWhO:~טړCl-7) X!jm,lULCksϵ,f^IΖl4guoax(ɐ<݁0MpdG*%JO?+Sˈin&Z988bSzk{@ȶl=Ƕ1=c$)͉؅sAxNw7ugjBk5/|58\/s?0B >g'$'_j(q"ĴV̶~_E21Ŵf[e1}}0ﮯ/N`ƴz8C>V9[KvJ~,$ 7]Hy[|><na2WU PNG  IHDRpsRGB pHYs+IDATx^`TՕ_ $0f0``nDn kmlviWKlBb-?PUP3O3 @=̛d2y;o޻}wι(|0&`=&{\`L u~&` \`L <Ԝ`L j:(rL 0&XPs`L 0&,e0&@`AG0&@:"`9O5` \`L <Ԝ`L j:(rL 0&XPs`L 0&L:(rL gl;mhn@_8pEuI#gpC`A3jH O8ay]cHq(6 O6JhJ[oSgZ3Myiy?cqXP%sT[CӾ[ªϒT>hd~Bv1AI?yjj5j(,t[ iC!"BM.*?UՖoS n jr_Յр@`q)ȿ=4H Cre`¥ccm[5"8u:4as:;T)" O#|S[m׶jCQmYlz7 vX|^7 Ԇ4&Q)8.q _ct$7G^PYR3#֙umXu}OoS7σj.(_O (^`_UvRs1沠lS!5xЮM4yߓ"zńQh  Cgڔp`A{0|RywO RYq KTgڎM4jSM0i HAcMٝv?Ԭe6XP{0[oIVJ mMvƊ./K hSճ:3AM#k:߱9-U~nY YYWTAQ>C A VaH3S4jJxNgII ީ=dK@_6,nG8JjjpIIz5p" ?Y+q NAV_Hs|$Ñew,z~ AԵ x/ڲ`[j+:*{`A!,]:^"P8xyw7~F=ڇ'9T5_pLF13 >|,{抐ou`'ǧ0GFasu;DWS޳-LI9/~ij}7<9H,[O+s,$1͗&CC͕ΆbI Z)H2 U[+V~xD[`HLH_}>6uboAG_mJj&A0g3gՠ/V4X+*+ݷp˒y-BUYy{>#S:=ԕMr{7ִ`5830K5׮#J[ZAGa;W\E ll`ڦQU\KOO.tZRr.x=79ttLjyCltVJ>A/|0\"{PS/oh}#Vb.%TgFC>8B I`PVȪX*xSr%V|l\ɶ- ŗ W~G&#5džk^|E?!O:2Q3j%#q1=8 `j t.LΌa0Z)pvG9Fw^)y:x:T,}BbëvMMo/N}֥ jHfb9+Mm J5uѦPS|4悒uriQjYgK5j:rĨ!v# 'MrmFj9qs j|MbT}BF]|*M _P,DYFqa^W/f?yRPuA0^F4@k1,^D7h0;ԧlkzc'"bTN cPB0,wA`V,ä;47~ɧ|c OvۈC /Yd)ˤ|  .*+Np9Ȝ=5)ю[>WObSL* dY4; Sy) )S-oYH}@rhQs@MC.3̴=2=o0H؋媕y3sFŊSJgAWei)6 :d?:‹>܄5BK{sw9')îRzX iwqXf؅)gW} ʻ J_ `ѡ+"ry\SkO wng=l6?XUjL<='>O/299J!_ujdr@#<[:m8\t2 @ؓh/oTvl 4zNz /uK:A*pz JS&z?^&~PЉ O8r-YtA=ȱ ,\Iclx^17L-}zNHOѵ~CN=P 1})i'U[nRwlS -!:8cѕxi?Yy7.>c/mY;_߹=\r.`AWkQ~M_$d+ 5i9 F1 5۠0X7 h;)ʯ@q;f|Uipz+fۦX4"ibiW>$.bʊqxۯr^!.QQr)XGo\o b!nPSMȪϹ͟ë#)bo6Kd>"VTe8\Ք/KpRܶ`V,Q߶< ;,zظx,꩐)T=-*tX͖.x 7}j5t1|D-~|t?|wY Ar ?vg_$ G0hjon+8M]Ѹ󇌾8]<608uAG8sKCl;s:8dPjMUf=6c"%嶷mRQVZ%.ډW`>2d焕|L*=+sPJHG+/ḱ ibpOUx5þImwUnp=Zo ZB㭁m^_`p .R?|2bKy̙ As|<.ΓoPmh]->{\Hs>nj4N+֢C=+wVnȭ(O(O}+|7U8G/gM_~{;z,~ӯ^ƶ ;|0`5H[{tTo@?匤[gOA?|Q_xR goþ+×Lߧj]8``ܮ!vLPfwoݰGkcpLeǐQ%=oKOҨBMݣ]3M=LXe#l̮*-@rN/ |- T5M _[5ݶ1?Zgm񱚗!b4X&T_]ۻCm9~h.BPmx,5UYotTSE |pTk(GN$脉¼lXvּ땱%tN1x789I|.*nkrHpOng;T]0'UHzy+T fcbQ^f|?$/oCJ@p@ IU"_" c->B=G -gR?rC/.Z$_G[].ŘFU]3\%K fiuf6d1DtԤ f!^$|zpB6C) yIb2R ! F_gn &QBM4nQݵ48pڅc˥=8`yȔA %2x22COk]L6{OP RNWH)Ts[D-wu/T")j`^`(YɘT)`ET&KWLҖ'o;ϘP=BhӷB;\RJ"ZDf* ʒ=1e咅`j C D9𜳍 jMjܲ ܯ-[rR+sx7'xiu,!/EZ's[j("}KDco@AS􉘈r\QF]r'–^'fvmuVl Wa{\X <Ӊa[^D◓/ ^)di%%z~c4]DM5o:"Jn<~'6w̐tXT;oy(irq`:)~4ADp^"d8$ZT2- ړOҜ&qq~͂h2+P|5UC`KV4X}چu=^蒶6'wkHI}MYG9 G8>IŌ_9WF}}E5BWQh7=Ł]Έ%սbj8L cblÛr(4F}m*gJT xl|Sݟ#]r0Rzč?ǂ 7~rhUFoǶ!,>,1a^vF})FS]= ʹ2F7CٹVJ0kcT}܉ 6&wc:׫ nԨ(2]hEw5aTE6W|oHLqtP8bv\$!:*.wg7vo \CepeXec=AJK"4; #TJ{u{HB=bpw[$S-1Ѹb:ZW|{ZXOc kW0SSZ'DvTZFf?WiſmƉ`/]UvܱS,B5|0'{FM-ӓEA0587x F&&.r#nWOةċRTy3kORdRS{q`/<[+1sGa d44&3G [ɺR(7_4̉d*DÈT<`k{`l7}{d9d̷ۜ-$O8 Yo{MU*f)|}\ʬP0/ei"&PL+"ɿ#"f۩ =*xwe ;uw6d4Qn8\_Hp#} Dp枊xo̖e;-&; o7I']T0T+wdZbF#|OX-#PIڊNlrUdTjtt.nߴ&lm]zV_"B%3lJU?U} jj2eߚ5?Gr9kevwze)`AM\;b G*`R vl#=@[ɴHّԑ5?`1{*⽆F_-o#ro6qAz,yE1>g8~jԙ!rx]*Ki~)"ns#QNE_9nMCZ=k"җn|~kH@J7l.ƹ4Ÿ{=cMYSg|i: -Q:MdCl婓MW舯 }6fZjw142uEsm7>th\!:ܳjcBr 8hA>}b(󉵶rA\Iy4\PSȂ4K5 "]`Ok6-Lܝ51!_C4 Ne:׍ 0~}V_]钖oUjӱ'H4(jP J%f EICaM|H7t=P,i̳H[dR@ V+b! q1$'_/cs8VlNNk?`s!Dr&p()qè2{P89!+xE.Y_8nzei*V69j>޳zUJ_1C~FsI?Lɷ{=x }0 ڐK"\bˎi{K!̠1iycQA#>-| uSL13h 5x_߈#:MMUۖV0y!+r2DQ_ɽ4^Ȑ]t&~c*(-aG+%nWWym7S~fwKŶB+*9gR-0QO W4&},gw` v;ϜrXG! zI.(x O[v6;"mUq :G&*(mKWTZĩ!4bH)epޱ<_>]Ab˸ÝU$u8 `Ƒ00Jiʴ.D5-cFj=c>yS,1-(RQEYVC#jEvwfЧʄv'0!5ej(Ai.q]o%[Di<0H<@)h]g,[F#ax>˭z|ZHJ+?"ִ/x]QEaTE}R%A$ YN^7ו6,ڏIV2 ˆmG&tA^(tj8/B&ߏRΚ^Emp:)O=A#S;aU_ۏ.*:K@51k~3ru05&ǡI#IKGq3'R<&?{sL jz& t MbjַX3%'+nx/~੕Unk|c3:Tnz~)Lw'6{fMu)ݫy}' MS<Iv3H~P~Y<_Q&2˕3rv !l[|H) zH!`'^7{jJdܖTb{)t11 ۨ! Sۚʝu9ݣ[ޞ tA~1r@ob}D@Y5y ꕚjvR1k V@ x7^=i{Ŕq.HmP,f;Ԍ ^Fȡ!RyB>2cZ'[(kc'mRFLT+E[#Nm?{фsf5veè2,C<֜%c3+IeΕQ5H(iu.n/DL4I{O7`" TGʏzMcIU{(2(i}cpEi$FQ6k#8IFAN{TO`ff @> ^sU07`Y=&l%(= OFR'r|$V"K.g6I0bfuGv0$&).}vc耡1SM}oy[ڢT},JXOi YENDoQAc"Pb82<0`I]x\imF82G^.=Աא[<>4x Ip 'C:x9'5Oè1{&mMybТ {X0x/F4#z^$dKV逬 Er[j@['96}jHOR9Bوh U rSy{n]80|^DsC<NҦYvR ޠz˄}#fl ǖ|6j J> B+6312<^a"ِj9?̷lIUv~oeq˝PS|q$)z lc${;⽘m,q]NiUSr: ݋8)Pşlw4K2iiHשׂ"N j*&3ՐFd\L5k1 |Iokm|},ϸkrҪ[rhOX_aJnOlѷ\ژȾ(`J01Ϫ_ -vޖ ٞJelu;Q=moBMqrm žNaDWesW,š<Nb[kec(2QV{cwJYfKo:S/w5}kG"eOERB^L4iramZy!u )$*SLMuqYSyUu?_ Sj" >CݧMCfoHLX30A_+smwa m*g&(#FMm+u7oH:陨7bH=EwތA:9yx/fأz#I mG҉p XQz5jƲ&*qᅟ:ri6qXNygr(W3F ":B&AYxݎ1QNmwc[Ҵ^s r[iEvbWyT=+Ipo'w}b?d/? nh+r70%0HZ.@P)ἰrNVd5ߦ'wכ9yPwkMv#>c'cVʉx؇/Kf ;~xXe:A#/_jSoOȡ޺ʜcvmmOYU۹'"{7 o ھ|GcvNcmX4*&?(|Nq p/BJ̫M~ !ldpzm\rIy}?m'0-~,v GX{ۛ?H? _qik %Ԗ?/ߩA,^|ؙ<'=OL՟ jQ|_>=1ܑSBcGGavNЄk6ӹ7>xJ ̳/:_7|wwkϙL jeݤ Ἣ>4tCj_"jՃÿUN: ' |:رN"o~0؊ze3ԏ]D:nj\ qL^T`!-Q-6x*4/Up_SyO]{τϞm]"EѨ"Zir&4h}~VkP3oS*Q6H--WN k w<كG# )?R~lat`ʥDolÝ9rҮ4AG@‘//3^-4hBGw9ce9. -1ZS$!fe o濰>__-~k[8/?n65* 4;‘9\Ui$ vpQG iO>o>վ @A:#ǯq ou1K<La}t㙧5=~C7J;or䨒cbaޘ`Jjx"?GV#'~v#뜳ob]Jy5 iw}u„G<'۰N` &J#|J=i8f09-W!k\KO00n8mҕw?pc5lP]o/($PmD9V--OfFҶ.Qۂo@0Vl$XLiKƸ\642I..X?ٹU>d6Hc6eܟwGF=Na盘‚4?9/Xjn \3PVw %=(?|w;ȉo(o^L$&BY Y5+򵍧1BL/C/}WLpϚw*l:mJf{O*MKʤ=U0TRG1ӚB&82^=BIӴg<~Cyb$Y P6;LaoHS )5UM^U/j1sISH97<^_l f}n<}*3<<4?b)`AMZv"k:o9t^rUe:QVf;)NC9"C-8ةͫ}O =vdp\ƸZpENWO !?*d12D߿Qlϳ]xŵXk:8T»ºzN8գ-hVVy5>UҊ,T,86@B("hQ@5U8 M2Qs%ﺖm۔#{=pY\4mQ Gdz j/bB|->vdۻb"ʊd CcrƷVn!Ei፜j J.ZPhEf?CÐR%>VжkOjqm˕AGmyj(L5t|5_HoLb>kp({_GHi9Į㭧(a?/s͹ ǸƔ <~"<_f$s}AȳdXru-QF$SS]ؐ ףUO}1!cW!612LP0C/e Ê%~?Kh*4ߩ xq@qT\␵TԔ$Caܳa 64_ ͇B+mAm竌r?xnp`ACؙSUH9< [A~Ep8y:o{PVX qNU8 cla 8IlN9.&Ɩh˶ 1skUs3>?Ş u`@T~kbl;:ہ%;RJ颴~h}KSNi7BbGUiT̸ƙsng()#RI  Ќ$¦wg<Q.N,u"m{͍p )o/6rG>@Ґn)nU~7\xQL)?#EEVeF$vS.RZ(mBͲ c!rK;("ۜlgslI.`Aͅ^jcH9{fOh=Anx NZkmHlY#lɨ35F3SޡmD) HC8lAve_vնkEb0 $c8vi } YH`d'ey:$@ ؠp㲹E!*>*6bL% S;0JS8ڇ~lѬ)*(4U§ZpܲFn1kN2twRMʈYWR o5_1ڟL5L XP3kKA7f8&tAh*;˜D_XGpئ{2_|y]q (!I< G 3)tZSUG;;JnMz$"k_aIc#Glf 5ܹxBk S<[mk~7{p7{-InΆpRS_\ޯAUr&7Er(=Gi 3+,}Ea'= (=۴6H^/Q*774"9 ~ުf"`X/B-C 7m{5k/[#Y&&"mLа%h..oKd^xiI6%у|\3.VVjo<2ϡ(?*}{Na[Sڍ >*A&(W .1bOЧ/MEvӧ/Ǜ?Nf0$SaMB[7szio;8/I5BƟ2b[:Y^qeuɔ0`AMJ. "c;4cȜ'#1kGBNz5QRmԂ`#IIWΙE_>U(<ɍ9x Ro;?/۷j"=U*?g%^\H3r7`-VN*`{e_$Cq6nlc]r{>_\*bRRׅ_RXQbErLFN/SĶbpRPcYR?CMRᨲec8+?7vCRTSӼ3}mD5YcgUWjYM 6&3JEm?viE8Fw~M:OO|xwÁjzw6ۻ޷XP7O;EV?հea_@+FeDVJۻۏ2teSxA1tj"Bʆ/к+zVP&~,g%2rR_WymrԘl&:1 Gw ׼ 2.y}^4n'/VŵJ#ba5M/,<G@m6`k0Ha.knkIǨS'ئaol (l_٠b :pkK9~ZW3~Bt$7#kXEc4ƒEY! E{iB->\R7bȻodUHqJ580& JEi!Gʌ/קb} %?xo\%o<0)Itƨ&. ,#C@B,1M+ GSN\zbz4UR&iH\hj2b ; qKN5H@&4dPSʞO'Uj(` R^{+E\WP V9` @`ANa@RP)bXSDaV%ޤpEL+,]ϙ@ 5 4rTJ#K MHUƊ`L U,@F ͧRi{KlT$?[`}L1p 5FIcٳn&zB=Ԟ{@n0 knt825,q㻘`L D/?L ' p8'ݫCU\8`L PsL 0&ЫXP{/`B5Wz`JWrL 0&+XPsL 0&ЫXP{/`B5Wz`JWrL 0&+XPsL 0&ЫXP{/`B5Wz`JWrL 0&+XPsL 0&ЫXP{/`B5Wz`JWrL 0&+XPsL 0&ЫXP{/`B5Wz`JWrL 0&+XPsL 0&ЫXP{/`B5Wz`JWrL 0&+XPsL 0&ЫXP{/`Btc͜95ZK/?M'b?"/Xs<=.Vt~ל(v_z@`ATj饓a͖nXTUUEN4݂'_ZA6g)IM K&/ٝ>^Ͷ+lH4bfΫu6W*UO(Jռ܂cMʺIꝫ=X! j>?B>uɗ΄׺eVXViplFESlF쑡ThzcZcNΩ.ۣES\Ae) 5e6,JE;sxpiX:r.]| VNjyjHCsx&`q z,:ZT-p{=".LwaHS&&л|uPupjU-Z|$ⴼR{} >&8OSrJ7oU &=|JyKV..M6] vN+v}5K4A08TT+2-SD(!Rl"Ϻe++w˾Iz6{G *"{_H6|A풕P{Jf.QiU|K҂A4T.->^YQZ>uWjTL﷨Tsu3E3B•ƭ-U.a2sh{9P]k]q⠌p+3aSvhTihY?/7&~]sze2'kk[OJ]+YN=֨ DJg;+ +ޠ[7'_*=4S 6708O4./&⨴7bz,O2=8_]i\Rs㳽Og@ "QT_MH ▁ |=h4 ^/2̈=olN;XP[r{ZjCu˜3獄T 4H^lg}uPn n;Yh^R9Jm{5gX#5n%!_DzWϤcKČ1k;pl0G S=GeUURU+?)VgquU(/ORH(*[]Rh@Z$RyYqS͋K1._o?.\3.AEQ1In,Eic뢋gSY wgie-dCT\Q)^GY8邏Q*=U<{ nj7Y6Te[Qɗg-*6ng4aX=`M/NkӸ0& j:MICբ۵8cM[\`L `ASQ:{a%ڎcZ} rQ: hoЖoپZ jw.is~&&'tڪ >It\YW/NU`M$>ɘCcP. "^z{Wi=< 0#`AW鏗}OwC,IIS$ mB1U_.2))[< MwqF=j< ٵ/qT ^*7<񾦹JtEW+*&O`L 04`AMľ/#t&xl =k<.  0p}(]%.cىwyc_A>1sN\5+{tɎPt"+ېF;θzi!g۹ s'LE5]$~[{✯/|yYrcT+9ss8l9&k_ܮ@{!:1=ԬȆZ`A:kgYn])/ߟ8[yYަ2?89cWݿC >JZO_z?07|0奻.ς=Ga;V.8εz]5O̞o d56YBסfIGE18>GGGo8Vuh]d(f)8ўSRԃFsba%M̅5{*4ګv!׼OD7xEm& t_7&ٓL OL}5fC t x6i8h=6D5>Gູ"-JUdqըYPPeB) j/>i|'OnM}09rWt&݆?yvSLݱ%ƙ`BwG R-Z'ʮlތbN:΢=ۓ6z/=T</.GoJq u-%.k΋+3HςQ=c0B~OOV~Ro{(_WR*-يdze#5kdK:l0מ=] ;{6CU:$N ,,ɗ= @Cݓta9==yT{߫{.sϫe" ({:$Gf2 ̍+'.$K-c^:$mU)gtsv|Nrmo) >h^; jڑ]pO)C*+blԭpPN y7 >^%Hx7o =M|K֋/_zȉ.mЫJ)n7Ma%;bpB864j:L3zxHbcz{j_j WYҝ F W\%FZ׈;&h/7^6!?{'*F.k~nstj{d/u=S_+'N[4ϺzD$?cܘ YP?*+30 )V&T̎˿5c6w̝ϾG?9lzݿ#چ{w_W4þ<#)SZ{=Ծ73~2lTPP S(*斘`GtG|x_(Z'͚Y·vӛDBHe_G  sLEu_-kǮE=+6 YDz2;9&kgˉ _Q?1볠fŐ^(}4}Ͻr@n%"?/koGs C۞=)/i~0,I sMZǡgb<6jXrVo-.%e7Ŗm?:Q9ha{]7]=Ez.Vgˉ ݾO.įH4_FWmޏ}4] ]sPS1{'\}%8ij[uIBz}nhxgǵ߃*~yBfy Hi/G8|pO @! NxKHZuwӏp¦5{~~l˟skS|~Fҵdҍ3Cņ0ƙ.-JncC-M98?(i.5X݅#[ŦSMp#GLKhW,8ar?rgk!\Vw.Cqe˓0tY\}MFs[/ Fո }a{eIݲ[=uQaF~QBu2;iQOHܳdMǀ}}ϚG7=')G'Lv"L CoVMJNs3>|x}ϝ83cQڵYy?k (IwO+q[n~F|:|ʋp {q⽓5FM~>36ѽ.5?܏g׾hX(kVz ;h逯EEcU"-O"ou(!e_Nk#OW<&% I~{xWvkox|0zR0ŷ#P7 WS˷^8.GrD. 8ςz?(~<eVv؝Mt@}ju#F% чC߾<;9o>1R{Y@EyΈߑ]o{nOkznɔבYmy:?}M֗Oa ۆF7 UP+*LgA.r.΋_^IGQ|=/>ȈOz hFdo}Vy#s| ӂ<{odA⯽6C=Ƈz/.u:bWD+~H${ߟyJUrZT *?L OĪk5;McL IM+N., *?L 0&@s"@h8 E]-fKOL 0&81&@`A͖b;`L ftqL 0&-XPN&h,=l`L d l) 0&2 jFw`B5[zdL 0&1&@`A͖b;`L ftqL 0&-XPN&h,=l`L d l) 0&2 jFw`B5[zdL 0&1&@`A͖b;`L ftqL 0&-XPN&h,=l`L d l) 0&2 jFw`B5[zdL 0&1&@`A͖b;`L ftqL 0&-XPN&h,=l`L d l) 0&2 jFw`B5[zdL 0&1&@`A͖b;`L ftqL 0&-XPN&h,=l`L d l) 0&2 jFw`B5[zdL 0&1&@`A͖b;`L ftqL 0&-XPN&h,l}/N޴;/Uշ_dz7-ڒkC3;;yÒ{vzvO^ޞF59yi"(ל5=1ϺSWPgngq۾Ϻ^_v KWWm [%5}ҜгA=?}X |Ru<򹧩R9X2Nnު\>^ϔ {h'u׀9Z|kz dz?>/ Ϗ޽kfD>wVҩ-JsSe_~Q|mv~ 57l9o:k.iؾIY7ibngU'y}YW2mk2@ v]6uoܞ?ᏠDXQ1:(O_'Eψ̂M?1i;yP~dFx 1..{Q>Ø'i'G c/ eH3Nh"%rw'SxR}Os|r\t~\럙¼>`ܩ#Z[j1zN,$ƭ-UU# X!bstQ{_nڢ #A 5663':IajdNwy|EtM$%bZ݅ )eYfQD캣kLDc5a+ux}~!Q۟6F¤|SLB"2'q%>j2,I7.3bF4C"E}j6F7`Ily%jDmz/C͖LSEɷzi τ QhWgٖHccbufm>@u:R$ȧy-K٪Zby]4' 9v*?RڪلHэJ>vy&Q[%g(LEh=VO$_:_)P_yoefY2 UxE2 3.u~m//O/+wڝWt71D()~Z_Mf}ODJFeUqTƴb˨dgcM%7DGo'N$8rl2Ϛx ](ܪc󜈓]ZJltTmiZݸҾnx gU߈j2rLb%x-kTؾܘ$]N ڵX=s+).YPWo V>5B ף J~!kQP/>Gyc==-Ou%gJ*.şzNѾ" R-_/ڼHP7rqkĕ-BQ:xգFkwRh㯷T\b2#2mvU3k#FL@ ?t:C5we9]nY(NJA.i'=42Wk:lirkQ܃ՊR_*GҦUrs9tYKpy#㱣kCM{|6tf-zfEZ_Oˎ,iUq]+$vԘH$i3ګr@'_jS7_$w*u. nؚ`e*׽"rSba %% -ZХv{`:/LKk ,Sd&]i|AŁP"|IFJ ?9MkO՚9UF[[JE9>4()K [j˶D]) sf'{Ƨe7vA 5fּ7;mwP`D9IoK )) >.99is\}j;(>#dL1ʁ1(eRaOh|]TeR3DTn3>PliO ͌=\cx[XvJC*Yue9]UM4F 1YkA;F˶X=0Z:,SmTy#hXF.TLڊ:{&] 1i:lZ\8pMF*hn L$(D˷Q~TVi^AVmLFڲ-6t.2SBk7LwdU'.A͢Nڵ_ {K{ګgd65 hY0Ƽ*llClfiŰfD7L 0&nRRg`L`AʭbL 0>&:&XPgr`L 1p 0&'ٯ*&c,} cL 0I+ 0& j`L`AʭbL 0>&:&XPgr`L 1p 0&'ٯ*&c,} cL 0I+ 0& j`L`AʭbL 0>&:&XPgr`L 1p 0&'ٯU9yoyG_nqtsK퐅k95jwvve&5sΛmkoz,7#Y҃!Rē<9H4 d6,^Yy|t{^-o&W%N%kmK4-5 ycrmɖ1&XP3|…OqU aMʺI#\,_\];rQiwehpi/c YelnXPSǷuINeQοz٦{mrLi5{*ы3] gG;aLy'uxՅ2][uڢ,_{1[=,G[AjEaKlSDC0l&ͽᶗ:*Rrh G/8^U+"#joRnkWy};nQW7M*2n: 1TmQNfg9(` :oqel D:^a$s7m>JT %ouKɁDT/뢻<+feUfmr?lHb f/T6l/{՚^BUT(ȫs˙u18٨Bl_nLMz@r;rLy;* HpqKK3 "%:kiC§%Qt$~a$x ׽R[bzE%LeJ]+,zʚU2f@"گ3SE}EWqDƒMlnirk%fE`Z4&T2WZ4fWunq( 鲺(.xVݛps9VeZ7Jҍ1JQ=lH4b, vv>j:|G%&udfŮKF=&LāM˕җ: o'#w,OzJrHT]Z nN䧉f]deQ&~Ĥ\,YIls^UpIE !՜ĹldCI"K-~szd*T/'}bRp+(k3RW6XT|[ \VLk>$zY5+2=K{&/nF̜7Yb4Tβyu2k:JeX#ډ4w iûL|y%-Ӝ#nuФ'rnʌ`mòuvLJP]=jYx':r]XL.вYYɉ  9&TWXLMG[FjN1`A<58̆ `~2a jbn`Bp5*_뎯Ks;K5<4&Q<))G;`%^\`L (xn6`L jzyriL 0&XPsL 0&^,ɥ1&@`Aюf3&@z '`9J5G;`%^\`L (xn6`L jzyriL 0&XPsL 0&^,ɥ1&@`Aюf3&@z '`9J5G;`%^\`L (xn6`L jzyriL 0&XPsL 0&^,m_˷K;k4SU7G.2TO^QjXPR*Z1ƢX+R4,1nu,xHgvqɢHe]w)u|,k$2OXl_droQc2KJwtٛkjMPZV;{l9j^j*~ 乶*ƚY? ۪;Qqg h8g&κmˆ[!Y6j޽κ#JV$yLTmܫ(ܢc=ƚ;i]&KeQJuƺ L$겭鎚yZ#3/~#uJ)Y8[-K 3` މߧYzJEw j#?)gS*,*4~og07CЍ9jJ޲Qծ֢i[5OƇK,ݢ+7.bSPTHęu{H&Vci :[A[+RNC]Vh֗^:94PQVtMEs~(KeMZ!X=Pz)L}F˴>tRQ( W]VW sN<*f.~E8XPt9ipΑZ bqr˜^Zx>*ظu2 &/F~MWCr,ΔU_$ ŸaM#Aŕ/Uo)pDQ w*J؊NujqӤe;iYS?#B;/QGD-:ҽeg^l(j21yAzxNމ_p/NJ&Szl On(&;U՞O[R^굝S;$M鳍Kb!{|?H84gEV.Q<rMa})\[JXPS71&&cD0&H4@"`L 3`L XP`L 0&`L 04`AMD. 0& *?L 0&@5 &`, 0&H4@"`L 3`L XP`L 0&`L 04`AMD. 0& *?L 0&@5 &`, 0&H4@"`L 3`L XP`L 0&`L 04`AMD. 0& *?L 0&@5 &`, 0&H4@"`L 3`L XP`L 0&`L 04`AMD. 0& *?L 0&@5 &`, 0&H4@"`L 3`L XP`L 0&`L 04`AMD. 0& *?L 0&@5 &`, 0&H4@"`L 3`L XP`L 0&`L 04`AMD. 0& *?L 0&@5 &`, 0&H4@"`L 3`L XP`L 0&`L 04rIENDB`X(   1;Document Word.Document.80.Microsoft Word Document<Document Word.Document.80.Microsoft Word DocumenttXindex.shtmlBhttp://lacsi.lanl.gov/index.shtml8 Chart Excel.Chart.808Microsoft Office Excel Chart9 Chart Excel.Chart.808Microsoft Office Excel Chart: Chart Excel.Chart.808Microsoft Office Excel ChartB Chart Excel.Chart.808Microsoft Office Excel ChartC Chart Excel.Chart.808Microsoft Office Excel Chart Chart Excel.Chart.808Microsoft Office Excel Chart"GFutureshG/start.htm8http://www.nsf.gov/start.htmD/ 0tDArialff Festivatty 0DTimes New Romantty 0 DComic Sans MSntty 0B0DSymbolans MSntty 0@DWingdings MSntty 0PDTechings MSntty 0"`DVerdanas MSntty 0"pDOsakaas MSntty 0DArial Unicode MSty 0"DTahomanicode MSty 0D[SOomanicode MSty 0DTimesnicode MSty 0DEurostar Black Extended 0"DMT Symbollack Extended 0RDFalstaff Festival MTed 0 A0.  @n?" dd@  @@`` <4ho +!  "&$%&/'6B.!/28A9C:@;A<!?/FKEFHGHQEH+EHFHEFFGHGGFIGFG7 {A8~#*  K2* $ FIFFGR$APiwr>T5"$CZ=9Y`5$2$dž ;c!2$0w(L_P)b$&ɱ/W<a1$$b$ as6vc_C  &:b$|8/< D$$$b$NcC  Kb$u>K=Jio@Q$$"$cRoWY$$$$"${Eo*S2 b"${wm{w Ol"$ɼoHʘ!Ӻ u$$$$$$$$$$$$$b$a2WU e TAA)X?P@86" ʚ;D0ʚ;g4KdKd 0"ppp@ <4dddd@k 0t\y <4BdBd@l 0t8&AUTODATETIMEENABLED1H$AUTODATETIMEFORMAT$countupmm___PPT10DOsakaPtt< 0DArialPtt< 0 D[SOalPtt< 0 ?  +O  =::Fault Tolerance with FT-MPI for Linear Algebra Algorithms ";9$$Jack Dongarra, Innovative Computing Laboratory University of Tennessee and Computer Science and Mathematics Division Oak Ridge National Laboratory  PdFault Tolerance: Motivation1Trends in HPC: High end systems with thousand of processors Increased probability of a node failure Most systems nowadays are robust MPI widely accepted in scientific computing Process faults not tolerated in MPI model Mismatch between hardware and (non fault- tolerant) programming paradigm of MPI. Z-ZZ(Z"ZZ,Z*ZZRZZ-("  ,  *Q%FT-MPI http://icl.cs.utk.edu/ft-mpi/&$Define the behavior of MPI in case an error occurs FT-MPI based on MPI 1.3 (plus some MPI 2 features) with a fault tolerant model similar to what was done in PVM. Complete reimplementation, not based on other implementations Gives the application the possibility to recover from a node-failure A regular, non fault-tolerant MPI program will run using FT-MPI Runs over a Grid What FT-MPI does not do: Recover user data (e.g. automatic check-pointing) Provide transparent fault-tolerance\P>PPVP>V>'FT-MPI Failure Recovery ModesABORT: just do as other MPI implementations BLANK: leave hole SHRINK: re-order processes to make a contiguous communicator Some ranks change REBUILD: re-spawn lost processes and add them to MPI_COMM_WORLD}ZZZ@Z(ff7  9  Application scenario Application scenario 0GFault Tolerance - Diskless Checkpointing - Built into SoftwareHG   Checkpointing to disk is slow May not be any disks on the system Have extra checkpointing processors Use RAID like checkpointing to processor Maintain a system checkpoint in memory All processors may be rolled back if necessary Use k extra processors to encode checkpoints so that if up to k processors fail, their checkpoints may be restored (Reed-Solomon encoding) Idea to build into library routines We are looking at iterative solvers Not transparent, has to be built into the algorithmZ#ZtZZ$ZYZ#t39K$Y  6 ?  l How Diskless Checkpointing Works!!b (&     HComp Proc 1 Comp Proc k Ckpt Proc 4HHb b 4>      Diskless Checkpointing DThe N application processors (4 in this case) each maintain their own checkpoints locally. K extra processors maintain coding information so that if 1 or more processors fail, they can be replaced. Will describe for k=1 (parity) If a single processor fails, then its state may be restored from the remaining live processors hEPV{i"Diskless Checkpointing  $#A Fault-Tolerant Parallel CG Solver$$(BTightly coupled computation Do a  backup (checkpoint) every j iterations for changing data Requires each process to keep copy of iteration changing data from checkpoint First example can survive the failure of a single process Dedicate an additional process for holding data, which can be used during the recovery operation For surviving k process failures (k < np) you need k additional processes (second example)\N\=N 'm3%CG Data Storage &Parallel version 'Diskless version ;$*Preconditioned Conjugate Grad Performance &+)b  b $ + a*Preconditioned Conjugate Grad Performance &+)b  b $ + <%*Preconditioned Conjugate Grad Performance &+)b  b $ + =&*Preconditioned Conjugate Grad Performance &+)b  b $ + WProtecting for More Than One Failure: Reed-Solomon (Checkpoint Encoding Matrices) 4X9b  b b (W  In order to be able to recover from any k ( <= # of checkpoint processes ) failures, need a checkpoint encoding With one checkpoint process we had: P sets of data and a function A such that C=A*P where P=(P1,P2,& Pp)T; C: Checkpoint data (C and Pi same size) With A = (1, 1, & , 1) C = a1P1 + a2P2 + & + ap Pp With k checkpoints we need a function A such that C=A*P where P=(P1,P2,& Pp)T; C: Checkpoint data C = (C1,C2,& Ck)T (Ci and Pi same size) A: Checkpoint-Encoding matrix A is k x p (k << p) Ci = ai1P1 + ai2P2 + & + aip Pp Each checkpoint process get one of these hZHZZZZ3ZZZ)ZZ$f f jf ;f n f n f n f n f f b j  b j b b f f n f n f n f n f n f n f 3f  f  n  f  n  f  n  f  n  f  f b j b j b j b j b j b j  b j )b  b f n f f n f n f n f n f n f n (f f  f    S  O       E    / WProtecting for More Than One Failure: Reed-Solomon (Checkpoint Encoding Matrices) 4X9b  b b (W   With k checkpoints we need a function A such that C=A*P where P=(P1,P2,& Pp)T; C: Checkpoint data C = (C1,C2,& Ck)T (Ci and Pi same size) A: Checkpoint-Encoding matrix A is k x p (k << p) Ci = ai1P1 + ai2P2 + & + aip Pp Each checkpoint process get one of these The checkpoint matrix A (k x p) has to satisfy the condition: Any square sub-matrix of A is non-singular How to find such an A? Vandermonde matrix, Cauchy matrix, . . ., random element matrix We are using a random matrix to in-code the checkpoints. When h failures occur, recover the data by taking the h x h submatrix of A corresponding to the failed processes, call it A , and solving A P = C A is the h x h submatrix C is made up of the surviving h checkpoints PPPP)PP>P+PPAP9PPPGPPf Cf n f n f n f n f f f n f n f n f n f n f n  f n )f  f f n f f n f n f n f n f n f n )f  f  >f *f b f  f f  f f f %f :f f  f f n +f f J       E          `   / D*3FT PCG Performance on AMD Opteron Cluster w/Myrinet44f $)))@       FuturesPut this in the Grid / VGrADS context Launch and determine the number of processors for this particular problem from the VGrADS framework. Provide the fault handler the ability to detect slow processors or networks and cause the fault to occur. Use the checkpoint processors to participate with the work. Requires reallocation or layout of data Run with a larger numbers of processorst&PePP(P(P&e((,\3Collaborators / Support FT-MPI Graham Fagg, UTK Thara Angskun, UTK George Bosilca, UTK Jelena Pjesivac-Grbovic, UTK FT Algorithms Jeffery Chen, UTK Julien Langou, UTK VGrADS Asim YarKhan, UTK Zhiao Shi, UTK ZZUZZ%ZZ!ZZU%  "br  0 0  For more information: PPPPPP  /@v   0` f3` f̙` 999___` f3f3f3!>?" dd@,?Zd@ d @ `  n?" dd@   @@``PR    @ ` ` p>>L0 @d(  rB  <o"pp  N1gֳgֳ "X  T Click to edit Master title style! !<  H4gֳgֳ " @  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S  T9gֳgֳ "0P  V360   T?gֳgֳ "0P   d* 0   6,E )X"0P  d* 0 X  C "A icl2"GB  s *޽h ? f3?80___PPT10.#n tech  0L0 KCP(  lB  6p"pp  NOm^:lz>SK.vv(Vzl^O[><." "<[{l^PVC7,("v v.K S">,7CP:^ml{   @ V   BCADEFg --q M%'1:?dA/?:1'zW 9!r!]9HW6z'/d%M'q6H]r[\@ |3   BwCDEFjJ--wsj Z&D?*V j{j< {ljNV3?&  x3_NHl3" <j " 3*HD_Zxjsw[\@S" Q   BiCDEF--if\ M'8AXl~b5~klLX2A' w2^LGk3" 5b "3G8^Mw\fi[\@N 7er  JBC@DEF==l =  )1V7<?@C?<7|1A)   }X9!}!n9]XO}A4) A|CV =)l4AO]n}{|@ 1   BC!DEF))xS+!iK2 y bM2:K*i+Sx*:MbyST@V /   BCADEF1--jN -'2:?PA?:2'tS 6 s ]6JS7t(P-(N7jJ]s[\@S" Z )  B)CpDEF)))$  $:L[leAmpme[qLQ:5$ d5LQ6q$ Al $6L d$)ST@ J> ^  BCDEFԔ55  p5MF$Wer{Z l4{reWyFV58  }8iVTyB2$4 l Z $$2MBpTi}kl@S"  E   BCUDEF11+SzrZ=,=I~RPU#RI=,cF. zS+ .FtcX?) #P~ )?=XZtr+cd@ ^    BQCBDEF--QMD5! '2~:T?(B?:2'fI 0  s]0JI7f((T~(7!J5]DsMQ[\@  R  *BC,DEF996VszV-g%/*,*%LoN4sV64NoiR>,L/g,->VRzist@$X  @B  C oRB @ s *D5msRB  s *D//  <4h: 1  yManetho n faults [EZ92],0    < C  pEgida [RAV99],0     <h ~<  "MPI/FT Redundance of tasks [BNC01]8#0     < z`  ?FT-MPI Modification of MPI routines User Fault Treatment [FD00]8@0 2   <\ 8| l$MPICH-V N faults Distributed logging,%0   <CE ~ ~*MPI-FT N fault Centralized server [LNLE00]8+0   ^  6o  <8C9@ G Non Automatic0^  6o@  <C9B  G Automatic" 0   <C- _Pessimistic log40 ^  6o  <C. D  Y Log based4 0    <pC XCheckpoint based,0  ! <D1 J  Z Causal log4 0   " <C  eOptimistic log (sender based),0  # <lCu MLevel,0  $ <TCX  Q Framework, 0   %@ 0ĿCN 0K  KAPI,0  &@ 0PCn Dh cCommunication Layer40  ' <CneV  "Cocheck Independent of MPI [Ste96]8#0   ( <C 3  u!Starfish Enrichment of MPI [AF99]8"0    ) <|C Hw#  |(Clip Semi-transparent checkpoint [CLP97]8)0   * <0Cj !  {'Pruitt 98 2 faults sender based [PRU98]8(0    + <C # # 3Sender based Mess. Log. 1 fault sender based [JZ87]840   , <CCU  SOptimistic recovery In distributed systems n faults with coherent checkpoint [SY85]8T0+ "  - 0HCS & A classification of fault tolerant message passing environments considering A) level in the software stack where fault tolerance is managed and B) fault tolerance techniques. 80 2Vg}cRB 0@ s *D  1 <Cb  d(Causal logging + Coordinated checkpoint )0) 2 <C :  ALAM/MPI0  3 <@C T D MPICH-V/CL 0   4 <N  @LA-MPI0  5 BCADEF1--jN -'2:?PA?:2'tS 6 s ]6JS7t(P-(N7jJ]s[\@S"   6 BCADEF1--jN -'2:?PA?:2'tS 6 s ]6JS7t(P-(N7jJ]s[\@S" 0   7 BCADEF1--jN -'2:?PA?:2'tS 6 s ]6JS7t(P-(N7jJ]s[\@S"  f6l `  @` ,$D 0 8 NN)X? b$ New community MPI effort OPEN-MPI"%0 %C 9  BCDEFAAԔ)X? H,L@  ` <  BHChDEFAAԔ)X?,hH@  ` ~B ? NDԔ)X?  H  0޽h ? ̙33A9___PPT10.+)D' s= @B D' = @BA?%,( < +O%,( < +D' =%(D' =%(D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*@%(D' =-o6Bdissolve*<3<*@+  0 h8(  h~ h s *@NX  N ~ h s *N`]  N  h  `gֳgֳA ;? ? @8 ;$D 0 h <A <?? @8 <$ 0x h C A8 @ ,$ 0H h 0޽h ? ___f3fy___PPT10Y+D=' s= @B +^  0 } @(  @~ @ s *PNX  N  @ Zd!N??p  rrc=MPI_Init (& )0    @ Z|&N??  $Install Error Handler & Set LongJMP%0 %  @ Z0+N??p   RCall app (& ) 0    @  `d/N ??@` MIf normal startup 0  B @@  fD>??P @ ZT4N??@ XMPI_Finalize(& )0  H @ 0޽h ? ___f3fy___PPT10Y+D=' s= @B +3   0 Z R  D(  D~ D s *RNX  N  D ZpUN??p  rrc=MPI_Init (& )0   D ZZN??  i Set LongJMP0   D Z]N??p   RCall app (& ) 0   B D  fD>?? P D Z bN??@ XMPI_Finalize(& )0   D ZfN??   w#ErrorHandler Do recover ( ) Do JMP$0 $  B  D@  fD>??  B  D@  fD>??  D  `nN ?? 6 On error (automatic via the MPI runtime library, could be done because of a  contract violation ) e0 e H D 0޽h ? ___f3fy___PPT10Y+D=' s= @B +  0 F(  x  c $tN1  N   c $zNp  N "p`PpH  0޽h ? f3?y___PPT10Y+D=' s= @B +  0L0  (  ~  s *X   x  c $x     `xN1? @p \Data(0 e      `ЏN1?77  kLocal Checkpoint*0 g      `ؓN1?@ = xData60 e a      `N1?7 4  Local Checkpoint :0 g c      `$N1?  mCheckpoint Encoding*0 g      ZN 1?"6@ NNN?Np@ N$0 c     N 1?"6@`NNN?N    N 1?"6@`NNN?N     N 1?"6@`NNN?N0  B   ZD)?"0@NNN?N` B  ZD>?"0@NNN?N 0` B  ZD>?"0@NNN?N ` B  ZD>?"0@NNN?N  #2  ZN1?"6@`NNN?Np 0P  [+*0 g X    NxN 1?"6@ NNN?N@ p:  ZMemory$0 c     NN 1?"6@ NNN?N @  ZMemory$0 c     NN 1?"6@ NNN?N    ZMemory$0 c   L  ZN 1?"6@ NNN?NP X The encoding establishes an equality: C1 + C2 + & CK = CK+1 If one of the processor failed, the above equality becomes a linear equation with only one unknown, therefore, lost data can be solved from the equation 0 'c k c k c k c k c   H  0޽h ? ___f3f___PPT10i.܉+D=' s= @B +   0L0    (  ~  s *xNX  N x  c $PN@  N F  Pp   PY   BLN)X?C"? p <P00    BN)X?C"?pP <P10    BN)X?C"?pPp <P30    Bl)X?C"? pp <P20    BD)X?C"?`i  <P40  d  <)X?9 b   `GH~Io)X? b   `ZGHtIo)X?9 Y R  ZGP4 takes on the identity of P1 and the computation continues ?0 ?  % H,jgֳgֳ p0  ,$ 0 nWhen failure occurs: control passes to user supplied handler  XOR performed to recover missing data P4 takes on role of P1 Execution continue6ZzZzH  0޽h ?          ! "# f3?^7V7___PPT1067.0+ D4' s= @B D4' = @BA?%,( < +O%,( < +D[' =%(D' =%(D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-o6Bdissolve*<3<*Dp' =A@BB BB0B%()))D' =1:Bvisible*o3>+B#style.visibility<*%%(D' =-o6Bdissolve*<3<*%D' =%(D' =%(D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-o6Bdissolve*<3<*D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-o6Bdissolve*<3<*D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-o6Bdissolve*<3<*D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-o6Bdissolve*<3<*D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-o6Bdissolve*<3<*D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-o6Bdissolve*<3<*D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-o6Bdissolve*<3<*D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-o6Bdissolve*<3<*D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-o6Bdissolve*<3<*Dr' =%(D' =%(D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-o6Bdissolve*<3<*D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-o6Bdissolve*<3<*D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-o6Bdissolve*<3<*D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-o6Bdissolve*<3<*D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-o6Bdissolve*<3<*D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-o6Bdissolve*<3<*D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =-o6Bdissolve*<3<* D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*!%(D' =-o6Bdissolve*<3<*!D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*"%(D' =-o6Bdissolve*<3<*"D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*#%(D' =-o6Bdissolve*<3<*#D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*$%(D' =-o6Bdissolve*<3<*$+0+0+0 ++0+0 ++0+0 ++0+0 ++0+0 ++0+0 ++0+0 ++0+0 ++0+$0 ++0+%0 +  0 @<(  ~  s *hX   ~  s *,   H  0޽h ? ___f3fy___PPT10Y+D=' s= @B +   0L0   P (  ~  s *8X   F P    l  <)X?P rB  BD)X? rB  BD)X?pp rB  BD)X?  rB  BD)X?  d  <)X?@ F     l   <)X? rB   BD)X?`a l   <)X?   N|)X?p@t W SThink of the data like this0   N)X?_F ?A"0 a  NX)X?_F ?b"0 a  N)X?_| F G 5 vectors" 0  a  N)X?   YCheckpoint A and b initially 0 CH  0޽h ? f3?___PPT10i.IH+D=' s= @B +  0L0 `'.w(  ~  s *X   F P    l  <)X?P rB  BD)X? rB  BD)X?pp rB  BD)X?  rB  BD)X?  d  <)X?@ F     l   <)X? rB   BD)X?`a l   <)X? F P   Pr  B)X?P rB  BD)X? rB  BD)X?pp rB  BD)X?  rB  BD)X?  j  B)X?F ` P   `  r  B)X? P r  B)X?` P r  B)X? P   Nl)X?p@t W SThink of the data like this0   N$)X?` 4 e-Think of the data like this on each processor.0 .  Nh)X?_F ?A"0 a  N)X?_F ?b"0 a  N<)X?_| F G 5 vectors" 0  a  N)X? x p ?A"0 a  N)X?dp ?b"0 a  NH)X?d p G 5 vectors" 0  ajB ! BD)X?0` 0jB " BD)X?` jB # BD)X? `  $ N()X?|  A. . . 0  % N)X?.|  A. . . 0 g & N)X?p s I( oNo need to checkpoint each iteration, say every k iterations. Need a copy of the 5 vectors in each processor.^p0 0cc c1g0 (  BhCDE(FAo)X? 8h @   S" x`H  0޽h ? f3?___PPT10i.IH+D=' s= @B +  0L0 p55(  ~  s *X   F P    l  <)X?P rB  BD)X? rB  BD)X?pp rB  BD)X?  rB  BD)X?  d  <)X? P F      l   <)X? rB   BD)X?`a l   <)X? F P   P r  B)X?P rB  BD)X? rB  BD)X?pp rB  BD)X?  rB  BD)X?  j  B)X?P` F ` P   P`  r  B)X? P r  B)X?` P r  B)X? P jB  BD)X? I jB  BD)X? I jB  BD)X?P I PjB  BD)X?@ @jB  BD)X?   jB  BD)X? F  Pp  p ` 0   B)X?C"? p <P00   ! BT)X?C"?pP <P10   " B,)X?C"?pPp <P30   # B|)X?C"? pp <P20   $ B,)X?C"?` p@ <P40  d % <)X? b &  `GH9 I0o)X?p  b '  `ZGH&)I0o)X? 0R ( ZGxHIxo)X?` ` X R ) ZGxH Ixo)X? ` X @p * Ho)X?P P x + BzG)X?" d , <z)X? P d - <z)X?d . <z)X?@jB / BD)X?||@ 0 N ")X?G . <P00 A 1 Nd&)X?  <P10 A 2 N<*)X?` G <P20 A 3 N#)X?  <P30 A 4 N82)X?Lp <P40 A 5 N6)X?p  Extra storage needed on each process from the data that is changing. Actually don t do XOR, add the informationp0 pAH  0޽h ?_ %&#%'!%("%)%$* f3?___PPT10i.IH+D=' s= @B +D  0 DD@@C(  ~  s *=   > p  # #"&8p  c  <??" p  F>6___PPT9 Recovery Overhead (%)8(" c  c     @`  <0I?" p  F>6___PPT9 Ckpoint Ohead (%)8("  c  c  4     @`N  <\ ?"`p  F>6___PPT9 ~Recovery (sec)((" c     @`d  <|^ ?"` p  F>6___PPT9 FT-MPI w/ recovery (sec)((" c     @`  <f ?"`p  f^V___PPT980 &(FT-MPI w/ ckpoint (sec)H)(" c   #c  |  x    |     @`   <Dv ?"`:p  f^V___PPT980  FT-MPI (sec)H (" c   c  T  x    |  @`N   < ?"`p : F>6___PPT9 ~Mpich1.2.5 (sec)((" c     @`L   < ?"`p  F>6___PPT9 |Matrix ( Size )& " c     @`B   <?" F>6___PPT9 r0.37((" c    @`B   <?" F>6___PPT9 r0.12((" c    @`P  <Բ?" F>6___PPT9 3.17((" c    @`P  <ȭ?"  F>6___PPT9 872.((" c    @`P  <?"  F>6___PPT9 859.((" c    @`P  <$?" :F>6___PPT9 858.((" c    @`P  <?" :F>6___PPT9 860.((" c    @`^  <@?" F>6___PPT9 bcsstk35.rsa (30237)& " c     @`B  <l?" F>6___PPT9 r0.72((" c    @`B  <?" F>6___PPT9 r0.23((" c    @`Q  <J?" F>6___PPT9 4.09 ((" c    @`P  <DJ?"  F>6___PPT9 577.((" c    @`P  <J?"  F>6___PPT9 570.((" c    @`P  <J?" :F>6___PPT9 569.((" c    @`Q  <*J?" :F>6___PPT9 577. ((" c    @`m  <#J?" F>6___PPT9 nasasrb.rsa (54870)& " c  (      @`A  <4.J?"  F>6___PPT9 q9.1((" c    @`A  <FJ?"  F>6___PPT9 q1.1((" c    @`P  <@?J?"  F>6___PPT9 2.48((" c    @`Q  <@JJ?"  F>6___PPT9 30.5 ((" c    @`P   < cJ?"   F>6___PPT9 27.5((" c    @`P ! <\J?" : F>6___PPT9 27.2((" c    @`P " <PvJ?"  :F>6___PPT9 27.5((" c    @`^ # <eJ?"  F>6___PPT9 bcsstk17.rsa (10974)& " c     @`B $ <J?"   F>6___PPT9 r23.7((" c    @`A % <pJ?"   F>6___PPT9 q2.4((" c    @`P & <J?"   F>6___PPT9 2.31((" c    @`P ' <|J?"   F>6___PPT9 12.9((" c    @`P ( <dJ?"   F>6___PPT9 10.0((" c    @`P ) <J?" :  F>6___PPT9 9.78((" c    @`P * <HJ?"  : F>6___PPT9 9.81((" c    @`_ + <J?"   F>6___PPT9 bcsstk18.rsa (11948) & " c     @`fB , 6o ?p p `B - 01 ?  `B . 01 ?`B / 01 ?fB 0 6o ?fB 1 6o ?p `B 2 01 ?p `B 3 01 ?:p :`B 4 01 ?p `B 5 01 ? p  `B 6 01 ?p `B 7 01 ?p `B 8 01 ?p fB 9 6o ?p `B : 01 ?   ; 0J"  `Pp  Table 1: PCG performance on 25 nodes of a dual Pentium 4 (2.4 GHz). 24 nodes are used for computation. 1 node is used for checkpoint Checkpoint every 100 iterations (diagonal preconditioning)$0c    < <J"    J 0c  & =0 # 0e0eA ?5% ?" P}   Jp > C HA bcsstk18structure plotp ? C HA bcsstk17structure plotj @ B)X?p 0B  s *޽h ? ̙33___PPT10i. }+D=' s= @B +D  0 DD@@C(  ~  s * =J  J > p  # #"&8p  Jc  <J?" p  F>6___PPT9 Recovery Overhead (%)8(" c  c     @`  <J?" p  F>6___PPT9 Ckpoint Ohead (%)8("  c  c  4     @`N  <L ?"`p  F>6___PPT9 ~Recovery (sec)((" c     @`d  <| L ?"` p  F>6___PPT9 FT-MPI w/ recovery (sec)((" c     @`  <L ?"`p  f^V___PPT980 &(FT-MPI w/ ckpoint (sec)H)(" c   #c  |  x    |     @`   <4,L ?"`:p  f^V___PPT980  FT-MPI (sec)H (" c   c  T  x    |  @`N   <"L ?"`p : F>6___PPT9 ~Mpich1.2.5 (sec)((" c     @`L   <@L ?"`p  F>6___PPT9 |Matrix ( Size )& " c     @`B   <;L?" F>6___PPT9 r0.37((" c    @`B   <CL?" F>6___PPT9 r0.12((" c    @`P  <D^L?" F>6___PPT9 3.17((" c    @`P  <^L?"  F>6___PPT9 872.((" c    @`P  <6___PPT9 859.((" c    @`P  <tkL?" :F>6___PPT9 858.((" c    @`P  <sL?" :F>6___PPT9 860.((" c    @`^  <L?" F>6___PPT9 bcsstk35.rsa (30237)& " c     @`B  <1L?" F>6___PPT9 r0.72((" c    @`B  <hL?" F>6___PPT9 r0.23((" c    @`Q  <L?" F>6___PPT9 4.09 ((" c    @`P  <ܳL?"  F>6___PPT9 577.((" c    @`P  <L?"  F>6___PPT9 570.((" c    @`P  <L?" :F>6___PPT9 569.((" c    @`Q  <L?" :F>6___PPT9 577. ((" c    @`m  <L?" F>6___PPT9 nasasrb.rsa (54870)& " c  (      @`A  <,L?"  F>6___PPT9 q9.1((" c    @`A  <L?"  F>6___PPT9 q1.1((" c    @`P  <lL?"  F>6___PPT9 2.48((" c    @`Q  <a?"  F>6___PPT9 30.5 ((" c    @`P   <a?"   F>6___PPT9 27.5((" c    @`P ! < a?" : F>6___PPT9 27.2((" c    @`P " <Ha?"  :F>6___PPT9 27.5((" c    @`^ # <)a?"  F>6___PPT9 bcsstk17.rsa (10974)& " c     @`B $ <2a?"   F>6___PPT9 r23.7((" c    @`A % <#a?"   F>6___PPT9 q2.4((" c    @`P & <5a?"   F>6___PPT9 2.31((" c    @`P ' <$Pa?"   F>6___PPT9 12.9((" c    @`P ( <6___PPT9 10.0((" c    @`P ) <ca?" :  F>6___PPT9 9.78((" c    @`P * <Lla?"  : F>6___PPT9 9.81((" c    @`_ + <\va?"   F>6___PPT9 bcsstk18.rsa (11948) & " c     @`fB , 6o ?p p `B - 01 ?  `B . 01 ?`B / 01 ?fB 0 6o ?fB 1 6o ?p `B 2 01 ?p `B 3 01 ?:p :`B 4 01 ?p `B 5 01 ? p  `B 6 01 ?p `B 7 01 ?p `B 8 01 ?p fB 9 6o ?p `B : 01 ?   ; 0|a"  `Pp  Table 1: PCG performance on 25 nodes of a dual Pentium 4 (2.4 GHz). 24 nodes are used for computation. 1 node is used for checkpoint Checkpoint every 100 iterations (diagonal preconditioning)$0c    < <a"    J 0c  & =0 # 0e0eA ?5% ?" P}   ap > C HA bcsstk18structure plotp ? C HA bcsstk17structure plotj @ B)X?p B  s *޽h ? ̙33___PPT10i. }+D=' s= @B +D  0 DD@BC(  ~  s *qa  a > p  # #"&8p  ac  <d$a?" p  F>6___PPT9 Recovery Overhead (%)8(" c  c     @`  <0a?" p  F>6___PPT9 Ckpoint Ohead (%)8("  c  c  4     @`N  <a ?"`p  F>6___PPT9 ~Recovery (sec)((" c     @`d  <a ?"` p  F>6___PPT9 FT-MPI w/ recovery (sec)((" c     @`  <a ?"`p  f^V___PPT980 &(FT-MPI w/ ckpoint (sec)H)(" c   #c  |  x    |     @`   <Ta ?"`:p  f^V___PPT980  FT-MPI (sec)H (" c   c  T  x    |  @`N   <a ?"`p : F>6___PPT9 ~Mpich1.2.5 (sec)((" c     @`L   <̾a ?"`p  F>6___PPT9 |Matrix ( Size )& " c     @`B   <a?" F>6___PPT9 r0.37((" c    @`B   <4a?" F>6___PPT9 r0.12((" c    @`P  <b?" F>6___PPT9 3.17((" c    @`P  < b?"  F>6___PPT9 872.((" c    @`P  <hb?"  F>6___PPT9 859.((" c    @`P  <!b?" :F>6___PPT9 858.((" c    @`P  <`+b?" :F>6___PPT9 860.((" c    @`^  <<4b?" F>6___PPT9 bcsstk35.rsa (30237)& " c     @`B  <d>b?" F>6___PPT9 r0.72((" c    @`B  <Hb?" F>6___PPT9 r0.23((" c    @`Q  <Qb?" F>6___PPT9 4.09 ((" c    @`P  <[b?"  F>6___PPT9 577.((" c    @`P  <eb?"  F>6___PPT9 570.((" c    @`P  <Ab?" :F>6___PPT9 569.((" c    @`Q  <hb?" :F>6___PPT9 577. ((" c    @`m  <̂b?" F>6___PPT9 nasasrb.rsa (54870)& " c  (      @`A  <djb?"  F>6___PPT9 q9.1((" c    @`A  <b?"  F>6___PPT9 q1.1((" c    @`P  <̠b?"  F>6___PPT9 2.48((" c    @`Q  <b?"  F>6___PPT9 30.5 ((" c    @`P   <Ȥb?"   F>6___PPT9 27.5((" c    @`P ! <$b?" : F>6___PPT9 27.2((" c    @`P " <Db?"  :F>6___PPT9 27.5((" c    @`^ # <b?"  F>6___PPT9 bcsstk17.rsa (10974)& " c     @`B $ <lb?"   F>6___PPT9 r23.7((" c    @`A % <6___PPT9 q2.4((" c    @`P & <hb?"   F>6___PPT9 2.31((" c    @`P ' <xb?"   F>6___PPT9 12.9((" c    @`P ( <c?"   F>6___PPT9 10.0((" c    @`P ) <D c?" :  F>6___PPT9 9.78((" c    @`P * <c?"  : F>6___PPT9 9.81((" c    @`_ + < c?"   F>6___PPT9 bcsstk18.rsa (11948) & " c     @`fB , 6o ?p p `B - 01 ?  `B . 01 ?`B / 01 ?fB 0 6o ?fB 1 6o ?p `B 2 01 ?p `B 3 01 ?:p :`B 4 01 ?p `B 5 01 ? p  `B 6 01 ?p `B 7 01 ?p `B 8 01 ?p fB 9 6o ?p `B : 01 ?   ; 0&c"  `Pp  Table 1: PCG performance on 25 nodes of a dual Pentium 4 (2.4 GHz). 24 nodes are used for computation. 1 node is used for checkpoint Checkpoint every 100 iterations (diagonal preconditioning)$0c    < <(-c"    J 0c  & =0 # 0e0eA ?5% ?" P}   cp > C HA bcsstk18structure plotp ? C HA bcsstk17structure plotj B B)X?p B  s *޽h ? ̙33___PPT10i. }+D=' s= @B +D  0 CC??2C(  ~  s *c  c > p  # #"&8p  cc  <7c?" p  F>6___PPT9 Recovery Overhead (%)8(" c  c     @`  <b?" p  F>6___PPT9 Ckpoint Ohead (%)8("  c  c  4     @`N  <Rc ?"`p  F>6___PPT9 ~Recovery (sec)((" c     @`d  <Mc ?"` p  F>6___PPT9 FT-MPI w/ recovery (sec)((" c     @`  <X_c ?"`p  f^V___PPT980 &(FT-MPI w/ ckpoint (sec)H)(" c   #c  |  x    |     @`   <_c ?"`:p  f^V___PPT980  FT-MPI (sec)H (" c   c  T  x    |  @`N   <qc ?"`p : F>6___PPT9 ~Mpich1.2.5 (sec)((" c     @`L   <c ?"`p  F>6___PPT9 |Matrix ( Size )& " c     @`B   <ȕc?" F>6___PPT9 r0.37((" c    @`B   <c?" F>6___PPT9 r0.12((" c    @`P  <lc?" F>6___PPT9 3.17((" c    @`P  <c?"  F>6___PPT9 872.((" c    @`P  <Dc?"  F>6___PPT9 859.((" c    @`P  <Hc?" :F>6___PPT9 858.((" c    @`P  <c?" :F>6___PPT9 860.((" c    @`^  <xc?" F>6___PPT9 bcsstk35.rsa (30237)& " c     @`B  <c?" F>6___PPT9 r0.72((" c    @`B  <pc?" F>6___PPT9 r0.23((" c    @`Q  <c?" F>6___PPT9 4.09 ((" c    @`P  <f?"  F>6___PPT9 577.((" c    @`P  <f?"  F>6___PPT9 570.((" c    @`P  <f?" :F>6___PPT9 569.((" c    @`Q  < f?" :F>6___PPT9 577. ((" c    @`m  <f?" F>6___PPT9 nasasrb.rsa (54870)& " c  (      @`A  <$f?"  F>6___PPT9 q9.1((" c    @`A  <=f?"  F>6___PPT9 q1.1((" c    @`P  <#f?"  F>6___PPT9 2.48((" c    @`Q  <-f?"  F>6___PPT9 30.5 ((" c    @`P   <Yf?"   F>6___PPT9 27.5((" c    @`P ! <bf?" : F>6___PPT9 27.2((" c    @`P " <mf?"  :F>6___PPT9 27.5((" c    @`^ # <Kf?"  F>6___PPT9 bcsstk17.rsa (10974)& " c     @`B $ <f?"   F>6___PPT9 r23.7((" c    @`A % <f?"   F>6___PPT9 q2.4((" c    @`P & <6___PPT9 2.31((" c    @`P ' < f?"   F>6___PPT9 12.9((" c    @`P ( <f?"   F>6___PPT9 10.0((" c    @`P ) <xf?" :  F>6___PPT9 9.78((" c    @`P * <f?"  : F>6___PPT9 9.81((" c    @`_ + <@f?"   F>6___PPT9 bcsstk18.rsa (11948) & " c     @`fB , 6o ?p p `B - 01 ?  `B . 01 ?`B / 01 ?fB 0 6o ?fB 1 6o ?p `B 2 01 ?p `B 3 01 ?:p :`B 4 01 ?p `B 5 01 ? p  `B 6 01 ?p `B 7 01 ?p `B 8 01 ?p fB 9 6o ?p `B : 01 ?   ; 0|f"  `Pp  Table 1: PCG performance on 25 nodes of a dual Pentium 4 (2.4 GHz). 24 nodes are used for computation. 1 node is used for checkpoint Checkpoint every 100 iterations (diagonal preconditioning)$0c    < <lf"    J 0c  & =0 # 0e0eA ?5% ?" P}   fp > C HA bcsstk18structure plotp ? C HA bcsstk17structure plotB  s *޽h ? ̙33___PPT10i. }+D=' s= @B +l  0  h(  ~  s *Pf  f   s *+B#style.visibility<*N%(D' =-g6B fade*<3<*ND+' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-g6B fade*<3<*D+' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-g6B fade*<3<*D+' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =-g6B fade*<3<* D+' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<* ,%(D' =-g6B fade*<3<* ,D+' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*,U%(D' =-g6B fade*<3<*,U+  0  <(  ~  s *'h  h ~  s *'h  h H  0޽h ? ___f3f___PPT10i.0DL+D=' s= @B +s'  0 &&+.&(  ~  s *?h  h      - #""k    h  ZH0h1?   l2668.3 f     @`  ZHh1?0   l2665.9 f     @`  ZQh1? 0  l2663.1 f     @`  ZZh1?   l2662.7 f     @`  Zch1?   l2658.0 f     @`   Zmh1?    T_with_recovery f     @`   Zfh1?@   l2574.3 f     @`   Z~h1?0@   l2573.1 f     @`   Z8h1? @ 0  l2573.2 f     @`   Zh1? @  l2571.8 f     @`  Zh1?@   l2570.9 f     @`  Zh1? @   q T_with_ckpt  f     @`  ZPh1? @  l2570.4 f     @`  ZTh1?0 @  l2570.4 f     @`  Zlh1? 0@  l2570.4 f     @`  Zth1?  @  l2570.4 f     @`  Z|h1? @  l2570.4 f     @`  Zh1?  @  vT(54 comp procs) f     @`%  Zh1?   54 comp + 10 ckpt f  (     @`  Zh1?0   54 comp + 8 ckpt f     @`  Zh1? 0  54 comp + 6 ckpt f     @`  Zm1?   54 comp + 4 ckpt f     @`  Z m1?   v54 comp + 2 ckpt f     @`  Zm1?    r Num of Procs  f     @`xB  Ho ?   rB  B1 ?   rB  B1 ? @ @ rB  B1 ?   xB   Ho ?   xB ! Ho ?   rB " B1 ?  rB # B1 ?   rB $ B1 ? rB % B1 ?0 0 rB & B1 ?  xB ' Ho ?    ( TPm1?  [#The test matrix is audikw_1.rsa size is: 943,695. The number of non-zeros is: 39,297,771. The pcg algorithm is from Templates for the Solution of Linear Systems with diagonal as preconditioner. The fault tolerance scheme is based on diskless checkpoint with floating point Reed-Solomon encoding. The parity check matrix used is a pseudo random (uniformly distributed) matrix generated from MT19937. Checkpoint every 100 iterations (about 250 seconds). We run the pcg for 1000 iterations and force some processes to fail at the 500th iteration. $0 0g Eg ,g g g dg o  g Z_  Q    O  )0 <A ? C   m *0 <A ?> `  m . H)X?@G 0 0H  0޽h ? ___f3f___PPT10i.4,d?+D=' s= @B +  0L0  <$(  <r < S mX  m r < S m @ m H < 0޽h ? f3?___PPT10i.`a+D=' s= @B +%  0L0 $ (    S BAnsfNSF Home Page @` G 0p  HA')X?` @~  s *9CX  C   s *x?CP   C $  c XAlacsi_logoLACSI Logotype00Y X 0  s *DWCB[  C $H  0޽h ? lb___PPT10i.b+D=' s= @B + ' 0 |(  ^  S p   Mv  c $؉Mp @  M This is another view of the existing fault tolerant message passing systems. This graph present a classification considering 2 criteria: -The level in the software stack where the fault tolerance is managed AND -The fault tolerant techniques There is also the mention of how many simultaneous faults can be supported by the system. Volatility tolerance in large scale systems implies that: 1) the system survive to an arbitrary number of faults. 2) a fault tolerance system transparent for the user and the programmer (in the other case one should be able to manage any combination of faults 3) The fault tolerance technique should be scalable (not relies on coordinated checkpoint). There is no system providing all these features simultaneously. That s why we have designed MPICH-V which stands at the lowest level of the software stack which is the communication library level. H  0޽h ? ̙3380___PPT10.@cIx]\ݫT)bAQPP*!F KSc+35bYFlQp7{"_?nwvf޼7WpƚmV7Q5DTCb3eB&ѬBVkyؑmC"m.a jl̈26nl1%p`+6v2f́[n p[6pm#p'`6Lgvvv ؃SFO   dž'@ᚂ> ^KHTXvh݋FR*(ŽU\G4-O]㙳W? ~ekHAX~C!zׁQ=xAw;yrC |AbR tC,Jg[ARa)>#> RJ`EJO1*-)N$cJ ΀4NY%L~RV<٣PXZ|Ф!QTuƮ &c$,v~1%JBxzchawyA A,RЃNh hhR,d INQ)cE^U4gg9y"$9þ}B"`)mE7T*^|!C={Ǐ=zt^^W5:qn5.gL~sM(ھ~ޡW<ʞlmi̥ٔ:6n/}uWN5rT)[nK|hxif=2qTo^=; rtf(lcݘw?kgیqJZefžG}au7iZ8i`q >rt๙fWnXIG>+rcgu-^T{s_E ~?=+=7z\W0yOtt ;yTP9GroLOizoO|x ۯ N\Tᜃ۹=3nA- 6(vls܄Cg&Xzj^4Cy2f+cૼg~¥-.] OS2+ݛ:,߱dŝE-IjynI KfѺŗ!>/ϗ(R m(?p։孟6s}C^xgk.CK.p.*]];26vX@*Ygӎyk;jLO6nKrNy $oYO=޸_֔?CbV|h}-ia+l|GO O,6ǝ)&q07l\ިbivǪOuu2\޷gNtmVǾɿbaÒ[߰}_zfTP\zYg?\xP~+DuWw]]P0p=__9 87tӟ~~],(gM({o}]4ޖ9L\Z͟\&1T 2[.>rb=2x5yGǴ OzP_ >#O<ӇL-T1Yd(!'j !JAI(%"fR`/0~ XՇs[GO t (P8xEed )=% !ʚB2=TYFNVO|H]iֆ-ˠ50GJXR,,pKL)bVh0Ms7esicAB9VLW-!B9Pȫ 5dJm LC5W1 A"R+2XCVšB k|, CuT(DQMDFl|bPgh5ڿVT7*TqMT1Fm$}M $5$Q#׊ؕ &#Z!7iwU^р}Y;> idzEVlA➨]BJcѻM[uveнXێ&IЭZdJ$Gc {6^_0P'‰2 2]@9qߊ=-AڒPB$ ;arHHc!\J^-4ǡ!Zw%P$qDS%]%Eؐ&i!Ou XR ݱVjm[\4h&J/N`jX^`aŲ`yUh>+ƉC֣I * 5C@[z>o3o"At;E` '@HkȈ!k{\1@gi)ț%Ӓ)KT d%0M-Ƨʋf4E]n1pÜ!4F#<5g;[>!]T%[R>RHO#W9G[mD6dQ3xVמUL9?e0TG6w߀ȿ`rJ e >=j϶hR%oᖢih{uH)i3 )D I R RALtsz*iap^[YKC!W߇)o8-V|l.<9f@ooK-!j)AekOw̏Fv6z6"#Zӑrjs ق@)l9[B@A!$751'(FpYn#.R1t idp+- YAF-zC IDR:iK=/6AZU2$:7Reo\ÚTHS*8b9r"c/4>Z5ct+]kxgGƥi !Dg:uC` 1 pQ{rD(B }BPpBdTQpgBtBc(>M>M>z#P!o2#WHZO dTPBV|EJ6_L!ĠdcC0/k\8!Je.I-ĺtw]i,Nj=ZeϪM3]~/9ӧsA_QκN7)e3jttK Ѕ9}fO]~;P0Ft>>@嘯1 ]~ n 6iXgmKZ=wyXJät 9Zߺt(A,q\W:%*Ӏ9ɺ⍖2ՌcD e3ߞm' ⋼jl#0#^=AEu*{PI݃VMj˞ 7OLU#=xǬwLbcb.1Aq4([Fjj^@Nw.' h^@7DѝBVCh`F1?TBԄrN@ ]8eP 9TP1:p CN\-բH@:ִou"&.݂UN19*q$kP0P`WW?&f Y5Z,.&?j~У&/Eo\76p˱"<1e5i_z#Ļ#z_>11 azy=Q88gn(=AP$>!ѩq)qJ{Ggg٠TY T[l.QBZ}GR#~X!49)@㑨RR׼S+}PB չvw!ϛ|N#H 43H$hJ"+r3 B rhȥI@,1Lݛ`Eur8O'U|Y͵+>,H6Hm7 L%Dj9a +I~GkG }KW!0EPZ'fTl2T/Z/>$ىv8cnB`m7e.#v^cuGjA$%,Fvky_LQ/I(C}f0W*SbR#B) Dj\j,y(r&+ב>eaoAHN5GW:oڰE?dz04;'փיZ3~]4F~]W[]2ԀWs[6ס ĸJ٨jmF>sgz*ߨ~Q} 72ވJ1zW!ʿv{O<O<Op'^g N ~lقn8;Vy p 7m1q%OmpMF Ƽ-y-Ύ;ɬCZSp(ERlF<]3b(J&q=p #^ZF[eK1CX%u'ze8] Qh<Ӆ: z..=M}τ䤔ypRrkRdjb\A 索pzߜ|,uk_UzYѥp'E[E6.HU.ޫ#dbeTS5K<-*>#wzxڲ!g{uE7G'~`Gn|Pv%ʅuO_+|iwQ_LMwąңBbtnͳ_8'meܵG\eb}|^O6,YQiviէ[;_1p3>6*~iΰ:޾!}k/?-ֹJ'{kY0Z]+̸،妙 Wk[`Q 1֋C߹} 3=쑱P۞/Hv?><V.nYŽ흺{vǞ}sNiҟW´s;UDx8> Q3(yV]t%Ψ3?U=>3GGZSYѕVţ* ݟ>bvay/dy䚆w]k M>r)[ݰCjÞIrH{sFX>::'.}$/MuWLuݧbۢ{aęw- wIbL+l{~x,lUOz&eUEewovGyZ)/.YS:*'˓l =0| _,Qz0mw* >fۓ R6bUR^W/jÉm=6dnBJqyd]Ȟ^;䛬/<옐{m/X~q2I{v"WXX]wm\Q/Lt+]ӽs=H{_XF*Զzzr =a˩]{eUUL:sMŠ]dMag9V~K u:գfYČv-ϭ:zyCA+ ﻌ)}?<#cIYzheBj$iܢ׫wf.5?㵺xH-oiq zt'7[u!t-tGYtתäg~ZCaji#es'NYz"/Tfz¼SI .XST鍚m$V;Ltw׌Y񶁲--2w}іGv*[uw9.q 2ee'>UF9,Pf7kUY<|En#];kD8#}dz:B-^BW$B#QJF(% d^|4 D[D- QGbzhH)rx7'z ZP" JlAdQ"d-t ՉBb4@2ūyqdX҈4\ ɖ)1 khp/%xxJ5e R" l[$L i[u)1dC %Kj UɃ䑪DHHPD6cm)h )G.^A+jn;&4ac4adÀ͟Fhў QQԪoH:$ #0o 00h II 5l${\OG+`j*Z#I(8̀Ć%,R! cO6ԍz c36Ul}ؖl2Op q͡¸`!j})dC9ý𰖓;[Pu($؃`8S=gP$f([pL [ĤQ+omC~Gِh"m&y#DmI<}DE@ŋ9GAנ1öqX"T2f*˽ ,վ41jX87cKdqUC7 L:'D5MSAk,CXK#:Q] TR椭cF; a X`r=\\IRY#(0#!brHI0F 0H2: Q':ӞMNMߙ)aT#:S Rd2&UфG܋3UeieFK%#Ɩa ;pxBn0r;A+JʨZY3uCJk>)hc:o7@dv_L6` QƲ`\?^Wµ3S, 9UnY`FYXiDj'46-%/+T*u" mQqh z^5*n7C0Q{5MHSHm\.kJDLSX]4Uj1>ʺ )lλNMk{M ( Bk)VEе66BS 4ǮvQCFk [ƿl۪>?WM}Vưa i woj lMa He3ISy-)]\?ίqMq'k%tMu2LMa^{P$kUYzGLCroD6-ȠY慣d$S6;~3}Q>5_kkkn8GQNlg~ׇv)wm:vqG.*Ak7>O}X# Í3qRD@6s,8N "?",y|,6= x|*~9 TrOoP=(D )yk<(Z9G͏a!8ϑIɉ Ҩ$ ufd3{YR?}by3\߱׊'( _fC&ݪCnkA$ꉇu%rBH< D#[d?'d wN\Qs8I@rRs!1)Zq] ΰ#ט׎#8#8#8∣ ϼx= tTE^w'tt"&!5& $gGE|$;UdYq߈sq'{a2*z\Wwqa콷{u't^ߪuV[n-sѱ.8R-xlOp?BlOO<=tQЊ<؊6 IS 10/gH̞o/[ v}Uɂ:l 6:cSJmS*Cls/uTv07tڏ}ע>X۰-_2!LkEL4OBpl3gP5!0!PeF BzᬺF? R7/ٔt>c]?1uz It X2J&"LB0a*5a:•3@:D0a\y 'U [yg)Gh__6}g}+4j 5}TJ{zw3nGG;OM4y/6A;*+}MH/)Iɗ4k7mZZ[;K[76mABض:LkUsb gc#!o+O8LSKAڡ+AڛAک7MK;Aڤw_i˾ ZHEuBHE:<$CkꊍMMDv߲&A@\ڶJse֐h#]-d;vC}jГF?;߳0TioW[A%"ZekK{G[CGkX7En`['V>_/~ȿ"y=ϞBT͹[kxK+Yb5ɴfs"Syy}=htǂ'yx߀0 I6ǫ)P3f3׫r}*+zC`q;1e>1/\gz=~҅ՕU4 DW.jjyc fh eRj0 k?.[V?WQ kDee;s VX3^/FL͇1[l{̚ɺ:TܭV* Gޘգ,{!o\%.[(<C"ZO*S?[&*5MMe2b YV߶ q2as{'h/[7“([ FSpDoD-rD MU<4z.3zSl@WB?H_Bx9pss&OH犗5ee~_^uzzZԙN/_Ý|E;}=kym Wd&9$$̝dzNV$a0 eL6?ϰ ȝ\0zs/s/< UGZ1 M.3a4Jh :nFeAz~H"cWh>nV{%ςӱ:}#W _-)dͦ0s~5>C~9Lzb'PG -qqy[/]45B$|w( a״nOD I)?(U7Tuכ:jf wgPjVuxuaza6;4C6v(aZhϐ…5?Y3xZ1-gZCą-$gÜ8oB~2a(R{Ͷ?DlKJ~L 8Cd7 `J̫@%ИKטa-nzg5jDC~Stۥµ8i맟|!yIkn"/]{n) /!҂~ ז\d(UlEw" .B{ jv͗KU+2w QՋ nmo81LN H1udggjudWW9B% D4JC 9:5$!GfO}oS^gzс*yhUpA.5=pӁjTHi$$m^2]ԙmL6)T;V mNeYF,{䁈Ilz1R Ct^7־GaԳmCtлlWo Ctqⶲ4|OzGcQMxmYb(^{=j/VB87-[q{iJ+ abYCZ{5܌ӈƘ%J֓JmX~1 L6th(_BXi9f)3my]Z&cECx)Bϛ$Q '4.n$NFn$NFn$NFn$NFn$NFn$NFnI-Ӻ%qZԺAYx-'og LڵE`͎ y1,׼nF'qp=j̧ӻ4OHn+n >8YE _=r M[0 SDwP(<%o͗WSF.7"/7x2xO鍠Vw7؝YoDFE8GoD:z#R@f1ȷ.GW.:oCf\?w*wk啺7ީ@?⍠6'hF,1,7ba:6{F8r֧)ؓSq,B,IGщO!cѱ'OOL=Sg2ր>IPkP0mk7= 9?4D e?|m6z.< )L ߫J^K/^]V)K޾QoJ.<~W'=[vw\XmZ|w.Jľ;,/KuJu>]hC #}Mz_~oGz:? eܨPʞ_ h4~c(XYrQ~ɺO3g*([L|<-Aw=9woRl ŖW;HxP$tgAX|3o3N;LlaqJZiOO3l|Oy]p!,3e$F3EaMI(?4W6 amNb w4Z`uĦftz9Dv;jג~axFÎ~n[]2>f'XHy͂oz`.YtՕ+$]}BS߿^o[xq_\?$Tؚnx p$_D?*B(cq%U9Ը֖3H~_u}?)Gj?O2'i!|[v|Q4̹Xcg\sdwO<nitLJ:JE~K~ˢV/=_Ϟ=%{K""/_/5 W"{K6Br?xOzQQ}9%]`^*b| m(:]r8Su]0o[=%델|4<}9%]Y¼XA7b 2G|E獸uZ8|oiWygY^ ڽ8TA5 k_tN/YB/:$!z_..JCG  5GG%=a4fɹ  ws3CmPAPAEfc$;}H5q{M\7q&";!8rq֝[Jc,zgopwPlhbQ;{ A  A\wf7p!(`  ӂ`^! /⩒!ȼ: ']ḋ1 AQ0?o A퐍/i.CyE<f',Z`_Bx!ȼo7WU A~8ne 9p CP2IK׺Ц$3Wf⿃bIsUD;d&n7q&U8KUw;iNB6 }hⴶM#GOw֊Lҏ{p@ w%2n(0CG~߮Sy _cew-[Ϭ)ewQ%Y#RŪm1ߔSU#;ΏdsX f%^BkX(H )-We?DY6iFwG\?Fܘ2?s=R^u]:]>ՙp hƏ< ⬣x6樕p.$n%sc|g:ݥos'߉2ߒDMJf<15{;̫ӔY<x (g('\e.AI-y0766ڗ$:!# s/:'q|'8$@Na=дh=L-B8Xw/#ko/kQx= tTE^w'tt"&!5&IWpT!'N8VuFgtt#:3;wzxsi.-.{O{Eɂl6zcsJmS*Cls?uTv0 7Rtڏת>X ۱Ȳ_2!L'kCL4OBpl3gP5!0!PeF! AzጺF? b7/ٔt..Mp9>!Ua2^Lyu/AD a2B .C0f"\0 .k=l9s!9i@Xغ@ϣ=K9 Gz鋕|8۠uP3i?Z!w`|.o`2a3tNbtQ`i Rmߞ>ٞ|Iùvݶ39:GSM흤(mKK\;'0z98r|rXa⤓T<  z#HtH Mz'Hn+ u]t{'!?0=Ptݮ#C?YmNnkVUgsM[*zTYCEtTmɥBOރH~*”_-T}_Җߡs׃J;E2ak֎ζvW66mk۶цO$|__t7{Y({n=c\Fs 洶L- dUNOf<5@j0A<<ɳ<_YI>^=HJkZ\)GWG 0װZgpAUWVUVv~'0Ϗ_[8zXA!p<4FQ~5XGm=c}!k1\= s덞 VpXesow[?pgL5=x}7W⛫W.=+\](pMkWx]{F\|B" Gz\F\6|Ryy3׌?֌9<& *i?*TYKS8ʜT`~BT~ֈK8~-VX;^/FL͇1[l{̚ɺ:4ܭV* Oޘ5c,{(!o\%.[(<"ZO*S?[&*5Mٵe32b Yоq겠qKG3'h/[ Ó([SKpDG-rD ̈́<4.3UzCu;Jxo/!^@}89'%OHsKWee~_^uyzZԕ./_]|E󓯃|xm WUd&9$$̝dzNV$a0 c| og~RN. zy4|[Gp=D=+9=l#-(!F~GFӰ,3=F -?Z~OѨ;ͶLHiWDc ǭ?`Ypt:Z~u|a0KE#~>e5zWs!]#d'~ y4RwK7yRHS3?(Dq}MdX. \/`RuCU{{fr]Y YfUWWvf3C8dc'2ڄ 6ن !\X35AE; f n+9D\آOr<<ؚ̉s:&DW "NWmC8Iiih0ot ڞ. DvVļ TM~[ᦷLT#+ `*.G&PvOh_? SO]^px~ ތZZ"-GmiEPRv[t'~"Ǡvsm|1AW"sU^(nd*ԑSGvuuJYGvww#TK`pKD4DPS8_CBrxaԇ-PV!}=?sF?<nV'2^󻙟o1D9?a2dę½Tk:ӵM&e*y؆ӽ֫,8Hq<QRɳٞDͬ=qq!u#qZ7u#qZ7u#qZ7u#qZ7u#qZ7u#qZ7uKnI-Ӻ%' o!>A;[>%Ү=/kvL|Tc=5:ᎃQc>UޥxEj~_vWx1,ɲ-bRn[gHnB=zp0 W0~"r@1yha~a7F/tFcy z+LoBIz#Ȱ7,2wođ4<~z#ҡA*0o4ވAw)ry#B5]oWA[/ԽN]'9^oy8A7bU()dlשݗ79>O,B,ƈxXdb1N:"N융| '#8xxbI=)MlNZ=}'Fm+_^ 8;$!:B(Cy3o3D;^Vדt9 ȾN^Q]l}gHY mzW=Q䡷u۾:鹭,jC[uQT'axXk#4Uk|{6r`s7}mrp~]){~q0.2GscqgkcG&K>1><{ݞo316aD@Hb޽1N\HKE1[_\ ;xD!> 4XE~N1q{LrEM>Y}\5y$_8I{U\q;m)g^Z3E/,6fau^)}zzy?^l7b7CyA@ a̼]0is dIA0kA<=fE () /x4aټt< >7CӵyNKd? \םsmne~gK/Vޮw)59JٷP8;~P᧛A/j桺*ނ΄)ewvنqNӝ]^2gbUj65v4vw24QIfjҽ@J:A;oybp;[;ܥ2\~R:0C.%k5sG&&) V [-mѕm[wms#mFsGmiyv-Zq]/g,p6e%sm6}blQs)ge.\95l r݂2nK"JrS.ckκ52~e YƏ}ZMTV#0wSsZufj|G )SII#p,`+njnE0gcB_}ds͑c>PK%бs`3)YTZS+//\]th">{K/Fxd_~/nF\E/و-cEEti'?e,VZy~Ku̧sE\A!׏}D\yJy&$x}!'yLv/+:ߥU_滜rw;mFgje9!{ܼ{~mȞMO:e1 e//a %*>1/w9e~ _ވ~ˇ8LcП_ҥ%X ۍEtx#"j,=_pވQCF&*Խ=K:և7|-A7*FA||ש=%SȞ=O4D~yeOrlG 㶎/K+{X( %ëKEqNwe(* v bbƖA|c1caӸ&nk0q &Ud0{YG=0㿃ºoOilCpMoPl2ʑ@x!(1X !̻E+nEAPS&1l|O Aq<"cc")Ob2ol|O[/0CP<`E<28 A~y"Wf2o[q-CPfυanZ-6%])'h2M;A"h!w5q{M\k0q&Y7hGL\# wmEh܇&C}nߧ?~xj&NVd~݋{D8 ?́M.v N?>\PD9#0Ky=YX-&r r;ʜr瀓ڹl Ki+% $extʢ|(KAئ9\ra|yyzCh?^ӡ6~۞ CʫcTCKԧ:qAuÒdn LxvP[ȼY܌'7ryyu2=B?y|u!ŗeet#(Iy%o_"ƗB@RҘdB'dzR6Z$/G$#vI̵ǗŗO' ;n~sd^XR:x= tTE^w'tDMBkL ,,(8BO$8蒀ߝ*8oDgfLP9:3q]\CqDžAުzuNwAЮ{}֭[nݺyx~аw!*Ձ A ' #0LʅПMTZ 0,x]S!a*94x e_uWEɂlcKJmS*Cxls/:^*;V napC:Gd뵩Vl4(LӅ?<ݐ|s|f*C<#   U %!9PpPΨkc*hH*.F}0QMO|zGЏ|H=(f:d{ B¥5Sj"LCp 0 r uI=^ E0aI{"=.5YQ8Z'M_YͬZxHMHC Q-@[N7vfS%&/DRz%tQ`Y Rmߞ>ٮ|I#z&mI[sG{g{kWxYkk[sKx断y:HQۖP'#ywNa r1$^_`¤'Vy*9H;t5H{s3H;FNvi7HN mW@2>2B.6BH~*`z:]GdhM]ƺb-K|(E-Tu,Dj&67ߒU)AQ[-Sn%xmm::;_Լ%<}&ޚO<x}Y}?GeC}re%:$L%V5>IWv<=7 X$Rs}f$Sx!*}m5s*ףRab_ a7}V-ˌ:G}:&O)K+g|. q'9urv{ 7]t-kq\גnOz^[nÕf5 F2 s'^I60[ ˂ø^\GQJeNe1gHK _ -/9hemQ(%EЋ)uvy_ p][{< NGՋ\Ѻ>wZmZ4rSMYn@PQ~ >^=RzJ'܀G K -qqS ˹[/]45C$|w(a״nOA I)?(U7Tuwכ:jfwX`%BhR *:C=M̎0I;afͰ-vgĬ< g-V2cp^!}a|Աb0pj"KJ%`nb-jh2B s7|X *Q 4GR5oEXT##FtWiT)(vp?:0сs-0'_Hz򚍛ƃKf,ۋZՊאiA/&kKN.r*nEw" .B={cqڥa^ӷG&'t:[W:RXJ%FY|3BXoq^5q [mBz~0~x33V=/ ˸~PENt꫁*S$4eg 6/SmL6ucY b;NNؠD,#~9kzz@J-.2[$6gepF+3>)}AbQ]xvVy * P\~ #qS0vs!:E~_c~w<:`WzJ=۱?1DK;'k)FaΓVO_h 3 }Oe/"!̯7v"n%eɆ?{/cmVi%Y0R`a]ע^ύm?ͨiXQb=܁嗲0nHTc^F쁂ލx-Ն`m2SIخږw;Ka*Z2SWiE{2k6]Xf6*;Z-LUӫ-yRNRQ&p8}0YZbn(Fbn(Fbn(Fbn(Fbn(Fbn(Fh[uKMs o!>A;[>%Ү}/k>vL|Twg=5:ᎃQcUޥxEj~_[1,ɲ-bB^[oHn}zp0W0~"r A1湠h=a~i7F_Fx#z#կ0WjzwݙFdaoYdވ#ix Iz#ҡA*1o44| RF{| #Dj&˧#bDY˧cб֘h::zҧ@d}JS!(fO|Idnh}rC/ in Q[/ Ydr:({.ydxɳwYyT,z_+n(rۺm_oasai!-(nhrPH,յ*յt ?1ߤvc+^uexf_.e Y3v2ŝ%X9/'Y\"q~&L|KiE~ n 6GwB^&Z2 b#Rbx3D bVU9U:wczL ąM>Y}\5y$O8I{V\q;)' 3EC2ߠlBz:ZKGo=zZGs} AH'JAP|>3o3n;L'\AqRMz-4}6I A~.82iO"0צĕi+ Ai_\ 6Aq'2A;MSCPc:beVZy~Iu̧ЦsE\A!׏D\yJy&{$x}!'qLv/+:ߥM_8rw:iFgje9!{ܼ{~mȞMɧLYN҈_"qsG밅R\ja(;Luޜgz/Yoyp>C~o1Hti'>e)V`5./8o#{x#HpW֞%?_Am OԠ M=E4ЌΞ)dɞ2CB׊A?l{;E 'xRXc8Waϋ݃PwTBA@P9Ţ-;x3DcpRxq{M^hM\`&{\iugߑ$ޝ22_lT >_cbAxEw0- V) 8%M<b3o"[.x/0XEBE S&~g"3*_axxc _ ~~"Wa3o[q _fσa^Z)6%)h2[L@"h!w5q{M\k4q&YoL\# wmUh܇&C}nߧ?~xZ&NVd~ݏ{<§_fO}Ow*(aew-[Ϭ)egQo%yY%ѥUߜS!UTd΍}dsX$ĉ^FkX(H )s--Te?DY:6iF⷟sG\7F܈2?=R^m>ՙp hƏ8r>9j%%i"5-}=ӡ,}k>],Yzm@6-6KPc{lYZŊe$3 !tS01JLp%&CI-`!hid`JmdJJIvWH!{5{{}蕗'xɩo'-' Q &B4ՄbyΩCQZI8'WM(`9̠]]#u{ncoA}s$C\O SwB@×Fny&EYx&_)@WCôP>Z2;D z=4Mq?w]eӢ_Ʃ:NJi2Q]6NrBw'j|aûw%]y[K#bOsG4ږ0/O4|K|Hi2Äy((I|׎Ȃ"<}: d'mHCNmziMzi~Ҷe񰏩Ӻ/#d)|dt=uӞxgsȹKaB*70Е͵ŌEv fGkC^v?dݞ.zM_D卤鸖O-ɟM~=b_4klI4t%r88ωGnyyk<9ܗ`Z Z>Zvsbx~8S(Y) ЪK6f9?&ssXQ)q,=V_Uh`ަ}r(?*R-<9nTэFԻO19Q? d!An_n0n۴n3%~A[ڊ=)Ay;Y0@V /#3Ӡcc͚UsΕksfgb%OK)߶1޺#R +wSiA]*scZlfi.;>7jln5;1)m܉ h.Ecݙ-?!eC2x ]Z WCvo^3·3]jU%ez]bsu.N*&b5v/hMؕqmW|ɌmN3O;([ >o6G1;D!ς@l+imZl:v9aژ@ʂ(NpE|@xsee=bS+V7f6f~"}!>O+se_J SXU}]};;l%yʐ' D/ڢe !\cw Ok@*} 7S>̋qpP]2E "6l 9 \AC5L`+1H3Nl!AXAa`~J/2|Ayvmhc=SzKʓ(MJ'sbdW$LP)pƺx[^QođWS}:'HȢ_8契rkC!ZCa\?|-`Qχz|ciVDwRS< u'v-$0L|3Kpm9N$ҾM;j!(iew22bpZ[.;%ʐE1׻ %Dg\.C!i]=5],Aq7*ǧ^a) GhJ{FkQ=7M-$6kYj/q;cIw{jСiJc)c.7ͻ2T@W/IƟ*lˤmXֆ*ԁ*JQ!u&EJTc5ya0}7gi[>6~TXKЉ޻2MZilgS#Jk``INUE(Sb5]4W/d#m_C_[Ӥ$jڝTՠwq̑WR.G:rUᙷqXD! +>8v;1qNZr-R,?nq9W91Nrd&p;5jJ{=GLJ{&1<UԄ4ၸM&DA $.]<Hu'xnyCH5.q:≻ԙI=]';zL_:i)M|<24_y2SF>VBqA{ws~{}lVXhW5kgH4Lo;B_Pt?HAai75\huf t;_YZL vg𨊀R\`hj"fOd`862}gt5&bOW7&{%v|'?Rp_v޲|5(z|:<.ɏ@գspSS]6E]8 N>Wm.tmg>]gvfv kY[.C||V{9;Sg0U9VJ < V*HkeN>8V6"9/7*/j;EB  oT^=Oe9]yfsDzLx|!g 9ov*Y-|l|XS@'9R{Zkz0hD/AI'k%e_+bgQ&M8IENȆ) ~U!gCsuiN.0MY+Y sO 2m5 U& {t-@2l>:RGca6nR&-k^S* +u4[KpkUzϿl_~rZ8'qlF:YT=ޮ@O|WoRK`r*!i=[Qgҵ'ʂuذņmam~$cs{:cs'CX)<&ʡEAsȃ5G _S9$]{2? :|!gu[7rYuv=l$GɽvWrIʞ$ro$'q{l9Nʽ=6ꒀ5Y8ݒB .LB2I{U?r1%'9.^w.pE)9)tU XrR~U__prIﭲŸn> MMᲞ-$Krk#Sun@A3º:kvtɗ͒Ei%fI}ZdqZefɥ'Nj0B {Y<'\ #FºǫӥA?Wx)!¯QOk{톊jjnMĻ:x+k)O`c>ۚľtk?i9^7}.]>sߏaG 7ntuvA$Yj|TkB&߾Ԥ&`!H-˽x7sgXFtN5ʊ_(=/qj~]s]_lN$]_]$1wbɊAce2g> (rǂylhͩ?yrq,Y": fkX0[^ٚ%LĂ cX0Ƃܱ`#w)_,b<>l,eD1^3X0i`~ ͘ "`^Lͱ`N>`ky)8F`uAg?`>99uOe}Ă)cF`qinloe (V~\ أ_>`m>/@-&ƴݐ3? l/ĸ|/s,LhL aGn9 7 L &{,DgOn3nt `)4Z`h!M 32|0W,,++Ƃ9cJ¨ k)wǂJXłꕆ*Ƃ?98Ă)cB u?2Qϩ+'כE/tXzVNǶʦ0舆L̦8C\3XnioL˳@x/^hmBB{B/xX^0~?Nt!{⟈qɼnS0N8 tm/!wf8Ѕ_U{?LA@>_ bbiHlR/9V4 Bx/>sQm#HHNq4_iDb~o6<$]mݔ1H!bxYlKӛ|E`M>+j1=Aԇ[@7Su-;ۻcѦXWsSWr ߿&3X!r331U󦪞'.ɵHͿkL6{7(~|:NBSsObA~#q~G(k*\8j>~wR_OwϾ4.E!iBjc_[fEP\ze1I)Hg"sȐVyi9I)fZ)x}u(BNeɥ3~qv`:MFhXt^}N~3 +׉f ,8(ޭf@{ݼu#*DݎciWbItW+Ws*W^D*4d2u^i:lۮöFO .4f7n湽WYIP\Iurteп Q++A %.ʴރ\Nqj6.pLe\0 q?7rf|pZc?|/'%§>\|)O`RΏ8 5y"N;y?~{a5kV>^8I)dp~B )?`3Ky~ 7\\ \nf|eǏ8e*fӔqQ_cy~HfkJcD3xRMFaI/SZvS,XTΨOk1k5L*U|L50^ Y㤙1P̃iȳFZI9GcW`4v85槲LI(ՓhMoR$lKc$VHwyl$2$2+F{">-RENCk+7l[v L3G7 xLh#vV hi ]Ms?M`0?\_C8v!S\]S]GxuG'W+Ww`{דsio?sYo!?C/sy/ϵDFZRĪAN3AxM9:imw$R8 po8l_ͩ..)eDF9!!.?buhRJ}L /ˆsOI0C=g-zf^- Mq25q܊TE žO☲tGݽ=JsZcxǰD'1jp[5 hhQW>_VʟEZXAģDyb:{ހ]E8_2P565DҼk= %*LZ!z/TX/GHtxTp#2XJO }PVs$A;8D"lqz{:! LTàHTacd?' 0PI*' OB,-2g@p&WISiFz^qm }ĕ!fU0g5*]KP$Gd0K!ЏErp c!jP@cŷ`q?դ5W`i"=ח%q}9z }!^f*wSmZHNAΉx]A/U 0b"N|=v0~/V#\y$\lU% ~%!҄% v0$%A_[w!dSxƠ((CV=ScPnNIJ#(Mҟ1(oa+Ahpm7բsZ؂K:ѫFsяk֕5>ç9פM$.|r,crڐb\yk\-fjj\`ep1j>o`0룖74߂ؠ0CVǿLgt{Ebc^{6΀< 7``"uwt%*nahRV|OL] [9]a8z;ǖl=ī;zhd+7j+Q@ XlWz[ĮG}F[dņ aHq'ȑOa-*Rksظ!6G/}GƤ5i^m. 6$$l&7L>o ?KUp >rIհK $/AyegeUeCӘ wbk2|CKA˕P/՚żL+Tx@!30oP4I!yR*JSضVlT]2$Wٚ VYt>` _O .1bNES>mĿ.]ԤP:^qBY. ۫:lۮö֠Ì{na7u؛:l`t|1atXѦ*-gx1E\;px|ۛ/Ի S:Veanl~ξsC_ѧ0vmu/f_(_^~iWYv$ SQ J8%TƇVOv Q֞uôއ@)~ ODHQRpU˙U{Qcp%?URuRy:`/43u#U>lNGKcޤp~q"8c nq18ts 'q&eu fwDs{H3II')}[0d^I㒀%p u \YR$Ep+YX?ŇKF?!^V?ʦmE]lFL?όxOG/K/Kϊ2ԯGl(=M_\] 8k]Z_\sse_w Joe w+7xQJ_Cz™zף)uXW5c3Yr/g3گPBYufnyۇ+Wqu g5xnNa-(B>Fp8Bչwf#xW[_>緺r=S׿cos}f⧼/+$fd`r\g>|8@jLje)0fu32`y_gW4lW~;`$ y_y_ky?Lwj_qG0ϳBs;82+qjdžVU=(i\|Mf-B{H=܅ql:(?9^#a05(>r25_u4Lz)0JK"νc5?@%r{Yml7qeSZfa# Y_8r.dn;kr< y_y_CkhޠuFTD ,sOpԘy}S!epx= tTE^w'tt"&!5& $gGE|$;UdYq߈sq'{a2*z\Wwqa콷{u't^ߪuV[n-sѱ.8R-xlOp?BlOO<=tQЊ<؊6 IS 10/gH̞o/[ v}Uɂ:l 6:cSJmS*Cls/uTv07tڏ}ע>X۰-_2!LkEL4OBpl3gP5!0!PeF BzᬺF? R7/ٔt>c]?1uz It X2J&"LB0a*5a:•3@:D0a\y 'U [yg)Gh__6}g}+4j 5}TJ{zw3nGG;OM4y/6A;*+}MH/)Iɗ4k7mZZ[;K[76mABض:LkUsb gc#!o+O8LSKAڡ+AڛAک7MK;Aڤw_i˾ ZHEuBHE:<$CkꊍMMDv߲&A@\ڶJse֐h#]-d;vC}jГF?;߳0TioW[A%"ZekK{G[CGkX7En`['V>_/~ȿ"y=ϞBT͹[kxK+Yb5ɴfs"Syy}=htǂ'yx߀0 I6ǫ)P3f3׫r}*+zC`q;1e>1/\gz=~҅ՕU4 DW.jjyc fh eRj0 k?.[V?WQ kDee;s VX3^/FL͇1[l{̚ɺ:TܭV* Gޘգ,{!o\%.[(<C"ZO*S?[&*5MMe2b YV߶ q2as{'h/[7“([ FSpDoD-rD MU<4z.3zSl@WB?H_Bx9pss&OH犗5ee~_^uzzZԙN/_Ý|E;}=kym Wd&9$$̝dzNV$a0 eL6?ϰ ȝ\0zs/s/< UGZ1 M.3a4Jh :nFeAz~H"cWh>nV{%ςӱ:}#W _-)dͦ0s~5>C~9Lzb'PG -qqy[/]45B$|w( a״nOD I)?(U7Tuכ:jf wgPjVuxuaza6;4C6v(aZhϐ…5?Y3xZ1-gZCą-$gÜ8oB~2a(R{Ͷ?DlKJ~L 8Cd7 `J̫@%ИKטa-nzg5jDC~Stۥµ8i맟|!yIkn"/]{n) /!҂~ ז\d(UlEw" .B{ jv͗KU+2w QՋ nmo81LN H1udggjudWW9B% D4JC 9:5$!GfO}oS^gzс*yhUpA.5=pӁjTHi$$m^2]ԙmL6)T;V mNeYF,{䁈Ilz1R Ct^7־GaԳmCtлlWo Ctqⶲ4|OzGcQMxmYb(^{=j/VB87-[q{iJ+ abYCZ{5܌ӈƘ%J֓JmX~1 L6th(_BXi9f)3my]Z&cECx)Bϛ$Q '4.n$NFn$NFn$NFn$NFn$NFn$NFnI-Ӻ%qZԺAYx-'og LڵE`͎ y1,׼nF'qp=j̧ӻ4OHn+n >8YE _=r M[0 SDwP(<%o͗WSF.7"/7x2xO鍠Vw7؝YoDFE8GoD:z#R@f1ȷ.GW.:oCf\?w*wk啺7ީ@?⍠6'hF,1,7ba:6{F8r֧)ؓSq,B,IGщO!cѱ'OOL=Sg2ր>IPkP0mk7= 9?4D e?|m6z.< )L ߫J^K/^]V)K޾QoJ.<~W'=[vw\XmZ|w.Jľ;,/KuJu>]hC #}Mz_~oGz:? eܨPʞ_ h4~c(XYrQ~ɺO3g*([L|<-Aw=9woRl ŖW;HxP$tgAX|3o3N;LlaqJZiOO3l|Oy]p!,3e$F3EaMI(?4W6 amNb w4Z`uĦftz9Dv;jג~axFÎ~n[]2>f'XHy͂oz`.YtՕ+$]}BS߿^o[xq_\?$Tؚnx p$_D?*B(cq%U9Ը֖3H~_u}?)Gj?O2'i!|[v|Q4̹Xcg\sdwO<nitLJ:JE~K~ˢV/=_Ϟ=%{K""/_/5 W"{K6Br?xOzQQ}9%]`^*b| m(:]r8Su]0o[=%델|4<}9%]Y¼XA7b 2G|E獸uZ8|oiWygY^ ڽ8TA5 k_tN/YB/:$!z_..JCG  5GG%=a4fɹ  ws3CmPAPAEfc$;}H5q{M\7q&";!8rq֝[Jc,zgopwPlhbQ;{ A  A\wf7p!(`  ӂ`^! /⩒!ȼ: ']ḋ1 AQ0?o A퐍/i.CyE<f',Z`_Bx!ȼo7WU A~8ne 9p CP2IK׺Ц$3Wf⿃bIsUD;d&n7q&U8KUw;iNB6 }hⴶM#GOw֊Lҏ{p@ w%2n(0CG~߮Sy _cew-[Ϭ)ewQ%Y#RŪm1ߔSU#;ΏdsX f%^BkX(H )-We?DY6iFwG\?Fܘ2?s=R^u]:]>ՙp hƏ< ⬣x6樕p.$n%sc|g:ݥos'߉2ߒDMJf<15{;̫ӔY<x (g('\e.AI-y0766ڗ$:!# s/:'q|'8$@Na=дh=L-B8Xw/#ko/kQr@XNcKp0Ij cuվ "$@RaUu`ex038p(?W!fw@B0Bn}r 0^1Oh+'0t hp    (0 Survey of Computer ArchitectureJack DongarraiclJack Dongarra83Microsoft Office PowerPoint@p5(@n#@0G< g  E  y--$xx--'--%<<--'@"Tech-. 2 r10:26o."System-@"Tech-.  2 r1t.-@Times New Roman-. *2 &Fault Tolerance with FT .. *2 %Fault Tolerance with FT .-@Times New Roman-.  2 &e-t..  2 %d-t.-@Times New Roman-. 2 &hMPI for .. 2 %gMPI for .-@Times New Roman-. -2 0Linear Algebra Algorithmst.. -2 /Linear Algebra Algorithmst.-@BComic Sans MS-. 2 D@Jack Dongarra, .-@BComic Sans MS-. 62 H3Innovative Computing Laboratory.-@BComic Sans MS-. +2 M;University of Tennessee .-@BComic Sans MS-.  2 QMand .-@BComic Sans MS-. E2 U*)Computer Science and Mathematics Division.-@BComic Sans MS-. 32 Y5Oak Ridge National Laboratoryr.-Root EntrydO)lPicturesf Current UserkSummaryInformation(`      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_abcdefg1_〲HiPersoft Rice UniversityHiPersoft Rice University%_〲 Jack DongarraJack Dongarra  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_abcdefgijklmnoqrstuvw~Root EntrydO)Picturesf Current UserpSummaryInformation(`PowerPoint Document(DocumentSummaryInformation8hRoot EntrydO)P0Picturesf Current UserpSummaryInformation(`      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_abcdefgqrstuvw՜.+,D՜.+,    On-screen ShowUniversity of Tennessee  *ArialTimes New RomanComic Sans MSSymbol WingdingsTechVerdanaOsakaArial Unicode MSTahoma宋体TimesEurostar Black Extended MT SymbolFalstaff Festival MTtechMicrosoft Word DocumentMicrosoft Office Excel Chart;Fault Tolerance with FT-MPI for Linear Algebra Algorithms Fault Tolerance: Motivation&FT-MPI http://icl.cs.utk.edu/ft-mpi/Slide 4FT-MPI Failure Recovery ModesApplication scenarioApplication scenarioHFault Tolerance - Diskless Checkpointing - Built into Software!How Diskless Checkpointing WorksDiskless CheckpointingDiskless Checkpointing$A Fault-Tolerant Parallel CG SolverCG Data StorageParallel versionDiskless version+Preconditioned Conjugate Grad Performance +Preconditioned Conjugate Grad Performance +Preconditioned Conjugate Grad Performance +Preconditioned Conjugate Grad Performance XProtecting for More Than One Failure: Reed-Solomon (Checkpoint Encoding Matrices) XProtecting for More Than One Failure: Reed-Solomon (Checkpoint Encoding Matrices) 4FT PCG Performance on AMD Opteron Cluster w/MyrinetFuturesCollaborators / Support  Fonts UsedDesign TemplateEmbedded OLE Servers Slide Titles 8@ _PID_HLINKSA@"http://lacsi.lanl.gov/index.shtml278,43,Futureshttp://www.nsf.gov/start.htmPowerPoint Document(DocumentSummaryInformation8