From 928be0010ff9577d125c620669367e51d17a7a86 Mon Sep 17 00:00:00 2001 From: "Gubrud, Aaron D" Date: Mon, 9 Feb 2026 22:17:49 +0000 Subject: [PATCH 1/9] add Spark perf data --- software/spark/README.md | 23 ++++++++++++++++++- software/spark/images/oss-spark-gen-perf.png | Bin 0 -> 31940 bytes 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 software/spark/images/oss-spark-gen-perf.png diff --git a/software/spark/README.md b/software/spark/README.md index 82db9d1..d278194 100644 --- a/software/spark/README.md +++ b/software/spark/README.md @@ -161,4 +161,25 @@ For information on these knobs, please review the | spark.executor.memoryOverhead | Memory that accounts for things like VM overheads, interned strings, other native overheads, etc.

**Recommended:** 1g | | spark.executor.memory | Amount of memory to use per executor process

**Recommended:** 35% of total memory, divided by number of executors | | spark.memory.offHeap.enabled | Determines if Spark will use off-heap memory for certain operations

**Recommended:** true | -| spark.memory.offHeap.size | The absolute amount of memory which can be used for off-heap allocation

**Recommended:** 45% of total memory, divided by number of executors | \ No newline at end of file +| spark.memory.offHeap.size | The absolute amount of memory which can be used for off-heap allocation

