From 73ea6f32c21daf7aa24a6f1e816d421c9aa5ce97 Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Fri, 12 Jan 2024 00:11:01 +0100 Subject: [PATCH] test i there might be some "false sharing" going on with openmp --- examples/more/00_example_template/example | Bin 27352 -> 27352 bytes examples/more/01_sample_from_cdf/example | Bin 27632 -> 27632 bytes examples/more/02_sample_from_cdf_beta/example | Bin 27616 -> 27616 bytes examples/more/03_ci_beta/example | Bin 27392 -> 27392 bytes examples/more/04_nuclear_war/example | Bin 27472 -> 27472 bytes examples/more/05_burn_10kg_fat/example | Bin 27432 -> 27432 bytes examples/more/06_nuclear_recovery/example | Bin 27720 -> 27720 bytes examples/more/07_algebra/example | Bin 27352 -> 27352 bytes .../more/08_algebra_and_conversion/example | Bin 27352 -> 27352 bytes examples/more/09_ergonomic_algebra/example | Bin 27352 -> 27352 bytes .../more/10_twitter_thread_example/example | Bin 27504 -> 27504 bytes .../11_billion_lognormals_paralell/example | Bin 27384 -> 27384 bytes .../more/12_time_to_botec_parallel/example | Bin 27552 -> 27552 bytes examples/more/13_parallelize_min/example | Bin 27448 -> 27448 bytes .../more/14_check_confidence_interval/example | Bin 27352 -> 27352 bytes squiggle_more.c | 21 ++++++++++++------ 16 files changed, 14 insertions(+), 7 deletions(-) diff --git a/examples/more/00_example_template/example b/examples/more/00_example_template/example index cc23c9feff530a361c3609df27df56d64d0a43db..0955afbda9d0aa601d927b71389733aec3ddcd3d 100755 GIT binary patch delta 2093 zcmZWpeNa@_6~A{`;H}8MU4<;P5Fl*aw=A$Athgm6Ji9FS>7(Mvr-IO8v7KR}&OnJX z3e>GhUe}k{o@6GO(TUEOCT;(a$xf~5hp@#DVvPkx6K5(>tJSCAM;47l#n^A57_Ta-!O!Gy0e*0jEuF?>p@tlj&JGT+Id4ZMyXE3rX$#np>rs9~jjbUTJ$- z82>>v|9i4pDg^wuc7C^m&kCS5TrP!9a-x1NCi3>+jO4%5JsD7LvCwb@i|cf9ti0K2 z>mFjEpH;S#pp&?p4epAqOozF7&<1Udc&Ui{&q5H*;7D~!2YkwrxO3KqZ z5SHZiC5Xx??Zl+657N1WPH1o9q;mH+y^^SI)FovKx1&ahj85(y9p~7R7Kl?91lu1mUO3`Zx5}o3+Du@L| zHuTh-Ai44qzP+jIS^&1Y1WP!bkQi_Ct%l#ZTy!;zyCg~>Ls&|!utrEX-G2=I?ljmX zc;EGUS`o;k^caCZDImi^g1J!PaY332s2x;^y=yPvc z=GF|cuMHA2AtEnbl#~<7h0xV|(HS$UA!rt~|LvB1EX!mWV+|^oe+QHxb4D&^u zjqH=2!|X*q?~GBxN$`4>&{I(FSw(liLC?}W1!>VD<5?*Gl9f9sFSdA$&;M3?6-}~o zcW#B#w!*BZgzkaj{9d{r2J&0!3a}NFEK{z{5#V8>quJTP3xCtP=hqe*v#}W8JQCwK zCV#xhkg;(z#y6$D1KSI7eOnhBD@H@0PZUS8)297-J{E_VR;^(|2jp%%jbu@6AB+{W zEEbUK)BD)k$BZ9SE@>Gc7FMO6wiBYgef62R+J`vOvSEK=x}^gxNSIm=gN3{3-(jWq z9l8v@^zJMiu@UmKMQHP##8C(Do#x-@daCQ<(M*F|O+LjFQammzH<;@4z^wn1(!OxdE@_&jHMnnDyaXw>Aws=TZlYf~^h^)r% zN0=)@dmoN3JyKqWjyE&sZn^PRsLjr;_|S1bS#PYz|Nr`H#`AeX!QsSj$P+$5o72w@c4?P3X(z1lW1bPm_)6%@u+KX6YXqNW+M78p%tV}btK!6p# z9C{2|eHrWSEI=*yq0@B)E^H1Xqn!lLS{PT~*23cLP+J&87FDYM$b&~Qx ztQD0fbx8OUF0Yf_vqlYCR^+Vjg$18fq?r0Duunh6%Ta^9K8o0etv-WD@L^!_gcKn* zBko1)LcE8#2eD>K*AF2MApQlh?KZ|C9=NOP`3Z#d$8>!k;yuI>#I|W&zmGVIn3jn1 z`?}tkNK9lj^6ttvOwvsE** z3VY%M)}q%F#Chj_8pmLwGMDZJ8g$Xuz>WVlSQ}hJ2jF0Ear&8m>v{tckuBEjb}L6x za42AjDe!sFk=~2~)EQQ0%{DPBXILB2dI)BN4mt&?Rpka-RSE5c-BnxYMR-uZo?-m7%!j>@e!JoWCpIfkqVI?R`;0^uB`Q9kr8{XgJQ6|t`) zI7mlftkIEv`B~Il$ru;FVhpwcpiQkNQV2h4DnzY*)#RZ4@Y|*yq{vzCrP-0S>k}!x b7irpXDT(d||7Nd6ST?`05ZShQbKHLbv~wPg delta 2070 zcmZ`(Z%|a%6~Fhf;6r8KE<#wW3WQa5VV7NmwQLz9PnX@h_A$W-0s_GnXUzv&bpl~J zjlgtk?Cbgx;z>T(W+ryVPR&dl+ia6+CR5lt1d{rXG*PBSV@w)fh$t>viHfi1g2|Uo z--q|R=il$1bMCo!>=Qcn3H_r;(^sw{bKlCil{N}l@uivNz1|I?yXMHrf;}1TSMSu! z#-C5wD2c&BLYS6uE`B!ibxZGNrru}K>kj>e8-}3{>FYQoVjFCS?#}v0r31rADjgr8 zqgs}TvUU_@*758zr6a*&Ket46s?b3tR;VVK78n*cYOdk1dRIC=8ck4^_%em50lP(( zj-O*{r(Kk_ZbRw#&^fBmvr6oTVxUdiV}$Qs2y3mkFxGU3m%u}8QeHJ-F|GX-@&f1(+e^aH_eI(GI4Mik;7r(mxoaYzPO#{Z$WmJEBCFbIw{#6aoju#? zF$^OTDV6em$;pY77vE)1rL+mUR{mkJTpv~+u#S5TVRaT9tBQM5WOY~{`r0rC=v*p8 z`ma!^**Dn}lC>Ixsb4Ev=a4An^>MNRkvm0CiTXkGV(Nw&{TsfBJv+lXMwmLn5?AsV z(crt?XuIr|8x?m}PR60YHcfIbOaDRztg_xV^{Vp{dwgbv8v^dXWZ z^f%!%ciWOm~5Gzix`drQYGgglptHs1wYMI_I(w7>JAVaO+za&9f-qC`m9M~ZrlX}&5r z=-o=EVA8uHy$tmjmQes%Whdx1I8%0V(L3gE$^Hy4ug-Brkb>X*cM<0^#$?L|6)od8 z8H6ZW>M?}5BJ?-lxEIf_ND5J;b_6j6>|dX&A0FLUtz&<2A%9h$Dz~ z(}r;yaS+kA0Oi|;(X@aFWHA2f`uzeGV0q2*g|fLax*%lUCX7L#X18-EKd_+L@{$lR z+g?mrZ_d|D>&=b>sUfrXg|q;74w(CBN+n#XDWrWsgGKZiaN@rXHU*!ghv9d@CAshY z+b|lDi0m@wcbG+zg-ZvPXo54roLmJP(7>(CoG&o5$gNFieFbKNIe1{%p(@T6DyOZm zFSLuEhC87WYJmb)LhGTH72+;?*g9eAI=sb#sW$9GYMd@wWCF3aiQ3{ns_iu)e74Dh zMaHf5ITVAP4ec1FHgr=j&@J8620z>KT|6&B@c8Dw!;kd+aBE8r zMy5Anl^8{TN{ nMv8*19%_ki+PZ+!EAi%*PZ!ZH@bB=X+t$o)Y>V&Nu_NWbp)e84 diff --git a/examples/more/01_sample_from_cdf/example b/examples/more/01_sample_from_cdf/example index e7a51fffe71dd556cd5e58313f03e4c833f34f7f..c3c651a6d06572a3909009851aec2c780272dc82 100755 GIT binary patch delta 2129 zcmZWpeNa@_6@PbuWmjR}qHKW%MR5(g?BedC$ZlwKpIPKS`iwe)2qMN{kWQ%|QwVWJ z!DjRIx_Qy*aXRhPnUd*DlQijIvzZn%ZQU(ei4!e2Nz`c?*GS3ZOUR0mqIi4WuIWGB znSH-|KJK~a{O-AD`YM^eN=_Sy@w}Z&{LY87NS!Wwc<#-2OJifjkNsGX9^QDN=WteG zVfaYO@65(mR&pFwGWnHZSN2Z{3Bre#7%2_^>O0SxyQw_CjRq%d>e_L}CuP`@SLm^~-n!-#b8tlxzdaN-xT^xg%d{js{giLr2XLiAZw46nc)M(U@M2i}F1h z9ZBJPhk{W;l|Z_mMsMi_zV{zgZnqi)rIS%|pUMHNS!(XSXdjZuWhu1D5Ks;=@!n^m z()P8XT1maD)uwsno}eN8Zd9C4NXi;pz&CdEu@=4{fYwlj82r0IV4uVVK5OHw=)2u9 z9+1aqu-{Kp+N=gz(P%YyL}>7wZRakbQP?Fk3A_7)5#qTrYGaJ?1*ymIlrSqwBV;$E z+26_#<$2mXC)9}Y!&>OG7kBFg`GVS^GIo|E5<0JXQK)?Rn=VmMnwTh0;BiDNk&^Kf zXAS5i2G9A`4d^9e`VsYQZ53*_MriW@l?RZe0!lQ{QCTngKJU0lL-|&$F{6d@`!9K} zP^H~!_IwmTx@_H4dGfUfjA^ER4Cid&+oF=(W;OF!$cpO3;Gr6;A>f?nr`BWa(;`K+gACEu-%ajlx7N~MKSc^s1` zVsuz9k_o=R&l!@c-A2j0p4?z z5)<5T|J|(SR;G*ESJi00xy0p%ID>4!CTYO*;Hi1rk+9j|8C|83RHQS zONDnz3Ksj-7f}}Fs)#zOEkd0U_-9GA`A@TW^GKdo>n^w23T3P6J%07UmyAgj*r6Sh zRGv~NQEcI-KEia7XD#{AVoYA(i$B&XSO;fUJxJO8fafx}=XeM;P z;5#m2w5Te<9?!1DJv_&qnZe%vtM;Mt4fQ=3@>E$ipk7@cd&I6pqAnRMAF|fwIDdd4w2u4`F_|$Y z>xoE8rfwm}NlKapAyI^Chnls2tf)oD(Itszt_=&N(RvUkouRcs)2IEv{sm1xiRr3+ zP+9IKZ^85B>j+J(%V7l9*I=dBK|Y49-g5oSb#y!cZ+MF>GuN=h;5_Ln6O_t_l6;3M zB|UJ-yBvFa%A3Ef1&4wvq5n>N%#A2Knnk0(z>VKN%sc$jIiXHco_u!&cKUWv{!FM9 z<-04O}?M$-}g%?-4PrBJ!u>_ILg=nVhjiPG~%&I#{7DY zJB?U_Xui!@8{$F4mkdLg;t7)hb<@2V9f7mTz>#|=X%eVnLJPd8hNNEM)3RohAz?LR@xw5QR&6#WtkmSzZ8RCY=;%jlJ1h|^wAkWmG6RZu zfb4~N(LvtE?+TEr4P*jpt5*;&9IjrU_8JoP91H~(!(g?WoDP%kZ`P5%@YYSoQxR@% zb?JyPoK=%Uuy5_Pox~4s;&%}8wjU>b@Xq$lNdoZf_jMe%h%<9BmzFZeeOuGHM|w9b zugk%mzPc)m@{_tL;)X*zuI4>cp7d``0@sQ4YjF<3p86d0JY3(2@967#7g+|&8*+#l od<|M2e`s)FzBe1v2{{%X-MKG=db(f|Me delta 2101 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 V{xuMrZKkfmr3GEygU#Oy`!9j-JgNWy delta 2133 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 dl{{p~dA|U_( delta 2099 zcmZ`(ZBSI_6@K4cJ}wpZ?h43~K|tBaE-dbDa4nROaCKqdwbv#p$ReOJIBR||Y8xr- zC?C@`skiG*oStMFX4)zLOeX1IvNLUxriBd>&}e})L(PP!t(sghidjrtKgjKQ!Q@Y; z_s4zC=X1|F_q=c4H0_(FCk2}J@*1-Eyd1UAMnl%|`-zEL8@B%L%>Kch^aE$(>#v_U z6g_O*EYizxX1OeciU?t9##}T%bI9DgjVbq8_)ELC;-;=EquRs`gji&wwg1jS<&=1A z45`JzaXO`D38<^DqR!f%&6C?>EON*k)~HN}Z*rYng0?Hk6a4H<5EcUsP zDL$K75(g)ka?mD7YL_mzpK(md^dEBM$AYg_{izA+f-R0g-MJ2!9|*`p0oewA3X6l@~f^eab8gj|$A#ViQ2u)^J_d zhv;G{qnZ_!+UIWc_$9SgXUcV1Jvb_e1$~@sNZ>)?5kXsxQB2vG&=f92o=vd!ai)y3 z*rftSIT)CdB3I6Lo@J3d8#b06V&cAYo{yM%&}R0W_9-1UJ5zhBfAav#Mb`*U!5I=e zVzRQwW)>|t3eAMvk$RiptGw4!9%vs6&r+sb!0C)A|MWTTGdjZ5mJ3+i{}~Z)Bmet0 z_KXV0S)^*Q{8QI-Jy1E*36sS|DgCHuSKw~3J?*c#gv3R&_YjoWi|IDlY7ZFFtndfB zhvvhCJ=c)*;I}1KFgQvry;efz#h&aFh?r8g7oKperaowMl+iWtqGPpTeg!5z0_Pk# z2H`$T+O6~^=#D+>Pk+HDd}WA_R1yO-0cBJc=Cj#sv{J)lfWc=3EK z)l15Q1|*z8^ETPBz+2FUqCZ*xRvHW&%x~4aVdypE>W(K7QiyAQ3(>9Vx;2@Q$yr^0 z29e<1a2Rnn;!B9bh;JYkeyQuH5c?2k5Z!peTT=)*Fo*k!_;g&?-$NWm)DYeCx}KFv z$N*vmqWiY4|00zb$UwAg;~x#w0Ox8~{y;KSgj4;d-G=jUyY_&iga5BOlleu1&t!eU zxWQDYCT%d;k0tv}?&ni{JlJRIqs9tQ>xyU%yjfRF?eGb{%|QK6(cQ4cpP73Yk7FYe zk^QE^c9TG|P^`gLPeHdoCzqey2JU61LIX1i+zm*oE9mLl+$Yy1fgx_m|tBTIw44Uoa4|oS4Z;Co1?9F98{NXeaR1_8iPi zYjhz?W#hjn0ZVX*x?w7qlUq}^6u#IwiazX#vtchyyRg=_CRgsQhm@4h8K0LP#$1Be pn!1p4)eaZ!i*DJGO6k+lrsmXidKKFCy3&rWUy45(?cclC_+Pql6c7La diff --git a/examples/more/04_nuclear_war/example b/examples/more/04_nuclear_war/example index b296d202dd5a69c6f090d1fb9a4f59ed833cf8d1..0ba93e27766bd3137c8cfa287818b0db0af95eeb 100755 GIT binary patch delta 2087 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 delta 2086 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 BEtCKN delta 2106 zcmZ`(eNbH06~FiKk%z**-N2T`l0alzz7}>D!dDUHB`bR$zD%MakWCh$18(A!sdR)g zspX?tKjwAw49-!I8oR}3URDTYL%u8qS5%k5XzDmngm|YThxC# zeKWhid(QdY-#zEt_s+x=otUD-JWaCZlh|VoTWAxP)_>uZZSYmiQw{qccx%JU4M!es zesMbd^SFRO>*3J(?-EMOf%Db5Nr)9hE~lN|dRdalT%4 zj7!ROVQ4ZKp)7JKjwv3ySrmreV@j8u7u6nJZhJd_Ql{_9q5F7Gv-%TVy8fZ0`j>ET z{57K}V~b75swFIhi#pZu16kc_^Hk0EW(I^T4-!JXL<;_u7xfRKqF||8k*a38=RL|i z3y$$D&Tr>gb%)*DJp#44R*O^D^+2Fl$a>rmCqh=ZB{zZ6z3@=p?~=s^Nx8+^ZtRhi zRj}n3^v8+Hxb_cC*GFh9l`-uFH12(3q0cL-_v%dfQdYahcp+=R5F6nQQt&LVy^JiT zY+uom=5P^ubcMA|FlB;8X0sSIfMZIcT(#W&4hv=4v9RO-6MpMZ@S?IGKK*TLYx$tJ;oqW8N zkbsc)Dfo)N$E92X!Eq-SPJ>N_cfbxuI>+CHU4=G!1^ONB<j;zFEGxD^2jDLGAmp{Wkt4|CN$SBH6<+Ui$A7dw49Uu3%)@Jguv%P7{{U`hAAJLc zoh`H(%&yY%>gU+a5uiD@+$Ata#o-nUUKqMdtMuvm;!7od6urhM~Y^={}Ckz)b0;+vbvEnkm!-30qH68@#dg z^zF~1b6xIP_(fT|BY+~t2zVWFJ!eeUJu0gyKf9d}Sxrz8Vr6Kj;jOY0)ej(XZWDg$ z>k~rt+dFZr@duj>f5QLzyAA&WCamSbpUYkJBwQ-Ln>%#@PLw;T7aA+>rVO5|D5TR6 zsi;V7zktk-VXdOT+VxMYGPp|n%J55Cla*zr7TKVtatob-mdecCGdL5pGf3Lc)S3^_ zXcqlqv-seg4SnBCp=Dw74Y5g9Ykq{&SZtJ(4@De7*Te=H1Z~!K=F7z5)5ybbS!96Y&h{5X}G4EH0Z>^2i0i_T*7 z73jt2ug9 zZS}^TOZ8sb8GfezJ&y9>AMWUnNBHD^Cr7!kr6HYC0{MGd=pZP2dT2J##vaPUp~eH2 zSmAi+YaAgPiJ7=ysWClcz-44iNGx&0i(f~xVM~(}Rqk(Eqyr%C9ihWOeNJqJ+n0`h z$=5<>;keJ4(OD1^Ab4`@abQt~ek&~bdXV|>J|`vNWBV#7eLp<8|D$C35F9_~OyaB7 L`I!B|19ATa4vinC diff --git a/examples/more/07_algebra/example b/examples/more/07_algebra/example index ae1efe92de1a5c36ce666d7b268b73728638cb81..3b401e89595cb1433e4c27c090c82e5c23048c74 100755 GIT binary patch delta 2118 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 w>hdmsyF%as+MH7Csm29n>HE#4O~JRuK)l5 diff --git a/examples/more/08_algebra_and_conversion/example b/examples/more/08_algebra_and_conversion/example index 8405818cc281caf8e563ac3eca483bc740052efa..da3d70bddf483b9fa8d4dfe30f61ab14c15ed19d 100755 GIT binary patch delta 2145 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 diff --git a/examples/more/09_ergonomic_algebra/example b/examples/more/09_ergonomic_algebra/example index 611b4e9587ed4d087b00fdb3fa33111ff306ad14..d975de507ba76ec03ae2285a680269f7b594e4eb 100755 GIT binary patch delta 2149 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 V2-VxYX;t?wzMfRYp4h%U>E9Jf9ccgn diff --git a/examples/more/10_twitter_thread_example/example b/examples/more/10_twitter_thread_example/example index 95b1d1caeebd24be8d0bd06d19ede35ac6bdb5d0..3de3b1479834d061af352e8da0a9c2d2e3e345c1 100755 GIT binary patch delta 2102 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 diff --git a/examples/more/11_billion_lognormals_paralell/example b/examples/more/11_billion_lognormals_paralell/example index e65a0d70a7f042b3593280b1b64f8b7937f97a40..ba25d1d734e43d20420172d9afee8ec1340d40cd 100755 GIT binary patch delta 2118 zcmZWpeNa@_6~A{EmbVf1Eg*qSK`^ee%l9ga5Juf+7WO{-Ok!k35X1~Ani(g-8Bx=b zg=S5gH|uLiPX1`7W+WfekbZ=uJ85GlDZ4@%{D=WZZ8J5|2BS|v(M2mN`g-1C`%m8= z_jkVDx##@uxp(F?ojFZE;;8wPB_#fR5>BP{hWWQYIA|Vk%&lz9Q5t@Fo!jwF+VqL= zUgK|hZr370n3AG}OVS6dT}-~Wo&_fzs_Ckx$%E>^6@+N0ChN^xcdJJE{UtJKJ;GXtnLLavTJhR7Rt6`kI8L}fBq}iNv7jBx)Z1jj#IJqOD2CO$fuZ+Jy_$M73t6u z%Ci?aK6f8hrgPRwuwW$Zbc|1Zd`7Ao>zL5H$*)n`G$v1A@l=dnFo|@M&-D;9lC1No zz6VG03rsIw)--hpZs$A9KeiDP)?xchoR78sm` zsYzLcO!I+^<%sx4@f56dKFZyAn2IdP~m`u}%65-Lo2nIyoQ1-a=S z^=Z^a*%wg{=|X6C1dbJ~vHp1m&mSqQ)MubZOJpHUFC82IJ@d%l+<3xDYcmwpa&CXSYTD@ zOEd_FOW&YZp}wrMq}xi!t~B(y11PoerPKT`cHY-C;nN&Fx02Gu6XH54$(NYo9s`4` zk#2!z*8=l5mUzmPBe2i)Ddk|r(nIq$qirr(6VPRuMbBXheJ=lkI9D+i>xxK9%IXwC zBqh<05N|@Yfp^)Ts{I&vIVXPE^(RAVvbW=V$8BrW?TPLu|lBbzcd>%e`FQhBs zoI88{ZyrJ_voU@XUg-mm}zsy#@7P_=$>l%zyMW8M?YJYT7VfjvgHGYlyw7re!4(;=#9P8)7@+Uc?c^ zHxSDvHSPC^J%~ey*AUMl_TuxOWg_JK6wWGQB&KPfA(l;JpNPGP^OFd%-q5s4#9qWb zNyI>`;cr(TG*B~i*5o|owNwU^yp}D7bMRhGyK}F8R<#!Es|K$n>zBsWmOLeaSseQl zy_T|{n}oUGZfaz(qIMDe2%f3Ur@sOj*KYW@_DMPd)R%74Z)UyzguP(NYqfA>K8hY} zwH%6lnYO)1fM54AOP+yQINjTh-XUoAWg3z%!7krpdOF`Sx*vYA2u0w)@4%K3xdCemciTp z-82HW4ZCqNUfb|wYP?b=8xvygGkG}A0Telkj0{|W)d;kCd delta 2096 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 qTnKa`!$1BIve)*1@8kajfmYVrTf; z#;R}QYw4Ws&USX)(ivx*PCJXU*^j!@uE|2TscWk+rR&Vn`hlwt!GggLRPgP2;O;-0 zKko0|bI$wSbAI>Sn+wDA!Z1B)q^98LRqN8BGQN`^^2jG2#a1aNO3{B$D-E~xW2() zlrlMxxs zAvoYy;us}h`VplTKNdnQ_6Tc=F)4;BWiqOPj!6cgWTf>B3oW-}jfK(Ed+io36;)A2aGOx2-54l&(77Rag9=SwFzI_< z`i9BN`%9g(0v&i>-gV8$Wgf)LG|f5)CXAvD$GOyJXT*}x)^V+x+)}w&Wzsk%Plf1J zgFq*^Og}N9$eNzYK^V(*8S2JVRXGkB4u|Qv3_{|Z#g_~fj$E1yuQ>!7g-;#ps2L_5 z8M@mKA8N2j7QiKvQ0c^UoxJE44B zF!@cA2&Y_`X?|rLt_7()qP(X~LTwQkcU4&aJcAv8B5u&S%%j+#G_TIgD!AG$MKF-ypS3<_x)y1AP&7yS%#zb)@+AYeHS087D zSy(DH7X~1A?HMGCDzl^T+S>XwC6$mZBj1*dL z{snO%Wz5za5#^MM6hcH<-+(Y*g>wHpc&YG@8>=vKY{mSI*WL}e-o76nJ>#BjnqB|@ z_5+&zCg!W`fvO@8JpqS`p4QEbKy{Iuu7|rtPtzmd^X1XAu+z8RaC`(KGvT*BSNb3R zg+&JEXs3^tOCO2SG?NPy_|BJ2SAyzWzV&xcpqjH7v>h+@aa=rpm&R(*_TNi7&8>XE z*NF0_kML>ds|D#>zDkhp@RhtYTZM$bLGxD8Ij7a2bcOd7zhU~lzeU&8eN9zkctLuw z&8HB16;-wA3Gw3#vwW2Gye2$(knlLF?S=q|!Q>3(Os zc3Nd-%iFqu+4fe#Gv+Kgk(nJw^#QZzkbz$a?xqP08p>AFlkl^$T>2~c5XWv9EPH{T zhwSpSj0wDsHQGb=iaD#vY$Qu?%COWT*j#SSXh#96G%qt}>6qE5c@Lm>06NO8x<%LF zm*r1sbmfKgDCpTMbQW4!9=6^GI39$r*lOJ77W*;H07UouVuSd7N@BG9@<+6z1D+|&c_ u)LAj(59`{HA$yyfM#5XRB~jWFuG@Yw8UOZ6cDqfn;svHy_|@IJ6aE8>mojDm delta 2084 zcmZ`)eNa@_6~A}+daJN+5x2V-BUo14g@t9or4Vb%BMW=iJeyiUK18E~UF{5sIDufM z3e-)Sysj_O9LL0FGTOgVXOil4>4Y?$z*Y&E(MD{OIuiyzqUK2?%Az9?@b%oq=ATaY zkM}$GoO6HooZtP}i=WerpVN~9H4f&I_-`aCcG_D3)nJ#DpcnX!ql|SBF|?WHFs@b$_xwLa%eXubX^(Lj&g{GpRygfKUY2? z9vDJu@x(A4Q5Oq1R{w}&*8IX!xjD+hzcPn3D$@ZuoTJ2;>KhW)s;;4ca$h_#5{gn5 zy^+8apWQ5pCq83Jn_ZC94qa~k)Hx#4f5_pd1>a_Mw;s6vML=zu#JP$0cq4p@P0Xqw zER06A>Uu&}SJ`~!#nh%TEbjkE z#M@Z*eH+^cg&r1O9WVdTO(EgafQ z82^4(evAXAzS2$LOkP%opjF~Hp!lb?$)zl#`D-d!IazDIUEMX+h?$BRGByNr3IUi#Jsb-lf!T+KbO7<$*#3jhV`!Eydy}9 z5gB(vxhgB)#`qfMnCSXW>%@?(+>Uz$?J~UYDxtG*#nov@yAIn5w$S%sprEAmyRYI5 zxR;ojXh((qu3ew^rSj28Ol%sCiCfb4EaGz3pO1+RmhIpy%qgwN;2wS+Fei$ZY&UE9 z*B(`bRhVmd2osRI{!=82YN^*?e_>O`bUGm)-o=CcG5;{-l6C+l3;mYgqhHgnK9X0n zU?Ex$taE1?OEH3smR#87-cR3#nEQ|+*$l50?Ja!EOvsCiFz7vuR#0?LiLbUj)OD$E z2`5+6-V_P(T#%Kond+T^VoxLe8K|CR#z|A0GwllWdirQKJXieT!WYpuPu2#W5^F&a zDfkocSH$^}v0Bf7tfn=l5hANe&mqLS(2QfyUh+c!p=JG zPx@bfJNHjuz1kl5#i}Cu0UTcSBo*SeACkRK(zl?>n@>k!xA#ZMy`z}uhCg}pET_N3 z9z%1q(~CFhp{z_XwO|@1yvu1Jh^0$6e7pd~OvU_7OkLB9gUwQtv{~A6b0<#x?<+JV zE_)!=$?BSq@bQ*529z%(e1h&tHIg!0i-hl?dxPwp<1J_hBb}xDjWA#^|GA>g(A9cF z*M}1c>Bf_O2eC)fbz2f4MfmdUMBIwF7jXdb5MuT%U4IX;8}T&aWyDd$9(?L;$%LH0 zjYk&oWK7rphL}Bty(0D?E>1!H@9KIPVh`e;6k;GGaj{;nY&EgcOR*~gQ8rf!;02AivM=rQgyIwT^yOxevQfh;;|holHy7)}6T zT|MoKY+Kirh;U`S8=H)z*H|e%3C`MQX$2^?9rQfVjUBWPUfTG~e7m^(>!`{iVkVbe zye>jk&I392$X^7L8?89gSm#ET^16RxHR<*JbSsS1TQge==F{UXqv^wDI9mnKhG%IH zY-@1iJ^5XO6)Qg8(18rg8{PC|WPM`_rQMN+O_vtppL_WZx3RBuo~bXgd&iE1{{R#C B9I^la diff --git a/squiggle_more.c b/squiggle_more.c index 9271530..0146707 100644 --- a/squiggle_more.c +++ b/squiggle_more.c @@ -9,6 +9,12 @@ #include // memcpy /* Parallel sampler */ +#define CACHE_LINE_SIZE 64 +typedef struct padded_seed_t { + uint64_t* seed; + char padding[CACHE_LINE_SIZE - sizeof(uint64_t*)]; +} padded_seed; + void sampler_parallel(double (*sampler)(uint64_t* seed), double* results, int n_threads, int n_samples) { @@ -29,14 +35,15 @@ void sampler_parallel(double (*sampler)(uint64_t* seed), double* results, int n_ int quotient = n_samples / n_threads; int divisor_multiple = quotient * n_threads; - uint64_t** seeds = malloc((size_t)n_threads * sizeof(uint64_t*)); + // uint64_t** seeds = malloc((size_t)n_threads * sizeof(uint64_t*)); + padded_seed* seeds = (padded_seed*) malloc(sizeof(padded_seed) * (size_t)n_threads); srand(1); for (int i = 0; i < n_threads; i++) { - seeds[i] = malloc(sizeof(uint64_t)); + seeds[i].seed = malloc(sizeof(uint64_t*)); // Constraints: // - xorshift can't start with 0 // - the seeds should be reasonably separated and not correlated - *seeds[i] = (uint64_t)rand() * (UINT64_MAX / RAND_MAX); + *(seeds[i].seed) = (uint64_t)rand() * (UINT64_MAX / RAND_MAX); // printf("#%ld: %lu\n",i, *seeds[i]); // Other initializations tried: @@ -53,17 +60,17 @@ void sampler_parallel(double (*sampler)(uint64_t* seed), double* results, int n_ int lower_bound_inclusive = i * quotient; int upper_bound_not_inclusive = ((i + 1) * quotient); // note the < in the for loop below, for (int j = lower_bound_inclusive; j < upper_bound_not_inclusive; j++) { - results[j] = sampler(seeds[i]); + results[j] = sampler(seeds[i].seed); } } } for (int j = divisor_multiple; j < n_samples; j++) { - results[j] = sampler(seeds[0]); + results[j] = sampler(seeds[0].seed); // we can just reuse a seed, this isn't problematic because we are not doing multithreading } for (int i = 0; i < n_threads; i++) { - free(seeds[i]); + free(seeds[i].seed); } free(seeds); } @@ -109,7 +116,7 @@ static double quickselect(int k, double xs[], int n) double *ys = malloc((size_t)n * sizeof(double)); memcpy(ys, xs, (size_t)n * sizeof(double)); - // ^: don't make this operation "destructive" + // ^: don't rearrange item order in the original array int low = 0; int high = n - 1;