From 275eb862f009b733208c7139ae43f5e77c74e5e2 Mon Sep 17 00:00:00 2001 From: Quickinline Date: Wed, 19 Jan 2022 03:33:09 +0100 Subject: [PATCH] added td2 and td4 (not done) and finishing docs --- a.out | Bin 16312 -> 16496 bytes execMPI | Bin 0 -> 16344 bytes mpi_cae.sh | 4 ++ readme.md | 21 ++++++ scripts/td2/exo3/prod_mat_par_dynamic.png | Bin 0 -> 52404 bytes scripts/td2/exo3/prod_mat_par_static.png | Bin 0 -> 52381 bytes scripts/td2/exo3/produit_matrice_2d.c | 2 +- scripts/td2/exo3/produit_matrice_2d_par.c | 26 ++++---- scripts/td2/exo4/pi_for.c | 43 ++++++++++++ scripts/td2/exo4/pi_for_critical.c | 31 +++++++++ scripts/td2/exo4/pi_for_iterations.c | 42 ++++++++++++ scripts/td2/exo4/pi_for_reduction.c | 28 ++++++++ scripts/td2/exo4/pi_out.c | 35 ++++++++++ scripts/td4/deadlock_1.c | 10 +++ scripts/td4/deadlock_2.c | 10 +++ scripts/td4/exo2.c | 36 ++++++++++ scripts/td4/exo3.c | 59 ++++++++++++++++ scripts/td4/exo4/async.c | 78 ++++++++++++++++++++++ scripts/td4/exo4/bcast.c | 60 +++++++++++++++++ scripts/td4/exo4/bcast_time.png | Bin 0 -> 32852 bytes scripts/td4/exo4/naif.c | 66 ++++++++++++++++++ scripts/td4/exo4/time_async.png | Bin 0 -> 40067 bytes scripts/td4/exo4/time_naif.png | Bin 0 -> 39401 bytes scripts/td4/exo5.c | 51 ++++++++++++++ scripts/td4/exo6.c | 57 ++++++++++++++++ 25 files changed, 645 insertions(+), 14 deletions(-) create mode 100755 execMPI create mode 100755 mpi_cae.sh create mode 100644 scripts/td2/exo3/prod_mat_par_dynamic.png create mode 100644 scripts/td2/exo3/prod_mat_par_static.png create mode 100644 scripts/td2/exo4/pi_for.c create mode 100644 scripts/td2/exo4/pi_for_critical.c create mode 100644 scripts/td2/exo4/pi_for_iterations.c create mode 100644 scripts/td2/exo4/pi_for_reduction.c create mode 100644 scripts/td2/exo4/pi_out.c create mode 100644 scripts/td4/deadlock_1.c create mode 100644 scripts/td4/deadlock_2.c create mode 100644 scripts/td4/exo2.c create mode 100644 scripts/td4/exo3.c create mode 100644 scripts/td4/exo4/async.c create mode 100644 scripts/td4/exo4/bcast.c create mode 100644 scripts/td4/exo4/bcast_time.png create mode 100644 scripts/td4/exo4/naif.c create mode 100644 scripts/td4/exo4/time_async.png create mode 100644 scripts/td4/exo4/time_naif.png create mode 100644 scripts/td4/exo5.c create mode 100644 scripts/td4/exo6.c diff --git a/a.out b/a.out index 0098ea036a597fe2ded39d8df359adb943272a7d..151c5caff6bf206c6953ba10a08cdce0a1ccc435 100755 GIT binary patch delta 3415 zcmb7HdrVu`89&$9fE_5lPKYrJaKl0uh_C~Bn3n@yvc_aY0TR}w>I4+b?1hH|cA9qT z92&Wa=U6iR#FR{%O83W>RNY2~G|^}e+O8zkq?Jfhn^e=5{1FMXRw1PASe5MV`_8?` zbJ#=LvF`a^zwbNeeCO%e=<+EkRb)FQGhSLW!lvscs(x&_n5&5wb08OwgHaBd9IcZi-DH0zh9oHeqcA@$YrPls}^to-1W!9O2*=zgum{5+h?+Pb9xV~QR!HjaXok&eoO z{|`fzCFeH5WkZp41@2|Jqz|yROV3da?Z)j=g3HHv{UVGTUD74EY;?gXW0CYDuDu4g zjduA>3@5WFaAvGO|`jf{2=_YV2lz`$T+EC3@WNA_5_eB^>%?vSllmskdcJ!HMJvL1r(C0(w6&oDL{%(ax6@kRqXjzEnNPiY? zXWJdAX5tyk!OzG!tvU~Kj@>bpVHHh~{UUgC?68`h=dfh>%x0k1K?(ZjWmvCeSo7gv zj$L|e=6FtD&db*F+)fu`D{94IsIq=58lYvlvNW!$YU+ML>E{9J+se}Mv`jr&S?W#8 zm?@Mygp7eoFkV5~KE}u&85G)$#yBh(^&u33lXiAWC&H<=2H`s6j~F#@nzo8qC6JWdpiFBhmkPd z-9~eV8NtxHYrBLQA>aR%g&f5H^=Zw6hyHAx$ibi%c~X!3F^bv*(K+FZ{)ZW&)IFNy zOXzf3%cDLL9Zd+bfa-)_`e>gHatb|9D!+22p zN0n!T;ec|YcQE2tD*BnFRp}iPh5VmQ{5MX**IH{4&xW zq&M%WDs8TwPgHdo=>pO^T73*&Qp!utA`H(g+zvVXjNXFmPW-GGb{gJMzSwylIc_2p zmJRrY@uP;PkczSinREC_*x(tuZocxE^(DjJ{Oqjn81iy*8Flz|`~vr(Ve=EF)O}So z&B*H$>ng>aqUd)E?;RqS@S`H+Rk&1LCI<>NtwSTM2X0oENdfqKwaXAPL6x%k4l>#p~tX?S(J9g1qK^*b<%0k1qU9v&8}R{SKq^ov?FjTl!K*KcG2kZSA> zkqr%l*Cn?W;y7z+n$17s(gyY?c&_G4(O+@UdM2Jg!sk7XDq-31f1c880s2APRz7ESJ>n9?)6KE{z}5Gi8|Owlk#9r`_Pokpvb;Ua0#)jIh# zkMKw6*kPCMa{eKV@37aHaY(Yk!E)E&H=>?Ku}te8i(ez`agcY~B^R$fa2unwa=xEx z$2~+@ajKOT9j=q(;6<;KgsFLvTFiU{>X=Er#h|_&_+~=e_sI)FJAY#IpB&jS^Y|{C zw2|J5|Na&P_wFZ+^j3uU?gKjsqrEJ(cVWx^w$?B2?XGp!I(M<5-r%tQbj;Mxe6agz zX{N4Dk)*9~w7yw74;SiPwvaxDg5pN|u-+-3)whtK<=|*=S*CR@Zl%tK-EghJD&2q! z4K7*iKtY$`W!@*CH|vyHNOL0?!4Fwy9iZ|RbtQ)%qq8s+q#6S1J~WI=J0 z(;`+-pb$Eno{&;-p~+OUIHZRgKish$pwApQ$bZb(v1W(nK{uAE-ij)8V delta 2424 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

Qc-4|Hr+div~aU}Vu`b25S5@de~&YdWFM z#p=~SSkr6Bd)9GwncYCd1OJKBf+-^hAw-FV;jL?zVP-NhImy_;{F`=coO&(deT%RN zNWJD3ieP-zKx^~Y%CA&GfA@(oSzds=Q&H%dnBrtjpq#wCTF2G>Jdy60n`F(($U>>` z_>bEOR%A(8TI}{h`3<6`IgJVmkBV9!PuFvGMeE!Q;ulOrzHcEWA<56|)}p2JFz`l| z+tbLc4qg(8uCgmzHChbt;->iyNS zfUjSNo{(>qyx(PH%*FW;Hat8$UFkvaM4}ALN5+A4L$8$lzNYe35vu_?uA>GemU5sw zh;=}fzKvCX`Xs@s5b~$RUq?@8rooLOo=rJWK2&zWMvpHuGqb_%7+IY$G}iHMpmi7Y zGWWN}Oc9`$M#AADE=Tg7`uaeMc8KW(gA!24GSCY8Io$ z#_Y#*y~Xry)Ri!KUyalK?ORQqgJ#7{ zK@pi(S>dBMGpLtVGTeVi1c%aum{fjy#7!jjqbra z7IK~!6%-JP^-3!$VotKKv5g;|8@S_3(b{`>T$bYHk0SIMEan9Z7JA}WLgFip5V-(6 zf)SF7%V>G|!O2P0XC|fyNr`Qa*q^ybHB7QGA9%ehUX9E3vkhTVcn9>_&Wvwt`k`Cm z*RS=qm!=!e_$j11Yjzm_sE^T4agZAMB=i_PV77O34yz0dEMW?UM<=PMs64ZN(!Pgh z6(D68DY&;?cf2|665i6UrKQHq%-+}8iRaOATRA|!*kn~!B5)|8%J$r58!74PS__f| zAa)Cj)su(agt^qH;;ydkj*U71a}yI2pPt_N%<~p(8iAnTor>2!Lx*>06&akLPdr3L z4Fw;a7^SAGOQ$PGTiRDGqph{`p&pNfcyzfL{ic-7E9`Zn@SrSs}mb8 zRe<$G-$dpmK@BKSw6t*TGul-uV=nG8F77txo0HB6Wx>UeaVBJVPPdJbf>k5+&nEa> z!p40N?WSK)-rH+aRBFdxAbhEV z&i&>OH!_ZQ!Y#=_@Y<+OM<*h69i8zdmwRa)X(j}*q+RDu7v?a4+rqc8#`S9fjRUk% zzwv$W%GuTbNJPLKx19v^D5Y58rs20(!ELhg@`8(Ayliabh_V4-v z!Mran_3=i(2N>9p2{~ikyA2vz_62HMT3QJR3;|M)Mhm2~^DF#dI6To~f2lCO>B$K; zlR6cucOH|~P{-p}MVmlE+VMr@yg3a{)dl!rKS7MvSC)1(m;q4;DP<3H`g^I}dy#)- z!)&4EY&qwM*@5|X#Q3-XsN=#g;{Nf@KMT9mAbvmmFYF@%VomQi?~Z0Gty&fooCuCq z3lyH}c32K&wXQr0iEjd<&6C5!5zXiifPjJ74*eDXK)Up?-jgaYjERehX*AiDu=dag zECU3VS?@P;+z*~-<;k^9PL<{5lus$c9(W-5-(rg%OL`Zq|l?Ts_(pd+OC>B$z1Lg4lh$y+kGiVAkzfjOp6VDzU!n z3hOpYG#^fftl1b&-QOaXx8}-dD%a`!qq85j}rVm3<&YZI=^)FIrGVjYd-U zG1sLlB@v7+8T){3yugGRjE68YNr(T{*-w)qE;A+zMiJ@H`Ea5l!Dv`PL7}9_^YRS( z9zxPIwgkqx(C>wnl)Nq`_Lvn3Dl#&%##N-%s131@bGf+yyo0R>6=)in~*4xc;B(#wY3tp+}2@a zeRHTCPr!2DOD%$!F!H?#{^Q(OG2TLn^nNe|1JYix!u|UWsmdpuPaZ=+#gh)*3Hop) zp{Q6S>5pkxuTU@5*z0x5v^U%s@fma@Fw0w7Ue3NG<&TJh)GqWY6|=ZyZ)` zBWv95w~LB=o<1GwL%RsHDIMR4j8y$7E}lIY!={gm?Mg2wSSfvM3*sl6&Rg{-kFl@#98Z1AG8bsx!-^9^MR8;>MC4F6l)@r#DV6%#KzCT(#yQl7S zYC497UK2x%=SO4(IXU4mF?S)+>wQ|~xt~dg4hl{^ZQm)4?m)`HELit&@$f+6MuPzx z1oj4e7{A{g)J!RgvzGe!TsB?SIoR9#W0DB`YBL6C&!9!vWqTqN@PfZ^yG^|Le!7yP zv$0PCNQ4@o{ATcf`b+ibIF|21r})>%r$2I0*nrc(KvT2VD3?X&qPtrw0?a!h@7g$G z=xcQJoK0M2X0E_bhnEsY10Y4f+{&Zcoz8#RV0dVDSi@AT714Aj4 z@7^samJvU~NKhdmmrX`yW;=89fG_S2j4MHjWTQ<@|VBl*s6O-PItCF+c66L=KU~Mdl>Hx7V}*~z{$B)t~${gg_2eP zFGq@vm34SzU|?XVRgUGS&@ITBj}|o84(g~;)hFrT_OkxIJ%RtKVx2hmb-B!re$F(w zio(vmbXP3e+wAV8q~zcF`1^kYk})qKMwP&emHw!Lf{mIov%U4T$Vjz>I!AIrlXuqE zuOy79l!M)w7b+9UT=uh^ekh&oe-K_~OOy^FO#-?BE13i>7jytdZNGj&<`6{c;gQTa z17Yo6NWFML2TI5Ue#8QNwV%FI&RmAFuD+B+Ks-*%c|NG?KM#?Jgyfd^O~f3pG3t6= zy1sLAs!(QlRpUC{{?LlA$Pg8B7oEM97YCAR8f&KH{{h`F(HmM!xU$a_1sq>L(%b{~ zp_$9O>uYP^dLhEUKxVrlFSnJyh)#ZS4g)oH6hPrN!7ul^4pyQT@N7oDZtQj0E{^&+q@uO8RU6(WE7zBkV{VFmWrsK3(V;9UNiEix zGCnMl5h|ZO`0xRL9*d^4q9Pa$r{V*0_xPr)GQm18kN0j`=(!l#&1k#BB?o-Ri013x zkV~D)%+&O)sp(@mu?WFZWd<7b`?yq90br?x8yA1SPjVhOJZ@Vs7a}cCZ&W%k0KWe8 zPq1|T-eeR6rlY?8bR_#Isud2dA%C^vR-hWBKs0+A+vS4@LhznYHD z?v>=H>sarM43qkgU-l~P>?+?i2}k%r&^acltfFF*K{o?C1Y`lvLHEs#YOp3|p>tqX z;Pa9EEb&B>*=Yvf4g2M>Y!;03Lo)kcqO;1(VmCesG2!o!_jSixN^){{F<^|Ib$^2# zyPRP@n|C#d);2bCbF*mr$TN13De(JjbE47mpyh57fZGWvkIRRJ&s7se_E;_p3 zf^SoD|F3AQ=jQ~OVD;!!{k(7Et;@cI;gOMvs%1Xl46Fb6Kf*DrLb7#k*Ye|zjg15_ z3rrFYS=m^4w|DZGp8oF5A>`%c@C!~bbHc&6WY_D~N63ycy&gDWaJ)!Y`_s=0!zY1g z($n2-So+~fWfI4WwfY4S8Kf3vSv@~-NTu~Em77~pdU}I-&6hn*pevJ)2La-;*;7!+ zdjEcKF`DXf=E)}A-v#hVDYtu1t@Gs)5WG)JU%&o!Ds~BS&vSPV5Blb^@q1|r+nw2Q z*{%)+jM?ay`%e23R;$c+?Jrp8fZ^-kn(q4gdWnQ!!+Tj-+P%-aqCg{bSh|V~|8^S! zVw8S87Kcae_8cuUNa8Z*Ea1JHYP|k^VffMPQVGkFLimB$`#ncs_N*i#C3Rg}=qK_V zH0{xWN`D5|5E2e;1l5&xuWxPT6%|#&)ZHgv%}{ zR#t*p=$Q2*NLH@fp#H-!!jOV4N=IK`f!1EpcIzZi4A=(daMV)$llxI z6b{f?N49i=N~hf7q=G>(-VFzzmF4!L)NA{f&222p*SAKQ;o@8PJqYAFwe$xmVXr6j z^rNYg{_Ha&31H!1lnL~RSGL(eUH3RYFye~+04OAwSd{LyN6~&8DCGhi8poI#bkQHo zwyuHk{7;D$q@-xs*&j`Qb(#UwJaGK351jdUd9hhz^k>G#K0w812f<7sFSxhII7LL# zGcs^<7HKIDXig0}+1O3{5&MS7AooMN4D%-)qU^RS%3)Je^+4+yGbLHF8UFX3c=$cy zPVq7Xvzp3E=VZ|afIE&U_`kr*{tsk|64&%+WqDztNWY=Erzf+rQd31G;s>)qiTy+8 z9)6&<8k7`;hMEUPL_C4aEi6zfItu631Yb%@URr-o9?L4&zk2!>`%3V@d8~KV**Ipm zlWiLe@!9U^CyLoQgJ~H|*x=X}cqeu8N3FkGPI9oP(sy<~-To&UhQ+`RwB{=7`LmDo$6`Sc-B zy@3OOhleMWRK(y1_OIcGB@(@%F$tI)sZy1d!wcKk236QeQ}5V8hw5Q^9j*7)*F(#HJAz7W;ea z50Ar0J)d2g2wI&&yx^UDxW2*vhKTbjyC%!QcG=j2+jNUx+kUUP4}!B1Pu&x_c`8bG(d16`kcGqKK9^F0O z?(OU(6SQ6sCkUhM)^vTiKhJOrpdNbAX$&an3Y@B_zk zJq(BSESUGOe!%0OjYSS1?<^!zbY*YY|4*2|8_bAcBL)sH(`J&xzuw!^FgZ!5hf<2N z&>$e(eLm*Z_y?{wIAG>vB!V9B1H4)TylU+QF#k}}?mqU8&K~_z>&5laen?qe9UOq% zr%scrN(T}-c!hbVJvoAqJ;ur474Y-QI~L?I1s4`REd43uIYkJK)mSNk$)}{Gq{%`& z=r9`_)nKo`@L_F-Gy+76!vjO4O9C`cI4u_Lu>-INVE^Ia0rcJM3$R0oh?~Ns9+Lh_ zZZn$3XkgWSDZ-vrF>CubS)7cd$1gW4$hV(2jhG_A`#>GM6 zx~}uvt~3MOT$`Jlz|6ISz473qI0FPRMW6r|*xEp5-?{>e;gYJJUVLO6+E?l*V-CW} zDqAj2UW1+Pxq<@gex}$ZTIJUqDIuGhzOGKzOBBhdLtJz}1r z0%zKH{8aOnj@yoc9`k-Yyu6xnF$h`tvwCgx7tSzrAR&`&Y~B$5vgf7Udb+xKz;ZoN7p-_i^4-?Qzfi9c-6Wd8%+j)X(fMro*#|J$H5X{B z|E%!uO$-Ct4x(4_rF>9e2r~o2(7+I(sQWiy6P&I)E)iQ(N|wsV$iUov7Zwt%BqNi^ z?^#e(v{kuT7oZZi|9_K(|4a3C`=4cQhu)3Y2Dd}^y#t~ctM0{#IXiTWS}^)EiE)`6 zxzXQ&QHh<6k%yNn;pzMOJf{1Gg<8%qJKw3wvU%H?@~smYFY>Tu;A72+XxRtHMJt!H zK)WqNIn4}0;mLaae`?lys;ACTe`{?wiq-$edJ}-ac!G-o6w|8rEfXQ@qY#wbcMPna zXBINr_P}%6tyy5uXnU9yvR)hs3Lu~DL{LK(HW9S3xq((!_XZIa897=wn-CEZXruZ? z*fB>sc}ApU6qsF#=>zfb@!p!4fFZ;`*p8*Oca5h=b#1M#GYnWEfYCo9DyqdYI9Sg4 z5=oFu)WK%=a)pd8N?_QfD;3qP7!6?{wKeU9B@`t~%MMezwQA7$lpQ^G2_6&U;^Lwp zCl?mx#XJG!EN1Tg6QZ&HEwKh7k)F!Glh^rdp9rVQfv<)Cm(I+A*887SCc*=J6YyVZ za!---6DJcEmare)!11I02Jo5)mOWsgU0+=VSQGegvNALI8k%rSq6nZB$J&o5((tyf z-cCkVR%*>|7Q0|&1C_Zw)$4zr`g7n)NAVV??D+Y!>obdyZ@|I91EYx6zjb7^7(p(W zb_!N3mCiz8UY@Ls3~jWh3_c7+oB{WW|B@x}8c{#=&s5~=UyJAci~NB98HL@v`ER4k z9)+~?LyCV&%5N)xq%4QIcqyp-7xNMOV*QWTeY&{&|2Dzccvekc8=KfOY>$2fWNDU( z9f;3V)Fv*gz*T_It#Q0;XPq1AvYVZ;{`3Ek_SRulX5Sy^K@@CM1Vl=akd}}xl@JtA zQd*G|>26dIkrI$D5fPD;KGdN@NxzEfWj&RPrd%tV%z1Anz zer$(GzdN8+2mpuk$KgY%%untxDr#vp)9q%OnJvWhVIu}F0KE0@!egFV^c_$P3JPD} z`CrIW>jFY~;D#5LtG|Ej*eyK0F=iZ6X&s%)Exbd3p@N2a0f+6Q*I&gikd1rR7_v5x zRA$fA7_g>!R|UZ$2J{#sf6uW7y0Y4>0;IKby)GpWRJ$37M*wA1^9&gLj;F9uZ%dJI zoHgob7F}Ic1Mcth;-3XBpK%7$|12nJKb#LN1jKJsB&)#1dGxY@kk!=WLj!~JDtv!O zvayLr4!A<{$Y=BLUS_sQ_tE3U1Z8Pyxj7jXhVhLz7V!Ps0`yr~-Zp@v0aJ}L=LV*v zNU5Q_zR{^4a&ma>hlO)fef+*s_c6Rs)_Bp8S0-We4ULBQ;VTz!bog>G__?IKy!UwD zC6FIWPKPViRF?D`&MNZt4S#t;T-*>>kIn9*ad;qdkQ{ubXL5T0zBgH+K*vHvwvJG59O@w z{wgU+EjB4HOxY9}&Q7^nbA*kAXTKZfp|CgCfGWOgXt*}f0-2m0yxj^y#3$`E?GUB6 zLz0s}=2ZoDO;Fh#I5LV8S@0qzMkX2imiDD}G%w=J6uXL?+)&NuAuIT=Te9+0oJNgL zJO+Rtyzf-#vKsMmq;towXv^1YaC#HR`L4l{8{*yZ&wOT^zqALQIVl?c>~)oXI@Ri_ zO2Yf4B0igE9PCbk64(M)qVPV8=ZF25ADlR#N?F8|oPKzkGJ~lnux^mk#V1^w|9LE9)Y=?NICbP@Z^WlSo3eR6(d~RaI zH;|c`?Q@V~;T!{>y|(r=h*wxy2Ytz~&RO5A2V)P$?w~@I@l2Crw{s=y2$38{yLA`= zN3Q1V7w?6kDnv0|5L!)00Ar_BB7d?4uYHe=6yci{LLz@j@Y8}vBXy^4NQ<{c` zhU9C?%{^SpP2d|ET&8sGEkR>F+PSke)0zEulWo}MUSwahlP{55M=61ZU(216d%LGgm zzP`RwTn|T6+aiZ(r8hPtgft2!m$p3*yT69ID(-b0AhV%IgkMK5J;V>Ls1|Ls?Mm}TEreu8ablRIYq#(RQk7yKzs;H^4IgDCbsjFK{ z8w1o{E_Sr3zHs{-!;zYt5N)q{`r}QlDj$f^Ba2*V*2aB{5Ska3R?9s`taCV_4C>X0 zMxo7vd4eh^ASloc45Yop-xuH*elduSMi>;Sla<5LH!mP=CAE5L(nj%Hg%@a8NJsKB zojy!kE!CMl#I8HMxssLAWy2N{Mm=#9aqnL26P#5&=h^0Xb_>0f#pln<$|#kT^blvb zU+tD)H7VXD6?B}g4WvbnK*i6ZoTIh!p1=@ak(J?1LZ9TF0^f}=svplzZUAAhGpb;$ z;XFS7BJ}o!uu8BnV)yNq^fD8>$nTBI)K;%h^7d)bg$7~$d*C&eW+Y6Ya>?Z#2<&s_ zYf71DP7F+nzy4D5);oE6)G(``6MlBylU88^8GsrA9=gM?yk^MBmF) zD(Gh+n)6nYFgN2LS>#CDzweO447q4JA*zS+AK?$@4pypw-#y(>uO^3MlcR52fj=bBc{2j>q3vt}Xh z0RBwUfXz&&PAUKF%s}o;dr)9t9r~fRHiyAr7ktMvk=H;QvEZYSPFsz2NnCwl_YCOH z5(voBuYkCS+`)hq2jYZnxn{(~L0v7fy!@)e+Uy9G|2z4QTP_0E(Y$ngd>-mpFo(qU z!;85^5N2`rUkeBbkdjU-(6{#CWdsBq?=ILSD%khW_hf&dTOwrC!d+;z4T=?KcImp& z{w);UI??gR0HZDuc43bVla1HfHOQKcOLsIt59dkb&UH%&uE&W`_7+=ZCU_JmJ|PT? zh>&q{c_6v?C{eC=W=X|FMh36(FvQ675{r$l-VYz*#H&R@Ue+9ci+*W8A=&iGbvtJ6 z(BZ>(l}h-A6!u5g^{qA3tSXwYO)TpC%Bjz^kQe(C}|9a>#x0qW^xijB$6? z0R;0-w0(b9#Y9U2lUmlxf(Q8OyahfKL=LOdNbFt79h!wB(gZMjX12^v{AL7fcFKsh zP@o^wCG;cX+Zfp?nv;oOyZ@E{Q!8=W;Jg|RMc3BSKpd`|vldZcpxklC5N;mh!B)ez zD@rixatmU|hb#=bU#|PRS2jctcj_&{WOPb4jIynFX>9Wj?Hylg5t;+#MGIBu5Zva& zXEM(Su$@9Y-iOV|B-)vD`G%qjuX9-eMcNjK&0|zszWr}WC1!m{xH>YK5j7thVP*7m zcZZ4=vTIZhAh`q7Miq4#H_APzsWXm~k^b`cVjjoI-b(p&72nUz*GLiYwW&%<`7F!q z%b!dAeI5I^EV-o_hBV&xABZjYK<4M``#IR=ae?J}``i&kVG)0vxR}Pq(0k!?<6l!E zRv$FTUL?<6zD@OWHtO!(y?giGz1xb4RgAFw9z>X$6Q|vEP*+!1Q;VGI*^N-H;2Ub? z92kZf=yj*4FR~Vx*^DuWG=rx%@(DI4MjNF$!)wMYOzEav%f6`P<6BGMS>`nEEOWe5 zU0OP@FeK?Cc3)pV&vu~A_pZ_!e-p}V++4ajR=(<5AVXHt(6;j%=`ndS} z1En^k&C{KJ4l2e^J8egCvzQR)}v*?tk?M`oH#gVa-1g(*qFO(FGF{EJ z0C8kJH>}Vcu^UL3lIv9ATqf4dxqWpb=EhRrVr!#IBLG$`>_e1oqkGma@HW+qEP`kh zcs7eH>LQ1Gh}Y2CtI)YU8q^<`FonwG!0>w@0X%^etEpP-||Jw zDm{)_r4s)HxXd~?K!a??Iw~s9NvCHpxZ|JGF&< zWo0Q(9OUJ--Vf98K-FN3vz58aQ2U{ps%lrR%$$MTP^b$tb0gxC(Sz>vd)M~1iBDl& z@&yk~GFAG1KF##>Lu~XmCPPv3OjX~)2f$NMPUAKfV&9`zE-1kR2i$p4I7#@J2#K@q z)&RSr+hvN4bz3Hl&3lU0oC(k2rE>F!#5v`LWS%*Fy1l)9Jso`>GfS|uVJ1n98IPDe zc6+WViv)3kjbE#EGW%5$yN2j^{fK_rjM00k?=j!_jPF(5rj_B+($ZW{!S1+Oe3I7^ zAAXgp%5&?P-a2^}_2Pht2rf#?JEJpvK)&Hu`B_<7s-f;J)d{F@ymArJ)1$qFK)iTX z3GpOsTJuwnybz0nb)i6tISyvKi$|^~ zT8oX&c;MB|JTwBgJM2O(8za+0)j^o&g&hxV#Bv;yGtB1}QT?+}X&vc<%+Yyw9toE) z3feE*F6}-PFk9rv1fOiWW954&lJFH>_9Gr-^Da!i2~3DqumaYHj3ZrW$s&X~YOFEr z5CXDV@clqEzQ+%MM*$}>b_qNy?r~ef25!go_CQ)07zcsJ7#y=myN%fLYg%GH+JuIN zhIo#<*bZG<-!|kwJYM7fWJ~ysMFI8T8?v^{N>9I)C=ZI$X(Ik?tI6R9bf-p$PSXcT z8mEjjraXd|x;fH3Gm;u>k}7=e#r2A>ii!%Yt!&B$PEPE7rLbTXw$0(B{faqHF@Mrn z{I)|htHL3J?Fw5%cQ^m+cpdnh^83lcz0?s9@rp+7{A) zuCtiIQ|#n~z)0dD<5?Elj6a4+d|qFi+_hN#o(4@)9N#(`1F0RLDMQtMFn;7^HndgM z=WeAZqs3=;jgXL8z3ffL7ySNF3gNpCwW=Unymh&IO(raUPVacXRgmcUb_ zlA2l^99Z_#`yFZz6H$6da<{ww>OC}VXnzpvOsGU?7QYGUXVY$^9HT*wo7pek-5qmy{CHnGf$c}D z^xWM+mo+f&uC05@K^YEqp=uVD61A|fSew*FCap7P&OjTPPkowa&y1%Dq}rs)cb2!c zjjcu%?3J?TTf4dp=c37+G^QF-T_GF~MqvtC#msM`3_;oH+`D)3%(w{+hunMlX(1o6 za^;i`@dNvj!q(r)HPM3(?rF-a*4ALthHg)Oni-Kru1pREvTL(FfKK?42_el|2oZVf z4wH{e@DpTWa!fzV=3Ki0{bNXkm{+GeEO2*%&{Bg$k(0lsM;@Q+D^CEvaHQH zxpck+YX(*fvi#|>?3|oU+nxlyM)YAswM^uu`EK#Mn)#xwVlb{M!^2yO-v93@LR`rn^008t{IK)o zQC$iG3Fg}GWipZzRYt_W%)}1;f%$9<`%+z8|kYQ^}c*z&AIvo4!y#kQpEY6){tV`UMI;86s>tl_mZy-NsrJZ4woN;|_e zBZ0m+9|BMRzz4vGUmrGRer0|osBQ$dY*_<8n3y))V;wC*Iwl;M8y@IyhB?5;9(;)H{TyPNA14z#b^)KKMCfgn~7u z*v8b<7M&*>_ZbZ8%o>IB&}l2zSZ8&r3-ZS3u4nb1Vy`_Mp^|X^p#^xDjFQ;&g}LTh zX&!k(=P}wC){$+fxJl|J-+o;ld{Y|N&LVf}M?mlN)W^Ss7tKE12x8i?I))q{@|3K@tBKX|e+dt>z za5}6yYb2!JclK)Wa1)`77P7Gx6B~_nq0kkxZGc+ks5GGP#ld4a@~ ziQD~`0ceT8b@6LT-)Z*InR~JREqe75GAIIGe(jIL5;qB4etS8NWkBSER@7#uSLx23 z{Rl{Ng(w6m{h!4*lOtX!Cb?g=_;80`XYq|umo=PeV2*^uRMRop<3$j3Q}LM!k{tQi zYS*p=MpBos5nAMF7eW@fdCEqcS|c2ZIe zJq~LjPI(!HuPN=dUp{(-HE#bu15)}I)c1ERv13I7Is!sD3NpTZ!T@3d zEOo_Um<_HckaOm@+$o!bx~#tKAm)Hx2_FS~#Bx?bEK?k7y?(?&#X*`MuBU;fQ^@O*9 zC*HYPfQ7gsfZcJ@08bN9(@=};YS^~3-xaEymrC*oAUwzW(qy3fM)F8nX-+_F?7gyZ zKS#$xLYD1I3|p0zjAzgzpttMn>ged`%(y^4+k@r0!AUK_oFQtC@NrU5Szzrr>*(kluDlTC_na!^ z2mFkw-wSM6v-9$_SL-Jx^Yf=8yFoDg)aOienBCSDMM8vHz9Th2k|N{j^<6fAQqp)+ zOpTA{IhX4ihY%he?`!JlICK<&pwcp%4n2d&TdZy^D|@ZXo`6UCNob{6C-I9C{fdqY z^Ng+EO}9fxKo@5bL{WU!3}5Kf<42Wkqp z=kFn-Ql#YN-Eu?5SWuBV(wD#It-NU`)^GQ-!1~B`?&$Z$C27A3oxxrXGcLx8HRK8<$`8k=gqE2U?lv`4ES}VT0IP0HQRf zlEttxsG*{BthS^_*~<0?=Eorl#YPAPFFzH4D!M>fu9mC`rRU;ReJdDX-|hdl%Avv~ z6=GIAcjA(lAGts;T1ZtU@?q;-z;FQRl|9JPpZ$bNyD30-UX^sUeJRrGZ#o<}ka^r) zpxGP2izq6-mLQ!POnKY+N~~<+@K;MKno_yc-|@>lonCXRW)`J$C$3Xz88RfjpL`IO zEWh>jAR`8asEuEejBrMdj)F~x7rmtCJexjtl^4^9enMuMgM-MhSl%YDEv1biKCwu_fSb$`#~^;O41>dt*X zOd!ceWnJ0BF-5oaVrd<}!JE6L?Rx9bA`(0{6e!2+bn8-0J<R{#40TfwQ>*()A(L}}9NB3t%rH$oWA zt<9TNroxz1bH~Pr5Wv2Fe&cC^cZ{6!lqX~{sGI0fXmSx56fskuo^{&iIXPX>CL{}f zMb}Bh+fvmD>m#rcdobimqt)NC^pw7G421$9O6N;%A)&3#)>4--E84`%2Q%%uAWQ$j)%`D^U(l64Vg$ z%ce1$Mj2^-evclNKEYMqLT&Pbj6G#CD#=1-pYX1;6GmfQ4G&RdBOUeX7xqEgihY#kheLzFHtFlwF^f_R3cFaU4o zqW`m8lb-2`fgN+d(Ldp(vu6S||!o_I`KbdMTrG?bS<_1)Be>-6lhip|a^zL3`GlND=QzDy3pPpuySoU8p0e0JsCdL0?(!*`%1ubvVV zuozWBaKqe$Y^{lkKAr1X69r|j#B7s?ANkDq0*6W-c9FxPsI+8nUlPr{21DS8&dH*knVAOrFo;CR zQQABXSPxdM%c+pIdT4M#1n{%>|AX`n9VF(hsIQ-{Sc*9JN6@#)B~CP>xp@JBBrcJXKXyqoY^P z)#(`bRt5+;-jSu8`c!(wA)T5EBG-3sR5JrppnId{QSH;?!JQE+||3k)&`%+X`75D4w{>; z;}#1 z`{;Z~g#E-~>C0;tWA)RW*-3Cjca2@XapUuIzps}R7Q0JLif1P#2JV^&>3@QXFLH*@ z+ED3tpnKi>5)sd1(#WDx&D5(4H6O0w&YT3A43VChi9M*MZzm&3r4^QJIr3cR{P|Lu z7(vh|D_kUJQr$VZw0$T*t&lw~K29beDJA8{=){)~Yuc_qgP?%)DgDA*8kz@I;M?;d zGcq*H)SDZ#n&d@XV!y1@_Sx?rteML}e0B9>(DjO?vBt)l8vf@abWUmPq;^&o zylMsdpt+{dOv5HYBsw-Zi^I8g5#SFjVNuZoCx$sII|9Lrj4<6zBQnX<)q%S{0!1JU zZ1s$!FdNVfzaMXzeeigeiiqty*~CIqU{p(?IS}xaniMgffzeJH9~)Be*;9*DREdd6 z+P;1Tk8XiUj2_WZsBW-a0fpbmv)^tWVQ@qKuVTU&se>Nj<>L{s-_VGsW+O&$^GO)@ z7K(=cg!aGeL^IZXCkxKCYeb2^AT}^CnGaW$le3ub_hJZQRL39_E!~BV=W2|CSECs( zGA^#Iv2(KNCe<6NxNQ+zS{X}j!O4)ZZ2SF$erq_84agdn&!-Ex-b9I;hS6*>c(r`XRRax1iRSkA;q0V0QW|-E5By$JvIRv|?RJs6V0$|EtQwtjGn}bn8CNg<c2H4ry z&T>A~2Vf?O&xR-dkGc*==LLl*Xi9{8Y`O{E9e+b_R9Xwj2VR-=>*ne|t0XVo@8S(t zL6B^LQ1TZU2>QDWB#qx6dPR+R9LMt{z8s*OoRT6izl}Fdz#&gRvTpWa-y>ILM`#T@ zy4&$_XDxz?$Ybu+|eGNumC* zmmV@~V-*U7vlBDUBl~~sJ9_7`(g%D6XbHXK0#K?^^AeeBPs@HIFMN{OXDNaW_4UVx zsXmtaNxliqp@HziyDJig3CFx|y&Zx2>Tmg`*_VpzsB%}|b$M`;37^gyR z_$GW;iMU_AElWA{6(QW${dHP`Mupj>eOlrEa-B}r7h<8!qXB9^WHk0IV+6%tFJ8Pj ze7xw?ZhAM&JeWCV-x2=9b#U|{-@c{c;_~C$WZO2cU3jSqHCVN?aYJ-P+{&N6aOtOD z(gQ89`I_vQe;t7#1A442YY*N?)D`4_b3W& zYHG4Pn_ZT-@0V^*L?uc2F_k49-8Q!i|H*e`csbTH;53J|PWOJ|vzZ7GZIqT)F%-zu znOcRCSYwRf2ZkQY>0(e`+PmYm+tZS!*$1+%na-lzI@EpJ*%cuwE_D3chHx_tC-`|d{ct5=A|2fu4erv9sbT2vT|Yvv1y z?;{)lppo<6^v7tWj}FWPFqLr~MOgch^a?(!!So96|0xdL7O=puhl{FBw#q2&t<@CTNAhw zcCTvRD75)*?^=RX7^`9Q>Vuyp)=t`mzm!P0>KFtpz8c1jQ3#;yD%a2R#CIg^Ujpd3 zFObWQ!gk2# z3c_@_hV|{~pE{W7O(y@KVBeVeSt#YeXgl^5@z|pn{MY^;(b{JY>qI-stb%7@xzJ^hWy*Vrf6na_j(C4K6w>ZYU$)WgmwfiED% zHoB0dTsP;r`t&#}J3HS3no|cTihros1rE-H1G_UgIOsUH)7QNZ!C@yqjNCLjxu=x@RMI48CU2;BN>iSM>19x2JaXue z^X4-2?n%75px?3R7iz+jb$=GauzX`x$cX=6Fed8Qh;V-TGPNSmDuaY#Q6R1NH^Gm$ zALfnVSem>Tez3G`y0&a;vN=Ml$k+JG3vqVGLo`OAUc_iZSuk2;5Ew7p*P`d#P{(pt z@^5uc>+CDszsslbM6;EEX8M(15uyBCXqOpSyj|Sk&=vTnLZ|z3xC4effM^1V#XM)) z>BE)Kj6$obP=JxceAAl;fYPfT9yi1IJrgkmOXGU)x!P7ja>3UhJ}f}7fO$=8h5H`= z0PP{rj{IF*{UBTAA_tLIr5ue+XO2;VY$6968-T8xmDQok(75O?B+MsiBrLiJu2d!Z zAn2Q{BV>5lqRJs#<^cd6c6L2LYuU_naMA0knO<*K@|3X9ZMbtO#sSO!8_`KP@Qn$j zXJ+QH+VoaqPD@NgI?U~4;3)+w$&2`Tvt7D`5F8`uCGLX&WQ5A4|NN7d7L(fWtv4bC zO~1S{K>&`7k0Ks+qm>mDtbp5uc8R4gW6DJU?VQm$YLcbT#8boWX`+%?iU zfPe&#CD$Mm8bc%UcH1&@%MqZc#YIF?oznMHi@lX+Fl6r^uYV6M>ppmrUH|_hsp8Q` z+#pB~h*dXb;qy;nTOUUipkq;0%FP=${GSvF%=4tZXynCgYEvntCeKA)57Ek)9pSHM zILG&$$J47I`&8LcJMp=0?GvMaEuy4D!W?>6{Z^E))k0B%7$)L(&=WWLRh50#6;#=X zf7c?`-8JobIXO8dF}+S({002co}PygHzUrjRku!sFl(N#AGt_Jck65T`!+gh{o7{r>6sGA3U(8nW0&STz7tZA;(KhjjtcjtrY z?02Gsxi{O;WnT#}WdPU1)dVM?nLk|ek>0@-)H%E-8v4Tig3Nz){(x(DB>x|Zk9YeK zAVzyJaI$kZ)Z^qgg^_S%o$}GchaWzC=y+%6g)-)euP_flT)8!ND{-d%B6`YMk5Ia< z2M8@y$iV1V3Hq6ZF60paI$Fuc3^cGhe&O7qqb!|}&_uPNl2ftJ?but;M%+T)68f1D zTNrqP`xEkEpMzw)&t-Or^8xWt*knDkl>>{ zO2W#|zO?!zneklRpCn5smPDoZOUyRTsFK6+quuMgp5EQ~l?GZccGWF~Xg0F#J_4Dy z1oJnY5?9*SG}VZh7?-);ZE-&ab@j-;uuHwovK1Opp_uKi%72)RvP=w7;u+Y)jH(_q z(eVF4T42l>up@&s4ivZr){a%)KN%9xK-VcHOWw(3ySE~apE90bBCdZ-OL~Xe0cnUC^IS~;x34s zAGUu2zyofUGMD`IP{p}=gk-keLhA!J^+rMKp%{)L+MwUL7H$Q^IDmSxR3BL`%F_pR zpY2qp{iz#o%Y@o3LGyP_RN^WVv5Ew$dru5iWC3Z|zqlCvsO;z;T7bk(2sv9lQVC{| z`yBE+_f7Hi75Mox|ES9WlkASQmIeQt$Wn+`3yV_RXJ{Nnbj2$o4v3mPeU|-@fkx|> zFA#NR;+j>M^LXgGxx{$Xjqi4a_*}?wpM2MkH(ixk|IWJ%q&LkIpFPXV%PZ)-(Wx@? z7}dxfzV+Z!x6%-bDFlAMnZ)|LNL_Rr`=GZ}ect`1L+)jkTtqHd)RjuSOaXpji1ue}0?yDIAQP)QwFt^rt+Z-;ner7jRx~KeT#^-D92WG99nr=m^^?|y`r@B_NW@HFGi z@k^;usy#ggF1u;N6=|psxw&1d9W)dsEY|KLH-^Apk?%Any;w>?eQIGfB|<=;TNCYE z_eaT9>)$FC9o?t@$=xWtKN~L@znunS>g|ml86l_#V&y*+@Ja_`4>vxthvd*?AP(xtf`)tM#sXwxp}=42})<|G{`*xxy7A06YWd)17B<1fhl& zSSiW%1kg$~Pk*A$DExDLW*5K>dQH)M^J&8-r%?U!9{*j}hzB^#qTN|mU7#dsU?k_W zUaZ@8=!@ahf%XfClHMm?_kN|0UKq{&k-5P|IPewlWa_<%kFRD?ZUhJG{Kkxpgt_w1 znntkcF8W1e^Ky9pCvqf{mG0%Och}7q1UxAY1gJTV_GkK15$)b6{ViTFvTqPeF)=aS zk8Z(wm60(y**bOQ5!Th%6Np~h`zH{jJm%hsKzi(VeN}=0oIkVABrG}0676Oqq_Jk8 zp&^)yb9axLX|ljNM@w4`YTWKfjm}g*z`l5Be_m!q)j8xz|tWKNDOweCH1Ibx~GP z;mvIKMW&`QgX(#0cDI2M$jJYZo!#9juRYhK{(~Iq;%d#lF$RJDX`oz9T|KM1)M)0vFe#+K=J#SsxI#4OSij z=*($KQ5RM01g4m57g4;#5N3*-JRCNS^-!17pMGBKq>-6*I%Qq|n4D2{H?-)18+u#< zm&tMw{SyPT69cK+=WYH-sV&DgM7|!wJf)oq9IX%kaCay3NQnM_P&18@ z3mP+lofH9bc?S@Pi~m(FWdK+A>-aOmqj-{a^?=vf33+^>mfG$+KY-+nnWqc-xTaU% zk*yb_wsT8SqMNPc7Y>Q4Ne8ZZNH{tM)~l;G@w60Y!H<*00*M zN9S_sW*T`h`EW69_GN*?7@A%0cwD@)c!1Y#eE%;eHJA@R9R_X_7q2)kpt6}7Lv=PZ z)Zx1RR#%;>!;n3Vsc95?vseTAk?0ZOXjS5EdGW zC;|Pgi&~NM#9~m$R~!TaG;HS@jR?Dx$M!Z~ZMjbIM^vDssK>JW3cHpI9m`jYit5A< zAwcALn^!(mr_3PCpr`9SW)riS&KQL0|TrCAHkpZivyLj>8YC|$-Vsdg;E?jt) zts~CgT>u)Ho@)VWfHeK$_gMAvQr5Syn4$_=U7zW82hsEcKm5^O6>Y9UEyf7pTTQ~& z2Y!g@9;{wZ$wq8c7ypHj0Y|c+G)~_yuHE;XLcfAf4WoH3fjl z$o>a+<)ks7x-byX=Yo1;yPTJ)nviGH_gS9VMO|jfOa*bbxHMu(sZZjX-$b zA?2gNL8PM1veVPY|1NPmMNWmx)Rm^-e&sS5UniTGCO=u{oA8EI3nhH^B3N!HSd?jXTAa(rqf?aol{D=3IvSaU+4K))MWn*(= zT#k1RF2VR3-?vh*Q+VLI{)PVep!_@i<9zFz_k>nDn((kYAl@^b3&fdaD^mulxpUeY zLg#9&tgLWc!J3RmI?ovXT|BoZxdKno($bOHZe&u?z852Zpn`(!CXj7pSt1yPJ|{YIe9SHuC7%A^)Eu`N_wa|6Ws81>TLq8ryi33@ z`nq(cGMj8?WZpj>ndLeoDZNN%P|K`p8~VcFF*cB$_x=G!hm*#2I{5PrI?Onva`}pio z|6YwX)t^5RB)Re&#VT&0c??tksqL9i1I83GnA?jV$kbe{>K_ zGbDNITKpeA;fB%w!^xu0sigXwLJwmU{``y?W83~l6`!a^&0j~&IhksC&t)iY{3Y9&BDpYyOMIz|(Lu~vv>A`w6VCP;ZMEd>Iw zHW&~PC+Dh`~Dd_>^-{mRdopGAL=t)y}#6Rs>-6E ze-YrN$$ukaeQ6}&%MB%aoCDLljxx7yA@=Oily92Jp@SSaouxJwK5ZOH?CsTXSeqUP zXS4MI(0Cfb1pq&5uIy@z@dE0UU;Hl(OMJer;3Op=A|NhaXpw=0(~nfZdV2kkl~Yk} z2(4-*2v^-C72=BGC4=7oQU}6>J_n!bpUpbhVHhXaGiG((xlUwjPtn%euB0@2lf=QH zz$nIOabZ>Ko1r?biDWNG_X%qb7%Kjo8nT+}Wul^5Z(j%`;WEN<^+F|(uXCDhE*l&n zVro^cjQSf%M84-E1ZlrLNZGAfd3Z)jY&>C`(kQYfv$O(N@#$ZjHL942@_}3^Ttkis z^Hc8MYqZVKqR&k5rU$v#tTWTo*Eeo0R(d7U2OY-zZr;7}r(gneDx7U$*K%0K~xT%)$pa-`~*0J@S98~0q9HOW?;AhD!z}p;?TezOdkym?t8Ar z@8xFWDkg{fQEr|`A<+UR-=u_}NAU&S2XD9dji&SScaxkwyW{-g00P|p;CW3$o58Im zmQ!D)^s=SkDtSgmMvRdZV-PpO{~rU+WkTmmYn>|`t2t{J)v}S#?}QS@Bc2Cq00i?~ zTr%`CC*g{o%~x3UbO*8bM)Okvh?yO=?-IVox4%mGFivU$JsOUr_s$DK(!U7w_JUz2 znrlxzTdBXKn$P`Tm70}em-heIx($yyFIhp80bGZzD^GB=b;cg{eTcx=J`|#GP#gB3 zBEzSV9w6L{$%S8SIHUI+F)J+adIg*E#7BZUaGu2oIzg8D{uaMV4*J6A7AwZDU=N5H z{M)HXgE3U9LBfG6cf28rJ=3r)721fH#I%7+pFvQiTpqLZ6K?Ut9mQ81Dk>|Xd)@T3 zF!;13_s!ju#q9TIKt85PaXpM>K&K|1E1IE1f4f(6`bHbw+NX=l=@4Kjk|FwLdKBcZ1-YZdBb z*>ZWVSGu?BmQyxm>xmwEfO%NMDjX`F^9B$ z`O;lv^5P{%<3T3ie+!rR+)|L#WG8!`1yhAOMqZZCj^U3US**Uo58e>R@`_}Wki zqo4P|z6?8TIm{$>Kbi}K>?)Yar?1FjDyIpqj4d3fXF=@~R*yQ12{KssRC`L_&yBQ> zppv8X7e&9`XiH5{&kH>ajeiv(`jrziJI}&N-%_X!EwQ`+LFjM*;B;4Kv|3|_3uhDKCH~^6Z zSb=Kp>|L=vGZAkRFBD7v_R8ldNJw~sduP1;B<5=lUbsI5on_#{JDG^H)o2SdGaQUU z4}=hhF;AVt#>t9>fJ$s{WRJ@z5tl$nCmz~nu-^ES(rP2eyuZlIz?Qg>IZ;*0KrGkH z!2Oty@B$i7%D*mGRt>!xI|HJf>zdN40h+N`TEw{Te=bn)9I>^fZXZIx5}-?ahd_XS z8KoHmH$IITu@yf5SM#FK1DHL~>}eCrfof))0|z)cIRzPA4q{Fmx4*dSjqv&Sx)3fX zj8|tx9`@TxR+2Nn@@SYw8aYoRRB02ls!hh2`JFc99Wb$B2J9zzW+51+pLsagAi(8# z3Ntt(FxNftI9hBuaoA$xJbWSbBO97TOdqeK7iNVS{-m(Oc#Hl{i=insDjULioWPg^ zsMwA8V%bC%zUTn+>v5kkEi8=3b`9rJ%U@sLMYy_fJ<>6F)AAbbm)tLU`h@C-snbiz zd|T70nT@;xN1A3UzREE^q(1%P)JtQ7;GXSm*6#G9d~?SOOyPK5T3=5$X{hI$D_)wd z;Ooj2sjhhX)E&r($*GA|xLLTgceXLgq2dv-IvcMd!Fa&u5BgJIQzfrofA;KIeQg7@ zb*8v%o);YaA~Na>{0iaBKzX%!hYAFhaaMrZqpI_^G!N}>Kv zoVZMeg}G63O4SaBBqJdOw`J(Ft0CUL3h#V3k6AK4y>~|Ju7UofZ269kmX`VI@`n+I zwp$wc>BckkHo3kT=Mlm*>|9)`NG-aB2N(RWTTZV_bl5R}`mi5a*OPZos`~g01O9eh zfq2Z|pw=yUHs0WKHb{#x^ki#~+_@7cD4>ZRTwZK>vHu{?dG>r5#+6xfI!+UnzSNW? zhmcwAgWvy-h$VckwTQ%{{Jh}k@Gv>|8Pk!;%WPQRe~MKCeb_cKDl0sh5w=^L+9U6? z;R4|bam(8AJNtUfk!rJ*O9@~^7V}vMIY#>mX6Mv+@Dx}2F5C`lX_@8e$D&!>3tF48 zCe3Gln3u6Xe&QQ(8%K;`Pa ztAk@;L4OeWx_!elUETN8r)d)2439X) zS3G_VU-@k0R8VA8R8(Z-RZmLHz$k;0PULGVXt5qGcQ*Z~)~rLxy1;(WMm{&i7)NI5>cLu*V{lR~|B6q$eix za!u97yhlvXDtN*qY?XdU#5x0U^7P)F?Z>!|-~PBlI!P`FPpqx|Qq?LaeHWoI>w?X) zhI$m@1;6QJ@eYe(?;~dv@xHWPBcUpIE9ItA)|S>MTLxaAk0P(z+qosz*IbRGK7`Ar z(xAq2Vk775yk2&R!}qt_fQFRoc&^qhB2si@=m%*^^IPu_mHmDppCgfAIShbB)a zhx<~M^|?Ir^^JW>-`tJt7?qkL;e2@A=bhxN3TyohR?C`KSDdi}0_7Sb1$NgZOs5o? z@TRvi6_SF#SR#ZoyYu^}yX$LfS<%}bnXtznw4d(3iyCVpo9WD#ZNVyW$y3aBPc^!j zi>r{ZX+Dwjj`_>G%CC5EeHuo-xxTfQ&=d*xNOlw(;jQG5eQ15j1f4nVf(HU} z<_u)9-uo<45e@h1TOt}X@&-JTV`Mz`k$tZQaF65My08;JNnGsg||!YXR_+#EcVR}Yw8h=4~dKkME^isb+sSP z&1n96tC0u3ylHLkyn{!T4qzPm!y!H#j~uE@zPHM_UqQ3x_K(sC}T{Llh0 zzC4!3^)0>_6?;Gf^LZ(F>)15QmoJWM%<`+bk&lXZmJQ@IP|kedx?eniRWa4?af~cE zKE5?~_gtcUzFo`HljR;bq&q^kBtG;^xKTt-M@7fBcjKE~{pv=J6Ay|P)&(4eOE=F7 zn7hTrIrX-oA>EdL3s^D(LtS*SU`3y&XAGSQ%ZMp=k^QQE*H;Bi8PH#_P*T#*cdo#- z$cT9gE-`2-)ZKj)0c(5wb0rx9u6Xo|;igvISEI_{Zg+ADJ=(z6;m7&`?!--m26P#Z z+$QU&Ev@Ii6h$P!O4U_dO;NRp=08SL=7C4@I-Z)}bpFx?y;m@ks;#9N%6f)oVV^Q{ z2;VE0KI<8^%U@cBTqN>M2b!y0nojw%SYLo^N2zENIP~vcB)R^sSkd?RYHx2(lV;xV zOlw2Dju&9`;Oh`@To&PMd*itS$1^n8AQyaiot-veFkldRRP`Y({4TyQPC+OK9wX`8 z+_Z&e@jREa2UAv|DH{)W``q>vV&UXx&eOA3cpU{@CYu5^iXD40_3+633iRf76q%U> z^7B00o|5q|=K^+Vjx>(qJwYUF$8QYBO-aeru%{DEo#+<=Ew6)s>On*scVr;n3crX9 zFrVvvqSvJP;)5jQE%`GQyJ+Lm3nQll02HYUbP?Hc>@ z3m+5RKcJJOq|H@0o^_)q{EeaG1qjJRG#1*16O!~Wyky2Yq+&f zZPpg$m6ZC5Epn%)UOgMS5hr$xLeTLh`gq~)xpz8VquTpM$2S=)n_i`7U%2>?=iqqZ z`2CB#bEvRkx&NoRuMVmzdfVNIfQW>sC`d>*NGd6fbV&#tkZzFf5`z$lLwDC9q&cKW zcStu#cX!-{zwev--I;s;zs#P28JNS~YrX5;Z#~a5W{20N=%7R6$rQI>jni29tuocO zaqm%f2cBT^%}U{xm)F&;YP5_rccHFmJyGO~{{Ei;pIcHw)Zb797%eOxLzfjFdN<#5 zP~%ITUf^a@XNsaJ4s zwYZ`L@aCgIK$O|GDK3^H>yFT6_Gj(_7-0V!&yquUV-@}$1d1(xkP3(-)m`s z6WQRkmB*4e{r3%ZOw6+)SZRsw>d>NjUG}GN-2Amv7$8ycg-UJga zEe&Hs-QBY4MVd1?saEEinwHugLCd|M7PvV$9^Bq*h;(p7YiGU#0sdVdKX18&mw*XV zvaOkD^|_@+gC<=*9r1vj`R76Xfs1?C({}w_QbI$KgK^v-e1Gdt`loTm8jvS9_9fZB zPLK#DQi7|&6BFU#%C>mQIqIyl0LwO>t%Y~>B<}alood4`R-#BZwM?1;*MZ^`Q}=<@ zeQ7Fu4vs%&D%rbd9_+>Gepi6Czhh4Trt@KUI(ri9{sl1&(Zs~z#^hw>w~)+CG%lPE z$N7Y;I`v*>>s-{ev2YbPH#d(yyG#Ce|Wra4X(qJQA4EHQFI8+u*hZAAkJJ z?<(lrTLh;K#=Y+r5f)2GdVT$?u?bFd-r#kxJzWzjj(FcWoB=@$`HIO9Jd1Vckp5I33NAH28Xr5VSqr0 zj*9w0%w`E*NPBz9abV`1hj*&p^A#VT$cOFF$AQlAgoJaW;O5wv`^gaFkFF}oti2%s* zxE>hmHrO&!QRRzXIDP$!K9s@m(_*5z(CpE;Byay!Btt(nhvjqWp;88}fZm`V;x?>A zygLB@J2lN)jdY}91&8uHA~JHi)=^7O=g^s~_$iq5g2q?cqeNG-+0xq^Y^G}K_D+}= ztvp}?yp?9t=8LA@>?j>WLsZn%j%y3EwRJV%Y4dV(jZ9W9D?Unz84iKBXguIBJlc1K zT&~WyfJchww4TaVP$=4-rl3rJoOFd|=q;YILD+s*TBwqklg4%JN2=`ppl~JeA=~4` zXg#u^luN>TaN6_pnLePCa zTdw_dAKx_3y4n1ZP?p;dTMO{Mj?^!o4!_v-Gg59@VdD>@61fA zP=rlgtaurhr}_Xp(XMk#JS_z641{_S<`Pa?GPW+WCR}7Y#yLU#R1e9w?*xxEBob(A?bcz{4DLRPCOn~`O zVTi;>MH4AFRJTi&F&^WN$T3kh$4`7p5;UX3=`aIi#j~=r;gzbpF8qCkq<}Mn96#kC zjeZKtUl4$dJlobNG zKQP4$^tZDK-eFfaQ1l-?$on5Qz<>dwCxfvz3OetvHqHKepl}JCWfyu}%rjbA>aLlr z(1-|qD+6ly=aJE(vlBA@&9#lcA8by}dnQlFC_ecmj~-r|A}zkOeoO>Z+uT;#>WYd# z9nKg!8l0!Y7FjCwM75Zi=M%M_oS=k)+2r4jhJ;aX9!*XNI0BFN< z2Ohdh2zB>#x33&HUm=}GlidTJ-!YcG8K3I5oFwDxI20;X``p|YX%lx79&s0H_Cy6x z;Hq_nqqNaLJ-O?X&K7+LFF*_unwqA-k32Zzrx^M3$DsYg8=y`HW`)?XlKV`qC*N7a zQh}y0Bt+G-^;A~#hlrh4{`$qe0Xu%ep$vS-FEsc84vvmsu;H>T_|Rba$~27?~z{?V`aDdChO6FZGW|31OV~f*=SK*#I4+ z%=aBInE*ha>~2H%z}tkJJhhp=ZhM-aGCfT`kry7BXkcMbkY3PZ7)79^^*m*#=$?O) zu-R&qUn>>sG+Ts}&QeN9YUG-!3;U|U!wBNta_g;y4>px9Hbj-D;P0%LW~BME2z^v!guBlm+lcmde(vfegPQRcPPdC{WOYy4@u zGkz~w%gxqcExP$}_E(fLRA5-^0ik`u(kqQ4hcs3*sc#y?riQ zGf_#c=Mc~*qN9&o9v=qO^Ex$3OEcbz$OaLii0+?ObV_}BLsY!1yab_>2s~b!x$<}e ziIBs+Jzl5F3>(}XAZ@Q+H1o1M=+{S9#g}g$i30hp``DNVhlejYUjkWfPqz~fyhDGN zuMi~rJs9Of`-g^%j73@nKS1w^@`63jPJ`gla}3BhE2}4g7z3N=FTz0j%|6gadpCw(T4JQiF zAMGwmeLU(yq5Os`BPUnmenKYgA}{}=-Yc?nL{?rOPKDnAri}w?i219lSamB-vj-@n z3pC_tgx)NORjPpy`u=Ea-%62g4bWV(TV}OypVcW@jfxKoYy7)UkuIqG+lX1G%%@MC z&;Iz+O%+?Jo}SIDns#YlS5Il4+hj0c^@0|cJ9iYr;cy<}AH`v8Jag$LU(;o&h8)P=;PSn$Z2m#|P#(ST$cNQMv#WGxiZSXeMpB*^-0_dH(zGg+CE@`7&l zA+@%ix47iIGm274pcSfcWSrQFc-tL2_a`DNKxfGP=sXzg-^Qp-g`?G@kEe78wL&-3 zlACDzNW{eNzXvEnOb_i{Yk_*r@s{@Fjr)8|-wNt40B1-R@IG5K`?#>e%B;z`V$1mL zeX}clv6#o1^c-MK_UE_)t%lkg1vrhu#WRvW8Mf(H7uWAz&xxL>->v@dC{Adc`+edj zTUnMXBHe-qWD>qCtWAPZRY3olPEj7Ov8~Nwq7R;Z#g9}fm+6v==X7$k@?1Y0UsvY_ zbr2w8!)D&^bDC3>JqkXbf&Q60-XQ>{jQVSaX z*vJTwFq?@-H_m@dAl~ZGpjkamVQ}#P+9!f%R|6v>6y~C8Fs4_$G~A4QHQz#>ep4C8 z4S!rgeAgjJe20=|RTBpumygA&Q+vlJzS7#n*a!vs*0eU33e#UO8Sg6cpOGa8`whI^ z%@nSPE@#-J?m+H1`Ox4|>DuvP{~~f=qW`_6+?14$3>mZu zwg?43D^Y#}v?ypgh^j{-BWDLsJ!@-NwW>p1#td5zb0gqmILA(6;)vW_OfIfOViG6? zFul-lgDQgY!rdE?*SEB`1c)u^ObZkg6wtv%y}tioVPz%bFwPL8=(vc}Ro0fhZWYOY z0xZcbG5eZ-yg;Q5R9<-b_;~o#dmn#1-b7n)|D>@EY!pzoRanpbTq!~YwZ40I?|@q8 z`SDu0dC&RcVuW!|0*(AL=jBZ_eTMX5ixD#3)6spSAn!y01%^l+?AqI68-OQY*1K8& zgexu?>nL|Yk#?OL7~y~bX-B}10BmfmzV`N^(LY$v zfJ8)ogR;wQgNRn)Q?T6kYz5F-Q}l+>*J(EsNKu7*Uf{4?TFq22H;_Fz<>TV&865No zo%P|ect!B|af%j>Bb#cf7LywpoA9Vz%#b1M#c~XYS{@Nx3kqKUX`dGbayx)^QA|$q z){8DL8~?fkz2sseWFNzYJ|zp#HsJj0XRM>5X`x>|AvttzBzXTn3~qv=@@Y?$@Qh?g zva!jE!`kNY!V=>9_rT=lUremiw*kGOO`r1b>T(3|a1<02_I3wM%-ukOx-gSEqZ>tj z<^S1FX>KkAI(CagLuIvH%i1($TV%hB*W!15wj1vQ@lqZ?yb&Q~Y zz@m%8#KI!M`ihU%p!ytbr?{=);yf7CGoZllg{)VwVv|E8$y_b zcy~#ZV^f4$fx28$E1eV2R%N`!_N)^z`})BUTnf5a*1%tG5*i)d}>t|D8#~YxRpyLHADd z8&2ByiP**exHvi{re}hd_gpEML8SHv=*xQBv;)aa!JEpKu4rbRay!C@`^Q%8ovIdy zth_N2kcgMqw~YWHA2h6JMf~k(mLN~ofK5kv22-Z)tR5N}CwF@dRRJFI$;83Vg6Wc8&P&+JbcFqdBb`8UWW z^2i)wRSFv@QW~)C%M_+ppyUmM5RgJ`{+NQUyT-g_klRWV2=aH?Ax~y{ZmnXK$M{nfrw8^B6mI}P;K8TiaC6+I#P(2wnQfu{nYjW^}v$q zL$In@(qvkt93Gb3S`=ZM6Lsp_Z$G`$*1jaC2q)?UENRwqmC5s(sr1FY-O=%piLi8} zl@tIU|5#SCD%QAMk{NuOv)@cTWLO|ABV%!>Mu4whAfzM*T2AzpioEp#9y!A7&#q}? zfD1TE3M0>bC!J(dROr@~8@Ux(6A}~s-Sqa!A3b`b;hKn2=&zJF)XlI{(`;%th(WJxPM0p9K64*680Cs$i=#p z{8>P5@s0qd^CUGS)im$0nCtm2@X&y$P(`$%+@@S@)*NX%yP`Rq2Q{vKlecJg2 zSB?&%W=mDWPQZdkqmDMpKj?nY9Z>moILq7oOQf;&TcGJCh-kLy+igGa+1D%Y)TDW> zXNrF(A-3phYyH7(M{z79zjMm(NL2gujT9SeZmPyK{0`$w`{tk`(jou2iv+cP$IeU+ zX9KtHDrH5gGzo*lG0Tx{nlX zZlt-4u(jr4O}sc-o?x(Q9k)4RaR+@vZ6rk!SwA!v_qLO6lXpp3dr%#6A&OhS=o

Gc53+?C0%uVs^X11$&Dic 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 V+zpmZcoza+QsVMrg(4q5{V%dU!e0OY literal 0 HcmV?d00001 diff --git a/scripts/td2/exo3/prod_mat_par_static.png b/scripts/td2/exo3/prod_mat_par_static.png new file mode 100644 index 0000000000000000000000000000000000000000..321b6a5f06385e05640b8b89efa567533a528d60 GIT binary patch literal 52381 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%0AVJ6Hqb`JgvK2h)t8%GOi}Vii%Nr6sy|EXg9sx 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 literal 0 HcmV?d00001 diff --git a/scripts/td2/exo3/produit_matrice_2d.c b/scripts/td2/exo3/produit_matrice_2d.c index 14422bc..90a9c1f 100644 --- a/scripts/td2/exo3/produit_matrice_2d.c +++ b/scripts/td2/exo3/produit_matrice_2d.c @@ -13,7 +13,7 @@ int main(int argc, char const *argv[]) { for (int j = 0; j < MAX; j++) { - a[i][j] = 1 + i + j/2; + a[i][j] = 1 + i ; b[i][j] = j + 1 ; c[i][j] = 0; } diff --git a/scripts/td2/exo3/produit_matrice_2d_par.c b/scripts/td2/exo3/produit_matrice_2d_par.c index b3cd67d..79003f3 100644 --- a/scripts/td2/exo3/produit_matrice_2d_par.c +++ b/scripts/td2/exo3/produit_matrice_2d_par.c @@ -4,39 +4,39 @@ #define MAX 10 +int a[MAX][MAX], b[MAX][MAX], c[MAX][MAX]; + int main(int argc, char const *argv[]) { - int a[MAX][MAX], b[MAX][MAX], c[MAX][MAX]; // initialisation for (int i = 0; i < MAX; i++) { for (int j = 0; j < MAX; j++) { - a[i][j] = 1 + i + j/2; + a[i][j] = 1 + i ; b[i][j] = j + 1 ; c[i][j] = 0; } } - int i = 0; - #pragma omp parallel for shared(i) - for (i = 0; i < MAX; i++) - { - for (int j = 0; j < MAX; j++) + + #pragma omp parallel for schedule(dynamic) + for (int i = 0; i < MAX; i++) + { + for (int j = 0; j < MAX; j++) + { + for (int k = 0; k < MAX; k++) { - for (int k = 0; k < MAX; k++) - { - c[i][j]+=a[i][k]*b[k][j]; - } + c[i][j]+=a[i][k]*b[k][j]; } - } + } for (int i = 0; i < MAX; i++) { for (int j = 0; j < MAX; j++) { - printf("| %d "); + printf("|%d",c[i][j]); } printf("\n"); } diff --git a/scripts/td2/exo4/pi_for.c b/scripts/td2/exo4/pi_for.c new file mode 100644 index 0000000..caa0efa --- /dev/null +++ b/scripts/td2/exo4/pi_for.c @@ -0,0 +1,43 @@ +#include +#include +#include +#include + +#define MAX 50 +#define NUMTHREAD 4 + +int main(int argc, char* argv[]){ + + float step, x, sum, pi; + int i, steps; + steps = 200.0; + + step = 1.0/(float)steps; + + float* resultArray = malloc(sizeof(float)*NUMTHREAD); + + // printf("\nwe have %d threads", omp_get_thread_num()); + // omp_set_num_threads(NUMTHREAD); + // int t_num = omp_get_thread_num(); + // int start = (steps/NUMTHREAD)*t_num; + // int end = (steps/NUMTHREAD) * (t_num + 1); + // printf("\nThread %d , starts: %d , ends: %d",t_num, start, end); + + #pragma omp parallel for + for (int i = 0; i < steps; i++) + { + x = (i + 0.5)* step; + sum += 4.0/(1.0+x*x); + } + + // printf("\nsum=%f",sum) + // printf("\nThread %d, sum: %f",t_num, sum); + + + pi = step * sum; + // print("pi= %f", math.pi) + printf("\npi= %.10f", pi); + + return 0; + +} \ No newline at end of file diff --git a/scripts/td2/exo4/pi_for_critical.c b/scripts/td2/exo4/pi_for_critical.c new file mode 100644 index 0000000..3a6aeb0 --- /dev/null +++ b/scripts/td2/exo4/pi_for_critical.c @@ -0,0 +1,31 @@ +#include +#include +#include +#include + +#define NUMTHREAD 4 + +int main(int argc, char* argv[]){ + + double step, x, sum, pi; + int i, steps; + steps = 1000.0; + + step = 1.0/(double)steps; + + #pragma omp parallel for private(x) + for (int i = 0; i < steps; i++) + { + x = (i + 0.5)* step; + #pragma omp critical + { + sum += 4.0/(1.0+x*x); + } + } + + + pi = step * sum; + printf("\npi= %.15f", pi); + + return 0; +} \ No newline at end of file diff --git a/scripts/td2/exo4/pi_for_iterations.c b/scripts/td2/exo4/pi_for_iterations.c new file mode 100644 index 0000000..8bff3fd --- /dev/null +++ b/scripts/td2/exo4/pi_for_iterations.c @@ -0,0 +1,42 @@ +#include +#include +#include +#include + +int main(int argc, char *argv[]) +{ + + double step, x, sum, pi; + int i, steps; + steps = 1000.0; + + int p[4] = { 2, 4, 6, 8 }; + int n[5] = { 200, 400, 600, 800, 1000 }; + + for (int j = 0; j < 5; j++) + { + for (int k = 0; k < 5; k++) + { + pi = 0, sum = 0.0; + step = 1.0 / (double)n[k]; + omp_set_num_threads(p[j]); + + #pragma omp parallel for reduction(+:sum) + for (int i = 0; i < n[k]; i++) + { + x = (i + 0.5) * step; + sum += 4.0 / (1.0 + x * x); + } + + printf("\npi for num_threads %d and steps %d is %f",p[j], n[k], sum * step); + } + + } + + + + pi = step * sum; + printf("\npi= %.15f", pi); + + return 0; +} \ No newline at end of file diff --git a/scripts/td2/exo4/pi_for_reduction.c b/scripts/td2/exo4/pi_for_reduction.c new file mode 100644 index 0000000..7bbb1b3 --- /dev/null +++ b/scripts/td2/exo4/pi_for_reduction.c @@ -0,0 +1,28 @@ +#include +#include +#include +#include + +#define NUMTHREAD 4 + +int main(int argc, char* argv[]){ + + double step, x, sum, pi; + int i, steps; + steps = 1000.0; + + step = 1.0/(double)steps; + + #pragma omp parallel for private(x) reduction(+:sum) + for (int i = 0; i < steps; i++) + { + x = (i + 0.5)* step; + sum += 4.0/(1.0+x*x); + } + + + pi = step * sum; + printf("\npi= %.15f", pi); + + return 0; +} \ No newline at end of file diff --git a/scripts/td2/exo4/pi_out.c b/scripts/td2/exo4/pi_out.c new file mode 100644 index 0000000..7686623 --- /dev/null +++ b/scripts/td2/exo4/pi_out.c @@ -0,0 +1,35 @@ +#include +#include +#include +#include + + +void main() +{ + float step,x,sum,pi; + int steps, tid; + steps=1000; + int num; + step = 1.0/(float)steps; + int numthread =4; + omp_set_num_threads(numthread); + #pragma omp parallel private(tid, num, x) + { + tid=omp_get_thread_num(); + num=omp_get_num_threads(); + + printf("threads num %d\n",numthread); + printf("threads %d\n",num); + printf("tid= %d\n",tid); + #pragma omp for reduction(+:sum) + for(int i= 0; i +#include + +int main(int argc, char const *argv[]) +{ + int numtasks, myRank, len, rc; + char hostname[MPI_MAX_PROCESSOR_NAME]; + MPI_Init(&argc, &argv); + + int sendbuf1, sendbuf2, count, recvbuf1, recvbuf2, tag; + + MPI_Comm comm = MPI_COMM_WORLD; + MPI_Status status; + + + MPI_Comm_rank(comm, &myRank); + if (myRank == 0) + { + MPI_Send(sendbuf1, count, MPI_INT, 2, tag, comm); + MPI_Send(sendbuf2, count, MPI_INT, 1, tag, comm); + } + else if (myRank == 1) + { + MPI_Recv(recvbuf1, count, MPI_INT, 0, tag, comm, &status); + MPI_Send(recvbuf1, count, MPI_INT, 2, tag, comm); + } + else if (myRank == 2) + { + MPI_Recv(recvbuf1, count, MPI_INT, MPI_ANY_SOURCE, tag, comm, &status); + MPI_Recv(recvbuf2, count, MPI_INT, MPI_ANY_SOURCE, tag, comm, &status); + } + + MPI_Finalize(); + + return 0; +} diff --git a/scripts/td4/exo3.c b/scripts/td4/exo3.c new file mode 100644 index 0000000..6b67e00 --- /dev/null +++ b/scripts/td4/exo3.c @@ -0,0 +1,59 @@ +#include +#include + +int main() +{ + MPI_Init(NULL, NULL); + + // Number of processes + int world_size; + MPI_Comm_size(MPI_COMM_WORLD, &world_size); + + // Number of current process + int process_id; + MPI_Comm_rank(MPI_COMM_WORLD, &process_id); + + // Processor name + char processor_name[MPI_MAX_PROCESSOR_NAME]; + int name_len; + MPI_Get_processor_name(processor_name, &name_len); + + // printf("Hello! - sent from process %d running on processor %s.\n\ + // Number of processes is %d.\n\ + // Length of proc name is %d.\n\ + // ***********************\n", + // process_id, processor_name, world_size, name_len); + + MPI_Status status; + + if (process_id == 0) + { + int data = 15; + + MPI_Ssend(&data, 1, MPI_INT, 1, 4, MPI_COMM_WORLD); + MPI_Recv(&data, 1, MPI_INT, world_size - 1, 4, MPI_COMM_WORLD, &status); + printf("\nReturn to Sender with value %d\n", data); + fflush(stdout); + } + else + { + int data; + MPI_Recv(&data, 1, MPI_INT, process_id - 1, 4, MPI_COMM_WORLD, &status); + if (process_id + 1 < world_size) + { + printf("\nI am %d Received value %d from %d and passing to %d", process_id, data, process_id - 1, process_id + 1); + fflush(stdout); + MPI_Ssend(&data, 1, MPI_INT, process_id + 1, 4, MPI_COMM_WORLD); + } + else + { + printf("\nI am %d The last and I am passing it back to 0", process_id); + fflush(stdout); + // int d = 5; + MPI_Ssend(&data, 1, MPI_INT, 0, 4, MPI_COMM_WORLD); + } + } + + MPI_Finalize(); + return 0; +} \ No newline at end of file diff --git a/scripts/td4/exo4/async.c b/scripts/td4/exo4/async.c new file mode 100644 index 0000000..5ef2ec2 --- /dev/null +++ b/scripts/td4/exo4/async.c @@ -0,0 +1,78 @@ +#include +#include + +int main() +{ + MPI_Init(NULL, NULL); + + // Number of processes + int world_size; + MPI_Comm_size(MPI_COMM_WORLD, &world_size); + + // Number of current process + int process_id; + MPI_Comm_rank(MPI_COMM_WORLD, &process_id); + + // Processor name + char processor_name[MPI_MAX_PROCESSOR_NAME]; + int name_len; + MPI_Get_processor_name(processor_name, &name_len); + + // printf("Hello! - sent from process %d running on processor %s.\n\ + // Number of processes is %d.\n\ + // Length of proc name is %d.\n\ + // ***********************\n", + // process_id, processor_name, world_size, name_len); + + MPI_Status status; + int n = 5; + + if (process_id == 0) + { + // create the data + float *data = malloc(sizeof(float) * n); + + MPI_Request requests[4]; + + // sending the data one by one + for (int i = 1; i < world_size; i++) + { + for (int j = 0; j < n; j++) + { + data[j] = (float) i + j * 0.1; + } + MPI_Isend(data, n, MPI_FLOAT, i, 4, MPI_COMM_WORLD, &requests[i]); + printf("\nI'm node 0 and I just sent %d data to %d", n, i); + fflush(stdout); + } + for (int i = 1; i < 4; i++) + { + MPI_Wait(&requests[i], MPI_STATUS_IGNORE); + } + + } + else + { + float *data = malloc(sizeof(float) * n); + MPI_Request request; + + MPI_Irecv(data, n, MPI_FLOAT, 0, 4, MPI_COMM_WORLD, &request); + + + MPI_Status status; + MPI_Wait(&request, &status); + + + printf("\n I'm process %d and I received %d of floats [", process_id, n); + for (int i = 0; i < n; i++) + { + printf(" %f,", data[i]); + } + printf("]\n"); + + fflush(stdout); + } + + MPI_Finalize(); + return 0; +} \ No newline at end of file diff --git a/scripts/td4/exo4/bcast.c b/scripts/td4/exo4/bcast.c new file mode 100644 index 0000000..4140383 --- /dev/null +++ b/scripts/td4/exo4/bcast.c @@ -0,0 +1,60 @@ +#include +#include + +int main() +{ + MPI_Init(NULL, NULL); + + // Number of processes + int world_size; + MPI_Comm_size(MPI_COMM_WORLD, &world_size); + + // Number of current process + int process_id; + MPI_Comm_rank(MPI_COMM_WORLD, &process_id); + + // Processor name + char processor_name[MPI_MAX_PROCESSOR_NAME]; + int name_len; + MPI_Get_processor_name(processor_name, &name_len); + + // printf("Hello! - sent from process %d running on processor %s.\n\ + // Number of processes is %d.\n\ + // Length of proc name is %d.\n\ + // ***********************\n", + // process_id, processor_name, world_size, name_len); + + MPI_Status status; + int n = 5; + + if (process_id == 0) + { + float* data = malloc(sizeof(float) * n); + + + for (int i = 0; i < n; i++) + { + data[i] =(float) i * 2.5; + } + MPI_Bcast(data, n, MPI_FLOAT, 0, MPI_COMM_WORLD); + printf("\nI'm node 0 and I just broadcasted %d data", n); + fflush(stdout); + } + else{ + float* data = malloc(sizeof(float) * n); + + MPI_Bcast(data, n, MPI_FLOAT, 0, MPI_COMM_WORLD); + + printf("\n I'm process %d and I received %d of floats [", process_id, n); + for (int i = 0; i < n; i++) + { + printf(" %f,",data[i]); + } + printf("]\n"); + + fflush(stdout); + } + + MPI_Finalize(); + return 0; +} \ No newline at end of file diff --git a/scripts/td4/exo4/bcast_time.png b/scripts/td4/exo4/bcast_time.png new file mode 100644 index 0000000000000000000000000000000000000000..0d20a08d02b5e75d9f426591c330a554fcab6a5d GIT binary patch literal 32852 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 literal 0 HcmV?d00001 diff --git a/scripts/td4/exo4/naif.c b/scripts/td4/exo4/naif.c new file mode 100644 index 0000000..f3c0b5f --- /dev/null +++ b/scripts/td4/exo4/naif.c @@ -0,0 +1,66 @@ +#include +#include + +int main() +{ + MPI_Init(NULL, NULL); + + // Number of processes + int world_size; + MPI_Comm_size(MPI_COMM_WORLD, &world_size); + + // Number of current process + int process_id; + MPI_Comm_rank(MPI_COMM_WORLD, &process_id); + + // Processor name + char processor_name[MPI_MAX_PROCESSOR_NAME]; + int name_len; + MPI_Get_processor_name(processor_name, &name_len); + + // printf("Hello! - sent from process %d running on processor %s.\n\ + // Number of processes is %d.\n\ + // Length of proc name is %d.\n\ + // ***********************\n", + // process_id, processor_name, world_size, name_len); + + MPI_Status status; + int n = 5; + + if (process_id == 0) + { + // create the data + float *data = malloc(sizeof(float) * n); + + // printf("I'm here"); + // sending the data one by one + for (int i = 1; i < world_size; i++) + { + for (int j = 0; j < n; j++) + { + data[j] = (float) i + j * 0.1; + } + MPI_Ssend(data, n, MPI_FLOAT, i, 4, MPI_COMM_WORLD); + printf("\nI'm node 0 and I just sent %d data to %d", n, i); + fflush(stdout); + } + } + else + { + float *data = malloc(sizeof(float) * n); + + MPI_Recv(data, n, MPI_FLOAT, 0, 4, MPI_COMM_WORLD, &status); + + printf("\n I'm process %d and I received %d of floats [", process_id, n); + for (int i = 0; i < n; i++) + { + printf(" %f,", data[i]); + } + printf("]\n"); + + fflush(stdout); + } + + MPI_Finalize(); + return 0; +} \ No newline at end of file diff --git a/scripts/td4/exo4/time_async.png b/scripts/td4/exo4/time_async.png new file mode 100644 index 0000000000000000000000000000000000000000..754bdaef4842001832496b6d242d8481bbe241ac GIT binary patch literal 40067 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 literal 0 HcmV?d00001 diff --git a/scripts/td4/exo5.c b/scripts/td4/exo5.c new file mode 100644 index 0000000..e4e7472 --- /dev/null +++ b/scripts/td4/exo5.c @@ -0,0 +1,51 @@ +#include +#include +#include + + +int main(int argc, char const *argv[]) +{ + MPI_Init(NULL, NULL); + + int world_size, rank, name_len; + char processor_name[30]; + + MPI_Comm_size(MPI_COMM_WORLD, &world_size); + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Get_processor_name(processor_name, &name_len); + + if(rank == 0){ + // if main process + int steps = 200; + + MPI_Bcast(&steps, 1, MPI_INT, 0, MPI_COMM_WORLD); + }else{ + // if other processes + int steps; + MPI_Bcast(&steps, 1, MPI_INT, 0, MPI_COMM_WORLD); + + int slice = steps / world_size; + int start = slice * rank; + int x, sum, step = 1.0/(float) steps; + + for (int i = start; i < start + slice; i++) + { + x = (i + 0.5)* step; + sum += 4.0/(1.0+x*x); + } + + } + + float* sums = malloc(sizeof(float)* (world_size-1)); + MPI_Gather(sums, world_size -1, MPI_FLOAT, sums, 4, MPI_FLOAT, 0, MPI_COMM_WORLD); + + if(rank == 0){ + for (int i = 0; i < world_size -1; i++) + { + printf("\n %f ,", sums[i]); + } + + } + + return 0; +} diff --git a/scripts/td4/exo6.c b/scripts/td4/exo6.c new file mode 100644 index 0000000..8c64bd9 --- /dev/null +++ b/scripts/td4/exo6.c @@ -0,0 +1,57 @@ +#include +#include +#include + + +int main(int argc, char const *argv[]) +{ + MPI_Init(NULL, NULL); + + int world_size, rank, name_len; + char processor_name[30]; + + MPI_Comm_size(MPI_COMM_WORLD, &world_size); + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Get_processor_name(processor_name, &name_len); + + int B[10][5]; + int A[5][10]; + int line[10]; + + + if(rank == 0){ + // if main process + int steps = 200; + for (int i = 0; i < 5; i++) + { + for (int j = 0; j < 10; j++) + { + A[i][j] = i+j; + B[i][j] = A[i][j] - 2; + } + + } + + MPI_Bcast(&B, 10 * 5, MPI_INT, 0, MPI_COMM_WORLD); + + + }else{ + // if other processes + + MPI_Bcast(&B, 10 * 5, MPI_INT, 0, MPI_COMM_WORLD); + + printf("\n received B"); + + } + + MPI_Scatter(&A, 10 * 5, MPI_INT, &line, 10, MPI_INT, 0, MPI_COMM_WORLD); + + if(rank != 0){ + printf("\nProcessus %d a reçu %d donnée", rank, 10 * 5); + + } + + + MPI_Finalize(); + return 0; +}