**Recommended:** 45% of total memory, divided by number of executors | + +# Performance Results + +## Performance Results for Intel® Xeon® 6 with Performance Cores + +## 6th Generation Intel® Xeon® 6985-C vs. 4th Generation Intel® Xeon® Platinum 8481C In Google Cloud + + + +### 6th Generation Xeon® compared to 4th Generation Xeon® with Spark 3.5.2 In Google Cloud +- **1.42×** speedup for **TPCDS**-Like SF3TB +- **1.19×** perf/$ improvement for **TPCDS**-Like SF3TB + +### Details +Testing Date: Performance results are based on testing by Intel as of 1 Aug 2025 and may not reflect all publicly available security updates. + +OSS Spark on SPR: 1-node, 1x Intel(R) Xeon(R) Platinum 8481C CPU @ 2.70GHz, 44 cores, c3-standard-88-lssd VM, HT On, Turbo Off, NUMA 1, Total Memory 352GB, BIOS Google, 1x Compute Engine Virtual Ethernet [gVNIC], 1x 375G nvme_card10, 1x 375G nvme_card8, 1x 375G nvme_card12, 1x 512G nvme_card-pd, 1x 375G nvme_card2, 1x 375G nvme_card5, 1x 375G nvme_card11, 1x 375G nvme_card15, 1x 375G nvme_card14, 1x 375G nvme_card0, 1x 375G nvme_card3, 1x 375G nvme_card13, 1x 375G nvme_card1, 1x 375G nvme_card4, 1x 375G nvme_card7, 1x 375G nvme_card9, 1x 375G nvme_card6, Ubuntu 24.04.2 LTS, 6.14.0-1011-gcp, TPC-DS Like SF3T, JDK 1.8, GCC 11, Spark 3.5.2, Hadoop 3.3.5, score=TPC-DS Like SF3T 5926 sec + +OSS Spark on GNR: 1-node, 1x Intel(R) Xeon(R) 6985P-C CPU @ 2.30GHz, 48 cores, c4-standard-96-lssd VM, HT On, Turbo Off, NUMA 2, Total Memory 360GB, BIOS Google, 1x Compute Engine Virtual Ethernet [gVNIC], 1x 375G nvme_card14, 1x 375G nvme_card1, 1x 375G nvme_card3, 1x 375G nvme_card0, 1x 375G nvme_card4, 1x 375G nvme_card8, 1x 375G nvme_card15, 1x 512G nvme_card-pd, 1x 375G nvme_card2, 1x 375G nvme_card5, 1x 375G nvme_card9, 1x 375G nvme_card11, 1x 375G nvme_card6, 1x 375G nvme_card7, 1x 375G nvme_card10, 1x 375G nvme_card12, 1x 375G nvme_card13, Ubuntu 24.04.2 LTS, 6.14.0-1012-gcp, TPC-DS Like SF3T, JDK 1.8, GCC 11, Spark 3.5.2, Hadoop 3.3.5, score=TPC-DS Like SF3T 4162 sec + +Results may vary. \ No newline at end of file diff --git a/software/spark/images/oss-spark-gen-perf.png b/software/spark/images/oss-spark-gen-perf.png new file mode 100644 index 0000000000000000000000000000000000000000..455ae3977a8dc019377e60ffe48586152538580a GIT binary patch literal 31940 zcmc%x2Q*w?^aqMZNQ@E&(V~woLWr2r+c3Idk`OJ*Ac@{5TJ+I-7h;H#kT4P<1kt-l z5rbeDBtbA3op*iT@2&UNTmS!C@Bd%_a@QKpz3bjPXU^ICv-jD1e@^@zW5gBOYqS?G zT)3jA3pcxP;bPH+3lt%s%fJSBitjR!&Eo_m0zP1fs#3pmf3T ztP@Spc^i|Z3yT3R3Bcd{f1#nRO&WpDO?Jn#)YjM6MBe=6~B=|aeO7x|#ghg_;5P0818OB^q4PrZNAC7;ZrG!c7+i>-}M)(PW2(*aQEdT+j|?SwpC>NZ2W=4ozjPF~$8x_RrZDXVSk@@@@ zzCpmQbvVt1VTGcv#CJKM`RVRs*hKK&zme1LB8F$ng`SO*|4xqfrfV!4))smaN7|$> z4KktAZxm{RXez7jyn6k59ol|ilvbIyyZUq5F;&I6FNNm``J`6;($Q@22EJ4)u5+bW zB{-IrJuQ9iQ1(Vn6U%iqDo{ymJ^u)-wt88_%#GGg|q`h7#37-`)DdsL`L`5u>O@;hzGfruq$9!Fl0z_`Q z6vm~!0nrlrK9GWv4-sQjD1QTUvffd@D6#^K2?JCQzx&}5_UwN6?tMZ9#@&0O#?ld( ze%!Z86KG-ERWXxaAN?D864~dzHiArPbYa>(n%Wp}PY~5mX{XSX-V$$AH$N-#CbGc0 zJS!n~uBv;Vk3u8s8HNknm%pg-CY6514I6Jhfk-6s~XR^D;$pk*CtK(hYu}O zu~vqffB*jNR9r~NTHn(ZKT^MBTx?h%SAFx!9DCwa{amUtNp~_J?)R5(CThPV+rfqs z_WZPmukB7=flvIw;qdZ`iVFN5L*&nvzzyfQTH8;GGu-^m#O*}sHV$kS!;zBLd0SzZ8<--&-mr%8YldU3+*(3wKknPP-@ZoY zCb;xvDgXC$A73~(Jaj1M24TO!P%Q^e?-;QZ#0_X)z6HhhrV3iO{Hy&zo0Lb}wQJXC z+r5((92tlnw{FoinLiE)9P z=%+JoY{(3c8Bw7yK7YKv;Q<+Sz5&YOY!nUV@e+HoCW!7oI0dBY_I1(Y-s2^3I@^MW z0O2YtU53`Xaa2M={FoF3`54}RnVthIls-6eeM#KBg35AU3HzX*Ih+2Dsi}SF?vML~ z?UCqA(1VrH=UpUlY7>c4LaIP8c<1*x_D?!3ef)f2cN~V@M;}fTzxl{@Iq|1Pru-cy zNK`*#yC53~OD8JZMGCQ$!Ekr#Y5%?RS+Hm;5PoKHIXmFVxH&x6{qc>jF<#8#qxU9> z@rcwD3zT31UYEtFiu+bHK733n7X^9kma8>ef3ii=N#*6q2=9{-RV;9?80p+;doDL; z{_g>c@gVilz@dUpP1KTLQ2Xib+gi`LHjRw5hSQUyxIz&~n4cE^*c^I=XLa^da9%Nr zTP;jkGM8kWDT^DC)s@QdGkReSjweof8^)^#EByUZswMWVZEj}XE2MQ;33P4cGSmRS z*x@pmma8O`ivk}k7YWdgdi$VVg2k2A`1iTD5VJ<nW@V*x21;tjGIio!X+;^%~qM`#T--iCwz6Hw)7$b24JwtYx=bbM zcRya*R6~{cXk1OhnKYNbrW$e#1#z#Y2$p0uTWInSvmG_N^L)U2sm@$5XURBU>iF^! zQ53C=)@EKD>Z{P0C%32v6&SU_cnuIfVCXQsx$v+0` zvtaz%@0az+g_D#{FRUXKe!R_F?2x$pP#eiAFYlbm-K(WV~I|wWTQp7B47F-*&UbNm2=VXa;~eAg#y6 zpB@3>bKR zU2=|EqmgB0IzAs*2o2X4|(P)JJ5H&k9Iwskv~l&7*HCR)@mY%=S`tw7C$ zB&Cx+yTBFLo`h9OOG9JeAqwq_p(0}n6(I;-vtkR?_!DQo1{<#EDk`BOEVk4^9gI=u zkK~onaI0!+?VQ(Of*74Db?Pns1y^feJnq8Msfd_IX%rAqBoQzA#Zlt|Jac`^l|9>2 zvIulD^ji9jiO*!_e0#OD#}de#crQqkcZn7`m$ra559IpfDvPm1kW=1iwwyKuXUoY# z5O|BeBSLqOd^KIoO=;TT`xidi$LE3z(McN-gxJWPK!jyqTHjGElS~Xn zko(n01i$Uf(4g{fujdAPw zBK15=k#7y{x?+rh^`0Spr1w zvaW7Pn3-26FhD#+X*z6xguLX#m>9CZy;WEGtUzr8?co=eO|= z*O!2KGK|uSW?Me#)O-2QQT9Fs{~92TxCdxVr^2K7XOvU&@x@Ant;96dX!_x+m61=W={aV$ilRfBFoOq%eA#AD7$Od=e0o ziRxZm;NJW|0W0F0$@(JvY%!bFc*BmqC|9Zo!;g)>1F1a~xv;!AvlOV_Z)q%l)=**t z3sng7An_a-H&=3hGZF~P8__N~fbqh+7Ewq3ksJHT9-tnQ9Y$ZPQ(S_#oUn0rx}k+y zZSsOB!qZ%BU&c=qT0R;~F7Xm&)h6&nUAAY z)%*g6Hv9I1`Zr$Li0?9d8AKnAOYs-@1>nh;hs^a9*!!R>MwQ1p4IDc4>~}&)rG6HgGZgOMJ( zNd{u#qCvjqB*uZ+zRcRkO?*zubhg~MS#)rvGyc1|u{BI(iUV4m37uW)E;VFvhYt=| zkubh-t*Bsp_-UmZ&ZLN|{^mETb>`vbxbI(Uqq#I1b*yOS%J4^n-IsxaL}=Fy2-i% zLh%W-XaD{HUZ(*T13^_U(CUykzpK)!C99B+WXm8LhgECO!qRlhw0g8&!e8oPW%us0 z3DEUlHx=YR{Ols3DFJu7YWf0#jpx=FkgvYQ1HnAxPwdYblAaz^o^2i4kh^jyTlMT9 zDd-Mi{C@Tr@;h<|+3O9@5b^A$O1mmC>|k=h%&N_{a9V=wuMxFs?yHj~@?|R?MR*Ca zxqoWO2&r^H(C5b;4~=$(L7owrzTK?ld&_}+1oAw7#p@KQOb8OZ2Ty7+eL$Kh+~6To zZXvAu>9ANiLdy&D%e*0*pPiY12gwzNJe=EKWqbnzF*2!mh=EN~E-hWQpzcdp7k(AT zFMv2z+K;+(nx(kZ-9p1Z!F@f);65EZZE^IF>FHo7H@dPYNbW~T#$G>6Hfd9E(h@T) zxX7|Ru$z|ThYzT@2wSSe`FWJ=4qi5dQD~vzX8#!;s4rULk*s@P+ z2&eRu!W)~X?0MQsRMl1qEj7gMquzJ;%H`6@)}FQ}SID`c1NZiO_@(iI?1vL6>~*!0 zAKtr)4{0KgZ{L&AHIZbIA!^Bg9a3CaA3RNY2SN8-W`1bfnCYKE%}XJDc~0=Ghg^u- z55fDa)VX=6@Fv0j!xsWG8ygmEq#i0R@_FU~0ab}LWt3C|? zHnkH37#DEeAwk7FlV9MC(=QfjUBf71 z{V@*(r11Ae;;pD3RUYZpo8rtmlUYxs9yy3^h1ctrgR#o#UbO#(F|7aZHSTe=mZj$! zY%@DDOUp@-Q#!uiY?PPgZoeDELt9q7nWDyAmcO5t-a%J}rtmu^ZDnl=NiHhP(Y6j3 zu%~TjxHjhIIdes<}9JRIozh%Pf=P?<>2oQw9V%27Q7$3Z!i8v70h>*nBoo z{A#)9FsYZNoh36jcU$)9Ak)#p0drR&O_0hR<%LwO(=F`NWzlfXgb2kp22Og5JPh@g>(9Z!ks8wS9Oy=QB=OI^pwfiaV-Va%jw5r+`GTLaW{I znVA~e(LU1Zv=s2Nf7mZ?TU5kj6V-n$@b6Yn)L`-8$M*uXoP+7(+6i~>S-)tyAggB9 z^Za&tVoj4Nlh?RC=F^&dL~4xD(zULhOnXw$2A?T+wA}S!>+crf0YREMJs@EQc58{u zpc8+8e|y`U)ZZCuJ^UF1ep{rbygo-9CA&}WvlROvB^_h$h!+>jIyZkqI(q`{ou^5i~ux93xNfcOq3XoAv|`4rRKNn#AE zqUmv2P*V3^Tzgh7>|=ku%XCD@LLfO8H=^3&lr|?R&E@V~*l*?WmwS|5NIc9=cw2`4 z6(U8sghQTH9P=T)P+KBIT~l05vcy+_&A38aJ}qTUrc5$p?o?$(Wu>AkAT!)sDCY!0 z3@vGvPdmf=zP`QSW9Igbr>%0$TPq>WxysxXm$bgMD(d)&9AE$_7fE~muZTl&Z(JC+0+cB>YV`Vqsi-Obgv?NanA z*SdU~oB8>8NXhOmlg#hoy0DPZEWtL%w5Xtxe(AwvPdccGZfHPBgzT6C=L!$jh;t|> zm_Iy?ur@-u6!-fPcmDE}zNJ*7?f5C6ogk!7QnR&WWN%CgU0TUblDXj}^`-7hIW4ZK zgLmxtX=d^vY1V!Vgyp8AWvu2-GF|yx1WR)1pD_(g6TjJb2F9s3n+d1Mq8PYqX??9} z()<7w!}2KMgIbCvxEXUPgHCz7#rlpn%O!_ja@6%BYo7E&3z{k2>C`g=nJzt21w^Ik z44%ZI!Ru@ZHC|sYQIry~$rfq3MD}boqpg}kS0U2;(Wv|#8Z&g=C=jQO-Keffpb@=8 z!Mx>cr%>U2sdI;$i}dXH#n(OBoMSBWwoF@ouH!{yF;VFt*07$BXiBcQkatnH2yxAK=5r+;mMvO%MkSn9g~nyhelqWsz>BY?)o!s^OWav&%72R>poHm zHnz3T_r?3hwkD5hq^7V9c?zkV7H?;-@A&kqrm1lqRYu!A6-G z^*cJ26^JHz&)J!^z!XuY;AqSnO8hoP`Jv4g#;D%Q=Y;f+BTJ7I?@O~qY{d=-;WxLl zj)@j#jd&=eUsc)lN#{VAPf_~9TG-7SwJ`2mZ%}Sl+%}?&1C;F|Bl))~(>!Yu|A-f6 znGTBFxW0ARZ0p4{uau&tO!X>NuJ^Wlaa<^h?;z#3QwXJISObrB$$rXq{QAn%q4&>7 z#BabljK^CH%AM(;RsYnlVRAQi)nD>^O=j!Z@_W}3UD$Q1cGvEa%;VH7a553{OxN2K z(R6HF(BebYp`A^~%&sayE5$tX+{e2VqNUjcLTA#nd#6)NH37fNR8Rr=)H;YqDtacO zMehA&EH|BKI(y^XUS=ZikiFHj1PL~7p?ErJRuy)WQ&D{#+d4Jm1*EzRe9oc*ItPiv zm`gGr>n!a}&z;I+^w}gXNJxoZFQSjvWjV^V3*#geEG}k?@k=8`QW6_hRI*E44NkhNy?})6cGq70&nHs(88Z@Wkyp4Z*${zLv&;y^j}@=J)8A zoE{0lag#G!D-C-(2V}6v2gx*N!QYEc;IxaUIOH*Mt;3G$mnRY|Iv9_L#J9n&4FuGM zXL*nEcp9Trvfjt>g~5ndrZt5JKQ@d^xv8yOM$wi&Y;RTIg5?xR!xzQg+A{D^m4MVV zO%xXLTH}%``9dc32boYE+n4M|bq*Z*5#;9~ zWkp~Vu}MZP-nSzr>MW5)bX9}6a9UaK1(_oXP7li!#T}0&3%6%7f*>oPI-a7!ESj*r zLMsp0{!D?_#qr&ev*Q)QWOqA@w)Ua&(-E{`o6oH-?`0132fk6QH`Tm&M;q%x@j|y2 zJM%?c$L)Aoea`vT9n_DJ)Vdx>Z#9{Yp`84|ZJr;GvCsHeKAR($D%09A8aS@VO-YGj8Y{&@N0A zV&{?)vkqzknVa^3RY+nWoZe0kAyR*-H-=L01@oqet<)VP7EC9~t|nz+?aE{=6p^UR z9vVjnW&dIp^X(;7x}%jN*edn0S$?lklQpp!W+pD+Z(Y8)Y$q}7mZ_Kx!G32WQm}HY zI<_xX+$5#bj-x=h&UjbmgDo*ownRDyJDo%^ti39&%CCCHRYYhbKI@L9`R8;*Pjsfc z{n2UP**;(CS3iuInH2a+&VaXONR=y|Ek$9~yZ=_ZX(^V_)JH;;x8wz}gdX-thcPui z*UviMOZf6ZX}a9lFTvm3xt~Sdr`m8)jAJPe#Lcg>l}yPh%Dfmk>a*}$?O@=T$QU_5 zZZ0yDx6GX*-n`NWVY@d^!AN2=71r#L*;_9S@w(M}g_&QlC~@|7#MtnVLT4-TpIbOt zBMpeL9Sm&63*&D0TTQGog?TYKhcU0TLMwf~J(V9 zj8dPOufI~S?jl%Jbbagn#Xkb=`_I?QtzW5V375;vki;{Invw*u1teL5NOtMcT zWevC9&$E<@8)!~_=WPqN2|Vy`irpuBC(pi>BYnd;OXZ^5QkGfO&#Fa{jDbypyA_*KgGpPE1F19vC%mg4DJl z32REILVq*fKW_(azrPwUw4uPb&C7N-i<)_qHlhV3g`1_OZ+hq>v!FTB6P;)ve-UJT zQ)Q|vhKe(R(7BO)!)MS1o}35^9O#G{jbUkC&>VPvV?bn=k9<5@9Mdn8X znv0q47e%q1WJ>lxsm7H1J4ok#X7<%42gegjf>Ri|fdffpDgJ`9By@{5Aw)=#z^JMr zLn!~cB}Q>%xI{3OgWqH`Zp^H(k>Dg{4raD<2U6AECY1Zk2g#^q{LawqiP&s-9+p(a zk5{cIy_hP9byGtlP^+DsP;to5T5Xs(`)r@A2X=^7)YP$JDKDebD-J&;R?p!R8RCnq9xfNNq2$`p1BJhpLzwqDX#GA~tsA|`&$QuV0oARY!e zD&pd$@tZt#Yi|OAs#%GS?0e0=fXOm*If36;jH`uR*1dp5P-Q8nEG5Wx9dx(V@%0?q zQT}8b^s4tz=6*uXeL{!skx!q?f_kJZqI^a)trsg_CDOReT)CjPC*tH3OZp2HpOWYzGp4HunJ1I z_qelw@@g1S;G<@myq}un)1?LAUc;Gg<(Nrvy>zXL`@c}-bl=mJDLAJiek=L%5aHv< zK~Hn<`^@cP^kN}L+{S{4|LCRB+NQB)*Y!0k~WdxXYI zvyZNMLn67M^^|=@(a5VURl(Y8P%v^zDu$?VkP-Tlr4OT@HJI>*Dh0|X$hc;355|-T z=<0|@<4|PR7DhXtRyk~Q*ly`!k5JPM0$kC7P#&3TM;!y+H=0-ni5}<(iK$XsunpO( zWFbh2Trg6?8JandOQ!qTwp>^qHSB}68FvcHb}u@)#(OQ{wu!li-l+=IdaFyHfjL^N z{`qMg!&lCd#9^*LyMf~N;jXQP$)iJy%jihIy0=8?Ba?-7mh;q77r6%-nuSjBJ(fF9 zi}^~i8Dn?DTK9)PHh8Le4ZJM!S|3>E0o-5iIbV8wpyzUBt5aFt+Vv94doy-i;5%xn zvws)b&Hn*F?w{bElFE{Pr!k_n{L<$bd?|gp$xO!`wuaEB&G(pSMEESiB@e8-#P4%^ zHd5E$Am22X!MOSGjLhDoIABNkHft8*3jfz#f7zEXZj=3`@_SocAlTh$zS zmla;xu^81#Qp;=yJ~cxhymqPDoD6HsO;nyXk&7K`y%Dz1k(tA*5$?@dl^8R0e3M^Yx;xwL&6UtJr09to7Bf3$#A zN4Me&7ZG6)c{eC4AM4F&c)L`%9Unvo89^Jj$YekPWkTxneu7}N=iq7+y4RS8WXf;? zo))TrgYyg-tt*nD9%H~8l<9lih79KrpxfT$*O38oY3aH*7YtvfaBHTqv#LQJyP;s)vZ-)WRNttIv$Kx+dtYT35 zEILy5_9Y6<5b(Xm+=To^E+^8XId0v`>QVCXuT;fI!^af8_E;LuzG>%V7-tw^Jvq ze$I{Mr)o+&;;2brX(s+C3G&*z9nn7ST!?3XL+M7@7u8B|&R8;+hn>OrnnX-vn?z*Z z(!GW19W^#cHbOlXmZ3t~$`#=vs6oC-$Frt4-frU3#M=kDr~An_(VxlQzItBIj>|&4 zi}GVh!(qNQLVV&IZtUAn`IehzX6PGJ(H4x;T`q5+HKPCehRL{%(>s-}a{$87OJS{r zR9>lH%5Z412!hA`uR)funpLrdPzLYl*5G%_n8 zF=0wL?$1DQ<2O`+uE>#rHo}3kL-CmAK`NDR4J^#N1X1Dm968)(T%Nh^@Ic~GD*VoX zcTsiKLGs{0xS(Q;ZtsSU_OnIIn=aC#XtN`%@wAsh!k(D_nA?m8NyD-7#TIl6OOh34>5%khP8 z9K~AJ3IiYUho8LMnhD~+=6#>7oIYX+nq!1j?#bv5@a4{n_37Whi?O16lGP=H7)+%b z#id$wnb8`6+%`oY)<)qSO>62@@k>yWy^XU5r#7*%^ZUgC! zjssT2WYgsyRMd9D+^1uol;8v5RGdku?~Q)4G%9q47{s|y&~ZDim0)qCrQc@QUg49{ zds5OI)?>5}lK45`mPplC^aqwBMEd$Re>kzFMWI?nDdzbgMU_ zyxuP1CsSH8pD8K6*`{u~+`I&eBWL3XJeVcxTRlGxbzsn-8aKKS{Qb(PAO3nyNV52iQv z^FH{mHMG~K)-F-6dR%8TOH*ltTG>6Ben5+FHPi?=^30xC9x3j6X}pqVQdHvo6JrLX z+TUMZZO3~*q3ix+!LnZ4(Tc};H{jOay`Nq4bYC*EYR}ex()aDrD%7>MNZqRamsG9$ z+Ye&inPzK&=YfF)C$L`mAB-;dI44AO#?<9VKi-q@uh_K!97qX?g)jb#IrW`=Dfo}& z`agF}3d^qK(xZTJRp7buFJlQJP6d6gqsU9+igM_lw-DxqmS`zP?*`B2u4ZN^OJXqB zN9vwm9`GYXr}%mKnShV>|Kr9UY$tArfkGl0yc8X6j**`i5Sz8@Q{qIgn?KnwHKf?^ zZhe0L`_-rqRGUuHjFy`W!)uu@S{YOK%6rTBLUZ|bTNktL|Ede!5|b4t{J1Wu*3(7P zN}V1kLV9C3Yd1*O)UcV5+sa3^sPdvU?kn}BhoP+wiF-;pA4^(0lzD?^2r6}|h9VnL zPAX8Yl>*27K2_g;^`}AKOB?62Ra=va1MeOl`7Q0y_W71|yu zUAVk!shVM;4>q<1{}bGqp&<%OAChx78%FSZ)Q3Z#8s;jy?LcEnLg;h_X*rh`U3%9v z9_9v)*7-TaqXfe3+nDQf=3)D1&V4bmg+OP!x(^qb0;eJatz{pul;OQXg2q+KHu!5_ zx^bDT-O7tFF*udIpk55k*F-V{{ZCMLN-Ld9E91aMZh3{n@8YB}qiwncbLgM;0g7kV zYfI}4KHnbfq?%^p(hWA#Up#YV)yj271Zs2yxjYW=6U92?QHQEM*#WI{Ta9yTJrnRB z;Q4)j<>9d^`6TPbqp69*A_uhj-^P8fgr0c|)?hsa=EX8&nZNWKb;AktP?4n3%#-5v zVGonW8mDcA+1#LD3sqAqa)~L5LngM6Kehp`(~NJzx7-f3K3og%p_~`ozZ&JwOjy#1 z`7O6GyQDL)Qo43^Na8AfUCin6GkV=Kii?`6bgWy32!>0n?+$@7v zu)P6-#q^H-u$khyj`~u!v`Qi+6t3RZz=OGtE=<<^wjQ;6!10$pcLgXQxN@ zygHr>XKu5!rhopM6U`VHTNEumTuWr3eu9a%ceKI>D_h~P9p;J*Lt@}uOdJJARqv{1 zs`@QbhBzGb-^GBKeG>?FniB-;F;}yd znUvz{Uvffu7Fq?Qne-d^(%yvc$AyEw$@273*l!nJY~-{r&CjVYBVHS)CdMA5u@I@Z zHtR?xn`op#cTxR^0blm(jqxNxXZ*YXLRB^w zN|Pz7`bK`~x<{LioTUiO_&`eb?6rQ$$dX@S69`NDgBi&KZ$z{|g`Z=jzF~3B44@=;Vm>P-^JctUX5u+V5f0&Hme{$Q8QE68j^WlCNfAf4?2;_-m zD(!a-axstus{5rYmN6fCU?H0Q#(?|cn$f;{#0+i}cDU3%Qo1JX6IBF5E@Nc*5o=K^ zSElu6gH-EldB+{B@PP#{(l16wg7N}+)KkE>!xr-d%e%`KtM*4+VDQ`!#1r}%Mv=#jLxu)=?~H&IzfxLOKyTtku6yT9XGxsqf@gKkBRcc zr1y;{Gj8=E*apc=(&sBiGb@?Y75xUPg5Je(9U*JfOT3Q+X$^=4izdY^H$<-u?qqTC zb|>uh5td_i8|b5RW%a}MUA6F1Y(zm+3GNvYXR`B1SaIN8SXWmvUtbAHE1!gsgYx#j z@}z5T2oqwT3|n5g+_8daRS+5O@{f=;bF+&EpCh=YHe9IOV(IgqR2lMKEsdyA+$Gp%Q?*18t|u_rR3j`@>MtDee{oT3S< zpeV9aj)1e_)uzOT!>iM-oVMqC;XI*H?oNDZ$&y5B#$f(o9O{Fbhgl$jxbM3rwg+Nc)ws%JR8e+p z{x8JRO%2NECXGt0693kqCPe;R_-U~)LQ<+|X7j=dt!6(ieR2OXO~UPJb7%2BV6l@Z zo0@gF<#I67aZ?3)LHB)P4Pxq~$y{}kymp*ru)H#vsn$c*1_23YteEnQCKZT~ps^p6 zhtX%Q@^ek_O*3RSKIDYJhNIx)SM^YEtSs5t9tbpJz}Ws)DPeC^?-}NjCQz2Bfg9ex zdlTeh#dyV(##|hz1pU^JBm-3vI9@_hUp-KDRAN9;YHw+YfvAxB1?_Dxf)EY^mdLAg zqMaopTuZmFpJs z;N5cu!o-U>?Qc?0j<9X@=)zW~ut6TPOCk5yvJo;bmF0+?dYOtBO%8-)6CNJE&U^-P znDM;LW=u-OX>T_nE}d|1IvUUNLc%NY^E{EDcSTSP@$oBy%&x;d69@(49X5*2n_5Lz?p2wW>P@ z!*atch+CEn3t6nj1;I=d1&-DGc#i_gYIwCP6JzQ#0q#~!nt_K3{q*TpxgJ=r{@gCo z{+r2Qi2*@uCUUr6`9M8fwLn$HtXp1S0CXWEE~|m@bWn^;L$Omx0r7z6SV-G|_HVEm zlao;t<96kFn z$bO3FAi$ei+aZtyL+1Cyh7wAQEB6i5wG@i&^tVK{rHDCkJ8sI48k_i3qX4C6A@ke< zo?_4hX*V$oBXoM5OVr%bnodK@kRdQ6OeL zX9X!lnqk(H3|-w$ zi#zo)p`Yg4Yw;6npQUCc5M$%Tgi&mG?WRfNQijPa$UpbTq|{N6I-EkAfCj?v;K&uVIWr6x)Z z9KE*lENI`L4u3D458{x?`hZwon>)!Opn30iqJA5*_sfh_zJRU%YiMnu>!ZG6InXs} zGq9&xd*6nK6MC%-y4|~9pHS#MAQ~E_H5PMiv&+GLY!%hytf7Yhnzh1{Th=!;Ilij!g z_RX&*Z@~hq|EOUhxmnM>p0XUK3nFTO)lC42IN;p=ElU;PTTM5*7xJiu%>dLRy7qHA zg*|UYgiT98jMxgm*T4$@uhg=Q3>=HG3(#lnnC-#r>l5wa;au`=7OwJ@e?sRwA_Qa; zq8a#9TfyVXPj_7N$N)QFBxn2@MuOQO^HawE9A?|mqR-XBRbStMzFdpB1!U5w-T|Z` zAaCBvpP{<|P@>$vmg{N2nC_%ze0?`6D`nd{>Bd>>P3XLI1Td#G`OJj>=XkjsPu<`N zEEsXDqg`=~ajHf2+AP1K<5@(faHt{LxwjVekewqT%HLgjPAoZ+mR}_o{?}+lTkxP6 z4C+30wOBoTXB^@F_j@%#&$rlC^l7~H#Kgp9&gaT#AB+cc50O>xru)>p&F_c9`L}8f za-|x5S4P(s{-f7*2kKhVt}Krfx)VBM$UyyOZ2RfsGU@hX*=XO=($ddt(zb4NY?5`9 z)C^ab-5)>3-FmtTMUR)D>mtV;?@IM;H3)zK*`)VgZ;Z&VB##}7i_utw+&o>8pEp`Ry^?DjGIx+3^Ih#{Y-oBS8l6%j{ zB|m&l`-`GxZ2Yh8gJ}%t4r_%YXG!=eTJHQ8n<@hOKP5wdX*$O%444QFxzg~n(@TUT zOMs*2zdCVa=g;{Fd7O{WdR}96W?VdY;PCKpvl$SWb8&b6He7If$TsW%_4@VeC*)7S zJH4-;Tg|?j2k#|z`jQ?!eoPzQm&)g8;o~=e+MkoiQdP)# zMny0gxH3TOa}PiH8SZ||dAKfyj(rLcmUFfv{>Qo22%kHoJU&Z<*qn7A0utAU%kQs#K*~jOwqzn>Hp$)fJPX@I0G0XoOC}KKUc*6 z`BvGGd9}%VQ77*WB9%90L-lB_;il>i099SC;+CAOSZi0syPhk{S8%@Db9KISu}CLH zrOLN9)=JWaw}CmE;zWrS0YznGKxJdojljLY+@nOrpINK!em9qY{JmE5 zI{^Q&aZ2*^oQ~R`F6iEqz^Y+PF)lPUP#0DQsOcs^EgZ^kj%hlQMDQc8Pyc-7W&6=@AeNDjw?Y6N?Yq4^LI^IHqId*A zfB5eeOWGZFVXS^RQcrx$@9&y|()(b?9y*uMzN4D0T2ZYqr)^z5;HW-kF7^Wup+@sp zRDk}cZ_jy>G1STAf4{hLytfv5oQGVm$flvKowBn? z`g2I0`lu(WxWkn&x81R`@|T#qx{rfMW9yTfi1os*A2&$<^HpDgG0@!WvwG{o>@2B(7%6YnyAv4R0+P( z%)0(Ff(;YIcfu+W>!nK7XBT3vD@BhPKzA%S19)&seaN51{nq{l!!(cX#)FhApS! z%HpSk=YY04)7-#w4i2xy904(%5f&-}z)~Xqd?H`JZF_u9jdLF@QUEOR{??-W!;TBV z0Bl8h@hSyKhO`58H~vC^GTL~K%BWA|sVDzYts(Gy2vCnLB|yjmLOtUAx$x`hJ%AfB z2_RM??FvAH?eYU05AyN$*z|ZAqHB*YWHVy-_juWt?lAJ2!`LaFo?o&>mp6=pC3ZWmGxlL68IBzo0g$WmF zA|alwTe0VXMfU^;BctR`o1JtMU%r4r%}Bq1T_EBwc3YbyEo@)5lkM^Ip`1A(A+lcsU|bLpd?aJ|<5lYG@n= zGXL)Ug5Lw^s84>rwHpIuSO%ECe?XM}+{Pnm|DT_rt{1h^63S9lCHx?xxWEnDLK(-{ zk%HT=@tgPP<97j1V@heG)zPZa?U8)ye|eSj+)K75o<{U}?EM-Gd+AR*WR*>gK3a(B7}WuIua^*)IUmAn@2|W(odpT>_xB)i<$n4C4WyA++_$ zbvlzqfvizLyt>TY4HKOXgPT=P_ZM$Q=PJHWwY}`qQwuuoO>-wjoNtHmA25MNJ%!9(LBID#eqaG>X(ezcg3>WQYF44 zZ_KHI9*Y;Lh0l`L@GS7V08GEz`@*DD=iK~5ZO;(^f6*J-HJWB!nc*Hkx_Ik9-9=at z(=#%@29}WT^3)$40{n9t0u8zdb) zy+8lThwe_VAFte6J1#(H7q;a+y1)AB0WtY2-`Dk|O=M%|z|DK0m1^_KPM3fbZ=|$! z6IjS^f0IC<@ei1>e{kqUy2E5xC_e%qy2ZW?#%JLiNh^7;F=K0B(D1Y$%KIj@|Kjq&oqx3>DCNnNHZKRJkc=+;_YgZ4QWuxx`f`3lvmk(I8IH&%*4d=-a z&H&>O8<+GDa8n4?{=95|zg4FG`2O9AT^errqVhYSeOX*9Y^m?2`p#?;ecxx8t+S}r z8E~;1z*qnjA5ek?{+r=E^d{{AJ3|nTfR##&>T|f_A4DCn3&5rllhJbg%1X;b!D5UU z^?yJ%2sn+=x1<3-Jm#E8324LrT>0Oz?*GRZur*D9@3;P|1$yj$VoNw?DvM84a0K9Lqb^mBqAOIRR^vGW1cj{maiNC_9hewjDm+ zFWDI61jfcZ3(78S`)*A2Xc(wlD~Yks@q7p2Kld($;sMWdy}53k`_X^Z89;YwiA2CSOq6O- zD*-FUePzGjcetP))_IM9(=Lx1%-TEyRzvH6x8bqt{PF+L1tBKaMhHZmN(#~#^ahcVkPZn6DFvjY zSuVP}^P4};KIfjZ<-6mKd&hV074f%dZeC>dL3{x#XwP+pASW zE;E_c`McsStCJ@4%h0WeJ3AIw6ovr%A*YeR#Of^=@6hv=t5Rok4u&KYbnANzLf#{{ z@+-3Jr>J1lYAUdV@dc4A5tIF+UO+wa>MXi0^(sNqj+La}Lrh0jYA9y4?cKhia0q zb_3QjM`?`BO}NHyg!m~JFY5>d@TPT~kKd2p*;pWnhh6)iRs6thQ=XhcSAgSBpijW#{l_f>W$GjI9h3btroVo4wiB_d+|-*15CN47qFRPz3~^*-xr zC9_SV=PgOXAsD%Fm8i`NCPNG)E5=gS+V$m|;&$rl>J~qe((a^DP2M|q$6OEv7wW(4 z<31cf$wjR6_F(x<<>^5OpoI%0=}K;nQ-AT4YGBE{;uh?6Y)>%WX&65mifSj9*cr8) zi>8AAyiFp=5rsuq_kN?6nDhJFH8*8g7m989EPBo);?ZMPmGc4|b#--}p3~xw9oT@~ z09FT4wV=oTE?OZ{4C69M;|?Uq_c33Jv%zMlga8T-f=5#dlf+6Xw&hxd7Mgx8uZ90y z7XN?|5j6k1e-V+1ULIb6I=&aef1dd7P8Ype1^^=6bizhTq*&Bdytj2MTq*oBCrg$b z-lP=d<>!qZO)tNHzGDlhKQ@+GIPbXaemLEyYEvCr%oS>d4lwTui@^EXBR|rS!DmYm8?0nX%`G zpz5DLHRUVrUx=PrWz&pu#)2;(8m)A*3|m)NERQe8`A$b@Q+Gy7Vp5g&<7vssth=Ii`F+H+X|t;KtNq+6_d2-aYV(j|S+4E5M&8_sHtgfP0)JmFz-}cq8IA4y|E;%{cg}lCC zY{6rqdhPL074(NknXUZqEWE=X5|Oq%!U&KmGIu-_xJE~3BfECZ%Go3pt}Ro{DZ;xA zMV0eOCCvK}pBm9sc089D0XI{m?0W@%H-tuOHsc-tBt$Axo?e1((We zuU0;l=TF(b4nDbgyEjl{A`HE67@cHhOc$touXzd|o>z89*@gRxY&i2Kov}60K~#a)ObENTrw!W&*ol+vsT^PjnRvg^j@RvWB zoXGAE)~B*k!1s@c>g-D5Y+wBR{rq~p$BtaUN`Xpyyhu-T#YR9&;nvThR;~ejGZpo4 z7rlu0XjH`N7dM0koBW=TV9lB>JpAkr;Qaca(x|Dq0ar#0FgTL?J;STrAp}F-C2do* z&`HA0e)+n-5P#mnWBURB&P3(>{m`lST?zG_R<59Y^X}-}UfZve35=pV%8jZ9%At zLd*W=FYCTvfWb2^!tT3Hc?(}+k=>Q7NTwKi41p4cVd!xQO@fq*O31$Hl&xl0VL(10 zPuAil1ALS@dFbfg8(=+&OgmGRaV+yA^}$?QrcadPkW8Hx?sYE-`g(Elk<2k$A*ur6 zd#m>#V|QD?0GWgZmR#9k+DMVn>u#Hi)#RhYLr9vEk7bTQ{f@+vCT83>UxVt#uRqQ| zvVox_xD_P9-X^f|bKt(fvVbPrU`0MQ&5S$Cj%@CGtoX)a%;btg4_`c3rn~bXwGn1D zopVnqK}b~GGrA|%NO1kjy>a7CBt{K>awOr>nP>#PHH@vvS+@;v1JAcn(U-9GBZXuI zqzI6^kC3g7B$4$Fr_8=i@I6U3JPK23H7Mjd_5Mxu<(IYP0Y`nf1E?|>Fwym`;_|%# zXyf?hnFOGZVFbki|5qFPyk%}@pV$5MK{qG}7&k{5!t57zH>2XFo1P~TCMjBhZJzeX z53|X?JyUlh*m)+i$O7uJ<_hu+;$NTCC~FLYdjK5!uys0X#j#`3hdC|n0<%}Nfbw_pit7*G5gUGr z%roRkamxy+~=J#NgLE0~1|XDDs~F?K^P7Vjz1+yWtvNu^z45i8NJRh3YsE&Q`S|$y__1!}Lyhe73cvnz zcnQvJu6$81&}JrIT`7OP=rBU#d-uX&2v!rKMCiLMc>~|gorJ_7cnOFc(W|NTd6%b( zOTS_OpjP;vAR5MTX_wliVIWR80EDXESS8ghvWn%<%5OlZGYha%9x9}fW-n&bU&KMv|S;()4AB>`yV#}{1jhZ-v(0Ya2{H6Z_Zw>83M66?!f-Qh~8lW>c^vVPz1*L;7n8M6Cl2E0n zIZ^*o*A1%~pi~0z(uzenbxK%qyXENQ;?siy>w*8Hh#n4da;m+8KOr$_@iigJ;>Q5@ zUlMQ$KHKBej(olQ_YH}Nh!Ps3WhP)kTwXZeaa__tvP1;;#hNm`{{&ncETi2Cs<=-MlNTUk)eWQ==Uy}UaHjW5KWp$I}g`Lui5NZpE0dr`4zZ_ON_jos{Kkk zN;!~Y-+$TCVxQ8+%{~lJx6bW*3=C}QsH)>Ykir5JZq_OOK3BBaeO?3)u#23a6VK4S z1TQK~x`U6b{@#Qn!1&Gr{%gG|v@7eq_5kA*Vvtw+`K z-x<>zHz1c3fjDKL&S*t0%9G^lqrwKsTICO4pVjYoo8ZsOjQqHPJmcU%dhsEUGAXyU zm!Fc%?ejw>P?k@OT0OotjvgN|T;AVisxJAUmPycIi0y)TfGvv#!ZYMkN9-MboZX~S z$-|nHuKQaPbI(rE;VHcha3%jWMA?ul)+w^xY9t?(6mZ@&2JyuKn2Fh>VLGJv`pb47 z@Cp}uiwHb59V7g%+`0oaM}(qibbGxGXaouLY&ELf^MaVG&YRK$(MNt#NMtt8vY&6J zGc6pMKR8|EOv3bQLbj@IH1|(dinju_tpFJix!W4hbH`auH-hcg;QlW;?36dBPI1Vd z=78ssKb%`G#6c4O1Pz`*8Y(hZ6uUm@@ed7!|b73&DL1r+H37hu%!!WHz%zXAhTzy^qdn?f6eD5_!AJRExOY0d$$5HN0@!bKf3ozIl{jDCG*24)%7uk$nZ*F zk$m4&I!?8-h=|zjZLj^O8-pAYs|idRErOAP{Rk+fV+-rY-hY%Yed_?BWC2xUom*00`d&l=f zeV7T9iJH24w*|G=>RPvc5wH1=9%Pg_TIe5b3XpoBimXVMd@eDuZtKS}2Bl@L>W zD&mNhTciRg&WVxdTmV}Ghkixb;vmHQ=Mi*bZUPO{05oehfJ`7(*q-K(@*z~uk`?ga ziecxJ;19w;lwOn&7R3ny(ZfVXckNE~)?NO7n^e|l-lA_?Ebo|Oly*O7S!i9t$;?Pl{3G+Z*)WWkl$E-^2#4SdHN#WI4B&q4%!GQInRz; z2f!#;4GgB7mxt$~Vf%}bK!-({g1yPKo9lbNrA5U*@5^n6pZe6R??7!-V87;2mXjkT z_9{j(CfA47JY&CvUVCpv-1JG+hqs+e(rV(Rp1d(4UEq6+kdrZ1jQbc*Z&Dbw#K6s>s;<;;<8QE-({}%d*oyGPO-qQqnLzA0K+VM@x!;jBO4m zhU*)aLZs6xX*uie`|+ts+@<~;*X+TK(HlGae@(7C>+~OM?)z$u-bVaOEV?`$ie$|op|!$!(XOJnDWByW0uz#1xlI(m|2VOvs; zv>9AGUcP~d%5Gh;mE8RH8q+6&C((x`aKxXbnTrW53JHm=yYK>d!cO`6$)kc1`V8CQ z7~V?nzWFdj=|s3Gl521C3fWJqz75)s;VJ5vZ6Til&ayG%=D-nq7d$;eWl9|^WRq`X zPh7X6o7jNDnPQl#HVNb+-eL<$uVu{(B;YFm@54p8pSO9LUacw|~jd|NX`P zqzV4Z9))l2*%nYFdtjAH^c7j_uTL0R^yN2FaO!Amx`B3!h=?#yyGboer`JO3sA>%s zCE_w0gn7t+f`trlw*2Vnc^i8Ly*w)GI-Qo10Tdd}7OKZU8vd5Lm**cNTIY&8D9^pU zwU$S)77$E#w^rsdi-s<_(OrAw1+`IeFAsXIj~D8{Fd}N6i!!Vi1Z`@;B|s*5Hl!I* zi=m>qZX3{l1k!_C0Pe1nQ+9~42n1t?JkzI>Y?X5ZB^^UBZoL|chDUHR8Ez-g_8I!ps>%3nbY z__*kdV5Sz~1)k{S^zrTHT)G6ua$2X|&&g{a zv<_bUQ?EomNFBFp`{Df3TUr6F4v2dZaU)w-H+@m!`mZ2ixsODUX_?5>_zfpN~c1orp9_7nQm5sN8W zJpbDmBg3i2r1P?2r%S)%Er1 zxmD7fg`SkP5!0m=(u?voAY>#3Wtp6;$1<>jUlnUI3bTfS`1uN<*6Mh1@5jf-3Wuf{ zddr$`XJctvEHzwk))D{~0`m~a<=pVu_?70Tf* zptVoox2DPJ4uEz2?R(ZWpeZ)tQfA)dZ6;W z7hY&Buez-NmN?g6{bTN@3A$qSkUBj;Ohgi(N1SgU}W%0)~u;Hr(;6Z{Cap2Z!o{>~wT#N0ff zaEa!(jzeOxTDIQc(Igy%_1^E_ABeiFBHqN4PoUUK0lqJ{mj_m5KBA^V(4k0P3eG9GmuWSbkP|ABVvN(iyogV!WKdT zp%haBcVxo^)GCN`7RTiVCp-XzW-vD^wH1V3r!cSUmj6bkBC$vs72SfIiV*8KWXjhJ zUqeXNh((eD08>lY+aOqqe*zI;GceT{1e00dKAOiVi|RoTVTq}vY)L-Rosj(4l_iGO z-6VxggbjDrv9^ZENLGM;+DMzY%OG$3wP2+|gxAUo`kpZb=zVzs?!P2iksuSYrEdf& zwsU<2-@C)zV`RqRsoauWty>^$guwCqX`HYlr?9#5kFG1k<1N*?imI z=`;FSE03k>yTa(j5L!{2Vg%l&o6j}Wy;3_E2+rK!iqA)?00hmdT_3*oK}fCt@A#gG zw`;v)|K6rab z5ED@ISVywLWw+ZGQZ(6{KR9Rhx zX?AjjX>~r1`{6E+V3Bd@mY!wKfr2ODVC?1j>(v{Q^r5Zbed~XF?eQ!!h?j&CIeJ8d zYP5L~!8g_ZA?-!sDMM1!tKUQDsO4he7nx^t)PUsK!|AA-d?EV#x*uB-7I=YfH-4II zhl)W|&^L}nxQJK;WK(q3x;e1mb?xNYSbGb;jC~g zsmkwW!LA6DdaxFR=sAeVxE-Jgy=B-G7KU2{J+{*KKGg5@(;p0eSTEPNOKVt_7RP+q z-@7i6!Cqybn&wi(E3&kZkuZY!u{av9ZjgS^T=}uXS`_S4j>$L>aUU)}Ng`AzxKk7&QHy=4zegds@Z={hh{|G^c8W=)2N0rs0hr={U)V^qXK z*@|MGDby?ECpsc|&0izFWQV!FbBR$33fSB6CVDB2dw|^A1~Mg9c5pSmb6_Z!lWMO@ zzZAV$ML;9!7+KD{@XlZU-H^V~y*F-Vz9dE8;< z4om~zJriNV&ulTk(LG zO|htfhULAstg+$+k_n@Ax6BN?rs)|o?a}7U9A+VE8K*oeX0yj6ygKZpHav67`i)?exyvZh+X?UqBuQ&kfmQK27XDl-alJqBp@%5 z5S4FFe*h()4^D2fbu#fwWgnqeCdoj@&~*p8>U5njxA|A{y*=$`Db?y%jciJ6OK`)^i5R+$(_6($!#b{r6J`f3_hTbJ5KV<`HK(0&QQdY&+d7WAtomkWq};TMY#%A#vVYFbUqIZ1@8N(7#e&iW2pYT zm{D~7>2I&;=?XT$XM=OsK=v@OIN?4l!dQSsS~ zHeCJ2)7^$}VGG{HrCwEbxK@RRMg@Y(8s_kP~FZvHb1RQkx!|p7%H?Hq~3RAPr~;fpS^-K@+^t2z^G{L)77p(Nr3Ih zScAX+TRz>32cIzgnDQ&a{ksK^z7PN`*2`P)Icg#r!x${9c#MFUc)Xn^j)v5eGTlClN^F56!K@$&aJh{iQ%VXq{RD&! z=kjOn7p!Em4BWE$5r*6xWOuNwu-|+wnYo)B82l~BLtg-N_qlkiSx1thEbM{kx1Bl~ z>$50|LpS2_S9tx>qsL5Hnr52yg&k(`X4Jf4p+BeT2dPvj1{t*ip7 zYIHd+s;&V4w>1ieEJhvu;uduI&(a!&PoA|l3KAkE>*!{(VMVZBI7nQ;jZRs3X!ukP zq%j#uQitZfx~%RqRig1JhV=X&TSBf6r34~LLR7bJ3rR9TkU1X}>vZE()$tRpZxr$q z92bVXC)xHgC%wdh??>M>c9oIjAfXeXstvdN?L=6^6%SuHhwcZ-o!3|JLp2!){QnS| zJzh-+4(2{KI^3w%MECDMU25#VXY>1A?9Lao9Y1@5{LEdt)5F)hCAQ6%#rd)BHJ@D8 zrmu2kUKYzdQv`0Dd>S2r&_XIy&_DuH;(nxQi3}4)lIocWv&x&f3rZ1B1FkW|>$vIS z!KKj}ymmGTTOPMa#FG>#ak33faUNi_`I{t-Mx3V?S(Sm9wO&d|faRljzaEv6k9$LI zBz~L<22VFpMMEr4Coj(^OCgWgoPax0w5VhVO+Jm?S@TI=h02hkBIS#3k;`JF`3alG zgH?79AoZZx!ydQ23TxggT5a3OsGFrW6KI9Glgwf6vYh7EWSE*KM0#Ji*<6#NzC)_W z*~4SrQ4(jrxXP+56Q`3Bd~q-CsR>J)4Ckn%sO~XR+3_W@`wb`(7I0a2Z*MHn8@wjm zmZry?O`hNymN%?k&y_EHC3hk+>3p31QXkt-*TP^{?x-Jrf4H1|ZTVe7;#R)+8AWF9 z%g^wbx=&ZqwH?H$(Pgn|;*x|(2c3$E>zb!@=u4{J3&xpW2<@Cb9(-%y60(bL44dpP zrF_p@q`?S@Zu>?sdhV~X#+PUqN5_}kuzj+T(xyp5Djk)%w`V6`^CkAw^D}zeI&};m z%HsUkevXXUh8jmZrLz0@dcCD+TXm0CrIu9f-QRRACHSrsVd<|QP`xTCp4X4^D&Dwx zcB)A4bju#n?V!W8yM22`X17!5po2cvv}E2ep}@~$%q*&T1Qg%S>6w{4eJmMr(xLs9qbH;$?>)KSc5Yv)gTo~)k;Vi8elT>9 z23qLOD$*-==|!4nBz#Wi$cD4_!n)55r|{m2Tt7(@hC`SO*sunbg@D)(8-)OXgKd_I zM%ck3qy?g1KiGue^vNfamExT=doo> z4K!ZF?DR&-y>S@bf+OyT`c<#c2UOW*j_p9&25&4kX~Y%#$>?%ZNJHi&buoM;DrQBv)JGQ7MbNOFz%Mx&XF} z>h&PdW}tEDG2#K(k*~-TS&uXf({Ety2+hvvd}0Bk0rVP_mi=}g3i|O+LAxHVnBtT3 zQw;%VM>?OFdgb`Tae=#Z8pK#-C>JYUS)uwYX!>i{jSMyLo`6T`Y+|e@dcS_cw->Pi z?{8(ho@+l?Mw9Hk30}>q2}PrLc{G_G;59)oR^24hyn%-_3)Mbvm0`md+=O=3TlX%9 z%Iv3*Fkqp?6qaO}dLx~Lj1VX^@8*PKH)Z^yO3-8+D~8udhJ6Q6(tcmNKB&(@MTHYK z@UE00n0ZV$zUD`R_#1N<#lw6WNKK_wUbGfh1WyNZeP+B7;$6cLIBA! zg{GaRq279EMLhFz6wS#X3E+)9H?LJr2z!*v(mJyQHPVh5 zP|8#xrix@~y%3(nU_UwxCkQ2UD5Iy7jC6kZd;5OeLU?DZ8-?Bmi$(f1Aw51dw}@A+ zagVL(B0XBp`D*8ofXoyn9$j$THY(kR97V>4wRdLMQ z0iVAxbkAN!owOkAm-J9XdChV`TTQH30uQ>QknSeKMn$Db!E~lJz|&$!rKkUV5!Q7Z;ES=WNp+ zeYy9j-^A=Tw=yf}VGBIZ!r%B^j3-rGj%~QAtn_+h$0x)!kGI~p;nLR1Qa!z|$deG+#IA4j6GSt& zRbHgqd=tTHa_&^w#VuHzY91ZE*55$%o65Iqw^U!))%D+wh_iOGs~>BNYr2ng z0~CpGFL3o8tZrnVYp36vyPTjuQRNfvZ5nzZDvXrU>uD3c-z^lk+iek(@xU)9OkUr9 zc}6WUUNR?yFi~rj2uz}KQKOoC*}S)|1n_E;$HEXldX-xpS65J4bjl4W;i#+V8V_jicW!rMkCgEIVVo``}ZT*uJNDlJr6A z;)YA}esvO$w=20=;+=iQr3MCtJs#;il2Or}vl1PGTR{)V&oisM^x_uZs;S7i5Oh9Q z(LIF!%eE}HI6q}Zd@2w3eDekzCvdXkE``77h0*$mwKmK%OUAIqLZ+r!wk^f{sA!@S zuiT9L1&ASzT!E*u_xDFrp4LcV)nmAT$>}n3-@4DJpuhI2S*yIcMSp+2fS-6lL-J~9 zj>aWZK56PR_+H6WtK|lI)|`Qr(#J%XZ+CFDL)a+TxJf4ZPWFwV^NPqB+7V&*$5D?y z(nXnts@8gsJEN?ZY6LRk7kcPD{zecf@qi!B(-<#&RU1g-;M`B}so3h7Zr@@Refzc) zZXxi_M3h31YM5gK70G}BV^~k0s{j&U(G~(mOEc-4bfhe~4cr*4hMM_8DYJeL@pfSy ziO-U_vs4`E+Le(+zk{{e59vONF* literal 0 HcmV?d00001 From ce686c91740e05c69bf3c55786c37fcf9149b0b7 Mon Sep 17 00:00:00 2001 From: "Gubrud, Aaron D" Date: Mon, 9 Feb 2026 22:23:12 +0000 Subject: [PATCH 2/9] making Spark perf chart bigger --- software/spark/images/oss-spark-gen-perf.png | Bin 31940 -> 46417 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/software/spark/images/oss-spark-gen-perf.png b/software/spark/images/oss-spark-gen-perf.png index 455ae3977a8dc019377e60ffe48586152538580a..17e011b33db74e55a553e6088824af99719ed667 100644 GIT binary patch literal 46417 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 From cd7e4de9de220beb4b8be8bce973613500832449 Mon Sep 17 00:00:00 2001 From: "Gubrud, Aaron D" Date: Mon, 9 Feb 2026 22:25:34 +0000 Subject: [PATCH 3/9] adjust MD formatting of spark chart image --- software/spark/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/software/spark/README.md b/software/spark/README.md index d278194..442d1cc 100644 --- a/software/spark/README.md +++ b/software/spark/README.md @@ -169,7 +169,7 @@ For information on these knobs, please review the ## 6th Generation Intel® Xeon® 6985-C vs. 4th Generation Intel® Xeon® Platinum 8481C In Google Cloud - + ### 6th Generation Xeon® compared to 4th Generation Xeon® with Spark 3.5.2 In Google Cloud - **1.42×** speedup for **TPCDS**-Like SF3TB From 34045f16301156a3edf45acbcd62d6338b890c1a Mon Sep 17 00:00:00 2001 From: "Gubrud, Aaron D" Date: Wed, 11 Feb 2026 20:57:58 +0000 Subject: [PATCH 4/9] adding perf data for gluten --- software/gluten/README.md | 25 +++++++++++++++++- software/gluten/images/gluten-gen-perf.png | Bin 0 -> 39143 bytes .../images/oss-spark-gluten-gen-perf.png | Bin 0 -> 54686 bytes software/spark/README.md | 3 ++- software/spark/images/oss-spark-gen-perf.png | Bin 46417 -> 62303 bytes 5 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 software/gluten/images/gluten-gen-perf.png create mode 100644 software/gluten/images/oss-spark-gluten-gen-perf.png diff --git a/software/gluten/README.md b/software/gluten/README.md index ea00c9f..61a4bfa 100644 --- a/software/gluten/README.md +++ b/software/gluten/README.md @@ -151,4 +151,27 @@ SRF: 1-node, 2x Intel(R) Xeon(R) 6780E, 144 cores, HT Off, Turbo On, NUMA 2, Int Results may vary. ### Intel® Xeon® 6 with Efficiency Cores Summary -Both **Gluten** and **Spark 3.3.1** show significant performance-per-watt improvements on the **Intel® Xeon® 6780E** compared to the **Intel® Xeon® 8358**. Additionally, **Gluten consistently outperforms Spark 3.3.1** on the same hardware, making it a compelling choice for energy-efficient data processing workloads. \ No newline at end of file +Both **Gluten** and **Spark 3.3.1** show significant performance-per-watt improvements on the **Intel® Xeon® 6780E** compared to the **Intel® Xeon® 8358**. Additionally, **Gluten consistently outperforms Spark 3.3.1** on the same hardware, making it a compelling choice for energy-efficient data processing workloads. + +## 6th Generation Intel® Xeon® 6985-C vs. 4th Generation Intel® Xeon® Platinum 8481C In Google Cloud + + + +### 6th Generation Xeon® compared to 4th Generation Xeon® with Spark 3.5.2 In Google Cloud +- **1.49×** speedup for **TPCDS**-Like SF3TB +- **1.25×** perf/$ improvement for **TPCDS**-Like SF3TB + + + +### Gluten + Velox vs. Spark 3.5.2 In Google Cloud +- **2.13×** speedup for **TPCDS**-Like SF3TB on 4th Generation Intel® Xeon® Platinum 8481C in Google Cloud (c3-standard-88-lssd) +- **2.22×** speedup **TPCDS**-Like SF3TB on 6th Generation Intel® Xeon® 6985-C in Google Cloud (c4-standard-96-lssd) + +### Details +Testing Date: Performance results are based on testing by Intel as of 1 Aug 2025 and may not reflect all publicly available security updates. + +OSS Spark on SPR: 1-node, 1x Intel(R) Xeon(R) Platinum 8481C CPU @ 2.70GHz, 44 cores, c3-standard-88-lssd VM, HT On, Turbo Off, NUMA 1, Total Memory 352GB, BIOS Google, 1x Compute Engine Virtual Ethernet [gVNIC], 1x 375G nvme_card10, 1x 375G nvme_card8, 1x 375G nvme_card12, 1x 512G nvme_card-pd, 1x 375G nvme_card2, 1x 375G nvme_card5, 1x 375G nvme_card11, 1x 375G nvme_card15, 1x 375G nvme_card14, 1x 375G nvme_card0, 1x 375G nvme_card3, 1x 375G nvme_card13, 1x 375G nvme_card1, 1x 375G nvme_card4, 1x 375G nvme_card7, 1x 375G nvme_card9, 1x 375G nvme_card6, Ubuntu 24.04.2 LTS, 6.14.0-1011-gcp, TPC-DS Like SF3T, JDK 1.8, GCC 11, Spark 3.5.2, Hadoop 3.3.5, score=TPC-DS Like SF3T 2786 sec + +OSS Spark on GNR: 1-node, 1x Intel(R) Xeon(R) 6985P-C CPU @ 2.30GHz, 48 cores, c4-standard-96-lssd VM, HT On, Turbo Off, NUMA 2, Total Memory 360GB, BIOS Google, 1x Compute Engine Virtual Ethernet [gVNIC], 1x 375G nvme_card14, 1x 375G nvme_card1, 1x 375G nvme_card3, 1x 375G nvme_card0, 1x 375G nvme_card4, 1x 375G nvme_card8, 1x 375G nvme_card15, 1x 512G nvme_card-pd, 1x 375G nvme_card2, 1x 375G nvme_card5, 1x 375G nvme_card9, 1x 375G nvme_card11, 1x 375G nvme_card6, 1x 375G nvme_card7, 1x 375G nvme_card10, 1x 375G nvme_card12, 1x 375G nvme_card13, Ubuntu 24.04.2 LTS, 6.14.0-1012-gcp, TPC-DS Like SF3T, JDK 1.8, GCC 11, Spark 3.5.2, Hadoop 3.3.5, score=TPC-DS Like SF3T 1871 sec + +Results may vary. \ No newline at end of file diff --git a/software/gluten/images/gluten-gen-perf.png b/software/gluten/images/gluten-gen-perf.png new file mode 100644 index 0000000000000000000000000000000000000000..24f59e72167d40e7b04fdfee9ab5db27ad69890b GIT binary patch literal 39143 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

