From 792ab5ceb2021068f914376df8555b79dde16908 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Tue, 16 Apr 2024 14:45:18 +0200 Subject: [PATCH] Scaling --- Data/scaling.plt | 189 ++---------------------------- Manuscript/benzene_qz.pdf | Bin 0 -> 34183 bytes Manuscript/benzene_tz.pdf | Bin 0 -> 10961 bytes Manuscript/scaling.pdf | Bin 0 -> 9472 bytes Manuscript/stochastic_triples.tex | 40 +++++-- 5 files changed, 44 insertions(+), 185 deletions(-) create mode 100644 Manuscript/benzene_qz.pdf create mode 100644 Manuscript/benzene_tz.pdf create mode 100644 Manuscript/scaling.pdf diff --git a/Data/scaling.plt b/Data/scaling.plt index 47e0a6d..0fb7897 100644 --- a/Data/scaling.plt +++ b/Data/scaling.plt @@ -1,180 +1,13 @@ -#!/usr/bin/gnuplot -persist -# -# -# G N U P L O T -# Version 5.4 patchlevel 2 last modified 2021-06-01 -# -# Copyright (C) 1986-1993, 1998, 2004, 2007-2021 -# Thomas Williams, Colin Kelley and many others -# -# gnuplot home: http://www.gnuplot.info -# faq, bugs, etc: type "help FAQ" -# immediate help: type "help" (plot window: hit 'h') -# set terminal qt 0 font "Sans,9" -# set output -unset clip points -set clip one -unset clip two -unset clip radial -set errorbars front 1.000000 -set border 31 front lt black linewidth 1.000 dashtype solid -set zdata -set ydata -set xdata -set y2data -set x2data -set boxwidth -set boxdepth 0 -set style fill empty border -set style rectangle back fc bgnd fillstyle solid 1.00 border lt -1 -set style circle radius graph 0.02 -set style ellipse size graph 0.05, 0.03 angle 0 units xy -set dummy x, y -set format x "% h" -set format y "% h" -set format x2 "% h" -set format y2 "% h" -set format z "% h" -set format cb "% h" -set format r "% h" -set ttics format "% h" -set timefmt "%d/%m/%y,%H:%M" -set angles radians -set tics back -set grid nopolar -set grid xtics nomxtics ytics nomytics noztics nomztics nortics nomrtics \ - nox2tics nomx2tics noy2tics nomy2tics nocbtics nomcbtics -set grid layerdefault lt 0 linecolor 0 linewidth 0.500, lt 0 linecolor 0 linewidth 0.500 -unset raxis -set theta counterclockwise right -set style parallel front lt black linewidth 2.000 dashtype solid -set key notitle -set key fixed left top vertical Right noreverse enhanced autotitle nobox -set key noinvert samplen 4 spacing 1 width 0 height 0 -set key maxcolumns 0 maxrows 0 -set key noopaque -unset label -unset arrow -unset style line -unset style arrow -set style histogram clustered gap 2 title textcolor lt -1 -unset object -unset walls -set style textbox transparent margins 1.0, 1.0 border lt -1 linewidth 1.0 -set offsets 0, 0, 0, 0 -set pointsize 1 -set pointintervalbox 1 -set encoding default -unset polar -unset parametric -unset spiderplot -unset decimalsign -unset micro -unset minussign -set view 60, 30, 1, 1 -set view azimuth 0 -set rgbmax 255 -set samples 100, 100 -set isosamples 10, 10 -set surface -unset contour -set cntrlabel format '%8.3g' font '' start 5 interval 20 -set mapping cartesian -set datafile separator whitespace -set datafile nocolumnheaders -unset hidden3d -set cntrparam order 4 -set cntrparam linear -set cntrparam levels 5 -set cntrparam levels auto -set cntrparam firstlinetype 0 unsorted -set cntrparam points 5 -set size ratio 0 1,1 -set origin 0,0 -set style data points -set style function lines -unset xzeroaxis -unset yzeroaxis -unset zzeroaxis -unset x2zeroaxis -unset y2zeroaxis -set xyplane relative 0.5 -set tics scale 1, 0.5, 1, 1, 1 -set mxtics default -set mytics default -set mztics default -set mx2tics default -set my2tics default -set mcbtics default -set mrtics default -set nomttics -set xtics border in scale 1,0.5 mirror norotate autojustify -set xtics norangelimit autofreq -set ytics border in scale 1,0.5 mirror norotate autojustify -set ytics norangelimit autofreq -set ztics border in scale 1,0.5 nomirror norotate autojustify -set ztics norangelimit autofreq -unset x2tics -unset y2tics -set cbtics border in scale 1,0.5 mirror norotate autojustify -set cbtics norangelimit autofreq -set rtics axis in scale 1,0.5 nomirror norotate autojustify -set rtics norangelimit autofreq -unset ttics -set title "" -set title font "" textcolor lt -1 norotate -set timestamp bottom -set timestamp "" -set timestamp font "" textcolor lt -1 norotate -set trange [ * : * ] noreverse nowriteback -set urange [ * : * ] noreverse nowriteback -set vrange [ * : * ] noreverse nowriteback +#!/usr/bin/env gnuplot + +set grid +set key bottom +set format y "%.1f" set xlabel "Number of cores" -set xlabel font "" textcolor lt -1 norotate -set x2label "" -set x2label font "" textcolor lt -1 norotate -set xrange [ * : * ] noreverse writeback -set x2range [ * : * ] noreverse writeback set ylabel "Speedup" -set ylabel font "" textcolor lt -1 rotate -set y2label "" -set y2label font "" textcolor lt -1 rotate -set yrange [ * : * ] noreverse writeback -set y2range [ * : * ] noreverse writeback -set zlabel "" -set zlabel font "" textcolor lt -1 norotate -set zrange [ * : * ] noreverse writeback -set cblabel "" -set cblabel font "" textcolor lt -1 rotate -set cbrange [ * : * ] noreverse writeback -set rlabel "" -set rlabel font "" textcolor lt -1 norotate -set rrange [ * : * ] noreverse writeback -unset logscale -unset jitter -set zero 1e-08 -set lmargin -1 -set bmargin -1 -set rmargin -1 -set tmargin -1 -set locale "en_AU.UTF-8" -set pm3d explicit at s -set pm3d scansautomatic -set pm3d interpolate 1,1 flush begin noftriangles noborder corners2color mean -set pm3d clip z -set pm3d nolighting -set palette positive nops_allcF maxcolors 0 gamma 1.5 color model RGB -set palette rgbformulae 7, 5, 15 -set colorbox default -set colorbox vertical origin screen 0.9, 0.2 size screen 0.05, 0.6 front noinvert bdefault -set style boxplot candles range 1.50 outliers pt 7 separation 1 labels auto unsorted -set loadpath -set fontpath -set psdir -set fit brief errorvariables nocovariancevariables errorscaling prescale nowrap v5 -GNUTERM = "qt" -I = {0.0, 1.0} -VoxelDistance = 0.0 -## Last datafile plotted: "scaling.dat" -plot 'scaling.dat' u 1:(740.99828964984044/$2) w lp notitle, x title "Ideal" -# EOF +set term pdfcairo enhanced font "Times,14" linewidth 2 rounded size 5.0in, 3.0in +set output 'scaling.pdf' +set pointsize 0.5 +plot 'scaling.dat' i 1 u 1:(740.99828964984044/$2) w lp title "ARM Q80", \ + 'scaling.dat' i 0 u 1:(266./$2) w lp title "AMD EPYC", \ + x title "Ideal" diff --git a/Manuscript/benzene_qz.pdf b/Manuscript/benzene_qz.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a9b1032a7ccac771b24e88f621f849427333bdb9 GIT binary patch literal 34183 zcmV)8K*ql%P((&8F)lR4?5av(28Y+-a|L}g=dWMv9IJ_>Vma%Ev{3V58Py-m+ zWBUA)Q~&zAKVAQH-5d5F{_WRa{q6nrkN(gj`=TU2_Uw{3l z>#zRdkM|#+p8onDuD|)^>yNqoq5Sf}K0g1+^$-8~um9ckZ~ofZX8bz%^s8Uk`gg6% zd4%%sVUkdgO9zf$V^ioDd^(!_W=6I3y?z^`@?XTLJigQC^C#2+}}O_CPv+V38U87M3PS^{th+?0l0Kv_!TCFPK`%Lqui?he+OrT0K7Rc z{0etMr^cV7(QoBY&ENeu*`V|n8SC{un_D0&{hon^<{Vd{{jUuxb%;?Fn*4UV^Id)$ zZ~ij-Ot*V{?7zm>tNc;>_N#X1#Zxva->v-)v(xK${YvXICV!1Z|2kWo()i9{E`suJ zXUeZ2_%lp7y75N8lPT%`jKP1IEA9SQ@}>7Uk^7Jc!0+J9uc7#Jyg7Ob&3-R;KGUT1 zaP?o}Px|nu{_?Nm(K8L#$32DL&YPc_{u!P)c2xhJyvX;*O8r@0w7-BCy?vJ!giXNj z;K{F{_;b8DdJ4^cFOORN*w;V9qx=`>OG)*+uN4+P0Q`0y{VIw-!=tmO(Cl~esND5C z|2aL%zoJL~vTMj=*f1Y$L;uI$|3p-zEls^M~6O+`TxHD(=UJf|Nf^xZ2ErHcFd2z$sfc`6S}|o<^TA@=)e5!j~`zTn!o!)9>4tf z@1OtVU;gi}|K|^X?7#evhvg0 z_xvndKfM2Z+F$)`dRFhB>0=5q`V=2dkMFXcY1XH>wK{#Tz4k+yy7MXa3SM4T{wPSE z(27rSGkHEZKgIG@+V1W7doPl_YS|OJoP_E#G5O4Ca`p-jNvS)6XE`cLN|To2q|G51sYiJy`icrC%Ra zuibxrD69UN_2F2%Hy?NL`Gh*`?}viVR1bu-&5BmN{IKkU`$NEGfDfO`v_GFO`FyZ( zzHMgZMKanZ>mkyZ+jjqDJii0g!=PF>U##4W?!9gs{i_zl14iErs$BLyv4 z%gURsN-mhze*_E6WB-r~KYDB~I6&n?6cK9#o=E5CG-KH=MlvMJdH%wr7A-7*cZ_JeCH+Ay870E{@+--b1Pv-GJ|rDW~-g@2ot*PDzr-&r`aKIJXJNsVm# z`zy`QY*C8Wr?|yfs6Wl*m?%e>_}iOrId*=C8P$gzb2rmeyH@)ABSIRoY05PxxooauPO@g0cbN1+&mSLrvzbwuX6Yv<57R9Dx`}Vt zWCHH;nl>wBc@CS$CKY$M<>tsVSrW$@p$YYMI^KV{DhU5F7aLlpj?!;eq*18oh0Py4vxf58 z%Ch^ep=JeLQXHGWPtKc`;cz{(Dg3PL`oRfn`!Np7tkUe>d{Z{OIkeo^V18`UZ?Cr1 z!G`m)>A(kIb+^5OuI=KUXWe9(Y3}0SUN()tXqcAS*Of@gUav3nHOuTfq`1q=kXhF- zF^hhBb&`h8J1m2WP;vCtIr?__dH|bE!|{Pl?C()7&V`rR2(LZ1DKqb|25l$=Vk)=j zlb4zIMeng--Z@eJl-q|(&HjXC??kmtJ3a6+>#^WC7J>y*g$YI5WEt^>ciXg3&nUv2 zW0~Vx8hU2dSLZ}_nNx@6?eZhJ{EgO-9PFam^i^SHml=vZzAh_ox-!0Dn{>$;b9ae( z(e;7yWuzq=e;WYj*ID5q?WT^J*OM&LeQ)!(Df<*mavRewMc?-Tih0uJfHg5d0BAI? zRy4CfU%Mfu3sYUfJ9{T^&jgsey|;gUb``gog3H_GW#e^!@7{K_Cj6a)5Hw*l!=4&s zOS6c`J-%1P-&>j`)W$&Efa?Rv6lg*FOo>kPnIY2-8WERCp~ar~!($s{oBI`Tbo)@# zgaUNrdU2q{wXlP@m1BSFu3_MilozouNTDg#0~{cs+nEP9F!2B!YrY3R&DNbA>^q z=^0UKv4e8AbLxrZP{*yj7DU8KeU2E5)}#7G$jchOi787N9mAiN*YUE zzf9H{(VL!Ta3|bY`%TVf_aJC5@oXM~$e2y#NivWX3ZxAVct(3;PFTl277G zHpxeTNj`lOuMx~yz?D)F#r*UFemcR01SeIY+$q=c#IWdJ4PY!y;!T0*ISGFt#?c$( z70CVO_CiV()1v*iO?hBN6CBSJI(VKbzS^Yk3N0F^RaV@daf(9hs!dhjj&Vr{)eP&J zVz68fm86kINYZ@I)TqM3gDchtuzk-67`FErq6*%plMUv6I{x0<9jp0|+w(N(C|r-M zY{KfJh)a9e3NgngpEFaPDHh_bSuSW0U0oBw&Mu$yl6loxcHVPq2#G?2(FLmgz_C?RGMq zh*l!`J}pVUIU|E$ayqIfQ+6M>IlZQ2nJz@jpPV!$b2JTewhQGB1EmUMe+R^$u|k;< zU?0vF8NmXEtR4tvvr_;wDHx9#D-;;HY(vGY)&&UWv)%&p*($(jXP=;xfO3U7Irh!m zW?`c&AjB#~1rr7$w-02qr3haShCO42;^Hqf#AE@ND9-6>+VT8_$$?6zT;U|Nddt;3 zs!Vp?UIIQK%STXE;Ulz~$dw0g_t#toSu>7+#vws!;U&7LvS6GK(#$o=kgCX0VBlvt z3U9N;IzT%7gcbw2an$nD;Vgy}x>KboCoDMIc&wKNoAzOCnqcv&*Z=*3YZuEzGPmg1M59>7pGO; zrod<|)_^98S@Iy%_yr4t!f9O=iG;M4rd1Glxv7W1S8nPd1X^y+^`M94CY9J%cpxx@ zMODuEUa`=cuiMK_L(@eF4Gr6*U`$HlY!5OmT#MW&(T8-*KZ-jM$gt3fI0{aj`K<}= zPLu1Be9e?d7uQU?^wT<|WSB)xWl9FAnIZF3d>sN$ja~1sHY>gmNvgwjNZaB8E1ZR(IgMi;7AE6aZ!}NLHnlBt|$Ht_MpC6Se{mGgyEv zL+?$d2jsRuAF!E$^cKiTu`yd3$s@1jT&QpjquL=oehxf~JYKP7NXOqLOoHtUz@8;j zqh3y>z^Q1OY^Mn1Qi{72*wWHp6YDbIq*1`6x}j)OYOnjycdf1wIbLqBz@sq0QnVey zPZ$=te*V3zj13X1AOAF2R`G5!BuwT{28Ct(CZocGINDLd5{{z}j)cE%P19kZ4OyEV zRIj+iELwpO8(c^eeG9W0O&bb)h%3i4`ST@0fdd&RXeNX5{0SXr2*#qSRR|E)oBHN8 zGJCuLD2E2un|=--ii0s41US0lgP__{z~>b>VzRjTmT(BfooR&&(F7C6RJM1#0LU>S zUK7Wv16r7dRHcuRY{aq-2ysJwym<=Zc96+Npv3 zZ0w=9#&v2S$?i}=$U+N|DU^s7VH^5^Oxw%icXaM35&*BE_){I+A0y?%R!o|S)$s}% zRrn6Yr0U>KF+X9v2|68EoxGx1ac)V^t#-G)iyCcBf7xF_q~9>Q$eXy=Duqupc3 zO&jeEMFyQgMMls$^Y>yHF;?3Sv7TjU9JSNGf|PVjX&|VU)B=BEhE$wvpxvqvz^dsfBC+ zzIluO!f3KBaHFkCxFjeDcLN$_>i|fXY-wimTw3j|g*tFW@ih|aIABqvQx?!F_#0HR zdXL!qo5C*HVz$>hhc6k^Y4se*F_1cCOHO0z=ytdDw+d?8gEnA9jDwpC6Vs~3y$|&< z-YPiAH;50rA70;VOz08kooJ=tERrKwb%io~Mbb*CO&(VxGr8-5f;le~;J7IF`F31w z;^dsyIO&-$dKT%SoDkUdlT2;lY#(jKqJt%)mz_BYMI6MUGAxog)d{zWKqlOTym-GK zrb7ApjcA{IdcP@2d}qHYNqk4YkFBD9f9qJ<^^~A&MfhMyU_kp#U8^LBx@P#e#UaUe zdIo+$l5SO2AVv5rW3g%91&CP>6b`r0lg>e^$J26j?rzAgcR2?3Nyp$7O7w|6a{$n) z_e?4WYxKh<_KYC_S@tXo2eO{s4f`ZH1q|t4Uc05e&~AX9!s$qc=y3dsaw@d9{J=uH z#xE?dDM|MOScKGwQ3tLZU?i~sGY0f^ds63y8~{JDp0ki%&sj*v3ZmHOHBLdm?Zyd+ z%BQ98vh-ws)2Ti+Ip-U_L16m*rB^y&OE21G@TrU3 zF~zbSDCIZCt?mmDEL-@Uvi?*xS$~S2#^1{p$dPUCGXJb1`%gmFYk}2i{u%q~vj6y& zrS%oYdpwB?00<>}7EUn8sdPDjB*H)`#4>KOFaV5)4AG98$Enfr(5YOE^Z~;!O2*AY z!Z1MN7HMpg$RY>4C`qIQ#E(Q5ep$(V_(<~M#@~VE0DrYJ%8A@CA(D52OGbRFd_KEiTaeu&E zu3 zbLc4}_lvR^V3T5aPlEJW++0!w4hhi{Av@$lBSmCWWcFQI9| zWk1K_i>ySlRG}kz%xm=X(-NqH+%667eIEX_iVavdc~lOz?=NX8ek&6EwP(3V$t0n&``u**n?Jdlodpa79%49?+) z7L~GOl}bV#kPii^q?1RtkxUo3Rp0DW+8hY0ppzd`Z4MV8%`+;WyJ$9%+Rj6!Ag}XG zNZ4b(;bo9D&n7#uuM6cSG5(H(Q3q^Ctt7^TEa{zKnLhtcZLK0daB43AIk-%BO%q!I zM~%%i?FArr@&F*gmXbhbba&2oX4P6RX7QDho0uByy>1B{6}IgG->U!J(<#xFOx}{>d<7V+fp9LHoUP4h$NCj7VFJ7 zB>NnYBh5T9Us@YPmN6YZObOH2MpeeNH*om^5R;}8^4wy1+XhF0wCPy3oM6s9m^dA4 zG|A%vM0BD&UO2%z{GMJ^CGm<%Jt2AFt(t8%O?1R9XvvTBEswuiPDa& z>k@^V?T@(+c8A@aa&O)zL&%oa%mVwvp~8qAjAJr(rKP#Os&n!a06++iVs7uhYkme2 z2K~1KFp=ee8?Wh)&#(3Xo}5~<{(Mc*kR#*s4xG+BnzZZa;Wf)xoa}pfzENTna>Bke zHHZoq6~_gt$YW|{S-#KV&5{|1k@nADw7F9D(`u*4SJK+}x|om}zXO-r6n zy$k>eO>_z4y~Nqhy!s>@2o^bDi*AYR&I?}fT_fUy@m`X|-~|OZ#*&fSe6+!(LEfgF zMTCynq3x9gk_H1>l&&r{VvXtd{Nx+9dvQ9Jk=Kk{67sEUjT-b`_Zsy|6z%+-H#>NR z;a3qo#TmnP8?a^sEOHJTff)(S3Yq1b*BjA_F2w>>p}$)|c;19`2!IP-&?McjUM(eg zE=GAXGLnxPk*su6r(oRE{UVF`$R}jYh$K-)0bn8m!;)^cz)`@A1Z0I2^UgtbDJ8$U zs1he)kS3*+exfUpF4V{(3l*}+0-aghfp17Srg@{VL;oy*G31nPwSe9tyLc|yb>tVj zHY2;(l|L0q&}*0ky@IWgy_-V2;7uSyuK`jWi7B|P{hsn+7E%$Nz)(e&01zNMMVeTU zSTzB{M*_KA`WxkVp|q_C6tE3}B}7g*Vrf6iWK$~#cX2QcNH|`} z>Q&e-K)P)hczxT%LBTd~Sg>stR-M>aFig6C4&EqDZ9Rbfle9tYCiiXNUDBRp9}PfU zcYvWB#J~+ERq&lKBWrQj22GZB!XU6kG9AFnupp479TIYxJEkaLx0HNYJkwLz9%p(s z;M$OQswXo^m>ZHg-#TPuIP!g5*!7ePwu;efzJ1s7DVXWvH{|=+sLad=z8SQ9Alx%V z6>gidu$C8WqYLanDzE`AKn`kgPKK>{k&-%s6d{3(UG-2UN-SrIkiSZV0ziZdvxc0% z4~nyI;_kv)k(F5jyV>JL6sjQSmxbim3YbG$infFWSlG^m1<2a-G#$;A8;h`pxdJDg zVb+c(wnZ`%bGg-;nV1{ffXj{)Dqx)=zeW3-nOV3IfB_7*kQ?d9#L+N*FO)$Qe(&*b zek74~3e5rB_l6^5@~l(Txv%Rr;=XQX^6ahUU#9&OjzL1;sqz4~y#fepD3UCe@sVUK zO{ji9_wddjHKi^&A9+s2T@sbXVU;Ap&m8bS+t;DYyqO6WJMEG zsBF>1)B%`S(83hXOxaE0%!j>bV(K+05&_LNgpdN_Vl6PHgyO%Pb9_R>_?u zKzkK6eL`C3<)sxByJ(6T09qat7&~|bO9{PR5KW~@J8uij1*i7xR~)})fd+u%0SU7V6|5LQ?XB8Si6!P&|asF7wPm~Q>WCy?^!*?RFGnS{0@0bXEq6j^a z(PNuQ3(Q_*3)|-h?4F)2muu5wuEs zL~HxXgkDA-(RaDT0_7 z2$o}bMM(F%&NGq>JtSEfv^4KmJHx2B`SF2RnA#g4bnGY*CuN6&aZ(4^wz9Vwii`?i zvFp$V;aabO_&E;AWlInYl#MrKgAsMsn4(MoQikuJk@=Hiryd~eNQut3h;i$1XmO~f zY?1@cSS&LC0JsbigR#ivb3l`o0*ZEX96KOe5E8w%`=!n8eubr*CSKkP2NeclyU$UD z#J-~m2R8tkiJ3WQ$iF#iloLma1_nucu}lMZTezvY{dx*w1hC1Tp}owRSK!nS7P85v z1;AkwTR95s^6BB)0EGTj;jp01qj)I3m{{cLQKP;rWK&qr0r?P2v|Se<^^{C~i@QqP zLNcP}TL#^ALQY$bjJX3)j?vOu5cdVh=|Wn2iM+jBNb5%d2lrIHYrv_-8S_L+To7;% zPSS|d+=@aRFTdCZKLp(lGFWBC3rWWyKUJRRkQ{GzP6-~9cVwakeoitA#;3_X1;CnT z6Y3ZHS#R_4Hd;+ai&$l}7=dhNwD2cH>a{U~9B^9Ee#g)3cN|kzj-wb^XUGEgKVzov9OhmAI) zs~pof104L43GxaMpDOfY6d|1}2&lZ&sMnw{y&iV=+Rq!FMytyFaQep>0$BS3}Tv9_y%^)H&TU=P9yo5FCQIL9|dgDCH0i_*% zwqQj7IE}~%{_X-`w6nrtx<)&#%IGg=HM(Y5?DXyO_7i$;kB9U=05txMsyO(Wb|C|R zw2N5bT%y_Ab8(tHwAb!{93A9Xuc_f!?-kfsuUQOUa616OAW!)TFT+iE{TXL#^L|af zXL|XbncS9M0GyqqQ=T)ux=62C^K>`iki#L)e6nihb2c(_n2lTpcrmKH=8%)qR$wTn zd7kBc0%U69NXr)I5}C7A1Ux=_-9 zL1WBYv^R?L6vAZ0Ok}N>$6I%(zV4U9U3ZwjY(RQD`juY%UFpTGm0sg~<*o^LRoC9h|$Gv=hS#^hWS^2OGtDVDkwKszIqzLz6#}?-x)T>Kg zJ{{8PFPeH#vt41le8oB^IP0y-i^&!TWX0n!OM2*lW9GJ^mR*1xy1mwG5UzF3;LH7* zOP76wGtgD;d^+ReZ`^ElKIQ0Y%bi0X*M^iMqEYU1bzkmsim=@EC`i>!3m*s#vjAMm z+(u(NTx+>~32k1m-0h8{ovXrfYYiL#aXMe_c}9#Lz!3<00EbI|0LNnV0eA@E0%RPt zuX9=P0JsnY>91f{N%<8rDk(=#^%UcvDt@5L>pRL#Rw|+TxfFWJ!Ad+&kRO4w2jFbD z06F=P>Wlq;V95c;`nRN}C?X*})*tM`0Y}8UBt{o*n{$^m&IMaZ>y$-WXQZIy6z7B` zGsBXB=Ynh90|24zlDU_OLW`9OqRlu|@&HOxO9r=4zzJWr)oEG>822xfMq^vWsJ$v8 z!32!h)d*b~vU!Hx%YLw1(dmLM`tbXD6StTb{*>_YuL>u#%UQtm4h8$BYyW*jQXar; zFMwI7U7!U-K^q$T1AQ-;ZE3q$Sg&8(Swx6{r9-0&S5mtGlZC%eJ5rib1 zX}3y$Go*7~x=S;tR++~K_~x1ePJ>p9TW5zHpBeU|RO1}{z86KlYctAm%oB$Pcm+5m zRV%Ht1Iio6X<2x4wBUedYyQOavoS8`lgUOu`*o9q_W0Vfh)MXz9jeEudQb&q-B&ZBv)*JJ~j~%W+#9zAV;HaZX#ZcGLh!>kP4(_qMeeKf(z@1|K{>CWdfrG@w^Kn>(>h9$uoEfIq z_N9DiF#>XA?9E;O0Eh?H%dI$~-I9()0wx;a;Y|T5j~Erara@Ie;N4Hct!1EB010Q}(Ix`<2IMjuxNK(Q80Z~Rep#J=N8H9pG z{rfy!j5Dl9`RtL`7e@&6OL49lQB1u-j9{m08=^%PO7jLf%jV@f9%`Q9xb$Rtg(AQ@ zIedoyLW}UXA8kfuzB8w@ytBW~0#9nGmw5>L2$dRAqlxDfRi&w40dVG8@z+<8s^Ae@ zGKGLhQ+eapyd?_{`h*nNS z0Ne-7((nLy$?yJdXR#bD#(ME#EdLH}betbD*2#(?n~O~$x476mnMzkcjZ@=s>DAGo z#W7`DJS<+^0}3R>?#GKMBa9K0`#Qc*L&RH@H;VE?k>a2lBbo$UXXd~5s9M+%TRM+F zG=g}7duRx82T~)5+i=it7LA==yF)kmdwZjUj7dVHj2)1fE@C{=faBKd9&p^H)vbI1 zaHm)un>Z)rKKjH6Joi|aGHymli{Tb3ETz`~-*BvN1!>TV$fxJm>XBleDCYoqD;Jn&0cNzkSqstO_libd7It17U68^jlt(ks|;?4&k zR@YFS*p%q~jeri%o1EExy}x_#@#heXz`+wI&?%MChw9@qZI;e6Ek3}yE|&xb-9G6R zIA95gqp$mj^;0%?Iss?;SJ!}*_%uYx3f%xod6hS_{2EaL;^^zThcp20I0SG?=>WLi zU4Wbew8sGoz^QlXt#?Uwf!!n`CE%Uyh;v>6>-`hMJgE|bzTX_YU;JqrswU{RdOaJ;3=n{Cw$zU93-;se>0y^Tp3LJ>3#*lrrXkUgLMn7b}_%ZOj{abG~;o z-u)^Q1Ttvjv}0{(C_-#)yzG19>oF);lB$jij*!CI5JN)=w!`aoUJ}i-i~W@r$|nyD za2ceXEy^2(XU#TPnt*Tra_Oil>a|xsF;2Sb*YLqD4yR3#EDIS_-%PGACfAS(YbS&+ zFCi_NloTe$I$#_eD5RZNh_u4{lfB95?f9-pL;^+$aD`OprgYr^Kz*IfZf6la>Qr-9 zmqG!}3Fp7>eAMuC?Ur=s^l{oeG*2f5ykA<_QpoSV00FPhGw}yto=EN&^D*H&YT&AG z2api8VYde013*q0-v|7Y&TPT^4`anZ+mM7_T)dAu^YOwp6JPj`(8BNu!5v zxP>ybmbqk=@^%0o5%b)ybFfrdDmI~|@-noJ2S=(b6|>xm=nw#OFtg4UHL;xV@JT}% zql-yxppx}7dBfk0MyCDoRY3p!^)m$F09Y~10;{YT7pK)qU{azW0^s(i0xXem@c{!Q z9WFgBz`VqjG}L6psD`p)tU;sYWg0E^BBSL1u-)6hdOCpJg0iw+{g!q1i-b<6w7`n_ z@0RKsD}dc0kM#L^*59n=12j*{sotwWLhAK`+==hgD4~^)%_!yd0Ni|^hIzC5tNCJ0 zF4Nx?QJ!rCj23Hib`>Ff;KuZ)=y@d)q38S@02(YBQ}iMr+0aRb14i@jM&#X#d<=yh zv^Qg5tenVgu;TCAH0qIKrg5teTx$_qKy(5`^i`q@5a2`oO1=ev_opXlEdFH~>w2&w z)5MDmo*M#uZ9o;Gt0eHyCZ!+n4;L&d)X=jDa=%P=Uq`)sbNrsbSIb%PioOi2u zakPkVkfs0tP3!_DE>_vXiGX~NJ;;`JTqxreVDchhw8#fNq2v|J*+dAaAbUHg@G__n zQa#Ic`OQ3hs7rVEID$srvdea|wuMjRn^)m>AxPhE7Xqhsg;6(T)Hdz{MTqrrUV0RN z-}F>YJTuH-)zXA_D^+T!P4X)3QHEWNfIT)t1KaZqfMhMmCKy2nWKu!KXA;4*EM6!T ztMn5q?BD?~B$QW%nK>YL{Mh(6te{th6$};n3muH0ld#QTl{%z1iDm|?90u(Bq(JaQc&q^lIiQ~WzR4<5dV??-iJL;?5WXoyULLqe7_XOH6e2GmTqMi^ zkYPg+bnaT)?%Fc@3F;5q=N4&id%VHj(irXk7X>Q2RV z;_R3qg&JmpDQ}rzinqV~K#~QflTI|jj)P=DtMu%i-(q>%O}laOl95gA<)Cn9W%#`T zBZ?5FDc!|eFhd21llOGWs0$E$K&rusUx0uh48L?fkZad`#uD9(Fc!SPO9ho(r-JGc zUxW;jzxgWw94L?5*bSz75Rg}#2Bd|IavYE+>7c2PRdPFV9P=IA)*32g63UBI{pn0} zlF2@ALJuSW%tQdd1(B{yGr_OTFHeZ8Zo{ahxwiq7NQM6#JT30t4WlJ#z(Iosm(7{A{m<#qD>_0o;=`uVhXceG@; zrq%&)(~@0)^b>*EVEkzx%Yv*AHA)<)&DKX-8VL#CpeJWH1C3CMKay&}4+i0qw+q7?1ysIMn3pI#Ya5oAkmN3xjbeRv*|Tbf(DmnnL5P zn-kC?k2Euea2 z$sqIPq5}|I2Hrio+)eOVq)=fT2xXo-sBYgrF~9UE(}A!=KZuu|d=A97pXgYhhoP=e z-2)(N5pbtaUGrv=6ayf9jH-PdD9alqNOAz!L>;SFq*$|LV&o**AN7JPy#iMgd>~7+ z`AW8jvA6~h(@ z-)2)#lyA3%=84vm9V$5NfEIQn_<)=`OmTMs572o$nlIGh!|XvhuYHp~7Dot0^EJHi zv+pzTxjc{J1CU=Bz#RwN!tns6TXToNnj6b;2wo_r0?XduMb}hp+1rpyYLgDWBONXR zu0X>iqr7~`an6?%ql?MvfZN65? zjR1VbfcVr$I)=;Cb{i^mcg3b|Q~PZ&8dE!L4rqrv#nmQOgHL-NgANZ(20HqiupX3f zw%2Ya-ZRzC5g$BVdbNIPSI+^qNyc}7wXNqB$_piEOdzS9+h`v^2%O>BR}VDeU04R= z_-yR)J0flMe0vrlK|W3!ing?*`0E*!#PhdTgp@P3%tv&O8b+j7U}Sk65A_DR3#r71 z6~!fm1Mvn@%Jhh;;amK(GWn*WVH+%iZ7SaR_{MCZ0sf3=2<$T+OAfRs7_xUy@!;}N z;S0|9DJTxkUlaJn-V@2w7*rgb<0Fw@s}d;~<~2;RUcva)P}+KD1x3Kw_9nkLU~f>! z(Z~Z4{tb$*H~i~Gdu+DG~lW5Sbt}3TMe!9U&>=8!zFG zA({jrO+Yxl+lk@SwJ{_~yoie%)dHKwxy$kagptbh6%GHvtgu*Rj{!alI&j=qKZ{Efqcnz;3(Sk{=U`}u?W7X@Ir>eulzX>hB>{SJ7wAnf88g-oK76V zw+Hy1;+7pB;7bDsWg}n@%<0Nt4k6Ys+9U~_`-lK=3+85Ew=8^rCAZ)#nVaM6sv;Fw zaoRsnhU5NIdWPfvQ_R6}e-=L9!L<8ixjEO@;uQ}Y^5Emo>5XesxFjUR!EMHN8Dx{_ z7;!Wtw%N=(0KkgR%-95vkS*bbLT+ad2?$kt^G#RTB&POw6+7OwmbAp&Lo9^TfP=h*=RvNFH{Bl4yBp9TYj*#vfC5q7NKi`n~zfNJ~mL67mw#k`BOVM@Q2f>Iovr?0kx1h!wZ3o_+5)Ou8*KZv*c9LPLUy z#^OSo6;%+hlw7yKP`b4i=>yW%Bz@l&o9=?Y%f_i?Z69Wp)2-D8ZlFC;Bp{`9hjqID z?jSU4ev3PABV8TR*J`47r&N&Uom?AWoYW%4va%wv9kO@QIylKSNJo??Qqv%N=R-5$ zYu$<4fg@szd`l0*79q3Kl|B*!ZVEGU6E7}j3JJBPGWiq%EESfxNH z-it|^G2#z|B_phWFa-jUFP3hFa*!}~)-mde))q(^+qiEwD?mi`E?^WRkVqO!w{{{v zpyQ+S!KF+tk@Hz1geGK{AeoXSL8@4W1Vu(Ro%1iwB2*I05NgrzO|Uoq#YsvxRcAC+ zxeU_7CmWtT z>B24hLWQ|WpOyA+&`2c0CG5WdVkV1ct{;#|nn$c3h_Q`_!5@gpHA0>Piw^`$X!ImJ z*#1Cn;Mr_xbR#_5|3D`2()=}el0=O`7F@(a>Ksc2-UJ`krU)i4rpN>5kQ(QRhlt@P z*~%i_n#DJ|2<}}!kcZrgzbo{X%pDM6W#GQiLvZstHF}893tH>~U4()tty72*L_lK-a-;sElxQtw82YA-`5cD0or=)v0A^ zBYBubDu+#``E&VXXX9csV^9?u8?g}r9^xq912MVBIydlAQIdGcp6ELQqC~m#vl5Jq zOCX72@F7V}_eWhD1e#GHw?kw}YD!)uk;`swPOzMoTlDfPZ<0%kcS}#biq+us7Fmc7 zXsL>czlWYo{9QKj2FV@g(La!gqtc@^3~=Nr9)J#&0?vwi5E2e_7^p>|A$u|5HZMRp zq!uC6Rh*l9K=-Lt=eR`HBXk3v zDJ9MOkdYZld%hy26cCft0NIGM?0RjW6|=z#-;^|GtME-pTQ#`NGbPR4szs4g(gshh zU}bF8fVrzx{R#6PE-7geXpiSTA3jg_Sld@8htW~sqD}}9^8+Txz3o8f25b#rNUsCn^&A-!Ny7rEqPr!8FqBwA_G#v!~*jHqcCJ)m=7rP4I=$rk!1MT&~~CY=Z? zO#|O+nA8=bDs)YX#~=-N*MVIx=kRdP#4o5K&a7#vqU~0d?Yk7eK{{@*FP4y-GJoDo z%Pw@Rm$Fz72bATt@N9L;E-&*x*@X-bl#vFUkfNKi>=SZyH(rzru|ksyDAm_tr#@ww zD`f3PyzoNVZAKQo6sogh$FMQAXg*c1HP@9^*pN_=SkKDkPa@+bv1j`^+$gy}pOCTHf z>}!gpj)nw75SgyXG%C{%4azRl4-FwT@eis;Hf}?GGERhjFtP}QQx!T8@^k5jhN#*x zy9BmlU+4IlQU{k2vs0f5-%WXU+VsH|9rEr}oZLkzg-H+8#o>+^d+M}R-X(902D?T6&@B2O%Ar9$QLxRtq;2`!Bx-6*lWvmICgsdTx>uyJ7qAi~ zqtiuKrI)0$f{jz_kW7EH*bV*B`ewPA34ti!jIyR#83}X`hXhW|JD8#&ohBmYdVh;2Uh>e-x%E!wTV+nMY-bhnC zyVd^$bRY#|;bbVaV1ert99&V;X($p8uDt@HJ@p95s zJ-bgLYs@EU;|O%6%sr}1k5shy%XCTXmxAY4r?24r@fE=jKjb(s>ac;rYy^;On3wQ? zUX(Ns!K?!gCww9tOyIwHag9Cr8&`~LJ1OWBKR~WXA30^8ity$ZeV!Sf%g9~;MF*FL zEEIV#WTDt%$Z_&4Q5y1{j;M(rRxX(4P;PWfOIs01jtNt7c$Y9l(ul(q{%Fe=>6x2OFE3gl|SG!7l~%HP58sn{e15 zSCmZdin*s|dy8}?1~Ot5b5FLtWS-Q@#>Y;^!Z-0vm6Od3#KJyrHdlu!kY7JwWVKfl(zJX+&Dru zToD+=f=%TP9f4qS6APvy-;>~<0t9)BdqvX-+8ix%hKMC_)dR?#u~f2h<9h4@V2i&f z8i2qDSF;8&erkb@;5ineKx9iaG=Y;UTv?`D#L`y7MU@;HS+J>OZ`HVPwW0~%ho=SZ z4uH{W%PyptWBvaD+*m9XZ9E{w{DFW2mScXju?cC>iQ60gsg%&D0x{%+Omv1y46>t5 z5%V@uMO&B1MUV8sLls3)jJ*X^981?Oj6-mD8Qk67U4lb!mtccCf#B}J-QC^Y-Q6v? z2TLx=Ip_P%`@eUs`_D{w*M4f3?ds|^>#6G6wh$Mvvw894`F2mmk)a*gcRv?Q7+7NB ze*!1Mwu#j+sZS!VtwWRoknnP2dA~}@N+$G!P}rSAlQL#pWBaoO+GV1I=-ea02&%9@ zQ3ItbJKZQP;zf1|zj;D(6?}bV=R>bA(JU91d3wuuRW;bYP?YzPTN1+U*S;`TT-SAx zR(rTIblMK)5Uera^o^xObL%6gmI2ODo{*E;`easox4f!$#EBS3=rW0S+oBMdnP%}5 z_)$Re7)fu{26bV&jw4W7S^VNZGP=e@Zg7^9@tme2rMk2J!V?9D3qJwE>Nm&Ss+lO<3J#=r>hc zkfSW@R~DFz;=LN`5g2E>n}DJ?yHA7vcVS0L((5y%B}REVG$-M5nLAOm{)nP*KW$&?|*#o6%@ zF^i9m-k+DZC>%yjXOL#P>Dy8Ignl3uQk-SiU`VRmJwnIhVQc^DNeDexx4sVy2q}W? zbnHAN{ARz~=)O}fYANCY$ru6e?b-`hgdawLta;&2gEtLnNK!Wr$zElU*UBwH%FHX| z|4gwxm|&+_W#*SD*mgMZBb&k4c6r;AjZb4JpX#Ggwk}(E^|l*ZP2>7&(c?hvwOks5 z)FhIZRVs#Gd7-qDDS`sC925MkI833K`n2_MLWSk`#T8N8R24luA(kH47o3F?Gp+_* zwMD2rC~Ccn9rcCffov}C@!i=XPw-V7F*i&CIZ4nmYL}-0kP{@m>%9ka`vF#LJ{|Ex z-0!;SB8`@YJk?>=;XLk`?Y6SO@V>eH95*6=KHe>OQOqsixa&cZy&*t>NTiA+V?0$> z=)o{??!$M?fvFT!qDvU-t_+^j*Qmk^7MLTrK%4F0oXjT8LRkDpjwVCBt}28> zp0ka4nZaTqtuBg#c-y>NzOnqRV9HRf3@soj`G@Xo8+~beN8)Q5YUeM1!rnPUigNI)|uxp%XY%c^Q9?6*Sgy-L>k*Y4GkIrc8^%9Wgpj%K({ez8}>(`29HOb=mfj{w3c4{t#GLBW+`iIhz`zK!RO zAl`gq*>qtLyKpt$93DULIui5q?)z2&6wS~=n2<{#I%_%DiCp^K?2r4`U{KxWN_Qyy zH%@+)?%m=b>*53KAiTYwbN6OAY`;#B?0h{Qr&siGI~3@^Xno!5Z)voCv3bD+flHhy zx8QQPp^UDxCt-6>m3R3%1Y(13U9<` zEM&1OrTs{;zQ++oX5;4zPgu8DiBJgv)0+tHcWf)(Gjmc=fPbq2}1UftLXXAtbw#5Cw}j=#$QVjFKG6s|qwZ(a%xi^i0v?=QJ%@x>ks zgu^J3N+pw@Y$ySRS(iWsTC9-(cRhH=-QF|tW;G@PmxB=de9#6&2YyWrgc?h-dj#Dr z>IKAWl{siV1;oib+Y?A&;zi`oYPvk-$2y;y3}49{L}R_Eh8tx#RODXo4bE|j+i`~N z^3$t~=mL71SOT062CpgT+{4!@k4=HNdqM0T(T?4AW+w_HbDq6hq9h#SN`@j%sr)tj z4Ar7(f9U8VR|v!8UjLns!WBz5rmguMyqyWlBM`h1h=*+3!_lvF_P#2g(w$*`a~^>( ze~9Qs0jDn*1Il8}SAHKm9e>3JbV{E3<#M8?#~NfEJ*JRq@WyC57XhmJ3haB(8MAPs zf!|D<7E{UfE$1SZe_bS;2E^H`1sdNXmMGoOv(YTZg%wzGNL@IG^o6o{f4PK*~p1NS!hFjR2kk}vxW*9eR<6E5C9TwnbKvy3F&{>`?IJlU}CqO02HUKq7Ve88kMFc7*t!*jo5I>*1sP0_gD1ogGb@foX zH<&tEWY3skr_Y`UTbWV2o_@2g0p14{!AfZ^*Zq622JUXmG#sj$puMovM+DWuJ^PLB zm`?l4EGvU`4&UQb(-?08a5HY*rN_2n3u_uVVJ_v0G|@p$<%)w> z&xK&~BT?kCbQ+WwU3%bHBL>1a_zLd|H1Z{d#!c$>!nb^U#;h zpC`2Zg4PpZ|I_Dv8Mg`+!i%8H_3$%!_X3 zT++i9kU?;a3Dx|$>(}+J4X?x3=BT2%A+1s(#(m@MHrHDnzWM0(Px#qZRH%rst!8Zy-xU(vI6e<4_sHbMAK)OKP)0a-U?uDX;b4FfqC9VUKsk*bNLk0UrNpz`JhQskO)k# zJc~f&kg|XzrbaOEiOC0Pps{Q7$JP%)k@hm9qYWo)3BB$=<@S_tQ>@qTVCtu2oHB~( zo0(o6ShBZhfwc|Z9FI~9tgoYjj?CAxHr9vs>B7O#MOGR$%*2UUeEwoY+zLI_zZDHK zfPps=-x^+y=I1I=W zgC&?e`Y~dyy#&u#$rK|hAvWv0oa>T$Mx4!^QeQ8Bl>gF+jF>S}cG**uU7m8;1C9>U z^7%S6`Am}uA!LQ;x6lmzGGMEkROC{i2{ZeDR7cEDBFV*OS8h@0*SUP zlr`c4a1`^1CWNyLpRe7nxH_cMIpXwsVy*?}e@aj@(Qoi91~CeXN1L&ljx~k!vm2^M zg&;6e4uUBufH0mH8AM00UV0~so!y>l9j+!6q3=bdj;tMqTEoB zLfTDkR=O5GQ!%WYS;ZS0db?AxmB4biDV?vc!f8L${Z~bYdLg;xX`CxB)1u#bMcY~q zyX}{ay)oCJ1d*vXR@2W8!RLi-dYlYjPB!}~0#~&@^5Gn{c{V+;)vN|tGi(vUp9>R1 z=bSS=V|lnZ?OYDaEMz))kXJYs-4=y3tXFQY796>zaZe~BG#*#&iw&fbz&eeJ6ry1 z>~Yc=3&wTHE>p(mVbggJPXFZ^kFnXF2(*27Z~bj(1I2}7`$Eooe+P6T#GamhO8xl* z#1c~0k6ZMC0@gmCZedXzNk9VmI4f#9mv1oDkMhKS#W!nopjT=?p@XHeqd8n zk+20!(h)ilv<#|01)seGEz_tdwZL*)a^Q?5Z(=n+g85b#W!PLof19Ut731>-c;BbwS-GVGr&twUDB2Y14$vfZ8! z9}uPbERVtGQc`B=#=`o<|IF8g^E}$l>6;}kh>GOBihM||vL*wUK8!oNpI{`xw={g( z3ZJK&P^&W6tEADD6*y%0wh5Y0aWuJk;K1tm|3a9XU*-%ok@wzO+myd&1}{$^y(g|K-Vm z>%%TQq&5jyMhoT7u>=hojjTv}FIqyB4|A|K$yi6`KN2^>KN9N8MXr%kY(0%wv}S0A zQXh;mye|*=0dlx_qFTeK)*gF|5pd^mG@iOx@)LM0#Ep}AGuVzW#nyT9HNnQ5`upQG7{4(67jlF4Ve%Ri6!H5LnAnoZ{C#95;5^ z&v0osYP-(}r&!IPV)UQ7$%sE{G~%pdAZ9VmNu8N9C_~g2>xRl=i!UeK?6 zDsKe;>d2OPXvTMD#Fwdf)5kGdD;v>G4aZ0=_#xCIbP0?liIM$?|MFyZ!&44cP6vg` zp2>Nn==d0E9UBc9ylI^DUXjCRFq0?ugIuuzPkx$BpBoz`55|Excc|t{4%Nt<-kh@@#6?JWadjwqVdS41e5bm)Rs?! zrf70jow{r8o`xC-Y5vFK^9osrR4p$#5c->kYa$pGpJT83R4>+`7q;J$&cq+xm3`YY z2t&@Bvn~SE^xL=MCJu$+sz#UIGDZ|`e>i81`#s{>rBD(T?2j%ovi|@EEIe~X1Aa4CQPxw>UK@4G>Zv$^spM;B$Lo<^ zIG@XO=$wGOS%qmP%i_K{4Ad@}Y0udCRx*Tum=v4@9Pytrs)Js9eSl#&0*XR<$2E33 z9R=uDew*_nwd|R+B95zC#vrP%v_vQvAtId3HHKy7$JL%YdCNwSo6|w2OO1=&eHQx1jW>r(#~OcJb=GNTvm%o@1Pt^L%QyPh1m@`dYbgiMwz8 zj2Td8DRJtCVbna&N~=8R3DWXSxj1Htf#S<(a1!hDMpJt?^EzUxJ|0XfI14oqvIcg) zm1Il05!~djH(R+4ZiLONSs8^V`-%en2<>`^Y`L&+AU-`5p%|9!``p1Yk_kFk&QKRm zHnZ>&H@zP>X2yAi`xdJ2#cM9HYAD>{>RuV}$ZlUfGtUwS~3)y{XVpdBkZO$~F7Deccy9W`((Y zMwlYPSXU*|PDz=SXC!ZL`x>2}R%^KmIc-LHPvm;~l2NQ9|I|@J<@YkK5rF}4*YIhj zmXu{Y@OKP;?8Q?L)C&(27>(1?|rLoXi__+cGt4;yO@mEgTV&4nu`vz#loAgBGwc@l@ zo{u@>v^#1U-$LK~1|B$JoYuNekHLdu{ZTS=d_^5z46wH5Hg$cteU3{+Bc+N2LBWj& zd4HG!K3~Iq^7#Szle6-*2jN%crWZuFe&4Pr=mRpAJ|NqW#4{Xz4%K9M{d(l9kVVg7 zTi0=a6B3y0cWq``3^f0W#o{C^q5JxAugac* z`B5dU9!a4{pQH*AM2fW7M%L{WdF^|Mw&r2lZEL0T8=&9ciK?q)E?f6rLYY zk&h&LzRj!ev@+D&z*bAChloEH(|f+1gWXwT#W>P0>3Y2ykqOrLXz}gv$gO5@t70IY z!%8}?vGoe;)46W?RcmQSdfhkI8b^ipp6dX*&4X)m<7<~GC1WBzSJ0i4?}3qPVMUb~ z#Jz1I&|#KT7JyeAHSqeE-rFkmUVwVP=oFE7h-Fq|_;tkW!DZ7$(zn+Nb-sc9^6H_~ zs2j}V-5QSeC-mjHA58SH$dtTtMSSNAB^999Y{MkFVWuRf11oDk`Wav)h?`>5^p4rD z8z0d+<*QyrtkO0?gWMjBbv1-~Gy+5eG0|a>zCyxY2fUduU=d;7x@KHIBuB5PlSFzj z;h=9*D|~syzRZGDAVCNU#B>j9N*|dEXRIce5C*L1^>f~7<|Ryg)7wdF!m|&fg@$xj z=T;nPkf}6npHwUHj=Guel$qhdkl14YAW4v05I(I55eWuIf9XTrI}otn-#zv5i;R?W zOwY@}Fu2sr8Io+ehBACjDGVT*H%*P5K)w9~=l8a^9j$ZpL zCXxYzjSc%P+D}}31v|R)v|Ymq@M(BT?qG=V~dOiG;V@HU*iXL`R-YRSAd-~C5R8#WsVd!=X>;S9q$nHfbf?Ee>XI~v$@}W9x_v zVSCSBQLF|x1s~raNA*WA!mjadU(zog`ln_ZV(nx6=(vH!CxZJK&QJf$n80EBv*QXD zrJ7nrtca1Ng4Aqy-6PO0Mz`zE;l$VOed!}gC}<<&oeyxSXBIR(L%7S044nH;a)pWG zOrON=RtSV=g<2gQjqR3q;~dzROY;|d$rJyw2T?E`C?djK30*0z3$xF(ptpuG-k{MBw=_t#!b`m2 z^ArTlauKc9EeyR}L44-a==IZ@LQB|K=OPa?a^#GxPIxjOH7eiYHjDbvL)$x+MuD_c4djQ8U2TpXp)!rYzq0Ktbz9A;Mil$UL=Tpa>5 z8r3du-08ei|DgPkR9l-|#|Y<}{+1V7Gd`w5Dr@;7*YHtlb7%^KM7*b8diOJS?(hnd z3zYQB&MD0kqzo<0UXiK;T-U9n@i+J25-Oy)MZYRQ`x0Pu9k?(kb?Zd#b7CGq!77KPyGU!+A+(ZwkFpk&0=RNUPd#( znd0&Ht<=VKgtG^~dVu!uJqbt?ETuUPWMQp{e_c%L6^E5Z<>)UGDHU>61)ah-;Jd|4 zC@;>nn1NV%h6c$83pG6@I_OwWfhQt0{Z(uai^Uq8hlb(-3i7k(b6+bV2r#09%wCTD zVU*qJ*4hJ_1+@USW}C)d#+h8kSzi=#*nwSNa*s|Tr%4Vrhiz=V`@ka*{|#K4H~fgI z8p8YPlBJt%FR~^S-a9Luo;SJ1X@3#*#uOCGVHiBD=}o_}iy$ri@XN?+U$CJI{^#l4 zIa?!v({Fg69-*^!DZ}O#8CN{2m~EgS$68I!#WllWa4Bocx3=+=w!Pqw@t%4k!n{uw zl>E?Pfo?=}&l$1s#3$$iy)b%tbKWZH1hb^03YQZVy7}vj?IE2!fg1CW`I6%2*>T`S zYnvLy%(*||snNrb^J(Jk_~`xJ>MPx4U#KJVAb&`}LXpd+24hksKLC6hoc0N?d(jM} ziXGwu?A81LM>B;P^g`I483u_$yPElG9`Y?cJDfk#$}6$^jfutSl#@iQvMRiN%?D{2eTndhj|U`6xsg zTh?=l;rl9^?oz_2EVqc+DP8BHrib#NgubzX7Ng+V1wye}!AS9muJFOL2i|uFJiG;u zpxJ{}#rx=?l`Lk5injufXlW{1`{UdhQ%!X38r2qIqFQ9an0j5x1;mIZRnv z!UhgJad6IQrDfvTL|hAFj|Kh3-mK;NREbI749KNrW(Y_)$J^baCQ7e644g51>}>ag)yvEpN0Q ziI8(Jzfd4g0XgWb^f4TFT+L@gl}@L%H&Z7VSK!h`Vpl9D9Y zqbLdWz{rC9@a=?Qb}{z4@VdIPR0CfH9Rx-!sgjH2T1fh#TG44aVsg7(BMhqm(R{HI zHz4vQ;=ll_0TKC^1x^bH+!zfiCf0K!v{i~ZVKRB9!sy^vV2b%{u;TLi)k96wp;FDZGVB^0o5 zZKf2EVM=m?a@fMTL#CaoF?CHUCy3J!7<>~7tIgK=M54t8oxoGUYVQ64QwuC6age(w z!b%jgN_05oTk4s3VI%2?S%vXR0vxBcX}jvalWB^LS9nK9JwCk~=<-=GpsBmek#dcy~hq++;Fj9p1)-@XUw!cKa&nk(j`HT{n8K@z8@qCyo1lmx_1b|OT8i!=**SVoh zet$_?d^AEwKTb=Ap>;n312V+F-o7#HtKGw)vR*V z@s`q;?=1`xndb*}rzB~ZAhe(J=~9!Hm;)L4<-UV*B{X+2wQF2La*hn*?uh~MorlHe zL=nHDEaD`AMnQV!NE;{dMCEMhvmwmvBS+a%p+=jy;g}easC(W23{ik{l6weSJQC}k z!}_iaH4dty>}y-mJre3q@6!nup&dpEM~;eKXA>`7k^`FhV2V8Ch$tM(HZyoKCtt)|jrmaGDl``G-0N%>h{jje1xK zEUGY$h!{n281teA28HQs&38=*^gGTR0OkFOTk48oKZ7LeWc_umyI$>{xrt5_O5g@xeo z2wQ?G!pC*S&}s_;MQ#Oa5MXchogw^uJ2~kMn_>k^iqr^w&tdvxG%`f4V3+leRI9$D ze0Cq?Pl&VW|$>$#=g+exA6`)`{VAe zGXO-1X6_={D~*nrX8#9g)ESQpPA3RgTGup2m6z!ulE>{$oNnI8&5b3^>PL<;OO8RB z)JSfCB;4F*#XYzfk7HfOI*RU+;bFA)YfcwvB_0lC$2kRgkaYcp-R>3;Zt^WX@FVG4 zI7n)`Qdf7iDli&A>d%cRRBB%frx?tk76-gbrQ8jB==No*SZPJp z0|D-!!9D&Jw}rne!h5Q!MJ%bOX8|&0#Ud)dJ>|emihXp)pN9cgkeK#aL6$Sz7xzGe zdm%fOfvgpos>YYr*Z=b0^RN!~F& z^Bm06m`SRme5-_b3LIz&I9JR#Bohka4JtVtBMLlA)kxgI3Gv}vT3j`&wChYec!n}X zn7(_KVN2Zp;%#Mw^=z`6A%0tM%jrM~i@HARuoJ9_ug7h!! zx3ePweV>pQj>I5S*_}PG*`3&y$ACOSDVyHQ$WBfDk9fwBdx~C}DVZNKOnyzmfe;?5 zg`;qBG84AXM5rfAG4}R$rsE;g_Ya`8g%zc6uhVLl#>&x*fKB9Od6&PJE zsPx=!a-8+d17iyha_$R?joR_A3#FzwHB>|i`bb>UWKjA~wo3mLYE3XUvCq&=OGRr&qdSwVt zqxm!He10?%sUtc*Nt0JHc68A{2X#(ECCLYlJ9o=iv8BlDY-ncK$?Wj;l-Ej)lOt=!cVoqn zu=r0hE#WhjDdNah#I|x&$jSxxa}dZ5FvRGHH-4a5k|U9#Vel(M%1|G{<|{+?Zn~W2 zAu3T%^dH37)zs#ojIPFwL%)}a|re>6wqc&XA!y`p>xeM?gOII z%S5IyTXnB1ePL!8B^I2TDWb&lm-NO*8@n?5inFPj zJWbF&k}`^s-l_}{FyaL&A{Ef&bF!exa|M+-6lnc(eXD7yRNjMks-ykhA!+sS2B)wvOfEt>wX`X9qTB|jBWJ(k|PQV-^?+j~d zYx1{4tM|}vS6ILOU;Vzmd%$AhWMyUht?^rC{Tt`w`{Nu-+|5Z+#p&HK7T_=7x5F$$ zrgs6rC@KtK1~3{MzMtRSWxYrIiDUjJj){T&PwemOU-5sP871s&o&J@Z89fs{6M*Br z*gx*L-j&{ee^-X(e<}lDRCNcM0vHty%}oL10OmiHQ#5oieb0;epR|nfrY4q#B6e;7 z?RSU?z{E|beJ}T2-4XEH8`xj2za$;(oPqzU%U@;uLH}ux%6rKUhPIBt z-(?xQ{{u?{oE)4@|B*!BwZu$aER9W-B}IONe>YXx)X~n_!PwLh@Y}4)|7scMyZqbS z|ME!2^*`16zj-A4ZCn*+Bd0%B_+3wC(f{yLmXY*92W_co$oz2K#HhODYfTIrtEzTI z1C3Tiy;f2fuQ(`%E4nEf@tG&U0E|rJ>lu_O##caDF#y)Nr$ehueO~?ZFI}D0(v6Gh zoO8VL%ZB@{Ca+B|vx}q6mNo99NpqhgSyUL9II`dtNT?SvakpZB&Y+0ftNZBHR_1g7 ziZF8iReK-xhYRsIW2z{~Ny6*7r)PcCFP4}kFe1B8uR`4R!$K*Xs#KxWBE*h$2de%b zhI)iTq?Fm{dvy5h+vDfT#`xO@BM4re@trMn+_Jw2C|4x>FFen{Sx)_*Tk|Uc>Yk5`y)yI2T_|1gBl+L>WL%VK z!gAV65auODgIC3D3Y`)%W%6cA;75gUO3qa&62()fSQF*XvmFeuhYh*fK_0e2NOw%# zASHS%+%N`(80JL?&ip+rd?hTtnpyb0O@Gk662SN01A-}taHfBq142#qVl=}pZ5uZu z@&mzbd+C2bbOuyyTQ$QyZVT}F+HIS6cMB7}g7Mw;RbAn|M!|@Y!2TZMP7!%)W4Jr=)@Z_PyXmH5-aBM|k?5JnW9U25 z=MQfYOuLFi&yd%}L~mg}Xns;8xcQh>?v~zMg0oZ~FrwLTShdmJcnLo~;)cbAZ^o%^ z_e?Rd|ThzQ>sPD}$=Z^bXaI4CZ zz6R|e@8zJC%c9(LiyYo@Tv?ymFH^|;S#(7Cpn0WCmsHk>hIUM5Y+}&b7}08&_3)6Y z^mO!*s08uTWb@1`S5xymLT6ktw){3`U?c*Ty=o?fUPi$fJK?u&=+}I=XKM+=Q5wiB zxw1JnTzWK&R(5X97VhGoAmMg5d2DxveG2l2xF53QKVE9OHd2$HgR za6GO&%ge93>yN4F`UJEWa%&X`YW>HeD)aDy3BOXCh8~^TSRD||g6CPhrTubiNq%Wk zsPrZc&QeA`mE6xgbeLWab6znz`ir-2oV3BBAMm<5r3Rt|X|}RXpf0f?GG10SHHBQe z+2Urd3(A|IZ1sFgXMz9m7FYST{qdHZgJZehCgzq=4u6dGHQZIwSljw#TXNj!<-_9- zL+d!LP0!DCRl5VHSmUc_8ZCmUYOdruKc(!u-p()v2hARV_y#CdEad3yG(i51MJ2uF zkM8*nry}1T3lPHN(A3SPP_ND4I(W3TE%-=!?C#3nXDt)>|)u{8Lu+b@%*GeSTOo~z?sc_TQ(hAZm`8YDVSlbdCyMi)$La67+cgo@2 z7<9f#@;PJ$qeg9qAYYH0G5g7$EWVo;BlOmB{8OMz8YPzCP9qFCjnx_{??mqiCas2p}nFJjJYlrSiHkbXRwB?t6H@+@kGHI%S)^E+lxyCg+G+=*BdItnJKiAJ(PUfa4?SZ@oZ%Q zG-PKSOwL(;vO)uEfZHPoP;;njI-*XyQTEc@46VFHpkL14Ke=uXA?iVDl!|4#uVx@r%?x##HM&(PH@^bb1 zMfIkv^)^!@$Xjz?9VGWG?s=_6=b$I6WgQiPeq!fj+t<^wc*2cz?}IOmQ_lJVxHWd6 zY2Q;q){d3S*U3)jc!(TOv)25Z>P@tN;S(cy=hH;jUeGgEm4wnE8JbQpT#tJ!Uq{P_ z9*ybNT;soud#Dur>I5Zf>bQ&6GRf!J|438?%uW3@gS&Ia zwKn_ZYyIVx(8qJ!DK{dRst!A>CsZx`=^=<)ktF|(dFXNf-vxIZZe zQa(IOZxpt~GU^l>VgNreWe_SOa$l%YKdKSojx-%W9nC+)H54Nt0Z6e)suNNWKwFcp zDb|cK7Shr$3;sC*Mhm+>>PLhVU?|3P-(7}`>dG`3iMAU_1b{LNKodZnM~1^~6jCf= zAC^?iu_@NvC%Hipzj6%p2A-&dc^;I!W>bydET`h zyT=O)wtI}wImBofiT(g92Os82EnD}?<%{Ts>47;VU!j6Nr{Q<9Z&^ca;c?uM^mCTD zEmaC@yV17KdNnV|(S1z^MKtgw7-ucRW>fBAocvf*>O=dg&&+M2yN1d&k7X=0mRM#EY69_O$Xv2?dD@Fkl6O^>_VzT~hoGNWd%pKy9g}}^ zda-(0`#wo6$W?Dx^TkNW4I7W{Zag|>*lA7nB`6_|>k84}1gK+-G8Mvj%v8J1dDlqi z;}5+g2;W^!yJW$f=8K8?8rss4Uf*}5 zB;BUd9%yc@pI4gRr{n`RNh*16H|LNF;W8pV>D|lTJ@Jz>#JA|iwshS_e9cGxm!4p} zKaM($cJ;pL-V!AY06S`YHG-AbDH+d)Lt%p zI>kw`)uwj6#~q=^N+{5$(;JQ6Y^b<5lAZ~bgT|*j)Og&&&_&+!?L^51)wn*sUFR)m zY(5{1AZ%+}S5F6g33PnKyv2Ii5D&NK7mRH5ocAx{$GnA`9COdWKD`1rEG#UYY78s) z@(mBTBrBTw)M;(}wTtNV;$&>@6#)71e2+YsALp`gGQ`&Os7Dte()#h*jIL*j`bvWG z74;WbJPO674VsT~XM0uCUIO)|;NApRHG+z(rlC7+@ao8O+wv`gTC{k&+Agu{g)!9F(fTg5`_QqM?#gFAOj5b+P&L%eV7u5a zJ|LwVif``1mo;aapE+LhbK5>l*;(z>K3 zPzJ~fzvm^iS0z(Ep~uctZ&)ZEPXw*EV(QLc1-j;lh6ABfW| zr0xT^9zsr=s#INFYHe&xDXVBJ`x~nSM%{>Rinj|)QCER##Cb$$G8mhRUhIL@Y$!sw^W^Bh&~4c z!Rj=igI_A*o8=I(`GH`4sd_I(a=osL4u}nef2Re)Kf|;5k^} zWbc1EJl5gs*n)ARq)DPjRuEXC^Ju(=7rk}X@KWve1G{9y9Q&RdqZn9#O!vZYqrm7w z&>YN-g*3E-c|AHF0Ji7z!8W_j;nvY1IgGy-x`a=akSXcF-_l<)Y|#<$F|>X<6IZz7 zQ@T9Sx^~k`_09f;qWQPSA_Uoc9@h>gF`JyeS~1}jt?-zl=V{H>r#tw^M8k`*lz4l; zg|Wm_(RfVWIwH7~30UH~PuFC1)aWc}rSJRa(slViu#s7Qqc%M%Xv{Fb)=oNKy(0Hg z5>SWn6wVRW?^$g)kT&J%u?kEq@ANnJ@RRlVNIrMAufD%`&pR+NyTrYEj8q&xult?QIm<)HThv?DTarJYP$|0PvV^FZs3fa6t3;pbeHEWi zflr|(zn4NFah+)5IM+DJIJ81 z$dEJ0;5Eq5*D(O8OsF^jPJIkmNi~8~HkKF@0ZTWC#4^LMA!c$n{7N;r1H|#TKPpuq z3l%i&eD~&;fN6Cu5a=D`dSPDtAVe-O$zR$`{Ln``z53gCD$NM`uXw3Ga9cg1ZV=Hs zoN^9Y2aX(PSQO^`+oE7t9hkd&)r+}N5fr^zOC-6 zF+22m&J3l@64j3kMm8R$72P&FX9x7G#}<*)ltGcB7ze>6b$tnY=52Doikpt+K!os+ zDCtGBd|olhlZNZCVz6^RY_lkhWlX_=Fv3e{qOD?{=>fK-i&87~blo+cwehPPg4}~o zDDDGcv)%{`EpigZp~SK)^;^oiV;6N=xKT8pXKC1+;j2zHhMn&@?=nUiAIYEErq;*9 zDctArONZ;uE)D9gb)TrML_KZPynxIqsEXA-@x3Yp)ffC(a7a+fpA_g{joeIgn=854 zi8qR;rfaIM+4&+}L+*IzTn}kov>g!5m@zjcMKua8XAcLBneFNs;V0P4iloZR!rtD! zB*xlaYo}cGA8SS`XYqj0aogJ;LYRtKTmSgBdgY(A8oj3xRR0dJq=Z) z*$-Fe>^@kA8gb%;CTN&K6+1bBZi;~k>!z5Jv^{YXT5ss`dGr;OrWVu|!X<7>caLZ% zCws8uVDa=lwjZ_9bu8p@-=aZVcvc1v8PDz=@;E$K;vi61BB5Jp%iEHfD z2dpIymIVy*#g3xPZixqAd0hyW3HcdYdfYZu>qWQHX;gcC0vN@NaL)_o>`rhhG=OTX?mL|$jIe_;5===DsXwjR!a;M?A>Yqp?02mwtOv`pAfdy zZYtPZx9XjNo1A*e_I4GxksEjHruyv#@HnebbsnhJ4tZ&XHyLcY5nL@8J>_haX!C+j zo-%X8*AV1=I*G3)?Vzf*MMUcIu=OdEIRA9Q^)!zLZHerItN~o3->vmtHN<333lLUe zAZusJ=u5zxlBRzH5R@SxmNrR;+fTX~BFPU9NGvx^IYYTDeTLg$SrQo&PL?Fl?Gv-A z_>tls`7=eyCsE081*l(gud>GpxuQ@%C9qv7TX^rc^_sz5b3=JQw~z|Qi^X4Ml3kYM zco9p{SXet=myt9*L!nEoUab~OG?h;neT{tTj3iwS{{+qn~P1gRmRsPEEKPbvS zkcgq9=^xJb|7jje2S+DS3quD0E6bmha)y7)%q)KqzW-@_z@P5h#+va$kxAAe!LLx1V8zuWr%b^JS@e}_5# zRP5i#|1HeT_M3?Q|9;;eD(~3u^Y7CCl75HYnQYGA&z|4m-yzQT($p_8SZt=R9$1}ZTg7A6)pCRP?sW-cZUHf~xbW=bX|>VFsdzcUs8Ob&<| zzK;ky^FI~;(}cgL2L5+K!Og+c4EB8xvBAENrN2J_4t91{c7Pe+FN~Fy{e7(ci38aF zjj?dDbN@HS_WNe~{rMlg_b~JO#L9nQESzjC?*ryPFjiJ(=J(G05A3~DncjQmKQLAn zR<{32%kut!`Y%1M_i2v*GjzQc#u)01%`nX~Ha7zXCCuKEqC{YxF9J_Y1ZP&Ig2D<^ s$OYx+10x+WjRE3&=A{AS78LQ|q*PpzSX2TIU1MXQTewtJUH#p-00H{ZX#fBK literal 0 HcmV?d00001 diff --git a/Manuscript/benzene_tz.pdf b/Manuscript/benzene_tz.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4763c08da72a7aad6d03b59e317c425deda82b3c GIT binary patch literal 10961 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 literal 0 HcmV?d00001 diff --git a/Manuscript/scaling.pdf b/Manuscript/scaling.pdf new file mode 100644 index 0000000000000000000000000000000000000000..557ef05246ba63909958fe178f19d8c30a40994d GIT binary patch literal 9472 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 BXR`nR literal 0 HcmV?d00001 diff --git a/Manuscript/stochastic_triples.tex b/Manuscript/stochastic_triples.tex index c38d899..042fedc 100644 --- a/Manuscript/stochastic_triples.tex +++ b/Manuscript/stochastic_triples.tex @@ -243,6 +243,20 @@ As each bucket is equiprobable, samples are defined as combinations of triplets, Should the values of $E_{abc}$ be skewed, this advanced refinement significantly diminishes the variance. +The total perturbative contribution is computed as the aggregate of contributions from various buckets: +\begin{equation} +E_{(T)} = \sum_B E_B = \sum_B\sum_{(a,b,c) \in B} E_{abc}. +\end{equation} +Once every triplet within a bucket $B$ has been drawn at least once, the contribution $E_B$ can be determined. +At this juncture, there is no longer a necessity to evaluate \(E_B\) stochastically, and the buckets can be categorized into stochastic ($\mathcal{S}$) and deterministic ($\mathcal{D}$) groups: +\begin{equation} +E_{(T)} = \sum_{B \in \mathcal{D}} E_B + \frac{1}{|\mathcal{S}|} \sum_{B \in \mathcal{S}} +\left \langle E^B_{abc} \times \frac{- \epsilon_a - \epsilon_b - \epsilon_c}{\mathcal{N}} \right \rangle_{P(a,b,c), (a,b,c) \in B}. +\end{equation} +Not all buckets are of equal size; the number of triplets per bucket decreases with the bucket's index. Consequently, the initial buckets transition into the deterministic set first, gradually reducing the stochastic contribution. When every triplet has been drawn, the exact value of $E_{(T)}$ is obtained, devoid of statistical error. +To accelerate the completion of the buckets, each Monte Carlo iteration triggers the computation of the first non-computed triplet. This ensures that after $N$ drawings, the +exact contribution from each bucket can be obtained. + %=================================================================% \subsection{Implementation Details} \label{sec:implementation} @@ -410,15 +424,12 @@ The vibrational frequency and equilibrium distance estimated using this data, $\ Figure \ref{fig:cucl} illustrates the potential energy surface of \ce{CuCl}, displaying both the exact CCSD(T) energies and those estimated via the semi-stochastic method. -\subsection{Parallel efficiency} - - \subsection{Performance analysis} The primary bottleneck of our proposed algorithm lies in the generation of the sub-tensor $W^{abc}$ for each $(a,b,c)$ triplet, as discussed in Section~\ref{sec:theory}. However, we have outlined a strategy to reframe this operation into BLAS matrix multiplications,\cite{form_w_abc} offering the potential for significantly enhanced efficiency. -We evaluated the efficiency of our implementation using the Likwid\cite{treibig_2010} performance analysis tool on two distinct x86 platforms: an AMD EPYC 7513 dual-socket server equipped with 64 cores at \SI{2.6}{\giga\hertz}, and an Intel Xeon Gold 6130 dual-socket server with 32 cores at \SI{2.1}{\giga\hertz}. +We evaluated the efficiency of our implementation using the Likwid\cite{treibig_2010} performance analysis tool on two distinct x86 platforms: an AMD \textsc{Epyc} 7513 dual-socket server equipped with 64 cores at \SI{2.6}{\giga\hertz}, and an Intel Xeon Gold 6130 dual-socket server with 32 cores at \SI{2.1}{\giga\hertz}. We linked our code with the Intel MKL library for BLAS operations. Additionally, we executed the code on an ARM Q80 server featuring 80 cores at \SI{2.8}{\giga\hertz}, and although performance counters were unavailable, we approximated the Flop/s rate by comparing the total execution time with that measured on the AMD CPU. For this, we utilized the ArmPL library for BLAS operations. @@ -429,7 +440,7 @@ For this, we utilized the ArmPL library for BLAS operations. CPU & $N_{\text{cores}}$ & $V$ & $F$ & Memory Bandwidth & Peak DP & Measured performance \\ & & & (GHz) & (GB/s) & (GFlop/s) & (GFlop/s) \\ \hline -EPYC 7513 & 64 & 4 & 2.6 & 409.6 & 2~662 & 1~576 \\ +\textsc{EPYC} 7513 & 64 & 4 & 2.6 & 409.6 & 2~662 & 1~576 \\ Xeon Gold 6130 & 32 & 8 & 2.1 & 256.0 & 2~150 & 667 \\ % 239.891 ARM Q80 & 80 & 2 & 2.8 & 204.8 & 1~792 & 547 \\ % 292.492 \end{tabular} @@ -442,7 +453,7 @@ Peak performance is determined by calculating the maximum achievable Flops/s on \begin{equation} P = N_{\text{cores}} \times N_{\text{FMA}} \times 2 \times V \times F \end{equation} -where $F$ represents the frequency, $V$ the number of double precision elements in a vector register, $N_{\text{FMA}}$ denotes the number of vector FMA units per core (all considered CPUs possess two), and $N_{\text{cores}}$ reflects the number of cores. Notably, the Xeon and ARM CPUs both operate at approximately 30\% of peak performance, while the AMD EPYC CPU demonstrates twice the efficiency, achieving 60\% of the peak. +where $F$ represents the frequency, $V$ the number of double precision elements in a vector register, $N_{\text{FMA}}$ denotes the number of vector FMA units per core (all considered CPUs possess two), and $N_{\text{cores}}$ reflects the number of cores. Notably, the Xeon and ARM CPUs both operate at approximately 30\% of peak performance, while the AMD \textsc{Epyc} CPU demonstrates twice the efficiency, achieving 60\% of the peak. The relatively modest performance, at around 30\% efficiency, is attributed to the small dimensions of the matrices involved. @@ -453,7 +464,22 @@ I = \frac{2\, {N_\text{o}}^3\, N_\text{v}}{8\, \qty({N_\text{o}}^3 + {N_\text{o} \end{equation} which can be approximated by $N_\text{o} / 4$ flops/byte as an upper bound, which is usually relatively low. For instance, in the case of benzene with a triple-zeta basis set, the arithmetic intensity is calculated to be 3.33 flops/byte, falling short of the threshold required to attain peak performance on any of the CPUs. -By leveraging memory bandwidth and double precision throughput peak, we determined the critical arithmetic intensity necessary to achieve peak performance. On the Xeon and ARM CPUs, this critical value stands at approximately 8.4 and 8.8 flops/byte, respectively. Meanwhile, the EPYC CPU exhibits a value of 6.5 flops/byte, thanks to its superior memory bandwidth. +By leveraging memory bandwidth and double precision throughput peak, we determined the critical arithmetic intensity necessary to achieve peak performance. On the Xeon and ARM CPUs, this critical value stands at approximately 8.4 and 8.8 flops/byte, respectively. Meanwhile, the \textsc{EPYC} CPU exhibits a value of 6.5 flops/byte, thanks to its superior memory bandwidth. + +\subsection{Parallel efficiency} + +\begin{figure} +\includegraphics[width=\columnwidth]{scaling.pdf} +\caption{\label{fig:speedup} Parallel speedup obtained with the ARM Q80 and AMD \textsc{Epyc} servers.} +\end{figure} +Figure~\ref{fig:speedup} shows the parallel speedups obtained with the ARM and AMD servers for the benzene molecule in the triple-zeta basis set. +Three distinct regimes appear. +The first one, up to 24 cores is close to the ideal regime +The second one, between 24 and 64 cores is decent and enables an acceleration of $40 \times$ with 64 cores. Then, beyond 64 cores, the parallel efficiency drops quickly. + +These behaviors can be explained by the arithmetic intensity and the bandwidth of these machines. +On the ARM server, we have seen that the critical arithmetic intensity to leverage peak performance was 8.8 flops/byte. However, if the number of cores decreases, the bandwidth per core increases and so does the efficiency. +