From 9c766df040810b9dd8289eea20549eff9291f934 Mon Sep 17 00:00:00 2001 From: omarcelh <13513056@hpc.if.itb.ac.id> Date: Fri, 19 Feb 2016 11:36:12 +0700 Subject: [PATCH] not done --- omp_buckle.c | 88 ++++++++++++++++++++++++++++++++++++++++++++++++ omp_hello | Bin 0 -> 10087 bytes omp_hello.c | 23 +++++++++++++ omp_sort | Bin 0 -> 15348 bytes omp_sort.c | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 203 insertions(+) create mode 100644 omp_buckle.c create mode 100755 omp_hello create mode 100644 omp_hello.c create mode 100755 omp_sort create mode 100644 omp_sort.c diff --git a/omp_buckle.c b/omp_buckle.c new file mode 100644 index 0000000..7c02730 --- /dev/null +++ b/omp_buckle.c @@ -0,0 +1,88 @@ +#include <stdio.h> +#include <omp.h> +#include <stdlib.h> + +int main(int argc, char** argv){ + int numtasks, rank, dest, source, rc, count, tag=1; + + numtasks = strtol(argv[1], NULL, 10); + + int bucketNEff; + int bucketsNEff[numtasks]; + int i; + int n; + int *arr; + int *input; + double sendtime=0.0 , sorttime=0.0; + int min,max; + + srand(time(NULL)); + printf("Input number of element"); + n = strtol(argv[2], NULL, 10); + input=(int*)malloc(sizeof(int)*n); + printf("%d number of elements\n", n); + + int c; + for (c = 0; c < n; c++) { + input[c] = abs(rand() % 1000000); + printf("%d. %d\n", c, input[c]); + } + + min = input[0]; + max = input[0]; + for (c = 0; c < n; c++) { + if(input[c] < min) { + min = input[c]; + } + if(input[c] > max) { + max = input[c]; + } + } + } + + printf("numtasks: %d\n", numtasks); + + + int j; + for(j=1; j<numtasks; j++){ + bucketsNEff[j] = 0; + } + + for(i=0; i<n; i++){ + int inc = max/(numtasks-1); + int iteration = 1; + int k; + int p = 0; //false + for(k=inc; k<=max; k+=inc){ + if(input[i] <= k){ + bucketsNEff[iteration]++; + p = 1; + break; + } + iteration++; + } + if(!p){ + bucketsNEff[iteration-1]++; + } + } + + #pragma omp parallel for num_threads(numtasks) + for(i=0; i<numtasks; i++){ + int c, d, t; + for (c = 1 ; c <= n; c++) { + d = c; + while ( d > 0 && input[d] < input[d-1]) { + t = input[d]; + input[d] = input[d-1]; + input[d-1] = t; + d--; + } + } + } + + printf("\nAvg send time = %lf\n", sendtime / numtasks); + printf("Avg sort time = %lf\n", sorttime / numtasks); + } + + return 0; +} diff --git a/omp_hello b/omp_hello new file mode 100755 index 0000000000000000000000000000000000000000..447837691ff1fd501bab86be97920ee2e83cf16a GIT binary patch literal 10087 zcmeHNdu&_P89%n;#A#Z`X(>(Vpm)$hTM;)&(-0n|*GbdbRnmr%!WfhrC%%cZ`4Rb1 zQY1vS6eh3hmI^e93AFveA57Y$PGVd3fVLF1@W-^WjcH<=*0EJefNo{oP_~t3zwg}h zIoH?Dm^5k9B#w2@cfQ~EIL~{|xyR@6?w*})mrHPPi@ODJ6V<wetXPN*D<!M24pA#~ zaidr(s)2a%=u$$|N->>Nu9^Cjo(HrFPlwwAI^4QUF#UuD3#ME`qLkl4&{fi+w=S_* zrb1{EAUi7SrDc)@9gqp8W2zkEin1NCWaslsb<hEsV0uXvj49WT>PAn$^4IUy!4a<$ zQKed-q)VaiLM}$><I2%-pH47%i|&w|5KP(b9@tSi|I-jqiu+W4i?vHYm7l4quGpLy z9c*vgoQO3gMpOCmrtyyUruMdAHXUr0^(OzMyKB#WnG?68COILf|LgEjHL1&L@Hhk6 zlO6Rp=~MlvzO{H33)D?o1>q)O%PZjDTLgb~5q#Ss_&vZiJkIbEfJ*tMfNM@=@Sk4< z9{^s-k3c_+q?2RR@-4!M^!FMuGh>d7W^-nyzqc!qPMQ7D!GtNGWQ>?OBNxw@(U_6S zCyNl$3eF0{7)hp6Mm87C<P1aX+S}V_j72liM8Zr6WA{O0pK{)nh-R}U3@FcvIihG| zR&G?fW-96srP{?<W;B%>7TH`Tmxfn^Br3~fbTlP)^+Y<mjMiXlaH~~<HkeaMT0muR zV?=o5=%A5djSHeK{JsTB<4?nrzit%6#Up-+GzAxIT%bJu&)sx0hE$b!TVeV-;@#q1 zQbw4oACQ#Bp8fr53|KggTN<MrG#hS}%#v)d;WUOhG~00dyw+jE?fL39-2TplZ8*J8 z9Kw_D`NBuM%a&*&{KUzecjiGz!jrH1PFouDTip=NudhN}zg9<z_&5n?&(9;Q|3@u& zYO>jLlK%_wROQ)|l7EMIs_N`<$-hlJRdMzkl7EYMs@m+7<bOsyRcUqte9Og1;f;sG zg}1|#f4tP!A31w+0yACs?5ThxXUA)FG4ll|{&jeY$~QfNitZ0L4S<9v=ltQqg@bFR z;Z0Vr;lK$J%%2~wUwfE9ap3eYg&^}UlYD>pbAOT!PF?lDLAY=!d}?NU*mWlS#?{=) zqPIHsR=<|~)UVwk#Kg9ZD8I-z?1$k@3I#iG#(OOw*X7exz7qlqM0j$$$a~*?3U)<j z?~}p&xdXG0!e)4iIP{HHc<jA!A%8x6r2Bk$@+7)S{E)iuWh#5PaCYX$SLf#o-B*ru zU-<z+g;%8H#NVk|jzcE>zkXV|3(VYQ>CeO@ojbCB4yJ`OC!R)gO5K@FkW4LDgbR<& z&Afy%y)Mfix<6Ey58W3jd=T0nDZCl#?>V~uHLr#yJK99_-kyyYT7Dfq^`VDG*35Gs z&d-ORxR|?v+qb9iPEX;39q=)K&2Pe!r(NOO-_5^61Ma~Cp@%{TLJx-wbV;#4E}tHr zl4Dd2NqRrSW+IW+hBN7;W=$X3`k0m;M!ZD0)_CqjH^}v(51CIPeGYU0^flEUt5BO? zfscUBfewH+Vg%Fp9iWknaE(QT>(PC}H6C!SSz6<pa@7O~r#(j;J~t^HB9--pSO*#D zPhXjzp8ys9z)pYT?)th%d=p~(b$4#svhGHLNr%eqLmBrH5b_6}baySQcJD^cmOKXd zHppA;@}v|?`@_H^kgu@I_gHfB{X8BWa+Bnp{=iq<-TuZed%FGF(W-9$hA(-;{^lpE z!~TxRnqI%2@OOm#%_0AWPQTXaZ-joQ-zV$&9?awLW1rW^<;UUU7WlXY{=ZwG4+{r{ zW<@1~NKK1n^jW3Aa@t!_SZWb*-mA-$`m7R%vCdFfEo1uL8jz_qipNwZ!*z<zDLKuL z6j)wmv0~h<%am8~Cp{L=d!lK##nYlm;j%^Kw*@5|6>s}|l}K@KhV1|ap6gza+`@d% zd#qIo?@;w+TvI%koAcvu6y`CVrpd**DqVWQQY3lK_mbjYRC1~GKZy7{)|u6{)w+ak zR<vEwor>P4=&+&(6?OXA)zx)}wgF#(8@0AzM{ujw+T60WxxICZwqc(c)56i5g*UZr z6gJ(h*!nk%Tj9-WAgg(4Gf3fS8J9<`7^PJb_PO?fF1;Sn*YQ*`bo*+yK;(A$juCO! zoF!6K(;>m?rzGh89f+sOi_aC|_IYU(!tT!?RX(pTN35&*YZ8?s6v805>Wzq8HTNUt ztmUFl=(BGku6d=X;6C<H&0CTqf%{mWubVg@8M}`qgx5#kinX%@2F|J$kXr;oo?VGL z`wEn7P!^W`a*K<LC4LBLzer()jLEJpfu#FboD5y-{VVD`{x$vv*YcXcD&XrxUESS) zP<fR^4^-6y#pgJY2s~8>UE5cC{CCvdS$E6o$O<yn8^7AQ+67sSS6GtB3OC*XUt0-V zYqu=1TM~46{I{%bTU|tPPT&=h6>Y1@kBCsIaq@&>yZ-54hFBh6p%Gm2b2d(U$KVj; z2(@l*{l*LK+gCl%JUMyT7x(1u`qBMvd<MGkaXg~Qi29elJc9;(CJ(1D_$a~N<VWd( zc0QFI9Z6yMl9~FR9!lrIV4!PVEiIZHzgkl=mrt47M$D9%865%}%?!o2Sw|&W(}>nI zoE|e%$uW^UWMrbL&x)esp?EYSHpkORb8|jxX0n?{hw<WU+1#>aYs;4At?irl!mzhb zL^C5pA{$R<a$3=r3I+V2!ikkTYLOj%)XW_kGld9d4<&QaK~Q{wOB&}C)XmJ82&U3G zGZ^ZOH07crA{dWm<02S4l!Bo}a~TmFN#%nFQM%D|s)R8h%b1BM8K~4)A}4~QsZqo^ za~$z77|7DGXf7&(X51LgM3bfwkHMBX%fg6eGSNep1*bnV1T}b%CP#;mbs7#41!XRl z$H8n?1c%beq>1_mW9DFf1jf<S2#zciJDM6!b2>UWm@yABhchjc(`XoLH2qgGt$!G# z#dW5`t%F-Q|K#;gf`~}h9&Q3dYYwj${cauH!ug^mxrNA@1{e4iB)xdpe%!5t!}O#8 zi{t6Dd>y_Gx_I}C_S0_5Vp`ezRDmfEN;=oW?Z9Zw<@`^2bZ|nPR15KC$t^_A`tO2> z)=akNb@D}3(QB0{*PHd2_Cro<F!Q_)pHl{X%AVVZ%dcQTGYYA)J+J#386eQyM1k{X zd&ZMW#`e6A=uq}ANNdZU+SzIU2rz0B-uLjn>%6k({giT3EC=&6hVAyETDL^X;e^E% zV?G~a`WPg3`w3+~q3o-;V#)*CvBOD+J?|3_tBTgLqN3c649gV`3}-W?_L)=4USmZ? zo%XcGQ~BAR&(ryweaA=G(=NhpKd17aQ~9@%&=$D=82Tm>v=FP|UfdV+xw})}$$uBN z^)`FnH_xe!w^QHApMotFk@KfxDjBFy2u^(`e+D|#)ojoEM*d%f|Nl_KvFMM-!B1gp z&!5j#=crN$&it5X`U~jT?L}aK%!&uOeHK@Y*^cRNA+g){Df>QEKrSacU_0jjfCOP& ze>y&-FrW;b`p)q;16|6$nT%|K?YG%5N|G)GrtjO*QlO&eRQ^uCY**9;P=-PH6J_7- z5IR_~bP;>caw~^#7c;UFPW$T?u|KZtdq2YdW@YcJ=ZDIEZV`JfM+4;CcXrjkt+2Qj zR#ZX<E8C9e4!ive^ofDsqs1BFlXzP3@Oa?)pXRqp`5#{g0mAnk&Yk&NT9soDO4s4m z%Y^j*2=5c@Li*=qyrO=Un68L>u}<rD7c%X^jKJ%#UFgA1h1b_o+$VV5EX8XDuZN}h zlH&P7DUKDgTDL<o?ZK%8uS<5JM=UFzOO)b%!RtsVUSIsbwG<Bsp7%@fhT?o)iZ2&D zPnY5tbUgps1Rk8e^1Nz;(OWBv|3j7H*!8G+s1#o%cz!Fz8!=xE*ddwr6i;hPMIPbY zRakP5;L{wZzH=AL`syVqRY$#Ua3IzkRVCh^cM9md$tB9$jn0|e==bA}@eow_B?lf- zxbysrzLs6s#c})a`!_7{@_sz3{P1}iSQ(x{>=NbUVH$X)dc6vq%3t<@zKH(MrT>7~ zutY~{A^aZ6O6@}$mGZqPO&iL_=T+&ad>q!u1}U$XHLsVC!)E9&r}t6qlX!a5fon4F z(&!<Hmyg>K-~q9!*e`6A0<NZhh9v!>#LM6JsYUdkUj#o5obq+PN9PvNzX)6_DT&2g zSwx@iQ#80&iBCD+$Lk5lPLb!OD&_N5;MAVZ1E5xg2UI(oO1~3$0OL9C@V`sxJLkzg zN}tC+SLM@6pAS;_7|Q^zv678ufm6MlejZ;${~77u=0GLCBk>CJ|4=5E&E@eA;t=i) z?C#oU^hECM$3=yOTMtGqX$;Z5hpgah2{y<uVrgR}ksgdDj94z6$r{o8xWGZdSi;Pi zv0(e{&8_fULCK&a3+n*Fz@b9skg$#{V)<n95KL^GK_?w0s?O6S+d-3I?A#aX?KZmi z>_9!NN^!cxPfQp)9@rD=jdVfFCXshFgt4n<Z)d2-*t>J*z1{srf2gyko7~B}6+_v) zEdIZ}AwmZy)-4QSnDP{bN?m$qMA!KmhUL$?$)W4^8yjW!Ih<l!Mx2A~3W_a@(z__u zb&)b>*|ZUlree6_Vnp_${ISuLfkU&HI`y)(0JRyamO?|SHZyQcq|)+?ui^z41NUgS WcNV?uQgTrSWu#`JTPw1o#J>PNHnn8{ literal 0 HcmV?d00001 diff --git a/omp_hello.c b/omp_hello.c new file mode 100644 index 0000000..1f5dec6 --- /dev/null +++ b/omp_hello.c @@ -0,0 +1,23 @@ +#include <stdio.h> +#include <stdlib.h> +#include <omp.h> + +void Hello(void); /* Thread function */ + +int main(int argc, char *argv[]) { + int thread_count = strtol(argv[1], NULL, 10); + + #pragma omp parallel num_threads(thread_count) + Hello(); + + return 0; +} + +void Hello(void) { + int my_rank = omp_get_thread_num(); + int thread_count = omp_get_num_threads(); + + printf("Hello from thread %d of %d\n", + my_rank, thread_count); +} + diff --git a/omp_sort b/omp_sort new file mode 100755 index 0000000000000000000000000000000000000000..0dcae59f540ae44b6478a15ca22907d764da33b0 GIT binary patch literal 15348 zcmeHOe{fvIec$&^Iz3zR-AS^sg#jO6gU!Sz$(D_XF}{;H>xsx%u_bT{&eK_U(p|Y9 zn!A&c8NhA?gquS|nhvQ+nBo~a9k-<oe~{LN1|&?epqWHrNXJcSs}M6I@uM+;0Tm4D z=euwB?%k8r=}c#uf3!Dmzx(~U-~H~sef#$I9S?TwRTYKFq_SHWVb4|gImyf!o8HV( zL2G6!n4ew4HZUhB<+%KuL(nWqI44X?s0ld-U>UAv)g&~leqNC93X{wvlpYeK`ijXf ziYDxGo2Z10c{zdf$k&Tkaul$K7bF}New-9g>JdtM+ErW}u!k2UyeJ%#P_~cSMpu`x z*QNS_5$-1-yedMHrPTRuHcaKyt2hei=LHEnOfr*D>U|S><mdl3d4%8rQQuN=@d*DV z6wPJz@z{}_P4)5c)_5#AIJ9-BdFR%hO}<RZw~e=(?2~NU?cKa48AmV27^D8DuByc4 z!nG2YJ&``iNnPr9ith?s6}YJFRk%c`P+FMCws#?!-2ht6BJ_zR=>NO~{co3`?_Prb zP0+o#>}e8&#r*k)CFnn2f}RB3i_4zA1A^C11m1&dv3mb*2|7c+_oosA)YFa3Xz$u* zgd^!le=L)Yq`UUD##6~iSLjGQ!XRYyN3upXnvR6RMshGwAfYVC8D<#$iB!_aWJBq! zVX(IS`#Oz*P&yQkN8-%5?Wl1;7;lY-GMNYzsLn-eglhw4ZRA}8x!Oymoh*|MCBrNm zOGMZ}I+o1#u}n6dO~qLP^`v^?1jz~~5}{a<wRN<&v>Mxd+k87rpPFEhd}{>cNyXTt zAB|44MC3A*DJl3p3rP2Y7uVqBF$`M=n?ae90zCy#-iK4yUWega#y$}=|3<=9_9Y1; z&28x6knV9B`!cQb_V6On$P<~o7P{$?$=Ph7%ejL%4Hmj}er>kUt@DfDLbv*(Tj+8w zB>SBfI^DlA9kS4^b3l)UZoR*w7CPPAGU>w~XnMYUQ=OOT507WdXENaE!>?**rGyFR zcho>+e$#5??hSsF2#*qTc6uIZ(@MgrYi6f7t`bh6ogL@+=j(tw2!D>_zayMNIeUuZ z?-5QRoE_!(JA_l{W>0YZSA<i@W(PR_CgBvS*&dF+K{$nIwv*$p5Kf_)^#gDGus!#S zZ|k{t^x+E^JG<J?jSt`np`V*z9Gp9?`Pobx1V8B;rS_fqE&|rAZ#@B^56`*u+`C8D zpMf<Vrs~5l6Jvh5&%NOxBC^A0`zZM&{u1%K^*{PgZeZdo2Mp-Bi~7XO9$k4&|HW6? zH3e&x(wch%*>P{Um9Z1M>)<~dtnP;5OcIVAey!XIlJfCc^6zDK6*;zt4VJ(E$IvSn z`-l|grw-5F2c5oA!UA^$x&vJY(W@tNKe-=dJ@;dZp`M#=&%LVWALhvLI0gcHfg<)2 zwMfsMn>qT`{CqBWJ|8@<_fF}<?<sn&dy0y=Cn)Ipxrd_wT)KCvJ@?Cisd-YLm{#?X zPRAL#P4(d!MOUU?r1A?~_Op-md&WKbmRI3{K0NL~R8+2#3r_aAe>?s=cXe=F7S6m( zI=p=|pMD8{&dvM?py;+|f!i;WSn&CL@Oj;I1v>vkI=SF!5Oc4+{1AHGG}#LJx!~JW z$NK~M;M>p`S^Y4fdOmnsAGt!Ed5+9YyfFOl>sxb^pS?Hnc};F|Vs68hS8`Laaes@O zZJEeTKG`_6Wh&=bXhE6Edq72{KP*)GvrF^y!@;)|(02u&zyDEvB={(t8|78zf+xwz z;HiA~c`!!*o;w5mb5$6lwbYJ$@TA$6Q)s62ely6A=DXk4d*9S2-cb?qJcHIVg<21l z);h%l(2={Kk3^>L3fvty9QgL(vov5ZDKzN02WE1E7trD8{tLx84#S9^dj)l!*K?k8 z!As=b`%U@aB_6qd<jxXPnL@whyDyPDBUMkB^zIp5c_Uww^9%<sq4k$`1uxwHDva=X z<HwKzEf<`7Ka~&8EozVDf}bqK>z*^4?$AeWo6{+J${TvVhN?4FCZ@sa1gq%YCvYV( zrwl(Z#~wr@%t~eV!&%;WMCBt|zXV-SC-dy4SKN=?iNS9+<O0U{uHYs2$ju;)zAmHa zM-<QJ2H!#yC-cF#ic#GCg^c2)C5k)jQJf?P>>;FP<!h*^mN33`|Jj-7=QQl+W=?U4 zFunEUXAgXm3tmLK+&>Cl%mqKl2QLnfD?sLQ!I`3;9{5RN!G*giIG5Ks(DQyR_cNLZ zzJ_MKezrKhjRx)v<mLl+wC6qzbkmLB)iJW^yvK_vZ)7XMgB@GmZTwe#;!6iTVP>BA zFSPgJ53^Uv`LQGSUPtcJTVZ2<_1pUJSw+9;{lWL>!E@JPb0`K3OsR$W^y9OAqx@MV z9!<0k*cA3+MRX*R_NMy0k$5B#NoF%ELH2n!g$a7GURdwgMQeU~Q0Q>tB$W{#{^UX@ zj011PEj0spFJ?OpBXI*7yBY8hpbj_*I7%ZFX|)NMa^C@_40)9GRTbK(QsE)`6}V2K zjvIswfyLz++Xx=XpPn;)U@p&I*Sg!>mG^2V*q+OG-LQS*HKb2+cpR{1_}oZO(}2tK zh}yc!`HjaNBV~`34?7)KtMGwr#fgpEb1(TS<s1P8Y+l!6AoruKrvVFm^%-Jw{<9$e z7JQ$TALDH9!%soi5Tgk3TU?&+sX^De#~neJccd)n+Wc6#?rM0%sk@qoEB3kkaaVJ| z)evxPZgF{AT<aj;;?j6LR>Qvr*s-p=$mDWbj=*vRmLsqnf#nD+M_@Su%Mn<Pz;XnZ zBd{ES<p}(~BX9!y!<2di<OnjcEwBJSB?Kg&-mNKBnSf0?{k$ai=(E_Rqg2Op`oFb@ zm(~j$ujo8oF5sNt(|bQ9$uBceHl+G_sa)U<WhO5Fi<neRoVI%@l?zAde?>~`Ou*I% zD1k#3u)R%5zQfbL2_?DTA^+Q0Ym(V`xu2IL{j|WP-?BdWABV)TO^_nRLqZ-~F&vlm zUKIFF!RM9yKV<TMY<pGC3O^@ZCg61f?i6sZfOiPkC*V;59})2T0{*#x_Ilb{Tfgqz zjDLx@c$<99z8&6e4UIb*c5d75-FzSt_UfUmN#EMEg;`{G;E%Zm_BB{D189by{`{b{ zPmUgr6|;@#b(5tjW$5UtN5JdFwV0x+RnRWKs%ZZ~K&|K`P*y?P_^RUkH7Azuf*D6y zIsQ{*s#g955w(gB0m`(rDLBKCJ2|KPQw}O<hq(M#$P|qjvU<KTM%1U$FzbvVGX)%D zA3W&X$5G-q#-<<S15jB(>e^}2S;?yy)3qB3s~mz{+1Q!mPVGv<R~<v{7@K=gYbDfW zq9>1QbfYNlJh%GXagD~kL{A@Ik-%S}iia$(NQ8z&aiyDtYKVFWdX=mSLbZfC#{TSh zRWDQ45~7ZEAPRAmRuM{7xFTH0??jZ!{sd+BPmw9x{$-^fkTJgF2dF&t6{J0(bQ(-@ zRUJFz+(wLTrsXc@pK^@E)G?jv+-`E>RpCN8T9qx7!|;VHxvwY1whj0Xf)a&}lJeBk z7)fT0ZDx(SS!0`N_g1sUHmcEqxKfq6s8TxsqO#w_qGoq=npjvHBkKoDtVe4n?4XI= ztp!O>V24=s9{{C4M=0^lOF-qRkKtI&H5j_;Sk%&)Wn)pN)6$#ez^~N`UBOWgt6g^m zG*_ErfP81GivvJgBRkH+F4L%<wIt1yYGsqFw$kBR@2Xa6Dm-gZ_eNG(c?(Ery(nrJ zU~W*`YcZI8%APuh>+6-fDzC3=uO%)2y6?BtDd0KFnaOFdRWTh_G!;+`-6BG~6+ksI zLN-?xZMN6m%uQ9&bXrvuBAr!=(q2pTxUOdHwe_I5i;CCRmAK-8E5bghR{Io(>-xH; zQlXl1*lDUGf!bQ7va*R+y?Rx_?PlCFYk&$%gkI(mfmnMZl;PyBajEQT3a0XfYZY>S z$O;{x@M92}R66VH1siFFDkp$C?b)b$ZLJ!=OuJV57E0PTv^|(~9AlKJEwvon-~mva zw>iJ7?p{;mZmbq$hx<FjZ)gqLsUojI@*a6HTCe@Jy1iEWn;;kOL#{g2Cbv|syl_jY zZeu}r_@PrzzwT(e`9<wFDvmEGM+STEiDYjN_TfB5BpK%CE2v?-fScFoizP#GW{MpI zgJoj(MFgJVda>ldV3x&<(7h1ML?PoHOlD&JNlgAUsn$nRiAeomCX&w7$NKPa*k0eb zeMjT=h8;WW_YXvp`#P=R#4(Tl2n(kM=>Q6O5(x(|hlnF6y{SQ1#0iytFV9LUiX~A; zHkL|qKlvGu0>3vJN^{q<#|9!61LPncUEbElMlXLNdABCAgUQJ5{zx*Cj`ac!rF)~h z&BIaNt^MAueJMDd7!XY*18Dm_(O8;=()~wS;+TOp+=Fu|v82zSBQ$+UJm|o~Sn*|! zC9<I-fH=IuVN{l2D3TsvzGNyJ@daAiw`N2A%oh!1qRbaQmV}}SvuWn*PY(KyBA#e# z31Wbkj>JQxAW8%AEc3;ZG343E5OQ>A47^l0lnpUoBx>}fLy3qH4MSIAriOw34;?c# zWcd$!AqMNAM64H8r(h77kJn;aJd(*UUvDZwe}O?Xa%8X{%G9f%n`kWAmy+eskt6BI zQHkLsT11u+81v@(KjyS<rCHNlX3%*>Kd|DtMY(R}L}VmuP1gdUN43=NQvJY+=K{SP zD`xhUOCwn2xTOA&>IcTKF6MyIqJ)yv!=%iU#BT&fk9es+srrH8zd%8V3Wuo<DoTA! zemw0#PLBksFW27<q5`?zHl-J~zYPpp>q>pOzTHU`B3)&Ig8x!Z!Y=S>?JRM*em*4h zW&34}r2oP!U)_<bQeUpuPYZq7P8lz$FX;*BTJ`1ne_ZIx_XU!nINSB_1&!ibcwce) zfg%2aAm4*H5t;Nu;xvk_`WJ=%MWH_~1qGzTDU>990A;JbJlFdiUq3STs%QsSvgk>C z*rqSv@3P{BPrm0!dAt8Pp)ccqLcAZI5c;$lvnIPfUp+xU>dSMm@_cNERT*Ww{?njQ z`=$PzsDDn>e>X8LN%o&4{RIkG^N3S@#rIixUe+#e$7!Wc%VoNUD9QKTIa-k++2!r{ z1Z2oXsZYnHcoH{`UEYqr24Na1QeVFB$@9$e+_D@7QeTdrpF`JLzdVOHw}E@Hr2o>+ zTQ+^>?J*U-CKxb5A(wg*{u?;f`UiymfY(%!eo6yUPvXBpfoQV*bc~JC2`>i={I`#v z8HiE+4W@V@m-@R46th6GlqCGfQsxYi{lse)>~^JIK^BAsG%!CD`kQ6Lgo0hRY6<-{ z8%>2)n}Q8xmoK4zXp^b`uBcZ6yZ&`T-`>vM*O?kgn}S3otcIAaiCpoo#Kh4k1%(4P zl*dlq`$B|+o<<WpA?CrWfzk`696xgYr}=HM`lp*s{na+6y?#?_@!SFLnpOV-CY>pk z>jW#4P8km^Dqn`@x!)?v%MPp@<n!9fbYMo1&*4&fMPYxcl&&%P+$^Q9DC~!o(pMJt z1xx9bOg_I#=~adAO-kvjn0(%p(p^kGM@s4L!uJxTbPtpBekr}Wus>N!uPMyarF6X6 z$@$m9aA3Dk&Z`zOdTR}n^JOXhGFF%eEer=+%jEoKA;Zo(%vU{D5-&RnyR4-w2eYp# zOumE3U0A!keHAO^uPhZ5n4_?2E3#?am$8rLixjg|1)#8najOGe#V+!6h2InuIc<9o z-D}&Q4hXt^-<oz(6ia;M{ny9o3;S_I*pd6-KzVu+xxyBXhclor)~>Ullb;K=YnG6I zliT;OPPZSWVwy&AvG|b0V)cGN4EQP65gbMKB`#%=ap>d$S=g>R&=t0D9M*$ggLcuW za!PXU+ylCoQ%bYDIDO%`?E~F|@oXQr3D9dwO>iv7=?m}o?=2z!%o6lhmZ1L<bn?f3 zf4#GW{5<I1Mf`LjAdC5b4d~VCS~g_6PwR<}6{MW6<oe>4CG2!^I_??~|A_FRX9@W% z=pKy!M{V^U6L#c!UpD20pxbv`9~XA){q+MOFL$Wq7B%gb(m1j2qy8o6i^c6F&?!E4 z`)@2Ee}UVVUKimdPG9(ZQ5}o-3+qj1Guc6$z@@KzZfiYYbhIDr!iPr1ua=B#!sw;% zmNHC!R%9U=MmS~k$5Tf_aU+~fr87ooaEM`xVjv#D_L6VsO%2;%c@ZJn{lexBZG#xt z&PX3)=4MHFFp)S06$@t29!rTRZT-*&7TmV&1sTTP1A%=(BY69*XolG)SuQaXX2z}G zx;?P3y%kax4*%4O8EqZ=TLK-%{=It-2D^-|KubrE%<&JQdNYIE`~UF+FWRv&Kbc}i zgm2%F)1{w$`Tg>nDbt?$^_Aam{k&?y$5*9n{_R#N3E?i*Ei1KrRA#BQ^y@P7tFHyd zGASd955%x%XteJ~lftp2fh|Y#i!r-&AwU#T@d24l2794QM5c6G(J-*VB{+PG(XutV i=(lbLKB<#Ez2tXqCEv`!6$&|huEsl^(Wh^v{{1&=FJfQ- literal 0 HcmV?d00001 diff --git a/omp_sort.c b/omp_sort.c new file mode 100644 index 0000000..ab404e5 --- /dev/null +++ b/omp_sort.c @@ -0,0 +1,92 @@ +#include <stdio.h> +#include <omp.h> +#include <stdlib.h> + +void insertionSort(int* arr, int size, int** sortedArr); +void bucketSort(int* arr, int size, int** sortedArr); + +int main(int argc, char** argv){ + int bucketNEff; + int thread_count = strtol(argv[1], NULL, 10); + int bucketsNEff[thread_count]; + + int* arr_final; + int* input; + //double sendtime=0.0 , sorttime=0.0; + //int min,max; + + srand(time(NULL)); + int n = strtol(argv[2], NULL, 10); + input = (int*) malloc (sizeof(int)*n); + printf("%d number of elements\n", n); + + int c; + for (c = 0; c < n; c++) { + input[c] = abs(rand() % 1000000); + printf("%d. %d\n", c, input[c]); + } + + # pragma omp parallel num_threads(thread_count) + bucketSort(input, n, &arr_final); + + for(c=0; c<n; c++){ + printf("%d ", arr_final[c]); + } + + /* + min = input[0]; + max = input[0]; + for (c = 0; c < n; c++) { + if(input[c] < min) { + min = input[c]; + } + if(input[c] > max) { + max = input[c]; + } + }*/ + return 0; +} + +void insertionSort(int* arr, int size, int** sortedArr){ + int c, d, t; + *sortedArr = (int*) malloc (sizeof(int) * size); + + for(c=0; c<size; c++){ + *sortedArr[c] = arr[c]; + } + + for (c = 1 ; c <= size - 1; c++) { + d = c; + + while ( d > 0 && arr[d] < arr[d-1]) { + t = *sortedArr[d]; + *sortedArr[d] = *sortedArr[d-1]; + *sortedArr[d-1] = t; + + d--; + } + } +} + +void bucketSort(int* arr, int size, int** sortedArr){ + int c; + *sortedArr = (int*) malloc (sizeof(int) * size); + + for(c=0; c<size; c++){ + sortedArr[c] = arr[c]; + } + + int my_rank = omp_get_thread_num(); + int thread_count = omp_get_num_threads(); + + double range = size/thread_count; + int i_awal, i_akhir; + i_awal = my_rank * range; + i_akhir = i_awal + range; + + int temp[range]; + int i; + for(i=0; i<range; i++){ + temp[i] = arr[ + } +} -- GitLab