Gl0oa|nO6|9?yUFqm`^dBST;H;MGOpO^_ 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 literal 0 HcmV?d00001 diff --git a/software/gluten/images/oss-spark-gluten-gen-perf.png b/software/gluten/images/oss-spark-gluten-gen-perf.png new file mode 100644 index 0000000000000000000000000000000000000000..a282f37f3435ec240d3ef8b176006cfc2243c2d4 GIT binary patch literal 54686 zcmb@ucR1I5|39o<2*@=yN=_!uJiO+@9}&+pO5u=-%(XQv6+&dl7fO_^Qn`^)F~*|tfHV; zeRSh`{Dp}>y9WQa%0c~v9L4Keh9UgRTC<~Pj#5yh1yU^jBN}}4mn%f;@uP!k}}S=21b`n99axa%q*@*agOH{ zaI#n!OL1x)Im3U(R^G(i;-ss+$yrxr4I|gfMqBon8Lqz;NPU!%pDzV#rgQ0oSY6h2_CYsH{%l!6BFa( zKg@Ud@Ik!epo7a5M+4`BR~+{J`+{R84o3DCwvHAyS6Ijw8W`GKb(CVedey>M+|w|V&pTR}{@=fU#o^y&zy;wW zukZ;R;wOhp{#jhb-ogY&L4HzNK=RM)|F6GE@{t4ie;kEp)M!pZUCYw4%>Hh*qExOMevVZYUnZut1H zous1lJLAj7#nR3j@j12cP2c)fsY~O`W3^S)hc@1oF_>M}Y0|B9sC6+N2sJaU^-#B) zpE3zkjQ?nSnDrK&+(y=0T)8?rI;rP*xnAq$Sx!$+7qz#yiv|99i7u9|e)yNMv2k>k z^JHwYRm&S^XJ^sDE#zZ#a@*O&BLXgFUWr+os-0Xr^!JZ`avUigDUQm2KQFia%GR}i z-n>z*_#_?6pI~&SUJ18#;PZVr*Hr6S-WI|KYVu-$EC8hv$Ipark|l*Kje5m`Kxs-2I=iuPL<-mFKgLl1o?(mYE2o4~w-h3sq#|PMsH$HGjHF35V50&hU?| z^H;c;lr*fDpW<`pgMOi5TG!CfQ267(8dLeWdj0g4iHQl>WK9XPc`eEN<2|_x9j&dc zVw>y>TDMb{=y}qN`BoU?&UbfrKOC3d*<<&j-rUdMKbS>UGXIcHR^iv=i(($Xg*bvX z;Q*frS;%ExY3EXly(QI&S6Xsi1fx8EA7Eu=r5Vg(77k1Pv`Dd^ojuK@Y9|e|w333t z`mwRG$2?jAwGk2xFV*(>=H9t;=hcPu+eT#p4}*f_Wo0RnwKHNbH@%+w{rlTAqr|oQ zzlNI}M!y}g65iWi^<;1;A?k%i!wZ_hoU`icTk*dB@AYxUW@f$P<0|)d9{m0_dGGS_ za&61Xj?mChr7&TC&M5as*G9jIaZ32zyVpBiC&MWwwrAI_U2Sb`sV!DBl&AVDgG2cZ zR&Uv|h4U$+OaQO|>=(cY^HapgC(V3qoU&1LN5jNVIneH^M`{>alTL*_Y#b9p7 zv9{3nSBJ$VJ&y`sX)CV`=1DuxOL3le=jt_UEWWG8JR(2R;G(CN4+hJ{kHTjE-o^?Jbuz|nt{9>0HfS8zt{=jFYhak**h zjvdE~Zf~}`dbPj&;Xb7Z@nHM@%KA(jy=O-*E7;o~u6n{(R#z8@izP0z+1}p%srXgy zU59kYMREN8>G~t~({DVNT(L-G@h#&m_RFc?f4RQ9(yll^)t{)5_{ibS8r;B-MMV~$ zpKn5054L4HtlhAomFF4$g>(P@TMY>++xG0K;7Q4q^QB=l@5mJs4)fRZoL`5V%B}U9 zTGrB%ThO$+YofbIa=Kd3@yC}tw>R&#pB^~lx%5kGacL=0HRi^2gRSlFpB7}TUQWqV zSeO|l)%g1LYpZW>?`-2#R!!DE;wF2ww{&x9Aah`&WxQU2=UdB0$_(wAl!E2E3UM)- z$=XiVp+~}MszU{RaqjBrrf0TOu2WM}Q;L+_!_3V5``7S^>4BPh%M4z<{P0hoRJk=? z%2qsLxA^jMOU<(*y?C8#JLP&BhLc#5=51L5CHHo59y%1@=eIG^^~V9%pWlz-QO{QjZ>$GZ&Ff{eB8%4 zZWb2rJh$1{dh?e!*y||^I8vo&LU*F0S#;e-k318x2~dbLKxt-WWvOOZp2N}Og7%d9 z@5NFaiE-bVtjU8*i}qnRH({WidBvknwqLh4N~Z3^%?;Tu(;S=Wg>20qVB#G+b_`t~ zH|*5)rmmwp?;Y=ym!JHWX|tm0y7QK^##1GZH*ek;D|dVXq~^zxh$ zy|C5EJl9|5EpOOy(Tf`!gI%TvVw#3msd5LuZ2Yld`6wnL`M&4R_YXcV3#c$QtdBj8 zPA2HN=q&CurbIscDSFku69LaLKzT2{e~e!)w?2}8ZIr&qmo~v;VdhJcR^XNP_X6gh zSTL9?Yr;fUi8@cPpe?vheAqxC^%nT=004s*uIWGG=ojdWzpOqgA&y zZDV>_-*<(EQM?!xeCo`ZlA4-P8;@NQRGT-K7#~jaT>9-k?yngCe!Sby>v*!}O5JV6 zO_O>LA}J=DFXUW1SYKbC`|In)`P%_mIXP!vDDA;e2Nl$e&8!ul#5gF_X`LxExo_z`Sa&=%*=I|$-pFWI@$IV#l^*` z=JjlvuXQQ{7$sB_H82gn>c+IaF`?Q(!@wdW^cYJz-Feb*d9IgMPF{X`^Qp?(+JRP^ zg5ybz>iO<23zL0)#`*IDd%sv7K@o6pbKjkx9!xi_p~o=xX|Z|%pg8;MrW5Kd0s{T_%xSpuIQmdhZrQCAKbrB z{r=kMkBK7PoNLyYo4$d8D*4Qdb92r!9}JIl z$02pa5Z+VAj;(bVtTh?$$XmN^-Ikp@P5I2y&Nml$$=ut;XNnRY=`3JYQBlF9H>pcE zuGng5X!vRPm;1tK=8VHgTXqn}z&AHu<#5ptXkus1pWhu56EidA^m)i}q$6)HK8emb zF!B44Zth79jqL}u-`Zx0Y}>XC%+hH)vacFCVgwwU%r!QsOo6w6~QPS7% zx-=e#4q(K;`+G}z!cz8aAD{Yn))!Z=Ud=GYB<{G;N3NUy?OOfLd=G#J?RQo~6QY|o zZDNpi#~Aw|N==Ic+m9YSGuqlYyXegs>3m}_$}9501G;NtZKu%HH__78Ij!_pR8$yX z1@T^Zb1V5`=2k|=Gogn~P+|kkX-4iVOS51Cwirm{L$b2od1XKFcXWt}rP)p#+DKGu z+=;-$ICHm1%uDfH-}N`IAH4W36*uLbO=oSIQQ1Zs8V)Y5jrQZoE$L=PY3EO#KHWQ< zQecW7-Os^6W)X(OQxO{`nWdlGcJb-%$Ka1)Z>y@hXWjZvEk>bTz6fZQLCW>Y2FE?`{KaN_y2*d?hW zp-Kd>pnB~mx{l(6DgY`->udb)+&*F9kh2NO1RVLg4fa(8RfmZL0z%kh@#FVLnu=Rc z?x$2#5&&$i+TREFl-xV}p9XHU&r(idQPE9|qES`s;SLZ)`jz3M{wuOa-#!J<1KHo2!Cb=G> zF`Pdfs-%;1%^ySsWj+*6Eek}wn_pixpMo{8#IPHm0~``%P{DPb>aPMsK_x3-y^IlpjntEGE&cXNJAJZdl}M+1 zP>PR;joc6#$Y^g)Me@eu3JU5t+n(OuPywU$c&p^EFK55Jz7z&%nGP=C>(G7%@Jll( z7ziRrx@ruDORby5I8X5rd%zU*BRy+={J-Ti05&F%XDv`#^ zi}RSS0KfHQ%cW-Zz|6Y;u^73fZ+B~;KpJuuA z;zUsa1C1l!)#0xt006kv2I(y?wNjXX#t6JbjefgWA%)?$>e5jFW>BeEfn_HJjudjMV7q@^R#ICspwA7i)4@~bf=7%N=b<6B3sy$lFPqF#YCsNqaUh#R1L zb%ewd)LlK!_1in^(@ILzXq|Ei4Qjd0cF%;Z?}ml#J(r{zkGIU|i;9VbUdp+ahF(tU zVCZxF=+UNJm+6=1)7XHXi(6a663-^s4}E4|=zV=DCj^W^9cTjU3Ph z3OV_?(ag@~bTe9l7wmdV(FVg#1#ysXzH#G*dHee#gLP46xFJo=V?$EDK#?< zlE6oBEv`*{@7YV93HvBc&0;m9ECVf_a`~Cw5?i@J#!glHRRUm=mcoF5WUC(`T9TwV*JCD}u zzJw^xSlr{cRxOW!JknjJO?@M&{1u8Y25N9#7C2EX)P8{UMIZp0pr1a@I(;iXJA1a6 z3ek^lJ2h^lR*hLX(vprF_zWb;7Nwa(!>-!*nxR`~QZ1E~E`7(ma1M~_x}-@8X;njU)S()&*-dNR7ML+rPy z_sA(L(*P&X1SY8`l1X^#)TtQ*;Xcha9)Nb-?ri5tHi&1`yZOB_>OTYdNYD3eTiCr^ zV9384TsOz8%3gO@j&4dBT5NZbFKJ@~)uBa&*Vlv!TR)R8p^v_hZkoINdzc_#H1Mg? zy*8=t^Y&Q%j8p9uC?Jsz=bLCp19ee#(MN9*+Qg|GZaY`6m8fw(SraYbM1kiLc>IR( zyjdn(LNi?UnOrOqY9`62`5p_OV~aue2itz&oS2g{Ko!NtYLu;_ck*Jkf{!o?OESMe286J`j4fuYh9Y8Dw|)0v<9^YiK4iH}s_5>B-S zS+S@j+=xMFI!?LYRqY> zCwc?PnH{k>+Hgsit@anor*HfRhNcFH_Iq|*MO&L5!URvMTuQ^x`E=9Gm)<*eXEf=? zkx~YZ{qj<+s9SKX8j{tIABsRKfJ6|7NW4@L=^RBkT~V5|b*Vwh@6k+|sbN;65GDo{BA z<9}yZO({{lQVrIGiP&(6i$B9*TOE> zHd9bg_?%^DM4|ZPkbhWMSRT7pO4C^o)c-URdmLZ5Ipkk)sytn_z?y_nwv9unt3gF3 z-feaaz~?Y%A>_JiLrkqGQ?c4v_#;*r>1k;alt0kRVQ#DNv$xEWn(|vq_Dy zO~aV=&e!X-VpKn2fa!Y9n*gm=Twk+6)O{}1;a$#~{&&kFmS6nLqC7&#f3X&KV4=@; zdU@4lQ?39xY`}Cg0h=VU*W<_A-QC?GLZszQh0V@8MK&1VU^eK-B)Ai;jPoC6A z_qS?JB}nu^XlMmy8UJo-u3$xU+Y|Vnit6h90DR5O=b^qazAmUSjl*!D$vfo|R5?!l zd(E0PYJD`(;FxQUG18k!4^$zzarI zmp+HI83c0&--USc#-M1uu=TfM(7~e+mYY)aGN0_|v12{z?fmLxqooG-4wM6p%y|{b z$+evxvy321{Xk^J4Gn^wfxSf!A|m`Xlh~n*0@iE+4FJi}P7c|5P+OE*57GvWjHgRo zLUg4DBwgH&jM=Tnjvq%Iyu6Uk(HGF}Ios}pepwwQL-fH^+itnTf`SpX8vKxE?<@35 zO(#5m9?h+cl8_tpH#c_{#nFPy!k1)sa$RSbq)ir*|#nCgq0ofs79J%tHte zaQ$h%o_cp77)veKut$?-hs4k?*ZT@a`LmyEYWz9QJe#QGNttNW(yNb=-vEL=#Gm^^ z8M6unFs|J}un;T?A2Kr0+0)GHV+-6nr~B5e+PqizIS`xUNb|$7_8dX?Ia{1o85$qu ztLo*mWLWMMzK?THgG$}uF?&fNkg3LpYFBvr&hq*6h>#F69#~ngLl=mRi_3POKYacA zbqFzq%b^880HoQVT#Z5WKyJ4sYlhiO4Mil^^-1gDs!T+fRy?SlDqXrZx8)_Ag<}2Amjc;1P_92mx z0VRg40s{5j@8^I2Ml0-fZ;EHZ7>GG`XDc}6+C1HH+q%I^CqzUt-2=ymhAhCq6(O0f z!SM2RcNuaiJAC*sKfV9V_%g5l@ zc_cqSABzm83n|Lve5W`4*J>nIR69mD4AwIHNnTh~-G%{yb zSNopgO#r3+6LI4M0}5!1pwEM7ClCzZS+(@=5A0!q;0y5%uE$w@lL^dyT=#|;pGFV` z=s~J!hQ}8is*}1zwT!2^eV}=OsNwD&2bv?3)?cI}mG+4J>r~P77OSTDUV8i1BXV>%brR2~s6X5{DSsyUh+}vEVZv?>>Xsufr7)EsV zM?nFM2L08^K1}Iz1B2Az=XW(cop7_?QQ=*D0wmff_Quf}Z_W9q_`EFAIiH(*}g8C

G4Y`eVbPi6NupQV6pO1;kq!%-Aqi%sF|U* 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 literal 0 HcmV?d00001 diff --git a/software/spark/README.md b/software/spark/README.md index 442d1cc..9d22039 100644 --- a/software/spark/README.md +++ b/software/spark/README.md @@ -169,11 +169,12 @@ For information on these knobs, please review the ## 6th Generation Intel® Xeon® 6985-C vs. 4th Generation Intel® Xeon® Platinum 8481C In Google Cloud - + ### 6th Generation Xeon® compared to 4th Generation Xeon® with Spark 3.5.2 In Google Cloud - **1.42×** speedup for **TPCDS**-Like SF3TB - **1.19×** perf/$ improvement for **TPCDS**-Like SF3TB +- For performance with Apache Gluten, reference the [Gluten article](../gluten/README.md) in Optimization Zone. ### Details Testing Date: Performance results are based on testing by Intel as of 1 Aug 2025 and may not reflect all publicly available security updates. diff --git a/software/spark/images/oss-spark-gen-perf.png b/software/spark/images/oss-spark-gen-perf.png index 17e011b33db74e55a553e6088824af99719ed667..0f820d6598b4198f7685ccea8b6f22f41829ddc3 100644 GIT binary patch literal 62303 zcmb@ucRbf^|2M8(B9(^GRz^a0WF)1G5K?3$n~bt|rL?R<_R3BuGdmPXb|^ElGcz;q z=W(9r{r%m)|L#BT>v45mWqdxL_xpVuuh(>I*A)*DJ(lAxe?=d*Q5X9NDd#qy$>6$Qn%GV*6l zg+-zse&La^$~Eh2m*j+XEzCG|^ek@bbK09(;-@JnM8xeab#zVjtqI&(xh>KBEir5R|70mRlbq?8^-7>cl zwii9}&kGCV@8ru|N5n+#=ottros;_SC-5)PBSzNNmcm?Ic6N50cD$SxcMQ3>g@lB- zPV#W^@NnQKIIJAZt##}<%&nOIdx3NMR=RhLEv=0$%ny+l)VXP4V=a2b#>QAr*g(gC z|E8WEKgUfSUOf(OZap0i9X(!d4n1C8Jwbl%Q#=OTH;?@H_SVJ*|KIzYTm5$%a6`Dr zceuDYPm+&J{w}O=$5kz@aN2AfTYr}2%%P(XIwhWNKC)-~ zjveRDZQrqb{K`klo98!3yjHnacXsQ8qtiQOHXrs~J5)F)=d?Os9VW=@cgS&4D_~iT z{n;m>#c7_!AETemyNXhtSM{;(qFgVr{h$BN5Ag8vO2#Q2mX()pK6UEU4P#^DAgO=9 zxBY>eZ%7D(jEszLN1l!Buiw9)1q1}>F#Pwc+gBuBCnrnG%9gD^lcLI4v-iK(>^>+J zI4;N?c6jssL*&1u;-Q<@{_pSYV7gE7-|yRhe0=E4fA4gF`^e`1{iYW@|KI%hXY-D{ zxXIbsa{R|K;?U;R=%-I9`536<yVsQoAum6hGk zMt}JDvG-o&kA>ga>FK54zI{7c87UL37^TSiHZv37TIt(nV`KBJx%r4+C6!@xz0upZ zZ$GrRhYb&#s2mUIbY^4>-5A)I^ybaE6xG%KtVD&Fdc3Y~CWoo%@5KYp&PGSY$8QXl z^GHca=^l}4YHEsBWc5rnGc)7B%SyFqCaEYXE5`(?UWlo`VQ%jI@ZpB6tSmgTLWjBh z+5->NQ{waT7|3fy%(;c&lHR;|<2u#8oECBV;aLey&HbvXs&j=G#_{Wlnwnl3oE4>| zrIrH61D@hpo;Y#hz?a)su3pu>d9&eX_Ie5X`Qz;Dm7hOvm$-XqiTJCE zXAO`U866#JPGO9>;8Wh%sLW+1Cr7n7H_pPwwk1pbQnG4_{m8qD&0DrSZ%|QD*}i9w zl(jYAh7B8VFKOxMKEJ>H%c%KHaOc8szT?dC#o19NZtflUy=Qwk=!EVZby=L{ms?19 z;_cmE7cF_>+FOdfd-s<8aNKr4P4-YFI55Uz&IE@J%a9g@9 zwmhwD-dV7vm1^r5ysX3Q4@2W0>2aOHelK2}vY$BAlBS)Imlwi(DP%i7#^>iux9#j& zWK9!azkZrlyb=;BXo1HTYxei=Uv8tiLkly%69Tp3ly>acQBogsq4Mk3kKexe%ZCed z8+@e`wjPWMZ1z=8>908G_OYcU5I^B=>r&x!Z~z~=x3~9(zW#Zi1EO@|t|HYT{J%zi zWGqdT(I{E!>ge1%8+`^3^7{3viSDvsF&E*sY_nhZYlAITAcuP9jivcX>+#Nx8w#%1 z9UO$ZTo*a|`uYl{YEEMl(lP(l*b)Gr_LKc!o_wr}5FH|Su$9jimX>Sg!PP^CYc@=A=&mirSotR?O` z*MtcjBvrxO+#FTmf%wmlPiRkE&-OH^4w;;8RA@|4IH;a|tFqFM<;mm6QOXJOr-X#o zSWfnw7yH{w>+I}ozw&ors3TwS;lqcwI`Vd(K7D#=X$d=y+$ZwUabv@9R~w@xHyvSO zdgAFBYub|fy{(OLY~$5bjc$C(^0G4by;}D7It!hY)z!beABb@Bc3ocR9v!`8Z-2_L zHX_bypk}W6LvvHp?cUEj!otGrhvEXU{G;)KV-pfGOj|fnOeW^$0%bHLB_-7|45$m8 z=K3pHB9ERt>HGfusk4%j#!atxA2@KpBhQ>Ms#C(k zcly85r)Ok1;3Exo6^n~H&GwFU_^ILUkd3kkDu_UVFNLx-?z0<�Cwj;l`QY`^LcHCRUGHWE}?2( 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%0D;UL;oRvW2 zKpt;o>SJN-5&Z=>fP4$w8nafgjO4!Dr8^KRFWLBBVPOGlb7qVKoD|JPKtNTP3k_Ez z&ssW7EfnK`h|B}Y54sd2MVm3KXbYySOk)elhVOw%E_AzRJto*rQm&;6Toi4r+qlMk z6HPz9O%jjr;z+OW!Z40JBDtZuF#;%TC=HlQuhCM_nU_G9+F!~on(<>)OkQ_h&Tk|lG6&@Jo zQeoJz13)z~3KnA+A9N_GQb`id?WQJI*SUh`T1uG@_^Mu2V z=!W#G3msFcmZCLeBLE#vvXDg6MkasXXq$2VU$w*@Oyx0lxvcmA}O2s2^}ER zf56zDPbcXx%(f4Aq>0ho7E&2m>(HoWN>0lx`clxRFhkDeRgn-bPk(M>-)Oo%C2q%&# z7)}X**FpSp#G**#AkOn0r!I~{Ksaew0z@g+!8H`JyHua#nHTZf!v%|dhdSo8(EpmVo_B1J& zK$UrR3-d@fuXPEu!F%|^NW2T0T@WMVig7hR#1Z%`BLsH=&8KA(CK`=+iyf|(g zed->(Cdm*_#Sohh1G^A~qCf)BDN)Do;fq=Wz5gEbL`o)N%MzS{qyd9*VtHd>o*&jQ zMP-HqBIG!o$akv;#$}v$4&WFlQU6$iYH}3NdqxL5n{0dt!p& zs36>o$?55%h-%>&k)aAJ2*%`uqRe|f*u7XxWEKEH7F70N=(R2j)6cy}(dD4m6K8+J zOF#%8{wFAeEFkMRtYABwaQO(4O4L&_kbmK1z&(*JPA8(88|NOEE>3wRMUye+r{>)~(G$E%x-WZ5}5IA+Rkqw^6AY5I26 zJuq-Dq+t?$MtTGw3Be9>#u1eNta`D-Sb7bjE$~d)+`j{+KsW!6K?^b$46KTX87DMI8oqofwS9%9}C7Vq)!O(-Q~@4`jI=*mrqqJ$X(j1pZIv!B!6Aa;*n z&2n20)=52Tw6?bHg+zq`g+J|9wbFC%!o&B&yTSArsXa+szG1b-Et3Wd-3qXM$G&~H zRF0UNn8?8002lD@T!$7S7j*I-dKX_vH^N5*RKwbCGupl}bNn963R(WWdB2H&jMH6) zTGAq?4|wDFGRRDhU7q9!6+F%cGPn+VgPgf01mzPM2%?(d2AE`a$&lCqyb%&G#h9)! z-Q^1xE}-~)fl-2c??2`P8cs+qrWwj0B`}3Eq8Xu$k=l-nfts}kNFJ^?#*H3NCnzP^ z1H8xmn)>qxGWk8+jN21GC7`RLae_)nemTV+AcKewjJTxf6w1u~nZJ5^aAd)Q%haa0 z>bE&L1F%p=ItxR8RruggB=Ty+UjkT045bb|fb9}W8l)k)V4m||d(&{~gfwLt{Fj3}=y#Vc`FdtQcw zkV!Oha0Qv{!CVA{W-l)adHeT-Q)1{oe}a0ZHTnPWkH93+T1*w;SxXfF$4|mAW>CLw|%V zIPvF?$y?@aqx|)vcIb-Kt{E|6(9bYCQZM>wwt|(Hm-gY=!%ZLPztq+Snq1dweW8eh zZIETVOuHqsB_C6UI6E^VBcp!#?rd@%0$JS%0DP;Oro+!;&?T>A3dQa)za*j+P5FY* zR6zuAqM#tdzG&(Z>oUjTg~)aVAS*J$lV$c9r2)5r^kzqI>)IR`O&CkT@fgOd!!%WD z*RByN0(#&`UxXN!vE#CxzN+dTgnMzBzxw+0cb)3*>mx@|BqSv8r9roVU;sv9!gn-r z%o!DAsN-s$It8F>e!i3YKqe;IfOLm6wO7Mq^EZ(~+*t+6iaY<4yjbGUpz8&j;@#Bz zyeBw0F-JrJ^CBr%MG`#~RLw8qbjQ@SNSs{2%j*Z3c_=5L2`S`>IX4@<54x~@g#xIQRC)O2^VqeY@VfKxO-TEIeNGN>^mw+JMh$?^xc=1! zBrz7t%%nDSN8$*r=NN&GsaIcN!=x`Z<%(q2_3i7!;X45^5ueI6LrP`d3DYyBl6G@r zn#7mCGM;1H*e@8mbu*0uo)J0(kifvf;F28=R#gy9!a9Jx$XK&b@gBqrk5K6#mBf4@ zY7frMV>xx|+PAe!W&h_C&5r7O|8s2ZvHSm*$JRb54nRG+L*|1jF_p|0;M4)Q0Y4dK-L?(W>&e}DT+fFHcW33?=2h*R{cv8>2psvRBs zF}7IN>xS{L5?B-@djW#5qFiq0gP{$CTuH*^+cy<5osB6N7e3@TdL)IgtcI8ea8(y*xejfc34% z+UYU&2ZxrhE?7lq3-oao7h$*po z_)eEOO*A$K9A6ZK!DT2Fry$~xi8hcFI?g`{=q?{CD*VF2mJ$MvMv6M^!6n0LK_vPJ zSUcEOnH~j13`95P6Gp3+@gd0jqTE3O1yOj1pdd*(Lh>DKOrSwcB62W5AU$X2p*SUJ z3@o4p;D{?&d8kWgUgsvieoanKqgnboY{D>{_N&$wOJ#NN0LSs;XXBJ6M>1;v02p%P zG%%P(^ElfOsyL6Ft2Qv_FU$@ypFVxvVgYywX)>Fb@eLB&R|LtZ8qH-iSMim3CP+oS z+N%qDiAaDrCT3qeV7DO?Nkp6#(@Q5{R+0c3oKSKjQGhUHLc(!th;tPj%&!h9*kmDa zVaXY74@XUkB73#8*tKf#Z@23XsChjFnTI4&QQ624 z+J+QGNRrGM8Wl-Mg-oGIC1oqhP^8Z5Q+wafea<@Pto2|2^MC%&x!1a%=iXbcuIqPw zhtKCdeO^37VO5#xHHy}xd+*+y8|sivEO!aNLvAeP1I4?9gmKyF(Wuv`r5*k&ZQmeRp?k(J~2vlz#+dbltu^Zu8AAx<|adbzLep;Zuq-Fr6Wtik;me zT3{)w@Xtsf*1~EgyZwjA0_p&pvSMrh6Wqk&P#WauM|N*?$D=js-Z8w!wn5b*8D48Q zYr6{*AFQS zvYj(8a~5;f1HMhe7j$k`@ackbD2N%eXPfT-C278Z!l;ou1@uDv!EGj{F{#IA2gCA&*{RObZZ4-6k5m*+u=&Ii zkj8r8#g^~o@o{l|tRFTbL{U_I;EU*MYM|bZy0+Bk29;+&o6He3b|aizH0YkltWeX? zpq;mukZtpjAkI{=3=Uae(D~CsEN_wkiCW+`o{*R;?s+z~ zguc-wpz4({Yfx>82PUqHgHH7RWa(*~O`S~@$m0VvapT{&vHpv-Kb{^D-5izGjOo*F z13J>GaIkLqZtAD+a6sM<=>k|B#&BGMQuzZ^Ackp-s1kW3w6Qf$8&tUoeGx>$w;M+e z9qK$Rg+CBswPSK3>1Z&thIo9T9qEm~7It*yC;*J?(ar;D7oSNWMQN2-#6a$nV=;e9 z9<3wt4{>%yE$M<_k=w3`np%fX>v$?Cr`^+?3|~$v0O^6T+e-y2l62M^7tee8NwNb7 zO&8fMH9;Vo6Q>-aF7XzC!ijZ^zErYL^3AE=7qVV?0P8Bs9V8HtuRNfPe8fJd2LDNH z9PrS#Z8gzo?{Pl6o(Ea&SWvyzB?SHuK6T(-37GXs16Y19)7cS}2I6O zFPjz76!PIT(+p{i#Q4g|*R(oK;!s#H8YonvQ2Kybs0izl@A|IV=(&#rBa`L4o zc^5jO_TN70qH5Pp?4|xBPBi-92aDb%}3i3Be@|2{=J-0!9mp8eF2Z7sv z8Tw?plX9%AreU^Y=GpT_;-xVHX;fF=37IZ3ZK5s@-S9kmRJ+!F$jFA@g&%#kLe-94 zB8Vy1ooEOMQH5a@X<}4v0j4#_fUlfQlJAQ=th?fIR1IQh1mxt>6rKSAD&;60@!jO) zMq#EpX>E|Ippa?;jKR6|0k8pOB$QcA%nb0arT90Oy}8i~I4_eYxCwpW(_vI=hE!b! zmE{tc5|fbdagg7#k!l*gRjE|dyEOxa%z~3!njZpF2u#TB=6a($eyZ!!2ZT|RTvJ6m z%gZ6z%DVp2Tr{jAvgAm_gsNpd3MT_~P-J4nso|wZ6c~+3k016baxFtfv z>+|+v+!ZY)ZtSrMh!2)h_s6BD-+E%ai0Tb{LcqYB@KvqNd&BW9n-AX)8Ojun1VGtV zq%cDISaBqAnT!tq&YNICi4{^*z(BW%!br&akY>OJ2|x%>@g$~h(F*Wz20MK}|Lpru zwivbU(Iv+n+$3gIGNehpiOTNXt(%xrxr7XdRE9VB&c|vKY0d$c5@C+Tqa)T9>~5b? zs+K&PF;xgNl4lZGzX489upOZ}UiKz@)$?d`s#*>iDtnO?Qyv|@XhFUn8iDtrmZwgfrq(+Dewma*4I4WSz3Vh%yS zh)6qD^cVON)Ug+0UO4a+$GzY_RXK9V!%%$QCVmu?OCU*oQXtyqjN`U%MeeAmz!6~5 zt?uB1P}X__oC93nW2gw3nE2!!SZR{RDu2MGBoYo#Og7}{CE=(sB7YS|$jUX|8${DL zSQ0V}&;07MdgsNvpPZM8LuEp{hMhWf5;hERxU?CE4{Lc&092In2YKeT^I03X3C2yH zj0M4$x`|rrw)AlLmx2v-)i^7O>9yY&tzb*}a%vC8!OOG)xJ=@l)UAr#= zL=ls7Q_4qU0z(Ya9TH8fuM*xX0}wcWJzr$u>Y@>VB0}qN?}K`4K8wWYk{9(OvAoSw zvx9Es`#;Vi;T(wxvF}6TdEWqKXoDm}X6Yp_-gNqvHbk#*6@gMoI|xcR)X2*Vw2u@q8Cng=e7(Nm!!tMbEZFJNr>A%IPeeP03=$65Za6}tZ%3bS zWOr$*TOV&?O}H+dYnToAFWz|+4v32hZM%@1WM zbp(a06pzB@K{V-6$xwRBa2UchIFne#jzxR%gM)qonJ9hw1#qbTt?uK77P5IELp0v7nE+O=1u9Dtk?>pU(o)D-VQcc~Gd!1U+uAdVv+%-)B( z@d_wbi{9ps=q>`j(J+e=1S;Y5jbG0aUdb0n;8C03*Oxz^u;y8_0OM4P2gmpBZMgjU zJnhE6hdC#o?HT^)&F``9K+|PrlhpuzIcB@itsnv)_cEC6$T$7bda?6I^%cvP6I}0q z{`{nHb9qDj0SWZ8w9_`zcT1qOgvaX1iS++dAfNsEhtixz038Tll%2j zxwEzDNP?3)11(UJ9uRHa_txMq|-qP~`$UBGKG5aZqbhBg2=$&O_3!lpm(%mGUY* zD&o*^(g7u>pMxH!F3dZ48O{$7%)`$f6^!ivePqwrCMyj&yh&gMkz~Ej@7ZWvbw`5T*e(OdF%YLp%j{3^z|d3WWp1)sda~r z0Rj`?fZkuC(IC?7+Uv}@JmS)fu&niKR)%AQq=bwl^FqFwrx_A2-fwY(zMo38RPOj0 zRZZde#;t`~G)ncv5Xv-=B;hiyUw{5wuRj8lZT+=lrf4 zGyL~W2slL)SGYM?9um_0_07h%nZ~;q*t)}jyV&rMZFMgR_W!6m*VJ^+ybF@0&S6C( z`hlXjN(;ioCvFT$h^R^cI!ztn_|ainc(!Etoj4KmK^@z#NCbzpoj+#|z}443=9=Z( z8@9Up6HW9MxT^H1000uGL|P9+|5ZJ7yb=f}g_1@=+v}S@jZ*Z-Bc;PY0GOFa^pt+-uiU&ub9u_5D@sX?K7Od-~4d2Y5viBAes$vT=7dRy=M}Sv*%}@=FOU& zm>tX$JaDvMtHL$(^DybgiZf5XhxFN`wLaxzMk7wwmn$a7r#M!pqHrsPM60So;u#{e zD`4PEmvH(eKoP`phfzepQ*_hTe#a4&1BQCo`8?4kP7*cB zn+AfE&WlbALTkjEk=Fny$F{0dm~!Y3$6u#<{4PT4#?KJ1vyYRIlU^EUngzrQqaXGc zgB0!3!9V{Tfg6{C0%R-WtlblvH{zu~W}m*yZc#HZ7fR$&$P0iBqh`7vJbd_`Y&XJ1 zNZZ&yp$H`iXL*)b*1}npXuG=|tIshZ7p&MzFloUpa8Q000*1zIS^M@mj!H7A0PPRh zxQtQauv+>0+Ab^!vme^5N{>7uf$_+r=vOhN1)e>t!usRj5i*@RrQtrEl*hwAeE2@b z3l*4z5Q^A`4?$1FBex;fgI}*Xpy3J%EIzOCj1Vq2kz@KF?GU^0LU3@lP~aSom(Ika zYNaL!!SyGRPH?~^{_rAnQ1?JUSQjUO+ywI`Z{}{dbwLY5CmXtz6jWxQyoTnMTs4Gv zw}s515hW-ifctX7no!l)d}J$<>kpbFj$HY!q3O}4zye>pZQa^`qW{oKA_5?r3GtOw zAmDiv^qdIlI@&aVBK&~>2AGoS9^F2Qq6y27_FMT%R{~+-u=&JKodkF>R-?b0%0>~S zPNwvP7Y>_)Ux+*~N_l}oEMsd^HJ#R4(|*(EE#`{f^W!B(uInusEwvvlJWHLOzm|t5 zjD-kDfbTgD=o!o|%?N&!qXwBV7rd=3DWM>%UaY7ByZu=6u<&S zNWhsIEG!NM?!~UwDmdtfq=`vOGt;gGbU0SWOIQSm{eX@Y=9|8ZA+bTYW3FGcnG&SL zGULX#Ce%gx8g`j9L9DgCw`%=~PLjSfA8v1JqB%{dA=D(+GBHYvB7VS%dqU!3^! zxfV8mT`Iq2gE<=+nJ1pAUAuRqOG=@_f(bH2ofR;}OQIr3O(_`XKmr=ghJcmn>J{IR zX>pb(q1{$#*f3YXG4e%G+VCmSltv$Vk(8tgbj#Bg?|A>w=XCsKz6Yz8qr@n{_zFV$ z{I>Jw&Ff1B*D}2XRwUC5?(#z4mTwb?__1oO9#ujdDSar6B}`m$8R+du7||C&-sm^e zze$BLs4iJj6H(ZybN{e;1X{I>b!)X=mk?Afx=|{%HiD*+Ulc zJt2w%80t&S11H&|)+#7{5t+~o+7{=G$HhkWx(wq0HX_0+2zmo_K!PZ+3?RP|(oiIh zm{lE*%%)K1pyY=%L8gHD{&u<0?_>g$fyfXQCea;`G;F)r4;rKo$(bSDHmGQ;=M&!E z+Ux^^h3L-}a=Y1yUq63N@E=5n@4?Xpy14^Vp5};$F2-XqSkw5hE4ok<)jJBWO*bBk z>J^a>?~X|Vwb;k#l$rnxBQGL3!m{95ka5Z>5I`s~W{3EhcX!+@vT_*0d6y8Cu{%ZB zB%0ad`r}d7ZNvt!cZh|5!w<}dB(dThdRIBPDIA`Va)mEaXZ;_nVE z;wi+$ARDE6>}h(g5EDgO#BscxpWVc*HY) z46N$^u?t(&|FLt|5gYi_XeV#Z?Au-CPAo9?Sb%*Vr_d23-Q9e$-vZW`p+F7AytwQs zJ(?YL_TC9aBpFe~OI*GH=$U4Nv?7I_pL}8VL9#Qscc=SUr|lfU!$o4!db7%;K|hJ{ zISuY?>^9b<-iJ@0Rz1^+#->ETD!b~1#gf~c+=pH_>ixWOo)1+jHhhIc3#%{_4}#lputwS3HQ9- zOUCG0c<^Q3^U~roL=1w#i)@Ic&k)#Z!*-k=5i6l%T#m+>XMuWqrM2Ot8+&BcwaJIs zJ3AN?iiiVvm70Zcp%~73SU)}<4i4k7Gwj!t!HlfBbc+W8Ve|)W3rk(sajcvxELJfE zeLG(3+T>zLP6(_1jv9|^*F|ChB`|*SV?KAlVmmp~p#sF_v8GJ!C*Weq+Gn?+T{*n3 z=_)l=%)X$YpeKVG+9lfCZQfn5fM%>GI5`^6y^CGf+1gH9vE#`zKtAyZBD*+t%xtUD z@hMz|oC=OziU1}WI_s-``c7NP%8CP}?{=9&iU|wC3o|M7Ss39XN4fC{29nWt0Z!)j z83jk%7Yu)R#>a~Vg0>|6W-n6HlLaW*zrUjp_#tE)$>=Xp$WrGMZ4aW;r{UrQ+jq!O zhf{@Lh+*tr(U1(xY7)22j{;`im#74{?aeA~4qTJI2d0UuE5*kg=$tc7{uzt>(*D`y zM#qM4K8hTz1QmrO$}RiJ*CL2U<boBswLa!-;mcnTt{b zbq*3e(BGAp>-wO0Sg?PoYUjUmMm^Md%eypyY&@BeDH@ZZ|AHB|Bq@_u)b zxMkxYnFgk%^~1wbGP!7~WnvR*d(N(c#At-Q1ab+;&L}TX$ZzlK{~e-gFdk7Oe&hRj zkB*e!w5!2c;I^#7n57{41!1uvfh5AZbxm*!ir7R*XD)m~fW4_1td=Y>Lj0m6F&Nal zVmRT{pgO?VL_pO`oAv)hw0baom^1B{Q~x>>5a0n91I&JBc zfhTf>H|IhXK{F7#L@u(JT9GhHC8Q*i@aU~XEeQV=`? z_tnN}?me0mX6^zx!o@cDGjwhC#-gYnf{Zb$h*JVFa6lQ=5$6<4j^^a1)vB3oE~lc$ zsAcBok4KLz;GTrM-l#eTIV0As%O;bDv%ptOw2;P7c;rISI4N)|qsI-%6=%nQc1`|y zwX4x)@tGXQWHiS!$%DzpgM6ha5I~e24FZNV^$#Eka0;1|L3V;vZsg!pR{V%YwOog( z3ENOic(6@%!6{>(4_D*uQ;zpN^2p}!KZ&``mS1l@abkkOA(xly8&t&CQsQ2f*@n~w zI777q7{I4R8<9sEMMug7fZAg4?+MqHkn4&63O-K0^H%4--IgZ;`oRHGz5b`N);JxJ zR_5C04XwN~(v{)DG#)3Z`S!FKH07wdsp%sucM`@(Cy0M#w|%;U5E%;4y)sBS5r5$P zyl`{u-@(77OCHx!a&aH7^o_zte8kGGoS2B3Xi_>dCX~qoTn7PVXm|ps>v4QMM#Dp0 zN}>O>98yz?2ad)5ldFS-)hc#X49uvzlgZ4m(6}siapZHVQ0m-a^aJX(7CNTmxQbaq z$Y0li{2)w4N-6Cd#c~R%$7rJ6Nd=)Flo+mR--3*gAbZdIY^{HO&lS6jx}|SwDzUk+ z3@XuD@P$tRspZNMfh;8!GCf3SqQ-$yAPGo3C}_jDFB$Lh5Whe`qdn_CJXV4&K~e+k zpM51>L;lrB>k`z3SiosUO4a{$64Krv{Jzua2JoGh@yF z$5+pCkr}M$jbk4~cL!bJ;lw_mk6MQs0TFA1B~|--noNEfS?VWf0|P*NLJ;-!UB7^8 zFk3P(=mef#Ljo&?Dsi%-g@|MSzd{JXc%e0Os}@^D^=n)ThpCm24^ev~r*aD^3dWwo z&g7u!F&Vr~`fuo9p^QV8Ki8Hx4T^YrkEip^Xr=Vwix z2cT_pjxN23=@iKlPQeSJ?AbT(LhTqzX0fBn{vQMGURU-$S~*4!7mNPrj*BNMGX-n6 zk?91&EACMN%BB+y==D0#c2r-$OsALe=sJ<7M*A~?5i5MG(#op8zu@SE04wHbh{ug1 zL!{A+O>!Hr1T|%e1X8jlMMaU+qUvu+40ri+dL0j{O$ib}HN-L(3oO!3{^9HLrfjfM z^i&%Q!}4U@ZMx&X|Gr8vw^~pn%Qc=c0WuEdH3-5Ifm6ReohVeO2)VHW%2yk-Y#RO> zp0GrZ>VLW0luS!`t&Bt{k^iUrV zXFDiWB!&%piXf2`U&clj2%!+feE#;$nviR1Ye7G#b7LX##1Dq04E7E2lE`;IwCyRk z&O9nopa5Ca+bS<|R0wTCxd?F@|L9QzdIniN>~smlT63#ROZ@zlOuD9RU6F0z?MP-~ zIgd6=f}CH!KFZ1+pP>Q5AAp=+@G{3^Zc=_^P1mYgb6p{E;ZNXQD6u75s#!ge;n>)W zpgr*Mai{BtF?MsW@hAVllNA=)#6k=5RUiHcN zaQ~aY_5X+Y?EmrO6&u>upAj^(TeIC`qdUJ=V=@tLP2P{U_lNjl+*Ar;vnPkZ0e|C1rLo^ zws)%av19L6NwTcAMW2tJr8bShS70mHCOgyGAnm+rlXa&~J!SBmdvFfBX>+A2VeNsM zNd6dIT>@Mv_a6{hU0OK2Yb!$Qjoi3s>GI%ibBfi^9auU2&hIwQn#aBJSgXL2jB(sCqQmL^f2ObY$!LG)_uAfOJJkw*IUIL5v@XflXHwy@p+&y^`r*UC zXe91UN5^pcL7Kzk7JZ9d^zEgsM*a8e{C27}ZXDKR)=o7wQjdj8UUf6gEzat;Zi6DN zz;B2tW<+dQwL1FuhQBsMMCkMBu+J`kdGV7D(U$ScuiKKjZhwS2a_9Z$XGd*wMa1%> z(r=Bzd(avUO4jWCMjE%5Uw7Q20lhBafYYY^8PO9TSV-z$x2DYj{TrRLd{)Pcb@fvD zhUsA!5m&S%QVTHN6ARfB9Ii58m@iLsF%FzVXJ-YsKt`0k&6$UXOapl-&CMhCMi1KaH0x$_VSwPP$SGK+>dU%K2elk~CP6!}blxgSx_ z6*RUFpc>q-1Xk)cpw_>ilyt^8V1oY75B|^2&pjwpOHsbcOd-X?x&J-qMeKQ!sB-FDY?HqGBp%TM=G3C~`Z)^6PB(b{|Jt+(&6Z|ZfFzj)}IMWjsu z^r6I8U^kYKbD0||Q?~SMI*7vPVnm_La(`==GFg%Y5u6a3Jr(mIk;u8M|I;A#aK{4K z^0&Ae_WhXXUfLkLwB5Cw^3bG`)?FGm-rr;L_PR=7+gVsz#We;&|3#F$7@PEtFO_&T z2H>gGub++bRHC3UlI@~TS{vJN5GTGk-MI_mR}L(>8U1@NfBpsA))xl(P^TLaF*4QR z)aB}hdFIZfI$-jeP_JSc(rU^F;|rS+JiC{k^P6O}4?NXKlK`3{6yeLCogE2}77@v3 zpsrll_sCh3OB#%D()hTmw6*_v@4u!G>)-B!erUaQDj&-2+3)e7a& zr^~z5^flP7Xxunxr}od^MLDCcgr#p zt<>BrR<%gt)LRv0daU|GYVSm}QG$Kr7<{jfdON#=0pAc1VqXj* z=`f1oOJ-Yl*VZonV0dv#_46l%*2g7WYrSg^!3@wxB~e|q9&y1DwJUbG=^;v^SB z|D}%=5ov{Ho9CgkIsVY`p% zE89pQGp~~cYqf+*nVUo60YuWja$p;h!PA59&#GP>cjLV$Y4HGza4NHC14-K0M5q$^ zpYCXl_bQhvsux~+_H#VY;1OL*<*KTN%7zlRk?M}ESc;3@+j>?nzn~E!9G%lM@KN5N z2HDq^e4hH~_m7g2bzZ5THb_B-Y*Ylcds`3C#At^=!}#WEv*j<&?|QJP_=C|!o$4ps zd;~KsM87Hq=S7PyJO6g1o$S+KD-T?FY?(|Gv8E{BMo(Z1VTn-~(AQpNlq?hQuFUC4 zK&^}wfI5qz1TW*<6@w7H^riSuqjL)uK?qb{p5UpS@6k&$^V*C9rM<>3>!=ly*GlWl zqE{2@E`6q2S$mb@Sg)r0i+}i4mhTX{i#Ct0P!cj6h>;D;Rxb6@}~m# zbIpjMf*&W;AgyIBTt044Ws=f_5Dw(<3{Uy(rjo?gwL*9ETsZ3cVB1JJJ2ym&CN+H( zTUOmVZjnd9mVSfU9h}v*cGA6B-iC9MThx@_&l4`a_y*7P4JL|`@jyqyU66F*BAfxGTx9!`H^^F^MaX9!J3Z$h&{^ZOUH%6^( z+ewgAoKk|sH*TDzs%Y!?%SBURQ?5D!ylv*WnGY7WD@twO_2(?b=U&ZqYMx&ZeH^v@ zvF~@h4tgFwe3jDc7V|5R6^x%Z@2GuK5S3CEx&%=n=ly)Kg&ay@+OxdXAX;OnlO)g{ z5NX|lueL*=Y-H#RE6Poz_`H^cCDLuAt&&(RZpArFailfN6Uha)qsH&5!_IWC_GlG7 z?3;kP7W62<={deHd&_hHF7Oft&GdErx>Tkqp*R&-OUJ9ePoiYuO~g9TisUqrafE-o zm@Ok#&!2x3F;w2>{@@AQRg~N;Z8%-}S>08kzu%p<`p4>bx2>+&BoF&BEnq_PAJJ<< zvufj=-JOyzZ79Js;5RLQ451|wn2d*e(2*y}hyFQpr`j|w3-BpJlV1w}ZOyc+AtIwR zY&7gHx|9a-ms*wLjZ-JVhhLx&qKWfpZN}ywYf~l~eS7VARJ-ob9x+TS~UDv*?+3~wGXa8l^gBxtM@06~xRxX;RMilr?(eIjhPE|=n zv$7LFijX_sHoJw;Tc%1e^kFo9C?z;Jg*4@rrSS$!pPzd^KFZgC@&Or%{grWX7B?)k zd)(E}Z(mO-&tI>Re?rsHim#ntO^8}Ch9j$7dBoIt2EE-bG~3fJBX@dIVy-RY6W$F! zvbm%7N)>56nGc=mX=47Rn*nwXAQ^g2OZD2~GC(ip;XNIa>CajGkS%xRkjlNwQ-|pE(GoOzaBa${x%Ro~O)RaI2 zD4w7XC|r=2-&-8QThltYi?flh<2E9KB#gqL{2kpRlLW}4czFU*S>)B?ORKSS`=t6i zQY+Lku~fAjwxDxP(h{zYZErpNPOePp?X7GW6`WJktLdW_+R??s4xjt-+TL8N>!=ai zcLf8XXi_do*|Kn+n+)n12x|=rEel*T?=OKf=R5N>P?!5oN zw(GZ-<6^>m)$497bLu(k;?-uA<>{lW79Gf_C+Thw?MlsptRvMP_j~Jpitc% zj7XH}3ve^KK8ctiii=z-eVBxF$G?5!{ktEnz8S)NCz;?*^M03nf+!!~cO>Fky$xMU zk|{z{8Tl@An_Ml`72+Y2lu*yquBprZ#@OaFf{Og&e&KL=c}j_T&KnOs<+PlRQ9y1TIW!rArU9 zn=+)B3^kj?0WW37!=v{h?Z?WYDA7Si8V=hS9&}6w1w|BwyUV}hGFM14Alt}+n?jP% zBoSFW8Srz3Cpu_)rKcK1X_^F4YaXO(^raD1_APOL&npG6n@v&T7hd&Q9WLYC!92yc zN^gPjGu12uR{8ww9texqd+pjeQw*Upf=s`%yae7Xo2foN8()z(-okx5_hiJ>8v;FZ za8fZ**~vf$UiX370_rMKFXKTTBOROWpE$nbh)pt;g|hHAHx88Zy4s3;$u4`{-Alav z=dqAP$JD)hN6eRKH9c0;WHiDg8yj5!$#qq41P_WcSw^8ER~4*d>}vpN|X`pSRO zXq{f$75hstm+gzq`rIw#%_rW800!K*i$hvbL0`1jYfEhg7%vy9T2VKc&Ptp&;GO&zEOoQ*QselE!Zd_MNbC__UwWZU7JUYQZXFoBIY>)g!2d6V0W z&iO&b?$@GOvuzI+G0Nt?zdl+3LUx{SUK|Y)2wfZk8fou?WV$guGVhc#n!P2n8|;5W zVXqx>Os0LBX=&OH(ChOv|M#AgJYHBfBgkb1nz}e$898)|HJ=Tq<4zH2HkEUwVS4-Rx8zsD0&?$1MqMpJpAo09N;v9P?| z@Mab5`*c1z4w*7y2nnxmDVHm-gZ}TYDaaDv<>eXCWr@KD{m&9$m!9U4-gVk<`V({F z#^`d-iH+(HUE?^%yYv(-cpnZbabnB62b~20lBiSUcXabpDYBNmy4;cVXXm%H>bDV3 zGx2aw8DOGce7_S#ZSbX;SOB*R#CbQqBL-xU~$K=|s#ShVhSyZuEC&-KD z@$kYUkWTSjJ85gza|LidjI&|CukRkVhKGK!ia=6M=camU&kD_QYeP9BT%ep7F6G(n zc{7etKRqXR%+&8z)3ouFZHg2c=e=Cc1@Fc*zTK^dmeb5ezG3-4HHZFNnecUtmS)bB zf~l!z7U%&o8jqaf^`D zq@Q!vv8&duv6mm&A8fY0o|07Y8pDoOmggDdHBhGNx4p&2Fjhm};N;jPqN>e6} zmY4Wd=7b~<_dk95uK!*s=Bofe1=TqR<)h1%v2z$n#4Dyx)`t`-;R|Fb#T!(7X|(!Q z*uABsk+s0H5d~RM!3;?& z;yQSY+mbON6B&`S^x4_Q#P29*Ge4uODrT`_SoAlQ3dM}Ni5_1A`>00@PFk;kV+J8$N6lYi=4{m7=% zV{q!s=@~sN^nBolaCh5D337(qV-8B`2e1!>-ksPJ*P~SiyRNTuAaKEZv*NQgF}|;-icb}ziUJW=Ui(r zVPZmNlkE<%i%xBPSn}#-&!@3>lHQjhaynjFZ^lZqVcLIb%K2_}JGtnNhu0MSo`0Qd zpd`RLdx<%gFU;7TeWe7E>{Jj6(b3c5pRvt-Xj4993vf@dS9H1Dfqu{4l#vl730_`{ zcDxH#EzyO4?5wvsN2B!)FSWoQx+RcvM!tX^L?#J z+fyyVKDTr4-N!R$#?!1myVp1>&sclh{`&p)5102jxWH;*L3rAs)MIn(&V1XmQnlrP zQ=`h(1^*1)lc9P>XJ6e|gPouK%;VQoYB#8?^t0|@-k_!Tqa1_M7W=$6PWqnlhqtL- zV9IzlI^=cBO>gH~8peqGmFoc=Wbs8?pCRkDfiJ8ngbGi5rYAT+#uFMgnG7x=&^XFX z*Ch^6i1wDa;^Ip#zuhV2Hh$aa+#vRGzdAYx;#OL{|7lk4kh5gYDCPBsGkcoq)bL7) zdpPLVTEnPVFi<^Ni6BlWE!C1T-w_$j%I-ACsk8d^G zeab1{UH+kaz9$x3`S5MH>DBX8n57wc{hQe6#2YE!Sy0+~-Ac2fd0~pKW0kqa?Vk^x z6{?nLHw0h?>FqWIBE{SV3$M@P%A+mrODy5J*%!q6LgZv`8uL5|*1W^>S4(EPpzwUP zo^>=f%I4?GV+2kvSW8z$`^{e)V*<3Mpp0Iz^At{`MKi;cPv^CG`rXsxzKM!n@E-^I zu3kOQBXz6Of~SoSz8(L&`B5q5w6Mz`y=0U;PP|&`yDnUBjh(EqIko z?-S~Q$Sf7|FG7`LnrFV-v3PSrz+3Zs4yGG>R~8wscG~YA@WX#*Gsj@_R@F#ojm9HX0URKDColo{d#!i~Kg5!!EA&wf|ORb*TBlVdr*?t$t#ckN0k3 zo7ZoMPZyJI*L;;wE;PRLjobZ)835IUwbR_=~{{l@JfL7YU2_PLA|hSeu&9X@DHojk_<&ZKB*D z)&gZJ>2jV3XQlI?BZ`*^zkt5^j3AM+0~bqrRWrPE+~6KwYJd9rKElbrk$b-s(fKlX z`}!?Fn$atzlRgCz+9^)ul@){oxnVn8C2JD-4LKd}r&qx8$fQ1xs@t=1 zcb8lZWhNa?z;SkVLG-PN^W0tHC8eu2Pp(@j0U}WrG%b2B`#{q;>EW=NHsv=? z40>x*gG|Pg;81Tj|43tgiqoJfuy4OXO#3F)#7@q`lm8>t^T@isXto@udCSMRZ*4Po zlxs?U&hH-?OR!bbi#VCM%b$!J9Nx2I%%Z-yY>YtKb$xm#cvQ1SArF76yj^`W+eT0S z;iJXr(Xtxo6*wiUFMz z;2r#^Dp-@bl@Oel(QM#aPr!6F7tpqadz{nrlnLXM3KCshqv55l@?VZ; zAHKq;1b}e*MVbs7L!(7oA*M-+It}g@&gRL&W6uy_nz*PH;I%SLiNTD0h_A8tfo&}2 zEi&k*p9DW}V&4ZMm{KrCzU7>PnX5a>L{f>RM*IEwv0Ac6Z@#3)R4TC&E|Co73T5inBR+HakIeUd0CB%2a}p`aL>dv#G=Ks7bC z@hMQ#w+?y7q-TQTDJra5X&1F~TPV{}2C>(vLM7^6Y-rb)&ys7Fa{>|Eck|q9{60w5 z0Cp&yZOoVY?r0*C5L8Ybx}6!1t$7+e^vu#{egy5oz0{4tUc+1!nYB>3{$kYkc~G4+ zhX1NpIWU`2josnMi*ir)p@{+KMsw>?jKP`%Y)V*(+6Zp>4@}afu6f6lg-j-P`6IFd zKB>9Sqb62Bwbrc*%)4r8D${2=!Sx@ugW4kP&OlAkz8q>BAEm#Vc^k&> z9Tj^ZMj1HWVTHvk3Lz+DmKO?w_#rZ{Md)$zx1K?tadwJJj8!!ST0lmkvAD8f?K+WF zy06aGj)rbFfOhNPshz&s-vSk}F|UA69y? zGV0p78J>NA1#Kz)!@HOF!+KYoi#s=4v?VS%V!Q8oy+$v4RmPMBc0GCiZp7@IM!8G+ ztm_>3=kcN`{wE%}eQR>OZRqP}hhHx>iLSk1*!n>ivwuBxU#J{x@FM7v)$3y_O1bOw z*U!>5wdkAuVVF{G}R~MuaC@pSbD_si( zREb_*+fCFb^c6@COS;`mU5V=u_|4(OJKL~QYBy|q*;JvDw)EDe^0zelr~0m5r51PTcW!4dk%bN&vPnnAn@SX(S!9ddB$SfF*2 zaZ>uf{tD^8>h-gz>)=Li*b+ zSv^GS;}HWdW#IlhMVohJ4n1D+Y0`=N)`$0-+}+#TWt=m0^29K|?BL7wCOizyeeL+D z^|Lk!U3?E87*sZQ!XTZPW~G%g_QttOV?C?(l-Oo7jD960`Cn}TBivU zDqMCt1I-s&9t6%Ia&YdAl}C&=1GoV4tn+%13z!_~p3_q&_d94^k>+6ciEFjS<`{<^ z`t?V!+26ZM$BW%{;;mtf$YctFFUe>YuH_|cF5CyiniZsd-9tjtXuOWChHugnjFbQA z&&ei3eE0d~wnyCeYj`D@DS}R*EbNPw+^tc2Xq0urZcs{4koZyJyHYvTZlv)DLU%6N zC7)l@@GU40x+Wm)P~Q44bkODq3lOgw#W9vsgpezb7-$7ex? z^j23=SE64RrY{BA-$CZjy9yJ55A+t+TIFs*3*#lU%sys4VA|AQnh z>~A~J?ZP3~v7bJ#c|6wewe6U0J+FVs*#5EGI=%HjJVP!I_Ih1M^tJQk0R1+xii1ZoRU28U?tONvq%VR2I1FJpk1QEZ>8g|HZR7h0s3deF19f2i32W=dZT3nd8wg3wV<3N9l-4~6sXs!GQD?fqF9(6wdBE)|CO zY6O%LiT;*48Yj3~tH{1EsWx^V3Zb47Mo5q`#7+{lLZjD@Bt7n0ltJHDSAETzx#!;+ zj^Kh2M=~J-CtWHlOkI9|1Ll!yREWWmBe(p}uDbG#_fd!_=pto`6jJ#)w>Aw1a25GY z$l}S;eXf%-xN&zQ>Ot`>(Ll=h%DGI*VcCg^Oh$|`)8s+6jzRTHR`8PeTx}pZ`*39= z29c4r`6AyK=2fMY8J%>IPfZn&IPAw;Lmun;%-&TGu2#1n)zz4$$zcQinh3OjfNh2x zOP^Ks(#3U3V+}`ONWo{Ifz9b(|GHasD}WkBjOgs1g@pMPS`%vqQvcZOQeL&br~Jyp zE;Z*|m@V=M$_Fs&XBXysao;wjgrf&w1+ZABannC~Z(G*5sv5{?@Gw_}=wP znyBxU5a(C%wX4WkW=tJ61_7%$;@Vf1)`1Gr>fHIR)B1lNSrcUiCBs8(8I!?09eCGr z0D%3VXQO%m2TTvH`fl&HKk;^y!u7$TQ(U{{9~V?=BIU!5Kpk9rvQjn8y{F<&|1Z2( ziK=^iW7T|_7RJ*-1(Kdv{Z1Qw-my&~jRak+Tt%{$*r4fTJoBF%`D2;u{^!x7^+xc} zLDFUD?Z5u^w8D-ST+9-Y4fbw7m*hMHDZT{R#WSoD>L|c>&sh&f%_TAO#kk*>M!ios7i#=MI2{ zqet?vR8OCr#_kn(M^>3Sg}49My)2?sGsfHs)FomJ(E)%SXi-C=*s6NX<-BGLOSz2J zyp$FsNuD&zTE-~RUPMvIOS6F>_hCExx3?+pWrUZI6d9EjgD_nyNDkjlHkbsFiVy?> z1kK>>Tw4cws!%SSSwSGg0Pq5^i9`@Mg(<&qfTppKAW=TbmkHa12N(?we0F9~69NV0 z%c1G55vwZ}QTQ5?H~oNa33Ze)?ic|z{AqTKcY9qzQ%LL(JK~K8bU(9v&}D!-P@WH9)W1#6Tk8=xajQn z`^Etud0p+j;KZjcCQYK+2b_95|Jy^0|BisR9|Pb)%jJ9$Ur+z#&+ePuB3TotG#(yw z&-3N$y;?E}p80@mQv^0qzwTtP)|;ROVyOzb$QN-6n-afUk!hnRA!LwGBAH0b*sj~4 z#*Wx63As;;hqi36HO**WaoWQRHB09{aenuxL5#I}`Sls~t$J(+7o3`Uyk)rFs(?cm zN>%-@sU1vx_xpftli1n21G4sdXJ3k6U-w2-i(V~5)OA{hjp?!}d{GT+)vk*}z8_y= zwN5X{tjmENug%;oeZzaXytGn(<@~$VlCe#+K6*OnuOFk^K=;U(h%d?NBR!|2?VFe6 z1RJLCPHgEsJY)4u9Qht%cNohvMr`+G^|~=Ihn5m!wBjY-h+}BNl1JVnt*kUzi?;3W z*WecJhjvhctC)UFBd7}2g1H{##z3ZPi2zM>r4Y-AXzO&~dlNobU>uCWp}!*3Sa2|Q zA6Gsaqf-BCUfzW|A1a?W8C9b^^6%E5Rr#glPuDKCn|LL$FfHef_XS!5mCBzEf8k6QLmOXyQu%xfW7~T9-@cgEd$@9rOZ=8Cm%3?(q-fpJo>B3l z`Hlp=kCVqHdDM;V{paO>5NL~{+O~gWDIYviUMJ&DtEL_gEK62*%zKb;*M!+=D_8!7 zM7af#R0j^&=I&6?ZX>TcYZft3u*ryWc!5Q@&KYI%s8cOeX%*itxjbQr!s>`m1MSP` z_yr(il^O6+MHGp=Sn@FxtlT?XZ{m!W6l15T`qZ9NoO&1!c4-lE#KGr#ab`qDlNQZ@ z6+>*Qu-me&PATVBw@q@7I-9oWkE>SoGMv>+%-xa}AKNOw2TS z0#bXQOy0b!`;EdiooWHBX0waZWywXjEhi+6{9$!!F7ee%TVJw84! z7Jko6pQDp?EhzFqvT^v@E!7D1zx5FS)M`#LR(2iH10uTh# zg97IN9&cRYBykotlHn-mK?5l>rM94bZ#`)BBa%Wyb1Nf`Nas6+cD|m%#MRxPNA`Tv zmP3_onq)Wmo?HK`xo3|D0dHI0-=0#DSsrHkdbY_Q^%^Vl0+Uej&ZRV?GF(K)ltjXj zxf1)O-Gb`yZv}^j2Tht7CM8)N@Npu6m(T^Le<^>U6)zI0DXXja#r!o;qYW#*-;8#M zyeP$o5QCHI3^~b7Ozsg)E2m@eS(u)?pL=HAb;`IC*Fx)M(Qj{onvlwI_u{az%r zUz2`s*w?lt29xUy+0is*%i&v3ygn9~A8p+8e=5T6xGGHZbZ)c9t21lLUnoARdT3~n zfwhnG6T1^3gNL^}TLps8Gog<=J&K>`h|v~{!Y|Gb!oz2Mcja9V+as9RJjpy4)I2v&jzM({&pl@ST7p zA&4W@%~F9KD}hk1Qu->{Bn~81grO%tg24r0V0v0rd2KrDVyRlDZJ5OVhztRTix5bR zK)4MN^tR6Tz!0+Jzy=+lD6%$oQ^+U+ls|m*us1iBK2eU&yo=9lznzCHb%i5uk%vMZ9EuFSijkqZ=of+)pJh?HBU@9GmDH;KYsP^GiI zb#(6OHhA>DvhrK67WL@|`5BKJEg$MO=;dXxUpVF|sm{^%Yr{;_(-H=6Tw~a4p3cit z$wk}0q&v5axL>v|Y)YE*Jm(DCK9eXj`vU~zA78#MfM!`{^hv%6Rab@?Pv1^Nv53y5 z)Kx*d+Kv%MV!Kob#3aFRAg>~HB*#; zHuc{w?|^pg1Ha1UT`*5GEVBCUcG&oCrQF?9hdk(VeD}k@uI;+?aLMNIEInsk$F-Bx zot3tge{Svk%fzy@j?`X4!QUgb?4mpD(aT@MP1(nd|OYL;vD>3jdfZ+=?Z9v`CFz1Zlg_oTKD zx@UeL6y4!pH~7R=c9CaVq#Soq%Wksyf%@Y5`;sfSuZTBR3GM3BsP1N;W24X2KDjCavS``j=)X#l*A5 zB}3CJV@#tKhdyH7@+-FtoO()cBRBLsyervmG z*y4r-d*e3c507v-=oes@tvqSV$@E#acfP1iv(D^4sn7arMUj)J80uZ|`tU5MDSGfs z0PH2`0pzTssg4Nzgswy8!G0D~-GzArq`wzVx_Ohu^jQuB}7!w$Vkuo)61;GlEsE%yVmpXL3C^o%z$`L&h3xoo~! zU8MC?xp_j_Om+F$l)O69Kab0FScHB`YR#L+WqTMTu?7pGv=zuxMC44T5SqaF+K0R& z5jGLCP5kTelQa?7pX98olI$ylCj(IG2Wy@OT2&Gn6-e((h)^JcHI0wH#HEWW2jHT( z+ZtdzdMELFpN7l$k2AgL-wfH)Y5&()p8j_i-2ZR)^^B9FMxcO)>S4~4gUK<{&|0ub zB+)QdH!_$Lm!4)FPR+KeJM6E^mw10x(4B3rbVicXB~sfHBe!}Fb3z+Dh<-wn9yy2} zNmoyHhvasMdh{m0Kn87!;zJle;G?RJ)}!hbtL&eA`BeiyL1RlO1izrd>WkI_kT)l- znJZ3x-G%oW5Gf@+zQ}EPmzmrGbz-=6ae1e$rl0Er-d7K9%cb&HM#?^QdGVd5lUd9{ z*b;mf2!aJ+^pw$l>?`5#rN<`-XLaP4v2uYSAOt%)0r&CO+pwk(=!A44+Y)dYOFCp~ zyqSI47}S2a*S`Ow2(#tN<(!6ZM5ghz+Zu$5kW2zI9IByT{yDb%(;Al&(WTPUXCq{T zd52{2ha)ch$^StwK6Ux>bMcPVsDY1MvnvOJvhYJC-G~B2=Bn@gCH*K8>av0eUFM&4r64uFS@d^<%79sV2d>O zC*0$vb?D*Yaq)Ydykx5vH^Q5EZzz1bOnjg?bc@1!jKV`LC_n9l@cU-NdGcspHWHXr zS4HLXoV-PRr`b?uX8Ow?hjbA_j$)eRs?kV|LJ7Xf| z=(tA5-AVTO@#Uq*nWn9qxo&8>{qd;H&fhfH9`JES=H;sXxaZ=gL4&uyt$5!u$Lo;gb<^;JHB5Z&7`JJ6 zDJbqovO!FjhjAio?G+ZNFMSi?}2lUphty>WC6jGi-ksjHv;b>F+X4gS*E z+WUCu))&_ocE4ekv*m2+?x6Fok9$|{3es)U^L53Nh1w4SuVrT+N-wW@rpb1f|FOJC z{v6e9+RVj)lQ#_*{&C$=S=Jv`QC%Y#W-vDs_y z-CbzwJH*E@$s;AdGje8_-1@@{&+B$nSfEv4$M-`$XrC$>2#5zHVQtv!;}Xp%&U2D+ zLLuOW6-dkaAgNpGs+qJ1H&s@@Aat z!GJYibHl^ewyaF=N9iDrSey4}R&>s6Yr1{#wr`vEXAbqtdU|Y1v$D;swCx7hYWV5E{;*_|ep?$X0E!O%L__yJu&HcLQ)3l?@hrK_y{(4d5xR#Ee zUGD5so7VAr69B$!z(>mXgCLrqyLa*SOVGc9a#vDf*`tjB>QG9z8s^xagD3!&4*TFi zVsVkWAme76qQFkZ`C!QA=R^?s0cC^POk_{(M<*05$oWx{ez;|%>0Q-0uVb%P&%0)t zRBN-d%b=oF4p|9nekl!h(fTyB_XFE2oJI^lX(iK;#EgysT#T$$BIY&eZTDrA{cYE@ z3Q6@w?+6Z$4r4o0aATwPv>ki^VJWH&lp`Gx{s`0xZGuOl41Bck_fyT`x$ly9?z*3Q zD)|zEvOol7ckNCzB~r3mw{9}mkOOf>0sc%Cas!7BZ4;QXD<$9VWgE9G!26=%FZ(_4 zW!c?NMw7Lgg3d3AyfLC;&QVo6=g7bsX7$|8)HrsNZhBPVruU_Td+kq{n6f3wde ziCs+iU!P9rk2qZQ^e1UQM;DT>tFsad71xD`(_6RhfNGqsxmV3{~3g|anKj0 ze<5Y+C*vMuI4sxIm(_QueyeC88FzQta_hgY`%&9m5ugZk0}G82V~2b{N$N>VzTG<;J;`90d)Z=(Q8f=|;!jr&DZqFt zEpD1@RNHyfwq5b?N=)M!g{*ltVjo%=83j$9F&6Y5MNl1)N~7tp<;W4s{}-v@F<*-L zRP-zDq@Ec(JJFx`tL3Q6 zQOQfZ6b1$;1^dlZ!)SiUiFY{P)oVwB?ls>$+Xt<5dgVn-Q+=}_M{{FQ`)j_=gVXBX zbziI=SlEewcyg;`w+)2_H3+vcfBWx_+n6v7qroF^*~|`p?*E93A5umn<5ewp&lc_x z>C3Mp<=~&c&zY*zC|2*5$79(7rP`UD(W?*5y((Q zej7$r?RE0i%XjOP4C@1Hb(Jop}$J;j|LB-y|Qex z^c~fFRUiKMX(>BInS?^taolU=4Q(E9#fmKxf?&@Ur|hIU)cpECw&J&Y(gr5EC1 zaj3-~w<3}rDJEG28P`8JASPnA4uZJTWLrR=<^JI@)P47E=b`3NPYt1`L;z2TLsof_ zjvoepzBTd39$MgxI$o|lfK&Ta?sQ~O4bd_$CJ}lQbU@_Kf?z<(`mV63ViS8zU>E?+ zTH`f&$v}`^UiJ@@JGH!LHL&T2HP3^NmdvyYsr(+`vdg=CtMgFT&~2N|Jtt{3*wM~6 zaNpS7rm9*^YnJ`89F;M0iM4WI!kD1MEVFfM%awJH^m=W7Jn>6Wi&*n>pX~O-!Xl7B z^6O}FY=!{W5*Py7D|Ts?6+nywN%CRXfhEAi&GIs9m2;L+t} z#Us_aaKl9AKH|8UD>_QN2ki83&JNWG8P1SfhTJ5mvlr z-P+&f<@jPnjLeH5HW$q*dOJi#!rwqcoFz6SB6-EdFgI=$Tjmlsh&=&-_!h}T*Qj&S z7TkZHD@c0E7J;3J5 zaw z>9adP`$QRp>NSPHni(&CcS0m2&un#AZVQT>$l%^{h`}H?RTd|J&ql+d96+p7^pP0_h?9~HXzVYmg(w!3$-0R1liHqt$-^vDfxFa<71mAZA;x`YjGtLkC7 zHdfb0uWjK=xYNSQ-aUE@wH~TuijW8T|M~CMnwl-|EWa+AS{YR&;;lAoB5!k;kkNEJ ze)y#-Bj%%Bn_tx35OIuqNJQBz8V5{A5Q}aR&OqhzYM9lok^@*V{z7ZRIgqY?X@q-dGrE>D$2P|*z_zmq5h9){8h z^C(A2xn_6a(?VGC4w0G&9>lmSQ)4Mle;n! z1afGPU}Yg62&<Y=5M!pt6ogRPFZRhMJC_!L_CoZ_f}X5bzK z4+qRPv{eMc6t&J;f_)|h73az3($qs2(*N14oxh2T`S2^OD8Dls7XCn%E@|zF5KRGr z5So<_V4Kxj7xI{xmPQ45ym)62L*svd|G~*vh5<1X=gKif2T?Gv-Q&T|kEDhsd8i*} zKG~sb*G5YKZb(4yrxnMt*!f4a$}%Aoa|5^XyqV(|3UNx3V1HH@_kTT%5UEv1k&%%G zix^-_QWzdm`+e-rg{#RJnq3&DwnMfn8aZ6Y$BcO;qLKG8%~41avTSyo2iEqkn)yuu zsh0O)-|wt=MH+k)N-hY0MPv`xU`B2!3Ih1F#pZcUO_G|f@Z8a(?-6j1zSA90Fi?H| z?iJp52*oCfDd`(Vk6w0uN_(U{I%ZsGKR}i_w`L~#Nr}E|U|sW|2i*yU^k-8zUPReU zev!_YZAR2o-N9J2R)Hi#FWuMqvI#_CCTHRmOah(XK0rJ;f@9{{~{S1 zZ{{8HNHo@%X(U|K+nde?Ih*L@Qtl9Tq^iKnlY&LFZO)$oFLns?mfThi zIDMN1aq=tlJrQ(QWU(oXS$uXZwDNaA1Mj}1dHcyQ*K`<(1-;3X*HEJpc}Qrwc2rY6 z{O%6YqB%PJ+^p~H7cW`#^tX`hmuX#mPQHw-M2TTxA)-oa@HWc1b}$qaXz&sU*xr0k z9kc$sSRL1czRplg6(Vg9j4$;UYA*;v@>j23(Frm<&(MGpMXj!mY`4&+pDCG3(QhIV zS=r5dj~<1bX_dSnUhxT`RNtaIj!`ahAesp0I0qJ!ELFuIMQ>23YYw}BD+U24gX5E1 zlSJNxB)HVm6s;!~PdCE-7e&u~`pMYNzCO9w`i8$0eU%>44hN-q;UB7QExR^$eb=Qr z#nk&G>2ekVY1E^Q+p>BE@W^}4P^?e&{f!d-=)VF-LSB_e&#pB-?r9pEJK}}A%d5;B z&KFqiihD+t9P`2)pXg4UCUDx6Cx`u?w%Xun$|b3sYX*J`J3{S^{uQL9Dg}ele?dLK z`OQ4Az);n*#<(zF@GJj-v4<>{9{HUusgsia?bw6QH}$&xdVZ2S@uBiphbN9F2Jc&0 zYmOs>2;X98O7B9X&%y(y@)Qhr#n#NkSswhwZ^k(isBnl-|2oA7KSv!Vvjc8s*~URi zIKrBth-HoN? zCN)w~v85~Ebz=e|OV`_^+U=W=XhT@#%$}&pNKf|*ar@f3CGZrVt?Y%ovPO*P+qjkv ztk2?5=1=-;m1dKY^VWHqZhc;D)M4}yH)|DYE=j!rewI;D0%_m(yZk4Y2PSH)^QAr; z<%i%ko&DHTXnmBiI7XC=E!WiJ?HSp&jIeKP~HHwg{0x9}hmM`Qj>1UI)B0Pd+mx{ukI@N!ku4ek!;l z!*{WC(8dzTVGPP{O+^Dawt1U28rETacJ9t>F>F~|v$UkDo?qvpJ39l{o#D5z#aJGf zj4{8!i;7;0NVYcU#dVh30Nd0RuO4MvJ;?}vc2C+sn#OkE;Yl~d;uq|U;Xe$9O$>UH zXJrvS_FxN!HVji4^zb>g*84C9YDnJ=RA^1hJ&vW~b-(!25Czd*a6?sRscTfUE?cu4 zoREm&Nn@yyJK!Xo02z2vuUFitT;pzoy~Bk^qukw{c|wH6lQkU|<0jGvW zJh$A1rH3>^l*+wfL*6_qbS?%D5xple61K<4eTYc|w(5D4bxABJ-`~@G5&2bTawqwW zZM4Ib0Hk+M%*4QWFWm$5{{)-@kW8{5KD=hKqow5vF56M&;Z%TY~hosJ$1L;e>44Q?Go52djR`{49?z|KN#1G^nOhH42zi)u$CIYQ(l0Op6 zafc72ouyw*;aTk5>B0xYQpGPmny(A0q#w^RHXtcfB$nYbjQ9gnZyvLfERU2UV=~y- zWUQEywf=+cP3ruYPjM>$_)7N$w^7%Cf+gW@c=Djj3?_7}P0o_h)Pb&NMYE;2hS&8h z&VM^4BZD1{L&R)vah8`!M4g$Nu^JOtt-0K=;U`QiyDXdFoAd(*C8{#YU$~THx2L9v zI5K>ApR)JnCU8h9Q`0crInbZ{OJ6_Ea6sHp>i_*x$Yi681RW?Ez zKNcvd2|H+;gtaN&V0Ol-$rn>O15){GmKaxO7g9OiIQLnPEUrR#hT(%tY!*nDLzD{v zS~`lj15IJ8Kt}hgl+kiUE==HndfMuk&~Ip%M7-7;sYVN~DU{m4XuET#fmiox=hG z3?xy**&s7+q7#)S4{10CvRn^K!Zr9#&^V84xNFNlR`d-ziM~4??Ew~Ue)oFH}HuXn7 z8-Mfki&7Xy(arP6zojJ*nel1qxiM{j!o!%a~6ZLf^$MTz%Pn^EHCTEudic zX;bgUaX$+lW5KMD8sV`8QX&!{7^Iu0+Fi)V&Q>IA z@+spFW&4*VPkv#V5IWBy=#Su7Yq$7-n7@h}Ja+Q9WoHcK!imUh`}eu)YNcU&yCuql z!!E4nuOf-6`^6Q}>-xSgm=LVs#y!SN9V%O+6plp%w(|66-pqyN?4no4gWY)~zvpI; zhK`S0t#7njPiA65qt&MU=9yTfJ+vijpKBm^VGhXbnj~IB=x0tq-c|lS&Iju z-V#={Weh>Sfws7SYCABu<~wV)!f3bRn1vxK*-l6(Av3S1ivd5F#%L1qBwQYudSk*e z1ei?11}H!P>OX)V;$QDdr|atQaU$%HjvYqB4||Df~xMCt2-+ zm`Irtz4%1~sFffV2$PrxH8(R0%lVE&@`RO6N7(wHnh|LWPal49^plkR(off`_XG{V z;ebbzxkxPoG3IJhLyNRv6zY}&~(VAm=rFMKdg(>wXpl|X~w?#^RFoDI(~NpP81XIb~^ zsD+VbZT%w0u@WF^Zy+PZ2sXs~M+*vJB zpv3l}ZBQG_XX$xrtIHNJQn)!8B)I*Uu5(_!VAk`+Xxe3q4nZP@v#cXc<99XqP&(ho z)M>u8P%5H6>ESSjrAYiLFX1hj9rJocQxgZ#_+$o#f=mdb3M0`?fTSKz9S58N+NC8w zdV`3AOItU|u6UHsV(j-rsxNs27A!Riy%Koc8d|3YW6`+?Z#4VDr7`*Lf;;bgpZGm0+fHW+6cI|WhtMrGA zvoOr)+s>0p&z-qTC#P)>uWB9@!!Gu|@MC+btmIO)@cL9>7Wy6_%}eh2%+*vBibWtj zK}lY6ZxH9U-bbs$PG_|3#>SbA>F3~ERbBFUbrzwseghZNfR0nl3<4G4M|x}9l)mlh z`gud#f!`%%)SrQcjP56fE3Y?2`6~XaPi`jlasS9UbxWC$!R;5XrUnH z+hs7D)+Qk3Nx>$nSISeBoeT6%_-|gR?~TKT$$3}g+{i-|Sz3-K^OIlh9mmV>Int=v z`utAu$2YyUaSu%`JiBPy(VdOAu1WKqHgfI0*U=3nhtTDcY7+{!AvD7n3SV=hYM9Ep zr`m1CroYWoai%OGp{Q zjB|Z19!*Hlu0*K~$vk3XQPdw{0tYrB5SGU*wBd~&mv}-Ec!b_UHwK2C7`Om5 zs+Y^fX10MqX*^VYDtcwb8-{t5d~&;xTRwq^3@I!ZOl-F6v;#aHv*^>O5QEFb4zQK9 z^S>uKFFrle%^}j$_WWtzMs>E`zTdsg zRK(h<`$2Pg?F3-()#Qw088Bxl7quBF=R0rm0PkDWIew39Vfk1BkLf*F>TsEx{|2`H z_~R7c#5sBM{+$%-kH#^K@1|alKSQ5KwwTQc7)9S|Z=S0>#dnr%jY0@fLVq8Z93*!w zrY1xX?Sx_97Vr!_6yiemba80G+afB3*9AU0t*ul)<8 zGr@|KfS5w2;DI3?Le08?pnYI4BII%GBl?H*1BV3AVXk|p@n)C?o%wN0^B6G@lo<|> z88vDbZvFmaw>9qAA;caqE~})^!{36|wLMl`R5YbWB$I^pBHPH%bQGj=s};B!lOA4UWCs9fGY1*&n%UlUuQ4{WMS|8n) zPoHaSF!q()nk8VvsMHbNFqTuh!tfuilxi%b{uFJJ<1)dP=O5KaC<7e1wo?+H>v?<2 zFF!Np&suPE=G?o%3ig#Vm^nc@&9xYz5L*J5nR$*iSP1~H2?>gBT`mLD|2%+7nyVq( zCF*DyywH9xtj(oWx)(f-nWJoGx%%gMuYttRYUH4yOqF>z7%T5gGY<;G@%b^~xEx+F zRE>hFsX41=7`fQr`k;%6$t=dUPeWIQg`LAJ_uix;B4c3&u-&|6o~D~N zZ&nZnk4mF+5um68>6;ks-#>(>5OBvK>sYfj=a*gf-osZGx=A+GA}M;V&!B&-@H`&! zt0L97_$wF)rD>-DS5o~7!#q0w(GbPOzhuyqM6>Yb|44GD76GYvaAf4A^0EP~{yz7K z3_HyWIZZ;K$Yd&q`@MWN=6|dj82A!zCS$~g+*jL6dH}@gQ|G^`=v|p#A()+MR`y_mT;&8x#C274J{Q}x?fpMCHqyG)MchN8e=mSg3nuV`-UJnlLUi-q=hMYKUB{81h6*%8unI&ak)(LeY8G+??_U4~~oaNi{0i72`&-BtRyA zj8dB-^C*G5a^|PoS#`_{l=g=MC4*x&dYx!ebTaa?H$g3pXQzsommwex|GB2j7}z^o zbN8xTl!MQp4H%;}o{IbOCcp(?1{_*=dUUZ>cu%R@gaXES zAa}h{uG-s2P!X#}SX{&gjG%byiWe}L;M#~l2fO^KuNri|@;eD< zC3F3atZma|5Nwu^S+*dLlb~jX_D%Fo9C^gb;ONko*M$_uH+FIQYCj1I&{VTW8MdEV zl@NASi~jJrf0NPW_je^OZY0Tn5hs*VJ@99hue z1?Aq1Q(XahK_g@$4LK&cl<{k-2C2LdoX?qzwx&j>ShUJ)6p7&bT3Xg84)QZoy{MBZ6c91YznHa@>1}%dSJw-g-(r=DzEv|l#u z?{MjN=x|q5R#`hPif4wDGxGmvYf^;aAKu>@zWtebtL`n%0@e;A`k@>?c}r9@BsF_E xwhtaW$j4_TtK^yQ8~@@CUYygBsUwYrsFl2D=Q3`*iZM{{S(FUxxqy literal 46417 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 Date: Wed, 11 Feb 2026 21:48:37 +0000 Subject: [PATCH 5/9] updating gluten article --- software/gluten/README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/software/gluten/README.md b/software/gluten/README.md index 61a4bfa..0b07740 100644 --- a/software/gluten/README.md +++ b/software/gluten/README.md @@ -170,8 +170,12 @@ Both **Gluten** and **Spark 3.3.1** show significant performance-per-watt improv ### Details Testing Date: Performance results are based on testing by Intel as of 1 Aug 2025 and may not reflect all publicly available security updates. -OSS Spark on SPR: 1-node, 1x Intel(R) Xeon(R) Platinum 8481C CPU @ 2.70GHz, 44 cores, c3-standard-88-lssd VM, HT On, Turbo Off, NUMA 1, Total Memory 352GB, BIOS Google, 1x Compute Engine Virtual Ethernet [gVNIC], 1x 375G nvme_card10, 1x 375G nvme_card8, 1x 375G nvme_card12, 1x 512G nvme_card-pd, 1x 375G nvme_card2, 1x 375G nvme_card5, 1x 375G nvme_card11, 1x 375G nvme_card15, 1x 375G nvme_card14, 1x 375G nvme_card0, 1x 375G nvme_card3, 1x 375G nvme_card13, 1x 375G nvme_card1, 1x 375G nvme_card4, 1x 375G nvme_card7, 1x 375G nvme_card9, 1x 375G nvme_card6, Ubuntu 24.04.2 LTS, 6.14.0-1011-gcp, TPC-DS Like SF3T, JDK 1.8, GCC 11, Spark 3.5.2, Hadoop 3.3.5, score=TPC-DS Like SF3T 2786 sec +Gluten on SPR: 1-node, 1x Intel(R) Xeon(R) Platinum 8481C CPU @ 2.70GHz, 44 cores, c3-standard-88-lssd VM, HT On, Turbo Off, NUMA 1, Total Memory 352GB, BIOS Google, 1x Compute Engine Virtual Ethernet [gVNIC], 1x 375G nvme_card10, 1x 375G nvme_card8, 1x 375G nvme_card12, 1x 512G nvme_card-pd, 1x 375G nvme_card2, 1x 375G nvme_card5, 1x 375G nvme_card11, 1x 375G nvme_card15, 1x 375G nvme_card14, 1x 375G nvme_card0, 1x 375G nvme_card3, 1x 375G nvme_card13, 1x 375G nvme_card1, 1x 375G nvme_card4, 1x 375G nvme_card7, 1x 375G nvme_card9, 1x 375G nvme_card6, Ubuntu 24.04.2 LTS, 6.14.0-1011-gcp, TPC-DS Like SF3T, JDK 1.8, GCC 11, Spark 3.5.2, Hadoop 3.3.5, score=TPC-DS Like SF3T 2786 sec -OSS Spark on GNR: 1-node, 1x Intel(R) Xeon(R) 6985P-C CPU @ 2.30GHz, 48 cores, c4-standard-96-lssd VM, HT On, Turbo Off, NUMA 2, Total Memory 360GB, BIOS Google, 1x Compute Engine Virtual Ethernet [gVNIC], 1x 375G nvme_card14, 1x 375G nvme_card1, 1x 375G nvme_card3, 1x 375G nvme_card0, 1x 375G nvme_card4, 1x 375G nvme_card8, 1x 375G nvme_card15, 1x 512G nvme_card-pd, 1x 375G nvme_card2, 1x 375G nvme_card5, 1x 375G nvme_card9, 1x 375G nvme_card11, 1x 375G nvme_card6, 1x 375G nvme_card7, 1x 375G nvme_card10, 1x 375G nvme_card12, 1x 375G nvme_card13, Ubuntu 24.04.2 LTS, 6.14.0-1012-gcp, TPC-DS Like SF3T, JDK 1.8, GCC 11, Spark 3.5.2, Hadoop 3.3.5, score=TPC-DS Like SF3T 1871 sec +Gluten on GNR: 1-node, 1x Intel(R) Xeon(R) 6985P-C CPU @ 2.30GHz, 48 cores, c4-standard-96-lssd VM, HT On, Turbo Off, NUMA 2, Total Memory 360GB, BIOS Google, 1x Compute Engine Virtual Ethernet [gVNIC], 1x 375G nvme_card14, 1x 375G nvme_card1, 1x 375G nvme_card3, 1x 375G nvme_card0, 1x 375G nvme_card4, 1x 375G nvme_card8, 1x 375G nvme_card15, 1x 512G nvme_card-pd, 1x 375G nvme_card2, 1x 375G nvme_card5, 1x 375G nvme_card9, 1x 375G nvme_card11, 1x 375G nvme_card6, 1x 375G nvme_card7, 1x 375G nvme_card10, 1x 375G nvme_card12, 1x 375G nvme_card13, Ubuntu 24.04.2 LTS, 6.14.0-1012-gcp, TPC-DS Like SF3T, JDK 1.8, GCC 11, Spark 3.5.2, Hadoop 3.3.5, score=TPC-DS Like SF3T 1871 sec + +OSS Spark on SPR: 1-node, 1x Intel(R) Xeon(R) Platinum 8481C CPU @ 2.70GHz, 44 cores, c3-standard-88-lssd VM, HT On, Turbo Off, NUMA 1, Total Memory 352GB, BIOS Google, 1x Compute Engine Virtual Ethernet [gVNIC], 1x 375G nvme_card10, 1x 375G nvme_card8, 1x 375G nvme_card12, 1x 512G nvme_card-pd, 1x 375G nvme_card2, 1x 375G nvme_card5, 1x 375G nvme_card11, 1x 375G nvme_card15, 1x 375G nvme_card14, 1x 375G nvme_card0, 1x 375G nvme_card3, 1x 375G nvme_card13, 1x 375G nvme_card1, 1x 375G nvme_card4, 1x 375G nvme_card7, 1x 375G nvme_card9, 1x 375G nvme_card6, Ubuntu 24.04.2 LTS, 6.14.0-1011-gcp, TPC-DS Like SF3T, JDK 1.8, GCC 11, Spark 3.5.2, Hadoop 3.3.5, score=TPC-DS Like SF3T 5926 sec + +OSS Spark on GNR: 1-node, 1x Intel(R) Xeon(R) 6985P-C CPU @ 2.30GHz, 48 cores, c4-standard-96-lssd VM, HT On, Turbo Off, NUMA 2, Total Memory 360GB, BIOS Google, 1x Compute Engine Virtual Ethernet [gVNIC], 1x 375G nvme_card14, 1x 375G nvme_card1, 1x 375G nvme_card3, 1x 375G nvme_card0, 1x 375G nvme_card4, 1x 375G nvme_card8, 1x 375G nvme_card15, 1x 512G nvme_card-pd, 1x 375G nvme_card2, 1x 375G nvme_card5, 1x 375G nvme_card9, 1x 375G nvme_card11, 1x 375G nvme_card6, 1x 375G nvme_card7, 1x 375G nvme_card10, 1x 375G nvme_card12, 1x 375G nvme_card13, Ubuntu 24.04.2 LTS, 6.14.0-1012-gcp, TPC-DS Like SF3T, JDK 1.8, GCC 11, Spark 3.5.2, Hadoop 3.3.5, score=TPC-DS Like SF3T 4162 sec Results may vary. \ No newline at end of file From c711cfd6954a24d8031385a225290d95fc659b4f Mon Sep 17 00:00:00 2001 From: "Gubrud, Aaron D" Date: Fri, 13 Feb 2026 17:27:37 +0000 Subject: [PATCH 6/9] fixing GNR SKU, adding more precise link from spark to gluten results --- software/gluten/README.md | 4 ++-- software/spark/README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/software/gluten/README.md b/software/gluten/README.md index 0b07740..4842a4e 100644 --- a/software/gluten/README.md +++ b/software/gluten/README.md @@ -153,7 +153,7 @@ Results may vary. ### Intel® Xeon® 6 with Efficiency Cores Summary Both **Gluten** and **Spark 3.3.1** show significant performance-per-watt improvements on the **Intel® Xeon® 6780E** compared to the **Intel® Xeon® 8358**. Additionally, **Gluten consistently outperforms Spark 3.3.1** on the same hardware, making it a compelling choice for energy-efficient data processing workloads. -## 6th Generation Intel® Xeon® 6985-C vs. 4th Generation Intel® Xeon® Platinum 8481C In Google Cloud +## 6th Generation Intel® Xeon® 6985P-C vs. 4th Generation Intel® Xeon® Platinum 8481C In Google Cloud @@ -165,7 +165,7 @@ Both **Gluten** and **Spark 3.3.1** show significant performance-per-watt improv ### Gluten + Velox vs. Spark 3.5.2 In Google Cloud - **2.13×** speedup for **TPCDS**-Like SF3TB on 4th Generation Intel® Xeon® Platinum 8481C in Google Cloud (c3-standard-88-lssd) -- **2.22×** speedup **TPCDS**-Like SF3TB on 6th Generation Intel® Xeon® 6985-C in Google Cloud (c4-standard-96-lssd) +- **2.22×** speedup **TPCDS**-Like SF3TB on 6th Generation Intel® Xeon® 6985P-C in Google Cloud (c4-standard-96-lssd) ### Details Testing Date: Performance results are based on testing by Intel as of 1 Aug 2025 and may not reflect all publicly available security updates. diff --git a/software/spark/README.md b/software/spark/README.md index 9d22039..755c8ac 100644 --- a/software/spark/README.md +++ b/software/spark/README.md @@ -167,14 +167,14 @@ For information on these knobs, please review the ## Performance Results for Intel® Xeon® 6 with Performance Cores -## 6th Generation Intel® Xeon® 6985-C vs. 4th Generation Intel® Xeon® Platinum 8481C In Google Cloud +## 6th Generation Intel® Xeon® 6985P-C vs. 4th Generation Intel® Xeon® Platinum 8481C In Google Cloud ### 6th Generation Xeon® compared to 4th Generation Xeon® with Spark 3.5.2 In Google Cloud - **1.42×** speedup for **TPCDS**-Like SF3TB - **1.19×** perf/$ improvement for **TPCDS**-Like SF3TB -- For performance with Apache Gluten, reference the [Gluten article](../gluten/README.md) in Optimization Zone. +- For performance with Apache Gluten, reference the [Gluten article](../gluten/README.md#6th-generation-intel-xeon-6985p-c-vs-4th-generation-intel-xeon-platinum-8481c-in-google-cloud) in Optimization Zone. ### Details Testing Date: Performance results are based on testing by Intel as of 1 Aug 2025 and may not reflect all publicly available security updates. From 0e3dfa7edecaf6fbba64881bafa47996b21bee14 Mon Sep 17 00:00:00 2001 From: "Gubrud, Aaron D" Date: Wed, 18 Feb 2026 16:25:55 +0000 Subject: [PATCH 7/9] toc changes, link fixes, spelling fixes, phrasing fixes --- software/gluten/README.md | 76 ++++++++++++++++++++------------------- software/spark/README.md | 12 ++++--- 2 files changed, 47 insertions(+), 41 deletions(-) diff --git a/software/gluten/README.md b/software/gluten/README.md index 4842a4e..dac15cc 100644 --- a/software/gluten/README.md +++ b/software/gluten/README.md @@ -9,18 +9,18 @@ Click to learn more about [Gluten](https://github.com/apache/incubator-gluten) a # Contents -[Parameter Tuning](#gluten-related-Parameter-Tuning) -[Intel® Optimizations](#intel-optimizations) -[Performance Results](#performance-results) +- [Parameter Tuning](#gluten-related-Parameter-Tuning) +- [Intel® Optimizations](#intel-optimizations) +- [Performance Results](#performance-results) # Gluten related Parameter Tuning -| Parameters | Description | Recommend Setting | +| Parameters | Description | Recommended Setting | | ---------- | ----------- | ----------------- | | spark.executor.instances | |Depends on total cores per host and related to cores setting | | spark.executor.cores | | Recommend to allocate 4 to 8 cores per executor. Please note that using an odd number of cores is not advised on systems with Simultaneous Multithreading(SMT) enabled| -| spark.executor.memory | | At least 0.5GB-1GB per core. Please note too small heap memory size could trigger GC and hurt the performance.| +| spark.executor.memory | | Recommend to allocate at least 0.5GB-1GB per core. Please note too small heap memory size could trigger GC and hurt the performance.| | spark.executor.memoryOverhead | | Keep a few memory size for memoryOverhead | | spark.memory.offHeap.enabled | Gluten uses offHeap memory for the native engine. | true | | spark.memory.offHeap.size | Set up offHeap memory size | In fully offload cases, please allocate as much memory as possible for offHeap. | @@ -40,7 +40,7 @@ Click to learn more about [Gluten](https://github.com/apache/incubator-gluten) a | spark.gluten.sql.columnar.physicalJoinOptimizationLevel | | 18. Intend to fallback to JVM engine when consequent join happen like q72 in TPC-DS. | | spark.gluten.sql.columnar.physicalJoinOptimizeEnable | | true | | spark.gluten.sql.columnar.numaBinding | | Set true for bare metal and false for Cloud environment. | -| spark.gluten.sql.columnar.coreRange | | This parameters only works when numaBinding is enabled. Please use numactl tool to find the detailed NUMA topology then set the number to align with the NUMA topology in the Intel® processor. | +| spark.gluten.sql.columnar.coreRange | | This parameter only works when numaBinding is enabled. Please use numactl tool to find the detailed NUMA topology then set the number to align with the NUMA topology in the Intel® processor. | ## Differences between Spark and Gluten in the Memory setting In Spark, the total executor memory is calculated as: @@ -88,7 +88,10 @@ Please refer to [Velox HBM](https://apache.github.io/incubator-gluten/get-starte ## Performance Results for Intel® Xeon® 6 with Performance Cores -## Intel® Xeon® 6960P vs. 5th Generation Intel® Xeon® 8592+ +- [6th Generation Intel® Xeon® 6960P vs. 5th Generation Intel® Xeon® 8592+](#6th-generation-intel-xeon-6960p-vs-5th-generation-intel-xeon-8592) +- [6th Generation Intel® Xeon® 6985P-C vs. 4th Generation Intel® Xeon® Platinum 8481C In Google Cloud](#6th-generation-intel-xeon-6985p-c-vs-4th-generation-intel-xeon-platinum-8481c-in-google-cloud) + +## 6th Generation Intel® Xeon® 6960P vs. 5th Generation Intel® Xeon® 8592+ @@ -118,12 +121,40 @@ Gluten on GNR: 1-node, 2x Intel(R) Xeon(R) 6960P, 72 cores, HT On, Turbo On, NUM Results may vary. +## 6th Generation Intel® Xeon® 6985P-C vs. 4th Generation Intel® Xeon® Platinum 8481C In Google Cloud + + + +### 6th Generation Xeon® compared to 4th Generation Xeon® with Gluten + Velox In Google Cloud +- **1.49×** speedup for **TPCDS**-Like SF3TB +- **1.25×** perf/$ improvement for **TPCDS**-Like SF3TB + + + +### Gluten + Velox vs. Spark 3.5.2 In Google Cloud +- **2.13×** speedup for **TPCDS**-Like SF3TB on 4th Generation Intel® Xeon® Platinum 8481C in Google Cloud (c3-standard-88-lssd) +- **2.22×** speedup **TPCDS**-Like SF3TB on 6th Generation Intel® Xeon® 6985P-C in Google Cloud (c4-standard-96-lssd) + +### Details +Testing Date: Performance results are based on testing by Intel as of 1 Aug 2025 and may not reflect all publicly available security updates. + +Gluten on SPR: 1-node, 1x Intel(R) Xeon(R) Platinum 8481C CPU @ 2.70GHz, 44 cores, c3-standard-88-lssd VM, HT On, Turbo Off, NUMA 1, Total Memory 352GB, BIOS Google, 1x Compute Engine Virtual Ethernet [gVNIC], 1x 375G nvme_card10, 1x 375G nvme_card8, 1x 375G nvme_card12, 1x 512G nvme_card-pd, 1x 375G nvme_card2, 1x 375G nvme_card5, 1x 375G nvme_card11, 1x 375G nvme_card15, 1x 375G nvme_card14, 1x 375G nvme_card0, 1x 375G nvme_card3, 1x 375G nvme_card13, 1x 375G nvme_card1, 1x 375G nvme_card4, 1x 375G nvme_card7, 1x 375G nvme_card9, 1x 375G nvme_card6, Ubuntu 24.04.2 LTS, 6.14.0-1011-gcp, TPC-DS Like SF3T, JDK 1.8, GCC 11, Spark 3.5.2, Hadoop 3.3.5, score=TPC-DS Like SF3T 2786 sec + +Gluten on GNR: 1-node, 1x Intel(R) Xeon(R) 6985P-C CPU @ 2.30GHz, 48 cores, c4-standard-96-lssd VM, HT On, Turbo Off, NUMA 2, Total Memory 360GB, BIOS Google, 1x Compute Engine Virtual Ethernet [gVNIC], 1x 375G nvme_card14, 1x 375G nvme_card1, 1x 375G nvme_card3, 1x 375G nvme_card0, 1x 375G nvme_card4, 1x 375G nvme_card8, 1x 375G nvme_card15, 1x 512G nvme_card-pd, 1x 375G nvme_card2, 1x 375G nvme_card5, 1x 375G nvme_card9, 1x 375G nvme_card11, 1x 375G nvme_card6, 1x 375G nvme_card7, 1x 375G nvme_card10, 1x 375G nvme_card12, 1x 375G nvme_card13, Ubuntu 24.04.2 LTS, 6.14.0-1012-gcp, TPC-DS Like SF3T, JDK 1.8, GCC 11, Spark 3.5.2, Hadoop 3.3.5, score=TPC-DS Like SF3T 1871 sec + +OSS Spark on SPR: 1-node, 1x Intel(R) Xeon(R) Platinum 8481C CPU @ 2.70GHz, 44 cores, c3-standard-88-lssd VM, HT On, Turbo Off, NUMA 1, Total Memory 352GB, BIOS Google, 1x Compute Engine Virtual Ethernet [gVNIC], 1x 375G nvme_card10, 1x 375G nvme_card8, 1x 375G nvme_card12, 1x 512G nvme_card-pd, 1x 375G nvme_card2, 1x 375G nvme_card5, 1x 375G nvme_card11, 1x 375G nvme_card15, 1x 375G nvme_card14, 1x 375G nvme_card0, 1x 375G nvme_card3, 1x 375G nvme_card13, 1x 375G nvme_card1, 1x 375G nvme_card4, 1x 375G nvme_card7, 1x 375G nvme_card9, 1x 375G nvme_card6, Ubuntu 24.04.2 LTS, 6.14.0-1011-gcp, TPC-DS Like SF3T, JDK 1.8, GCC 11, Spark 3.5.2, Hadoop 3.3.5, score=TPC-DS Like SF3T 5926 sec + +OSS Spark on GNR: 1-node, 1x Intel(R) Xeon(R) 6985P-C CPU @ 2.30GHz, 48 cores, c4-standard-96-lssd VM, HT On, Turbo Off, NUMA 2, Total Memory 360GB, BIOS Google, 1x Compute Engine Virtual Ethernet [gVNIC], 1x 375G nvme_card14, 1x 375G nvme_card1, 1x 375G nvme_card3, 1x 375G nvme_card0, 1x 375G nvme_card4, 1x 375G nvme_card8, 1x 375G nvme_card15, 1x 512G nvme_card-pd, 1x 375G nvme_card2, 1x 375G nvme_card5, 1x 375G nvme_card9, 1x 375G nvme_card11, 1x 375G nvme_card6, 1x 375G nvme_card7, 1x 375G nvme_card10, 1x 375G nvme_card12, 1x 375G nvme_card13, Ubuntu 24.04.2 LTS, 6.14.0-1012-gcp, TPC-DS Like SF3T, JDK 1.8, GCC 11, Spark 3.5.2, Hadoop 3.3.5, score=TPC-DS Like SF3T 4162 sec + +Results may vary. + ### Intel® Xeon® 6 with Performance Cores Summary The combination of **Intel® Xeon® 6 with Performance Cores** and **Gluten + Velox** demonstrates consistent performance advantages making it a strong candidate for high-performance data processing workloads. ## Performance Results for Intel® Xeon® 6 with Efficiency Cores +- [6th Generation Intel® Xeon® 6780E vs. 3rd Generation Intel® Xeon®](#6th-generation-intel-xeon-6780e-vs-3rd-generation-intel-xeon) -### Intel® Xeon® 6780E vs. 3rd Generation Intel® Xeon® +### 6th Generation Intel® Xeon® 6780E vs. 3rd Generation Intel® Xeon® @@ -151,31 +182,4 @@ SRF: 1-node, 2x Intel(R) Xeon(R) 6780E, 144 cores, HT Off, Turbo On, NUMA 2, Int Results may vary. ### Intel® Xeon® 6 with Efficiency Cores Summary -Both **Gluten** and **Spark 3.3.1** show significant performance-per-watt improvements on the **Intel® Xeon® 6780E** compared to the **Intel® Xeon® 8358**. Additionally, **Gluten consistently outperforms Spark 3.3.1** on the same hardware, making it a compelling choice for energy-efficient data processing workloads. - -## 6th Generation Intel® Xeon® 6985P-C vs. 4th Generation Intel® Xeon® Platinum 8481C In Google Cloud - - - -### 6th Generation Xeon® compared to 4th Generation Xeon® with Spark 3.5.2 In Google Cloud -- **1.49×** speedup for **TPCDS**-Like SF3TB -- **1.25×** perf/$ improvement for **TPCDS**-Like SF3TB - - - -### Gluten + Velox vs. Spark 3.5.2 In Google Cloud -- **2.13×** speedup for **TPCDS**-Like SF3TB on 4th Generation Intel® Xeon® Platinum 8481C in Google Cloud (c3-standard-88-lssd) -- **2.22×** speedup **TPCDS**-Like SF3TB on 6th Generation Intel® Xeon® 6985P-C in Google Cloud (c4-standard-96-lssd) - -### Details -Testing Date: Performance results are based on testing by Intel as of 1 Aug 2025 and may not reflect all publicly available security updates. - -Gluten on SPR: 1-node, 1x Intel(R) Xeon(R) Platinum 8481C CPU @ 2.70GHz, 44 cores, c3-standard-88-lssd VM, HT On, Turbo Off, NUMA 1, Total Memory 352GB, BIOS Google, 1x Compute Engine Virtual Ethernet [gVNIC], 1x 375G nvme_card10, 1x 375G nvme_card8, 1x 375G nvme_card12, 1x 512G nvme_card-pd, 1x 375G nvme_card2, 1x 375G nvme_card5, 1x 375G nvme_card11, 1x 375G nvme_card15, 1x 375G nvme_card14, 1x 375G nvme_card0, 1x 375G nvme_card3, 1x 375G nvme_card13, 1x 375G nvme_card1, 1x 375G nvme_card4, 1x 375G nvme_card7, 1x 375G nvme_card9, 1x 375G nvme_card6, Ubuntu 24.04.2 LTS, 6.14.0-1011-gcp, TPC-DS Like SF3T, JDK 1.8, GCC 11, Spark 3.5.2, Hadoop 3.3.5, score=TPC-DS Like SF3T 2786 sec - -Gluten on GNR: 1-node, 1x Intel(R) Xeon(R) 6985P-C CPU @ 2.30GHz, 48 cores, c4-standard-96-lssd VM, HT On, Turbo Off, NUMA 2, Total Memory 360GB, BIOS Google, 1x Compute Engine Virtual Ethernet [gVNIC], 1x 375G nvme_card14, 1x 375G nvme_card1, 1x 375G nvme_card3, 1x 375G nvme_card0, 1x 375G nvme_card4, 1x 375G nvme_card8, 1x 375G nvme_card15, 1x 512G nvme_card-pd, 1x 375G nvme_card2, 1x 375G nvme_card5, 1x 375G nvme_card9, 1x 375G nvme_card11, 1x 375G nvme_card6, 1x 375G nvme_card7, 1x 375G nvme_card10, 1x 375G nvme_card12, 1x 375G nvme_card13, Ubuntu 24.04.2 LTS, 6.14.0-1012-gcp, TPC-DS Like SF3T, JDK 1.8, GCC 11, Spark 3.5.2, Hadoop 3.3.5, score=TPC-DS Like SF3T 1871 sec - -OSS Spark on SPR: 1-node, 1x Intel(R) Xeon(R) Platinum 8481C CPU @ 2.70GHz, 44 cores, c3-standard-88-lssd VM, HT On, Turbo Off, NUMA 1, Total Memory 352GB, BIOS Google, 1x Compute Engine Virtual Ethernet [gVNIC], 1x 375G nvme_card10, 1x 375G nvme_card8, 1x 375G nvme_card12, 1x 512G nvme_card-pd, 1x 375G nvme_card2, 1x 375G nvme_card5, 1x 375G nvme_card11, 1x 375G nvme_card15, 1x 375G nvme_card14, 1x 375G nvme_card0, 1x 375G nvme_card3, 1x 375G nvme_card13, 1x 375G nvme_card1, 1x 375G nvme_card4, 1x 375G nvme_card7, 1x 375G nvme_card9, 1x 375G nvme_card6, Ubuntu 24.04.2 LTS, 6.14.0-1011-gcp, TPC-DS Like SF3T, JDK 1.8, GCC 11, Spark 3.5.2, Hadoop 3.3.5, score=TPC-DS Like SF3T 5926 sec - -OSS Spark on GNR: 1-node, 1x Intel(R) Xeon(R) 6985P-C CPU @ 2.30GHz, 48 cores, c4-standard-96-lssd VM, HT On, Turbo Off, NUMA 2, Total Memory 360GB, BIOS Google, 1x Compute Engine Virtual Ethernet [gVNIC], 1x 375G nvme_card14, 1x 375G nvme_card1, 1x 375G nvme_card3, 1x 375G nvme_card0, 1x 375G nvme_card4, 1x 375G nvme_card8, 1x 375G nvme_card15, 1x 512G nvme_card-pd, 1x 375G nvme_card2, 1x 375G nvme_card5, 1x 375G nvme_card9, 1x 375G nvme_card11, 1x 375G nvme_card6, 1x 375G nvme_card7, 1x 375G nvme_card10, 1x 375G nvme_card12, 1x 375G nvme_card13, Ubuntu 24.04.2 LTS, 6.14.0-1012-gcp, TPC-DS Like SF3T, JDK 1.8, GCC 11, Spark 3.5.2, Hadoop 3.3.5, score=TPC-DS Like SF3T 4162 sec - -Results may vary. \ No newline at end of file +Both **Gluten** and **Spark 3.3.1** show significant performance-per-watt improvements on the **Intel® Xeon® 6780E** compared to the **Intel® Xeon® 8358**. Additionally, **Gluten consistently outperforms Spark 3.3.1** on the same hardware, making it a compelling choice for energy-efficient data processing workloads. \ No newline at end of file diff --git a/software/spark/README.md b/software/spark/README.md index 755c8ac..1e2b6fb 100644 --- a/software/spark/README.md +++ b/software/spark/README.md @@ -21,11 +21,12 @@ focused on TPC-DS, please reference - [Storage Configuration](#storage-configuration) - [Network Configuration](#network-configuration) - [Software Tuning](#software-tuning) - - [Linux Kernel Optimization Settings](#linux-kernel-optimization-settings) - - [Configure `ulimit`](#configure-ulimit) - - [Configure Transparent Huge Pages](#configure-transparent-huge-pages) + - [Linux Optimization Settings](#linux-optimization-settings) + - [Configure `limits.conf`](#configure-limitsconf) + - [CConfigure Huge Pages](#configure-huge-pages) - [Spark Parameter Tuning](#spark-parameter-tuning) - [Memory Tuning](#memory-tuning) +- [Performance Results](#performance-results) # References @@ -124,7 +125,7 @@ good candidates for experimentation in your deployment. For information on these knobs, please review the [Spark documentation](https://spark.apache.org/docs/latest/configuration.html). -| Parameters | Description & Recommend Setting | +| Parameters | Description & Recommended Setting | |:-------|:--------------------------------| | spark.executor.cores | The number of cores to use on each executor.

**Recommended:** Recommend to allocate 4 to 8 cores per executor. Please note that using an odd number of cores is not advised on systems with Simultaneous Multithreading (SMT) enabled | | spark.executor.instances | The number of executors to launch for this session.

**Recommended:** Divide the output of `nproc` by the number of cores per executor (`spark.executor.cores`) | @@ -156,7 +157,7 @@ some experimentation. For information on these knobs, please review the [Spark documentation](https://spark.apache.org/docs/latest/configuration.html). -| Parameters | Description & Recommend Setting | +| Parameters | Description & Recommended Setting | |:-----------|:--------------------------------| | spark.executor.memoryOverhead | Memory that accounts for things like VM overheads, interned strings, other native overheads, etc.

**Recommended:** 1g | | spark.executor.memory | Amount of memory to use per executor process

**Recommended:** 35% of total memory, divided by number of executors | @@ -166,6 +167,7 @@ For information on these knobs, please review the # Performance Results ## Performance Results for Intel® Xeon® 6 with Performance Cores +- [6th Generation Intel® Xeon® 6985P-C vs. 4th Generation Intel® Xeon® Platinum 8481C In Google Cloud](#6th-generation-intel-xeon-6985p-c-vs-4th-generation-intel-xeon-platinum-8481c-in-google-cloud) ## 6th Generation Intel® Xeon® 6985P-C vs. 4th Generation Intel® Xeon® Platinum 8481C In Google Cloud From c01272fbd42428c4d6e1f42efbe9e729e1a98ac2 Mon Sep 17 00:00:00 2001 From: "Gubrud, Aaron D" Date: Wed, 18 Feb 2026 16:31:47 +0000 Subject: [PATCH 8/9] spelling, phrasing adjustments --- software/spark/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/software/spark/README.md b/software/spark/README.md index 1e2b6fb..2777b05 100644 --- a/software/spark/README.md +++ b/software/spark/README.md @@ -23,7 +23,7 @@ focused on TPC-DS, please reference - [Software Tuning](#software-tuning) - [Linux Optimization Settings](#linux-optimization-settings) - [Configure `limits.conf`](#configure-limitsconf) - - [CConfigure Huge Pages](#configure-huge-pages) + - [Configure Huge Pages](#configure-huge-pages) - [Spark Parameter Tuning](#spark-parameter-tuning) - [Memory Tuning](#memory-tuning) - [Performance Results](#performance-results) @@ -176,7 +176,7 @@ For information on these knobs, please review the ### 6th Generation Xeon® compared to 4th Generation Xeon® with Spark 3.5.2 In Google Cloud - **1.42×** speedup for **TPCDS**-Like SF3TB - **1.19×** perf/$ improvement for **TPCDS**-Like SF3TB -- For performance with Apache Gluten, reference the [Gluten article](../gluten/README.md#6th-generation-intel-xeon-6985p-c-vs-4th-generation-intel-xeon-platinum-8481c-in-google-cloud) in Optimization Zone. +- For 6th Generation Xeon® performance compared to 4th Generation Xeon® in perfomance Google Cloud using Apache Gluten, reference the [Gluten article](../gluten/README.md#6th-generation-intel-xeon-6985p-c-vs-4th-generation-intel-xeon-platinum-8481c-in-google-cloud) in Optimization Zone. ### Details Testing Date: Performance results are based on testing by Intel as of 1 Aug 2025 and may not reflect all publicly available security updates. From 74394222444004eafd52a12be677927c45e93c0f Mon Sep 17 00:00:00 2001 From: "Gubrud, Aaron D" Date: Wed, 18 Feb 2026 17:52:53 +0000 Subject: [PATCH 9/9] tweaking toc a bit more --- software/gluten/README.md | 3 +++ software/spark/README.md | 2 ++ 2 files changed, 5 insertions(+) diff --git a/software/gluten/README.md b/software/gluten/README.md index dac15cc..e9876a8 100644 --- a/software/gluten/README.md +++ b/software/gluten/README.md @@ -86,6 +86,9 @@ Please refer to [Velox HBM](https://apache.github.io/incubator-gluten/get-starte # Performance Results +- [Performance Results for Intel® Xeon® 6 with Performance Cores](#performance-results-for-intel-xeon-6-with-performance-cores) +- [Performance Results for Intel® Xeon® 6 with Efficiency Cores](#performance-results-for-intel-xeon-6-with-efficiency-cores) + ## Performance Results for Intel® Xeon® 6 with Performance Cores - [6th Generation Intel® Xeon® 6960P vs. 5th Generation Intel® Xeon® 8592+](#6th-generation-intel-xeon-6960p-vs-5th-generation-intel-xeon-8592) diff --git a/software/spark/README.md b/software/spark/README.md index 2777b05..f96f416 100644 --- a/software/spark/README.md +++ b/software/spark/README.md @@ -166,6 +166,8 @@ For information on these knobs, please review the # Performance Results +[Performance Results for Intel® Xeon® 6 with Performance Cores](#performance-results-for-intel-xeon-6-with-performance-cores) + ## Performance Results for Intel® Xeon® 6 with Performance Cores - [6th Generation Intel® Xeon® 6985P-C vs. 4th Generation Intel® Xeon® Platinum 8481C In Google Cloud](#6th-generation-intel-xeon-6985p-c-vs-4th-generation-intel-xeon-platinum-8481c-in-google-cloud)