From 26480bcc7600a3f4bf1e3916fcf466f1bbd107c0 Mon Sep 17 00:00:00 2001 From: bbod Date: Sat, 11 Apr 2020 16:59:12 -0600 Subject: [PATCH] split matrix function out --- FinalProject/a.out | Bin 24584 -> 24544 bytes FinalProject/main.cpp | 29 +++++++++++++++++------------ 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/FinalProject/a.out b/FinalProject/a.out index 7c8ea3347b124492e75eae4c752431a3a4d72c2a..d32472f11df8ae5878cf6256459ac51b0f18f390 100755 GIT binary patch delta 3372 zcmbW2e{5UT701u>kF=Dgc3RRFBAN`bsZfFJwxQ`*N>cLL*Tqf^#gMj1ZPzixiW9uV z&eA_DXOys9y}B~I@dpfvu&oGbMKz6zK;?&lLP8hOw3^fq1~Q`?uaIpf+uE+MdFQ-) z>va!lf6VfE?|sfa-*e8r_x%{nONBS3T(?DfVLWO%B}v2DMw?Pq2mIH>Pla0T3ESrC zf&^ee&q_2!0qDZ>q;}p`bBzi{lvZWQ(9=;BMrRG>te`67i zGC9wRPhCvuOr8=K{z*km<#ju%nf#i58=mJKRdQi}Y7QJD%Tc8#zb=(jS$7S7=&Fnk92B>^(tf(gE97mE< zEh^6XBK0H>>%ade&OxngrJgg@Kf4uR8$0dJd(<0U=n@Jg{E31+DAKIaT8~V9oW=Pl zEHhLpl{^evH?FSKW*t~|B!OdT{mc@~tyX@zlqP$Mjl|KbKZ{N_5~Ir#cu8wL!`J%H zcys6--{8Qn4Pj#zg)}~`Wa`&e;h>#Xk4+eRsn1dno4~P2+#mgycu>^F4%DbgU11~X zAk{cljw<2Kijq!wX5P^u7f`MrEC)P7X*zkD<l6FmT@Cl&48LL(&~( z=~j~7#HAl$rzkz0=2{+x#@}wD_Q=y!f%Yi2;@DK%N8V}xNblimNU(z4>haqm|;tpDXcgw0LNfqa+ecv@y z4V2f*Ma#M92PDdtML`nX$wggs`?C=jiB@var_^7jekF<0yUVIIq^jVm?Q0CxYEpf6 z3H$rWi2~lVyPNlPzT>DJ#!K)k><`NRITuTPqp)OA$>2GYEb0dqqg1Vbl8Ug4=sL&b z-|2g}moGPY3rwET+ZN+1K~0@g34g19K^xSJk?spjo@Pa5{|Oh>dz9*ppK^TZSXzlM z5_&fQxNKl8EiyKx7}L?7-OgwHL#$yg#9kL~kPt)XZXzOq;$zYMI9tH#6F3Op26fz>u$3t+t?7U_E^ z(JlL0!*JN@c1L~`pso`8;t?6OFIm?`Djt4N9)y>**SD^?{e7zyrn@miu}=!{+AxE@ zY?79(xFj#-C0|{zC>5prg1A6U@3ib&e7d$L@Mlfy_ZxFv+l&~OpL@<3sX##VC zn*?`W%j4t3SRbAhj;shcE_h7vIl(!>8}Koqf^a=AFe11~@W+CKg73iRoZ_>Be<3)B zoTfZ0@$E+ec@eNpa6xd7;G*C+1^aH`4g5`TTyPbB28?`yw+If_@c5MAYz^FREYZ_f z1R~&7VjIA9tGM7dg6|XjiQpl@UkN@S*rt7_^~dQkTsNBDPBaHi4>yjuPjC)5hWIgq zhaoH4eMxXm@EO4ce4;7-lHh5qO1u*f4tykvc&8CRW3ZF9mOFBW10W~_FC+865d!a+ z_yZGvY~nc+Up8?CzT+fF8_gIMoQC5+e4~k1bGGt!02(;sk^cfFPMLVp#FdzdZtZe{ z7IIw0DHFeD;!7sJ4R404^?OY`U}6=SZtZdd&zS;dO?<(`3-C2~wf+VZyG^{=#O-#z z{x}c*3-SQW$$v=`KgPKnf560=iGOb5=S;i_zXEWV_F~(bsts7N0c|7N57An+^KCW$ z@8i{dXnwT&(e6Zh0IeO3o|s)|9cTfxAX*4*FWS9mJJ5Ecb)xM-3!`m9`ych{|F3%5 zpSHI;&7aKiwZ4Ef{`@^lmu%k%TkpObzw+To9KVX8y|IXU?YCU(*L~a70D(Z)zF1cP OKl6j3L0*DGG#GhqagK}}S>xJ1mK_3F+&!uNHr zUiKgceX;4%4!wJ-!*wLyJ>3;N-_`f7&#Rp8=iM)Dj%&SG0%+@?l8S{}*k4?Fb#HKrRtox#<$+O2u{ToZr z%SuGaiK@Gn5v|eAxHDdT(MQ-#JuY3;;2%}gpepCh+WI`Aj4lgjea2lJPMp~ zRXAVzis&~wzmFaPjnzf7J4CFi%W*T?_I^N-ir!uXn|>Gp=Q4W?UOi&$u@KN|bo0%q$hl-7gYE zWr8os1PwBQPb5ec4I{#^Qy3;%m)~TrK@}EDFPX*tLpUWGZRm`?qSIG})BL#fTKsv_ zt4(-){Hf{nn)JHhf>%?~YnJf(vxu8$EnR9lH4CR>(&+NXt@g5jGZUc`sm=xxwxr_@JI-++phOq<#VXTypf3N9AqDV zWAXBey*-Yjbzh!e?etUa_CR=ma<+ClWM4@y+oR#_A(~9Kt*%^&oi^F~9rp~o@ zM;rWpHyu{U(XcJt-|ycZhz^E>p`l?qkc`9phsyGy&|o;w?;j2g4uy9N4AbvzO~D=8 zBe7`6A0CK?28RRv;V`|MJhFPV?TjsX+P6Obp3UtJ_67$1(ZN7CIFhTVi{ zG7pRQK>6~Fl2LrMJ$WUsq-Q6uSL@>R6DLtQZvD0rB6Re3<{svzS#q9m=)`;!e4{c# zwamtq`6@Zza*edFW8T2*V@@zpaKIWs$Bg|)+v8%E`TvZ}qj`?wB@h2)4@Bwoh z^TunXeFPjA1_xL%#s;r4r%$U5)=h z5oZDJD`Ajf1C=?){2k^z^D$=MLRrAa%n{}a+yQ1hW)E{ujkMpzJXW(_D)wJ-V1o(4 z4x)KC%K6jG_b~r~c_(w8`6*_5vbyuZcm^9KmUl12g+Uq{Avj|42#s-hFEFQ>Ut`YU z;uZE6n6t*Bu}?W{t@#8^UKT`=AVM) zPlO~oZsFfrc-q1rm@N0!3~41mC=^hfUuEH47XG<~FIxCEd@NVT3xLJhDkd1T7<|{lDGQ&o@Fy0Yg=_Na_|+D! zbIP+-ETG+DuwF9OAs@eF#FS6e!lM>@-NMgU_<5&1OT`4Ks|}KgwO_3K1~PR*njkA6 z&B@o-)^y*6(cO^SA>V@Fh?*zp4)hx!_d)K5Y=mrv1Rz@=LC99fJ&0}1`_ ze69aizT|Jd**SiTZ-X*d{PVlXFS>f!HH`0GH?Q2+On0tYp cEwBHqY6bcITOaD*>W>VDhXc_N)*+t%0@yg}PXGV_ diff --git a/FinalProject/main.cpp b/FinalProject/main.cpp index da73ae2..9c1f057 100644 --- a/FinalProject/main.cpp +++ b/FinalProject/main.cpp @@ -14,9 +14,6 @@ double B[N][N]; double AB[N][N]; double AB_serial[N][N]; -//timing variables -double time1,time2,time3; - //Function to fill matrices at random void fill_matrices(){ srand(time(NULL)); @@ -64,17 +61,13 @@ void compute_interval(int start,int interval){ } } -int main(int argc, char** argv){ - int interval, remainder, rank, size; - MPI_Init(&argc, &argv); - MPI_Comm_rank(MCW, &rank); - MPI_Comm_size(MCW, &size); - +void multiplyMatrix(int rank, int size){ + //timing variables + double time1,time2,time3; //compute interval size //rank 0 responsible for remainder - interval = N/size; - remainder = N%size; - + int interval = N/size; + int remainder = N%size; //Record start time MPI_Barrier(MCW); time1 = MPI_Wtime(); @@ -125,6 +118,18 @@ int main(int argc, char** argv){ cout << "serial version gives:" << endl; print_matrix(AB_serial); } +} + +int main(int argc, char** argv){ + int interval, remainder, rank, size; + MPI_Init(&argc, &argv); + MPI_Comm_rank(MCW, &rank); + MPI_Comm_size(MCW, &size); + multiplyMatrix(rank, size); + + + + MPI_Finalize(); }