From cb10f695e49fd567295743a0098ad32d3ad17643 Mon Sep 17 00:00:00 2001 From: ej159 Date: Sat, 4 Nov 2017 19:10:16 +0000 Subject: [PATCH 01/22] new file: sor new file: sor.o --- sor_redblack/sor | Bin 0 -> 12880 bytes sor_redblack/sor.o | Bin 0 -> 5376 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100755 sor_redblack/sor create mode 100644 sor_redblack/sor.o diff --git a/sor_redblack/sor b/sor_redblack/sor new file mode 100755 index 0000000000000000000000000000000000000000..eb8505e00b48fdf024a64d5283b4b3252a3fd191 GIT binary patch literal 12880 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 literal 0 HcmV?d00001 diff --git a/sor_redblack/sor.o b/sor_redblack/sor.o new file mode 100644 index 0000000000000000000000000000000000000000..cb5911e635d2ae0800c5a1aeb8344754120b9f90 GIT binary patch literal 5376 zcmbtWeQaDu5#RIK%{iER=QIJgh4|Fk)DGn8a~xs^(%kb$@=kijQR_60aC-5_U2GEH zx#zpotwbB=NYq#Nfkgxo-$kWTKrJB3A4w%tUmUk3Y0|2K3N?)yAedBvCUr`2pyim~ zzFm8BXa55uz1^MP&dkot&hEZP+srLRE*F#JVt2CzPNIw*@GXo(d>CRYSUEE?f2)XT zSAJ{SB|r^(6FO`5n)b*ljE;9zGNx71#Mthux!lC8uK9}Dtkzw;%*af7jHYZ%>pU^5 zMP5!{G{&;O)X2uz^@^$0Ed5GMtH~PndYE|uJ{?0dtCgEoo=X5{H6IO)%t`W~COg#; z_YbC`$)40;BJQv5_eYb-L~@hAI<}m33`O_!_-R}hsIMcQv6e)9e>Ax#8t;qx2f6sX z?ub8@NRok3vau&Q*zbREFg4&$CH9eRh*!q~u;7rsL%&bou6LStHGu8+2G5z+UnnD! zl$n~#t1z0?)=bT6J9&b*V0<9^Bq z#rSEk1oM={w8~aY9zdPZ&+7$Vry|fnjqu+Jb+lV9o{4(H5>bPgC7hzSzW~ z@sTN>4H9at@{qB964h!>ie1~u!TWhWAab6nXv$@XG(4+kritO1(Z@dGsX1)gJa)sW zvUdAO4W0{dDO@Z(T5tyfL!jqun>URfn*uNhB^ zsh14v4dTd$14l39a*paYQU!v(z3Hv=&qYlKKM0=V0mQTbcby`-pdH*%M2k2@N?~&^ zsplK0TjvewH&0=^b(Pn!X^(Sv?B8IKuyr|Xy&1ONGObe+$5G>SUhD=>X2zAi+prtX zVAtVW8EuHK_|;jh%dDTH)h|(IFVjR<*=b-KDAV0%2qUqsEQL^f%E)9XmDm4)@_IHr z{@r6ZUUr8kZ2tskDehdZAOMBtEk$1`mW8tcxZEe ze`M=3zrJHtY3PBOLvE&2BFJg8n(d_koqo~SunPu(X-R|+?<=(~?Z=LR~ zArTTKm1eI;|ClhdXop-Cv-fVusT6cC`Vu3r$ZR3GdA1kBc^MTnoSU&`w8 zaDEb5DN}xXxWpRXE-%3E5_mwbH+~if>!q)p&F1{ngYYK;+DqSJ_z>awIfHy=34DU^6-vGFvqspr zmXQC>68H}ZU(BDUmXK#7iDaOU1dj_bghe95$-#Ik7U>(< z%Z7Re<7~wF2H0pk`XGx9CHk4%Dcq;{x%kkzZ*wbX3<8cFk+{6efaB~)ypP5p;5dB} z9|cH+E6z`!#MO0S|0ne5fj;MS+>V#VQa&hf*tuQ7I|MHM{JyZWL%{(_I}rs(9Z5W{ z;5hpd->=}viNt3VT+Le#kQ^E{*A>i%9)aO}18^PdWiH%;Om1WF|H|BT4LPr>oCD&;E_9CxY2Z&z^m zDe+nbho9Y*)DYe3c6v;!_Nx_KwSO}bPXzf-(l>8k;OKBCOT0soSL5BS;JAyW{2m3r zMZxzA9GzdmA5r90`-c?#Rz?2DOV~NC$gBH!M#0s6{Jny!>%un>@*`5tdHEgyyW!Oi zj65`y>gi>HkyO&@2jnOj-PaRHMMqOC(BG5lVS(O}5f(@$z(710p!-c_>HeG7A%UJ` zDm^?e(KnI`(tRo9i6iO0#L!SQPWI!8R5Y;lOWW6yR^MJ>COQy_C3}XVJb?eR@smDE zKmVl*5eAa)n8OvmO?Wqv@{kk|{gdJXl=mZ!4c3wW6{s!HXXpbi${G--({hm4Lsli+ zr?C0I>f_#p&3gJ&lIwp~1!*kTmwiZJ`TBE05A!O?_@#a)O=4V-e<2{>b7>?0-=Kpg z7R!GH9xtK^kr?D3^)1(z`R^qROUd_;hMYpep^)HZC)bz#Fik9`e_#oHxxVbbD)j5* z0-~Q3`c-+jNXz^_92WX{V(g;O&&Q>{#J?x>)jI)mmxTTSFbYY(CG>3?ESCSH;+>Fj zfyIA=)R*~(Kly7D#0JD=B=-;b#yyv>k3atW+9!z3iC_DpU=+%aAO8Z2>Hk6a|Foiu IVZQ!<0r^%GO8@`> literal 0 HcmV?d00001 From bb892a64a96e07acd43daa5eb63a08112f5281ef Mon Sep 17 00:00:00 2001 From: ej159 Date: Sat, 4 Nov 2017 19:23:24 +0000 Subject: [PATCH 02/22] new file: ../sor_redblack/Makefile deleted: ../sor_redblack/sor new file: ../sor_redblack/sor.c deleted: ../sor_redblack/sor.o new file: Makefile new file: sor new file: sor.c new file: sor.o --- sor_redblack/Makefile | 17 ++++++++ sor_redblack/sor | Bin 12880 -> 0 bytes sor_redblack/sor.c | 97 +++++++++++++++++++++++++++++++++++++++++ sor_redblack/sor.o | Bin 5376 -> 0 bytes sor_wavefront/Makefile | 17 ++++++++ sor_wavefront/sor | Bin 0 -> 12880 bytes sor_wavefront/sor.c | 95 ++++++++++++++++++++++++++++++++++++++++ sor_wavefront/sor.o | Bin 0 -> 5096 bytes 8 files changed, 226 insertions(+) create mode 100755 sor_redblack/Makefile delete mode 100755 sor_redblack/sor create mode 100644 sor_redblack/sor.c delete mode 100644 sor_redblack/sor.o create mode 100755 sor_wavefront/Makefile create mode 100755 sor_wavefront/sor create mode 100644 sor_wavefront/sor.c create mode 100644 sor_wavefront/sor.o diff --git a/sor_redblack/Makefile b/sor_redblack/Makefile new file mode 100755 index 0000000..731f767 --- /dev/null +++ b/sor_redblack/Makefile @@ -0,0 +1,17 @@ +#CC = /opt/rh/devtoolset-2/root/usr/bin/gcc +CC = gcc +OMP_FLAG = -fopenmp +#CFLAGS = -O2 -c ${OMP_FLAG} +CFLAGS = -O3 -c ${OMP_FLAG} +LFLAGS = -lm + +.SUFFIXES : .o .c + +.c.o: + ${CC} ${CFLAGS} -o $@ $*.c + +sor: sor.o + ${CC} ${OMP_FLAG} -o $@ $@.o ${LFLAGS} + +clean: + rm *.o sor diff --git a/sor_redblack/sor b/sor_redblack/sor deleted file mode 100755 index eb8505e00b48fdf024a64d5283b4b3252a3fd191..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12880 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 diff --git a/sor_redblack/sor.c b/sor_redblack/sor.c new file mode 100644 index 0000000..a3ef1ad --- /dev/null +++ b/sor_redblack/sor.c @@ -0,0 +1,97 @@ +#include +#include +#include + +// *** Solution of Laplace's Equation. +// *** +// *** Uxx + Uyy = 0 +// *** 0 <= x <= pi, 0 <= y <= pi +// *** U(x,pi) = sin(x), U(x,0) = U(0,y) = U(pi,y) = 0 +// *** +// *** then U(x,y) = (sinh(y)*sin(x)) / sinh(pi) +// *** +// *** Should converge with +// *** tol = 0.001 and M = 22 in 60 iterations. +// *** and with tol = 0.001 and M = 102 in 200 iterations. +// *** and with tol = 0.001 and M = 502 in 980 iterations. +// *** + +#define N 502 +#define MAX(a,b) ( ( (a)>(b) ) ? (a) : (b) ) + +double x[N][N], xnew[N][N], solution[N][N]; + +double calcerror(double g[][N], int iter); + +int main(int argc, char *argv[]){ + double tol=0.001, h, omega, error; + double pi = (double)4.0*atan((double)1.0); + int iter=0, i, j; + + h = M_PI/(double)(N-1); + + for(i=0; i= tol){ + + for(i=1; iCRYSUEE?f2)XT zSAJ{SB|r^(6FO`5n)b*ljE;9zGNx71#Mthux!lC8uK9}Dtkzw;%*af7jHYZ%>pU^5 zMP5!{G{&;O)X2uz^@^$0Ed5GMtH~PndYE|uJ{?0dtCgEoo=X5{H6IO)%t`W~COg#; z_YbC`$)40;BJQv5_eYb-L~@hAI<}m33`O_!_-R}hsIMcQv6e)9e>Ax#8t;qx2f6sX z?ub8@NRok3vau&Q*zbREFg4&$CH9eRh*!q~u;7rsL%&bou6LStHGu8+2G5z+UnnD! zl$n~#t1z0?)=bT6J9&b*V0<9^Bq z#rSEk1oM={w8~aY9zdPZ&+7$Vry|fnjqu+Jb+lV9o{4(H5>bPgC7hzSzW~ z@sTN>4H9at@{qB964h!>ie1~u!TWhWAab6nXv$@XG(4+kritO1(Z@dGsX1)gJa)sW zvUdAO4W0{dDO@Z(T5tyfL!jqun>URfn*uNhB^ zsh14v4dTd$14l39a*paYQU!v(z3Hv=&qYlKKM0=V0mQTbcby`-pdH*%M2k2@N?~&^ zsplK0TjvewH&0=^b(Pn!X^(Sv?B8IKuyr|Xy&1ONGObe+$5G>SUhD=>X2zAi+prtX zVAtVW8EuHK_|;jh%dDTH)h|(IFVjR<*=b-KDAV0%2qUqsEQL^f%E)9XmDm4)@_IHr z{@r6ZUUr8kZ2tskDehdZAOMBtEk$1`mW8tcxZEe ze`M=3zrJHtY3PBOLvE&2BFJg8n(d_koqo~SunPu(X-R|+?<=(~?Z=LR~ zArTTKm1eI;|ClhdXop-Cv-fVusT6cC`Vu3r$ZR3GdA1kBc^MTnoSU&`w8 zaDEb5DN}xXxWpRXE-%3E5_mwbH+~if>!q)p&F1{ngYYK;+DqSJ_z>awIfHy=34DU^6-vGFvqspr zmXQC>68H}ZU(BDUmXK#7iDaOU1dj_bghe95$-#Ik7U>(< z%Z7Re<7~wF2H0pk`XGx9CHk4%Dcq;{x%kkzZ*wbX3<8cFk+{6efaB~)ypP5p;5dB} z9|cH+E6z`!#MO0S|0ne5fj;MS+>V#VQa&hf*tuQ7I|MHM{JyZWL%{(_I}rs(9Z5W{ z;5hpd->=}viNt3VT+Le#kQ^E{*A>i%9)aO}18^PdWiH%;Om1WF|H|BT4LPr>oCD&;E_9CxY2Z&z^m zDe+nbho9Y*)DYe3c6v;!_Nx_KwSO}bPXzf-(l>8k;OKBCOT0soSL5BS;JAyW{2m3r zMZxzA9GzdmA5r90`-c?#Rz?2DOV~NC$gBH!M#0s6{Jny!>%un>@*`5tdHEgyyW!Oi zj65`y>gi>HkyO&@2jnOj-PaRHMMqOC(BG5lVS(O}5f(@$z(710p!-c_>HeG7A%UJ` zDm^?e(KnI`(tRo9i6iO0#L!SQPWI!8R5Y;lOWW6yR^MJ>COQy_C3}XVJb?eR@smDE zKmVl*5eAa)n8OvmO?Wqv@{kk|{gdJXl=mZ!4c3wW6{s!HXXpbi${G--({hm4Lsli+ zr?C0I>f_#p&3gJ&lIwp~1!*kTmwiZJ`TBE05A!O?_@#a)O=4V-e<2{>b7>?0-=Kpg z7R!GH9xtK^kr?D3^)1(z`R^qROUd_;hMYpep^)HZC)bz#Fik9`e_#oHxxVbbD)j5* z0-~Q3`c-+jNXz^_92WX{V(g;O&&Q>{#J?x>)jI)mmxTTSFbYY(CG>3?ESCSH;+>Fj zfyIA=)R*~(Kly7D#0JD=B=-;b#yyv>k3atW+9!z3iC_DpU=+%aAO8Z2>Hk6a|Foiu IVZQ!<0r^%GO8@`> diff --git a/sor_wavefront/Makefile b/sor_wavefront/Makefile new file mode 100755 index 0000000..731f767 --- /dev/null +++ b/sor_wavefront/Makefile @@ -0,0 +1,17 @@ +#CC = /opt/rh/devtoolset-2/root/usr/bin/gcc +CC = gcc +OMP_FLAG = -fopenmp +#CFLAGS = -O2 -c ${OMP_FLAG} +CFLAGS = -O3 -c ${OMP_FLAG} +LFLAGS = -lm + +.SUFFIXES : .o .c + +.c.o: + ${CC} ${CFLAGS} -o $@ $*.c + +sor: sor.o + ${CC} ${OMP_FLAG} -o $@ $@.o ${LFLAGS} + +clean: + rm *.o sor diff --git a/sor_wavefront/sor b/sor_wavefront/sor new file mode 100755 index 0000000000000000000000000000000000000000..bbb67d9a7395bf2c53b465b1235f451353d4cd1d GIT binary patch literal 12880 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 VWx)z$is>&~XGzSkprVEP{{ucJyCeVr literal 0 HcmV?d00001 diff --git a/sor_wavefront/sor.c b/sor_wavefront/sor.c new file mode 100644 index 0000000..383d6e4 --- /dev/null +++ b/sor_wavefront/sor.c @@ -0,0 +1,95 @@ +#include +#include +#include + +// *** Solution of Laplace's Equation. +// *** +// *** Uxx + Uyy = 0 +// *** 0 <= x <= pi, 0 <= y <= pi +// *** U(x,pi) = sin(x), U(x,0) = U(0,y) = U(pi,y) = 0 +// *** +// *** then U(x,y) = (sinh(y)*sin(x)) / sinh(pi) +// *** +// *** Should converge with +// *** tol = 0.001 and M = 22 in 60 iterations. +// *** and with tol = 0.001 and M = 102 in 200 iterations. +// *** and with tol = 0.001 and M = 502 in 980 iterations. +// *** + +#define N 502 +#define MAX(a,b) ( ( (a)>(b) ) ? (a) : (b) ) + +double x[N][N], xnew[N][N], solution[N][N]; + +double calcerror(double g[][N], int iter); + +int main(int argc, char *argv[]){ + double tol=0.001, h, omega, error; + double pi = (double)4.0*atan((double)1.0); + int iter=0, i, j; + + h = M_PI/(double)(N-1); + + for(i=0; i= tol){ + + for(i=1; i$IJ}PH8to$MU6fm{X`5w<${oUG1blzL~xy)tZh}v~!)rZlWf3 zaO^FeV2f+5nhAy=1R5}*Nn@f&XiSJnEl3bIVd?0orcOedroj+Xp)k?bMP(IJ%=_H; zE;+uo|A8lc@7{gxy?5`udw2JJYLB_M!Qo(%9PB~1Jd!A5!`d<*=4_a)V@=G+zwb+E z*IqM=D}Wlso#+bXo7$5bz@6)FW=w0QiQKX4mC8&xqIq4ctQ~Q!GV-%-qqCII`p%cN z=!NWiMy~WSEo06qrEHjcy>McWhJe^LZcj_&P)vR|cemtfV-xl1~Mq|dhQ_08T>ErR_U|b*J;!C;{ zdLor31CwOqczR?=e|#h}tY=cAWEa%$;~6;+`n&8XxTRnD~S{r&s{=GahqoGdF0M0 zKBH4!DAtc-C7R`_NodWxk@y+N5O|5ykGT`t`uDWvFuSQ;p$s3MGxFzk>gToAu6GmK zc}$DKQpiv2N%x_RT1M&f8OLXGWp4zwjnMHFu$1 zd#CZQw|ZLVOvg3TaV0TR*7|pASfuX`s))c_l-+lLc?j#L%{zk1nRMklT1&rD;z>GjfBC>@ zy=}B!%9RjQ>8jJ%Ib;5*LRr+F?y6KOd6(Z|Rle8Sp+cYEM~e^n17?9IrD@c!6Oi$H z>2$dKBCXdd=CqYFnlPuil9wbY;R_TasXx(>8KDucd@Vn>$TymAM%7KhZBDPJ;_|8j zk+Y}>UIELu3YVpuq$4!@#iNlUk)x4EBhk6(cE8wocnyDt{63Rnq2y8k-l}4N%h(K> zLm;F>_m{Z}^eV-uKm;um4eu+r_xDi|y;~en1Z#8ptLyS^fUt zwqV^=9u(4Hm+Ueo*_qp-!0~*(eL)?4W~SAlh}5FZ$%JY z9`83Ax;(zGJG(r3(beS%d~HR<({_5L;pxb)ddM^Ge8sui)6wl|i+BPgLZYP7<#9*W z2s1T17S6PM+;rIIowg2`5`wg#mD~Rdw*jI{5PYp$a(JT6MU@ zI~hMjOJgwBiq-Zl3)TKNaqa4L?-aP3_sh*j&NecA8RDEZZe(pXyoHY&nb(GI=Ht~> z_*Q}YZ1PqOt*%=40U;l-$%h4Q_h+xbJ8bf(Q^r;>E57B)hdEnsf2&KfpXApm^~TQv zVFUCvv2sPH9)uSgbb`KG_!!~#oIyTc2cIE)olFHN1jcj z(!oI%G`mA+wxMZ9vjfd%(AyP) z-vCGiT+Q3vxNwPptNwpN;PC%m`lOxKI`TUe`Av%aLyG)I6#S%u`w5r%oKkS?^r;INCkRN|A0yz1v^1@|fPMFsz;fNf@N9a0{a0-}FI{1V7} z4R;IHk^cjzEzl?F11`1`5T}chvGwA3EupvvVe^00$9)N#+vrnCuKy_&BwnsB`>??5 z`X2~A%&R2hm->A)3BD@-LO{O5(uVy_@1==a`8U>B8uI)j|EO=dzRdpsVOUDOW5jYA z7r%O8F_xWNU-siPQA_{jI{I>b*?&dox5))We_iPNZMaCw(mtFP`Zh7P-kwk)AoZpE z_l3TCCt%Je^rtXTNct_I?+{Zf|1)^hh-6&IKi+$(FY^z7>}wOmo)zoQh{8s`anITH i@uzODeS%m(oWC;|C}fWxZ+I>JS>gYSiY{2Y{(k_Ebg>Em literal 0 HcmV?d00001 From f0b7a65077e10b7cb5473b5763563fde13066dfb Mon Sep 17 00:00:00 2001 From: ej159 Date: Sat, 4 Nov 2017 19:31:50 +0000 Subject: [PATCH 03/22] new file: sor_redblack/sor modified: sor_redblack/sor.c new file: sor_redblack/sor.o --- sor_redblack/sor | Bin 0 -> 12880 bytes sor_redblack/sor.c | 19 +++++++++++++------ sor_redblack/sor.o | Bin 0 -> 5424 bytes 3 files changed, 13 insertions(+), 6 deletions(-) create mode 100755 sor_redblack/sor create mode 100644 sor_redblack/sor.o diff --git a/sor_redblack/sor b/sor_redblack/sor new file mode 100755 index 0000000000000000000000000000000000000000..8cc316b06a25ac45d57cab8551d7ceb0bb25874a GIT binary patch literal 12880 zcmeHNeQ;CPmA|rV5Wz@-;Kn2&ye4*mbS-SY3Y#%l#)hYk9N5HAn8iGVCE4285|y4B z!)7-&4xK1eiQCQ0X4}#s+ucsmrd{@H%FbpJJ0>LAd@R{%I%#OTv`tbw35^R43rTD3 z@7#Bf{3Oe5XLtYf)x3A^`Q3BQJ@?!Xz5Cw1w>7x6%;6B6oMMw8ZfL%RG^qmbCshWd zNo)}Fa9=8J6m!5=NX#m4vIt78bVZqF>QcB9v>exlG7BiCH!3-%>>*LAZ>Ci5wMv)@ zp-F)B$k+a*k_FXdhUt*@>>qOj+-bphtfGzDb2i+@b25DK7oWf2I^iN~?Ne2iC7$)f2AkiN(`> zb$uJw*R5acOC@}(WxL5f$!@!SCy5K{Z)HlBFIE_p?|!)@Z9YBt)t`R+NVGM3@@nH3 z|Lg~(%NMf0ccNjdm5|;8Y*7jP;TiDdz_k+cJ7$pYn*pcRm#TL?a1B>+Itt+CVvu;m zyO+YdUKoM)HX|HKM!I4tGm>m?+tQPWN7_RNdLqIwx_T3FBV~q?reRp3B?VKlc(=e! zM0*oqGJeqPPDVmus-m9wPF0z4Fd2)RQKPf_E?DpE3mMT^Jk%3AOqG$Gs;oBzW7~p( z<}Jo*-x}ZAe15fWoor8;8Uy8W9ME{6FRe3QJ#4yi@!GcuEfW zv*d}l%FFWQJfC?U4powr5cjKj%lHn3yEILfGtT_$%PgGcltW5bxAQif+dw5_Hk{`q z;S)BT>mdA!4Mzj>>6F6f0^#{Wg~K-7zWzOL!|n6`tPLkyobT>7z!3rjSiA00N! za%c6y)2>l27P)m_LQ$^vVcb2-nvf&Do65(}=a6b2Af7@pepd2Fh$mOahb4cQcnZz< zNy(FbbO^jm{$2i^!E9ajy-mX3zVpst=0d}{sOSA*_@%vjU37@@7d^L*Ui9p#7>46x z--40BQO8Bk!d9UVJbTh3#K1?FQGfb-dbX+&b}o9nRmUM3^(5+gL4(=9-anDc>DdRg z(VKv-SlVTkuGEPj*Pd&%?mNYt}uR39AHKu>#CHl2@p z4vzdH>Y02Qg~L>+3MTZ8XVawK)E;=S8JlR;W8R^uHoE8 zzvtE;qiAo9H|p~&yHCc$-rlq5z_G7P=5jDuI|>HEEj2C}4MWAV;`G?pWZ@nO?yESd zM1CZ6L`YX*`L=)X3>XlM^oU~sWNuek%71Q2c8_*(j;o^AZ- zjZLEAa>Kc?)tDAhkFTN(UZXMRJx3B4HG%9CHGThh6LsR!2@Gt|Dx$$`#b@8yM9#i( zyhA)iEGVTm)d>4UE{~H?7_%ebhg8^pU^I!_wZ5Fos z8ESpyux#l(Zut9XV>y-VZgFwD&*a-ZQq=Ciz_8WQXDl*8L?4jcfUVs;o&(2P(L?vt zxPqBqsF7newY&yJXzP77R%6cxtWfGJujnh!RLHiDIome=Ff&4}{Vq)mIq$s-#;}@T zShd$wTPp+2An@TD*I36#G>6|mhj4(!9YPpnSU$WEI$UN(!PPzl1D?UheQMrq~^|0$XWa@^ZQT@b~psWlA$afg4ezr(+86a#(H z>zhP|=6AdFZZEvs3}qVf9@wNIFTJw7^m+!Dz@PEEFlKD4!BE46K<3qbdgiD4;F}XW z+A$42gb_WvU{I3ACqINj)h8Bf;#Zz!EmYDN0J9U5+YhR5yrO5`GM8Y9|L|I{SmGCS z)8QX&xdHlmt(Z-EuV{#?9w-4 zHE+kXHl9zvsSl{pd$k&W4C$B9B_n9~w^996@1g^P=(-v>ita)dJq-_5jKEX)=l=}; z!7@4jPCxplc9U0zzK-affy`wrN5PeE$^Y1q-#Et}x`Kgn^n$51oa1-}Gw%d5ms?;V zxA=#0+1~i0^gHw)%wx%Kj1Eop&!tg;)gAxYkU$pCB4uKGT#MnsFJ#6NajiD2MUu%x zvQevzUL&^mM!G^8^7X#e_29*pMErA+WLG5K8PQ@=IwUR<^L?+$G)rhl>RiGRAKYF^W4-%fV? zs(N|TuOI*Af3_XivDvceZQ6C)@&_)x^k0f!tN7ez#|_Tg5O#roZgKFx(ZQg@pr=63 zf{uYs{5qH04=V8Qcot*`w4R)V<9$StXuma?JG-ej~2?VZ*k? zok3oR8YTbwwD^1|)i>aPB@Xa3!;ezE!b+iqP`b2GtYm;4s+(f-^=_+DHqF!_&B zd5c>sJK}bctcmM9>@KDUyk@ue!Lnv|b=DbhYhNh$yH|X^!tbshoYUss;XGM>jk|t} zdxhVvK?I`BZkM07KC;dyL3hJ`ga8yiM0Or@wz{=!d9!=P7bmcrRI8-dvf%tl}~0<#gAjlgUKW+N~gf!PSmMqoAq|HlaM z_X++Up|-2}Zw}1wQ}r-U-%Kc}&lrN;T3}9*)P0f zl6+K^<28}wxgE;<{~O`&%*6&jp#r~N(XEQ^;tnZR_#Hfd_u95)%O7ehb{Ve#N*Be!+wR}@m7e> z$&brIe6HaBD#Tra`?(OGCwM#+;@9NIT_HX{KmQ8xO5rWhA5P5D{Uvd?I9L+*LK3gU9$Eg!F&62vWqi|q5d&N#h5b%^P4{u=O7{?F7ddRgs2KmLK2En9RZ zJ5*ZA{=Z7KYp41D5^#r@-oLLYdHx@fEN){mGkv^$1l&<#JS;>27a=|;)VSqo|8d}& zv{iUJF7fH(rxEx<^h=XwY0;-%N?U<@G2XlimmqGp;Uf9{KiecBmcIe=i^TN#)h2QH zss3Q)yIN>|M&i;$!7T=SVcGOJ+%tpxSAdhB7+3{%9-G0=lfVllEwvY={B?rYZ#MQi z;i!Sv2laO)eh!@GMsd0-akr>f{UYBTL+HD}y@=b1*gXX*k1BaSC-zBIIu9L6^2PD5 z0#5zT>zjPX4V~*HUSL`>YiGb)fm1*Bf1^XnaX)^V@UrRszDwfM`{hq&!0!dFO?OB9 z74Vx&;7;I+M2Yo3l}P$JMQ74XndxX0*{KsdhS_U$(wUtUj?jb?MpsYbK&ZzEn~7w~ z2&MZ(XQKCDPsEIbeVgkjpx#Vf3 zrY1gSL`RDZLp8?uTnOQd#Nlu8xujwZGHM-LvZ+VY@lMt+JVa%LQwgIx6c5t@tH5?> zhGTIfor;9%1XXvj^?W-i?5N;CDy1ruXQT|}dxb9G@Tlm6<;;?5?GijCJV`PeYR*EUcKv^=<6CwqbJJ@3ipNyXm zSzlKItQqOUorXPx5^`YpBHe1BcZXqwIZM?V@sr~pZ9^hk5b~|c4X+0i}g>b4ATiENRPP`C)Vfv*)CwTmtuY1 zXEJ>XW%fii>}eku+Ox4fKld}`{UrO(a!l`nKJ5XS?^gk0D!=(chWsZP_8(c94&zQL ztk3%hro&Qd>I^gMbNla8`prs?_qj~>+w?z%e6jw6z$hlXjo|kJOnLvT%t&83Pc(ze zuFv}yrrdtk;m1&>4;Sh4K8Gp$%lgbSJzk{G&kIaf)8Muxu9u;&BV+fU--9sa_W>-g zx|dn;xYFnT~a0PPvrCSd`_OnC+l$>AAv44 zk@fk#(1~RLk@m~`)Q$C-zJnsWe*XDdvvjx~w!nJKQ~wgi^=q0Yi*Ue4rvAWQE2HjO z0Vl)<;Hm!lBAoSaDZ)vXlAZF{vr4S{2F;?H8vpb^Q-_QF=kbXtDnP01UVc(*OVf literal 0 HcmV?d00001 diff --git a/sor_redblack/sor.c b/sor_redblack/sor.c index a3ef1ad..d557c23 100644 --- a/sor_redblack/sor.c +++ b/sor_redblack/sor.c @@ -56,18 +56,25 @@ int main(int argc, char *argv[]){ error = calcerror(x, iter); while(error >= tol){ - + //red for(i=1; i$JgNr*tf1rTLCIEa|8hXDw@ny4d;Ael2}Nsx2LkgN1x})j9d#APK0frZRji&F>3=jt zwD*2#W@~^N+07uC{1xqy8!&ohpph}HktR|PzQ3?Ao%d@lJIiZ>_T@%;#$mMQB3l3P zycT>l`Hqpw9o5K2>cfWFwJiBsL~G6&*^Mys3;1*lU0$m<-H!7B^O}o>MtY7sXwJ>{ zMfI^nI37xj#iDxCh#ro|WAV*;Q)C6}8xQXa=`?Qjw6zk?SXV6im2iAlI655G$GG^S z?t~tR#mT@V+1M2y8_^#cON{D?*dDSC@ur9e7OdvK-@o0=t_S1q-+rH&dDnZE@-ahs z(J$T@nZ`J;t((njJ9vV)c)O`*kI}Ojs>*GfIugF=J{DEPG+2g%RL7nxUrLA1|XPO#x zyCNQ~@iDkTZk36bOg3SXguC4iGCD#kTJxOP#T^`cfaeDyf1;|ItujPfUi7C=62mj) zPhCf4@5Usyo39R&Oe)XdCp%*?rfW$KFY zyZ}!bnco>T2$wKgfB&N9HqrzD+S~qS@~9|p?^W+v?t4V@a33g`dF?=~n$f~X+><|9 zi`wMdM3ir)I3L2lk z4`imkOL3W*KLk?TtkLqJ(Q+o0dxp^51zVu~A|*QcGYVoeZ1ZFg!^?ST+=-=eAIE;y z&G1NTW#I2ojCRZnbUS3+Cl}++6~!G$%~+8hw}`lLIG0l5mh~K%>Y*L_n%iM!E{V#q zLbbbTiei1tZ3R0Yuu^HXTr*lu*6>)*+j`son8_j9pW7sNHOFaouk%MTK za#6ZPb??lVcKQeXJN*yL%6lB=yPtbExaeJ>%zV(J$-O0)pfVtynQGcO(gZZJZ+xV^_!BMyR*gOxrNodC*Stn%c>?_ zRX5iycTAI`z}JYmDbQ}GUVXsn=%(QYfv?6EbUIz%tnPF+WNiVb{tdg|+5C8o-`Sd8 z*6ZA6J8ECyZ0&M3`<*(8kZ7mV;a@4#%M#?s&Mq&>r4+Q4eW8(0WVE!|c$UlIymm?^ zY;0Kx2EfLaSHNp4;DvWm6|k{7m0cX$7(W_|JOfgrT*7*?b3BWA#ew$h3;lP ztYvxu;vv+GS1iwSz4V)G_t9DkDtb4bRZ!U=Pkx$^o{%jHW zCQb{T$%i$}im!m*%ZHWrx3nY&NPd-4Z~P1pHbh@N%P;6e(eTp*Z8v@8@NvS6a|Zcz z1$>(DRZ6|_Ge+2x7380)fIm%mIe(t3AkQXZanCUGm|b3UZRj?j+lcOS=a?%;!M`$3D)zZk?~oMY#0mUkZ-BmUuM+q6UJuOyX-496wMc?pAQz znG(NU!Qsgfv0rTp4*#Y6+X@c(mxcV_6&&&s@30X=4b!SWrh=>fY`}(4gZz#3$#we# z4uZQ{;z>nb%|lwjaYsw}LkfPAfoj*X9pqhvoCON2dJzp#Bh zX$|idX2PSvNIWzi=6?R4olg2VD#b6Lk1#a(zFA!9n}zojDfdYML63Br{cdR3S zZ=kl&K0_aHQPzNXJ1qxA6tZf=Jqw%vt3K{y*leRuZF2qFRglJVeMx-+E7rdz^f0eB z8Nbx;r%8-U@-GDBJ1=b%|7Pf;iE{aG#iK^;ut*H@kNTGD%lr=!hNa{?NkiTq6b|_W zFNs`V(!DfMPXCz-`f`0q@h(BXRW2atywG1oUYj7cU#veZ_7C~SJy)!ce*(p| fPY`p7^LH4G(u(89Z-jFC4lGFRd5bLe#rppR{$3jM literal 0 HcmV?d00001 From 473a46980346b36677ed36e3cf7ad8bd61eae7fc Mon Sep 17 00:00:00 2001 From: ej159 Date: Sun, 5 Nov 2017 15:39:17 +0000 Subject: [PATCH 04/22] modified: sor_convergence/sor_static_wavefront/Makefile new file: sor_convergence/sor_static_wavefront/sor_wavefront new file: sor_convergence/sor_static_wavefront/sor_wavefront.o new file: sor_original/Makefile new file: sor_original/sor new file: sor_original/sor.c new file: sor_original/sor.o modified: sor_redblack/sor modified: sor_redblack/sor.c modified: sor_redblack/sor.o new file: sor_redblack_OpenMP/Makefile new file: sor_redblack_OpenMP/sor new file: sor_redblack_OpenMP/sor.c new file: sor_redblack_OpenMP/sor.o --- sor_convergence/sor_static_wavefront/Makefile | 6 +- .../sor_static_wavefront/sor_wavefront | Bin 0 -> 12984 bytes .../sor_static_wavefront/sor_wavefront.o | Bin 0 -> 7304 bytes sor_original/Makefile | 17 +++ sor_original/sor | Bin 0 -> 12880 bytes sor_original/sor.c | 97 +++++++++++++ sor_original/sor.o | Bin 0 -> 5192 bytes sor_redblack/sor | Bin 12880 -> 12928 bytes sor_redblack/sor.c | 48 ++++--- sor_redblack/sor.o | Bin 5424 -> 5736 bytes sor_redblack_OpenMP/Makefile | 17 +++ sor_redblack_OpenMP/sor | Bin 0 -> 13288 bytes sor_redblack_OpenMP/sor.c | 127 ++++++++++++++++++ sor_redblack_OpenMP/sor.o | Bin 0 -> 7488 bytes 14 files changed, 294 insertions(+), 18 deletions(-) create mode 100755 sor_convergence/sor_static_wavefront/sor_wavefront create mode 100644 sor_convergence/sor_static_wavefront/sor_wavefront.o create mode 100755 sor_original/Makefile create mode 100755 sor_original/sor create mode 100644 sor_original/sor.c create mode 100644 sor_original/sor.o create mode 100755 sor_redblack_OpenMP/Makefile create mode 100755 sor_redblack_OpenMP/sor create mode 100644 sor_redblack_OpenMP/sor.c create mode 100644 sor_redblack_OpenMP/sor.o diff --git a/sor_convergence/sor_static_wavefront/Makefile b/sor_convergence/sor_static_wavefront/Makefile index b8c64b0..0f6a026 100755 --- a/sor_convergence/sor_static_wavefront/Makefile +++ b/sor_convergence/sor_static_wavefront/Makefile @@ -1,7 +1,7 @@ -CC = /opt/rh/devtoolset-2/root/usr/bin/gcc -#CC = gcc +#CC = /opt/rh/devtoolset-2/root/usr/bin/gcc +CC = gcc OMP_FLAG = -fopenmp -CFLAGS = -O2 -c ${OMP_FLAG} +CFLAGS = -O3 -c ${OMP_FLAG} LFLAGS = -lm .SUFFIXES : .o .c diff --git a/sor_convergence/sor_static_wavefront/sor_wavefront b/sor_convergence/sor_static_wavefront/sor_wavefront new file mode 100755 index 0000000000000000000000000000000000000000..a8e41a1786f277f84561ab38e7bc6471fad44d00 GIT binary patch literal 12984 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 Bqdout literal 0 HcmV?d00001 diff --git a/sor_original/Makefile b/sor_original/Makefile new file mode 100755 index 0000000..731f767 --- /dev/null +++ b/sor_original/Makefile @@ -0,0 +1,17 @@ +#CC = /opt/rh/devtoolset-2/root/usr/bin/gcc +CC = gcc +OMP_FLAG = -fopenmp +#CFLAGS = -O2 -c ${OMP_FLAG} +CFLAGS = -O3 -c ${OMP_FLAG} +LFLAGS = -lm + +.SUFFIXES : .o .c + +.c.o: + ${CC} ${CFLAGS} -o $@ $*.c + +sor: sor.o + ${CC} ${OMP_FLAG} -o $@ $@.o ${LFLAGS} + +clean: + rm *.o sor diff --git a/sor_original/sor b/sor_original/sor new file mode 100755 index 0000000000000000000000000000000000000000..5f03efc26062b241a18783a94169945191123ac1 GIT binary patch literal 12880 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 literal 0 HcmV?d00001 diff --git a/sor_original/sor.c b/sor_original/sor.c new file mode 100644 index 0000000..a3ef1ad --- /dev/null +++ b/sor_original/sor.c @@ -0,0 +1,97 @@ +#include +#include +#include + +// *** Solution of Laplace's Equation. +// *** +// *** Uxx + Uyy = 0 +// *** 0 <= x <= pi, 0 <= y <= pi +// *** U(x,pi) = sin(x), U(x,0) = U(0,y) = U(pi,y) = 0 +// *** +// *** then U(x,y) = (sinh(y)*sin(x)) / sinh(pi) +// *** +// *** Should converge with +// *** tol = 0.001 and M = 22 in 60 iterations. +// *** and with tol = 0.001 and M = 102 in 200 iterations. +// *** and with tol = 0.001 and M = 502 in 980 iterations. +// *** + +#define N 502 +#define MAX(a,b) ( ( (a)>(b) ) ? (a) : (b) ) + +double x[N][N], xnew[N][N], solution[N][N]; + +double calcerror(double g[][N], int iter); + +int main(int argc, char *argv[]){ + double tol=0.001, h, omega, error; + double pi = (double)4.0*atan((double)1.0); + int iter=0, i, j; + + h = M_PI/(double)(N-1); + + for(i=0; i= tol){ + + for(i=1; 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 KZkB7O{(k{(U%+kv literal 0 HcmV?d00001 diff --git a/sor_redblack/sor b/sor_redblack/sor index 8cc316b06a25ac45d57cab8551d7ceb0bb25874a..2caa468cd69e01fdbc3b7a5cecdb4c1b98757464 100755 GIT binary patch delta 3658 zcmZ`+3vd(18QwcdAPZS13C!69TPG|V1GZ$5F~m%5EY~TgMg(U91?GsTb{gm_lfVR*J{YE*$e2f`4H+{nO#)L2v}t4>!MMetCUE_Bb;moa zx%>Bj?EdfFQ-4!ub638r(N6fN%K}ojYsxP}iYtp5kPw9v1iVM#SzX9cK!r~X_?DQZ zKSf=F?CsE{I&>)mD!P*5+yTwM~TU0Q~G$ZBnlRs&!qPe^aYJNHAHk zs=0l|mi9I4nyJOSGB$5+H8}*_UY)ji z0>jPZBycta{>#cMz_WbQ1N`Nnv;EkZRaa69jUxFti{Fj1RmU51vy(PGt_IziOGnK0 zf|=G>%)p>W;TTI@4qa!Fb8Q^Yz7Eh`pd8X=MuTXgKeov9eTzN!kM~hW(~}lC zW+-E8)x;I6y4~_pfkM=6>2^`;R})9Aec5gC)~Y6erIk#?Tk_Ol#_-jQKX6{dC~-5K zRnQEHJ|D^3Ecsol{*O;b~^DSbttmKC1Ja;ttqKO40! z7D<&n3!|S74ny17;MJj!H1!-5EcIDi{F3KYZn$p9F=j|5mS?u#VFo)(ih)4b>;tC> zE2OfcnVp=sn9-J7+)N+@i7RU2n4rdQb8FuXC5{W>_|XHBOh_nxhZ8&1lx5%kWh9cy z`}uzQ`RFo}nmk7*S!c&KoT(+j;o#K_3vG+!x2#5~K-YQcm6wo>Nb09;2aA~Jg$u!8 z5nxbF)no>00jdP-8cv=G9b&1Bq;|5ng_Aeb5Q}U2d%1#m&gw1to%6^P_ zKNJf|PV*6LYsYI*gY70%55VEeaBPto*#XTuBrRp(VG_N};f7M~xq0 zT0{75d=k#M(=$=30L<^+qP&iP2Mc!UtpF(>O4vEy_sx9N9MbHB%+^uTtFI$app<-y&X*FqZ);k{j72E4FHnul9N&9- zFfIRt47WPtf(Z7o^ne10SIOf@vK7O93B)*?_jG3$m^O8or`O&h31mFWje z@M<`DioQPPiD@rldo8bJtU~_FbC11~Ko+1UHf3PnR|84U?X#!lqM&o%83U=%O| zm_}@(fc?m4KcnLqt3)vS@6dCOslpmB(iQ`n(=-yCw3ea{kdR3=7+9gU`2^mme1D5D=s zbA-l&Ugtu)&A3i+eZE%c4}BL~u)zw94R+PDp?@clD7!^5^h=mDIkI>`7Le6+pwJ_< z(VU`ykfzl|9^nFAToiD1>sKl2kB<)egCdVR!z{+YDb7ckh5o7NS??iq4;x5lD}$&t zK5)@+d@rr`tP(ot9*^vOLpSIbI{d8;kL&Pn^pr<~DW?=!*h>X(p2PC!{W&oKuXq`QDM(d*zjNgIPtx=0tA{^4OFZt~G%>0=QT@1#7_IIQh8`L#fwj2O=67$eD z0W&ulgZ?}C^~p+EX5I?bSnL z!145Yd7#i}I|H`q9x$g(w5FoiR;KqW`gCo@442Wq2JE0c6#*LcJLzCWrK?j9mI0$Q z=nv$a*Qw{}8vjh!ppF@EBkl1AY{sF|M0I2+XVnVQA!&<)c({|7mNb1VP= delta 3469 zcmZ`+4{Q_H8Gmo@eee73o?}l;?M;>0Q-z3*M|42aVC^fRfTU9l5t1o`gJ&N6V&#+s zl<957thh&Hg$NZdGP5E@e6#%b3z&SJmv%^4hRA65Z)tfF&~3{R^zK&Db5N#c%!NN z>ttgd3G``#8KQH-<$(GTAjv}jetoWe`3RZN%LcE16`=+62A(yQv;Y(793H(v2pB9S z7M(;Xt3EkyB!lrgtoYmJ%`V~u8#%X3rzF!R{F>PrWXgnnXN44eSRR)Q{zJgwaZ#Sr zWnPvc^!5sA9&XNa;*ELMsFJv4Q3lMnT{2RRW%_t+N=b}c#+KJulQ*O9FuQ4dsAe-Al8j7h&#<0h%9#=tR%*`1<~Gyl=#H3h*13QA~?{0 zO;H`qU}r&;9A`nbS3Ka`4;WEj?3vdzMLi*pRRFi9{7GHfxCuY=(Eg~R`aUX?QCn~k zHoFnLu@DmLJ_7q)Ua7ZUbU#ZyUFpXZoJ;P^Jxzn1s>Xl-S zyU}HGSncWwvTayR5ok|dizKgvlOMDv-xb~H643xut$B%Au0N!x)(Mh?C}c)5je}Y1 z6_|Fm7T$r)=OFHzl$?MaJ6lCaMArl`M}f+Mz-}5-5*bcu{ueo=^EB!!bocnU4r4m# zhk1{viN_8>A|h&4c8)mio4(ME+M~(8Mv^&FhRT2?tp3=dBqtR!S*s*Ixf4znDg#O` zoE&%oIFaOs;W)Lc)GjHt@5i%g;AZE9@P?b8DZlFfJw(y`9;A_`1Bk}Afw({NzU9bi z;G;BtYlg;}&qDtcqBMxeP>gBEnYx05&qJ7q@hdUG2v#HeHQEDg6G}@fdzTr>FEQ$9bDPY<+Qc(`t5lVKe zw@mLWQt3eN^;&Y>cQuW40VD)Sc!ClX8nmC(<=reD=KFeqtU3i2#Kf<^peW|S?IlgiDX__;d8h<$EbreNFP15Q z6kvelTEp*)b=+~hB>K(Q7d5Q|`=rVp2$rqtZ5GH4>Vw}5 ztSlv8i_JFar~GDHnJR>B@<~(3R`U~c$QDTCwc9#`Vf>2Z;X3g<(iSc@Vz=+Gjs)x$ z&d$DU9mW@q8-%2sEH4d`4=5Q1ACZ?48AUpvmyC(apksKp+zr8S6@Km<4pz9i%lNSh zzddbyyU1sSj2=8#;Vw=Y*5GAM$CL?=R(#VFgFYq$PUiqYwg^4}lv zyr62_SD5MtbV5{vAZ3>}CcR4y5g+$>oqW0oANE#rXYr8tJHf9&y%r;J`PA8xcFMP* zwBa}{P!R6GT$R(c52SV;Qe)f_*{UN%%ALW3pmXj4I&b1^l{5G*l{%3{mf2#8*9m{c zVHkCTJ|UK)OCT+VbOwy0dcs(H5%>}+L+O1-?z1*z=(FqeT0@!-^+)t2S-wx-0eoWr zpiyqL{Xk!rWVL8hKz6E*=lFwb|U>h`T4;E_)*}? za0xEqevU(HoCN~V#i$T^bL6{gc5x%uYR>Z`v9&VC&m;Wex_bLLc=?jS@G_oV=ePG7 z*pg}Y`cnFrfyeuOl?7AAI%w9@z9u{CVTL_;*5@x^?}>RcURB>@my8rK z?7(~K{aC7(aJoKVX9;B3fM@Id1+4R4D#EM$O?K9B4Cldw6Cd)I6|lNW+wf_BQ$fxs zvz!f2`V6#W46L`a#$f+)Bs>)O@?Dj7>#;*b0gaRKY;b*kC+S5P Tzr~)0_4!40I&}{Zt#$twUfe`L diff --git a/sor_redblack/sor.c b/sor_redblack/sor.c index d557c23..4991bd2 100644 --- a/sor_redblack/sor.c +++ b/sor_redblack/sor.c @@ -1,6 +1,7 @@ #include #include #include +#include // *** Solution of Laplace's Equation. // *** @@ -25,9 +26,12 @@ double calcerror(double g[][N], int iter); int main(int argc, char *argv[]){ double tol=0.001, h, omega, error; - double pi = (double)4.0*atan((double)1.0); + double pi = (double)4.0*atan((double)1.0); int iter=0, i, j; - + double total_start; + double total_time = 0.0; + + total_start = omp_get_wtime(); h = M_PI/(double)(N-1); for(i=0; i= tol){ //red - for(i=1; ilGQS^@LpX~ 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 blLdvcUMX9FOo0e5`jObUoRNZp7V7^Gm=PD< literal 0 HcmV?d00001 diff --git a/sor_redblack_OpenMP/sor.c b/sor_redblack_OpenMP/sor.c new file mode 100644 index 0000000..ef3945e --- /dev/null +++ b/sor_redblack_OpenMP/sor.c @@ -0,0 +1,127 @@ +#include +#include +#include +#include + +// *** Solution of Laplace's Equation. +// *** +// *** Uxx + Uyy = 0 +// *** 0 <= x <= pi, 0 <= y <= pi +// *** U(x,pi) = sin(x), U(x,0) = U(0,y) = U(pi,y) = 0 +// *** +// *** then U(x,y) = (sinh(y)*sin(x)) / sinh(pi) +// *** +// *** Should converge with +// *** tol = 0.001 and M = 22 in 60 iterations. +// *** and with tol = 0.001 and M = 102 in 200 iterations. +// *** and with tol = 0.001 and M = 502 in 980 iterations. +// *** + +#define N 502 +#define MAX(a,b) ( ( (a)>(b) ) ? (a) : (b) ) + +double x[N][N], xnew[N][N], solution[N][N]; + +double calcerror(double g[][N], int iter); + +int main(int argc, char *argv[]){ + double tol=0.001, h, omega, error; + double pi = (double)4.0*atan((double)1.0); + int iter=0, i, j; + double total_start; + double total_time = 0.0; + + total_start = omp_get_wtime(); + h = M_PI/(double)(N-1); + + for(i=0; i= tol){ + #pragma omp parallel for \ + schedule (static) + //red + for(i=1; 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 literal 0 HcmV?d00001 From 070fb5980475c867b0b39b3445eb7a0c76f20856 Mon Sep 17 00:00:00 2001 From: ej159 Date: Sun, 5 Nov 2017 16:36:50 +0000 Subject: [PATCH 05/22] Improved Redblack OpenMP --- sor_redblack_MPI/Makefile | 17 +++++ sor_redblack_MPI/sor | Bin 0 -> 13288 bytes sor_redblack_MPI/sor.c | 127 ++++++++++++++++++++++++++++++++++++ sor_redblack_MPI/sor.o | Bin 0 -> 7488 bytes sor_redblack_MPI/sor.sct | 32 +++++++++ sor_redblack_OpenMP/sor | Bin 13288 -> 13288 bytes sor_redblack_OpenMP/sor.c | 7 +- sor_redblack_OpenMP/sor.o | Bin 7488 -> 7656 bytes sor_redblack_OpenMP/sor.sct | 32 +++++++++ 9 files changed, 213 insertions(+), 2 deletions(-) create mode 100755 sor_redblack_MPI/Makefile create mode 100755 sor_redblack_MPI/sor create mode 100644 sor_redblack_MPI/sor.c create mode 100644 sor_redblack_MPI/sor.o create mode 100755 sor_redblack_MPI/sor.sct create mode 100755 sor_redblack_OpenMP/sor.sct diff --git a/sor_redblack_MPI/Makefile b/sor_redblack_MPI/Makefile new file mode 100755 index 0000000..731f767 --- /dev/null +++ b/sor_redblack_MPI/Makefile @@ -0,0 +1,17 @@ +#CC = /opt/rh/devtoolset-2/root/usr/bin/gcc +CC = gcc +OMP_FLAG = -fopenmp +#CFLAGS = -O2 -c ${OMP_FLAG} +CFLAGS = -O3 -c ${OMP_FLAG} +LFLAGS = -lm + +.SUFFIXES : .o .c + +.c.o: + ${CC} ${CFLAGS} -o $@ $*.c + +sor: sor.o + ${CC} ${OMP_FLAG} -o $@ $@.o ${LFLAGS} + +clean: + rm *.o sor diff --git a/sor_redblack_MPI/sor b/sor_redblack_MPI/sor new file mode 100755 index 0000000000000000000000000000000000000000..95960123432bc85e847aba83de5145cf3702ad30 GIT binary patch literal 13288 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 blLdvcUMX9FOo0e5`jObUoRNZp7V7^Gm=PD< literal 0 HcmV?d00001 diff --git a/sor_redblack_MPI/sor.c b/sor_redblack_MPI/sor.c new file mode 100644 index 0000000..ef3945e --- /dev/null +++ b/sor_redblack_MPI/sor.c @@ -0,0 +1,127 @@ +#include +#include +#include +#include + +// *** Solution of Laplace's Equation. +// *** +// *** Uxx + Uyy = 0 +// *** 0 <= x <= pi, 0 <= y <= pi +// *** U(x,pi) = sin(x), U(x,0) = U(0,y) = U(pi,y) = 0 +// *** +// *** then U(x,y) = (sinh(y)*sin(x)) / sinh(pi) +// *** +// *** Should converge with +// *** tol = 0.001 and M = 22 in 60 iterations. +// *** and with tol = 0.001 and M = 102 in 200 iterations. +// *** and with tol = 0.001 and M = 502 in 980 iterations. +// *** + +#define N 502 +#define MAX(a,b) ( ( (a)>(b) ) ? (a) : (b) ) + +double x[N][N], xnew[N][N], solution[N][N]; + +double calcerror(double g[][N], int iter); + +int main(int argc, char *argv[]){ + double tol=0.001, h, omega, error; + double pi = (double)4.0*atan((double)1.0); + int iter=0, i, j; + double total_start; + double total_time = 0.0; + + total_start = omp_get_wtime(); + h = M_PI/(double)(N-1); + + for(i=0; i= tol){ + #pragma omp parallel for \ + schedule (static) + //red + for(i=1; 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 literal 0 HcmV?d00001 diff --git a/sor_redblack_MPI/sor.sct b/sor_redblack_MPI/sor.sct new file mode 100755 index 0000000..ac0323d --- /dev/null +++ b/sor_redblack_MPI/sor.sct @@ -0,0 +1,32 @@ +#!/bin/sh +# +# request Bourne shell as shell for job +#$ -S /bin/sh +# +# use current working directory +#$ -cwd +# +# join the output and error output in one file +#$ -j y +# +# use the par environment for parallel jobs +#$ -pe par 36 +# +# set up affinity mask (defines cores on which to run threads) +# default mask +#export #GOMP_CPU_AFFINITY="0,1,2,4,5,6,8,9,10,12,13,14,16,17,18,20,21,22,24,25,26,28,29,30,32,33,34,36,37,38,40,41,42,44,45,46" + +# compact mask (4 cores on 1 proc) +#export GOMP_CPU_AFFINITY="0,4,8,12" +# scattered mask (1 core on each of 4 procs) +#export GOMP_CPU_AFFINITY="0,1,2,3" + +#for n in `seq 1 7` +#do +for p in `seq 1 4` +do +export OMP_NUM_THREADS=$p +echo Running on $p threads +./sor +done +#done diff --git a/sor_redblack_OpenMP/sor b/sor_redblack_OpenMP/sor index 95960123432bc85e847aba83de5145cf3702ad30..0fc3f9099746efc8c1b6ac1251dcaf9ebb1dce9e 100755 GIT binary patch delta 2293 zcmZ8jeM}r>8h>X$=s;m+cHJ$Y1r|HYhuH3}iUpM>gWEbAm$PTVqn3|;Aj+kt)Rv1M zmxE<(>xg65yq;H0j34)hkvlK+xSaJamo5cb>m?^t{3=O9Ph01#M!MFPw${1dJG(&Q zBs;(N`F`H#dER%{c-VM2QNYcAFv&;bF(y*mCp?gN3v>cRliamP@0s+sP2E_>ouflLuk4|JEO+G zY3@)59R3QpR<*FKhLT2z4)QlNf1E>z(Px@we3VNmqH8UQ#Kwn2LSk1ha)k7Jr0QN5 zJf%d*dl0&v;*OQ)fvWzjZ?qU>g+G;MSAW28m00pL%b(_FclOr(eVLD}4Sn07{nROb z_ho1r5pFt@5?vj#B$o6sJ@At$@uty~xY223BbQx2nI?kOO@n}DSmq)6tt=tZG2=Iu zaHGX+bH2}1kh9~IitN=)#_uTcaV`=&IwUp_qQtIQ+lWPVulvufNZYv-(4hadX60!! zsz1{_YXbV-|6?(U=r45-7c-C2(=y|~$4sNzhf(cfBsNCX9J$w$t%nS$^)YOyo$C3E zs@MJJvo$1iF*I#dFJYTn<@8$lOMZsPeZtx`FZSUP zXaFMgI%wRQ76%tR_uChgGG1V8zlDJE&38n zq==m&MQmtHe6}1@CGIK38>T1z(Okj`Q4(ge)4v&|OR!2imf+pu$Wr4;Uag(z6dN%L z?Grs;sCt5pp&GkVfH~{=H#{Fvd-dvXvIx;m9!8B^h1mf zVsMOiu9~K*SC7L348pQxd4U1u$?|2Kg9d2lCKy3;44TRzHU-uwXeWCY;~L4dZd8__ zIStK4SxRh)$_2=H#CRngb1USbr1rI?W9$JllvD?H%W8*u>uuJt>=D)YSo5YXK#kX}W~(MV-2uvY^$KdGBF0gtLjRN($aaIF zjT_UK=@)rr{M`rGG4d{_E@2^+OtEBa0j7u}O5tg!U=R@g^LSZ_w)qb%@#%yC0kaz5}gAn(<49rx)k zIv6j)O(Y`QE?d1$MDJ>Nr}y28gNxP+0~Pz zZLZRFk(d=DTzg8~(}l_%Tg(4|WVO~@*3i+#F5)J}Tzq#tsynv`tSxmzx+uX7IU-Ue>^`XanJ34*4 zA9?JdEgie=@cFxP2tDN1aIP08;~a|pR_zF?Z40lR@i$ZH0r?*l!H?#%*+(BJ~b z$7F?p37n(tz$9*j1Hkn-Jp{E&0#zFFlyl8=qbI=eRKvQD9`xkf=H}=Jo-!^$&wHx4 z7ip2VymvX=mBF0U3(|8oMJU*74-3Ay!+rxN6exmJFYttY>>SYXA>;to1RAz}fsbOj z9Q;Em)7*mbVLtZT>V<;m?e&6Bchn0N&pA~gxHn4?YT`>GLV~lecH{^(iV#$U3h2}? z6AEC2Aj(qa7eBTql}>u^=KqFOH$u{#zUzjA%OYFJ3yF|6csC7%eZy^FCh6%L^GjzjOYC_&4dgZ;lfEvc8D+F^ zMR~}V37SzN>oZ!Lf5zXI;SbTBEAGJu|GgFM+;&LE0xXpAD?^()~uf|1CTfXD^`9B%+3ApiPaM@f$@(dp--^+9N v(?~FoJ>^czr)Vs=+BK7*<}pZ*2Ln0to)FL$y5047=3mS_&J9OGui5?&1d;w@ delta 2174 zcmZ8ieQZ-z6u++@vmM)e?YeHOI@ZD47dYFB=oZt(&I-4tixZfFY=AO{2nLAGKh&^x z1*D9pkgEt{0?1+%_s4X`uRow;n>Z3HFPt&hMOi z?m6eas;kshJBozFPS?lQ$^xQ4l{-g|%AHu}wNR<~xPhv&Pt7tE=N3 zD|US0nx-M7e=mfTWDm-gl(ghU*@k$>)Q!4viLP8`-pVP+Ecg?lNRnm}>j}gLg-~>e z=NgD!)su~c6{oAG1<9H703qd#n(AM)u(EaWxCV%Pad0{*rV3l%H=Q47Ggp7gJ;U*@ zX#8gy9byk<%N?*Z!h*aa9K*HWwtqks|LDm&;+ydOrP^-db-3Mp(!!Ism2pJkNjS91 z7OC@T9#L58)1YKhzPmMOo(sTHxiDYh4UiWCRH`d9qwSf zRj!E*33@=U`q;mk))ka%;P8>@x&zwiRp+Hm-s=&cFkUC5y+Nx{OKwEiWVlYyBbZ=9 zixR=ER+)#%b#&;*nl+@paaA{sL5tLI!e-fxgA7XBJQx^ha~0lj9rEnx@*-Tj}so7+tv4n-zCflS%11V{FvVDvyJ9yt{^l}k~sC^Kzk5Xmsmsy0w zPZu6RiO47X#mnJNS4QH}xen=LBqkF4Y!GLU* z;RL1vX5bUvZ@ua9(>FF!Po$|~*#=@ah&OCFLRc}1<>%d7T4McO?y=3m8EP23@ecKM%zq<(oBrJ&g3 zbMppvD%WGJhax_tPP@z;V!7p+-TXQ@!z>`aWZCqOZfamj@s6r(-_&u-!Pi^(JkD00 z6v8XN!>VivW~^cL2yYO?;stEB^p$nNr0#mlBs1E|EwNpC)Mnmwq3uh$YOt?bvk+ORso4Ix3rsG*=repc*Pp?w}z@`tb^|5n&ciIl`1wBKRE2kjW! zVlS^{py3<5f5S=urnm0)!SJw7)aR?Is^-U9!j6Lln>!X0)d z*_Q=D08vp9saj4Ojif&rkdRHL8!Wm-C{m!ohEQ`e8{&xQSfQ zv|h;jfhU2zTt))psB47t(6wlPOKB#cYsz(e|>TUMy0K^`d*bDIivEF;meS z%L<7R!RRn$i(cpgq8l7=>qQHjR$w)^BE|~lD!9+wgVol)#|nPWVvz!BP2}?32#K(V zikA!BeeV}vG9vH(Qm4^IdVz(mslUQBG5t1@JW|8XmwxX`W&(ViG4nrD0};s%_REaI z(gga>pLf$h?gVn{dRtmi&0I4peB(J8a|RkSEN>?ElyzlBA7LA2&PTyNow;0)nM;1f zkaVy^^6e=5sC)$J?(m-FfLmx>?kFx4kzbO`)3&dp+4xk+7k`cbC0}Hx|zn Lj`xLp`wag9K!(gV diff --git a/sor_redblack_OpenMP/sor.c b/sor_redblack_OpenMP/sor.c index ef3945e..59af550 100644 --- a/sor_redblack_OpenMP/sor.c +++ b/sor_redblack_OpenMP/sor.c @@ -20,6 +20,7 @@ #define N 502 #define MAX(a,b) ( ( (a)>(b) ) ? (a) : (b) ) + double x[N][N], xnew[N][N], solution[N][N]; double calcerror(double g[][N], int iter); @@ -30,6 +31,7 @@ int main(int argc, char *argv[]){ int iter=0, i, j; double total_start; double total_time = 0.0; + int numthreads; total_start = omp_get_wtime(); h = M_PI/(double)(N-1); @@ -61,9 +63,10 @@ int main(int argc, char *argv[]){ while(error >= tol){ #pragma omp parallel for \ - schedule (static) + schedule (static) //red for(i=1; izrV!;3-6=e(zbue1%nx*g*Zpx4({ftd z7`Y<+_fe@R#Bq97T6~yqe^}GA`Y8_631?6_dq$*&5WHb6wW*R@=!P$?#r|-Ny(3h4 zS=!S!Ha2#q#{L^7O*A=IH>qoSqh(UjZb|}@@R7W%edAN>w|Jk4dbhQ1S>N2Ub)I*6 zTLuUH!iK3tB2gbxSE(!2dZWFSD}sZyiECQ?Rs(3Zg|-?l9P5XDwt0?!Q=hR#a~4u; zP4LIs#9vYA=c~cN5mlOX4VI+Utrsq9@m^kw-MfQ@wI5OA{d_ofnp#$4qs$kJB!{T! zHcC^ge^@blXe^>X-*9^j&CauL6>?$y)lFT69Hw>c_L2W%3XLSrM-q3!u|D`c%~#B@ z<%o?)?ww?7E5C04K+{=q!8^f0n4ey}aVy2?Exy1n(sOKMZi-QlU9q z74~`XLL_k=GuHcD(#$nJZz%D!uL3(l7bd}n1?-sY5BVzo8?zrF=t=ihQ8ZDJF##2! z0E2LN-60GNU=f)#j1g&8FBIGJSI@xRmG%^)M$Uy(4MiN6JTIEQ>q+djgGM8yqh2GV zY4L8mRyh!r>U&3|wFB+nX?h1uT#Nmg+gr%Be-V}ZpK1DBdPCw89JB}c_u-tqhQ9{ZvJH?Z99dp?E9VNuA7F{n`R55q2 zH6(iDf;FEPb5+q*E!w#(g!_n&vY!+(EW1Q|1ef2?GfK073Uj<1j~wJyi!f)>MZToV;hbZE<)VOR$;Oq!=1JMG zNc8Y;LY*k{Czw9R^tW&vJ;S7xtN2zA$8!T#D#9oa?N5wzm-vc+?RmI#hLd8YqIG~O z$-K;TKGR;N%b0!;I;G>bvdEHPIn=q{!TcHEcFUP=BM3N6Ebut_0Pxu||1R(z zSvhKEATt#?OdP1laZ-dbYOu(-Oe`n#c%~_SlV{kNAu&r})U$NqOcOc@*CY%@dl-); zNomrsI%%D%VkyKX%V9bqB-F(N_)DQ1$cd85cF4%KHR)!4`m|I0XJKfvtn4$PvI#u^ z?krhJGtJZ7*F&HpT4|tE$!t@s%22vLNXFOM0-afM@PH{Z?O@-9LdHI5^3z{OY9=D> zfFe_KC}d{fFV#yCG~*u5fFN>0CXUC%SwT+b|m2v1Tqnh^^dTJc{ z3C5EQFm!MnnyT$4p*!xI&;pD}p*G`$(3Iww{M$??XR^uPVd9(5(qR)n&%{5P^f&(R zFr6?3(A}RZ=&K1{aM8p!zu*eEWo&PPCwZH6uy(Lvca5C6Eh^1&gvfj8FG9qb#}wroxeeQiq?G TC?OasD0g({CZFDhPNnE?7LcMe delta 2097 zcmZ`)Yitx%6rQ_}b{4ub`<~stb{Dsy4-300X%|yq$|AF-m=Y-=q4g1(O^T90;{Gsd z+GT~X)`8+Nni%wtuSC(b@Iy43Z0#0`F#$;oCP0&#{-}V3ZiEoQ)^lcO$!OA>?74To z?>mos?w#4WC-dt^8X;fDk3~mK$2WPw%_4(;a2zMA2biL^;)+vLFHJ?!(UMSiF=fvp zE*msvU};p;m^$rI?dssV)OR}wRM=%PI7INaJ>zE>%>#KNl58#|1``~odMdKNv-DGn z>X{^6Q5GGRd{KmB=Ep3e({c{Zn!_O_bB??c@oDkUz|zvvxy}3?jHYA@{O-O9F$kjN z8<@82^~*cu9(hNPUi7oEE6LnVC3~|Q_F6lvmPj&FfRonsW-+)4Zdp^lb(C^TY<64j zPD;Er8@qz(n`hyritYW0YZ!ilDVh6sF;n`aoGq|qW|GQ~GY>RusH@ZzMYU3#r20X7 z>&#M@dSut_C7gz)KCZ{U!T!_r)VD)~eoKyBxeH2eTFFd8xH1w%rW=`}=p3TCEB9cg>8W``co=2A*5r^2+8wn+H{gL+UBtxh_5``e| zWApG=WeBa84-L-e5|QW}g~V;<6T_&%itGdw#pcN}Gm9WbOo@#cG9|7lh;OaMZi|PS z(4yz1?{)<_ZbVTJzJQhD0lrBQN@rG46niaZC7b7!_{EgCW1=WNe=$9)s3W7IACD^Y zw|}CZOBXQskBX`_K6f2{;-hR7?(SK9j_?3v#uRQ)lLnDSx+wqLMclXJ? za-aMhd}-TuY6Z^*Td@b6EI1CEWWk>`Zxur3FcbWU$O4a)2Y&_p(HJI^5JIMd0*@Dt zyGqYE;ubWWg5#*EQ}CAb4;$BI3;-9S!Ivw zs0rr?e1+&qM5q3vy{2nT)L0y(Z2-GVVi9O?ZDp%qpG$(DT~+obqHvU=eTe7@S5@E( z9n~@;`v5NtjWHO<7_)HPB?WF6Jq?;g2)iX_hq(I@wi^0y-2iF#)*d?la-8zcC>e*?%*#@DJXw?|oH)q5)lF$hQY(Fyf&8R#7#^djsH< zq`*f8)_6-k1sU1Afi?P0k?-IIou%~D)ABxVEaP?0pvRBpL%owq!}0$L*BS7&$d}`X zNX&7k+x+L5>7D~j)n{1?oUd+UQ^0CA+M?EyAP&izHe0v5^wbWynl`o{#%ngxm#9Vp ze{G}bwhcOKH{cOxYB$>a`nwc@^R;cJBNCYEHhA0dt43o;uf~DvF!a>5*v{zh#s Date: Sun, 5 Nov 2017 17:15:44 +0000 Subject: [PATCH 06/22] Playing with redblackMPI --- sor_redblack_MPI/Makefile | 20 ++++++++++++-------- sor_redblack_MPI/sor.c | 20 +++++++++----------- sor_redblack_MPI/sor.sct | 5 +++-- 3 files changed, 24 insertions(+), 21 deletions(-) diff --git a/sor_redblack_MPI/Makefile b/sor_redblack_MPI/Makefile index 731f767..03b649d 100755 --- a/sor_redblack_MPI/Makefile +++ b/sor_redblack_MPI/Makefile @@ -1,17 +1,21 @@ -#CC = /opt/rh/devtoolset-2/root/usr/bin/gcc -CC = gcc +#MPIDIR = /usr/lib64/openmpi-1.10/bin +MPIDIR = /usr/bin +#MPIDIR = /usr/local/software/mpich2-install/bin +CC = $(MPIDIR)/mpicc OMP_FLAG = -fopenmp -#CFLAGS = -O2 -c ${OMP_FLAG} -CFLAGS = -O3 -c ${OMP_FLAG} -LFLAGS = -lm +CFLAGS = -O3 -std=c99 ${OMP_FLAG} +LFLAGS = -lm .SUFFIXES : .o .c .c.o: - ${CC} ${CFLAGS} -o $@ $*.c + ${CC} ${CFLAGS} -o $@ $*.c ${LFLAGS} -sor: sor.o - ${CC} ${OMP_FLAG} -o $@ $@.o ${LFLAGS} +sor:sor.o + $(CC) $(CFLAGS) -o $@ $@.c ${LFLAGS} clean: rm *.o sor + + + diff --git a/sor_redblack_MPI/sor.c b/sor_redblack_MPI/sor.c index ef3945e..d86fdb3 100644 --- a/sor_redblack_MPI/sor.c +++ b/sor_redblack_MPI/sor.c @@ -2,6 +2,7 @@ #include #include #include +#include // *** Solution of Laplace's Equation. // *** @@ -24,13 +25,20 @@ double x[N][N], xnew[N][N], solution[N][N]; double calcerror(double g[][N], int iter); +// MPI specific data +int myid, numprocs, rc, ierr; + int main(int argc, char *argv[]){ double tol=0.001, h, omega, error; double pi = (double)4.0*atan((double)1.0); int iter=0, i, j; double total_start; double total_time = 0.0; - + ierr = MPI_Init(NULL, NULL); + MPI_Comm_rank(MPI_COMM_WORLD, &myid); + MPI_Comm_size(MPI_COMM_WORLD, &numprocs); + MPI_Status status; + printf ("Process %d of %d is alive\n", myid, numprocs); total_start = omp_get_wtime(); h = M_PI/(double)(N-1); @@ -60,9 +68,6 @@ int main(int argc, char *argv[]){ error = calcerror(x, iter); while(error >= tol){ - #pragma omp parallel for \ - schedule (static) - //red for(i=1; i Date: Sun, 5 Nov 2017 17:31:08 +0000 Subject: [PATCH 07/22] sorting out M_PI --- sor_redblack_MPI/.Makefile.swp | Bin 0 -> 12288 bytes sor_redblack_MPI/Makefile | 4 ++-- sor_redblack_MPI/sor | Bin 13288 -> 10280 bytes sor_redblack_MPI/sor.c | 9 ++++++--- sor_redblack_MPI/sor.o | Bin 7488 -> 10280 bytes 5 files changed, 8 insertions(+), 5 deletions(-) create mode 100644 sor_redblack_MPI/.Makefile.swp mode change 100644 => 100755 sor_redblack_MPI/sor.o diff --git a/sor_redblack_MPI/.Makefile.swp b/sor_redblack_MPI/.Makefile.swp new file mode 100644 index 0000000000000000000000000000000000000000..19e5c1bad47ffd3b5f40622a18cfb8482b017680 GIT binary patch literal 12288 zcmeI2%Wl(95QeASSpv%C1r9Vw4U&EAP^D?4E-FJHQlmyhsbFOtI}Ua0n`}o^DuHL< zUDyE|U#n)_ z?SLq9)k*FjRY&FVc_Z?Y%-?LCcYL=0Vo^}q`@MeCY+9B~Ri?tw4;?Rw(n%4-Pi3BD zPUer?PFSZ`e(-fdWBnYe!Irnqr^xLgfH!vGAx z01UtY48Q;kzyJ(fXahyMLNECStMgkd-YfI<;(ehni9ZhmFaQHE00S@p126ysFaQHE z00aNI0W~7}aD`}XjYaVH|4VZpUwHkVdBr?u4w(+qVz!vuOpUq5l(|2-#t-H@^O^a? zd}Q7+Z<#mDYX$=bU;qYS00v+H24DaNU;qYS00x#fpk}&)#fC++W^ijHFDco!a(P@Ux1aYLs)|dG1(kF`pP7kuex{I^DXEIDY6>>}bxOk>Azlu3*=s}zp+%_-WApUnkdGJ@Ez-?~I*)IpW JWmsmF{TuCJke&bl literal 0 HcmV?d00001 diff --git a/sor_redblack_MPI/Makefile b/sor_redblack_MPI/Makefile index 03b649d..a09052b 100755 --- a/sor_redblack_MPI/Makefile +++ b/sor_redblack_MPI/Makefile @@ -1,5 +1,5 @@ -#MPIDIR = /usr/lib64/openmpi-1.10/bin -MPIDIR = /usr/bin +MPIDIR = /usr/lib64/openmpi-1.10/bin +#MPIDIR = /usr/bin #MPIDIR = /usr/local/software/mpich2-install/bin CC = $(MPIDIR)/mpicc OMP_FLAG = -fopenmp diff --git a/sor_redblack_MPI/sor b/sor_redblack_MPI/sor index 95960123432bc85e847aba83de5145cf3702ad30..2d77d3233e7ca3c4cdddbdb19d31062cc5d18b1a 100755 GIT binary patch literal 10280 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 blLdvcUMX9FOo0e5`jObUoRNZp7V7^Gm=PD< diff --git a/sor_redblack_MPI/sor.c b/sor_redblack_MPI/sor.c index d86fdb3..7636296 100644 --- a/sor_redblack_MPI/sor.c +++ b/sor_redblack_MPI/sor.c @@ -20,18 +20,21 @@ #define N 502 #define MAX(a,b) ( ( (a)>(b) ) ? (a) : (b) ) +#ifndef M_PI +#define M_PI (3.14159265358979323846) +#endif double x[N][N], xnew[N][N], solution[N][N]; double calcerror(double g[][N], int iter); // MPI specific data -int myid, numprocs, rc, ierr; -int main(int argc, char *argv[]){ +void *main(int argc, char *argv[]){ double tol=0.001, h, omega, error; - double pi = (double)4.0*atan((double)1.0); + double pi = (double)4.0*atan((double)1.0); int iter=0, i, j; + int myid, numprocs, rc, ierr; double total_start; double total_time = 0.0; ierr = MPI_Init(NULL, NULL); diff --git a/sor_redblack_MPI/sor.o b/sor_redblack_MPI/sor.o old mode 100644 new mode 100755 index 45d9a2b808f07bab8af7f7e05c99e7fbc9155e01..2d77d3233e7ca3c4cdddbdb19d31062cc5d18b1a GIT binary patch literal 10280 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 From d0b25c36dcc658a1e3e04c33e77dd148e2d34cb3 Mon Sep 17 00:00:00 2001 From: ej159 Date: Sun, 5 Nov 2017 20:40:24 +0000 Subject: [PATCH 08/22] Playing around with redblack_MPI --- sor_redblack_MPI/Makefile | 4 +-- sor_redblack_MPI/sor | Bin 10280 -> 13088 bytes sor_redblack_MPI/sor.c | 60 ++++++++++++++++++++++++-------------- sor_redblack_MPI/sor.o | Bin 10280 -> 13088 bytes sor_redblack_MPI/sor.sct | 2 +- 5 files changed, 41 insertions(+), 25 deletions(-) diff --git a/sor_redblack_MPI/Makefile b/sor_redblack_MPI/Makefile index a09052b..03b649d 100755 --- a/sor_redblack_MPI/Makefile +++ b/sor_redblack_MPI/Makefile @@ -1,5 +1,5 @@ -MPIDIR = /usr/lib64/openmpi-1.10/bin -#MPIDIR = /usr/bin +#MPIDIR = /usr/lib64/openmpi-1.10/bin +MPIDIR = /usr/bin #MPIDIR = /usr/local/software/mpich2-install/bin CC = $(MPIDIR)/mpicc OMP_FLAG = -fopenmp diff --git a/sor_redblack_MPI/sor b/sor_redblack_MPI/sor index 2d77d3233e7ca3c4cdddbdb19d31062cc5d18b1a..e71add8f07f1a6d663ae505736d1069adbb4ee72 100755 GIT binary patch literal 13088 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 literal 10280 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 tol){ - for(i=1; iI0sV6<{nVw1{QV?n)a=yUKnT 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 literal 10280 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 Date: Mon, 6 Nov 2017 12:02:49 +0000 Subject: [PATCH 09/22] Redblack MPI rejig, still not working --- sor_redblack_MPI/sor | Bin 13088 -> 13160 bytes sor_redblack_MPI/sor.c | 47 +++++++++++++++-------------------------- sor_redblack_MPI/sor.o | Bin 13088 -> 13160 bytes 3 files changed, 17 insertions(+), 30 deletions(-) diff --git a/sor_redblack_MPI/sor b/sor_redblack_MPI/sor index e71add8f07f1a6d663ae505736d1069adbb4ee72..f17dc29e24223ab399cdfb190d8c3ce1fd25c58f 100755 GIT binary patch delta 3842 zcmai1e^3#VlPN&gv#;V1pV5Z5PC^2a#gK4WYIvI6pa+kDYf|ZC-uix+6U9?j( zeKWh?{eIr}?f2Jbci;B6CR+RQbNeMGMnDnFGk0IvtHExIqH2;chX6R9Gw|@t7Ai`I zxX@%GO~JQ;ncMb#nhycql*{rI@PULQ{7L7R-D6C>#~75Rt*hOMMJhW)`jyjw>HwCf?qrmfFC~Yl|fm!DT$Gmi?)6L~p*ypxEx6a4+ zBW~jfaehUd_tN>rbe}#0?>Gm}^E?>TmZ(PH#Zso3uIr1&(dwiqX_0QiJb(q9?VNxwr*|Typ^qJ ztpDDU@3%bDIq-@;i{nCap=S(^W!OR-Yk;0G0Hs4+Guws5lLX@6OvgSzN%H|bItyq% zgFPj}V@$EvGqNWeOMClthHHK_wVty9#A%L3z+H^))7VaBzHEvB24$Z0tCl{M7#iLT zTc$k&cc*3hZ`&QhmT07MPv|>Ud>U#h0|ed;PJ;~$hV1EDZ3#XAs}QY5RP#XSVF)AI zhG-_K>KKF*h#oLx7i4P?%5x9-n+|_8*g{&8WF$xaX^?yMduBM8yeHO~mKv2KXAHwE zRe8tiU@7-qJWKWfUXk8LOOjVoINal;Q+bl3LjRa_N+=l<`Zdyt!O7!7f1h+pEtKpR zzgITgq=q|t^5YY_a+qq7k&+=5*O~LQsa`j&Sh$qZp1#Z(s^7e8y=U|>F=O% zVp%GbN=1e_8ZBdT`0R1yM)->fyhqnx<*3z$fsIQh>qWF}m7Xp?gi?+kY5tUgdfqWy zh^WVXP?@d#iIDc)B11X4i_CDBD%dwC;=?i8)XXLoCyxKO?UG zp6Q?ZV-$P&q!+&Wm8ZpGHVd`(_mmLFz*tQ#Qkc)e4< zYn4=*MlBhUYrJ!@9JQQ98wx)CEj(q%$EBt^^KEpV#HZyGq*hb9f?+2%oJH(3TEqqA zVn}8#*WN-eUB8vXadHzG;c_Va7G2gWh{~&mn)A}0ZCJSEG$b&F{M0{0$dN-7vWOV{ z*SfF<7`YlWB9$`{5s66lIyDW+&XfeY9+^Psp$u+3A_MH}|H66o5M{FcJ6`+r%? zdOi?TC5Fy&B^F^7i1r(F3?7$qa~T>YU&m8IeK+>VJOSd>OD!#A=RHdQvN zI|L2ygM)=Do%G_Sfn9l;Bz=)-;Fm(^V_>%bfLDWaP99w0>5o54UsN3XRr#taUsL6X zDle$=Lsd?wGDF>w%ur=`*2fG?3rumRoOR5|`n32Tn$WRK z)(C#5jW7W+PyHXLMnoV^8-4BnLB+2LnTHYiU0#f+#bukR{eY+@Y?dGet%Vm|6}%1N zF5CY&*o;PxaS`^WfCv8C9{18}f-Iq!#LvDc`TbUipr zR`NfAv)INj!x_j)rmdigS8p?85sV8~Zx)P5*@Fo{~V`g>6gHU28I_C{#4 iD`hwUVSkFBgYdj6BcnYmjv|PoR`gXxyAQ#+_WuC;^|z`3 delta 3798 zcmZu!du&tJ89yhsgPl0Jb{;rkB)%rjvm~}*Auu&jE`)Kt8L_lLVI^H?!GmgAfrT|f zOpbA>a8r-KVJoV}nyPA{?2iTIA3#;>5FXB|wV_&9Hnd{c=q$8qe;Qh|=y`iK# z*1g~TUgvwBhf~49;6PbXpG3rH&jONsWM9Ku;@0L#1y7LT3})L*fCJ= zfC^uyMx0#+wa#KK$e*GSGS2K4M@WraGpqfkdoyLC?vD55WX9FVY4hlmT&8&kSefdb zcuUT9d~tje=ckhyjOuM1=Ru~&1^z6@dAFtG0)Lw0-1YR3z<mfr)lBjwdlcNPr;?GL!!{VUzF8f!iV zC*I?cLUT1(say9mnF-0>;kE^(8}Tn@NzM*J_~(SwFghWvHFd+y)DKxAuOf6P)kY>H zTWKpuLFu{10zftPYWGd}0+idJH7!*^SrK$Qi1J?@b~d+yAIU z&QgE)^bocRC467d`qY@|cSpNOAXfSt0rspx5P?`<;*Cn;kL^E_MCugDwwseraFsyx zLpA!TKYWHy^OgFhMm(oR|Eij@w9uRIw{J@IM^NPi4wo9nVYhC{d>OJYZp4x*J z3rbC-dt=LRB`-w9D`4<~a0tZ^1PDNJj{YfVSq9hgodnO}gh#)zH( z%{(Ek;|b;xBRrcOX9$W&)z;fQn}1Nlr$i<}@@GH&;Zfm7D4U$XqASww9caKntfC5T zBgc=z?X1s1(S*|-v}%s=+VPIjja^c{Wkm_!5q`Xb)pPX-ub}DOt8GZa#fgw)YkdYQ zRXNGCgD9K3fK4};gN*bnc_<^J+`Ki;lh9$-b8>^DMxFr>^`xBr|4BLG566e35KKo- zAuHK*ghxbHvPtnT8kcrIkE96Sf&+R6Vpic#9=tVTa=Y=|H^RSy+0^h^K8+ea$3gh6 z2p%izMjR~;t%6QXIW^W?WMi{! zPI{g_YOAULnt60_k)}z2ut+1O?Vdbpp80)ur&98$BGbh=oZ6n>l z>h0BXu2q<9e0@1~VW<{LJe4cmkn3=C+iP;F7UUUoFDi;qAlpHj( zfs%TQc4r{%%va&*8Fl`Ys?0T~m?f!EnW^1iYBab&gWuQSY7GW8_)87GsKMW|^{!%M&CSem0`Z)e z9lrgV51MHK48%-y-yWu0h{~v|)R4z(;&RX=-lYa)6Ei#LAl{{hLR`5xo7jrJIckCAkV0tK zt30TYQspSuyFr)3?ugnKlZ9++)iU}scA{#TZ@M2J2pKz>PQM~1DdwH!_Q0d{ZpSSB z#;VUhTQnBeW&7Ptw3m&z9p5sr5keHV`RN9BfL??E2AHM#Fg?JIRWHNM_Ur2Bk;ttz zyy0H2Sw{O)I{L^6LwdS0p zd3d7s!yNX0Ltwb-ktK9^(_EP%UC~C5UFM4uLxSJKRKJPYhZ3qps3%3KyFc6k@r>x#2M=}={3UJvW_*_heqwdj8>&@a9g%Y*-q sVPA_~U)8= tol){ //red for id =0 if(myid==0){ - if(firstime){ - setup black; - firstime= false; - } - for(i=1; i#VlPN&gv#;V1pV5Z5PC^2a#gK4WYIvI6pa+kDYf|ZC-uix+6U9?j( zeKWh?{eIr}?f2Jbci;B6CR+RQbNeMGMnDnFGk0IvtHExIqH2;chX6R9Gw|@t7Ai`I zxX@%GO~JQ;ncMb#nhycql*{rI@PULQ{7L7R-D6C>#~75Rt*hOMMJhW)`jyjw>HwCf?qrmfFC~Yl|fm!DT$Gmi?)6L~p*ypxEx6a4+ zBW~jfaehUd_tN>rbe}#0?>Gm}^E?>TmZ(PH#Zso3uIr1&(dwiqX_0QiJb(q9?VNxwr*|Typ^qJ ztpDDU@3%bDIq-@;i{nCap=S(^W!OR-Yk;0G0Hs4+Guws5lLX@6OvgSzN%H|bItyq% zgFPj}V@$EvGqNWeOMClthHHK_wVty9#A%L3z+H^))7VaBzHEvB24$Z0tCl{M7#iLT zTc$k&cc*3hZ`&QhmT07MPv|>Ud>U#h0|ed;PJ;~$hV1EDZ3#XAs}QY5RP#XSVF)AI zhG-_K>KKF*h#oLx7i4P?%5x9-n+|_8*g{&8WF$xaX^?yMduBM8yeHO~mKv2KXAHwE zRe8tiU@7-qJWKWfUXk8LOOjVoINal;Q+bl3LjRa_N+=l<`Zdyt!O7!7f1h+pEtKpR zzgITgq=q|t^5YY_a+qq7k&+=5*O~LQsa`j&Sh$qZp1#Z(s^7e8y=U|>F=O% zVp%GbN=1e_8ZBdT`0R1yM)->fyhqnx<*3z$fsIQh>qWF}m7Xp?gi?+kY5tUgdfqWy zh^WVXP?@d#iIDc)B11X4i_CDBD%dwC;=?i8)XXLoCyxKO?UG zp6Q?ZV-$P&q!+&Wm8ZpGHVd`(_mmLFz*tQ#Qkc)e4< zYn4=*MlBhUYrJ!@9JQQ98wx)CEj(q%$EBt^^KEpV#HZyGq*hb9f?+2%oJH(3TEqqA zVn}8#*WN-eUB8vXadHzG;c_Va7G2gWh{~&mn)A}0ZCJSEG$b&F{M0{0$dN-7vWOV{ z*SfF<7`YlWB9$`{5s66lIyDW+&XfeY9+^Psp$u+3A_MH}|H66o5M{FcJ6`+r%? zdOi?TC5Fy&B^F^7i1r(F3?7$qa~T>YU&m8IeK+>VJOSd>OD!#A=RHdQvN zI|L2ygM)=Do%G_Sfn9l;Bz=)-;Fm(^V_>%bfLDWaP99w0>5o54UsN3XRr#taUsL6X zDle$=Lsd?wGDF>w%ur=`*2fG?3rumRoOR5|`n32Tn$WRK z)(C#5jW7W+PyHXLMnoV^8-4BnLB+2LnTHYiU0#f+#bukR{eY+@Y?dGet%Vm|6}%1N zF5CY&*o;PxaS`^WfCv8C9{18}f-Iq!#LvDc`TbUipr zR`NfAv)INj!x_j)rmdigS8p?85sV8~Zx)P5*@Fo{~V`g>6gHU28I_C{#4 iD`hwUVSkFBgYdj6BcnYmjv|PoR`gXxyAQ#+_WuC;^|z`3 delta 3798 zcmZu!du&tJ89yhsgPl0Jb{;rkB)%rjvm~}*Auu&jE`)Kt8L_lLVI^H?!GmgAfrT|f zOpbA>a8r-KVJoV}nyPA{?2iTIA3#;>5FXB|wV_&9Hnd{c=q$8qe;Qh|=y`iK# z*1g~TUgvwBhf~49;6PbXpG3rH&jONsWM9Ku;@0L#1y7LT3})L*fCJ= zfC^uyMx0#+wa#KK$e*GSGS2K4M@WraGpqfkdoyLC?vD55WX9FVY4hlmT&8&kSefdb zcuUT9d~tje=ckhyjOuM1=Ru~&1^z6@dAFtG0)Lw0-1YR3z<mfr)lBjwdlcNPr;?GL!!{VUzF8f!iV zC*I?cLUT1(say9mnF-0>;kE^(8}Tn@NzM*J_~(SwFghWvHFd+y)DKxAuOf6P)kY>H zTWKpuLFu{10zftPYWGd}0+idJH7!*^SrK$Qi1J?@b~d+yAIU z&QgE)^bocRC467d`qY@|cSpNOAXfSt0rspx5P?`<;*Cn;kL^E_MCugDwwseraFsyx zLpA!TKYWHy^OgFhMm(oR|Eij@w9uRIw{J@IM^NPi4wo9nVYhC{d>OJYZp4x*J z3rbC-dt=LRB`-w9D`4<~a0tZ^1PDNJj{YfVSq9hgodnO}gh#)zH( z%{(Ek;|b;xBRrcOX9$W&)z;fQn}1Nlr$i<}@@GH&;Zfm7D4U$XqASww9caKntfC5T zBgc=z?X1s1(S*|-v}%s=+VPIjja^c{Wkm_!5q`Xb)pPX-ub}DOt8GZa#fgw)YkdYQ zRXNGCgD9K3fK4};gN*bnc_<^J+`Ki;lh9$-b8>^DMxFr>^`xBr|4BLG566e35KKo- zAuHK*ghxbHvPtnT8kcrIkE96Sf&+R6Vpic#9=tVTa=Y=|H^RSy+0^h^K8+ea$3gh6 z2p%izMjR~;t%6QXIW^W?WMi{! zPI{g_YOAULnt60_k)}z2ut+1O?Vdbpp80)ur&98$BGbh=oZ6n>l z>h0BXu2q<9e0@1~VW<{LJe4cmkn3=C+iP;F7UUUoFDi;qAlpHj( zfs%TQc4r{%%va&*8Fl`Ys?0T~m?f!EnW^1iYBab&gWuQSY7GW8_)87GsKMW|^{!%M&CSem0`Z)e z9lrgV51MHK48%-y-yWu0h{~v|)R4z(;&RX=-lYa)6Ei#LAl{{hLR`5xo7jrJIckCAkV0tK zt30TYQspSuyFr)3?ugnKlZ9++)iU}scA{#TZ@M2J2pKz>PQM~1DdwH!_Q0d{ZpSSB z#;VUhTQnBeW&7Ptw3m&z9p5sr5keHV`RN9BfL??E2AHM#Fg?JIRWHNM_Ur2Bk;ttz zyy0H2Sw{O)I{L^6LwdS0p zd3d7s!yNX0Ltwb-ktK9^(_EP%UC~C5UFM4uLxSJKRKJPYhZ3qps3%3KyFc6k@r>x#2M=}={3UJvW_*_heqwdj8>&@a9g%Y*-q sVPA_~U)8 Date: Mon, 6 Nov 2017 12:24:14 +0000 Subject: [PATCH 10/22] Well at least it compiles now --- sor_redblack_MPI/sor | Bin 13160 -> 13160 bytes sor_redblack_MPI/sor.c | 26 ++++++++++---------------- sor_redblack_MPI/sor.o | Bin 13160 -> 13160 bytes 3 files changed, 10 insertions(+), 16 deletions(-) diff --git a/sor_redblack_MPI/sor b/sor_redblack_MPI/sor index f17dc29e24223ab399cdfb190d8c3ce1fd25c58f..4726155c8030d202b9bc5818f0377e70611a9943 100755 GIT binary patch delta 1931 zcmZWqeN0nV6upQO&6Ful#2IYjAB&jKnK&~j zPo0QwL+?LovZ#w@(QJ!LP5j8Ft(5w)%uMGNH$H#dg1# z7sh|a?@SG2mmeYaJc`TuM{%>MD-$7g4n3b$&^cMHL!(&8X@RXUURPcYmMBM7jW7n= z-Tl*H*HciEKAo*WF6`=J^%JF=fxzby_^&pHvGW#o)uVfOC=tfZ{X~wt!6tEO{f#hg zPuvaTXWznMoE?rIj1U^0e*nW712&TToCjRZ+qETBouNFo=|<61NS(nv3_yp~zQ6sU7^W4*AA_ zc2GIg9-EHTV+O{v!gSR%K?!#=T_Difp*k>=yAQV@5Y8Rw`CS(*pzLO$7xa7+>`8%2 z=~_=PEwKwJ&P@3?uBP*1q>(7j0oDd6Lol9&x~-{Eyv+a71E$S|=N{5fX5dK#=1#uJUfN^G`&-A=s>k~YW^-WXPJkd0LG=10a*xBg3pif7& zq*z_@O>RynG%PX{P>j>16TrcLYLXcRPqQBBaAnf~QlC7AX&o2#yrdVEVuDIhO&5C~ zn;#}P^lS1Wqu$7}0W|_{Z0JC>O@2ayP1slUR zbe`}pV8-(M@V4BpX8#Qxk66#^={{We@-RGWIa>uc`dgO)f*giL6H!bDz>=B=q-U^W z3h6a17w9l9v8-jg%IwtwohG>WLV?x_MP;S1i6WImuDy@psfqbmNpI~VSg8e&LM4zU zW#R<7L#VX;1>2A)>wB6M+IaCHEwhV-jaEHvIkSrcJ!65MAA+TWL>@Mi#8ZR1^g(Q$ z{bSC4V@%Wfp#1&!HI2=}QCg5a)lv-w9|e)RsFb~wCu4MPb}@H@CbCPKg8=G)ZyX$l zK`+!`6F%Y_Y2ACB&vl}kefA-Dhz z6l5AXKTQX_LG zS4#8DR!*cRXU_j$yh{M(kRA0oXukL^4`!Fx==*QhHBd?#HIX81H^ROH64g^n(Wk)t z%cA*QJ$+cT0q(T*#g+Vb0{x_z5x8AkWzjnfetT$Pac-=>WSg1e>4nNli{GA(=BJ#u h$`Tr1g{b7M%9>yT#Jat&+OLh@trIpByWri&{|lndXkP#T delta 2034 zcma)7eQZ-z6uemGnLCymQX7_H( z#N#hU}8#p#H76W1G)h4nnQhwe?w<{QM=p|tIMs8+7=j@7RAYDAfPP%TH^ z3ncQ(;zrV8c6%TSiB?J;Z(MEEG(a>FtMkxH}7<{AU z3!-FYLt;rRW}O9S5I;M2-%gve+`ZS(N?*`rUYlMNqO>;ru4#Ze0Ul3Sg4lTh=T)F9 z_{T&L2L?$b?gBYLt8GqUP+x7ZxkDd2U1+)YS4eEkdm$;~qN|Wfvt$W&-pw^2h%8l` zPDXT_Kmm|hO5#8xAhBmqeOTWMFx!(tauNV!KzvPr8cFf_P>u|7RpCKKQ4ZhKIkww? zWb^KN^S#5ScS9FhoK%`O7|yCa#coS`HJ%cl`{s2vSsKGb_bB;VB3Lp})ng zCxJgup1FpFg<>(;Q7O5$#c>OF(ZYor{bKI#tD zBkzdZ$9jFpWJGy= z21W@gBtl%EFbpe5Wy>VomIG;m#jS+E1xG5_>=fxvp5riA-M|^Z!fUXr&sP%H`6aQB z#RdZDl3EX7hFAp%aCiwEfwSo zHJ^%eQsjHCxtu7@A;2&`=40?mPbBf$%8YRcKAOa#z$KWRwPwQz-KiUbDf_iqJ7%bF^>&>uQE znEEnMYKbCvL6Wj@61~_wjdTb1AmC_`p@8dlF0H&W|cTqnWQA;t2__niE zE%Qky9llpUQ}<6mPy%6wg)U5Ih{e{h{te&m)3iox)3ul;zR6`YjcHmZ%uC5NO=IV>g6_|pZuJ259_VTlJ(anJKX;WD zISRNY`k14zY6*av;a3fg>)<$`rFK!_m)dh)H7&EdUN*~iPegds-eBr9O}2YvyGyp` z0A#7%BHI9spyQ|)ej+{PSZ28atHn@7y3yr`l{mXC8GA%9!PAhE9POH)O{-^C!#%Ti zW}2DnrHTA3lZfIVvvcpJ?*u?Ol!1_g=1R}=Aa+VCy!S?Z8tP@BZig`B7O-bRpdM;Ix@mqvcC4bX-NHRbM~aKBy%3%~y_73i hWR0h^IF(BlO}>+fgSM6|%pj>N{I;x!jg-8_{{>E= tol){ - //red for id =0 - if(myid==0){ for(i=1; ipQO&6Ful#2IYjAB&jKnK&~j zPo0QwL+?LovZ#w@(QJ!LP5j8Ft(5w)%uMGNH$H#dg1# z7sh|a?@SG2mmeYaJc`TuM{%>MD-$7g4n3b$&^cMHL!(&8X@RXUURPcYmMBM7jW7n= z-Tl*H*HciEKAo*WF6`=J^%JF=fxzby_^&pHvGW#o)uVfOC=tfZ{X~wt!6tEO{f#hg zPuvaTXWznMoE?rIj1U^0e*nW712&TToCjRZ+qETBouNFo=|<61NS(nv3_yp~zQ6sU7^W4*AA_ zc2GIg9-EHTV+O{v!gSR%K?!#=T_Difp*k>=yAQV@5Y8Rw`CS(*pzLO$7xa7+>`8%2 z=~_=PEwKwJ&P@3?uBP*1q>(7j0oDd6Lol9&x~-{Eyv+a71E$S|=N{5fX5dK#=1#uJUfN^G`&-A=s>k~YW^-WXPJkd0LG=10a*xBg3pif7& zq*z_@O>RynG%PX{P>j>16TrcLYLXcRPqQBBaAnf~QlC7AX&o2#yrdVEVuDIhO&5C~ zn;#}P^lS1Wqu$7}0W|_{Z0JC>O@2ayP1slUR zbe`}pV8-(M@V4BpX8#Qxk66#^={{We@-RGWIa>uc`dgO)f*giL6H!bDz>=B=q-U^W z3h6a17w9l9v8-jg%IwtwohG>WLV?x_MP;S1i6WImuDy@psfqbmNpI~VSg8e&LM4zU zW#R<7L#VX;1>2A)>wB6M+IaCHEwhV-jaEHvIkSrcJ!65MAA+TWL>@Mi#8ZR1^g(Q$ z{bSC4V@%Wfp#1&!HI2=}QCg5a)lv-w9|e)RsFb~wCu4MPb}@H@CbCPKg8=G)ZyX$l zK`+!`6F%Y_Y2ACB&vl}kefA-Dhz z6l5AXKTQX_LG zS4#8DR!*cRXU_j$yh{M(kRA0oXukL^4`!Fx==*QhHBd?#HIX81H^ROH64g^n(Wk)t z%cA*QJ$+cT0q(T*#g+Vb0{x_z5x8AkWzjnfetT$Pac-=>WSg1e>4nNli{GA(=BJ#u h$`Tr1g{b7M%9>yT#Jat&+OLh@trIpByWri&{|lndXkP#T delta 2034 zcma)7eQZ-z6uemGnLCymQX7_H( z#N#hU}8#p#H76W1G)h4nnQhwe?w<{QM=p|tIMs8+7=j@7RAYDAfPP%TH^ z3ncQ(;zrV8c6%TSiB?J;Z(MEEG(a>FtMkxH}7<{AU z3!-FYLt;rRW}O9S5I;M2-%gve+`ZS(N?*`rUYlMNqO>;ru4#Ze0Ul3Sg4lTh=T)F9 z_{T&L2L?$b?gBYLt8GqUP+x7ZxkDd2U1+)YS4eEkdm$;~qN|Wfvt$W&-pw^2h%8l` zPDXT_Kmm|hO5#8xAhBmqeOTWMFx!(tauNV!KzvPr8cFf_P>u|7RpCKKQ4ZhKIkww? zWb^KN^S#5ScS9FhoK%`O7|yCa#coS`HJ%cl`{s2vSsKGb_bB;VB3Lp})ng zCxJgup1FpFg<>(;Q7O5$#c>OF(ZYor{bKI#tD zBkzdZ$9jFpWJGy= z21W@gBtl%EFbpe5Wy>VomIG;m#jS+E1xG5_>=fxvp5riA-M|^Z!fUXr&sP%H`6aQB z#RdZDl3EX7hFAp%aCiwEfwSo zHJ^%eQsjHCxtu7@A;2&`=40?mPbBf$%8YRcKAOa#z$KWRwPwQz-KiUbDf_iqJ7%bF^>&>uQE znEEnMYKbCvL6Wj@61~_wjdTb1AmC_`p@8dlF0H&W|cTqnWQA;t2__niE zE%Qky9llpUQ}<6mPy%6wg)U5Ih{e{h{te&m)3iox)3ul;zR6`YjcHmZ%uC5NO=IV>g6_|pZuJ259_VTlJ(anJKX;WD zISRNY`k14zY6*av;a3fg>)<$`rFK!_m)dh)H7&EdUN*~iPegds-eBr9O}2YvyGyp` z0A#7%BHI9spyQ|)ej+{PSZ28atHn@7y3yr`l{mXC8GA%9!PAhE9POH)O{-^C!#%Ti zW}2DnrHTA3lZfIVvvcpJ?*u?Ol!1_g=1R}=Aa+VCy!S?Z8tP@BZig`B7O-bRpdM;Ix@mqvcC4bX-NHRbM~aKBy%3%~y_73i hWR0h^IF(BlO}>+fgSM6|%pj>N{I;x!jg-8_{{>E Date: Mon, 6 Nov 2017 14:42:03 +0000 Subject: [PATCH 11/22] multiple processes happen, at least --- sor_redblack_MPI/sor | Bin 13160 -> 13160 bytes sor_redblack_MPI/sor.c | 2 +- sor_redblack_MPI/sor.o | Bin 13160 -> 13160 bytes sor_redblack_MPI/sor.sct | 7 ++++--- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/sor_redblack_MPI/sor b/sor_redblack_MPI/sor index 4726155c8030d202b9bc5818f0377e70611a9943..16e50dc9034fcf0eb8f141c996945f41e51ac449 100755 GIT binary patch delta 935 zcmX|AUr3Wt6u)=+wavNRZ__cSiB7lqC-f7`Tn`f$qkW1GRud8gC2|i|l%Ppikggs? z1m_{>57wjyi3*B6q&;LpT1J6|5|L0w(r09%#4=64&bMjz;hyt5_ji8h+<#I)3iPMZ z%8>Q3)|EZR8rD4pgUQF~#Q}XfZGjB^C_MS2Ww(n)X` zGONvqS+IOdmL=1MEC*QrOR=xahCLvgv*79&N+D>dv8Rp1U1N=1BYBanP-c*d8C(L~ zHe}?a#iK~TSOzY|vSWEDJua=S!<@mnw|1t2czb?IE)-PudMs8iw%1@Ap2?z1#)ewf zv7us?by>L_5SVSx97bgGIX;{GVp(3Lu=_fKIhEA5RsaJx1 zWk=v1%ce$n&76f+43Tz047$HD^y-v^WU<%%9g(C*eM!U`liUh}-MpZk$1qk|e+Pd4 z1Wkoe-jTgOIaabru}7vJ3FJ{ZmQVLG)dB363` z&LO+cy7T;ZlAG~*C^2H|E6A(`tz#Hlc;xV*|HsjR-=Nhg(9baB^r7;ivz$gFw!C2t nHNli1X#K{xkRNDCxwdH=HGv1wPN^_-A(FQLpA;D{8CLxRNZTgN delta 941 zcmX|AeMnPL6u2y^2@y29l_w zJ-J_JOCX`g*8XWo3K+xSe}rE8IYH}td~0<6iCpD=)KuG_;5&Fz+!wqfI0Wi}$;d|P z3OY5l0(C%lbfU1#g3qJB3iJcqiz%R2;cZNw?nE>pUUoh|ze8_|$q9o(9tG+8PD3Dy z5M^_V^HnC6`r(Z}i(Y^q`unE72(@XiW=ccIDwAAhExR@Zow0TFTt{3At%20IL0Syc zarP^6^X3{Q#5dvezozcyaTPe5c_{bL%a(?n{xORBaaED1j0JItO(jnxj#dk9lT%}G!wosYhEsrRV~ zq%IiAG)0KSgE5f?U3it5R-p2N vwTLbTGjn>hRDemlUFVX*LN1_=BAsU&dBBNi$0`8Lh-S8L;Y@JE(Ifl=$8;+x diff --git a/sor_redblack_MPI/sor.c b/sor_redblack_MPI/sor.c index c8240c2..006ffa3 100644 --- a/sor_redblack_MPI/sor.c +++ b/sor_redblack_MPI/sor.c @@ -88,11 +88,11 @@ void *main(int argc, char *argv[]){ // Just to take into account that proccesses may run out of time, to avoid race condition. MPI_Barrier(MPI_COMM_WORLD); - for(i=0; i57wjyi3*B6q&;LpT1J6|5|L0w(r09%#4=64&bMjz;hyt5_ji8h+<#I)3iPMZ z%8>Q3)|EZR8rD4pgUQF~#Q}XfZGjB^C_MS2Ww(n)X` zGONvqS+IOdmL=1MEC*QrOR=xahCLvgv*79&N+D>dv8Rp1U1N=1BYBanP-c*d8C(L~ zHe}?a#iK~TSOzY|vSWEDJua=S!<@mnw|1t2czb?IE)-PudMs8iw%1@Ap2?z1#)ewf zv7us?by>L_5SVSx97bgGIX;{GVp(3Lu=_fKIhEA5RsaJx1 zWk=v1%ce$n&76f+43Tz047$HD^y-v^WU<%%9g(C*eM!U`liUh}-MpZk$1qk|e+Pd4 z1Wkoe-jTgOIaabru}7vJ3FJ{ZmQVLG)dB363` z&LO+cy7T;ZlAG~*C^2H|E6A(`tz#Hlc;xV*|HsjR-=Nhg(9baB^r7;ivz$gFw!C2t nHNli1X#K{xkRNDCxwdH=HGv1wPN^_-A(FQLpA;D{8CLxRNZTgN delta 941 zcmX|AeMnPL6u2y^2@y29l_w zJ-J_JOCX`g*8XWo3K+xSe}rE8IYH}td~0<6iCpD=)KuG_;5&Fz+!wqfI0Wi}$;d|P z3OY5l0(C%lbfU1#g3qJB3iJcqiz%R2;cZNw?nE>pUUoh|ze8_|$q9o(9tG+8PD3Dy z5M^_V^HnC6`r(Z}i(Y^q`unE72(@XiW=ccIDwAAhExR@Zow0TFTt{3At%20IL0Syc zarP^6^X3{Q#5dvezozcyaTPe5c_{bL%a(?n{xORBaaED1j0JItO(jnxj#dk9lT%}G!wosYhEsrRV~ zq%IiAG)0KSgE5f?U3it5R-p2N vwTLbTGjn>hRDemlUFVX*LN1_=BAsU&dBBNi$0`8Lh-S8L;Y@JE(Ifl=$8;+x diff --git a/sor_redblack_MPI/sor.sct b/sor_redblack_MPI/sor.sct index 8e5d886..7fc2829 100755 --- a/sor_redblack_MPI/sor.sct +++ b/sor_redblack_MPI/sor.sct @@ -23,11 +23,12 @@ #for n in `seq 1 7` #do -for p in `seq 1 4` -do +#for p in `seq 1 2` +#do +p=2 export OMP_NUM_THREADS=$p echo Running on $p mpi processes /usr/bin/mpiexec -n $p ./sor -done +#done #done From df8e68ba2227b43fba11d55ce3312de03b0baf59 Mon Sep 17 00:00:00 2001 From: ej159 Date: Mon, 6 Nov 2017 15:11:33 +0000 Subject: [PATCH 12/22] Still playing with MPI --- sor_redblack_MPI/sor | Bin 13160 -> 13160 bytes sor_redblack_MPI/sor.c | 12 ++++++------ sor_redblack_MPI/sor.o | Bin 13160 -> 13160 bytes 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/sor_redblack_MPI/sor b/sor_redblack_MPI/sor index 16e50dc9034fcf0eb8f141c996945f41e51ac449..34eae1ca42e91e4edc2c4c3a264e7ed6dea69878 100755 GIT binary patch delta 2667 zcma)83v5$W7(Tb%Wh)!Kx9yreV4(}QdjQ+oArE=TI;OjWMQYe|z!)Q$V=)F%Hz7vs zpqr-7B`haV&=|o7MvW0zq8l-?WuVSz0^t=w48sxbc(}TiF&tRGb8qifrX=2^{h#Oi zzyCj{w@0Z}YIi3aykcAGSEjl|qCRzPzbrI5VhFWy&6c25bB;^;DR&|9>$ABFu1=la zUhsJEbf}o$@{+^2_rpB~L;gO8L(P}9Rb(+oh)9x&oUZvJZn6@73nIiye~ihECy_9g zQ6ryY(U*ULd@B)1sNKVFG^Bbh+Im--LsjB5lZck~BeAa=d}ZZwYtD$>LDoF#?w9>H zTs3k_j57;aa-c}ca(5{y;c(bJ;tmf9mLe%xSqD>Yt(P1}kyE6^M@&gGD`B>jN>WRi z` z|2<4m*?un^2H+1Ec>M;?TzXXcxKjvD$!Bg2&+UmSxbC8nOXQhIc zBFX1y?rJDwh<%DLh2Ha`Yfgg-}aZJY@9t->a12|b9Nkf6$ zx@_D3fNU9u+z(A1tu~Ly9Ggo339Na*a`$STYd!lWHC;H4Q~^!hn5fALO;aP>h|s(l z1J$71y%PhJ1A|dB9R5r1)pS3xfoyHH4|@>3yfkoCIXb@R478|j2F~FOp^YkwKIQ18 zQDt|GBhX0*2T&FW2|9xBzUomBOU5Cdm;{jk2)}|ouhZBJh&r1G@A=I;`W%e+qxlB3 zmzZdu1DGM9((Z?>70ONx6a!u<$3kId5nj+YO9CgWJ_Rr1#msE(s-LzYe5sbcEzB^LFi-3JLVv|c*;x9WgRQPJYcOn;rg`Vzbv+Vwh@n zz~wQEh2}UIwibg$&&<(^)x+eKEBYx3B zt+O68crA3@tSYXCcFrp1f|Qez@SP%U!*`ohoT6W(bl|5kI1YCq6jw7%&ecX-f9QIr zGd}7zMO&Os5I*EAHdROZNugZEa|Ya?UdYHbG+O8f8M&#G?^%oRTDO9;SESc67MRp= zqw-#wo{>ZgGQH6^ul9E{bKo{3JC3q$RMFBUAZQ`l_1^eT4-5h W({gm_YVURVIAaz^+E?YLasL1-ei?ZH delta 2685 zcmZ8j3v63g89vvK#9k6#+i_^xDvi6^iCZZTmvwRIlKN)ua$H<3V##P&l7=d=)FIY1 zih)%D$MFid=0c()q-}r{7()~>7L*CK6KqNI*xHq;tpWpD!B*1juA`$(N67jz-#OQA z!>)Aie;)ty`~UykqeZpoNU0$xkFNWjHQ*xR35@==&iIW;2P>8iJI0*);$6y)O6Ohg zob9ODcxAreX-mZxHlz5+Qa{O2+mN>Uy%@U08Qu zr`y3!nW_the$kl|V@7k8BPae6R-Hs9trLoQuVG!#u8Y@}xy8VuPhn!>)%@=m;$KuA z_b)4LN~=H9_83*GCbUN4KTnhY3iQyl$?F3#gOL6PCfc` zAExPu$CGaLxT(7BVjdx{!(#%$I&5j@?qo7cvLoavjmrO?{BV6#E)NkB=aVIQ%k+}m zZXU@eMB5JLJW3@Voo!3!`Ab0)~V4f%bRsO(yh%Y$)pU0$4u%I(uMIq3$Skv9k5jmmvf zA4TOmf5he_-^^}YrS)fGTs~-_>IioYZl9p_r{FD#{UoA#f8%nKo&GC`YQcYgNs+f) z!d8#R9<7$kpW%MMzk30X<;4;4&D$IqdjkVx0wD{u4njuuy`fbL*xExLEOwcPIEx}X zOcy9HqFG>GQj)V$I5EQ=QWCd0Sn}aRB0VKt&v%lDYOZ^y5kvqKP6LcXmPl$YoS2Mr z8Jc{5g{BPQbP#0tmwY94h9*vkz0E7?clE*C)Ca~${i*Bp#n|tu+HmR5sFY;{8&O~E zo7h0K86%Ib+Pq-S#UT%$gfB3^f03In8a~=dP$TYe>awVfuo{1s>)xGu3+|vIbcl}e zx{=F?>dH@ElL-0I*g(Qe($Wb`(4-a;p2>*6&GDaPXMdU{~Z5utz+l0wol3#ADGy;N~pzV1xwhsdQKzb6|qHTBk(tjnKI@?847in_gYD+7M_6EeMT9g!|;R4t* zC110<$;TpPu=5-yZB#Xng3@~Q&ZU91G;Q8xXFs-ATHE=my6p>gcG_NUaM;-uyLZc4 zERt9aO*XtQW7NiF3Te9GGG?U0I=-h|bP81y{B#=;<%pbgnDSAL7Fv&^treZH_s!S>)$5TaJ}Jd989U7(g@62i zaS!Kg+FYNAv;}!8k~46@H#IGyR`9=2QW^fkz-jkjp#Y$Y)5pT8<#6gxk}5yWx<{XK?;q&x|MI~815dfVJ?`HA{sa9DZg2EHW^`5|H-uF?`%sC9oIe=d zdk`cs;N@&6v;TYFw!T%fP!h7a4Z}7|1j7Nmbuy)k1DGyl9QdRsj=qJYh_YxowGZOWsU|VwyU<(b) ) ? (a) : (b) ) #ifndef M_PI #define M_PI (3.14159265358979323846) @@ -36,14 +36,13 @@ void *main(int argc, char *argv[]){ int myid, numprocs, rc, ierr; double total_start; double total_time = 0.0; - + total_start = omp_get_wtime(); ierr = MPI_Init(NULL, NULL); MPI_Comm_rank(MPI_COMM_WORLD, &myid); MPI_Comm_size(MPI_COMM_WORLD, &numprocs); MPI_Status status; printf ("Process %d of %d is alive\n", myid, numprocs); - - total_start = omp_get_wtime(); + h = M_PI/(double)(N-1); for(i=0; i$ABFu1=la zUhsJEbf}o$@{+^2_rpB~L;gO8L(P}9Rb(+oh)9x&oUZvJZn6@73nIiye~ihECy_9g zQ6ryY(U*ULd@B)1sNKVFG^Bbh+Im--LsjB5lZck~BeAa=d}ZZwYtD$>LDoF#?w9>H zTs3k_j57;aa-c}ca(5{y;c(bJ;tmf9mLe%xSqD>Yt(P1}kyE6^M@&gGD`B>jN>WRi z` z|2<4m*?un^2H+1Ec>M;?TzXXcxKjvD$!Bg2&+UmSxbC8nOXQhIc zBFX1y?rJDwh<%DLh2Ha`Yfgg-}aZJY@9t->a12|b9Nkf6$ zx@_D3fNU9u+z(A1tu~Ly9Ggo339Na*a`$STYd!lWHC;H4Q~^!hn5fALO;aP>h|s(l z1J$71y%PhJ1A|dB9R5r1)pS3xfoyHH4|@>3yfkoCIXb@R478|j2F~FOp^YkwKIQ18 zQDt|GBhX0*2T&FW2|9xBzUomBOU5Cdm;{jk2)}|ouhZBJh&r1G@A=I;`W%e+qxlB3 zmzZdu1DGM9((Z?>70ONx6a!u<$3kId5nj+YO9CgWJ_Rr1#msE(s-LzYe5sbcEzB^LFi-3JLVv|c*;x9WgRQPJYcOn;rg`Vzbv+Vwh@n zz~wQEh2}UIwibg$&&<(^)x+eKEBYx3B zt+O68crA3@tSYXCcFrp1f|Qez@SP%U!*`ohoT6W(bl|5kI1YCq6jw7%&ecX-f9QIr zGd}7zMO&Os5I*EAHdROZNugZEa|Ya?UdYHbG+O8f8M&#G?^%oRTDO9;SESc67MRp= zqw-#wo{>ZgGQH6^ul9E{bKo{3JC3q$RMFBUAZQ`l_1^eT4-5h W({gm_YVURVIAaz^+E?YLasL1-ei?ZH delta 2685 zcmZ8j3v63g89vvK#9k6#+i_^xDvi6^iCZZTmvwRIlKN)ua$H<3V##P&l7=d=)FIY1 zih)%D$MFid=0c()q-}r{7()~>7L*CK6KqNI*xHq;tpWpD!B*1juA`$(N67jz-#OQA z!>)Aie;)ty`~UykqeZpoNU0$xkFNWjHQ*xR35@==&iIW;2P>8iJI0*);$6y)O6Ohg zob9ODcxAreX-mZxHlz5+Qa{O2+mN>Uy%@U08Qu zr`y3!nW_the$kl|V@7k8BPae6R-Hs9trLoQuVG!#u8Y@}xy8VuPhn!>)%@=m;$KuA z_b)4LN~=H9_83*GCbUN4KTnhY3iQyl$?F3#gOL6PCfc` zAExPu$CGaLxT(7BVjdx{!(#%$I&5j@?qo7cvLoavjmrO?{BV6#E)NkB=aVIQ%k+}m zZXU@eMB5JLJW3@Voo!3!`Ab0)~V4f%bRsO(yh%Y$)pU0$4u%I(uMIq3$Skv9k5jmmvf zA4TOmf5he_-^^}YrS)fGTs~-_>IioYZl9p_r{FD#{UoA#f8%nKo&GC`YQcYgNs+f) z!d8#R9<7$kpW%MMzk30X<;4;4&D$IqdjkVx0wD{u4njuuy`fbL*xExLEOwcPIEx}X zOcy9HqFG>GQj)V$I5EQ=QWCd0Sn}aRB0VKt&v%lDYOZ^y5kvqKP6LcXmPl$YoS2Mr z8Jc{5g{BPQbP#0tmwY94h9*vkz0E7?clE*C)Ca~${i*Bp#n|tu+HmR5sFY;{8&O~E zo7h0K86%Ib+Pq-S#UT%$gfB3^f03In8a~=dP$TYe>awVfuo{1s>)xGu3+|vIbcl}e zx{=F?>dH@ElL-0I*g(Qe($Wb`(4-a;p2>*6&GDaPXMdU{~Z5utz+l0wol3#ADGy;N~pzV1xwhsdQKzb6|qHTBk(tjnKI@?847in_gYD+7M_6EeMT9g!|;R4t* zC110<$;TpPu=5-yZB#Xng3@~Q&ZU91G;Q8xXFs-ATHE=my6p>gcG_NUaM;-uyLZc4 zERt9aO*XtQW7NiF3Te9GGG?U0I=-h|bP81y{B#=;<%pbgnDSAL7Fv&^treZH_s!S>)$5TaJ}Jd989U7(g@62i zaS!Kg+FYNAv;}!8k~46@H#IGyR`9=2QW^fkz-jkjp#Y$Y)5pT8<#6gxk}5yWx<{XK?;q&x|MI~815dfVJ?`HA{sa9DZg2EHW^`5|H-uF?`%sC9oIe=d zdk`cs;N@&6v;TYFw!T%fP!h7a4Z}7|1j7Nmbuy)k1DGyl9QdRsj=qJYh_YxowGZOWsU|VwyU< Date: Mon, 6 Nov 2017 15:18:14 +0000 Subject: [PATCH 13/22] Now it runs on mcore48 --- sor_redblack_MPI/.Makefile.swp | Bin 12288 -> 12288 bytes sor_redblack_MPI/Makefile | 4 ++-- sor_redblack_MPI/sor | Bin 13160 -> 9867 bytes sor_redblack_MPI/sor.sct | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sor_redblack_MPI/.Makefile.swp b/sor_redblack_MPI/.Makefile.swp index 19e5c1bad47ffd3b5f40622a18cfb8482b017680..1cbc4fb6a2b1c49540ce82a452950b84d1b27f39 100644 GIT binary patch delta 195 zcmZojXh_%~AiyZJSy13JKd&Vp1H)V(W)NUt5SlEgU@Z9>$a@9E*MWE=5N`nD6+k?9 zbF6|1Up;40u7YlwLUB?~Vlj-JU&N4{lbV=k#mT_HsiNWRtf>Gb-FzI~gEbX&^A%Ja ifJiS{L8aOUELh6`)*f$U1u-YyNH3X4os$LhKL7ykcQA$k delta 139 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 W%epgBai~bq&1yq&l@%3r+W$8XX|22f diff --git a/sor_redblack_MPI/sor.sct b/sor_redblack_MPI/sor.sct index 7fc2829..1e25c1e 100755 --- a/sor_redblack_MPI/sor.sct +++ b/sor_redblack_MPI/sor.sct @@ -28,7 +28,7 @@ p=2 export OMP_NUM_THREADS=$p echo Running on $p mpi processes -/usr/bin/mpiexec -n $p ./sor +/usr/lib64/openmpi-1.10/bin/mpiexec -n $p ./sor #done #done From 39746352b39069adc8bfeb2946b23ab8f3cd76d8 Mon Sep 17 00:00:00 2001 From: ej159 Date: Mon, 6 Nov 2017 17:16:41 +0000 Subject: [PATCH 14/22] More changes to MPI, weirdly error now explodes --- sor_redblack_MPI/sor | Bin 9867 -> 10518 bytes sor_redblack_MPI/sor.c | 56 ++++++++++++++++++++++------------------- sor_redblack_MPI/sor.o | Bin 13160 -> 10518 bytes 3 files changed, 30 insertions(+), 26 deletions(-) diff --git a/sor_redblack_MPI/sor b/sor_redblack_MPI/sor index f082eebb825dab6c5ecc5ecf24c39ae4d89e21d7..1a185f5c88bae55cd8c3d9c483155032e9e1c720 100755 GIT binary patch literal 10518 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 literal 9867 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 ) ? (a) : (b) ) #ifndef M_PI #define M_PI (3.14159265358979323846) @@ -29,7 +29,7 @@ double x[N][N], xnew[N][N], solution[N][N]; double calcerror(double g[][N], int iter); -void *main(int argc, char *argv[]){ +int *main(int argc, char *argv[]){ double tol=0.001, h, omega, error; double pi = (double)4.0*atan((double)1.0); int iter=0, i, j; @@ -61,42 +61,46 @@ void *main(int argc, char *argv[]){ for(i=0; i= tol){ - for(i=1; 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 literal 13160 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 W%epgBai~bq&1yq&l@%3r+W$8XX|22f From 5c6cff099438bac78527591122a6e6e0c27cd33f Mon Sep 17 00:00:00 2001 From: ej159 Date: Mon, 6 Nov 2017 17:22:23 +0000 Subject: [PATCH 15/22] Still fiddling --- sor_redblack_MPI/.sor.c.swp | Bin 0 -> 12288 bytes sor_redblack_MPI/sor | Bin 10518 -> 10550 bytes sor_redblack_MPI/sor.c | 2 +- sor_redblack_MPI/sor.o | Bin 10518 -> 10550 bytes 4 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 sor_redblack_MPI/.sor.c.swp diff --git a/sor_redblack_MPI/.sor.c.swp b/sor_redblack_MPI/.sor.c.swp new file mode 100644 index 0000000000000000000000000000000000000000..d4af2eb19ca3cf0912de4fc0e44710d6c368f1e6 GIT binary patch literal 12288 zcmeI2UyLM09mk6kfe}0q9u4v5Epv9y%+2)7{$cO-<_LH2u(Gpza;&J!X6T*n*{R*0 z?yx-giV}^WQ3x@bX#D=Fx_f75_aYcx zF6q7f%yd`%s(#hq`qi&$bG>DKez`^WR~rI9cM0*!YvN14d(b-e&p!*%-?B%MyQ8YO z`g%Y8P7u0ti`T2p%AZah;>d4sFkKy>=()4~DVyw`)-lwnNw1^6buT zyLEAy3#y&0m;54EAXnf6D=>_^rxuT|&o=57x1BlhX}ag`^$*-l-XK>XS0Gm)S0Gm) zS0Gm)S0Gm)SK!7~ARgQ#zKY==OCI5wKDR>^ZzyNQ3T!`O;H^48z_rS9t0v^}}4}f#v9&k7K1o-P6Lc9u|1K$81cpNmr zz2HB$3-K%P18@zr!4u#DI1j4eIJg7c4*u~mA$|*f0)7mh2j2oM@Cf)6_$0Um{H=h# z!OP$!@EmvsJPodbCqWx5gOlJmc<(kLUI!x(fr=p|ln^f#R;h(5*O+^=(Xj3TEYH7PY+Z(!PiVmC6XhUvp>}+Zq<$;>i zdhiQ|x~@>y-inMU@bD5(;A>ktm9e*wqY_lalM=H;S{T6V?!e%N*gr`Eu2!-3B zbm+2-d+_367T^H=S5?Pa{M8EK7qyeUul3z+8xLNzstrrc6a`$wHv8j&0bZPHZ@Y2( zGLO$NA-b-PVmpjsjHfT)moh2$H5)-E)(BPw*(Iaf4;({}sbQJagzP*O1uiO=*$VGt zwa?pODBaNDYrM(TYCpdA=*mN?ldFgySSg?X(>OI#oj&Sz_KcHBkX5K&A@2U6we|BW z4_CqCD(WU&(3w9wOTgoMR}$u zD@Cd1kB7x0+DTl?u3^aXPPu`RHk(|F_`@KMihQm(D)za&R-?}jqnP6|ws&2Q=78)@ zCm3P@#63HvK^Sy8ZWOr@_3bg)(b(_w!oUxPkvCoLIm_p)BSONq&c@l5Pixl|vS*UT3?)?Uj9_xX~F^pb(HQ+3WdR8Hz~ ztFOxk%W;dqH|9!7H|B>tA?cc5CcCe+hxAmG$ct){q1EM{^jw_`>0DE-W~81%nkkQ3 zbb4*3iX$a%raJKT5>HfGX=PQ`CQppgQB|@jE5r&W*J|cerIl5wE3VL?XsINuQ}C5E z2cr-<7$3;MR|FA>f|>~Q-KbhMqh7Vjk@SsL8*gPM3D-2>)Kqe#^TN~y&?MORjMR3g z)HA8XWm%C#QB4_fuWHr~kMO7ga!5_Y?Su;*14_cF=bhekCLb96!CHk6H^nng4-@L? z^*Yt82iwDvu-55bLB@%TSg$H(916N>uZYO@VRU$_h3ke40y`{fUhPR#O`d z29)f%2eu=W0MaH@Bd_hvqa(( zD^H&~^orEi*-}t-FrL9KB)ek9al6uYRmhMrTdmL4=TA2l=4a;@Pv3ufwlTXnw_u7H z+4W(ltoEDWxMf$iOd^B-+2%O|Hzqy6*K~%|U1q&X^9>RLdr7HOqV$`{_V>>t&{c`0 z3R}3Fw;FtyIlX92oMx);vvFNFZdli8jFd9*g9FbY_l*Xzds;ZUhfBR+=sDS0O&zO} zv1LPyd#+FG#;7vJ35E=nTgGOISM$g;sisrXK$_DHxebcZNZVFaFMJNdg{8Y&HwIE) zS(!tN&La8p2kJ=OjrCn-vOXGN+gcxw`GKeXUP=zloETQ@0p5FeKNHczUmmIhJGSf@ m>36)LswKvsL_CJL}74;J+8xOcE5iXBgG9V(Ln7yTEhOycqY literal 0 HcmV?d00001 diff --git a/sor_redblack_MPI/sor b/sor_redblack_MPI/sor index 1a185f5c88bae55cd8c3d9c483155032e9e1c720..f5fa6a946a26a2ab69ba899018b694b9e819acf9 100755 GIT binary patch delta 2339 zcmZ8j4Qx|Y6u!5ktliqZzHV#R{jj&~RmL=o3U17R7Bb`w7XyT!2?(8rWgv$Ap^L$+ zqd-=dnJz~W1JQyZjF1?{A{k(^4&*l`js$UuF%qJt<;So_;}r3E&TR{mo9x{Cedjy( z-gEAKz1z3))XGpf@9dv-)Uz|2iI(aaQv~K{r{kYL>Gx;*1n&pVXUYRfb|A?PKn>p{ z_t=Gm_1L{)&;!T#=Q&mD;_Kt>+fI&ra`1Tl-Bn+9-P?O^$Y(ggc?9HX&bmT}FAnUrcb5@Y&;nnZ&g;+ZvMNk>??x*XdvQd#nId90b!_f;2~$e3F@f6% zQ<-8BfwvN-O-0B7U2fX_rPrqPyhJ@Up11 z7L~t;LR#RiN$WMXf@+@GHD*^B+wt<*{doV7yoylkz7rxe`XEgU+~Hcyc)Qvp71uH> zUW98w;}I0;ITwVe*Z47o)Qq>?x@ZjGkW+=%Upe2@)HGWv-im?AB>X7@QS6lYX%Kdi~9=Hu`|hWetC=VMXhzq+pVb*RlF z0^WG2>%FVg=H3o<+sFag%RG^28*)w3+Q^+;I@7pRaUm|fYTN)58FO9ULLZ)VVmIiC zU?Sv{(_vxe;&NJAB#5r_f%C$38V@U4i&LVmR-F@QTUgx2Wr&?{72&out@V}6ynyS)yQITF4L(rNwY6Y zd)~x?O7Cxmjndq#)Pakm@j{oSfVaU}skF#-aE=z4TLj%ccpi|C9? zHse$@Qudtv~_RYQgDw7u6lsP^)^Q zzy67rEC3s99@7s7h1K`Dufs>SXZTz=XIp1kj+7Rd)H_^f{ZKBu`A_hQ+#uB{jc+L} zZQI}2+}^IZx4;qkTUP^3gj<-z-bX#AeFA$E^x2;-G9kMU5v$Eo41HOqdK}V*L&!gX z@9Z=A4R~lTqf^dy^7&Ac{XK60IcGZ$LwAnO2Zp+HtBt%FPUlye8!$O)4KR^kEw?05 zi!4Z%2Q>wi=Eu)SYeBVn7&E6f41)#L&|GMP$$~j%`kJYQz*AUl4ku9=g{DcE{>Uc6en*%o1121JcSlK&Rm=bj9ecN5d9}JZ| H^@rgr8-x?|24)uHOCU1M z@ot7$aUwyEcQDLShzxSPjp2BP`#IjkFe_1{o8!k3w|ZIgBR(!DU<8(Jq>dG>lkJgh!i7s-P;}r)yaX|vj3<1yY_6q9BeeXiF|p~$Ct}K zotuP({mA^iyIc1EqLDk*RUm2eS_jPzLYkks)PlDTg&!i6+h!UW8vQ#?_Rmnc?8Zr{ zLCC5gSiB&W1M1UAQj#Y)sZ)K5nUvi)aeGqzB5o0py)#0Ot%b7(Q#(-vs@8}ZDxuN;u2E1`|BPghEZ;fzk&N>V)}to~O~ z>6?eMnV zfti1)mvl{dcZBu?ykYQAUqT(=GGuAEqqa#0R2$aQAaofddJaA_l%-5fqR*~(ruou4 z%};n^3aGKdG{|Iu?m?6__m+=L!Cs>yiIwoFz^%a4MFKu!nmOm8qVT$6?y`SE6YhbJ zjcNa*g^Vfm5QL4nBCmhpUy9T<{s*00iIsNqVKVlk#z7aD}MQ^M)juz=7LS&5$Kk{cq5{i*OG9MG7*U>qlwnB1;|M(Lxl^>3n zT$-yY2ie)>9EbC!Li!|JH`VCfD3bm2N|XJP2R4dM`Ww`V)i5c3V{c)Gcw{R2_u#6* z+d0TEd}4kqGat3Rh)9Leq3SYfcH))=IEeBYcwo+>laOi2rMsZqVxuw~uzZiREBP4p z!9cP?JB9|VrD|FYKcp3DWsI8*8N~Eb(Gx`;kqe0i4x|@pmmY_n^ipkK^r`5B5Td0= zM$9PHvTv4+MySdt1xK_#J@X0ef|WZbHE=xJ0)?w2x(}*WZKXG$2j}Xc(5hC7nN~S$)Pu7%&P2S>hNur` zYn+*Q;8R46I9ubAi4T56)WJ~-!Emx|SRpan8kb7u`HC+WlxJJvX!Z_!EYZaf2r0k~ zB^FFI#O)&4MRtOBkB!*VbeQk$SVmV)rQI7X4yWMM!?hx*hMpXo-M2#f5o%S$Kuj>2 zQ-pENBByo*=U48^Oll!Jmt|6xTcpC$9nP)8B(LP2!eW$5mH2rFq#}E)x9k~V<1R+Y z9_M}tNj7G7S6XZLMlZl3g^+Z-@S@6s)p0p7M*O>HBfw`uHZm=`a6rAY(!TQb_e8Y> gM$xw4ULUnuT$&$gXPq_`c38K%gw70=uYREV50^}A= tol){ - + //printf("I am process %i", myid); for(i=1; iGx;*1n&pVXUYRfb|A?PKn>p{ z_t=Gm_1L{)&;!T#=Q&mD;_Kt>+fI&ra`1Tl-Bn+9-P?O^$Y(ggc?9HX&bmT}FAnUrcb5@Y&;nnZ&g;+ZvMNk>??x*XdvQd#nId90b!_f;2~$e3F@f6% zQ<-8BfwvN-O-0B7U2fX_rPrqPyhJ@Up11 z7L~t;LR#RiN$WMXf@+@GHD*^B+wt<*{doV7yoylkz7rxe`XEgU+~Hcyc)Qvp71uH> zUW98w;}I0;ITwVe*Z47o)Qq>?x@ZjGkW+=%Upe2@)HGWv-im?AB>X7@QS6lYX%Kdi~9=Hu`|hWetC=VMXhzq+pVb*RlF z0^WG2>%FVg=H3o<+sFag%RG^28*)w3+Q^+;I@7pRaUm|fYTN)58FO9ULLZ)VVmIiC zU?Sv{(_vxe;&NJAB#5r_f%C$38V@U4i&LVmR-F@QTUgx2Wr&?{72&out@V}6ynyS)yQITF4L(rNwY6Y zd)~x?O7Cxmjndq#)Pakm@j{oSfVaU}skF#-aE=z4TLj%ccpi|C9? zHse$@Qudtv~_RYQgDw7u6lsP^)^Q zzy67rEC3s99@7s7h1K`Dufs>SXZTz=XIp1kj+7Rd)H_^f{ZKBu`A_hQ+#uB{jc+L} zZQI}2+}^IZx4;qkTUP^3gj<-z-bX#AeFA$E^x2;-G9kMU5v$Eo41HOqdK}V*L&!gX z@9Z=A4R~lTqf^dy^7&Ac{XK60IcGZ$LwAnO2Zp+HtBt%FPUlye8!$O)4KR^kEw?05 zi!4Z%2Q>wi=Eu)SYeBVn7&E6f41)#L&|GMP$$~j%`kJYQz*AUl4ku9=g{DcE{>Uc6en*%o1121JcSlK&Rm=bj9ecN5d9}JZ| H^@rgr8-x?|24)uHOCU1M z@ot7$aUwyEcQDLShzxSPjp2BP`#IjkFe_1{o8!k3w|ZIgBR(!DU<8(Jq>dG>lkJgh!i7s-P;}r)yaX|vj3<1yY_6q9BeeXiF|p~$Ct}K zotuP({mA^iyIc1EqLDk*RUm2eS_jPzLYkks)PlDTg&!i6+h!UW8vQ#?_Rmnc?8Zr{ zLCC5gSiB&W1M1UAQj#Y)sZ)K5nUvi)aeGqzB5o0py)#0Ot%b7(Q#(-vs@8}ZDxuN;u2E1`|BPghEZ;fzk&N>V)}to~O~ z>6?eMnV zfti1)mvl{dcZBu?ykYQAUqT(=GGuAEqqa#0R2$aQAaofddJaA_l%-5fqR*~(ruou4 z%};n^3aGKdG{|Iu?m?6__m+=L!Cs>yiIwoFz^%a4MFKu!nmOm8qVT$6?y`SE6YhbJ zjcNa*g^Vfm5QL4nBCmhpUy9T<{s*00iIsNqVKVlk#z7aD}MQ^M)juz=7LS&5$Kk{cq5{i*OG9MG7*U>qlwnB1;|M(Lxl^>3n zT$-yY2ie)>9EbC!Li!|JH`VCfD3bm2N|XJP2R4dM`Ww`V)i5c3V{c)Gcw{R2_u#6* z+d0TEd}4kqGat3Rh)9Leq3SYfcH))=IEeBYcwo+>laOi2rMsZqVxuw~uzZiREBP4p z!9cP?JB9|VrD|FYKcp3DWsI8*8N~Eb(Gx`;kqe0i4x|@pmmY_n^ipkK^r`5B5Td0= zM$9PHvTv4+MySdt1xK_#J@X0ef|WZbHE=xJ0)?w2x(}*WZKXG$2j}Xc(5hC7nN~S$)Pu7%&P2S>hNur` zYn+*Q;8R46I9ubAi4T56)WJ~-!Emx|SRpan8kb7u`HC+WlxJJvX!Z_!EYZaf2r0k~ zB^FFI#O)&4MRtOBkB!*VbeQk$SVmV)rQI7X4yWMM!?hx*hMpXo-M2#f5o%S$Kuj>2 zQ-pENBByo*=U48^Oll!Jmt|6xTcpC$9nP)8B(LP2!eW$5mH2rFq#}E)x9k~V<1R+Y z9_M}tNj7G7S6XZLMlZl3g^+Z-@S@6s)p0p7M*O>HBfw`uHZm=`a6rAY(!TQb_e8Y> gM$xw4ULUnuT$&$gXPq_`c38K%gw70=uYREV50^}A Date: Mon, 6 Nov 2017 18:40:09 +0000 Subject: [PATCH 16/22] Maybe it's tidier? --- sor_redblack_MPI/.sor.c.swp | Bin 12288 -> 0 bytes sor_redblack_MPI/sor | Bin 10550 -> 10534 bytes sor_redblack_MPI/sor.c | 33 ++++++++++++++++++--------------- sor_redblack_MPI/sor.o | Bin 10550 -> 10534 bytes 4 files changed, 18 insertions(+), 15 deletions(-) delete mode 100644 sor_redblack_MPI/.sor.c.swp diff --git a/sor_redblack_MPI/.sor.c.swp b/sor_redblack_MPI/.sor.c.swp deleted file mode 100644 index d4af2eb19ca3cf0912de4fc0e44710d6c368f1e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI2UyLM09mk6kfe}0q9u4v5Epv9y%+2)7{$cO-<_LH2u(Gpza;&J!X6T*n*{R*0 z?yx-giV}^WQ3x@bX#D=Fx_f75_aYcx zF6q7f%yd`%s(#hq`qi&$bG>DKez`^WR~rI9cM0*!YvN14d(b-e&p!*%-?B%MyQ8YO z`g%Y8P7u0ti`T2p%AZah;>d4sFkKy>=()4~DVyw`)-lwnNw1^6buT zyLEAy3#y&0m;54EAXnf6D=>_^rxuT|&o=57x1BlhX}ag`^$*-l-XK>XS0Gm)S0Gm) zS0Gm)S0Gm)SK!7~ARgQ#zKY==OCI5wKDR>^ZzyNQ3T!`O;H^48z_rS9t0v^}}4}f#v9&k7K1o-P6Lc9u|1K$81cpNmr zz2HB$3-K%P18@zr!4u#DI1j4eIJg7c4*u~mA$|*f0)7mh2j2oM@Cf)6_$0Um{H=h# z!OP$!@EmvsJPodbCqWx5gOlJmc<(kLUI!x(fr=p|ln^f#R;h(5*O+^=(Xj3TEYH7PY+Z(!PiVmC6XhUvp>}+Zq<$;>i zdhiQ|x~@>y-inMU@bD5(;A>ktm9e*wqY_lalM=H;S{T6V?!e%N*gr`Eu2!-3B zbm+2-d+_367T^H=S5?Pa{M8EK7qyeUul3z+8xLNzstrrc6a`$wHv8j&0bZPHZ@Y2( zGLO$NA-b-PVmpjsjHfT)moh2$H5)-E)(BPw*(Iaf4;({}sbQJagzP*O1uiO=*$VGt zwa?pODBaNDYrM(TYCpdA=*mN?ldFgySSg?X(>OI#oj&Sz_KcHBkX5K&A@2U6we|BW z4_CqCD(WU&(3w9wOTgoMR}$u zD@Cd1kB7x0+DTl?u3^aXPPu`RHk(|F_`@KMihQm(D)za&R-?}jqnP6|ws&2Q=78)@ zCm3P@#63HvK^Sy8ZWOr@_3bg)(b(_w!oUxPkvCoLIm_p)BSONq&c@l5Pixl|vS*UT3?)?Uj9_xX~F^pb(HQ+3WdR8Hz~ ztFOxk%W;dqH|9!7H|B>tA?cc5CcCe+hxAmG$ct){q1EM{^jw_`>0DE-W~81%nkkQ3 zbb4*3iX$a%raJKT5>HfGX=PQ`CQppgQB|@jE5r&W*J|cerIl5wE3VL?XsINuQ}C5E z2cr-<7$3;MR|FA>f|>~Q-KbhMqh7Vjk@SsL8*gPM3D-2>)Kqe#^TN~y&?MORjMR3g z)HA8XWm%C#QB4_fuWHr~kMO7ga!5_Y?Su;*14_cF=bhekCLb96!CHk6H^nng4-@L? z^*Yt82iwDvu-55bLB@%TSg$H(916N>uZYO@VRU$_h3ke40y`{fUhPR#O`d z29)f%2eu=W0MaH@Bd_hvqa(( zD^H&~^orEi*-}t-FrL9KB)ek9al6uYRmhMrTdmL4=TA2l=4a;@Pv3ufwlTXnw_u7H z+4W(ltoEDWxMf$iOd^B-+2%O|Hzqy6*K~%|U1q&X^9>RLdr7HOqV$`{_V>>t&{c`0 z3R}3Fw;FtyIlX92oMx);vvFNFZdli8jFd9*g9FbY_l*Xzds;ZUhfBR+=sDS0O&zO} zv1LPyd#+FG#;7vJ35E=nTgGOISM$g;sisrXK$_DHxebcZNZVFaFMJNdg{8Y&HwIE) zS(!tN&La8p2kJ=OjrCn-vOXGN+gcxw`GKeXUP=zloETQ@0p5FeKNHczUmmIhJGSf@ m>36)LswKvsL_CJL}74;J+8xOcE5iXBgG9V(Ln7yTEhOycqY diff --git a/sor_redblack_MPI/sor b/sor_redblack_MPI/sor index f5fa6a946a26a2ab69ba899018b694b9e819acf9..7a9bf523577f20f08d2803f55d3c730b37f7deca 100755 GIT binary patch delta 1998 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 KN1XHjR{aa Date: Mon, 6 Nov 2017 19:25:14 +0000 Subject: [PATCH 17/22] Maybe a breakthrough --- sor_redblack_MPI/sor | Bin 10534 -> 10566 bytes sor_redblack_MPI/sor.c | 18 ++++++++++++------ sor_redblack_MPI/sor.o | Bin 10534 -> 10566 bytes 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/sor_redblack_MPI/sor b/sor_redblack_MPI/sor index 7a9bf523577f20f08d2803f55d3c730b37f7deca..a2f9bd842e72ea3dfa6129538a219a7ce2dd790f 100755 GIT binary patch delta 3388 zcma)9eQZUA)ihNC~EMQDx?*SU*(LKE-Mk=3`o6ZwV>+M!eT9* z5cb1k!UVTww^K8z+e|C1sVZ&h@<#)-#3l(z+I1zYAF!z_pcdJrY!Ddbvv0q1{Y+A{ zPP>xteZO*EjGE&R->|gY%e_yU7T6&bEa)BB84E!R-d?eQ+iK&R(o$wO4gg>5)ZxnHTFv0rKg{b=FM*j z48Q$CUex{v^HVh&%>y3O8*IrFZ>98&ejZHPq)U3;e9zb9_OzTUa|()F=~=_^-$BZB9Mw9yl;ZXRMDO$e2;JK*exP7FkeUTfb*H%# z(mqJ%&XQi_KZNw;+^ipG&XP)oYos}EmfSi^{;gSZ+bnt3EP3H9dG;)MIlnZw#$SzB zs=*QKuzvq9v&$vD`UUiInF~*Zx6p#*X&tS4FJX!?d0gOKgo(FgOyHjprf8G>0&gcg zhj3KjCkYdK$%w#@1N*m7S|kHP@B>nyaFfpnypph$ut(rW2opugc7Y!zOw=S@0zW{Q zC`m2>c3x-=O?IfEvug0Oi|wmh$6`^NOH#+;{bCpk%yUTzc^x#bL?UYN3#-~=(YPaX zq5on|xg`0%ceoE(3gLM`Rhx(#~@UO7b)8*LFvl^1a{Ns5Q{vTmq z6YoPF9A(prY@g$3)kgYdNz!gpV7`x?6KdzAGp24mK~f_qZ)93t979ag@&-!>IFhTJEqMfe7zu!8VOrwVT53drEMGDcUUpUH2l0#Utca53Rm>iu9EAf1g+)y`q;T$^L*f6o;E*Ha}x?EH^(vGk!%DP<57Z2CR`Q`$|D zI4@!u-s!wLlRRzMc~8Q3Q`g~5n_(I{Uim)Di!dbbs`2Ao=-J`e(c+vyA+}%Cb&u<1n7RBL+=GYXHB<#pZHtDbrdiP!OA7&Z)o6Bo&HCyDhfk zSEAySA$Th#KD>@H#2&Z`kv8N=OZe5xaH_4x|CGb!4&4+UPOb7rK(}&`YPBVF`Utt* z7W!9PsKF6>Cw{(+O$N`fMU#i<q~58k|mXs$YYuyxR>vQ-_HO^Fibl z`^2)Gm&y&LImo5N0!UFw<6e1P40$##@9sbW%X`=JXXHZv|8ZId5Hw}PH=URk`m}vR z3E*sNOO?S)5hRvg)Ai&roCAr6{CFhihCagi3PsCi*b>_>>Zv@D4FxiCkSIJv9ck4= zYbcREk`sw9#cAB;C?BfD9mpt{T4dxVx1&8VfoWA6*@G~gv5lLRP0D7aLwRgC5{dAg zwpA>bpRhf_B7CX6nho&|``JhTlKF0Z^BReuA1 z0jL#c@N+pe?D9Z%ZZ2cpydv*u*3b9n>1=Rde}1Ed?co#m)@ODjU~1i*6*p!^3>4uC z(9GRW0~$AOg5x}1+{n92Y}{J1B$Gb5)S_G|Y0T_5P(Rmz()Y_j9tY~nPigjXwg8$2 z>gNhjt#M1L<=TSA-1N1uZoV)r1y*e0?=HBX)p1tZ%znX@(q@yjjPELai0v7Om-;C@ zrMv)aE9LoSo7Bs<0ga>2H|IzZegG(nKHr=t_47%fL4oE=@TH;vw6KbNbD>nroj@-1 z`Mjgzk)rgyI^~5VEye?rauI7>tU6UuU*y6$LX9en+LQP(TwzsSQMtUR*Wg1;q1!KJ z?b05uRTdPb*-Fp8jt7&JjqC3lmG$uI40QJ0W#OMfIY-*Z?Nt=VqN;jU%QsZ5u!}^% ztO{3hU?s{AR{a#rI33IFblOp)Zx^)*u2mKAsKe?^?>J=_wewg_S8)1LQ%kR)gUluo zN2eV1MZHFz2o-e2s2#g07kpM!7gW&|k6K9dlC+d&VUvztYOu*SRxc~M`_F;L&_n#y eg@t$hqww9CJX2kORJdNykBHf95nIgsG@$ zu|*Km?DVZDZe-2n4v54wnxTyp5UfN({Q+XvNs~^Xr3Jdc7^I~w&t!u(RM3C(ookzf z3J_e$_rCA^y>rez=f3MRTi)6dUdFl)FaNfGPoX46dX*%rzzlO1emyCEPoYQ9)9Y&) z0!l4eBuT?6W+Ic`U`lT=rI%i>rNmP!-^|>m-U6X2^%gkALoYwdzE$+T^JDct+xyU} z?+rG*nf+s(3Sk>vFBgtrZky!W2h*O5ojuDM#^$z|Rq;NaAk`yoGQk z;UfZXB21ZzhXsBD*xyYh5Dy5#qa;8<$9n|+IAH@}kH9MkQ~2=~fvX7T5_Sq)N|+K5 zUjuCa$Q?YlO9@_5)XUdeTHO`X0euIzuPhgw%I>==G633{z`6bm9@kpX&Ltu2_@vU^^OYo3m6&j+Fl%J1?3z3z1&KF6ZTbm z7j$);&ADV#rp?_qb_7wV_Z+_8*v~4R(PWH8VS5CD=~EHS$txm=Wlr9vXE1?P2S?K} zA(kjp`eMS+Er;)fGSOsPN4eZ+zwGWDv%jA-y3!w3qE}#ZoRTH>4TfWCOc*|j8q}IZ z;M<@+C-2g~4iet85!*CwQ13W=Q!aIkxzxK3Zz-qZOO^$!d;RpVJYX&9pn@?f8^~kdFO`7Jk$n<%BVF5u`X=QKY%eJcC{}? z4$qdMIg_ogM*IvulcS0nqu%ru2j5fw$kxB>yQ~a6t^^;O{Vkor=oR%|y>F1J+Nq&5 zT%+(*3U3U3#@;-z$L4Gb-VqMXwu+ioqdM0K>cEY`nc(C}`jGvU{EccA&B4Dk2OTyR zRWGvTQNLDtJCP90O7DmZVs>HQeOiFL<=P1n_I5*R;r*5n5!RZl_?5fPP=kvkGh3g^^W-g^aaxSJ7S; z=EsT>Y;fdQaf6<9^LS}pPCLS-(atNEH01Q8P!I0_n!m~o0S%`vcEkK4N#c`BqlZ_P zHRRB@l}3Pflr`{@G9w=@Ta%N%E)MdGkm*lddHQ+f(uSOH3Wa$GkRf%iGw`9M4Tb4j zUfyD1R63$#e0J$tmd7j08(A0cC~wTr%K01RkF)NPi{*X_ufu9awmYoFI-}If4+9Nj zF4h&m!zfSybFr>S3iIngg90s<;7g?$X{oF%)|E&G{xpykb1{FZa+4(;W6}#rT7d^9 z6(Y)uLhDv#oyCgtg9i07jTi7^xREa7uBs<3y{Wti7N*03Ym&P8P?gydet`R3a5JQQ z+-A>J)xj%PZMN)rK<3ZFRDraI+p8%KcXb^z@Gn+xHi<$2SAi=9uoB?EuKoft^R(?r z6Pi^N7u0PwzNY7mYtbn{L$fF{Y8$_$%l}iE?zyR%hu=)rk`F z$|yuWT{Y%vy2a55idmA@5f?V;$fW_B{7W?(EDzrGJt;ZFUsF=@z#jzPKbfr7j8d@F OHe}q_k8G*Ek?{|YN6u^j diff --git a/sor_redblack_MPI/sor.c b/sor_redblack_MPI/sor.c index a2ec836..0daba07 100644 --- a/sor_redblack_MPI/sor.c +++ b/sor_redblack_MPI/sor.c @@ -18,7 +18,7 @@ // *** and with tol = 0.001 and M = 502 in 980 iterations. // *** -#define N 52 +#define N 502 #define MAX(a,b) ( ( (a)>(b) ) ? (a) : (b) ) #ifndef M_PI #define M_PI (3.14159265358979323846) @@ -36,6 +36,7 @@ int *main(int argc, char *argv[]){ int myid, numprocs, rc, ierr; double total_start; double total_time = 0.0; + boolean firstime; total_start = omp_get_wtime(); ierr = MPI_Init(NULL, NULL); @@ -69,26 +70,30 @@ int *main(int argc, char *argv[]){ xnew[i][N-1] = x[i][N-1]; } - error = calcerror(x, iter); + error = calcerror(x, iter); + + firstime = true; + // This isn't working because it is starting in a parallel way. One of red or black has to process first, perhaps. They are too in step. Perhaps this isn't as easy as intially thought. + MPI_Barrier(MPI_COMM_WORLD); while(error >= tol){ //printf("I am process %i", myid); for(i=1; iUA)ihNC~EMQDx?*SU*(LKE-Mk=3`o6ZwV>+M!eT9* z5cb1k!UVTww^K8z+e|C1sVZ&h@<#)-#3l(z+I1zYAF!z_pcdJrY!Ddbvv0q1{Y+A{ zPP>xteZO*EjGE&R->|gY%e_yU7T6&bEa)BB84E!R-d?eQ+iK&R(o$wO4gg>5)ZxnHTFv0rKg{b=FM*j z48Q$CUex{v^HVh&%>y3O8*IrFZ>98&ejZHPq)U3;e9zb9_OzTUa|()F=~=_^-$BZB9Mw9yl;ZXRMDO$e2;JK*exP7FkeUTfb*H%# z(mqJ%&XQi_KZNw;+^ipG&XP)oYos}EmfSi^{;gSZ+bnt3EP3H9dG;)MIlnZw#$SzB zs=*QKuzvq9v&$vD`UUiInF~*Zx6p#*X&tS4FJX!?d0gOKgo(FgOyHjprf8G>0&gcg zhj3KjCkYdK$%w#@1N*m7S|kHP@B>nyaFfpnypph$ut(rW2opugc7Y!zOw=S@0zW{Q zC`m2>c3x-=O?IfEvug0Oi|wmh$6`^NOH#+;{bCpk%yUTzc^x#bL?UYN3#-~=(YPaX zq5on|xg`0%ceoE(3gLM`Rhx(#~@UO7b)8*LFvl^1a{Ns5Q{vTmq z6YoPF9A(prY@g$3)kgYdNz!gpV7`x?6KdzAGp24mK~f_qZ)93t979ag@&-!>IFhTJEqMfe7zu!8VOrwVT53drEMGDcUUpUH2l0#Utca53Rm>iu9EAf1g+)y`q;T$^L*f6o;E*Ha}x?EH^(vGk!%DP<57Z2CR`Q`$|D zI4@!u-s!wLlRRzMc~8Q3Q`g~5n_(I{Uim)Di!dbbs`2Ao=-J`e(c+vyA+}%Cb&u<1n7RBL+=GYXHB<#pZHtDbrdiP!OA7&Z)o6Bo&HCyDhfk zSEAySA$Th#KD>@H#2&Z`kv8N=OZe5xaH_4x|CGb!4&4+UPOb7rK(}&`YPBVF`Utt* z7W!9PsKF6>Cw{(+O$N`fMU#i<q~58k|mXs$YYuyxR>vQ-_HO^Fibl z`^2)Gm&y&LImo5N0!UFw<6e1P40$##@9sbW%X`=JXXHZv|8ZId5Hw}PH=URk`m}vR z3E*sNOO?S)5hRvg)Ai&roCAr6{CFhihCagi3PsCi*b>_>>Zv@D4FxiCkSIJv9ck4= zYbcREk`sw9#cAB;C?BfD9mpt{T4dxVx1&8VfoWA6*@G~gv5lLRP0D7aLwRgC5{dAg zwpA>bpRhf_B7CX6nho&|``JhTlKF0Z^BReuA1 z0jL#c@N+pe?D9Z%ZZ2cpydv*u*3b9n>1=Rde}1Ed?co#m)@ODjU~1i*6*p!^3>4uC z(9GRW0~$AOg5x}1+{n92Y}{J1B$Gb5)S_G|Y0T_5P(Rmz()Y_j9tY~nPigjXwg8$2 z>gNhjt#M1L<=TSA-1N1uZoV)r1y*e0?=HBX)p1tZ%znX@(q@yjjPELai0v7Om-;C@ zrMv)aE9LoSo7Bs<0ga>2H|IzZegG(nKHr=t_47%fL4oE=@TH;vw6KbNbD>nroj@-1 z`Mjgzk)rgyI^~5VEye?rauI7>tU6UuU*y6$LX9en+LQP(TwzsSQMtUR*Wg1;q1!KJ z?b05uRTdPb*-Fp8jt7&JjqC3lmG$uI40QJ0W#OMfIY-*Z?Nt=VqN;jU%QsZ5u!}^% ztO{3hU?s{AR{a#rI33IFblOp)Zx^)*u2mKAsKe?^?>J=_wewg_S8)1LQ%kR)gUluo zN2eV1MZHFz2o-e2s2#g07kpM!7gW&|k6K9dlC+d&VUvztYOu*SRxc~M`_F;L&_n#y eg@t$hqww9CJX2kORJdNykBHf95nIgsG@$ zu|*Km?DVZDZe-2n4v54wnxTyp5UfN({Q+XvNs~^Xr3Jdc7^I~w&t!u(RM3C(ookzf z3J_e$_rCA^y>rez=f3MRTi)6dUdFl)FaNfGPoX46dX*%rzzlO1emyCEPoYQ9)9Y&) z0!l4eBuT?6W+Ic`U`lT=rI%i>rNmP!-^|>m-U6X2^%gkALoYwdzE$+T^JDct+xyU} z?+rG*nf+s(3Sk>vFBgtrZky!W2h*O5ojuDM#^$z|Rq;NaAk`yoGQk z;UfZXB21ZzhXsBD*xyYh5Dy5#qa;8<$9n|+IAH@}kH9MkQ~2=~fvX7T5_Sq)N|+K5 zUjuCa$Q?YlO9@_5)XUdeTHO`X0euIzuPhgw%I>==G633{z`6bm9@kpX&Ltu2_@vU^^OYo3m6&j+Fl%J1?3z3z1&KF6ZTbm z7j$);&ADV#rp?_qb_7wV_Z+_8*v~4R(PWH8VS5CD=~EHS$txm=Wlr9vXE1?P2S?K} zA(kjp`eMS+Er;)fGSOsPN4eZ+zwGWDv%jA-y3!w3qE}#ZoRTH>4TfWCOc*|j8q}IZ z;M<@+C-2g~4iet85!*CwQ13W=Q!aIkxzxK3Zz-qZOO^$!d;RpVJYX&9pn@?f8^~kdFO`7Jk$n<%BVF5u`X=QKY%eJcC{}? z4$qdMIg_ogM*IvulcS0nqu%ru2j5fw$kxB>yQ~a6t^^;O{Vkor=oR%|y>F1J+Nq&5 zT%+(*3U3U3#@;-z$L4Gb-VqMXwu+ioqdM0K>cEY`nc(C}`jGvU{EccA&B4Dk2OTyR zRWGvTQNLDtJCP90O7DmZVs>HQeOiFL<=P1n_I5*R;r*5n5!RZl_?5fPP=kvkGh3g^^W-g^aaxSJ7S; z=EsT>Y;fdQaf6<9^LS}pPCLS-(atNEH01Q8P!I0_n!m~o0S%`vcEkK4N#c`BqlZ_P zHRRB@l}3Pflr`{@G9w=@Ta%N%E)MdGkm*lddHQ+f(uSOH3Wa$GkRf%iGw`9M4Tb4j zUfyD1R63$#e0J$tmd7j08(A0cC~wTr%K01RkF)NPi{*X_ufu9awmYoFI-}If4+9Nj zF4h&m!zfSybFr>S3iIngg90s<;7g?$X{oF%)|E&G{xpykb1{FZa+4(;W6}#rT7d^9 z6(Y)uLhDv#oyCgtg9i07jTi7^xREa7uBs<3y{Wti7N*03Ym&P8P?gydet`R3a5JQQ z+-A>J)xj%PZMN)rK<3ZFRDraI+p8%KcXb^z@Gn+xHi<$2SAi=9uoB?EuKoft^R(?r z6Pi^N7u0PwzNY7mYtbn{L$fF{Y8$_$%l}iE?zyR%hu=)rk`F z$|yuWT{Y%vy2a55idmA@5f?V;$fW_B{7W?(EDzrGJt;ZFUsF=@z#jzPKbfr7j8d@F OHe}q_k8G*Ek?{|YN6u^j From 2dc5d44509cb848d43c9555b22f03505e37c7bb7 Mon Sep 17 00:00:00 2001 From: ej159 Date: Tue, 7 Nov 2017 00:28:58 +0000 Subject: [PATCH 18/22] Added wavefront OpenMP, redblack_MPI shelved --- sor_redblack_MPI/sor.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/sor_redblack_MPI/sor.c b/sor_redblack_MPI/sor.c index 84b2196..7ed6a2c 100644 --- a/sor_redblack_MPI/sor.c +++ b/sor_redblack_MPI/sor.c @@ -4,6 +4,8 @@ #include #include +//This is all wrong. I was trying to do the impossible! + // *** Solution of Laplace's Equation. // *** // *** Uxx + Uyy = 0 @@ -32,7 +34,7 @@ double calcerror(double g[][N], int iter); void *main(int argc, char *argv[]){ double tol=0.001, h, omega, error; double pi = (double)4.0*atan((double)1.0); - int iter=0, i, j; + int iter=0, i, j, M; int myid, numprocs, rc, ierr; double total_start; double total_time = 0.0; @@ -45,6 +47,8 @@ void *main(int argc, char *argv[]){ h = M_PI/(double)(N-1); + M = 4; + for(i=0; i= tol){ - - for(i=1; i Date: Tue, 7 Nov 2017 00:37:03 +0000 Subject: [PATCH 19/22] Clearing up old ideas --- sor_redblack_MPI/.Makefile.swp | Bin 12288 -> 0 bytes sor_redblack_MPI/Makefile | 21 ----- sor_redblack_MPI/sor | Bin 10566 -> 0 bytes sor_redblack_MPI/sor.c | 161 --------------------------------- sor_redblack_MPI/sor.o | Bin 10566 -> 0 bytes sor_redblack_MPI/sor.sct | 34 ------- sor_wavefront/Makefile | 17 ---- sor_wavefront/sor | Bin 12880 -> 0 bytes sor_wavefront/sor.c | 95 ------------------- sor_wavefront/sor.o | Bin 5096 -> 0 bytes sor_wavefront_OpenMP/Makefile | 17 ---- sor_wavefront_OpenMP/sor | Bin 13248 -> 0 bytes sor_wavefront_OpenMP/sor.c | 101 --------------------- sor_wavefront_OpenMP/sor.o | Bin 6664 -> 0 bytes sor_wavefront_OpenMP/sor.sct | 32 ------- 15 files changed, 478 deletions(-) delete mode 100644 sor_redblack_MPI/.Makefile.swp delete mode 100755 sor_redblack_MPI/Makefile delete mode 100755 sor_redblack_MPI/sor delete mode 100644 sor_redblack_MPI/sor.c delete mode 100755 sor_redblack_MPI/sor.o delete mode 100755 sor_redblack_MPI/sor.sct delete mode 100755 sor_wavefront/Makefile delete mode 100755 sor_wavefront/sor delete mode 100644 sor_wavefront/sor.c delete mode 100644 sor_wavefront/sor.o delete mode 100755 sor_wavefront_OpenMP/Makefile delete mode 100755 sor_wavefront_OpenMP/sor delete mode 100644 sor_wavefront_OpenMP/sor.c delete mode 100644 sor_wavefront_OpenMP/sor.o delete mode 100755 sor_wavefront_OpenMP/sor.sct diff --git a/sor_redblack_MPI/.Makefile.swp b/sor_redblack_MPI/.Makefile.swp deleted file mode 100644 index 1cbc4fb6a2b1c49540ce82a452950b84d1b27f39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 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 diff --git a/sor_redblack_MPI/sor.c b/sor_redblack_MPI/sor.c deleted file mode 100644 index eb82c29..0000000 --- a/sor_redblack_MPI/sor.c +++ /dev/null @@ -1,161 +0,0 @@ -#include -#include -#include -#include -#include - -//This is all wrong. I was trying to do the impossible! - -// *** Solution of Laplace's Equation. -// *** -// *** Uxx + Uyy = 0 -// *** 0 <= x <= pi, 0 <= y <= pi -// *** U(x,pi) = sin(x), U(x,0) = U(0,y) = U(pi,y) = 0 -// *** -// *** then U(x,y) = (sinh(y)*sin(x)) / sinh(pi) -// *** -// *** Should converge with -// *** tol = 0.001 and M = 22 in 60 iterations. -// *** and with tol = 0.001 and M = 102 in 200 iterations. -// *** and with tol = 0.001 and M = 502 in 980 iterations. -// *** - -#define N 502 -#define MAX(a,b) ( ( (a)>(b) ) ? (a) : (b) ) -#ifndef M_PI -#define M_PI (3.14159265358979323846) -#endif - -double x[N][N], xnew[N][N], solution[N][N]; - -double calcerror(double g[][N], int iter); - - -int *main(int argc, char *argv[]){ - double tol=0.001, h, omega, error; - double pi = (double)4.0*atan((double)1.0); - int iter=0, i, j, M; - int myid, numprocs, rc, ierr; - double total_start; - double total_time = 0.0; - boolean firstime; - total_start = omp_get_wtime(); - - ierr = MPI_Init(NULL, NULL); - MPI_Comm_rank(MPI_COMM_WORLD, &myid); - MPI_Comm_size(MPI_COMM_WORLD, &numprocs); - MPI_Status status; - printf ("Process %d of %d is alive\n", myid+1, numprocs); - - h = M_PI/(double)(N-1); - - M = 4; - - for(i=0; i>>>>>> 537fdb862668a7f2cafde099a774633fda995e7b - - error = calcerror(x, iter); - - firstime = true; - // This isn't working because it is starting in a parallel way. One of red or black has to process first, perhaps. They are too in step. Perhaps this isn't as easy as intially thought. - MPI_Barrier(MPI_COMM_WORLD); - while(error >= tol){ -<<<<<<< HEAD - myid+1 - for(i=1; i>>>>>> 537fdb862668a7f2cafde099a774633fda995e7b - } - } - } - - for(i=1; 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 diff --git a/sor_redblack_MPI/sor.sct b/sor_redblack_MPI/sor.sct deleted file mode 100755 index 1e25c1e..0000000 --- a/sor_redblack_MPI/sor.sct +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -# -# request Bourne shell as shell for job -#$ -S /bin/sh -# -# use current working directory -#$ -cwd -# -# join the output and error output in one file -#$ -j y -# -# use the par environment for parallel jobs -#$ -pe par 36 -# -# set up affinity mask (defines cores on which to run threads) -# default mask -#export #GOMP_CPU_AFFINITY="0,1,2,4,5,6,8,9,10,12,13,14,16,17,18,20,21,22,24,25,26,28,29,30,32,33,34,36,37,38,40,41,42,44,45,46" - -# compact mask (4 cores on 1 proc) -#export GOMP_CPU_AFFINITY="0,4,8,12" -# scattered mask (1 core on each of 4 procs) -#export GOMP_CPU_AFFINITY="0,1,2,3" - -#for n in `seq 1 7` -#do -#for p in `seq 1 2` -#do -p=2 -export OMP_NUM_THREADS=$p -echo Running on $p mpi processes -/usr/lib64/openmpi-1.10/bin/mpiexec -n $p ./sor -#done -#done - diff --git a/sor_wavefront/Makefile b/sor_wavefront/Makefile deleted file mode 100755 index 731f767..0000000 --- a/sor_wavefront/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -#CC = /opt/rh/devtoolset-2/root/usr/bin/gcc -CC = gcc -OMP_FLAG = -fopenmp -#CFLAGS = -O2 -c ${OMP_FLAG} -CFLAGS = -O3 -c ${OMP_FLAG} -LFLAGS = -lm - -.SUFFIXES : .o .c - -.c.o: - ${CC} ${CFLAGS} -o $@ $*.c - -sor: sor.o - ${CC} ${OMP_FLAG} -o $@ $@.o ${LFLAGS} - -clean: - rm *.o sor diff --git a/sor_wavefront/sor b/sor_wavefront/sor deleted file mode 100755 index bbb67d9a7395bf2c53b465b1235f451353d4cd1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12880 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 VWx)z$is>&~XGzSkprVEP{{ucJyCeVr diff --git a/sor_wavefront/sor.c b/sor_wavefront/sor.c deleted file mode 100644 index 383d6e4..0000000 --- a/sor_wavefront/sor.c +++ /dev/null @@ -1,95 +0,0 @@ -#include -#include -#include - -// *** Solution of Laplace's Equation. -// *** -// *** Uxx + Uyy = 0 -// *** 0 <= x <= pi, 0 <= y <= pi -// *** U(x,pi) = sin(x), U(x,0) = U(0,y) = U(pi,y) = 0 -// *** -// *** then U(x,y) = (sinh(y)*sin(x)) / sinh(pi) -// *** -// *** Should converge with -// *** tol = 0.001 and M = 22 in 60 iterations. -// *** and with tol = 0.001 and M = 102 in 200 iterations. -// *** and with tol = 0.001 and M = 502 in 980 iterations. -// *** - -#define N 502 -#define MAX(a,b) ( ( (a)>(b) ) ? (a) : (b) ) - -double x[N][N], xnew[N][N], solution[N][N]; - -double calcerror(double g[][N], int iter); - -int main(int argc, char *argv[]){ - double tol=0.001, h, omega, error; - double pi = (double)4.0*atan((double)1.0); - int iter=0, i, j; - - h = M_PI/(double)(N-1); - - for(i=0; i= tol){ - - for(i=1; i$IJ}PH8to$MU6fm{X`5w<${oUG1blzL~xy)tZh}v~!)rZlWf3 zaO^FeV2f+5nhAy=1R5}*Nn@f&XiSJnEl3bIVd?0orcOedroj+Xp)k?bMP(IJ%=_H; zE;+uo|A8lc@7{gxy?5`udw2JJYLB_M!Qo(%9PB~1Jd!A5!`d<*=4_a)V@=G+zwb+E z*IqM=D}Wlso#+bXo7$5bz@6)FW=w0QiQKX4mC8&xqIq4ctQ~Q!GV-%-qqCII`p%cN z=!NWiMy~WSEo06qrEHjcy>McWhJe^LZcj_&P)vR|cemtfV-xl1~Mq|dhQ_08T>ErR_U|b*J;!C;{ zdLor31CwOqczR?=e|#h}tY=cAWEa%$;~6;+`n&8XxTRnD~S{r&s{=GahqoGdF0M0 zKBH4!DAtc-C7R`_NodWxk@y+N5O|5ykGT`t`uDWvFuSQ;p$s3MGxFzk>gToAu6GmK zc}$DKQpiv2N%x_RT1M&f8OLXGWp4zwjnMHFu$1 zd#CZQw|ZLVOvg3TaV0TR*7|pASfuX`s))c_l-+lLc?j#L%{zk1nRMklT1&rD;z>GjfBC>@ zy=}B!%9RjQ>8jJ%Ib;5*LRr+F?y6KOd6(Z|Rle8Sp+cYEM~e^n17?9IrD@c!6Oi$H z>2$dKBCXdd=CqYFnlPuil9wbY;R_TasXx(>8KDucd@Vn>$TymAM%7KhZBDPJ;_|8j zk+Y}>UIELu3YVpuq$4!@#iNlUk)x4EBhk6(cE8wocnyDt{63Rnq2y8k-l}4N%h(K> zLm;F>_m{Z}^eV-uKm;um4eu+r_xDi|y;~en1Z#8ptLyS^fUt zwqV^=9u(4Hm+Ueo*_qp-!0~*(eL)?4W~SAlh}5FZ$%JY z9`83Ax;(zGJG(r3(beS%d~HR<({_5L;pxb)ddM^Ge8sui)6wl|i+BPgLZYP7<#9*W z2s1T17S6PM+;rIIowg2`5`wg#mD~Rdw*jI{5PYp$a(JT6MU@ zI~hMjOJgwBiq-Zl3)TKNaqa4L?-aP3_sh*j&NecA8RDEZZe(pXyoHY&nb(GI=Ht~> z_*Q}YZ1PqOt*%=40U;l-$%h4Q_h+xbJ8bf(Q^r;>E57B)hdEnsf2&KfpXApm^~TQv zVFUCvv2sPH9)uSgbb`KG_!!~#oIyTc2cIE)olFHN1jcj z(!oI%G`mA+wxMZ9vjfd%(AyP) z-vCGiT+Q3vxNwPptNwpN;PC%m`lOxKI`TUe`Av%aLyG)I6#S%u`w5r%oKkS?^r;INCkRN|A0yz1v^1@|fPMFsz;fNf@N9a0{a0-}FI{1V7} z4R;IHk^cjzEzl?F11`1`5T}chvGwA3EupvvVe^00$9)N#+vrnCuKy_&BwnsB`>??5 z`X2~A%&R2hm->A)3BD@-LO{O5(uVy_@1==a`8U>B8uI)j|EO=dzRdpsVOUDOW5jYA z7r%O8F_xWNU-siPQA_{jI{I>b*?&dox5))We_iPNZMaCw(mtFP`Zh7P-kwk)AoZpE z_l3TCCt%Je^rtXTNct_I?+{Zf|1)^hh-6&IKi+$(FY^z7>}wOmo)zoQh{8s`anITH i@uzODeS%m(oWC;|C}fWxZ+I>JS>gYSiY{2Y{(k_Ebg>Em diff --git a/sor_wavefront_OpenMP/Makefile b/sor_wavefront_OpenMP/Makefile deleted file mode 100755 index 731f767..0000000 --- a/sor_wavefront_OpenMP/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -#CC = /opt/rh/devtoolset-2/root/usr/bin/gcc -CC = gcc -OMP_FLAG = -fopenmp -#CFLAGS = -O2 -c ${OMP_FLAG} -CFLAGS = -O3 -c ${OMP_FLAG} -LFLAGS = -lm - -.SUFFIXES : .o .c - -.c.o: - ${CC} ${CFLAGS} -o $@ $*.c - -sor: sor.o - ${CC} ${OMP_FLAG} -o $@ $@.o ${LFLAGS} - -clean: - rm *.o sor diff --git a/sor_wavefront_OpenMP/sor b/sor_wavefront_OpenMP/sor deleted file mode 100755 index 40b8674094f03b7a320552bffc2a6ca9e6720ff1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13248 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 -#include -#include -#include - -// *** Solution of Laplace's Equation. -// *** -// *** Uxx + Uyy = 0 -// *** 0 <= x <= pi, 0 <= y <= pi -// *** U(x,pi) = sin(x), U(x,0) = U(0,y) = U(pi,y) = 0 -// *** -// *** then U(x,y) = (sinh(y)*sin(x)) / sinh(pi) -// *** -// *** Should converge with -// *** tol = 0.001 and M = 22 in 60 iterations. -// *** and with tol = 0.001 and M = 102 in 200 iterations. -// *** and with tol = 0.001 and M = 502 in 980 iterations. -// *** - -#define N 502 -#define MAX(a,b) ( ( (a)>(b) ) ? (a) : (b) ) - -double x[N][N], xnew[N][N], solution[N][N]; - -double calcerror(double g[][N], int iter); - -int main(int argc, char *argv[]){ - double tol=0.001, h, omega, error; - double pi = (double)4.0*atan((double)1.0); - double total_start; - double total_time=0; - int iter=0, i, j; - - h = M_PI/(double)(N-1); - total_start = omp_get_wtime(); - for(i=0; i= tol){ - #pragma omp parallel for \ - schedule (static) - for(i=1; ipFJhk=Vf> z&@vcF4IL&mi$I(9g@iPi*n|WF{wQP8k|rfB<0Eupj8$w*st|($ZOZ59n*Gjw_a-+l zj!J*xTSAvP>MYx-nttmw`8?EdAW^hU4?Vm{!^Z za|&Y)W1z!Z4KK{ts}q`MC2iZ9eC;U>{)W9?qZIbmPiQw^YL@ttY5CKdJl%F`auNb- zNr3jQZ7uzlq*_W3(vn&HATcPsH08?T^NrHeZ8eOUmiuPuViJd%N{`?zMI5GM7|3GJ zb*1(zm|1++bo@=L>9ZKOh8?bnkmgxdnb2zAgkf(@Xj{V-F0_Xxw2l!VqZkik^+oV4 zsa#+bhFnJAh5U#y5cXCZ137Q4{}>`ykE6Nh+~lPH=!CYU+v{oR|B%c#`VUh#7Ib}r z_+Y8iYn^_e!|N^n!z{iB+kl~kkaq6{larIAxuMfoZyiKl!?79Lwud@G+e14-5$i0p znlPQ`$?Amm(NW>PNRHyf8SMu=1E1T9*l0D#j{cp9;UIZh2_rhB8}O?genyVuPZ<5f zmc3t8k6gm?FTvwsqjUv@>5s6S9i#^Ko5Fq=j3G>e1+~K?n^Sr+7tcg<$#hCz*{R1f znRMnFePyDGZSINhj_MfK`PS88&RA1Abz3~MJD!Tg^(1GXlFjOgbOs9cK*#P(vQxi3 znd{PX>2ByI_LT`=6>CrDqTPBf*%QZ#9-G#7HP-cP97tyt8;R^TN<6D>^dE02o&SM{)2cTCV^<7s&TXvlAGuk^ik()=6V>DgC@*?LQ~Y(tTU$Vwd`k{OS^fE)TCF@4LayPgL7?iswGvQ>pT(|Cm|)5W?-awW~Y4dbrr>Z73XeaD8=R zyN`y#1AyVxdC&mw)>t*44g?@%VFHA))94+8`3Ha>`#oJ+lxVu&GEYSP=J$6#-Cw6w zhQ@J!k))Av++QmRjQ)S~`-?QGJtXdL@xAFA%x$&I76&@R3d`Su2UUnK3k?tmdp%qW z%ti+AY9JNxme}RRi^}p1+9l=b^~7 z$@*tiKMLj)jc>4qp5QAB|8)6=C--i6sQHO!FI~Pcc0_;}?7q|woQ62D$#M%$354k=2D?;w-g0tDJ-&W=SLNd?&=4ejc&bE+32o4FfZh;+dn_#ZYV4WyZao@ zhaFY!24Ep~EqK5SnMSuOvYPtG-Q4yJ3U!$*;)3>iq3_MnN3c9S~Kwlm{uryc#MIa zFYrOZ&f_S?PR7$&%%(dhn?F5KMovb%%qAyWI2#1wWb_7{O-{CWHVDMYct7>q*9>mPF6Z;v`_^-Ow!Zv#! zf&Y3A{5jxD*u4U&j$H<>z94i|0xfX*M@EhRn$3O`C4q*dA#Q zHJTeEjEvYF&qY%Co=C1M6OVRgr!Z?yOKcC@lZxNYdg48?-o31Ob8B0qH=2odcgMR~ zB$CZVW4A0(!scc+Ohy!O0~U6A}J(JQCkXAc)dp1s;iSClEyVrFbO%EP)`qe#&1WyZ$p4 z%=Nf2mU`ScXCk?;tdPqUoc1MsL|z5Q$KsTpCIu({CukAWVZ-IVF$GusP22Eig&r3f z2qHVEHcLIt3jPfR-zISCsHRE&T?)QJ!Mhcl?vLbuM#1UqBz{ETWY1~^&tgnOxEGJ) zm-#?qEATuj{32N*;{PTd$*<aUttUsd!BD0(Q) zqsOee{-AbMU{e;A-8_AxlK@5h3LBcHU0o@;*Fj z!{vMZ4+_3ejCtqF?(NA%cQIc!m$CXTIm*PlqrO~xPmcLIqq!*a?aF4EFO#MTvHS6+ zoiW90bV>#c(M&GiJH-*p=4joL#>9`;Z!F!@6Hh^ZDxHh_ny=romcRIfns`?vk%{76 z_J1H9I_S#Hx9JLs`EfP4!02wMM7cw`7*s)wkI>5tfX-BM2eZDIdo(<=GMF8^O6SSl$1 diff --git a/sor_wavefront_OpenMP/sor.sct b/sor_wavefront_OpenMP/sor.sct deleted file mode 100755 index ac0323d..0000000 --- a/sor_wavefront_OpenMP/sor.sct +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh -# -# request Bourne shell as shell for job -#$ -S /bin/sh -# -# use current working directory -#$ -cwd -# -# join the output and error output in one file -#$ -j y -# -# use the par environment for parallel jobs -#$ -pe par 36 -# -# set up affinity mask (defines cores on which to run threads) -# default mask -#export #GOMP_CPU_AFFINITY="0,1,2,4,5,6,8,9,10,12,13,14,16,17,18,20,21,22,24,25,26,28,29,30,32,33,34,36,37,38,40,41,42,44,45,46" - -# compact mask (4 cores on 1 proc) -#export GOMP_CPU_AFFINITY="0,4,8,12" -# scattered mask (1 core on each of 4 procs) -#export GOMP_CPU_AFFINITY="0,1,2,3" - -#for n in `seq 1 7` -#do -for p in `seq 1 4` -do -export OMP_NUM_THREADS=$p -echo Running on $p threads -./sor -done -#done From 8ab786786ac9408a9b6ab2720c6cd2757027b3d4 Mon Sep 17 00:00:00 2001 From: ej159 Date: Tue, 7 Nov 2017 01:15:36 +0000 Subject: [PATCH 20/22] Adding changes... --- sor_static_wavefront_redblack/Makefile | 27 +++ sor_static_wavefront_redblack/README | 4 + sor_static_wavefront_redblack/run_sor_par.sct | 23 +++ sor_static_wavefront_redblack/sor_wavefront | Bin 0 -> 12984 bytes .../sor_wavefront_parallel | Bin 0 -> 13192 bytes .../sor_wavefront_parallel.c | 145 ++++++++++++++++ .../sor_wavefront_parallel.o | Bin 0 -> 7336 bytes .../sor_wavefront_rb_parallel | Bin 0 -> 17408 bytes .../sor_wavefront_rb_parallel.c | 161 ++++++++++++++++++ .../sor_wavefront_rb_parallel.o | Bin 0 -> 9512 bytes 10 files changed, 360 insertions(+) create mode 100755 sor_static_wavefront_redblack/Makefile create mode 100644 sor_static_wavefront_redblack/README create mode 100755 sor_static_wavefront_redblack/run_sor_par.sct create mode 100755 sor_static_wavefront_redblack/sor_wavefront create mode 100755 sor_static_wavefront_redblack/sor_wavefront_parallel create mode 100644 sor_static_wavefront_redblack/sor_wavefront_parallel.c create mode 100644 sor_static_wavefront_redblack/sor_wavefront_parallel.o create mode 100755 sor_static_wavefront_redblack/sor_wavefront_rb_parallel create mode 100644 sor_static_wavefront_redblack/sor_wavefront_rb_parallel.c create mode 100644 sor_static_wavefront_redblack/sor_wavefront_rb_parallel.o diff --git a/sor_static_wavefront_redblack/Makefile b/sor_static_wavefront_redblack/Makefile new file mode 100755 index 0000000..ec93c3c --- /dev/null +++ b/sor_static_wavefront_redblack/Makefile @@ -0,0 +1,27 @@ +#CC = /opt/rh/devtoolset-2/root/usr/bin/gcc +CC = gcc +OMP_FLAG = -fopenmp +#<<<<<<< HEAD +CFLAGS = -O3 -c ${OMP_FLAG} +#======= +#CFLAGS = -O1 -c ${OMP_FLAG} +#CFLAGS = -O2 -c ${OMP_FLAG} +#CFLAGS = -c ${OMP_FLAG} +LFLAGS = -lm + +.SUFFIXES : .o .c + +.c.o: + ${CC} ${CFLAGS} -o $@ $*.c + +sor: sor.o + ${CC} ${OMP_FLAG} -o $@ $@.o ${LFLAGS} + +sor_wavefront_parallel: sor_wavefront_parallel.o + ${CC} ${OMP_FLAG} -o $@ $@.o ${LFLAGS} + +sor_wavefront_rb_parallel: sor_wavefront_rb_parallel.o + ${CC} ${OMP_FLAG} -o $@ $@.o ${LFLAGS} + +clean: + rm *.o sor sor_wavefront_sequential sor_wavefront_parallel sor_wavefront_rb_parallel diff --git a/sor_static_wavefront_redblack/README b/sor_static_wavefront_redblack/README new file mode 100644 index 0000000..ef56a03 --- /dev/null +++ b/sor_static_wavefront_redblack/README @@ -0,0 +1,4 @@ +better_sor_wavefront_sequential.c finishes within 0.022 seconds +sor_wavefront_sequential finishes within 1.2 seconds. + +Compare these two and report. diff --git a/sor_static_wavefront_redblack/run_sor_par.sct b/sor_static_wavefront_redblack/run_sor_par.sct new file mode 100755 index 0000000..2f513b3 --- /dev/null +++ b/sor_static_wavefront_redblack/run_sor_par.sct @@ -0,0 +1,23 @@ +#!/bin/sh +# +# request Bourne shell as shell for job +#$ -S /bin/sh +# +# use current working directory +#$ -cwd +# +# join the output and error output in one file +#$ -j y +# +# use the par environment for parallel jobs +#$ -pe par 36 +# +# set up affinity mask (defines cores on which to run threads) +export GOMP_CPU_AFFINITY="0,1,2,4,5,6,8,9,10,12,13,14,16,17,18,20,21,22,24,25,26,28,29,30,32,33,34,36,37,38,40,41,42,44,45,46" + +for p in 1 2 3 4 6 8 12 24 36 +do + export OMP_NUM_THREADS=$p + echo "Running on $p threads" + ./sor_wavefront_parallel +done diff --git a/sor_static_wavefront_redblack/sor_wavefront b/sor_static_wavefront_redblack/sor_wavefront new file mode 100755 index 0000000000000000000000000000000000000000..a8e41a1786f277f84561ab38e7bc6471fad44d00 GIT binary patch literal 12984 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 +#include +#include +#include + +// *** Solution of Laplace's Equation. +// *** Note that this experiment is using wavefront +// *** Uxx + Uyy = 0 +// *** 0 <= x <= pi, 0 <= y <= pi +// *** U(x,pi) = sin(x), U(x,0) = U(0,y) = U(pi,y) = 0 +// *** +// *** then U(x,y) = (sinh(y)*sin(x)) / sinh(pi) +// *** +// *** Should converge with +// *** tol = 0.001 and N = 22 in 60 iterations. +// *** and with tol = 0.001 and N = 102 in 200 iterations. +// *** and with tol = 0.001 and N = 502 in 980 iterations. +// *** + +#define N 180 // 50 is a good size to be used for debugging. The wavefront algorithm is VERY slow on sequential machines. +#define MAX(a,b) ( ( (a)>(b) ) ? (a) : (b) ) + +// To paralise the code, x[][], xnew[][] and solution[][] should not be global +//double x[N][N], xnew[N][N], solution[N][N]; + +double calcerror(double **g, int iter, double **s); +void matrix_initialise(double **x_matrix, double **xnew_matrix, double **solution_matrix, double h); + +int main(int argc, char *argv[]){ + double tol=0.001, h, omega, error; + double pi = (double)4.0*atan((double)1.0); + int iter=0, i, j; + double x[N][N], **x_ptr; + double xnew[N][N], **xnew_ptr; + double solution[N][N], **solution_ptr; + int slength; // variable to skip the first and last two diagonal strips + int z; // variable to skip boundary elements + + // variables for omp timmer + double calcerror_start; + double calcerror_time = 0.0; + + // calculate constant values, h and omega + h = M_PI/(double)(N-1); + omega = 2.0/(1.0+sin(M_PI/(double)(N-1))); + + // set up pointers to allow x[][], xnew[][] and solution[][] access in calcerror + x_ptr = (double **)malloc((unsigned) N * sizeof(double)); + for (i=0; i < N; i++) { + x_ptr[i] = x[i]; + } + + xnew_ptr = (double **)malloc((unsigned) N * sizeof(double)); + for (i=0; i < N; i++) { + xnew_ptr[i] = xnew[i]; + } + + solution_ptr = (double **)malloc((unsigned) N * sizeof(double)); + for (i=0; i < N; i++) { + solution_ptr[i] = solution[i]; + } + + // initialise x, xnew, y + matrix_initialise(x_ptr, xnew_ptr, solution_ptr, h); + + // boundary conditions, copy the box boundaires from x to xnew array + for(i=0; i= tol){ + // wavefront parallelism + for (i=0; i < (2*N -1); i++){ + int k = (i < N) ? 0 : (i - N + 1); + slength = (i - k -k + 1); + if (slength > 2) { + #pragma omp parallel for + for (j=k; j <= i-k; j++){ + if (j==k || j == i-k) { + continue; // skip boundary conditions + } + xnew[j][i-j] = x[j][i-j]+0.25*omega*(xnew[j-1][i-j] + xnew[j][i-j-1] \ + + x[j+1][i-j] + x[j][i-j+1] - (4*x[j][i-j])); + } + } + } + + for(i=1; i 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 G`u_$*p}JK7 literal 0 HcmV?d00001 diff --git a/sor_static_wavefront_redblack/sor_wavefront_rb_parallel b/sor_static_wavefront_redblack/sor_wavefront_rb_parallel new file mode 100755 index 0000000000000000000000000000000000000000..9b541ae8b26d2958c62eb57c770e9a913b2adc1a GIT binary patch literal 17408 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 literal 0 HcmV?d00001 diff --git a/sor_static_wavefront_redblack/sor_wavefront_rb_parallel.c b/sor_static_wavefront_redblack/sor_wavefront_rb_parallel.c new file mode 100644 index 0000000..bfc13c1 --- /dev/null +++ b/sor_static_wavefront_redblack/sor_wavefront_rb_parallel.c @@ -0,0 +1,161 @@ +#include +#include +#include +#include + +// *** Solution of Laplace's Equation. +// *** Note that this experiment is using wavefront +// *** Uxx + Uyy = 0 +// *** 0 <= x <= pi, 0 <= y <= pi +// *** U(x,pi) = sin(x), U(x,0) = U(0,y) = U(pi,y) = 0 +// *** +// *** then U(x,y) = (sinh(y)*sin(x)) / sinh(pi) +// *** +// *** Should converge with +// *** tol = 0.001 and N = 22 in 60 iterations. +// *** and with tol = 0.001 and N = 102 in 200 iterations. +// *** and with tol = 0.001 and N = 502 in 980 iterations. +// *** + +#define N 180 // 50 is a good size to be used for debugging. The wavefront algorithm is VERY slow on sequential machines. +#define MAX(a,b) ( ( (a)>(b) ) ? (a) : (b) ) + +// To paralise the code, x[][], xnew[][] and solution[][] should not be global +//double x[N][N], xnew[N][N], solution[N][N]; + +double calcerror(double **g, int iter, double **s); +void matrix_initialise(double **x_matrix, double **xnew_matrix, double **solution_matrix, double h); + +int main(int argc, char *argv[]){ + double tol=0.001, h, omega, error; + double pi = (double)4.0*atan((double)1.0); + int iter=0, i, j; + double x[N][N], **x_ptr; + double xnew[N][N], **xnew_ptr; + double solution[N][N], **solution_ptr; + int slength; // variable to skip the first and last two diagonal strips + int z; // variable to skip boundary elements + + // variables for omp timmer + double calcerror_start; + double calcerror_time = 0.0; + + // calculate constant values, h and omega + h = M_PI/(double)(N-1); + omega = 2.0/(1.0+sin(M_PI/(double)(N-1))); + + // set up pointers to allow x[][], xnew[][] and solution[][] access in calcerror + x_ptr = (double **)malloc((unsigned) N * sizeof(double)); + for (i=0; i < N; i++) { + x_ptr[i] = x[i]; + } + + xnew_ptr = (double **)malloc((unsigned) N * sizeof(double)); + for (i=0; i < N; i++) { + xnew_ptr[i] = xnew[i]; + } + + solution_ptr = (double **)malloc((unsigned) N * sizeof(double)); + for (i=0; i < N; i++) { + solution_ptr[i] = solution[i]; + } + + // initialise x, xnew, y + matrix_initialise(x_ptr, xnew_ptr, solution_ptr, h); + + // boundary conditions, copy the box boundaires from x to xnew array + for(i=0; i= tol){ + // wavefront parallelism + for (i=0; i < (2*N -1); i++){ + int k = (i < N) ? 0 : (i - N + 1); + slength = (i - k -k + 1); + if (slength > 2 && ((slength+2)%2==0)) { + #pragma omp parallel for + for (j=k; j <= i-k; j++){ + if (j==k || j == i-k) { + continue; // skip boundary conditions + } + xnew[j][i-j] = x[j][i-j]+0.25*omega*(xnew[j-1][i-j] + xnew[j][i-j-1] \ + + x[j+1][i-j] + x[j][i-j+1] - (4*x[j][i-j])); + } + #pragma omp parallel for + for(i=1; i 2 && ((slength+2)%2==1)) { + #pragma omp parallel for + for (j=k; j <= i-k; j++){ + if (j==k || j == i-k) { + continue; // skip boundary conditions + } + xnew[j][i-j] = x[j][i-j]+0.25*omega*(xnew[j-1][i-j] + xnew[j][i-j-1] \ + + x[j+1][i-j] + x[j][i-j+1] - (4*x[j][i-j])); + } + #pragma omp parallel for + for(i=1; iqVt$!4&v1>hfWxs`$trpQhD_F~`U2BV^ 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 literal 0 HcmV?d00001 From c8b3364a755ce39079ebe08e0209580585acbdda Mon Sep 17 00:00:00 2001 From: ej159 Date: Tue, 7 Nov 2017 01:22:22 +0000 Subject: [PATCH 21/22] changes to rb par --- sor_static_wavefront_redblack/sor_wavefront_rb_parallel.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/sor_static_wavefront_redblack/sor_wavefront_rb_parallel.c b/sor_static_wavefront_redblack/sor_wavefront_rb_parallel.c index bfc13c1..4425d6f 100644 --- a/sor_static_wavefront_redblack/sor_wavefront_rb_parallel.c +++ b/sor_static_wavefront_redblack/sor_wavefront_rb_parallel.c @@ -93,7 +93,6 @@ int main(int argc, char *argv[]){ xnew[j][i-j] = x[j][i-j]+0.25*omega*(xnew[j-1][i-j] + xnew[j][i-j-1] \ + x[j+1][i-j] + x[j][i-j+1] - (4*x[j][i-j])); } - #pragma omp parallel for for(i=1; i Date: Tue, 7 Nov 2017 01:44:05 +0000 Subject: [PATCH 22/22] Playing with rb OpenMP --- sor_redblack_OpenMP/sor | Bin 13288 -> 11162 bytes sor_redblack_OpenMP/sor.c | 2 +- sor_redblack_OpenMP/sor.o | Bin 7656 -> 7704 bytes sor_redblack_OpenMP/sor.sct | 2 +- .../sor_wavefront_parallel | Bin 13192 -> 12159 bytes .../sor_wavefront_parallel.c | 4 ++-- .../sor_wavefront_parallel.o | Bin 7336 -> 7944 bytes .../sor_wavefront_rb_parallel | Bin 17408 -> 11458 bytes .../sor_wavefront_rb_parallel.o | Bin 9512 -> 7144 bytes 9 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sor_redblack_OpenMP/sor b/sor_redblack_OpenMP/sor index 0fc3f9099746efc8c1b6ac1251dcaf9ebb1dce9e..407ce1ec0c5b9f1853e5fefcbd5df0d47b54f8b3 100755 GIT binary patch literal 11162 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 py3vL^ZcwLe6&%_Kyjy@7# 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 HzW)CJZfGtA diff --git a/sor_redblack_OpenMP/sor.c b/sor_redblack_OpenMP/sor.c index 59af550..5ebb1f0 100644 --- a/sor_redblack_OpenMP/sor.c +++ b/sor_redblack_OpenMP/sor.c @@ -17,7 +17,7 @@ // *** and with tol = 0.001 and M = 502 in 980 iterations. // *** -#define N 502 +#define N 180 #define MAX(a,b) ( ( (a)>(b) ) ? (a) : (b) ) diff --git a/sor_redblack_OpenMP/sor.o b/sor_redblack_OpenMP/sor.o index 3249e22a2acc4d6934fd87b42da0fe16d22ecb5b..0c503ead57887a68116a50ebb89c56666f27e6d8 100644 GIT binary patch literal 7704 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 literal 7656 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 Vs=-0p!eQ})t9t)*(zdYiKLGuM0YLx& literal 13192 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 ) ? (a) : (b) ) // To paralise the code, x[][], xnew[][] and solution[][] should not be global @@ -95,7 +95,7 @@ int main(int argc, char *argv[]){ } } } - + #pragma omp parallel for for(i=1; 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 G`u_$*p}JK7 diff --git a/sor_static_wavefront_redblack/sor_wavefront_rb_parallel b/sor_static_wavefront_redblack/sor_wavefront_rb_parallel index 9b541ae8b26d2958c62eb57c770e9a913b2adc1a..b26b19843886e836bc884e2e4e48f607da811ef9 100755 GIT binary patch literal 11458 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 literal 17408 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 diff --git a/sor_static_wavefront_redblack/sor_wavefront_rb_parallel.o b/sor_static_wavefront_redblack/sor_wavefront_rb_parallel.o index 04ecd96de09960b740ae884767b8114ba0ccf8b8..1c680d6c1485d020dd77b72a05a3269b1e643f7c 100644 GIT binary patch literal 7144 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 WBgeVk5jM|p9w$yA|KJ?I*ZvK^18uJW literal 9512 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