From 591d803c81a898f9c35524f3e47be76c22aa6382 Mon Sep 17 00:00:00 2001 From: "Eric W. Tramel" Date: Thu, 14 May 2026 10:46:34 -0400 Subject: [PATCH 01/33] docs: add async scheduling epic UML reference Signed-off-by: Eric W. Tramel --- .../AsyncSchedulingEpicComponent.png | Bin 0 -> 53001 bytes .../AsyncSchedulingEpicIssueMap.png | Bin 0 -> 27924 bytes .../AsyncSchedulingEpicRuntimeSequence.png | Bin 0 -> 107275 bytes ...ncSchedulingRequestAdmissionClassModel.png | Bin 0 -> 70268 bytes ...ncSchedulingSupportContractsClassModel.png | Bin 0 -> 48023 bytes ...AsyncSchedulingTaskAdmissionClassModel.png | Bin 0 -> 60292 bytes architecture/async-scheduling/README.md | 47 ++ .../async-scheduling-epic.puml | 584 ++++++++++++++++++ 8 files changed, 631 insertions(+) create mode 100644 architecture/async-scheduling/AsyncSchedulingEpicComponent.png create mode 100644 architecture/async-scheduling/AsyncSchedulingEpicIssueMap.png create mode 100644 architecture/async-scheduling/AsyncSchedulingEpicRuntimeSequence.png create mode 100644 architecture/async-scheduling/AsyncSchedulingRequestAdmissionClassModel.png create mode 100644 architecture/async-scheduling/AsyncSchedulingSupportContractsClassModel.png create mode 100644 architecture/async-scheduling/AsyncSchedulingTaskAdmissionClassModel.png create mode 100644 architecture/async-scheduling/README.md create mode 100644 architecture/async-scheduling/async-scheduling-epic.puml diff --git a/architecture/async-scheduling/AsyncSchedulingEpicComponent.png b/architecture/async-scheduling/AsyncSchedulingEpicComponent.png new file mode 100644 index 0000000000000000000000000000000000000000..4d4a20804aec5bbbfa4af33bd2ea99369db3a33a GIT binary patch literal 53001 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ξ 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 ZpV92b$|C3MmwOn1z|+;wWt~$(69C>CqjvxR literal 0 HcmV?d00001 diff --git a/architecture/async-scheduling/AsyncSchedulingEpicIssueMap.png b/architecture/async-scheduling/AsyncSchedulingEpicIssueMap.png new file mode 100644 index 0000000000000000000000000000000000000000..ab3772d7cd0b7c0cab779e9112351b8344bbf193 GIT binary patch literal 27924 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 z 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 literal 0 HcmV?d00001 diff --git a/architecture/async-scheduling/AsyncSchedulingEpicRuntimeSequence.png b/architecture/async-scheduling/AsyncSchedulingEpicRuntimeSequence.png new file mode 100644 index 0000000000000000000000000000000000000000..615b5fc79b6d143dc7eb5913a429cf83b6de00c8 GIT binary patch literal 107275 zcmc$_Wn5d&)-Xzywpb}GE~ONAC~j>jPzYAsDNu^L2df~ZSh3(vfB?ZQXz@aD0>LQ~ z+#$i?4edG4eLkGud;jNtx$DcG-|X3IW|q&|vqDsr

^7KET1jA&`IjMh*Lz#=*g5 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%0A(WVwav4}z5W20OJC$2}SC!v^@s@Np>) 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 literal 0 HcmV?d00001 diff --git a/architecture/async-scheduling/AsyncSchedulingRequestAdmissionClassModel.png b/architecture/async-scheduling/AsyncSchedulingRequestAdmissionClassModel.png new file mode 100644 index 0000000000000000000000000000000000000000..db8c036f8b7c0c2eaf04e8bf6948f3b1fc1d510a GIT binary patch literal 70268 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 z znnZyDOqQ+J6D^TXlAC+I7=@;HGFBbLAg{p(*gVmd%|Y&rc4lY~=T%4!`oDA{;CZdi zC);AZNG;$i);UZ*dhCc9xff^=`W`5_Wyov#V2{G;7ex*$TYA7qmYpyiTniQf7Hqvt zY*?Co3tn|URt72AdTDW0lD2P0pru{=X>8ZjNZob0=a_)t?Ta$>?o6>4THSpb%+FTj zKw#VhhHVs~LCIh}xv{YGV?(D){eM5}m*fR)_%&@!q%J&MvEo12UzXv*TDjC3=>BA? zGtM|6OP0+UKE_x@-SCuO-$&V+K082!6qS_v-p{E!N zkiU+(f8eU~pukW^U^zSylI(Q_wxG4~2j0BzS$fL4ssuLl3mtF#4EFm$##T)tgvB#qw zx&r^NvA2$^s{8symq?0q3W6XaUDAzoBS?1$NO!k%OCu@W-QA6Jry$+Eflb_n&+~iF zdEayH=iYz!ntQG}#++-;5#R5ap7#L_b}#ZyH&vcKJDuRo9+ZT$iHl~Qt>AY`Yw$;y zi-snh^p51XczMFOct$}=*+g!~Ppc-c3+mX<8_#t>JT#MlYR4NSXW z@M2q%ONcTjD9YRaq~*@-`ZA;bDQ`@ZJCZA-QVlC(M#a}tIdnSiE45D+X(6;3I+8fo)w7*0S-tIUkcAW~7 zF=3TM)cFYWnmq*l2rtZk7Z1kpb8cP2A!y5Ht=2c8HLvs=^b#X5!9KvnbY376Y5I&4 zjjegSXEccP#fN$PCb2eX3>N3{2JZ_80Ca26?gaoC)YW@Igio3#_Gp5_g1;ScF49c^ z&?LfoI@lb;oc%)0U^X?|udwgZO@8-+zsvFo{e&f1#{dM%+y7fXlMDbL(5`pu|9f`G z670>tB>_Cw-(IUAtvvmh&`8v_3)9)k%lfIQv95E6eNh<)La_Xtk#orz)@LFDBXWzl z_3K3wGE&PHyt&HEo?zCh#o}C`YWNXM;_Ii;T!lGfm-~J|jP39ZKYAtr?Hu^ONb{dj zzySavhjbe{u1*DlU*Ya)Ni0K!FLe8*YJU_bBEZ!S~81!?12pha)k+yyyG|<#IyZul_%#ntAxf8 zexx8CYR=e*@XRYR<0SqWu*7(NV~Cc$n~+qP9CoBYnOr@zLkxSz8_=l%4_M>i(xf=X zmo>boB3RBD!!@=?fO#YqTBCaoIC~RDg7>S#p#Dd!|0M(>wlEJ2@LlirUrE7c&%m7! z07!m=t`Y#if;#(GP@iu>VgT^rNgK({t*`(h)xT5!pI-md1u4>L%d;??nXC7}xBiji z@FO2i_w+X8X9>^3!24NYdR}8hwu!R0qhacDyY~Qa7-l<&N#Q z&vFB4EzZL`#NNnY@4Y6Q7mF7HvxarAmLU;eCiuX|M`vewzprQgv*>ecdKdyl>RL%( zZRr4A)wZ`Kj+RaHJEcyvM2}9tI}KQsFZWa7b#4!?&)rxqDt2nwr(SS-y3(|HIGx(m zHOE{E@hE-9d&BKsQ&_DnBa;5n7AhBTB+>A@ z4xXX?0Nf|JDoWVpA-Iy`3)Z3K6hk?gmcj&0kt zVluYKj(cV%EkrA%ygwAbTozyeCwZUJJd2Y02U{O=srU58zi=F7L*lZa)yVrAXUOsi zqZVJCP!6}w+5*boxOOw3K0r@*|LhJ_L3bx}pjDQSN8zP#r}nmMDj0#Ke}<+<9}i6H zvQ)M_MC(c;-xqj)U*I&`dGv73KA)=6Vt<*NQdTHdOhC)CZHU6Ff?IoFxsJ>v`20uk zc~IJ2nTr~k(Wm<|>a5$U%{@OZccxk?F@w3~mo3+I{maMOOhsa!TI$UT>J_!yYMEIICDb0 z$FpsQIa__AR(xpXS6ay3S$bKx$3sp%xjB=~tb&cgu`dJNc7KbaQXYTvqy_0IcPtkg zkc&Pz$zX;IT@5{)ah*vO5pDZ;@-rIVHaU4mzgHz<;z%nbneT_pMOP*%nsOCC4$jpz zy?aIB0z#!eCjAtj$Nq1ZnrVe+q;bE9%b7A3;z3ZiO%(02+tNw+wWjs<0;$FhbL*H$ zh0m_c@#NOgU5Amw;pFLQn<0c`S})WeLkoIA%63kXjEVWf7b$Xz{a&n?3P)wou71LH z#A`#FdfKG-`@ScYM;%QoH^AusiSK5Z%OcV?<#!rOiOasE{fvQd#C*Ew($F?59ltHB z=MY+KC$nsc>!!0!Y~nDEd-KmzYgn1)>%wVA{|@iCqqR3G7Am4 zH+5yQ$&P1yH0YXaEb#b#fbD_XyNV^vgGZ>&MknrpTbY(5yK=o@yX+wQXxkMjCvIC9 zHxr+ls1qle0Dr=%E7j`DdBfxTwGrM1S)RwU&~nxFGT&otB2lflq<6TpN4_+4;4zw` zka|^W6Cic0=I#XOzR2LcN9CztKPQ2Tvs}W)D8}nlM17E(JaoGmmdK;Km*x3X7|Umv zeEenOOX=@`qKz++Vg!2y1G$Avo7Ia%T^vRbFa{$w)bq?Ebqo`A z+OiIAH}`vS68I~Gmexjx97l5Y&H}@Ti`kkAJxmTv#t46~H|#nQ-qWrJmZi8}>B#Z& zYYtSmLL&Rp)BAWs^MsI={uHR*##(+q^H-X&Wy&2WlM-O>UV-hxj@iz9C$c|TOW*53OKZX((dRMLpnIJ_fNlBZ%Ebla>%g^wnQ)~>UrRPJSKUq*Kx3tH-#ZbiYJg?dTMFnoa1?NFb0Jd)q8 zf7HcrIs!+U`td@vz=yk2TO3!`3=*cPd|CHe$)lr*UdmU3HRnlG6V7eX1Z`XT2^6KK zlm+fqpdDKfy2Bo9N^OSgDXS5IgT0{t&JTe#I$qHYCujITd`qu9Vbe6*`nUm+E_DoL)#B_N#TX{ z)IG-!399Hp-hDX^DcUbM#$4MZ#M+kcZYq;&4yASDmV)b6TnjWF-8jX*vW2<7>d1b* z%gNw=ptJ?ImM(5w;8Wg&`XG8BaP$qD)rUiM>B6e=D77flkgKSvrAN9dlFFV98}C8|qQ}xayWrEDzxP&5TJbs&coT-wbW;jNw?C9cHoB{j-^4cllnPgR z&Nfv-skNW7o$Q92bHQZ$5|vzek@s4Y1i`Wk~pOFa7Tmbfs< z@GHfx=8cmoC(rR-&YNCskl0t# zV)nI2Z@VazdHZSm^Sh4wU+=3k$8jN;$T2XmXrMKkG}Qsq z@ZCd*&ogo&H!^S5@hHLf_S6S~-7X4N%v!1Yw}-7Czk@D6eP%j(-ls6-{yuE`;LrIi z(PZpq*ZvehbhxIdpm>q-k+1Y;;m1^Xp#2>fJ`s%JQYFEwJa#6MKjh3bwdDQ8 zl#0gFFM`>ul}`qH97A?j@EmG`aqq|BuU{?5m-|yHMKA{=N8YLfjJOsLi@2};k2c`oOodIRq^v(GnRnz? zrKnR)WpIW46sY?sV=V|U;-$C;2sA8Qy}zTbX1AA6bpFXFB-}Zs#XCIiR|2@C0p?ss*hufE>|jO<&~3?zbCm!+~5pd03*K%03qO zq`-+rvHuUm-jUFtZ&chS3KOqq95+}Hs0-H-dcRdd=ubey}G+= z@MHWPo)alH9*qrG+rzS!(`>;yb|FC&fl|zn6gPTP-j!&bi<5Md(q3?gwy(nT<5sH+ zf#=?Yv|J{rotZI2NfHmg>S?*C;1P=>`Kl8`xp#ubvO|3k_In(N=9k_-K$BeW{fYh8 zQI#kq1KrTy7GNy1WuGbJQhR3P1}$OXEW)wU*6EEtpK-s<>$y z+GHImvqKJ}TfL2IZ-8MMvg402Wx@E8e+_u=A2SN1Eau`bKmY46k$!?H=W!(L9x-zx z1OPtJ)$y6gcuV{Ys73)Dtr+X6+p?0OOAD*#zycQiu=iMXNfPB1u^BhJR?8ui=dXg? z1isR6sl+d*>c`7HeI|W!R+mz5dQo+jiLFq8JNQWkzg!rC6Q#o~onn)Yn{?y_xMFvc z+aHmSU2wR?GFIY5rvq1{LP;e}`w=tJZLL=?f#EK%$>TK=t@##}!g1b{t!w_wg_R&C z_(YyDt#z(Ua)d{gE(if%-%ebzqr3DQ>pIL)a}I1FHT#mA!jjOreaKD+Fm`muc5j)8 zn|~X9rELjWvQk{Rd`OPO#X*-lr~0CclQD7JY-g{H|H5Wra>eyF=^k zs++V_Y>jB-naJe1Z*6n{N&B6{?(~{&st1+nf*$z#c@5vNqmTP2Tzk>Fl|f?7HmHHv zUsOWEX?pj`$)(Fw1;MoU`|dX3h&C^WA7@ZAvfDwK$rVSeMA*% zsFE0wvV#;7*>Fu4IU+BXM)V7|W#f(mWL^D-Bu@tT{ez*AwvVneJUfXD>lpG*w+b&S zY5IDV)-OZ!Tyq$kZN;^yNdM4?nLy}!WYULcgfHTfEpH)CZ8?FaMFk3AIT!{wiBEzk zO?~LfS4F{G#e|}X7J>X8JrL=TXSBHHiNZ}`#9F`!SeW@EB^2*74g9>tcl|$w-|k-M zxyF^Zyrt5^_fTa#x=33|{Ubp%u42h`TX!MWC@@-bG^$b?zVMy)OAk$kGbjuVbXt^X z2AS-2*-AS0b5+`F`uk`6OMp>8`X@xa2#Dq9Z)YJDHZ>nTB`D0xUME2Q%Sc@knv5`T zx=Yy^4OCg0b6J*6FlWLptHbYH$nRR|LM+k;LgD%}HE&~*!-#c&lb1u50zrjUTC^=i z=dM)!rPzcjIAtpD0uSQ^_Xd&vJYdY9J8ribxqZDA$g5FPQzJ|jBdg@|D)eDFb?#Yq z2_-EK<~raFV_ak|AaD2`pWLT{1tj7|c#;Zx@Psr{Jko#DPItyryK>Csjp_S5H-xlW zR+`r;wW075FF=L%bP*xOw*HSi=bFzi1Io9(xD0sHZ1_St zc*K`V{#P8n-f0Ql@eAg~6;TbBAV|~n2{a<<5ueBQm5N<2bW{AJW6xauo^uO5`NsD~ z)Rs@*w5Ml#>RD(4u&;21REZqs-0<~kYp0@RA6tZ)bpWzN$cEi!$d;sgQ)gIRr9I;> zua|tx7TsBhHuT6?@7seIBgr$hu-x&8_7{rFn-Hnqmuc5)SBNK?)h#)_DXGTx`K%6f z{3P;JDAK_cl|6*T+x~Jyb#Xgf2c-5iGvi)&2QTTL>%tl;&cBwIA#tCaYLm( zB7mNaF&)?_o-QI$Sm_o6M_36X+nC;NY>ipnke| z(9dQmQ#bMBY;E2lnW6_#Vu@obHb{sz%)*5~Yn2NS5Zl<^ooy(+_K{zTS!qES8@~}! zuG{l7$hcoQ_%=$^*3`;js_tmAm$w_JPicHaqRweJHkfT{aj)0d-!2A35 zYSyYlLW1LZ`c!)8t_=45@F2ODxeb{aYDszp#nnqNkfGz*OCTkC)xQtBEby57<~~`O zc^X@;sF>-ZaQ+;K>P^Lp5}+txpU(O0e2AcA79h5r%Q>A&N; zPovWAk;Ae&wtTmDYmV*Ux>xsRWo1G+;JC(-&v=vmrec~lGBGR+YXHn9VQ-@Cy?Y1n34{AmV>*s5ET~!d991`@6At9 zA|^*!Ep)dHAI?Z}`+U}B79^7Gj?9;%GF<3V(MyPwLejw7_=a|oh1@3lrYmY@nQ^2b zt#NJb3IiOkFr%++umk7l!|0%cRtBb}i`{&*}GbP7zRm!wImcBAn- z8dql&Wo z8g?#Ahy>1hh!AbWzmf!r32L@pfTg6X{O?IQ@{vv{L>`NH#S}dxC>h`op9FdKup#cl zp!0BEQ!(0xT_+qwK-qhb#ise~_4_eiHd4Tk#Eba;=#Nm;Bryf~U4ViY>0JcDg{iF6 zB2r{d>jj$-YOVjAf*Y*Ub;<>C7cGTrf`{w(dj`6=`W+Jt(46c)&tqLf_Q0DiVxgJ%EhKUq~>jK!MTVHP{m)w-urGKDX7U; zSeTk9vZOS`Pn(HQrx0ghJ9+JkS2n%XJ!yq!780t~Qcvk6IQY`^c2l-6e(2!~7P+T2 z<3Utja_7d?CJNqr#%<-Kx=JqPB|N~71C%8m^*8%=aBo%eGr`HOhv~-N&R3#|CYkuB zHEi6P{feEb{vSsf&T8I2EAn3Z@9c>~5Rw)U8y-bwo{`iqa?FCbN zx^}ie&b^D|wctIY4}e~I=W?+)7rx4Zo@H8NY~Z~zK+@)?!*Ca2y_d zPPwl2kSBn2nm{7*I0T(u_ULP-QADrWfY1KqQyK+Rb4auH$f5_+;L&2n{Li~mJl#C{ zja>l7v-?t-r#g5ffuyyu$nZv$qyO%J>`0!w@WSN-lJ90ef0m9#e=4ztc}L#bWO?J!NEc%=?Rpe` z!YH|8dVPIWb+?_LTl|DK{%?i_H|U^FJzb;%B0!YDAL%){efMpVNAvdH_~v<=vlrH* zlC?iR7=-7FPkF<(D(l0GVw@07v8_vXi4b61u1-b%b2evrz611DPUu{lp07tUYR8b5Ut}`r21j$lY(1dL9SJU$p z+{Pp7b`zY9ZP;bCR~Z|d8!6V?Z*#61>-OGOO?EdvqQ8(LN<7AIFrnp^=lNlBkvBG6 zPE54&{ByKQ(4H4*Mg^ENYAQV)__EX!D)w%G(9Y zdnTy;noq_MWmbrXLVR<)#+a4f?h+D0Y^chCS)!igTb+Jo3Hvl|GK(fkV`<(tPn!=i z5fLem9LY8%wY9ZOTWQaGs?R!Ul@6EdEZr(26;)_y9exk}A?%f9ynTMs(Kx$blO=h% zxM60&KH(K=CG4&t6hb&py%x{VrYQQqq;R<_x1HWXYq{|*982i4J8sEvFWT$caHPPE z;fo>J%)k6@)1cjS87o&ZcvZrnNmgQl2uSypOP7~Yj6%}?i|y{va$pY1+kKfe zkS+1a0kUK#_loW>{$qkt>F_T;Bzo_K|0XK>p%(Vbea_1kvqQ+9e9m!Q4&uF~CUc{? zZt;m|cHO@S620Q?j?X9+C-KXCC@q<1<&}Zm8n)*q>3dx}wz}hdL!Ota(VEh?piQ=@ zePq+8R`+st$L9mp-cPpM-&LI7ZnrWq3#%BKw>2o1Z#!8(%+xt-pl_hJFWnJZTX%GB zr)^MNtSt33Dz;s@-mLVBz0f8;lGa0Oq#wi2w3Z_G5DLDVF2~yur<#_6R5%hVP8eiI zQ{qGq|Vh;A-(*Zn6%6wLuKzH3PL}QfJ?+^5?5rSGIwfqVx_A&cEQ&( z0d@LSx!<4U!ZEw~tWL@tF%*v=_e%eiuE~RdOC(N@e2+7zX-xc5&%O#Bh0ap3H<|() z85Qobt_RD)foGxDafEfk7$vRCRqHqILj6xIi>!i*y>RZ=_E%4RzmleH~X#qFKj)viCPVT+g;ee7!PGV_1QLnavQi5HJ2Y ze(IZto~PkL2Q2yk-M0^^p22D?dZ!T>NXxEXT5jtGMpd^{M?yE7cXYI;_V2<8%x=dc zcMh>DF`$qe@?ZWVPY~F!ILsWuVyobXLi$vDXGa$Uj)DX)Tcb;H%2NDyc#S@&bPCht zt>sHTzdKO(Glhf@dM_Rtk2c(*k{w19hpfy5A6_pCPP|OpM{n{X&<>$id;_1CDODd> zF{Kkdq=^x^6R1O{@yjAd!28aQ$@S-J)9+{u^-_p*;wZ?2o$<@R@M1gBOp)Y~Z@9w7 zOh;6v$&}-4(8yv#LcdES*MkHBnK>p zzvRVI;=CnrU7JhdQQAESxs}oi!X%`w*SQKeR=sjqJ?O9Ev5Y|$Azw)2`0OrSNP`{E zjV^tAG{2PfooFV3jO}>hu~pqu19v}Ie2r3xn5T}^5em*9PJmKjwmZIJ)qHJ(QA%J1 zHa}KOGT#MBTVW73;&(54QM6bgloxAo{$t-REc3Rl+|^Yx6khP>lZt}8ji3^~`Ig6{ z#Tx{N8oDSfBkJk@p@HV>g#J@V89i8Tk_vPEMpD7?C6N1PJ4+|RA^s>lKi*>5&mU7K zDJ`LoCrbDqpgVQu(!p|5fzAsNF286d=5rPL1k4*jnz<>sH@||HuJRRbv-B&AQS!vJ zy`~x?c^LgebyxAkLx8@XSm5@zTp zY~r^ZFn2#W#xRJsZzrL^+JG){#PG8lt}xYBBwK&oSl^LQOqyOE0p^|3g}^I3?N8w3 z+i$Bc*v=XYi4%E#k_ma&KNF>Kxbg=+}D?Wy;GZ8t8RGTHk3{6sWyD(tk;W2vXv45a* z|CP>6Jt>wlyxb`0k{@L`bB~B|vrusAkOYrJwPsSQP`{HgSzGwQV3gViXxLSun9${c zuCB1kK3L%(L(4)X8+IYIEtN5i>2^OnbHu-$E-2$D)C3{!?JCO+V%NR9%-LCU^Q!!H z7{Zot62KD1M~m;|DtA0`YU}i@eF}!<-ZZ$wH8_g?K<^?GCpcI#P0ECcm~mH(E4nZk z%&spW9w)Y?Ev?3Xa1P7)q27wEWGrG*WCka8Q9vrBW5nVE)Qmsx`Q)qc^`myU_2mzZ z>yIk8Yj7>f|50j7$n_dcUfTWa=TWp-dpuxx=y>(MHq=K51oeDfnrCX2Uz+PFK!VK| zMpN`Bh!sS}j8o!PW-QQ*e(K7$i2q^uW2dhMYeJB(Lax-55c!u3r~ish(JYhO^aYtC z>PmJn-Q!-j!n443W^R_`e<=imi9zl!j_+=roR+mH;9-VKTD{=BhU`~*nj#}Hq)?8y zc|B;Elk#WhveC5BWs8n0!rr*9x{MynTVB@5NCf&J)R`W)mX%N#hG#l}b;NHISl?#@?)*-fXnS0*y)KcRsg(7#NhRni+-3F*uq4Kx@T63g~rZcF`YGi1t+QVyI;3S-M^&TcM__i_kYfCrc142%y5l%w+mZ$yODLT=8 z#i3tzC2tKw7Qg0@_EA2V1VEkIxi~Qj)Azr&+ymZ7y0>tQz45rQ;pmnddo$4~GY1F& zOt00Xm5t%zBBSWHaiWv=&VkcQe+caLHKLvaMq72ev)lCtTXrKmsLmMOU8Z|BZ~&vK zwdT#su_MjS9Z3cyQm5zm<|-|O-4M8)?;!F$;?VjNUBE7Pl?adR8m6dvr8oa68UVtw0jM8*>Y*UUzBS(|oPNb$u$GuQsf$FH}^PW%rZqOz?qWSQWnH z$jj+qtCh;(g{y#e#*&w{Ln`yf6aUo!M9Zs%zQ4DdaF`zug=7iEbl#nfyZEyf+Og<4 zN#H!FbkWUN+I2YYZ+kh`ERK&1635-D35}jI`T3g);?$PD)=2b{wY3|))RCzsF^$tM z(x1{Lou_X_s_@9rTkh`wbkS4X*~s=w%X1fU2DrI*654Y~{BLmH-rAy?b{$1i-<1Vu z6fbXmJIwWBgQn7@D!D1{Rk`8mBc4zDQExXS|LUIW-1a9N&E8T#d8gKdc6>6?n z`cT2H#wg!s?IiWb37Bja9~zOlI+F-YCXvZ}om6E!SIaQBoV@MTl?fda?7JS%Gz|{f zu*~ZU9rba0@~`qs8G6xi3k%lIsVn?N+_krmy#^Kte*9c4ob%vQbHUQ*cJI1<>Kz~K zeMjQF7`g-UiPw`gku?kW@Ap^MyD1+s-PMTTqveCE0w4Bog-opJ*CcouE zstW(i8OOaBDQb9hy3Bw)RDJsUZ7jo9g3OnCmGSr%`*!&Bu8bb(*co z^dFwb@d~4g{*4zOgJB-+H9GK~u@OZb+S=frN8{8Y*ZZdDDBs(hn-L{&ViJ-YdHNPE zN#{z9R2tpFW)!iCz8WCYkP{vMa&UWIS|a*&Rk*sc!%ziyuiv-}k)9b>p5nS5A(mz! zt}qCBX3EQe;gF10yBOy3TwVF0X&7O##sfga$8v`>d4=!!pO0_E6W`fh=4nxWxV1>c ziN{;+q)iVqTU#FI-L5%6tj#%mF3?`xb+PZ>xsrJ%5~#?4s;xFNac^^( z_1=8vH}Y+ry&~M*oUMUrz_Sl7Ahyz5z%(*ubW`P8gDfRfs%-iEJ)Vl=h*;U|Zy zfsr3oez(j{>G)qRRBIV*6mKfjHZE8=Tn)M+3y|RZPj21-?K}&oO{@NIMtJMo1Vo2< zo5Zq&hg z#aer*)m>&MAr-Ty%EcgiNpb&xDft?5uQAHp@+ytEA2LC7?dKI(ck#^dkL&ks#j9Cn8qCgAC)z4T(%8?eRlq znP^E;toPBcPvF(xjJ2X1H*64WSR4K(FDDyYS=wZN@u`-~5LC=552zNh2$MkKpSa@e zjn4t#wU=BQ7Q%Oro(m37BB;jECZ5kWeFMgf20E5~85Yi2<7C4-ix45>HI0f?HQ$7- zxQ$Sgn)@)~LC0+3X(RYP5A$xO!?EYE0J`}d?|pA?v|W$tk@Y@&V{9)4=Re@{Xv_oq zuNdhMbmKZV6d=#@>y}*wDb=Rfh2x9)DV&V}s@;==vtH{`K2Ab-0^Zm|(Bn6P2i4%m zbU637-*Sw$5btP-e^SlXsdax8k>SGRTPQ>K5+<5FFHA(1S_#8-C(QkT|d z16TJD8!833hPA&|v)`?v&}VSWz!}Gr{9)j-K-~8Pfd0fj4W+}gQi)kJ%!ixLH@gt8 z!F8)BiJSG`MNO?Ks+YsZmWL^|=cy73om!8y46b#M@{d-{Hn%d`22mAs8iv?1JtC7zIt7Yeen<3l4$&KVD7UW_%<2D;ZooM}V}&qpM)1|!3_ zJH`nKJ*5{v2$XDmC{2LKHn+ynJp=4H4hd{K)ZYBsA!lJbAxsvLuC-z4XGN{gJ zkXiQ_n#Rd~Ef%Z#n3aQ|QK3-X|AiE9iYHL>goDG`?e2Gy9~N$#3SkYg>)S8&z*kamp*)f*9U(&6is?)=RwsZzjhGNdVw8vsOP`QcePg z^;a5d|Bx;CK*F@|#NdN-rqzq0qV^rsL^TjB4&sI5Km0{Wdw=>(h5Wpv7HxRXcD)AXF^s^bBZkzH{1*3yvi9o%`J(3IQR@3m?BfSr4TLA6<`f{ar;~f!X%&pkb2# zgbK!k$u@r0iU}|xfnbrdB;uXMgW6hlELc7@Xgk7n6api{9j)NcM7DML8oR|`q7YKX zb^=)a>P6tznm<%r8px02cX%{1f2}( zLnc5Ill~7blk>|cRmpLq-pNQzwcZfM146mU`TnKWk?LagRte3xS|r9l@XQwWK8rbt zHxZiAjVDtx$qn#7C>r3yJ@bIyZ|W~zz~mT+@tEGesVqk*h(YzENb&Thth(DPAv86Y zEv%gW9P=x8V=VUhGDY_ch=jCXCdoLOg3)NMiOxN0js7x}E@MA^D7hZ~*-wM7o8wma^!8c1QZ5iZ2MB?ixMV0AG7MvA#lj=h6 zSc4opdpx`?vUyk6LhG}JJy_m^VXKvL&nS7vU|zupj$0Y^aI(w8^{67hy=kRtiV?Pn zojN4Ib8>Jss6u)LH>(M?V-x$5u@U)@vUq5kd(NaPh4;u1?R>PH%7aQ>OJJ};t6lNIeAFy-6+Ky5 z^Hm?Olc;Pd`J>}R^rHOt2^e)$cZ+4~C z)Aj6EN%I+-Ks-WIB`QO*JfUB3NN8l_nkn&5ZVlOj#lk-~HXlvrRx%RtMEN!$= zJ5L+tx(3%>glXYMWL;DPG;b?ylZ#|n;L+q#XX?kRY1LL#cRbw1j>r{TF&5e-eB%;V zM$U{clBRWy&~-VxfhRm$SI_5YyRTo)mUZkXa{E%8t44*7uoW~%lLjE&so>q?e*tl3 z#oGHAyk;NjpX*Q3r=S3IQ@1+7da6i(00t|6*}?Vi<@3SNP_m|pzfiV$^Rr3`2ffi> zdgLB(j3^xr|;jbuAKgqco4DRwsx+}NcbW-72CdP#C;{EK}xd8mmM^mukX;e)7$E{F-J2>!z->KpxdtB&}b+u ze4o|y0??I3G>%3-4( zqs6k8feUBEoXYt9d@}>CqDZU7TIl??hii=nRb7TgdU$4W6sucP>+8D9@60!+!^KgN z^SSBa#JBP$=psB^OCODNLXsTt``SSGl2loH)j8aSDRy|qb28(KGTTUduaF&|P&aM9 zp4P!Vol2>cY~pMCqbQ4mt*Hn+S>E=U!N)%2wJJ(G>$*%E`_|~AGSAEDkVf4QXZs4@ z;nst@MJCzI=k~&ho*kh+gjT3UmCMU4t!tRPY;(4=YK5h0n0R%5zx1g~yOFkK3r%|s zAATFrZ*O&+n-vBZi}=226p(M>?z5d#jXV62ToM}QNdW*`-(p68i|{~oSX-KXX^p+g z8D?K~$mU)!lNNoQ;C)^vg07fVcN=MRHmwZ*Q}Jz;#%D*}`7fR?o? zvY(>1^qnI|fdFLPn}?r3Y`Es4A1zi?r?7?n%y^7}C^4rWASH zb@A3hMT!h(f9u70lq}mKOxP_iMPO#R^2NEV*N-1(vZm~ZP*B*)xk88;Pj`xA;ljpw zVZ0;2Macr^P0vj`%02P#qg6t}o0JGCjh0x7nW=-n>P$kqKXNYKTBIU4PK7Le@Fp z!r!!FM-a(pMUC&# zmGZN8N{(CqE&tO;>9^fp^y`L7dq3DZc_o;j$v!=-i$QEZ9B!wba-DJbp{*@VQTh8- z@>9D7c@)>j(A7;RikjNOs$8?`BOB*wyJ@UR7`{)y7vPJU{r) zn{#5_nr*{9f{5F`qCwuag#69ZS&p+U*a~~vcx&daN}xdV8?a?BrwFbp7Mr*@cY_Tw zFKC{5?}8I@g$qd>=lvR92>(!6)Yyi#Y`gzR^k-7^z9t09-1%SZ=f#CbPOq6;kxC`E zQkL#OY-I<6D)a8RI>-GlL?Gw++a-aWH&{IZPhhkaX}rx!=rO3(|dDg8|jaG^SyI0R|OhvxWJNHOmGxZ_Z#X;0P>n{;l@65`LCu> z5R6*FBL;UliqC_ELi!u(FBW)58AtrzC~WPkO@1{sr=LI8iGFMNuPZZ?VjppoE@w;- zzxi4ZE0|%F^}{NY&1Ia8-8NC%T94|LNUN&$f;H7hoEQPE2GrK@&EMSBy`R$U!#t}Q zRQ7h$0a`El4g#ikkS7_u(?Xa1P~^SHnYJ`egFR4~!@jNs+KnC(f3GN~CBKK%N_v*Q zuhfcV{%ZQ?c7c!O=F^`$KH4V3zk1 zBa#aS7l<(4D&Wc$Kq`esbeg%I6E>YgWo`9kINEl3^0WKIGm-7HWA_N#GKAm$3K!6a zhsOWS@(fekM3jby@yy_tQm>N5-y@|Ad_pq`@;j5PL1qa!^!4YCI0Umd6*Ot|gWNU) z3ddeyQjtKrJxHnB*;N|)uN3r^tLNlX)&-6p{tq1lQ-rhMgB+R9_v_5>92fE%!3kXT z4vRsBi^0%tuxBpM`|=a624T5d5+UcU_?)1zVlH?f*AE1kx<<>LBohXQ%*kA`K1_=# zoaDYV`^dU1kT5YZq2MWOg*AV@0VYTWExTV{sZFeP+g?#7-nSiI2#H0!o*y0QEIhO9 zK3fmqp5yJDDV0A;il~j9elfaKiOp{B5}H4^g8>VaJ&j%BF>#e=DVT4FVLr)XTSw_m za&VXTLv z5Yh!ccY(Z2-kJWatT~xFu$In2VxnVpsQUtkkUuav*QVq;Q$b3my z4Tthq!HFN=;KUeOaPXepX3ZSms@1#NZDY&+87kA)5$00l-p~&E-#NiK2R}Q-s^(2x z@@3ak2V44@D3>~z;Lq606X{|B#jCpyA~I3r(ZlEu|sFd!Zg=&F4{9hAu5K576sy- zgmuKv5?@7lKD%HdocSkVx0AL(zOq#XlhsrdKXGO)4WR3Sh7pf0u8iu*?8h#BFyjW5 z7fHao$J+<_pWwz|>;X|~Y5emSPFPER4TJmKy8zs@PC7#XPhgDRdKc$ksxJ8XJW)dr zUp$#j*2`DOz*s3bPVeOP2+RV$4$vO*rT|~HWS_EVH2Mm(luiJO^uMg(|3Mu^r{oSl z0^LWKC!Q@*?cYuj|3@1@nP~-G5rnTu-WL%pN#J_U#X4S zk(=XfDj0U@iq+*#sHa$1QboV z0w;PZYr1I*UX*C$7*zs500mS`$N(9!8hq~i$KFhd11@EKF$M+J(i)F{Bu0PwWY^>A2^@@!C68ti`dMTdzuVtq4KpKa z@NYsD!$ayqMX5k2bjrVHLbMI!2;zZMYLbeh7iNVTDb16UEu!*Wa%Baj)Vcp87-|1a zNU~gXRM za3;^BHd7f`#UL{}WRNDF`ELeKbMN0IoxWbQLG>S`Q=yxH75Xp5n+(xhx2GseGD(&Ra|DTDK8&|koRDb@ynX(nt(Eyv2b zIq8@DqaP;R3FwKZO^tP^)F_K%;r}w8(JQKs>4u6etUyQJ1zex7N-<(hOAv7NT7v33 zF{eNkt8M|;`0DRoG9Zn-#-hq<&9Nm90B*s@*SZRgE65IeW=*VetT;>RAfPZ1+==<{ z*KhS7w?j1*S`^0=VSuL^FWQ{O+oyFXCb=?4BI7qA^abjn7ns+Q006R~+ndg4?k>1j zqedSf{S!0=LpOM4vRq=2(QO6DF~=fU^+ba=qw{~O5EdsX+C~O2!h!wrT~Bm8IIUgx z?>&!HYru;^V;wo}%8T#)<&pCnBh=Ghj#i&wI8pdpx0zt z`!d@-&Y}&%?5pS6NuJ>?6}!9a76y_J5(|<5`WYyob7e!2hd5f6UPI@8ns5L8);r^Y z#ke$r9gLv|Kk&Bn!0}^PKpKp3cvJiv9t?pf^m4B4PuaM%)`DdDr}s&i({ieWg^!P# zW3#C z+|s55FurJo!hIz&=?#xgV~@bVL=9lqK>`H9N;?3*UVM;77B>v=@oAS!XQX!j zZ-F_%^1FcpR-ZOGtYyZwpmSuP5hMb&M+WTVl8i6_^-nVSV;|3|gxY^b-^K$ppPGtB zK#E>0(*#_Xcu=}@IkvFDW{y3UJtCw}SbCmyq z^~f|ZXbsv@#bl9f^IKkU1Atw}ID@yGVuo7|dK+>G-u7!%+|3$V1RKw1?N1yLxv5jn z>Aw%9^-LZ4Q-g8zJfHnkd)mrR(ZL+dDF`ByqI@n;1jfHkx4U1p10x3FxHCPFv9bs>*MImUla9PSAad|d3f2iL7Mg)8~ z<`0&gI8!G+t`i~kbn%Her}+q`A*!CFqkA8Cy?Kqfh4(Z-I54bL`!P`m`1-U!Eqocl z3P&%%z|#L&PXPRq1o7q<0=^c8&8=?LbvHjOl7hX8%CtoC)J+*p@q#aq0 zAp(al|L=#-|EHV(e?76zI{Tj@gFQYkg$>if|hdRR$fEHf}IE#TeePrBj% zYc#onv2#Zo)|;%%oz!#vnKTT481SQ-uWN@77Pg9U@@dphC!L{@BKxc5KmakcXO!F9 rTqTCnm literal 0 HcmV?d00001 diff --git a/architecture/async-scheduling/AsyncSchedulingSupportContractsClassModel.png b/architecture/async-scheduling/AsyncSchedulingSupportContractsClassModel.png new file mode 100644 index 0000000000000000000000000000000000000000..d16e10d3d2ebd7d81380848e276be245402f754d GIT binary patch literal 48023 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�}#YklYZK~SbGVlhzduHc-7 zNYU@<>hKLl-OIW5woeK@Bl)0ehH=L}(Ovi_EE74OHz)jFe+d(pbZ>V^%QoSnF!opc zfkgOJ?<2faMl5=q5ty6}w@U3%rO^>z$gys7%0Y?%$(4KLX0O|VPMni<#FRM)e!IakR68HXn>=dp>{fhmIA88~d}+F0>IA}lE{E4HR4*rsHiCyY7M$r+Jm$#NrlckTm_<+zWs7o~-X*c$%X05Uw$KDb$kAG*k0E1yb}SIBbZGR9ebRi(sxJF4IC8@oKp*INh5$47+>MfxAjL8prJ z&#CnvqGJ|B4rh~>Ukuz_ahouCGTit327#06@yR3MF7>A)ICHE5h0@iq5_?#nY@KY2 zVM$rIFYI`!D=o5yXW%{qKjM%{Nl`j-lRm*ib$g}X(4S%X^v!nvsp-BFQbUnvGaC@b z&EzT$zx;?l+r2qD3n^+m4DqxRrcLGyooN(w@L{N~cDkQxQ(T6{Vk~qdj@cZzZa_zb z+bV2*OTf!^*IyDBIugFxO-jGjbPDF+*R)R@5Kq7U%qW%n*WUW|$IHOQ#H2cTI37qM z^t!9)LcWK#Ugbb9LB~*3hB%YaDOf#-@V6rxDs*rDlD110;-gUP$8U*CXz|y!D&q4u z$0kCkH7#HPMHX$Qd-KN7S7<8a^&z|mH0~8cL!h6(#|+m=^}5M1n1Ovn=klJ+&FJJu zZ`Ev*7DZG&wtbV*JAQ7Tw@_5KqWFSC?UjsSq0v=R;*soZKXEMi(EPeACYTzw=I94K zU+&ez064$AY1^+9qalh;Lc&xhyu#lr1}diyBtU|hMIi382{zJN^t`l4K~^b+N83Wv zFpJxba!R5hpv4hVpxrSa#WLyjM8_GozH-&lMqsi?nW^!o&Z#3P3P4D#y{61+J1Rn` zF%495IfFa3_bZv_cI)!(Vwyl}7(9&<1#I0rax=Y>VtpeMDRxbG}_+Svid>p<)ML_$J zNSyB>K2&uZ!+%>M`2P@CQm;$J^14CrSCee}e|qvL#91{)2|lt(UD zCx=FBW0tM=YRQp(nsi*3)^guwY&i+*|!=EU~zgDVtIpfj5ci6kfI+!riPn`c8aN)Y=H~SV@R{{GG zoF9F*EoOub%Z&as$C`Z^8U*Sg82pW}80ne!wSL&F5LR|4uETArm{m>nCy+I@JGMdCbi?4LZm5?=eX)OG&_*5;>O-$QwlYq&ks^tT##ha29{kkptX=yRh%u(JpEHU zw^gFyxsL^)FRiJlu;0v!^EwZdi8G{sr7}S2f46Gb^T^dBiS{)ZeK%gHex-MF5t14k z3Aw}Mt8f5<2-yII&2CcBFR#n z2VOE&1KF%nOz6)ClA_r{tmhF`KXrv%vGmHRXO10EoLySjEm{9Lt~s5socso1C^M|5CQ~dY&9SfyohhbG>MFKL%?fvSrWSqIf7^-OC=6 zHBN58(`T>CnK#%xrT)ZD%UHpZUqlhZ=;-ax?^Vs3vB_;fC^WUheb;IAj4xoWQ^So6 z+6%|b4|4oy$nl)}_Xj3M?Z0i|`w43uye==T*@MuGi%iTs!${B_M@T>>Vhe9Dsi zGo?kq&4I=Y{6vX*iWgM=oz4Q$Rq7wN^o2-gq?c|b0=;JGFi|2GVr2D$E1Wut(yoH_ zyy8?kL_ZoeKKsCc?*$zCSv+Sl1bp3_rt%oHA9ez$&e~HwDW2A2(;_mArl6iE88yq; zcT1{nFbx=1OW^Dtle_|?8l0Iz7T~NZ;I`XC&|&#JE(IDhFuLw}x)%Is)&%@0{-f1u3ai>k`1=UL`JTj5tjn@cY}_>EKXS;h7X zh;7XxnXo~jqKO^-s2(phbUFggpViy;Fy2h-h$L=V+6Fb-2M>%n&(Pw>A<$40m2U|a z6%vcU_$r}*Hi9KI2u8tX1VOwz03E%i^?|9J0W1<@-}FhkiaUR;^4!5$BDgEwbq|T_ zx$w|c2)-x}8`>jp;7a&eGF9;p6>n`g3ej}QHt1WF9)W|W=ma^aGf-hYDJyz6JngMa6V#+3D<-2qa2l#zDE1psm^;PsREPc z)3jAspy4XJ-tQK8UsXhUq-KX)#Qt%bX;+P`tl5{r1_#m5`m9#UG0y{Th=&byhNh;D z!TiV)dGEQ7v&KmuDzl-aRqBp-%2Cge!Rw9u%*BcngP?MC%PXV^OR@ppR-vo2{?B@Y z#+eBN?qBEI+?aZp*HJaj9jsl!9!Jp#9Z50XDI@@exf0GWRgStwvR!S^h` zyY|&6SXfJ_^y~8s`7VN-RrT!vjNbz?Y+pBWgF}_-dR_M8hBMxJ`u+WOL^F>TSCQ;S z5YxAQ&-*uifit_;gi?n=UgVTe3i$PYYoFu3wc|7x|62R2{pNN_^D0o_QL`&btqNQ4 z$=-0Bv~=1VWT2`2X48tDV_w@gp1)}8zd$_3B%kWN=>%LVt*^YOmj~696hUWzY-9xe;V6Y+uux-R4B$!zY_W^l^UO zngsXMH+prJhw~=|!}akYUeY*EE9(ai3KiIL_r*rOEi^)3S0zh(Bf|G2qg++^%eoKMOA8>;Qf3~4nF8#2-zSmTiV`W%&aK%MD zS5ehQ;u5?@w*_f|zqZ1b@2pD>dS$oIIAL3xHH>bN&euZ?^7^Z%F8jA)r<3w_K0Bc< zZ3>hdU&er)GpTocaGI{`m~sFOA?S>bOQ#FTI~tl)~{bQ$w;Y*#~#NVKsYWGxnxjgsV%F-;HeG9X7l z$&@(LSEK3ZyefC+!_@10KZ{ec4RtE^4~otd(|h$SDSKa7%;3XG%86qYUq z_HJok7kQ2!^}2Q$(%_)5s)t5Y^Pn2jFGCRQ_4CA{ba~MqL`|ypf5O=;cD?xFD1PsY zsoMdcZ4i*LElR(3C}#C-Zdb6w?w=mZ5XE@%VoKNGUu*?$)uFK2vJZsjrWpuG)QD?>;P}6nrS;mdEq^HvnXSZLBpDzM#maIjKw%T|$r2Q_K zo;KVk($wvyO$oQV48zD@C#zOG=aXXv(f{F;lJP*U?qQybn_K!V5HGJ`k5g^9w(o`&%!hGvwVSrS zw>lU~X_alNwl?xE*F}*f<3H}<}@1g#xXMYR7}jQ<BnaR0 z5{aI1WDEsTR78x%iIz&#Milc!6561H6VAkQjfJ%GiEDb$)h&YC!?$^T@AeZ{ z(U5Tu{b}{f#yZsnu7ew7rMLSLigKKiBS=P2=NQ24w>7Z?0fmqt9L!4;n94Ivj=9z; zCBfl?8v1)sDS;W|?%nTBk%rpQ*)`=0Kcz4J0Lle=pEe-}y;kmRvZrTi+^>lJM~@y2 z=_!W)j!xPzw+Oy@86&j*M29M4=U(l3X)ogv(O5#&$4cgoO5Tz9V4~6^P*ma0sJAKMG4Ba}r*jxJ+n+l&!#G}zKH@aRv_KqHq zsQ8q`d4Bz1*8tugc_5RPkJcF=R+zvQDS2ho=skCXtM<9%`kj?TtaXlHs>SM37xj=V z?xssgGQ6{E^qjmnEwK0)(gggcbxjjSrxm2Q$AT7(HGGG%S}Xkeb@@%?5B?lAiQ_x# zz9;d7=l2G7E<;O>O6nl2qkP^Cdn#uiH3FerDM{?_ZPaHTe-!IYYs{pTy6D2y23ogs zEeq(k9z0is+`kz=5A1P;VNmCYs1oSSmI9W9xS=8%uZU)6A33Rd#%oP^=vEG$ToE?j z?9cVJLBI{mkDTD5q7TgT>I`3##4HiSxZ9K~?lId^;2$e>50p?{_J=~CBCB*^MQIW- zpjk8Em*LeuYd=jXOzoIXHT>i=pW}T4f8? zEUbOBGh?d_l)d#hE_}oz9A)`d6fG77L9U`)z&uULikyF2gN-=r8kUWLTZ9wv{!RxL zFyeuopig~0&y)L6X4~1udFyu5>dTb}GFwT7d4L(pN5nN5AbwYT?#RUaHUfRw6U_l# zVwX7RqcjXkj*-;5BtvOCj<}=m*feeKrTyqq761Ybm111qS{~Np2rg|404VD-)P2#F z>iIEk-7ICy^R8iI31s~k`7`!7=VmpF4y!FUXLBu;xV32OxwP!>nYc%;@>WjNf+~z3n3AaGK)0|g& zD(HVL0OcImU-2-qKbW1N#BJ`ybZBfWfKp>AY;?(twnG_N(4hG$JWzDJP3k?muOHVB1hpNKYiPO9 zxGpqrGVFY~2eAMa-YfKOainPXj*#kq1ZmlVhuUetNK!-JUp=&Qm1ebS`YZ@6h$;dI zIv&*|^lQlVX*TX9kKGVU>9u;}!q6Dg1Jmm3@*^^*QdAk83s*J-Oq$b}gB%jzil6p7 z1Ai4JN`_zFY^Je+!4{GJf4+Xo7j|HS_2l6{+p;0*;eF2PNC6}Hsg+z$K4-M8x~uD4 z7Jo+uhSN65+`L;$YL4P+bvNp}E)T|%>rG$6VS?A@dT~s0P6@`6Shh+3DDc^>oa6F* l1uPbNT@oCumjepy68i{uh#E){L<$D_la*AGs1h>_{6ErdO)l2*`mzF!~_S+xhnpuSc51bbucgG7<`c zz)xtH_wV0B!@|PCBf=vgeMCY+LdU}R{2Bezr%yP9xOgOA2nliV@$spsNGK^OX{ec~ znQ3SlzS6RN{rZ)HnVFf1fs2uYiRBwBD>FAMqc8`HI2#)sH#av2JI^;(2`(NkZayBK z*FP2k0S+D>9zkAten|mgX%Rjd0bxZ^5kYwo5iUtdeo5dXrX->)CM_=`rYa$=Eh{Un zC?jT|C~YAtE2N|(uB4=-sGy>(qAaJUpsFgVtu3dmt*vIRp=tfyK+8)EFeYdo)yvvRYs^tbt8;cI6e zV{dQZ;NW0q>ttu`=ji0<=;Y++<@6)O-ag#P)6>$~+1b;}%0158Bf-bZG26#E+uyAy zAkg05-#;+OAu!0T!QVeIC@dg1(!VY!*fBKBJuJ*OC@3iMr+aX6SWr$_ME6_l=H@jEai-nHKe{I5wsF?`LLaW`03bZh3x2droF&Zf^S$RT1K|xVLZFxmvd3AYNT}9DwdGTmP>3CI5{#IpqQ$=NBO-)UGT}ypKdR=3E zeN#hoOLjZ(`JMN>BfqD&q^GB+x39FXzie=*a(H-nbgX7Z z0S1FtRy()0d$)J`wzs!;cKeS{Mo)mx>DcMn_}SUn&F$>%-R$$r(#y+Bc-U43FyScd z1Xb+xtgM~Q4Gir-!UmQGKXmL2^uOpje=)YRv$kcYrL{KKv9z$)G5A2TSjEuIzqHc~0<-Y?8Y3i(-| zpneL#gg*`E>0m*$v+Q8WYpLJzj8i*Di{x_J@$!~_aEmV!3pN>IVClr386Z56d2#>=&#Mpj6@;_P8N_ctapq`Wcm|IV*5L)TnHZ0&F zdoxOGy>qtuNgV2NnlnR&j&0t@z5B(W#hd?gLQzG!R}}iL8}-^_J@!{v&1=glIR=;{sM z+xEF7+7V-COa6~;vup7!0acsh%0CXwNjCKa#T&nVd3)K5yYKt#q{5)47;MqTu-0*m zGaZ8Gr`+)ZC4-4@COue- z6e!A*swg*J9|}I5EFbBv`E#!<*G1&oYMD@eMQ~mOM_=?h7_DK6=lO-y zy?2qaiKx~3J{g6MWotFnM3htCVo4Us3416v^EOQ_vA$(yzRvH@Hma~x(w4z!b+^lt z-ohcbsLsrJHwav+KiSMaQLg+`(tJxnngpGuC|r#x-)TIPEjLlYNW4NT(qbKxxeIAx zg5D5^&!w{QX{yY+>D{}DN$EG#EYvzw3Dw&zB;)Ra@idLA--%m^us^;MZtQREN7Z)!DykA!2?X8^{DvtP2tmaYPtLgDBXr2=Nf- zS2kRQ`oVjl_eP;FjJzs(tl`5I?2jF6o9b|Z4XPzAC$HlORnBoJL~KRwfJP)GfBcx6 zOVLrY9uMu6mc~0h_Y2rAt>Z!P55Xc3$O|MYz^mZ2aJU4|qhR00{TvC8K)+h?OV`mu zY|j5FK2DC@pb0~MzDh#oWg@FEAu>5fC$w=~%*8-FpB{dA%B{ga8i_>7bR7jtC|=T* zQuCy{J*!Iot=u>GuiQP)JI*8D*5HP$KRLBKB-@VMJlt^&bp%GPu-QsQPQC*W2DI!D zI)U=~&u++1{a4Jn1w~Q4{>I~pf&{)+Aw;TPf4YH0(Sa|ok6-%V0^g@^h*Vz>b9oWL z0$;zO|A(93h)IJ$3qy0AEq;EroD>iH$f@9L%}g%Lo1GaAI};g&2B(1%vL$md)i2j*egv>=9?!&4pKCMCiceidyN6Szv>~8L3UO^r5vzuhLjY;aOBv%xgLS7pPP902f}t zEpSJzRv)M)e5o4H?5X<+);N7c<@gTE)Lsb2lW2d-^3)?M+l5^Kbz<3Z+dM%jV7X2+ zHZ7x!)xJEMJ)awwWgqmL7Qg@PsZsm%Uchow;amY&$$B37p=icBZpMoIJz@lQmRc1; z@`)R1n8ZEGRT4b^-sn!9knF{Te9=_uHotf1NNerM_x5^15jb@_8p`}lvK2|&vmj(~ zm(JPF_f9jI&Qq=IFkX;Q)NLjf` z0|f_zaDO(npH_|RkvSE%OyVKk*RFfrFn@CC-8SZuJ_b>Q2>+^`Up!)Ryr$jAB2>Io zVRnU&Rfy~86>%S>VqQt_4TzgfD9Ftd`V^4*YbukGf!A43kO`wYr%xk(VMtn=xrlOo z4{?P#+quZOvWp{n+pcVT582k>htGJ5)#eTnb1j>#EqtCVQ}Tpo~PBee_EMOB-0ACiiPSAw`H53xtx1F z7KVduxnUT@4BR9#SpBtfFJ%?3STU@EKbHL(4%7Sk^WMxsINk_XkE`3>JSJRhTJq40 z_JMM#ds4?89L|8njWXMta+`3F)i`6W~obla1(J7I5y9x>LJT&SBnZU?#7Z6ArD zHhBA~(8`b{%15)6kV}P&L26MUvp@9B8^@S!uEVeUc;fT3NY@zY!TDYHb;`4Uf@e$B zSLU7PQ<$L^C3*YpcBY}8Rm>^4ZHLC#^B_|_Ra{)dz(Gk6>V-Qi88hsZ$&TL{0Q_PD zkmfsbFZokf^i;Y-{cu4?u(FJsW1w&%d((S6ep!5%xw-l+E%xib#8PwHRBp2i@yL?GwR4lCRR?p*?%Kpfrw7uxs7$*zTqY0)N$B@|u>uJR!mm&WeN`_#^lP1#RO|HdIa;?g`iM?dog!vJMAy}}oPU+@`!aaFVkJ3QFgt_ra_&1dw!M1Of}@^R;=Wz z)OL=CL`C$kbEzE5Ekz5N_MfI94}f}G3@0nx#y$Z6v*|ad;IYjWTsAoy{&h}J2z%d* zc~_h-kfU(Nf_BD|ZdB4Vvp?iq{JbP@OTqHyz6qz4kUeOwq&?Qt(P7{-ug~JAfLfDMflJtLp0DNehzc< zZ$QQjZW`|a7O@J^aEkN4v5Eg*ROJ7C^Jx=$E-6r6Dv#F$ir2`nC$ROa3jAZ^O zNXvz?*&PKAbkcpR<*C$!fHR3Lbv|Mu0*7aBJie!8;A7%$8Yi znZi;THI5Ux)6*!FI?1RL4}W7-YZ9z@WN-ybP$AN~zhoCfybm;8twZX$T!5ncxS4dN z)|E0Hq=XZRcUpUlG`IdHEJSWtQZem|ja}TQ4#z*}S3%VXG+{j^8a?gp0hg1PzZbrn zP{N`-py!#VYW!kkf%x&-iLiJWK44P^Wom*Xk#z2Js_`uxPUeF+7->F_(hNuT@y*Fm zH1lRbxCEP78{eJ<6*9?&I*uJYdk4vNZi~Et?8(N4!4vljsnMMrCmn{y^$pDzqChF< zc*n={=Wsts4(K+bIJiZrVePotF%HLI2u+%N$OT^4fM6syVe|2gst*5gR$;#zmb-ND zGAGM?Q*0oNJFL6|I~%~6>wsQtj)-vHh(zgEL0O5KQxLqwGt*^8@npMO{ABS+Os^!F zhK^1Qx%eZGE-QaZg^X#Y4Leu7-YQDMxrUG|B=WGG)Nnsi?pu3d!9Y;ZcX=|fl;BMp z+EvE>MZxDQz7b*3tzm7GX@6=@Z6dfo6Q)*2`AwZg=p4GCX|)J6tt@e;&mKhs4MxUl zivA6;fx+$<@(y&bRVzES!EZRo910e+-TTm*&cATZg(`+BBuHmI{9KF9M8_082SNA6 zabe@84U3E!T`V}@w3k`Z=Va+VFolh8(_H|Qysf`1(IP)fBn!9W&6GHWlULh3)7A?Z zt1JW&3YlqCPdi;A)}9DU!^Mhf?J2gBpIe}ZLM)&ras7r{Np#=rw!|rH$MDs)YVY1A51cpIZ zLCIOC;n9V3fW*^JkJ^K&T)%J>vI=PnKfu~ZNV`16)X5b)45F+;plM@KVtskG>`%s& z&UCfHw=si{z9}WR`P(1-f3pgE<5K@MG4-&7<(0@HC47gjsO^{93K&-gNU=9lB_FKK zd&G?IJKOq0U)+6C5C|>&Iu1En*=)Y3lAcE-5ZtX!5WQGMg6PzolqY5|Nlw6bn{bl= za5s^c=zI6R_0wjW2_u%djYTE<_}*^j@J<^Fuh3<*P4wbyM-ze2+$Z-}fiqlv@}bjR zbafKXeEIqJWZld@L+i6vS!px7jHMY&bmIq(_ZY1JKEXv%87J59TA0>te&1`@Ltxo0 zNoVW!<$BA##@vxMRnuAB0jSkQKO)!#LtStZyxWZGo<*8FDQycpQ<*a>D`stB`tAZs#UJ38&>mVf4RW-T2+$&*A zW6BJ-_4aa$J7PqaS%Z37ol-79^LD?F`ti&kW55;XeJr~;0EgFyBRl*G8jRtu}#=nyyx_zrOa@AbhjK=0M0&_37@&TM+h3; z$$h@PxlYO8mH^DG!_H&&2)lE?8D#6E!HMWDk1-4o;RqsCzd5-T4Hg*~ON)F8UeXc@ zxuYsg&uc2k^d#NHbx~e^bCq7tczE+s_fzhs*~_AJo>3cN61ohqqg3K+MCuO4QI?n{ z-Fdd>QLClO3`7pVD^gx{)NCo~Qx?$^5NK6J3`cg;|3yus8^68a?H=O|TG4J@=&IKa zu<(zB?cg+E^xMU!510f%D~pmbcy9K_Rz!Wd7qfSEK?$w~cSp+gaoG`~G&LA1gfrw9 z@5P)iseG;M0p3Eh29?FSo;fL_3>jS&u|7Atx*YzL$Rx^x8tt$8YyhE^9$M7k(skU9Ii<}$#o%s$X~Us?Ys|ZZ7??}yYa4vlqeu8=#l_5ii!`_geDI{n zG=4X#?ps2!*2<#*$i#KppMN;8`3Iy_IS%Aya$hF$deI-^K3=;S*-2NnB6cAdaN}oz zedxn`mBEqSAC4d7uCp|HS?p6SS&l1f<{ZD&P0`BVmjFS9Cr>To0yWm}?nzs}ceV)) z=Gy&*A<;}AJlVMJ9Fve<|5W{19>IL6Y3D{qqwgo@$@4=zA2qQGzk&lIM?=6o&9TqAd;6CYvCd)N0#(;n`h zbyh~BNoXYwuJyp&N!Le#^27$BMu3!=7sdfXC8@D5_lqC@%0b7clj{`B-7R zT4DdAVTRGxC3*QQv-kP7dim7`1EKm7!CJ11{^gvj@j!kCj{SFr+BZEJm)9phzY#@u zB2nK1;tX^P4e(3g^M5kjfN*3e{9D>@ZosM=C8Fd6Y7Tn&KlpV2MUI_%GA>`8!AFQF zs#A%&zvkfS$NxGHocizT3>3ok$e-VC*pex#_jv`o*L( zE_mVqUSG-^1&LGAxX_l9m-*D{lKnCAmEwCT0X=GE+~-VT(H?!i#LbH8{@F@9s=#rn zG8!SpwDjW&@9WKF0O_%Eas!`uEQ{D3CDjIjS8OYe-0PZs5&r4}jm}|_4p^Egyxm^Q zos~u@ijC_F@VH4c$7!MLy3~&{sl7&^-uXakYvJKfA2DFQKgSa`3SYdoG1wh>@4;;_ zrD3Y#u(0^>sorqmbSQU~cc{)|L~uAD^Bl7c2_W*P)4w7QIYhW6KbFAf#moh?@^ai^ zm2!}~?jI`$#X%Z5^l{KcUBmTN0%JxFNUtEZ+obBpfr zR8F@i?6$*Ad2N9Kld^GCgINwf-}nPt4z*R)j7T^XyMs(mol8*InjPLlN6ui?s%!l- zzEQ*kDNs8euUM+nh%p?6p`(~`w_GRh5&|ED;AV&f#!w0KaqS2^Zd}6RUo1ZkGh%jK zKjbIJj1Sg&GE2+fe*?;Y4@`Cp4K_J&6n~}NPW`amKX7aPK&4r*ra$SA?r>9=A+d2b zEg}041MM^YBXsUw=?mtcQBt;e->AuzQB5DRZ@-BT|H~tB;+1cBy^@odw%a~mVXav? zm%%RK0HI+qH#xM?Biq&Ju&jy>K$z4mG)o`AB{n|gLf14*k6#BO= zl;f+sH_hXr)1opnL8vQ5!s@?Cwf|xxcfIbJzI%(J`_xTbyCbGXm&WUEd-m3VtJpDK-^MRsEUUHmRGyIQCU>ECpY|K7yq zyG4aoQNdqrT%aHgKPZ*#if6XjRj>vyGv5+f>^gI&ei##?%#mZ653x+rpB=WW-ca_2 z_#WIL0gZD50c9qd?{vcy4PVOR+&FFj9kflMt0;W08=~qNqaf%WRqC`{{Cd8h0w zdR)_c;;!tVef(>e_xJwF>^S(8m;qW9(Lk$?-{ z@FlWFwH*6g$T-j2cN(YwljIGMH=X+Nl1MH%+&>guY9rTTn=~{Vp)K86R7=kNhfFE% z-j}rf$R2RfmiZ?h!G0D0;z&Zl2J0fasY{taTPaJ7wMsF~I4Ga!b4LLkU?*4v3D|Fs zgV$`#fh#M677h^&W~ZwHSJDqV@5W9)IxvN|+=dw(H=hXZyCTeA9JjCZ2ONfAOYVg1 zTsfWlTHsyw!IBgbto@!Tb@jj_nL;7n-m!Qw-zLI8EQ_>lOSNWw*4c}$BW&Q($noyjkaqBN$vRiK z<@>sFk~Xa(V-o}i&ZDZ-$->C(-^RjQ9MJ=F{_^vxPb zV82Bl3Q1%PlgtU$))IXAt?K2T@Qq@wj53p^B37o7YEDO~ynTF}6bTSM5PRhAr=eQ+0=!D&BMey4n^u$hO`td5cI0$c_?%6Py zumZ%~&lIPCr2GAP(2KmQsBO14U#0y1KxF&-)TnuM`R36d9@&9{M&|GYJr8UTx7^V$ zz@$O}I=@Bt;G_piw4P5y#v(6$zob4Oec})IAHyEaUU*EkzmPEgDy{sVUUl2(0Q*Lf z@sIA_=I4HF&E>Pf2Nq=JBkWsbSD6u}N)uA35Sn-}vu?zllLxR|sLQg>Y)j7ftvDK?Ni@$aMtIXtMQAd;&6$}IfDxA@l9+akh zi$=2zr)*oTB{z>synjex!fXIJ$?iP>IJ zR>{(Y)YM6KOuxOiOeXAGD|sz!X%Ao_sl!dh8> zhgmC3vZ(NnK>jd$B><~3kxY|$l3?RIIjUR!Nqvv}%)0$zVMVjXr#M1*$D0y@rVFqk z2}9FTL+?cA(ZOF(DDu7>Z1|eF|4)9Fg3?Rw12@9eSP@0gh5;>Jm479JQW!onk%ruU zp&wktsS=)=tnnXaBflll-M@P=Su20J!~1w+gq(627Z?c_o)mkVLy-o~UmO$dB7GDQ zzQvX-QG3{kE|;*U|1>MGJffK4PH6K;s12w|uhFYlne)5+Na~uXNwwQEZSJ?e=CJov zr-#PyvAj6Lh0C7v8iF#jqLlU4j6)g35!Ts;_=c0ePLks&889Abz+__o=``;AwH@!v zu{@~x;T~(|t63~cN8OPI^a9IzZ+s7cwWs(*s$(YR=AIa-rr1ENE?Y|iy!XH1?tp{9 z0F|#zy6BN=x6$=&Kgfiyo-@yk)A;76>jD$_x(*06V+H^Z63z2PXJ|r(+-*VwWzi3IrGw+uWd_XKy$j(q z;v|i;vofpwprSHlMXmS{qu0!x`PUeR8O~#5n*3MR&Kl(KaDEZ$%u9vP)}?qQ&LgO? z3@@#JotWwfefX0~^)B>Nj&&J6R_^zc%X!K=xO~OKO$O9%W|b-FUtUa)WO0EmTO|Ry z0!_HL<*YYYpyw|aF8YTVm(=pnExp>uq$aiX*C;1XWtnm5MfAs?lav&B?M~EXKNfLC zCdsbw{S9uvguf}D?8*SX-AEI)9hvf|ud~#*&joF#|oWyOvS>kaXekt&2H}b_J&|?)uzIu<4p(Sw# zSje@XZ1IvqMF(-WVk~_@1M3;+MKbC!qAqxx9otu$k-F!vwqFUw*C)lOkNXR}gN6<$uqWP&J@z(>6y%}?JW0hA0++6vFmgaw4;=w(Uk8|FY;>QJr3mvM$95R?n!I4bQ&jg~ z)(H|o4;bWUWz?^xvx{o&T>BRGi{SC=2RWLh>alKA)XbsAXg8Q&ON#Ns`xE!|<8wwu zmUFFXi6l^6Eke2po9((qM^JZ9Locpa)LGo?1J~IRykdQ> zt!E-4koJ9FWrC=sCkAjv6B=NYa5KfP9ppm<`_1=?0{FN7f83K@7Sw?vaL^Jk0D!Om?0)*fvj@WyKPETMXD7J#IvjRTZ`L$C z{DHLlJK;ON95DqauxRcj#T#2r_!`L7Oecl0X+SdJA=OD^cz^|%Q<|8)oMF+FFgYjf z>y>(fO`^U4=*ag=4R~Z4=jH?DjX4W2crp>Znhdgkos(492W3LQm6-1|c@MJe^gsD$2JO->TO}bYwImojv@!2pQ;}d8fUJb z%=Xp`{OT)u5lFO;<_FHD4%yjjZigPGC4DIFHf^g}zPDO?-S*-OB`LDIB2qN-{EG^5 z(8sTBf4&IR{Pk>%z0@VSZszqduN(TvbnBger@O~2N&QhC5kNWbLO`c{Gm~ppM z`v}k~Gq5gIzZ&8MiiE?_WhO$%fXjNEio$=yfMl|gTT|xa)V}XW6o1ZRs4@&d+V+vm z<-JTB_@O!)tAA-}KH$I=pyMTWla!zz?Cy@NnO}~D|B`3TXP4d9!79vBP8d5RO2 zWAS?N=eRj0Fglpc;{YB5wkD{lB;HnPQj=D=ww(}U4Cpri9F-IdA09wnbwCgSkoAvI z04dD`*t z_5Wp8XcHU+&Fow2Ej-VUN-iH#W%{B4-Tk{BkaYF>g#B-=J4DFEq%#@l_aJ;VOfMBVQ-i`k!2Of7OIs^5TCUa@ceyf8rc>AEWPv=XRN z6Z&8PA&lN!s>c)5WToH+dT~q|66hBBwdu-^)_rM(vM#0;1_M186&;~e;>F50aS=Um z+Bf;LzYN~k82~$4zHQjd*i3oaQcVo~!5HcYWmYI({ZZ0XJv%3P(ypX;0ho? zoZUubqdh0Wbpq z3Ua}@VjR+9yH7t{o+=f#n71$V$yd|7S;((4AGTIa-WGyk zDL&he*s_hETR3{AHz8)ly?;Ny=u}n)FXXWyx8VubtVIHc=8l%@~98g;wV_y13!7<*~ zmJ@6szm6fdW@<-m(9@e!c=W*ioRS|kkEYazzEP&;NHo0MUA!S~>`jU!|FH0c{v~A)_{y^##EnesXgl~opszg#pGS>;D5td3o0olV7v(pJ#Q&6hU9?mZ=? zzzrHv=6Ht^#BZ9X=jG0CU(FIWM0FlfCay4IDe8rOC=-gZf0x&l-_D3VM&ra{#;Ive zP#IjIBd+gzabWg81Im+q38H^ zPpWR~zUg*wvcQx+uAEC0sBXx8ewIY8|0HE{cBpM8EPJ-Mg;;8zHI!_>GJ2yhZw2D9 zwJB^5W+U+|M5qu0&3r1_{9RsoaIj-bF$H@U3tEy0^%hWVO_6PTXwv{cjut|B9V<@w zJWqy0En^zhj7#ZvzjyqI1{De;WV%S)6$-=MyjE3L4v7c!R>q`q&O ze{5IwchN}$Y2}n1_O>yrcpT|amux=UV>OwL3X2AOaEU4W*h*wI<@gm6`HAlasq(WV zBn}tvm7$q;be+yxXQ%>ml$4N+P@ajS_JI|)`1l&V!^7n@U14-$+I}3;Afd%5}Z2*Kq@gxd!z)>IoJS=H&8SLHp^N%0)& z)>QK_8Tx?e%GA=dTv?cyLqZpcWU>ia24)U2SXd6^gX$gsC|I4#E{IVqeWS&KTC9YP#Fz9O>}AWKP_ScgZc7hqZ9^Wmj}O-s1E6X#E(3b!3HQc<6HT zXGqW0ID1%JO%^k2?tK=gnI>V3vWrvQ-;1eewtImWlw}s4>GW}?Qlv^K2C0NjWfZ#=!ba6ui$=^PrPmW0G4KJYaih3!tqIN5of)G67ld?i3Hr^ zXJgQE4lH}m;{zX-qfbbVYas4Hw|kH#i#n5&5UWLM{%mntII-Hfz3CXjb#<$jq}w7` zG+BXCiH<|{GZchiuPQ9|!Vk$?2f2C8DP{iPyU0NjhOCS)Tm@eY_h%td@AHx@5DTTX zt=WG89yj*6n|4XRvY zzHJ2LlX^4#1Ie^yugiqAPZuoDaJK@}UL)tC5clHePoBvW`7ll8wXlIVBuOhQ zD-x)GUepOa37e6)KTmBYB>T)S5l92FW%4)HYi&(b^+!lssbBvB59 zCftO+X@z$tYEH8V@18WG?G&N37>^U*5J{HriB*2g{j%$87Q>LIJOv&Y`A2)6m1$L3 z-cL$m%p5h*Ryg14pL*U==z*n0di75M0#(UPitgz3#oRB7oTtRO`JgeRM^|DqkNuI& z!#0R^z2|e9Tz+rDgRsBvtK?I}&R6r@?fH6lQ%s=K|DOLAaqL3i?zagJWIX{OvG zZ<&I$(tRq#R|S)3ty@OJPmb{o47^x`v1uPcw{f1Ns&Dw)#IxS5C6D+fyqwkR(LF6= zKOwqOwg|~V&c(6fPG68_rnS~rS~L6fZKuccR-s=p=TlwO9~{t!&XBodKK6~4erp{L z%xj&~#DL4F4jy7SzANY~LBPAFv5bHn+q!d%61y{jmCdXzI?^Rd)JZ6*5F6IjR-Un(=n7Dc;$L=Yc&LA3(OE2@57foFgOtJq zTt}y9?s9z`qvz0|F9Z5`#zpfYwV2yW#@7i7-WaXKYEZA#s6*W5s6rFY(8zqH(5 z*4-53t>>}mYp;j|!bY9sbJ6TmQ+C!tnO}{pe**L{*ghAPx1k;E*bnzp!P?RmO%I(b%;)*#n--Z4=>t_v8-|({=@)3< zw(gVGF2alL>?XB9>`H6Ixkh8;@N$6uZkvt;wxd1TwQ6v+h8MhQm9;I3tdRJTqBJem z)=?LNjS|lCq3iru51&_H2W*T(< zh&6Dg;~btDJ&G61^NaWY-WD}6oLz-tqeJhcsgW|lu$w~jx|=K=5Xm?cX1_x7>*<(_ zdeG4{!ikbBv^+U|0zRA8)@%#S3F`GHnB7&|*R*`4+0yWr?5WTX%=?K$`700UOMVuDBfQLg&9S1jV1Q%J}6yU>L>9CoZ+Jv{JwU_BM{kGq9{J zu-HuCac1#ia&gJ*UT`asN-&tPuf;29n3Z21(O)a0vZ66iPlR-ZGo*>E%&TYKT!m_A z9q)9uCU7MR5yyaKKO!bZT@xTa{IR!pR{2#ouq`Gj6zE@f{?vN|@^bu64Et?zIgqJH zE1tWx^p^i%5?m)kqKqmGdontPQJRnHJ|BmFE{r|Tb=((aXW>TR>WhG%viG0{;Yj{; z3ylXxG{TcYz4#<=nCC6E)2&G1{sY*vND25lX(qEc*eXReqMx<@EO&FY9=VCq0#7#; zkKRFKlAP#Fx zEv0DAY*Ji_m{F;cvQjU+Oa%I=>>Z_Q2570%AHjfad{Nk4T#j4puE~pUMSmji zt~;0_3-Gu7xLO-jn8aOhBP<1YdEI1qhZOKrfMQ2R$%#&^%u&&~+Ij6@0LZp+lBI}y7+tkdWp-rY9Id2r}luOLIQUjwyIFv+l z)q2H%-nIJc%^e*f6hpV=T)F~~_ILU9Gi{mjlEhqH$I%I3;PK$UE>df0mjkDFlm42u zUmT6VV8hsk!ye<~J{DQSy}ohKBLZN(o8>LRKF&pPHDW$X+cM zx^P!bsu;;&Z4v+C#8fKeXwt!RU6&-Vs;qHhg$A)h^>GQY$Jo7vFB6~0@+E53Ug*EA z9EmeM4HOfx$3ERaG}=@}&eoq)*GGN@@afZ#)OfT|qjV{~@m_B<_@cHF;})TE^H(EQ z3%MRT^6J`QLEjbH<5Uz{+}Hl&tO#xtl1JYvS02tR`d@lTN(F3Hqv;lJ`Jcg1Hm0r< zZw0JKp*1`2dpVow61f0x_V!R0e0Y1 z(9sxZd{3?--u!=2^$zTHcTc!*oW>1zY_mxlt6^i?Mq}HyZ98d_#0h)ck z-_4*_fcszSUcvLnhZRCt-w5U4I+h#u^4(9(f3c>zr_gv2f^#vGt7n^EMc_xg8YY8n zOqkqP_$ELckvIdXge5UFZNmtSy@!J9bWz~;?CB301nKd_smQ3w=6<);JfiL~ITE3I zU@HBGaMa>`eaPqxvnK0g^~p*R(otcv^g!WQ-D>7DdsK12ss@TsGRywag_#0gLXUX|;De8daEF+B(FF1k?sg6LLdVe0W;So+z-?>S1W$aIdzs7|0nWBL z+%Ry`kx`yGe~n5PAa|7UbI92<@t-H9Q$du8KvsR`fp9eVKMpZ5J6v};xz~z54Fu4L z(sMUH%nW3mJ9}~;Hma;;6E)QXX*;{(sIu6vPVod^E-ccgt2myl^e7u>d|!qq*D=nn zs6y*mvWo;NckU}U(noqu{f+m;hupO0ObtBbAejepL<hql;TZd}pYV4pgD8r?AIW)Bv3O8J_=K)R-`lkwyC}cH`vi?tWiS`yN^%QL~ZBeue2xF9ZeEp z-sDamns^!-Eo+h_5{1Z@Uo-=?c6=jfWNZfRirI$qi4`N3t18JD8q=e~md_Br)sp)? zMN#Z+h%D0U*Aqe*;NR^*+d8gMK93J*+^VUQlw>ncgT}2_h_aVQvB?L&n``|?R>Sux++a0Mi-D`r+Y2SQ2Y}DgIlD>L>v#Iq zzZ8>&L*ipWeGV}6&Wummczld^S~7?)&tX9@3k@hBr1*@9kl4zow?EjH+36H8eQ{U{nfR{;^_ zC4l$_ro8S(6;z!rQt#A+x`4wuo{OQc$((j4X>Iq0b;^Jic(8~i{PwnQdg`Qhgwi&)e&If*4KI`=?~OAQ0ECc_IW%}J zt5S-zYN}xO7E9%fzgwR@t6g&fr4(unf0^ICr}f^RNdK3ZmU!L7A+*45`Sb@#t?1Zk z&V&n*^Iqt<4DDYFs|(A=WZ~PKOH%(T1MaukEV(P&p{E$Z(Rn2=A+rZtM;S#2WjWrK zp7nn-kDD}!iqS3H1Dq8$2xL!7QP*ppW^9`B#@Q_r?nJNruM1L1Kl+OxxoRUbrDTIG zHEj>S&yAkPmmP_q{0@;T<}3=-49hKOma6OI0#x3ux0C-7XL2#S80%zAW#H=8Q4v-NyCvK4zn&HS(GkQe4Eo+C9+!MafMJ|4Dy- z7MR3m^7UY%(2L9b@LyYFQG_dlmCrjaTK5+^;34oL&_pn8Lu2c|w#4Tg344nRLH907 zs=k{Q_%?l45}+W#unx-$+M;)ZqRFH1^KCjZTPI>Emi{GMjJsn-AaaG86JJt z{V%M=Yh7CWk8MM|UHnd*3I3W*DM*`D)}YX~)y|wGq?zG#2YT_PL8_CH)fBaD*J(G< zf4W|`u`Ey5D9$bH(Klk9sl6}3!o$xO(>{#8YQnrl8eE*s>5>I(8$)ev; z(SJA}(SNvbx_r88(L(y9c)tH!h7wgG=h+nsvTQxFtmkx^;xpjJ7XZ@#MkLg$byM zaptQVs){CG>E*p4Jwb_g*D3OnkvVPq+Sc3FuawiH_mKO}?{|tE zA9*|c-anM=?cIkDou(wF$^b)vY}Fbn zV>U*%@S=IHV-PA-v$_-_3D`Rd$zO5qt26xobscEh#^1Ng^OHEkK)e|zN04EynJ}gf zwDURbE-7YQbY3+@y}CR_cTKc=8s+9b;>0+c6Fp9tUjCObX(+DBL5V<_rLhvgt)hd!CMje^{tbo(66Q49M z$pYIA59dbGL$ufFk$V?#Fm0)|1p2*qCc5#HD}7lv_gm?%5(F-`;1R!F89DhlHRn8l z1Fk`YMMg79_WWtf;r!v3wsN!sxhej29o1pWWhvsn0PwO$+~M%MA(?oVfRfmQ0}*AN z&qNKCg@cuV)t4%E=+ZEA1|S92^89mb-dj^2n(A|Yg#BKf8Jzh5L9|nktc+HnA>eF& zb~n3SF>hSIN|raDGoHIJq3lvokf zHoxr_%n{#ex>1txw*gAvu}jrS2J{I#X_7a9!16qQrz7m(VS*hU+78gQ<(ly!Q>QX+ zGvA1^gi2)1RK#C>lj~$$Fo^-ftEWoaXvmJMPxqgoGL3*bWc?zWQ=SeTpe21=b05=@ zID+>LE1%s!wC1k_tOr-mNV(#A-O~b4C0KXqxcOfm#Ib@h)-HN72e2FyqmC&2ZMGhY z+x_E;32?;co_WBgiuNF~oMN#1KL@A+$?!Sw*CKLsTK)OS*1}rSQ03LUyzwy9Uv8)UMr>GgRv6 z$1GI-u?Bn`jx(~j$8H)2e4eMi-9z1-4iUVkSLvJ;W$*2-ZoyJqA-DI{dhz*e) z*TgT9+JN3-0@kag%Da+`1F2n{j0VOx{vOrPr`Y95@2X3nnaL2zvYndz`h4)5TQ=VT z9thvi$%wB+Vm*E($UmvR)1Qspq*JlF0@llL0Txd2bY!r}2(?{3w5W7PPt%o{5Y`s^ z%3+IJKwE;uBzWKd&IZIclB(H3 zb$fp=)(t%!cUd=*DGgobws;0^T1?O7MEf}zy5gl}wv#`k4v{Y(5pVAMmzyWfx;1Aq zpb-TAz{@A_?^H9vp-dcAPb@hxiBF7B%s677Ncs4GBU3F$PWAo}Js58P6|JfZ0D)lTOcclodd z_$=#;GnTzmutY8emv~;tmt?bza_9E1_{-d%pT0u0`5!B;$20)*QnynmX7b1*W-k$Q zPkT+TroDdaQ=Ce^bK0tgQlk0{Ne%wOuU);{@D?;BoUVGES@%{ql5pjWo}EZg zWtUM;)XDdt%H&M_OJC?Ko(UHm3*4tIlb{!4j~SJb`itN#%psU>s7t=)0u??yvt|#` z+9z&-qxuFFDjAI`=4t39*)0||f-#h!nMKAzBsz6WuScYrjm2I*{s@mQx%TEZ9)4#E z3Y?a=v8B`$+~S#m_(&QT>}+aXy>SDSpHFAh_x zL#(P%U#Cm5XHwkx%o|0}V345=>(NI=xp`e(euP+Wv%C|sS0SlE&xQjv zAytIe*}nZEdTh_?d23Cc{fM!BUI4OTj2Pr{1ntmWa+LM$>YmGHaE!!plPIfoG}!)< zFg)9vPiQJt;gcZr84~_+KN`EO%^i7{XlIMdFvj*?FuBWJkLjC?Ehoq3tntRB?4oyG z^@^r2!G2d$GzlEjJc?Z@@u)OcnDxmjXpe08D{kmLHH0Xs(QLF|BRfY$Cq;bJ@Lfc7$v+Tkn&p;g+-~V$^FRbX!486m$>yIDtY`(9vD41-O^O!XY$d<7_S}` zT7|PSM<0sjBnFWah$H|P5l=0~#?fQOZL2>qyiAt*=~FN11-51%5^gL2eI%YjDwA3& z_$4Nwz=tw)?SmvR1?s53)4ao}e6p;m+FSg&sFnNh<%wL`X|udl@!0!>v+I^8YG}Jv zvJwqmA(mj@+Ug8q>RORB8H&PaMzC)zMMKwDmUeBlv;M=&dz9?{I5{dB%^op{A$gZ+ zsE>2LxCsx7(7uY0Ny$J%+PI+&aJr^cQW(eoWdDgR2=>)*EnU#k%>tl;1=Y@Q&LsZSR z$d_Aopj(mjbAAnSg^Z=vapCo4wktVcyH`EX;xlXVE$r5|CE;Fz5hBb%lm0Y0qMV~* zZK;+c7M;alXhnQYtnWi{ZFHljTU<|30e^qnl2uqOzm8C-U1T+YVX5ieAopw=XDwe;o>hUc3uoNqwb=J;ymuFH zr$~qHLc-j%S3Z466AaS~2Edw3@2!PvkR~3PVv8=en;sTS^cwPKuR9O1e>5b0jplNW z{doW^x-GvTeCDpmgu?E8u-9r~uus7e7O_>S*+ zKi|feJ+SghXKtywP~~P{ZZ;EE)(LU5(Q#d+u5TULkxWDhXj#~Z+dAwhoSe{yg)i5M zG|~|)!?obZ*Lj#wH6>$x4dR|@qGrFp=RBurg;!@=X)BbJJ`JC+r69*|PL6O_;`O~k zYpZpcw7R?zI1th7bhHL|6nx0Pp{8H@qS1suWTtaraF5jd7^bLhdi9^Hux3RZD!|eXsy>lLLzjCM(L!>Ue4wS$$_w^RYF83%uOTU_E`EEgyZ& z54l_1gnR_4Q@Q#W?z%RpaLeQc;g-JN5EEtKT zvNi3+Vq(ziS4T&uC{m$osBTngwKDos$|P+z6B^~6T<0aJ&QE5rl;LIMPxJ2xWmffn z0WcPs4;0TXD5z)8Hkdnq-;+5&*J&FFEUvj-GgdMAu_!cK-0GQbJF6@)!Cq+FYpw=K zmZ&h-2%oxJNW6Z4m1RvnRxVuK9ap9d z1s5}FLvYm-Lz!vyxW}{|Tz8~?CnU2OU)TD)J=K^M(}%MmT7-Kj7oD3k{&2)?n!H*q zPGr^SLOxF`2156Pwa+Qo%HYoEOJp2%%qu%oi}#$4Jkg0$1V6GwF<8>1Bi-3X*>@Oe z2Q^|>$0Itv%TmWPW|~xn2@nTf!iIu#uv$D% zMV3}O<^~$psXt}J)g|i0SUV_+14fkwkvwHh^TsB#9N;OY`AwpJ5xL36&rRt{IM0=M zS$#8O{;o2Gkg`hm!RDiBF-00D4bi3+Mlt*0l?vyfuvq)(DPO3muMk)<4Tax z+FVZYgtbpHxEHol)rpLIK+%r$fn6j=>(-*t59Nq~4DrgqE?{8D$!FHKJG;RJg!}0t zZ$QZXapeEe0>O`_e@<^Y@b$}#q~%eytWOkMl9ra?bO)rI{B=?3*hw#fgthWJdy<#< z>~PyuBsv9TeaY&d^H$g-US3Hxd{sTEa2@8(pOO-rh%%7LcwtQWd8Bs{C<_t>w8(((hC6@Lw^J&c(Nz0=;-#Fq0qN z@+Z=$@pP*wD5CRfHz2yzGGYJ==>13gE9^6_H;BbNu+yDsB2A5;W6<< zk`_63E*Y;6bLhb|TPm)Y9spw(oZ%(_I^MTqIB$A^7bl0&-to033P7Mex}%L(wqp-o zb$?5NgH#;OW8>VrhzkrMnAgdZydX4g&hNl55$+t*kC~>eWRyhLU|e-Sz4eSOokE}Y zLqWf9?wmw4TB3S8!#_T`aNb9T$=fVq{}T3OX}_F`3LiO6m$Z12I$P?LmWIS`bMC8P zGJBhpqt^Hw8Z==4nxhO~(n-c?d&5`Jy0wAQ2xnqeHk`IN(9N8BG(MA5Z=x{gZpJ-= ztGU71y8gUb%f&H2UyWyV$;J6JURQADmjseqX;!&3V{^4}AaeEHcI;y9Mz-7Nh|8x$ zrc`feh+#urT(vF3etf#6P3Dw62~DRo4)gP1M^JS(uzLUYx)!?w-?q@!&4CCcKj9!% zL#Mx*Ait*kH1K#VGYUBJvIR-rnGMBWRZahGN8+Jq#_+YZp?zo!DN`;|AP;IF2cqtm zTC1WmyrKsMtWOZ^^ue`(?Ie$BFw$P-(NzpwfLqh@3d(KK9$_m~i5gi2k1>D!&*!OS zTD5E+w~LgJJItz5ZPH`XJ1Iv78Lr;u`c0O4DfQ!iNEFFvo$4EhO${^vstfwC)y zH+&rW&NZVf=5LJ(y%9@zjr%nkx*Ef&X!*vEOZsEZNr;0S3eCU!e{k5t8=I*)G`I9N zMdxiz5-sZ*0(gdCJI{68Q3(ivUm?O$=(ceu#Y=t?^F=9e8~@ zc5f;=nBzk(RDuB6EB`5=K*IO{I!s4~G-%16d@G-&-xa?$2v;4|m_H}uScqLp9TG+T zF-bh_l2~~$LXX|Av)PrpZy|^70gVHYRbsBc4r>&~5*_^+4}s+#stWhh>)7aYfq@Z_ zToT!J;{}4Fl1^wR%1N2do}b?3`@})A^Vj8dqS{0EYsZ{-_@6*RY|arb&$!9}od?Hv z-%HZFOz#56&28N3v+O&zR3r@vy`E9LPk;q)hQd{Y*cunuejr#Fj1q}Y(Jqx&`bx6qY zmWZLAsNdcW200g~28JTZIHt-f&^hUh7ls=iKK4^<=VuOM*C!a#mU%Tpu01zSy|o`S?8ASa*5mlhbt-YXNj+v}HUd6`iK|6+k~6prWXL zej(yMU;QY__!9td0K^2~$y3h^w=2ikttDSBe`I_pb5jBcJl~U-!A>{p@$Bozt=1$_ zGDH3VDP>aLWqRfyN7f-qU@fV}ryAH;nVz0a+vhiqSs;J2H2qbu@bFa@7dO>k*;BJw z&rgQnqm-fIJO3O5gJhceN@a_v@+BE4FMBGvocdvn?2Q3$%+Wk(mjSNlO^OvQgu7V- zT|c&BUxH*JtJ{X4m!q$95lA3q0jpWboy(Ntkeg@|mw*zoImIr+ky3T$Pj)0R*)jzt z2YofyLRI&-+G_uZjA)S@?1`c#>976ZND&H4uBX5;WH#7Y4XZEj#bmlzCUA>5!Se>zeo* zS6|jhpK8uh{QcfibSAs2N;$&bh}qd&9JL|_4Q;jS+9l2eNsqz{iEl?XR+k4F`Vf9T zrMB&I(993Q(`YY(JAhAQVvv@ryjmg-cWzc+u9eS5lZP!GwgL<+fT{i4J+hONnWrixz?-xfs=P zJ1AVpC{4n|sGzk-jzUGL>B?@EIF-D~{q{&g&HVRxCr12$R@JUv-szXdtU%1$bs3)T zWE{fDZd3NO>p?@_JT2$ZHt!a6>|Qgq0dE8CosK#S8z4~3UXH)asip{i6hoWITK8^K zEs{an?m<;5Z|bHk5V9;&oSW^lLw;(|+RsXM*pbiXDO`@zb5o?4U5V*Rs+r zPgpG7-Eu2no?UF_6PGrJEnq>%Xd$!xtsTc{j20|j9n$Pjkqz%QQav(wEY4Ps-Kc8U@Q;f6xpS(K zp9oNL?o=N9IR6N;xjS`X{u@;u&DSlJnZ-eR=7iKXBm5Yh#GO4dhxpT}vYW`#IEEsnP3}Ev;j`P@)>n5_~ z48K8?Ilgfli+#bf(AiyjAWO%CSh$+CX~o`oM6)i4=QPLvMv4%g;(SvUi7y5@TEf*k zz(bCNHXBN7Pq{YP z>k}uU6e@wU5;!o7M)g)CM)fAdYIDiTro6O!KqkF2hG6`~*JFd{rbSzl|ef6|uKQTaiQn6vYvEeGb zY?xd6ce7ANdtA(X1yMEuZ1o;dZ`|khj;XJsv>RjetyG&UDMV*$=-91y2fXIg7g>i8 zE_DXkTQkND6jIUStU*x>^TXjhVttxJ=B|<;*)D9aN$QkXsCq&qWv8my5N2igl2FB+ z0wX+DV5KvlO9Xm5j5%X$m2FmeAIlQPVxcY;k6SUNHLd&$G5)BhO;3Z;0cEKnaw9`~ zE53P;5`p**cZU>N{q9FoJ}fN0XktgFm~9$`-1c` z$N0Oyz;Lor6Cm}A|5-b%K*DZNMG?r`_R`OMU0XTpMX0Xo?#iTKLsnqQbN{86dG+a> zy!AaxFi$M)8ncNR;#W@6RTEKj0aIuusj+2@@M_qXZjyE?tQ;Pj20r-mGU_1O+qg=$ zc{1}F?kQ+5U4ZxVaS2hMrl=W|j6ylYv0x)L0lLR(M3cvFC6!NrG{{;e;Uc+U*=|v+ zbbIzCJMNXI{gKN6JAXz^TMXdIr9R5^H&0PM&7)0aWyqJHVzb$;c3mg6JPJZ>Bi%A2 z%6UvvN9sv6Wn&#!s(&if0XX*OmKm$Ibf8nHI!l2Ra@2`O2092$>aOUS>-Ra_bgq(R zkS)h+>@M67I-2lv&)gIyDh4Vx>Z+35Vi7hWi<2d}LRPK{#^>!beIYzwmuoOvA9`3i zbZk=ZfO_t?*?nDd9W1jVXW_HVPO7Dah6*4(%EnHj+(>AHSUg{)0O8lU%``4<^we;# znH{;9-E+XgGNW1Du<09p5riyn)O3zZg82x1vs>7$r(-R zZ~`aUo!oNnhQvfwh3rL1zYrUa{{Hlb7;Z9e8krZwr198`P14Zq{zQsp)S*Ap$=6$| z!7P%-S(dH%J#Fn7CN?-r)zQ8zvKe38vz)B+k(eJwJU|J-V3Lea8m(;9#V1Ehw43z^ zxj_?Olb5wR)Po7ZQ{lJnLtl$^=R(faSbSj{her5-4$)FUal zEM`!!@D#sGjbzfpOqcIQjl_7!7vc&zX6lpj!>=j%AF^q}9OImU>CxiqeldSf&xhlX z!Ae-TIbztV{iqhCrzU~I$VDtU=H(I_|4B#3pF-RZOCcS^p#b{6AHV(sYb$Qu*G=TA zJs%{3CnG6)`U<1*l4b9dT(JyxWh@hAUKY9_!8|=47AlJBndf-H!Tm7(#Ezlvz~`&n zxvOiT?H;iT%P#g+d-Q%aIWz&VwECgBt6oQ5b6TnA6t6~>o%15%@wEtskt6Jt$gZnDkWwqBbP*NhEy}(Pp5r+UBBz+j{_%~{PivZae%n$x%Njq3;h+pW{Uqev+|sy zat!z&K^!dqtRe-fh#WFV=()JXd@qvjX!=>1rCk%Ey+9b?bw#S5pu<|3Do7`mz5GO-H*LWg~G%W%P?`uDm<#HeLj~ zzW_|psN8^G;=SR0YkK9W6+#?4*ZBUc-PaJ|9UQpy%B%1GzwOr$FMOe-_h$>@kIKn6 z%fC5WtUHvdozi`R#PP_Ue@63^V;!obx3}#0rB^DcL9n$Ulv79}AE~Eb7O;Cr4@&va z_V#0kxeAkomjqsH-3+ZQ)-Dvxg+NVRPf5PB=+CJ`cJ|kHFC<2 z%|N1#jolR<_%Cy3r;fkWOAaR|m&E(Pj(0j}tG4td%$~v)0iPl72;TUnizBl=g{&CY zEE;ZVHQ}C{AMfEW|IisXfBQxw+3HZkpLtXvIRg=sU+s?$ZC#}cAG90P!=E&@sp#o= ztIgK|+41aA2kjGEPr=>A^W^n8=JI#i>2Tb|cQ>yaaP>Z&?va)#bjKB(_=^__t1o%g z90ic%0mjN{4*|cwd$Yy(lXAdM&JE1ALN7h9XSEvI4qAa@uN473q~Mt66ZVNfEyAxp zNi6*`KS7rXf!jl(V&>;F=K%toIcc9x_o6&SzMf_a3S(A`U(~T_#Lg=RY zjEnMz1{EA6lb`vEO(1;-0nP}l zbr3yfOzo}0O_^MF!BR`D`j<$h(wOSRRw)7V zv*?SgV>JUxC5l?6h(I%YjjQb(I*xg4a_u&IGG<2EDwWz~qw3*-a$_Rqw=+mHR^_ew zwiv}5Yr(pB^MAC+Ze6w*sbF2cDHq>Sm|J&h+h0HaCAk0PzL{?@!2O}!)s`vK+}D#! z^EcXn?SmgT1ZRWtsW|-RSQ^_~HwClId{(UzJv$RST-x1);1-8bgd|!r`TM668^|-| z26d~13>uQ2l7OZMtFGqni?Pf(q)a7Ub46#9iuybBbkjxbmz=K%&O>KrTb2pg((2#c zefi!T1zTTd?X};qQdcrE{nw{NcHCd6ar3IEPQj~m-#>r9R5HA+Tn;6`UW~M-&4WOP z-}i(38Zl$@a5BaegV{RK`YNpbe|6DLarm^ashFdN!d?>oIO#eXP3a~_C8 z5Q1F|nIrCSf7j3^Mk-AG}72MF79op>8^Pr|E{w*i2Itf2w*X4pM-l!e^^Mg zZ}7K;Nr4B$U^)ET1}0Zi2VLOo5to*2)*r|=5(~`gZlo$sZOUq2gf_Bs#_gjaZW|0s z!^LVy>K9An-Ze=IQ$?&#yxSvAEr`hH0jK2pzN1t@eEe`Cn%}Y+dGdg#C>ZyOc#iyu zlONiVW>uYtd&}8*5M2{*X6=>MfQPn&o7Ifz`_-m0^D`66peoV1sV!^~%2R3PPz4Pa z3qycde-q8#eKK1!!k>;6K0Em>h(Aq!Jp#eRIyXc2&g%M zo4d9PH&^n4wlpH8+hxl z?`7;ngU&UzK~+Xk^nEjYyuT%3rw*r*aP~hiCBOx3RXlClv3-gzX2y;Ntd?z9SLxF+Y(4|M;(K)fZZa;B zIq%!p+H~esr8G1V&J>pn?cp> zatjU2@JGCDxZo3iz0FYRq(3DKL0z{{bdFxdSw~;{E@ug5wVR1D4V|VR$RH?Yi#DH z`&5Xtn_Bgp$aMs%Q4a$LaI}ust2y?@ramTj5sH{o#T~`iS!yxFw9X# zjp0jz{UBhe;u}T%Fb}O?W+Fja!@9|DQs2ZHPLmI6LFEC;=y{kf!Jul#*3^()bdan+ zhyvu13iLP?@D4veC42FivKzttwAZGI6q?igRJnIuQ+;m}Hgo=yzb_n4lMhhmBZ4RzF= zxuT2H*ywmUc-7k>pVH~dj$GL5OobIz4Evgk5m=9Ca4TG(2N+fM;1#q5>>^_SnC~~V zPO7GP1S(Y4Q)p<%hB~br{1MKVNj;^)ETA5h@weAF&B9yt|jpNhtAS5FZ$oSfY8k672y0So-4e-2XW(gy9L1QGjnRBXvPV z#hbCG@}E{ecC}cB2F^jtg49aAktr+oXEZy}@eO-%CMM3Q&Sp0|cTDrEB4#}db_*1m zEo0C?i5XbUc9@F+7ZN7LD+oF^`*XSQ3=h#R1A^AxqVYq#QNYNMT)C0ce25r%dD~W{ z=G*)Y02OvbNs>;?H@-4pOGF*RmPUaJI;Iu*3;U3g*Hma4w^>1kB||vkNc@$bm1$R7 zcxu-}w%LgVtJ@i}@4GZ&qBY#vY7ZEFwLO?9yS@@;N={KqgM(^b9YoBg+_b%N@1^^O zVY3ZJ9)q873@}NdzmX?%l*S*h~xi^*}{4+YkPeBMRJm$DmkPxS+E(sgRerwBo*SLOD7_oONBhiu06?9e;^T zmz)|S6RngLgDe#Lve|-z-yssvf|R1TEsmXei|nZTJ1QiFR&S=Ub=T)GMd-vybdiM? zX6cSgFE#p)w^mHO`3=b0lj<&HVG0j1$V(_L6hv` zwgN6g3Hn~xwfvwMXBeR;vyTu0mYuePa(8L9utX;a}eK?s}0W_InB9)M*!$!nK&&YvCDzc)!iXaXU^RT?tNond zwJkj#84L=7_WQ`(O$vfgT-Df<@Ni9K&a25E5z(7a#hbHBvjd7g-21 z<|3|C)+~yJh#2PWB?60=zV3owxlg%@e`;BOoBLLIc3M|8wOJp) z>K@aWa!wsWGzhG&koYqGxZ!dXiU#4?74;4wCIVVY7w@&kD!Ehs}h! z?I7j%1B*@|{req4ZB}qNnsaHK2pqbo_SYA;;(t6>1<=}{mdn$#*e{260v&W>rnP_N zhY#1B@|6iqjJLuQr&(M@BTN`k&9d{?(qWD&(IGgz=@v#zuR44o7DD z)>31)9xT4c6eH9A2_4^KeKIky!3H!RVJqsPh~=%#&$~bC)Mup)yUtjA?U!@x-dZ_1 zGi7x-Ci`~PZB|UR4r+&uiTOvmDI$i>^flv6W>ESCq`+Ts7WW(KL*n6 z&kyGZMl4BO5Fq^W)Pj6zPU$ucw_YB7XKMl?+0N4c|HE39>31q?+F#A74LOhh1pqfy zds3F*>9k1kx^{OXr-8m34IKuOIvsT`oyvYpvJk5p5Q7yb|B}M555vuqBF($jHw6WT z67_BONbiw6KCo+DJ(%)gblA^-z6j4-$eQdC(Qf*(5> z-j=ht`)dT|;^$A{{%ZeMTZFlFX$$o=TBgfh=ngo{*XAbyYXo-#cR1Zb}@Fsh4Zh`HX=W-KpX%lSlL*G#JN!xdqk0T`H3hPbeRk|v013eo*F00RZ&7z!cF z)1i<_F}Lld{7kXv=%qjZhDDVS5(!iP`yBBqRBY6u?1f8;>_V2qAwN5KoXMf^4T=jw}L=EmfK|3Be?;;2;=Q zRivJqG?u<5oj49SI(Lmm!AQh;2BO6mP5&4sriVgK*uPFPdQPIiQ3>}RNQe#9?^XAY zeZf5s3Ru$hoqbAy$0}nxdcHHB9DM%scB$TX3M6kf2THmX>*vU#mG(LTlc_a(K8HIF zF!!YB6KIR^?8gbf3+0FCANz&~`u4w~i9r2Dmx~0USs)faZ|^!=&C1Ce!2UFn?}Y_X zZrA~Gip zP!8A%=7#@&Y`q0rT}=}$h`YN>aCdiicMt9kA$TAV+}(mpa1HM67TjF}1b1eWyx+a^ zJTpJw?9lT3NbU@HA_-ukdqi&Y5B?1L9~63R3f3R-O)UGQZCuEySrR(M z;#-jzf30tbb*pS4#>;>!7AFFEKI^vB>Fuh9L@24 zaSbE?&=yS-cv60x7p=v{h)2m4-#C$gq94AdgZZq&%$#&nY?MlFkJD9oV}D7WE*<3qQpOal3Ke#l8=)zz=vg|!r*-<)53Lw zK`6fGNMZ$}@k#HsiHD7*)N}&WaZrzNp?G;^Nut(N=qF4daCd@k!qN4!fSEEK9Z7Wsm*`kKMMlicY4~VwEQrvEoGuf z9Yc1T!ohvCYQ76gJzY%J(Ct`9x_eO&sSX5rZXYe+crYpla@U=_SqqgAd7#NqG&|y* zUc)lGu>K)TcfX&m;xb;?ouhU*!MmQt=?SRzV@^5he&$I;ehgToaxWjQ8v~8z`@<1^ znT4bkyzs#yM@CP z3*x#%>OmJm4B65Qw^BGI)wuFN(^$(=v@;2nUYx&n?2j{*>cxiu#jIaXRDVDG=@~x@ z<1L84m1<=DC_8r#m@?`2DO1i1$Mw+_-_fc*=lRl!+a%M=bf#IaDqgKz5!atJ6=N&8 zrNxxpfgTj;E(!v_$3ihcvLqn$a{^8)u0cqTJ@LK)HQpW3Oshs#G`<}j%!;#~;Co`+ zkWwIVplEK;SA1O~VG!=#ST!@Estu$6Q_tlqH4V#~`#rV%fZv#lTuUFS7`gVM1A<62&%e67Te+&W>4iM zRn4jD7{^c#J%zcu(=%}G_rkgu^{4E?p9$v{)FH+5RjFuu%1S^S6!OpD-XIT85Mt&M z|Ke`JrGWe&A!?q6Ltq95>kEa*>ukN(fcd~p_2LfDVF{PT~#g$U>@dc{w_ z5e~*)(Ee-+esweWT1{s}K{~z;`iAcjfszgLMA;3!{^N_X#*A$*VdYrf>5Yv$2o=A_u0n?luYj%fG z=N>%@vc#%c&na44DYBSU6|Zb@emzTH@;=7^<&HYhYOk^ta7ue-fhKDP){4tZM*XRb z#Vlg3@n`5si|?rPi5!ut2o($X$e-F*TV!WY2g{X-)J&jdJ}LPx@lu@N-5bPcppBen z31)-=Zic}G>`qm`gsl5rJf50$1)biqbGa5R;!oM+R6m?9|6L4rLdL~S4s(^_Av^PhOV9TG1M8p4n zDH7g%n)R9inbe!W%9`_?URE2|;yL}%RfT9Y3{5ljvh4uLOi@mub?QnYq|&PvAdiJ% zO8-=R(1oex1giqzi&OQ=_*e@-HmZa29vu+x(E%TAB-S&g-n8Gj+WApJqV(paH;$Mc&M-J`YdM)z{qG4V^r{Br-EGz0!hL&O4Dn-)k z)BtZzZ=dzABY6*TI3UEuA>!-q%6E3RcW%WV;|Vq9l$T7>8h&h&k-<^RaEPU}uDkCpg;(Ou1_d`+|2@QA`@sLJVqQL}Qe%uT!_cP{(+1p6{m9PR#(p<2gxoJGcATrfYu#-W zw+WM+#a_H%+FsfZsQ!rJA_Y)f6)5*W175Ku7HO29KE7Zik5Agk1k_AFGfSSp=P*TW zV{b^#2b_Q+vFV>~5egn*8+Z7HEA`!TlrH&Du-I3I2DEuLm5gzBGEo>>KiFQFibvDv z8i7c_-W_c+LkTGU+L{3bKcv0IaprWm6UR@avBdjY2lc@eC(!0YtN*I(mqOg()}}v1 zS?tFE5W)=Vu6{Nv!EIjRNZ?mrxFvlJN1Cf5FqolXDX$>8+n$yBj#%b4_P^8~A6y-& zUVGEvtiJgCx`qxYI8hijGI%2~ljYC{FPWRX$HJo_>WHvxUqvTzlyT9l;!-(H{0!07BsYF>eG4kcRi?&pY=i9d zRz0!JQEn3rKKH{}h3Bg8`1TPO{9*YmYp(7Aj>Vq8RQ>9G6~YrYPQ0P~-&`xI0!9Bw zelhBZei>{v;O(ss2A-k09$(MoPOWnJUHIw-7mOC7eg~@krgl;Wd>A!0ZqA&L8QaOa zPu8s}t-fP-$b}5ajy`nE_VCH)alAVQD3MbKY&RX7WPjLk4j`pagy|Y`S@6;QEVL{m zH>y3O&+37Rh%BQb=07NQr+3pGBli9SV^jNbm9KlmR=$K7;n>gkI%gy6|H)wLz0ezK zscmq6KP)w_Sp5`{&6(oXN!&cN4e>}`gzr4bSMo@t?(dA#nALMeZ*={=@{9dTjV)K( zW8l121!A*xMLxn}=e*jcdtCa$;Eo&tCEU|CoMJgNvZ0=~_x?7ZUE(hVzL3XE`G zzo_y`C8PcS3!67tyPM|@YsIv4g+CB3%uSo(Oq$SWxQ=bMN{}G5?kFF6O(f~`!Ox-@ zazF~``xdAE}95)_Aff?HC8$6b#sANUC(PS=g94) zVj);}WrJ8_qI{Xm_WfU3DCJjbCHyi`w&%WG{_(ryTr?e(K*ce#@dd?zlaRG#5UTiC z-#Ak}n|Rol9k++mglzv94Q^)PH#?Fv&g&#dnDf6JFXj7L0}Y?lZ-V2NpVl_P;IK*K z6_~{M_1+n)N_UQlaI>6R4v{o;wuP%DkDPb;v9!f~e~|2geoe2@F-_xY0Dj_dMxjb? z8b6-`IP%Wq(DI}=xu9EbBF9B+aAyMBhA${Lwt51x=geP1Cen@9h=!c|($b1Y_SpQH zy;p-j1DEy4$;`*oDnB(fqTN{M;eaTae5sTdf=|}IqyWw2b-L_Sg<2(8i0lO5SY9y* z6SWR+!WYktEED+M(bqL$tB~sN-J#EGp_{m`|akWk?-z>Y?h! zYo?%w!&lCs1RXO--b6=ZQx~E=;s<29Mk3GKhA*C_mvL;FFikl3}Z_NR(R>SYxT>1)P}tDCxJ8(fY19Lj#5Ehfx`&buJdeY0`h zNa%57N|tR`bZD>pEnB)drVI|!|JCjLD06pXBn}((Q=s0I2S+ELfAm8%FX9y9L~ZKL zQid;oR>%k`880hRV6= *FQJ^PgdM-7zfXgeSHKUlppL{-M6!yUR(%5VZ0g<8(w? zyzy;c@h+2QZkzkc=**}(FK_L>2sC+VvM=|y5|CNr`b*A7R=q+mfQyv`%w1#3<5nnta z!#&B{%i0xU0h6E_FT3T}lWp=!v)7+9=#h)3e*ztYUKUd|F5tjpH2kw=Tk4)6%e4csKN1F|nX#cd^Fqfy|a-;is-Bk>K`Of$% zVa?4iK?ZxjQk{+R77QLv&3U8YXd7EV-$yQ|)2ObKP&gKTF`oa_?Ff?UpepFZz~5LM~qb?3R&7e0;kR?5eyiR;7%F3 zWfN<=`0=Qh-(UuXN4AqH(uw5uk^9Xat5>83V&O0nFLe2tQIL@B z==yS0*44Xa*Z}49>!YobC-2=)rTrZCzTnc{m1Un0bDWe)QjH_rIqwkN?CgxWtZXKo z5`V8m^TiWa7GmZ=7HtprZJX2p?r2iM&2Dxz8&n`u(TU9o;qY5TG8u@m1s-Ex5E~W| z#(jy%eZ5(W0Oj|UIW&JI+|+M$`yda3EK@jQa7Nm)3m?CkxuiuWK1p6-L<{7y#`hex z^2i-J0rF*SZSdIFl%Ea;71*fgmUEEV%rKcRl{f_E2Tw4ZVQ|{rzzx6NIGm-gPscmO z*ldX3BkvBp%%yLl*IZgoq!yb{dX5?q7+@=Y&c=a z>c@k;GEhp)X}SZpy85;N+m|2x)%s&CDQSc7-waXO}R2A4zu_X~dVB%&FGT*&6% zGN7h{{T^wbT3q8>*sstq02d4iG=2NykTSt+Y8Yvgk*IS-lZYDTPZqJHeWi*N<_`JJ z6%`*jtqIcX5cG*`+1G(Hzl7<#7Y?H=kK#JbK6Mg{9uDFZZYEAX7kUu$3L;^ zE*=lOD2{)_TPA>`cr>Vmq0}hdu!?q^KD)p;`XP7bJwXNZ@=dRE|JX|7PTDdYIv8+W z3eP(mjm^YScO`WR6#S=ePm@KpZ|4F=Zij|!*1p4HAFTfDRhnEwCEAHkv?22tET352 zEz9X)Izli(f*UeGb(Qu1%2-uaH&)1)!tS+QRv%D}o;@%PtS>Z)SlY2yesP5sDH+U< zL}>D7gdBN8a^^`4hIW)RnG147=a0SGr2w=Hes3LyN^v8nqGy50%mDNsTk z4>>Z^luiw)Ay#8CMdMW^;~7zflr}&_;qCc{6uTuP9%3rcKRkP(cJ!#FdzK1Hkw>E9dl>r-tvit>~)YcPM}F`!!jXPYs4P8>%qa0zJnFw0UWLo5F@ zMudO%RD#+7DEh1APT)hC4YE5T|8HvjkCC#Q-@A_AZ_^Lt)Xeg$DUva;*K9~xYonOT z)MP|Jzloeq)3Y&`2Rm@J?~VKDhN+*5eCt(X0Dy-&*F*uyC8N_F;WwYZaOWUn?L3%S z^TXpVr9{Xbbod{`jj!<|P|7$u65uzRRS?td*B^L~rn?xivkcn6!f&~etbHLt*(in1 z>|>k!1A2S3Gd5DKlTIe(-P@SQnRlY%Xyo&iKPXhcqDqx|;3gk0islylq!Z|Iu$2;W zNxvh69vXXws#!^R~ZlkP=zhyPVswS{~OzXlK1Ax@Y>tkCBOBtA`zqq6gxL_(*rP{Okv* z>8Q+rke^Dkfe{OZW6lNNgTIWt$w#DGwDV8lPUxLVL8$z_gUibIY zYTO(EqSqUrG~#ERI8hI>)OD5pS~ZW+2lm=+;aOLQ)R)NHp6(MS;Uk|4BamRxIFwYn zVB0-Ii)n?cCA;(ma9E|bI;L79U3>kpUyh)ci-@qQZ^-U5Qf4zuD_N3=JFPZiTQhg3-MHh<0z1;q_4fEM#!@mwt=A*NXD~@ zXBF=GM@s)GhL`e>^jx&!cmuudBc51pcl8+>`l*enmi0d!J2ZdJW<>aKd{NRZvRLao zU;U&;oe1Jw;3Pr;B;Yz3aDuG0_ABoQ z2pn@rrj$;@UmV0?3ergq?Zd-a2fb{`1@=?&0VADJPhEKLS+9Ob%j)Y%d|3IJI+dGL<@45bE$P?q-x ze6QKFtqlq(2}Mrt{)$<5y7ZsRT}$yAkWY0@rM}-ho6$cpR}lJWtx6mY|7@Rysw=Kq z>%aBq>*aBMBMfvuP|@Js(&r>nSCzs$*zL`|yJ}u`>M%;|;(0qGu4-~?TsN?qd6bo8 z{NrGTh%H5`zrY}crF#lL`;AEfh!6PNDwJ%Pz*DWC+Too9{@CZTTis`vWY!6np}sBV z`S}psArU|d7W?P`6W?7!O!fD+Lfo|%)m&lUDrb&(b782#ZB+jn-5irBt;u%6n766j zf`3Nrhz8FzLjHUM}iJ>fvv*ridwY2auV0vOxh#$mKt+J1P_+g^aF@ zR%tPUBkEIPW(YyNsR6C~Ltu($@yW?G1Iw1|4ts4>*qtSReHr(Mwue1^;5jo0| zP%A3sU)ofh{4sBJp2PJsG^LzI}Shq{V^5dFs? zf}Erb&E{0q(WWvs&VI74pwx-msHv&mdRh`!D7ujyvr6zx4cz=u_WwyRdmyIS$Zo=7 zeT@XsW-L&;#7BV6RKyW#Zp%aXu7@PU=OqFOBx5;qV*;Am6BQPQsTA+iupMHGVS-6MgSmMSKmV;8qxcrQ5$PwkYdA8XECd z9iMdz+3_5zK+Y<9C|=GmOwZIdTV2?W^S@0O1rpKbPL%7orcI6qC9p*qv~JB|`!pc? zE`O2Eby`|$WNe9)!K0Fce6g#j$`Hln`P}(!F#~jW+Q#ZC%p6lr2HAt!*CdC1zGnCHKNXs@C+)ox;u4*9NCx4j&#Q3*C zSxQTGV{8^R_L6J0a9_;oWas|kkz`0Y+zFQi32YxIU)-%)34Sf4%*w6KUxz0(eY-)lur)7Ht!TFs;H`+X} z+??a9K^>g`>Kn@4F&RYc!+a#*u+0@XjtM1^L~V2AvRnkbF+WQC#2q!fh}YV(*=xB4 zt;A>#%Y(_dz|(uj6>^5-*~WP{KW@Z+yn=#AmFX+FK=HqewS#K&ocZB$btCUyTM zqgS%$2Segff(O9*V)& zh;>ClzQI4)&w!~tfb$*3#z=qKzdif9<@W#-khS)h`gS;!0Q$i*inaCXR)Ydf8T-?0 zA5k7$i}+o-%t_gF=wr4szNbskn1@*@eI}Q18mI6OK8pM@$QC*Ia^?q_0Co&RCt$SY zH>+uXDXgMD^gslKIsR4fptgs?QKV=>oxIXNB<(=dNJ6w$S7h^&=_EJBjux)F$ z^^%h75xB>2@fBFOQ1>mN7?vfFP#YbTgHPo$s?aAXFS1*|yC^L|OB3gC!E_s5MSYz2 z)$Fq09ZoA6wsdh`2Qgm;A$1gHwg!h#!VTjrmR2P}493P-H~3`v$c595_iNJy>;kkD zAmDz1<-Y>-NwCBKRrjRP+#004=u>-PopxFm6f8V#Sy~$QWjQo!vGZ9f(%L7rCMHt9 z3uTe2b@mSxACx8%y(H$L4iJ?K5K%6nAd)!0JTJgZ@9)aMVN4$fe(cmrS>whS zglH#X)Pi^#SvG$l6_;B3PxNamPvB76Obo&A`(+WfM3Op+UgIW(jN^W=tMaV=lh{9+R{Go-5K5714K{5HuH+*ORt|Abm|H}RMB zDbPOWPVn;fbs_=N$3>*%5>O6<78-BKjXYxn;}?l4wLn!xtue*4o95#dx^}4CvE|A} z6VFED!nV~08eR`7y8Z>W8<@4N{Bcim8W;^P5MsvGe}E%p^M}L-(t>DS)NLoV$(I}} z3a`s*bmb&wCG3_Ioo~m}JU#!bTHp|Oh z`C>Ca{CF8sKuaby#>LTzl)-YWrEK{Dmvd!wa?>;n$koC^VX@(C`G>im zOWKm{T#LOYFq}oGjT*-MD63OPjm5^EbESK?=z;;*12!~QsGsyI+@A#gR3_TCtaKtQ z5U?Wje$&B$OiN_rMZ}YYuGa@D1dg9Kal#~^qwQNU!g_|3C^_f34x>Z@KhG?2qg+O8 z8|Y;{XsbmPjBFLeX&5s-I?o!EwYHX()|5+rN!l&va1IYB70*- zY=_?)pe9ESYXJhb(#6#Owi`}D7>cey#eMuv_+;mbKe-Xa805ze? zdBjB0N$4MrtwxBXAHdL%k+{uYnwZ5b7`98LM`eM1!2o0TQ_rKwaAMTsq$~}rF(AFS z4T6%uL+Vzbea$6*H<%UTLX<>iiqQHCkwiVwYrt64_g(eC^HAH+saOwZ`#JDOt2YEH zk*EIXT+xU`i(}eD2WxbRHcArsUTLS2Sn-e+=m}~E;Uf^i9ogXUQcSg2euel9qFZVwH7VQL6J2{? zk+|koks*SSm7Ty!jf_bolS`yN{I|3c8u6r_TAv6L#L^ME?6n($?D%uDMZXNh(9%u_ zmjZ1$Hl;7HPY*AfCQFSHXH;DduWFPR0l^gP)tNRPmBfDcLW~=>;#wfAIL{X z$}=0Im(-lL4W^M|0QM-(1u!g0u0RjMmG?tXuDtQ0Z;x`bJbF+=GIYYmM##B)gT;__dwTrmbXtTU11NLLbh-=@SGVwVV zBp&I~pD>*G6{26)2u$gqA7D=e#YMVlz!vKz^EVEIT~p`ZI5{b~eDC%c^5Ytd&yr`z zQDPV9RS6`G?SicRtkBcLj7A`f9e=32*<$b;3ZcMqNL%A!Mb+U4MRw-Vaz^98L4yBW zID#1ia9&?u>Z5`!hEYDwkSlVWI;oAmfDl!r3MUo>;OOKL!4ku>GArIv=(X|quN<$t z|ScrcA1}^d%xSbs!`3*UgDc@X0YXHD}tV6G9 zqMsIUXKc{UWE2_hk(N^4xJsi45dol9Ij1r(*=9;$n`7%eh!XoT!w;3$&S-47J_rc33&1l=^jCoF9 z{IXtw+IcLi`T&Fwg!v*4eR9ah@BJnw*{w~mX1BNzzKboNTQ|NR2G}8Z#hYf|)!uLN zEiJXV1)lDZKKwj3wS7TY@VNF?m?V}OTE zi+AL`=E;aba6GFd^pe`p5IF_2o-gKXa53-{b?k@w{k92|0vurr3mL4)=cMBRIqP>Y zyd|=L|7TlIpJi>3vTMCcXFh9>^u>(@JL~DaTKv3=tQ1mIT%2TIR1Gw(hus!^NjsDA zBi67Fl=_FH!aH!G$#yC)GuK`Zsmg-G%=IS-RIiCY$XLU`gVDf-L`jlz_-y3))_7zF z1%^GLHb|e$q$?RppsuGMaTWasSEXb{^TB|6n0NBZkjB(oo%oC>Y8C874>KuuA{)!$ zp)yy8&)ain!Iy2QM1;*k%fokcvvc-c;o62eSUYRwu>@&lhAM!@B=&)oxeX_wB))0n z)Xo~ccfdRWHr_av=!& zTNZkt7$!6^A??;JZ^9rVHEx&OWOW;9AsNXH4AA_^cartt=Po?gMEyTnD8_1EtJYtw zp;VRtMts`ui0jPIFl(X?_h#SeYT~O~D12FCEoYc@h;fxR#8Uq=5}f_dJ&5xS7MqoS z`K3Vnf_96U*Oy#zs0M#V0()r3=jjmL20JUW3s&OT_xb%?E~uK1)4Jxx+~rQY)v5rr z>*Ia760+Qg4|7JRI?)e$`_UAWP>IRpYI2UugL!>&`r43!vC(pGOf6L1Hj*c4G; zT!pXU4E}h6Tf0I>zOfo-GMPZ?nG0|}cv9B*6|yxjn7+N4Ah@21g3L#MU%pA6FhT73 z$^~ZUOk6_l8p*WEk-hH(?=&;Rn#`UurjKqgVJIu!Jt_@`usLZkY>MT`0q(URzxoBidf}|1q>o`2YpY>MeAp5t;W|u z;o7?SmeI+gtsc)afO$3o|J+M8Snkaw@IndjKEz0yVivl*9hcAsuvu)TAoYGu!ujRI zjhBvWl*d9bF5;QfT8)H~p-F1Cp(wu&{3n=)Z0ykyC0`OuB!fvKlu?RBj&cp@W8!G< z+!kBbf8tDf(I@!VozzzWBOH#dmkV^Cdgcx!wQPO%kz;^Y8ZwJ4wR9X2xY$R-uq0;4 zB%I2{^{2#{I}P}>QCZ?(RCHW%xd>jaJInyg(m1mx<>)R7XW{q1>Yw6HGhLne|1=aG z%Q!6?1dwjC1z&47;TeES(zUEYoxVx^EHhd140Jb<-V zSR0GFLp*mIyaVl@FcvLN!E6Ouhh44^<1;YG+JuzH&fTzY^7f@(zSkAbAV#hg+{hI} zM3K$KRkk;*a?$n?M@IK_7trDvF^T7NLApB=H+=z9Irs}4XEN%0*5jMti4ED6lkPh9 zT~s(Fqp+-m6hzY{k~?=%f17_4K;U@f+qbC1PAZHJc$zNy*SYh#^h5`Gq8MELPRvwo zOI`YgQ}xbt>=7CY>GzGd?A>x=R{kf|G;0JEpv|=AYD3e5w3-3T8pSdW_O#F#s+{psDSTdLL;b^2ouv(Fh?N~LUW+k70}@lz)qT)Baxcnw@Snrz;< zdGT@bRmE_6#SMoPqS){THHFH&Hj-9Ja-Rri{d^VwE{^S0onvDh?$pb(|8R&yYAqB| z?S(btJ5vQj;@npEa7X1@qB=v^NdNRM^6z!9^yZ`pA;7w{@XQ=*4gLHSehutq)bkAT z!r3=VC?tdr`Lc6y=cR3}Ygzi-UyG%!?C|Ldm3a81Z84*()y=%&Q262sjt^#@_eOBy z0;ZxtF1L?P{hkOX;J~pB%t_hKy@Y^2fm2q>NhBYV%DGDbQ|zP*@=vg{!Z69pg)zPIN*8pyp% zwH+XamxI4(fvDI(2_Kv>xPfc{aC34j^^l47)`6QaBH7yPOYGD8v4$9*Wn-n6HH$Cb zwhV*U4|-48VVdS`)y%S7l1L+=(N%3zfL`?_aUA?X5JWzC5G*o*e~a8!!EChBwZ5Mt zNywc^fMJ6J&M1Tfko7AY@Gqt6p4QsVkKY{6{c`eJ&U^#jW{eR7xyi)`p7tTh4O~)S z&r3D<7+?(&%2?u3A$~!&L(F!~h})E4>FGKS7Sefc&AZjsYnz%}+ssH(#RbRVyouvw zc=pG-lr8Kh|61792|c=ovw<-0(vg3hc;m5rW$6OwtZC;5l`a!Yme~T{l!p6*>y~ed z$kPU|aB4|0NVcPTjsEARl*Un@qYZbs2^m;nm<1Y8tJ~n#klm1X%`-o5+d1}6=jB#r zUj}Dpz>E#RN@9#!^wJiDe?7cdsI@n$zyyzC&&8hbP=0bCdHN1kG$VWPpespfS#{VvG+PLsb@5-S)W6Pbok@UudP?y-^&9Ce~ik|m*E4Q=W zrQw=2A?%ZJiW(9|?8WVzmHxUWtGGP0rSRS)gObIo!#Mk2!>sG!bM#qeu5shc+cM$Y1hvMK9GM+xYRx#~@=0y^vbb$jD^##k zzGH7cdEmw#!^vuR8E*w=d8`b^i@!+N6yx+*5MD z8RHosnpD2m1z7PqkFrK*TVZISK`;moF{A3}wM*{2?o7_}+HL=DzEqBUsur(M{cRIa z;Hs8ag_>vYJ6_r*=cV**VrUF%yqYKPxnC6hT`uK(lX@vC1opdnjn4e+hp|?&(|Tu; z%T5iz9sE2>8uJ2churY}C6ua6p(-}U^kc6mlYWQGP%V8{;|v{*FAUnsQvuqxdUC=e zcnfPaUi3E9hU>eHeBZt54oxv~%GUX#cfc}xY=HQxC)8VVJTsO~oDwOpoCW=R8i^pah?jKWWg3Dgi{4Ue5L5j3#DT_5|In{A^0TIX zF8PwpqoLl)_8S5 zf6;i3>R&PM4D1hvf&HE*PW3G3F`nifj*KVUq)Lj>k)n7I?^|~u{OOUSB}>5hq(Qs= z!oV#MQPN?mu`gcfQ0s}NZj|7&Rf%VL-s{3bQ*VS_?A+-2Wh0vGtK^&bHR5AN+CEy; zlMUB|b9AbLyG=6sUp~lNNA^=|UQyrZTbXZI18Z3rRT~F#i7|gv)N*cN2U=XkI7vcQ)=c6Ibm5G2bhI7ISGP} zBn^V?{Mnq*y0J0rE;Xq57X@_ELis7@)4a7Bc=^_pwjLj}SD6Fq{cv~Tuf6UtwUp7M z&sMkJRoD{_SCb0MUb?6AH@rjFe4bu9vzI&s-q<&>Y$Wj+DMkAA8= zNB5Hn&%FrT`G$CucH1pwUAr|oR^!NQ;Q@xLb?$TH%)3-enN{@K;^N_rr!eY6>am|B zQ}m^`QfQ6Ont08d=4t79wJc%LkpaHbcGztq%Y)^-%+k@t$SIj-@;v{y+CVlK8;QC6 zM^0=BSsXI+Ap4LiYVqP+Cav(;f9rj=n0BW7JZ004coQSDtF+yt%5&$_f;{F5{HG!ft(nbX+W8zj#2N&%)<;t#q0s#;fbax!N?Z?TA= zgYD~wo`D0C<*QABTRPz+KQIE9iD9MXd58=5E?P~f^_N9CTdFA7A`s^5 zO~A%D%e+HTctQ8#AnY>cYrDJ(R*Z^*SjjC4DeP)MJO{3VVF$FsRv zr$U=R1WUfWt3Vi0NoY_|>)^*J*8ZJ8p7+($jfFGG=s*>R)pY^Rj}7$!CWy^>L?_G3 z^((`Pk0~%0|C@{v?h!+o`P*00x>IdkU6OJ+kl)%3&519_J>SMfsreIXXMfZO6JFG( zxb3MJ_#qT?jU?Y7wlCSyl{dEd=}X52?o?0J?d_Z^>SAB!iqmfV;qSI+yX|W})-%r*?amNwCDxo`nO*vkgvN@WOOOf{+o7iY%oPaOsWvIPog1Asa@|1}{ zmJg>}0!z5m*0ulmOAD$th=Osg(8Mn>2r(mAIh9YND~rof$MaHtQaVjc>aIse{myL^ zzcF3};pc-tT0qElj%xTDS5fuon+C(nY~%x>s9hTk(l%VsMS?)DM1C|fee?{wu{f6+ zPGwU64`83q+P&-!Eqn&4?h+Vs{BM6x1uVRPv2S*k%76Jm*IlgMvE!M?qLRGuei(KXtHwfR&+$F{L;XwYFKBaKCr*rAH?}>w%-c z($Wk$(+nU9nmf~CXSwvY>jOu2A_GfZ)%M5NyP2=gHbWOQ=6zsWO{N7_T+BR1{Jx3< zgx6MqN_Ydi;8%u>4?sXeEP7qWU?U(DEM0W(*SJB<)~` zN>K7*R>DZ*lX<=xf8Benr_CL- za6-@Cm$a3e@M(*f=i=eenjZ#4N#Y5rl5EqA=%$78%VWiB=&)h%+M*MIU%Ye8Wv*_% z%3ZcO=WZvURIBv@f2QGnzR1|>Om-ccrImawrO(_$^`dfu_+bd_X79I0r*HM3ExW(1 zdtl5xc%MQO0W%A(omS*CxvDHK<-o{WBTOe}P$neko#<%%{t48T%<2}*=j(4iGd$1w zHKmF%dllaZYfVE=`U-?zA<2AZh?CYy0_mr~Cc25@y-RGT|5yERT8cGfVkw`>khc1 zb9ZRswG<&tZM^6Q-z1S4>9i8P`~dh`amFH3 zsFL%m??Hpua=N=3B_oOpmK*hX@Vo@&SMnq$u}?sr{qe{?{7&w)gwP)!7175a|B66& zSmc|xy|C-R8}rZ26Gg96eQSE+i)6#~Ci&j7Yhbz`0E=$ohDmrRR$~bR%j3qr6P{}= z#?>cKrVoo0?eUw$7VILM=6g9#Bc;zu@A_>kILAs3$!@N^PTbTZ_V2DtDbl6Wm1!#2 zk|+&J;=3aH8(3$hR)16y;nkz9r%9amP7&a0dOmtY8kMWXI5V*&=b+;JfE7AOmvzv< zyL>+B)hV=TXvLBMD%?go1O_ri`)X|G*6nNIspZ`n_WezDWRt;+VsW!p!*|Sr!ij;_ zv*^6)*$BZ`V2nfT*D5NG(OW+NVq?!Q17=>dPMkN#H?*%kD#JSdh}H7zLGgerq#iZP%eK>Z=i`cUe$S z+vPOEf5qcAOGd-Go|f0icx8tQ8H-6)+%UJ|JLsfsYUnD5e%+xlu<@6U`@;hd2CRn& zu?2{Skd)4yxkRPn%zWZ?wNb5_i#zUsk`d2I@H+@voPV@Ha! z0Dj-az-Mf39YA{z_?*4_TZrMI)eIYt63s*h8T8M+NyHjp4comCQ>0< zY?Eq-Kk!6lrXT7^$cDfetno@zTj4=U;XmVKyiqM8>M6EY&j-XBzsjE2jG zN!OO9yFFA=Tf6K?VS}&#v-V)g8@6AiIj6hDwb1^zHJ?77q}*_cYXGwk5K#OrQA^iG6m_Ymt~=7@u1jS zG%kK3Sgx?5rQibw{>lpsq`iPHhGA<3L-v6d>@KI8?B~9tqMbNBO3caS_;fouVw%t^ zCE6EOhBCX0IJu#8vEuOImC=ctkwHPgd(6%4h0J~lnGGUN{&^GXi5h`Ko;PRq7uVLK zxnLjd0PEz<9w<2*4r4EhVD`e3Q0&Ahm3>+ORZNqeAG2$-aGZ3U* zZRUH!FRB@$GtO_=m9$4_JSvU(^;9%$G)is;Yq~!>~cFKWjk~%4MDKz8(;BQdh-tQDLR+4q9e# z++)&r!l$pnd8(bXC*5|N@Hu89 z&J($_nYxb7?6cUX*+{DJVT$As-12-^$<=!#nXz~1q{-)VhgzB+DoL0@djeqqi`{OF z=z1i-t-~&*WD9nGB@QUwj|MAUb@UXKq-RfcrY1fteVZRYo&Nv+9FIzAlonAC4pwLO z?n*3Yq(+Gqjx2v<1hz-{P}k+;VB6k27wW{z$nRA6JV?-NkIu%Q8U*g_G2Y~|DSY&p zbt8xB5X6&@NUK!|L^rk}#9+{}`j04-j`zUBs_EX{(Puq1+zgeuM^2ee#ZVt_yq~ix zJu)52<>am<6ZD4DQyO@g)5y!cRtI=y} zDk30Km^rKBO_SeR-DwdbdpLb{KWYfMbH<#BUhQmj`Yry6MxrLbEceIT=4H|V*N7|U zeF`#kkr9Nn!}Kn)n87f0(C)nFSFW2a?}vuNurIKeGC zNK1j(1_(S7q$S+n;*9BZk?-!QGN5v+IS@wfv$U?b5`U#BtZ;9aXXKRe;i~Q!gDwg& zrKwdiNIYcZIs!z7F`R(PfKE|D<+u2WNS36|s}a>}WGU%vSz+bU5uTA4vxRjb`fI!``;AnpPoeWbM||O6)Xb%^ z`J)5~PJm+}L%Ptf&a36zTIx~?lD8^!mVBF``ZAMT`rkGeGNgZv0I^U1n*|}i-HF9n z_Oy~K;#YV*k5tQM%g&T>^LI0)y0jLV&{NdawQc7l9xA^(lXWCV*|3a~y6yVRC_XxM z%-v!ru7+5V0Ve#5wU$^W26~6;$N8`1ai7C3?0*g&Xxt|lv~W>rT%C|#(}5Co@~BWE zs(jD)yCGtk&Sic1Abg23gW`k>dEDm%PH&WY4d(ObI~XZvgnpDJ@1*UMGdD|@xw`Ls zHkZao>&RJXun9$c7P?Y6tkEb~9T7Ea)3LBJoX>Yg^erWJg*6aF8M%&`#eF3=oK#?_ zOTc#ve89_{jv$-1&9Nhb;K?-U$bd6a`Ki4>;{GIPv_$vx&Arx$fAH^@QL_hyxoIeU z5XZc#jc#eZP~733cMhDN2B?7@#~$tfY3!?`;%c642PYx81}9j6AVGo!4NidI?gV!Y z?!lel?ykYZkl^kR++BtcJlH)m`M%$}>%F_)eSfjm;hgU3>Z;wlcAc5Qp>Tv|_#737 zyAJI~=Oc8M{`kvOB8%RQsh(+Wn=BDVJ*m!fk1fmhvdXQ~KE|hJY)FtGo*}zCUOjyJ zo}g-_S%j$F?PplW1y0j(%1+z?6^f#{iNv?evX~#c)zHgX7Z1ch_U#vk}XXx6?=b%CuSGtoW!mZ;-%_Mtp48f~%d4 z@~e4mxH}FLr-UQl$pO|_S0S)zhd?>;vM$YjOBz+Qh!88Bqhyg-oNMQronT<#x%H;q zyS8rLO>`FRnZ6dUq+4(Yj!QlLtw%H7^C?iXsA7cUD^4iy(*-@uQ;AiV(&x>R54&MuGK9~Ee4A;nBY!{ zs0I-fxmlevfO2QUP^|W6#0WtaSsTtD@vAwQaz z$j%7v6Gk^OYEz?YJ9s{7LOLjw?%ts$qw1%*T$bJQ24mS~qIS#%n#5$_oi;QZ3f$!3 zJeJyHHa;`wBZi(m*UvAuBP{zbmLP8}Dcg9MMyovIOnXa#-+Qp8uW;};p;i#ZqH71~ zTQiZcMd=({I~i@i2?h&uFFHnP^Ht=^zNV) zDOszGIZbyHKBqM;MHN0Xb|;eT;`sP8eT7ca?Z|ML3&m{Farq8?;TPN~IOt^LR#l@G zrUsbMd4G@GC-6s|ERNk;10Y&Y z>KvQ-{OXwL*V2`%oQm=~2qZ0+;Y_d_85N~7=)p21Kw<(=fT#S|7UtXC&IT{MYJ+DV z1}r;DvBO|{`AALwWz%(|MlY0J8#!h-EE$=T43;theR$UQ?bgmT9A&6y8NZ~N=AfbIa2kntp_p_Kg=1!D z&FnjmtpXlf`q_<;ivpBwWNxgtz*t`y!uxd(_WHQ6ju`V>&Ah{p)%yWf56X>CpV>(^mCD`6;dBF!C0FGD7n&V=v(XRKXm_JlA%hb0 zDdYkh8kysYYP;_&uP9T+iEDwFWPJ;mNXx;%pBeUbPM;fa;6D-xI3ss}iv?7Ro5IK9 zY}A}U&R>|!EsF!!GEe^HC2$arY`+P6x~*=$7#+b7>yd?Qwq_5_=lDKsFwZC^JNSi&v2r zNQuTdBt!>hAU0HKn%UNW1oO@PhF8^0izri+4XfcKRbX+&&?W zm$J|lQfotS2%$v7`My-89{Gm9NQ`n{g>RMV(o1FRIHG0qZhs5nGHjyoeqX6A9mF_3 z7puEx$cv~M3&PoFSAjlRWLd4~+7S$WXixk`QCxh30xlBn z@6CnL+Ko=$*)??^2Fd6P6Vk1(Ih^)Ly1h?Mcg4OV8K2@e@Pk00^%O@znW1&JDVuET zLx;9dnf5?H^9H) zkgka&!kH}_DLjhDWYN!vJze%^_NgE0xk!yWiM6h^a><@vD7i_z}q z^XCUb_?Q8&KE#;XY99f<1i^JrJE#mRU_0Jy1T8r{I6LkzGbv>4^Om`qag~kSQmDl1 zRl9Q2Em*rHEa--=d?HtiC4v_GAP`Ov6`N2-rS+OMM;05tmNv3t#6so=e_Cl|@8dEEO~#jOu=S_d{o^eIkE)*Y>MZ&w^(T{L!*lS716{XZ;Dst;8Z-qqW+ zk9Wq(y-aR6U%d9;SA(lAJ^fQ6Mq-yoP!2Y4%pEFN5P?!Qt-(ejyv=UHet%6>i)-=g z9{k0*?eNHQe+GL7$>6r+lcn|{raIFaGt*(c)x~#-XFEsi+=b~KMy4GC%iigx8a|vW zS<_|riozMB#EpIR?vW<`mcv<}9`4zmW))~>AQ5xTmnYwrf2+0Fk>BxcKQF&ebbo!= zPoU2@vAUOitt^KhVRkG-Th*!L+Ld{Od_VHuDOF)|RigS+PczMcx4iV;#{(cy*MZ}1 z=GD?EnVgtrmi|VJ%J}EHB1BDguK0mXtv5x9a_I!@Bv+<=qPuE?hWRfsova=14QC)) z;Lb2D+q2TthlqK^ezT!`=^N0%9>R_<|Hd`GA0^tf@~vLXg04X-wz0oNfx$PL6xzSd z1rLkXTl7_XwS}VO)+}0LSNu^%uNzTMHb6tmRdcY+IoJvg7dJud&?`-UGHAkoyA zeGW^*GVvE=Rsq5;$6YQaIsWtl_~oF_Gi?O-y|s{ahHd#gvub5)yT-Lze`5@1{P=V^8QzFbI@m z!JwnjgZP2LT8DONFqJVqR9fzf9sIN^FZs7?j)qkPbH&FNJo@9u-=Fzys{y}&K+Y9a z{oarK^?mc9%ExYSr!`R-1a&;hqz;})O9@CI5MNRoBXZQy_cTPZ)*Bz(whx^f72i_% zAibhpQUm}1&}28>-x;Y4Jv4r5N0a~p8AN&GrR%lPN^7ihEan#n=qMm5!6Gcr*Po%& zfhaMsOyGdO-7uK(>;LtOnFtrE=YZm<0udsg1iT^=s!#+b{vbu=B_R50Nq+HQ8gK{b z`<^#JwrSIA{V0GX5-9yVaxPs)0n`IUS*9rEE~~j$zk%z>Y63nVHI4;=;Ud*~)|)xg z9r>>c$PqQM&`Jp!Jb}w>9xbQVq}*U&M6n%U3u9AY_J}pUJH`+;0%$XE4;BhEBSD}I z5Fly-sYyx+$Z8-^C<4q*kORzdlyzDF0){<--Xd&*Z|MfY!G$6x$d5<(|6`Om-Wdpp zhVJjmk3am!kbfNW-$r2oh7N_O0?`J-!uC<<(xB{DTD5?pZ*0zI&(HK*E{t^M?uOyd zR|i`I9y6eqmuSIZ?o{vg5!28C*H5*s>sY|7jA z=;xMKRK0p$9#+r6DHjOkXmB9P*Sh&$4Q*IXE@1M8Hc%~a&;d|6)xC5s7@z*yW~3y} z4e7PNqBO9%O4(uj&o%vvWtO6@#HNBaf90$jj`2k-*dcMkoI_LUSY4xB$NNjg*ZGjZ zGo#mRl;V&{Bo-+b>Q+CRi#HRV7#)EV?>tv7g*$fwX$ZwN%N()ufIHYeXKe% zO?6}Tb;ZB%zKCWqJv_&|IIhT#xm9brW)YNjR%a|6O?`0C$5eE0t2URkTSfdR8Qcwv zaVd|J!g1UP{?trcEtMfcbRV-{WIh^$_lgVAp3Te+8iLGjy0kI^F30OD>7{52jVx<+ zy9X^&BQ5t=rT2ou+OQ3pJhQ&N?r6!}NNSf8@(Nn^tQwrQR+J_?NHR?AY z2Abruvniu6=!ed)d04Or|9>^pWNTPamx~ zy4nx1r6nV^!_a}IZNC27=p<3$|b&`77OBl}N6`_=q;cLXPf0!ws_$8`eNrN>-X zb;@-ZDxj8^#K+VveG#{GL&Cv;0)StQ(g~As{wueh43&m9_$PlK{N$ptZfaDq?yK5H z9s3D}IYDM=96GOye=|J?m=1i{-}?|R6W4{(+NJg|@&SGbSOPy($$95KC}8P^fP)1a zU&<##^t^c?(@*TLt?`~I)q{YX3y*^h`+sQGi>>~ES{MppP1NBnU1Au=<+%c22{JNn z4ny9U{1t$3dhq*QQnNR4jvy2Ta&YBnB^uh;v@+Z4XCUz1m_+~v2-73uu=M7^zjf6b zgBe_6TDL&v$MY{pHq!(4o%h`@`1-7KnR=fsHrJ9)!+_#^=i4%WvE#v4*<@dRj(szr zIffih05xu$aCK}&AMCfB`lixPUcmcND{w&|fF{@zN`ch9R_{Lz!S9>@aLOd{vUGbA zj|Y3^iy1PvoMF>Xe%9J_1|i5|m1{Dkv|%e2F#FcsN#jzd^@{faZxcx}4E%n?)6@v=}tP=V{LcxXgHt!^uM_KFIz+*2$I2krh zwDWytJ4N|plbF+v*FtZy_Zf3jFfq!$iB*qI8u7z|Z!wtMsX5^+pV8<=X$bn*62Ef= zLpKBAy&Z0*>Md?S7|dhN-Mk_9H%T#&2W$a@p*1ucyPx)(N|kX_retrfT^GADD ztWPa1^J2PzW1JaF29&>T%!~2gTeQ2)I|UA9SDn;+Gcm;=E|d*I*WOxmbYydKBd^!D zpm^1ou$!OpcHISDq5Th^fV~xm8}=>y$QM;hUkxlX4QST!O^(T-Tw*QLGJR{8)GK7J zc34^Q$vc2Z+%`4i{9L)9%OgZbvk4?j?Luc+oTVPV6bdI58id9b)0>f zBFHPrQ^kdD9dNNBf4f|^)P(Lh!p+P1L~K<7HJ9`!o|eYj|(Y3-ok>l;>}(}eB7KvXxJD5~&$@69PN$*GKM|B=Yf z4Ev*KqONf1`yb9Yk|P1~(#;%F@3Im9E+U1cUT8#2x2_ZJCQU@YMW8)#xpdypxx&ot zSu%1;cJ=s9PXvnh@fOf)YGBcMp(~Bhy`pVLngo1tV#sx#e=&{3;D=k|fG7S?cyKm( zIGN8T$a^=u)6ubo_IRdUM{LHja4frrTyG|zI0vB}H2=+fq4Y?P-|=u!y=rL0jFw4r zfVuq5KCFgnFjrY@Wre@sX#$6?`b~R|a=b+^uC*Y_I3NW8pg_&kyjTqOM$4SPNngI; zz83wNUq|frK^yqRZ10IdFj^F7W1&rpPy{V1U%@NkyMd!_!^Xwkz1!7|m1A z4NMtpKGoJHENmEMxUKoZ-b8FMiM7pppzgMtK39KeiK%v<=T&StRo|U;x``1ad#64L zp(n%WA};T+{qf_=g;?q=R&jwVF)4)xX`zLsuNszJ6XgW}J~RbmGMKxJPcKzo3$?1* z8D^KCsYN8eJl;KmTtu<%FdVomMNW?esescBkrTWS61tX>feq-G9gg=l$=dhFZ zH&ayacbWZtLxs~u7yL}8!V%@${D4ng0?;9ttm?DcM{SEo293G7_1LOZ+hqNBCYg4v z`{KGqu7FAz1Zp*!YxOoBfIr=HLxJd*x0v^uDz~AqQNcnAOmvX+u(llFu3W6!dK$7S z_q3S;&0qs|KD7^6xpGq+of40%{t5ngR|yvhJ0!*_hOWTHu7n`_O=ubae^Xo-AhYWD zDz>5IyEFl?{|SaQ9&vs*#jOB!?Z$>45&sKEj+dA!x4Z(y1FRlkTf}yp!HktUf{p_v zJvmRLoTUJ14J2*rgGXy@d47Gv*RV=b0%MGO(RTL=Q~A}pgyI7wwQ`(p)crD+up-%a zA*7kIe3w4+Gd|Z>ODzOP?A_4JVbkXb=u2pToDNTJ7bzaV*cIxq{KP>wbLHu4%Zd2`*i% zT~m^65Vua`RlIOuY1pn@?6`V8g>=OWmR{F*JHmN-Y`k*OLZ5k0=kXxhtucTKr4@T> zt6$xb#r;o1OKm6Oh)qvoZzd-9+n(9%;&I&*e$x4;tNdaW3_s>=_cQjBQF!3fP~uS2 zSAx2)xEM$yik~O#FZY}aWuRDoBP*YIpbP*NOhNxbmpL6zAiC@82g42s-isO{sgi^Kp3FLo5DyT012k0)>dWx^zn| zuWg|9mV;bi4{VyZW~0RvW~s+i5q+4YD-qdYeydc;euse{drEfiI+jbzV!PM&<++k( z?jz4y(rwwHZuKy6kIi)s#b2w2-z*}Wmy9I!9ce4zHF}1DDft*Ph0HiVH_MbTScf|9 z;l(vwMX&Ab6SeU=P1x#-au?9`7_W22*pvok9d*6v+JZ43=b;r|`_!4XI3QnUVV2Y#t#nA)l8GwhE&|AF!-N5tTFSN;>kHTxYAOMV|i1bFjFG zuAqVT7o&1H!O{`-I&>MP)gBcse8s6iBbzHSZ!CwRDMPgl%DRkCHTTzb#D8R!GNMDFvMwBC`qxQ=~RYg0y){{$L#N}B-=&_ z{TP*@kL7=O)XQGkeGDzH-)I^&E}Cg0CY}$lqd2P?!`DVc{R=Sv>9s|%AEdvDk(-93 zZRZ4wr(Yt@rfuZF`)*?~3uy6qC+8lMx|yV|=)Mw*emtjgJFrYH;DA;QZ{SEA~7;3Jb|V z;_B?Qvch5i0c39H*H6YH?VsBRv5YY$4+h2R=Gc^+kx)KtD@SbP`(`dvez0lcZz{B9 zJM%oVs`v`&TKMWcqr@!f?b){eq+CODHsD%Fygr6YeU}rB89vB)Nb|3>LXiE1T&+l9 zP8q+d%+7$_)3f!2&bR)HTPS~lPeNYOhgT}(ibBeA)(*pIj4wLqrA&wh0FN$n{F+D< z2@Q?xTuWf@#fg|7T%q-vm_Y4Pq0@{2QT?s5Oy*u%&p=RV*kPgR|E%$}2~HXls#N?B zM-WW7@>u^fbiJ6O;a0v37fKJ~GlY%ZZMyB+fY3tev|Uq%R} zhCPdm=~A{FIPv?=F?T^1sDYjWi9P;A)(()9iD;cF7X_X7#(4<5)E5k!5P5{Nt&W*E`D7= z*O{%$yw;n=zUxB-`5`tOoHBI*7aNO;pi85LE-ki1i5WPgDdB+^JOJDNBYv$tBJk4^ VQWnXs-~pFG(&F-BRiXv~{{viX literal 0 HcmV?d00001 diff --git a/architecture/async-scheduling/README.md b/architecture/async-scheduling/README.md new file mode 100644 index 000000000..fe15eb1bb --- /dev/null +++ b/architecture/async-scheduling/README.md @@ -0,0 +1,47 @@ +# Async Scheduling Epic UML + +Reference diagrams for the async scheduling epic tracked by issue 645. These diagrams are intentionally design artifacts for future implementation PRs, not runtime documentation. + +## Source + +- [async-scheduling-epic.puml](async-scheduling-epic.puml): PlantUML source for every diagram on this page. + +## Component View + +![Component view](AsyncSchedulingEpicComponent.png) + +## Task Admission Contracts + +![Task admission class model](AsyncSchedulingTaskAdmissionClassModel.png) + +## Request Admission Contracts + +![Request admission class model](AsyncSchedulingRequestAdmissionClassModel.png) + +## Capacity, Telemetry, and Evidence Contracts + +![Support contracts class model](AsyncSchedulingSupportContractsClassModel.png) + +## Runtime Sequence + +![Runtime sequence](AsyncSchedulingEpicRuntimeSequence.png) + +## Issue Dependency Map + +![Issue dependency map](AsyncSchedulingEpicIssueMap.png) + +## Render + +```bash +plantuml architecture/async-scheduling/async-scheduling-epic.puml +``` + +The expected design spine is: + +```text +SchedulingMetadata -> TaskSchedulingResolver -> CompletionTracker +-> FairTaskQueue -> TaskAdmissionController -> AsyncTaskScheduler +-> ModelRequestExecutor -> RequestAdmissionController -> provider/model endpoint +``` + +Task admission and request admission each have explicit controller, queue, policy, and lease/state boundaries where applicable. Telemetry observes scheduler admission and request admission separately, then issue 648 correlates the two timelines through the runtime correlation provider. diff --git a/architecture/async-scheduling/async-scheduling-epic.puml b/architecture/async-scheduling/async-scheduling-epic.puml new file mode 100644 index 000000000..181ff702c --- /dev/null +++ b/architecture/async-scheduling/async-scheduling-epic.puml @@ -0,0 +1,584 @@ +@startuml AsyncSchedulingEpicComponent +title Data Designer Async Scheduling Epic - Component View + +left to right direction +skinparam componentStyle rectangle +skinparam shadowing false +skinparam packageStyle rectangle +skinparam linetype ortho +skinparam nodesep 40 +skinparam ranksep 45 + +legend right + Epic issue 645 target shape. + Issue tags show primary ownership. + Solid arrows are runtime/data flow. + Dashed arrows are observability or policy inputs. +endlegend + +actor "Generator / Plugin Author" as Author +actor "Operator / Integrator" as Operator + +component "Generator Metadata\nColumnGenerator\nSchedulingMetadata\nTaskSchedulingResolver\nissues 641, 646, 653, 652" as MetadataStage +component "Task Readiness and Ordering\nCompletionTracker\nFairTaskQueue\nSchedulableTask" as TaskQueueStage +component "Task Admission\nTaskAdmissionController\nTaskAdmissionPolicy\nTaskAdmissionLease\nissues 644, 650, 651" as TaskAdmissionStage +component "AsyncTaskScheduler\nexecution owner" as SchedulerStage +component "Model Request Boundary\nModelRequestExecutor" as ModelBoundaryStage +component "Request Admission\nRequestAdmissionController\nRequestFairQueue\nRequestAdmissionPolicy\nAdaptiveRequestLimitState\nissue 657" as RequestAdmissionStage +component "Provider / Model Endpoint" as ProviderStage + +component "Capacity Plan\nAsyncCapacityPlan\nTaskAdmissionConfig\nRequestAdmissionConfig\nissue 654" as CapacityStage +component "Telemetry and Correlation\nSchedulerAdmissionEventSink\nRequestAdmissionEventSink\nRuntimeCorrelationProvider\nCorrelated Runtime View\nissues 635, 647, 648" as TelemetryStage +component "Benchmark and Future Design\nbenchmark harness\nresource-vector design\nissues 649, 651" as EvidenceStage + +Author --> MetadataStage +MetadataStage -right-> TaskQueueStage : resolved task DTOs +TaskQueueStage -right-> TaskAdmissionStage : selected ready work +TaskAdmissionStage -right-> SchedulerStage : task lease +SchedulerStage -right-> ModelBoundaryStage : execute task code +ModelBoundaryStage -right-> RequestAdmissionStage : model request item +RequestAdmissionStage -right-> ModelBoundaryStage : request lease +ModelBoundaryStage -right-> ProviderStage : admitted model call + +CapacityStage ..> TaskAdmissionStage +CapacityStage ..> RequestAdmissionStage +TaskAdmissionStage ..> TelemetryStage +RequestAdmissionStage ..> TelemetryStage +SchedulerStage ..> TelemetryStage +TelemetryStage --> Operator +EvidenceStage ..> CapacityStage +EvidenceStage ..> TaskAdmissionStage +EvidenceStage ..> RequestAdmissionStage + +note bottom of TaskAdmissionStage + Controller owns scheduler leases. + Policy decides admissibility. + FairTaskQueue owns only ready-work ordering. +end note + +note bottom of MetadataStage + SchedulingMetadata is static declaration only. + It does not encode queue depth, AIMD state, + admitted limits, RequestDomain, or runtime pressure. +end note + +@enduml + +@startuml AsyncSchedulingTaskAdmissionClassModel +title Data Designer Async Scheduling Epic - Task Admission Contracts + +left to right direction +skinparam classAttributeIconSize 0 +skinparam shadowing false +skinparam packageStyle rectangle +skinparam linetype ortho + +package "Metadata contracts" { + class ColumnGenerator { + +get_scheduling_metadata() + } + + class SchedulingMetadata { + +kind + +identity + +weight + } + + class TaskSchedulingResolver { + +resolve(generator) + } + + class ResolvedTaskScheduling { + +group + +resource_request + } +} + +package "Task scheduling contracts" { + class CompletionTracker { + +ready_frontier() + +mark_complete(task) + } + + class TaskGroupSpec { + +key + +weight + } + + class SchedulerResourceRequest { + +amounts + } + + class SchedulableTask { + +task + +group + +resource_request + } + + class FairTaskQueue { + +enqueue(item) + +select_next(is_eligible) + +commit(selection) + +view() + } + + interface TaskAdmissionPolicy { + +is_eligible(item, queue, view) + +on_acquire(lease) + +on_release(lease) + } + + class StrictFairTaskAdmissionPolicy { + +enforce hard per-group limits + } + + class BoundedBorrowTaskAdmissionPolicy { + +borrow_debt(group, resource) + } + + class TaskAdmissionController { + +is_eligible(item, queue) + +try_acquire(item, queue) + +release(lease) + +view() + } + + class TaskAdmissionDecision { + +lease + +denied_reason + } + + class TaskAdmissionLease { + +item + +resources + +acquired_at + } + + class AsyncTaskScheduler <> { + +coordinate_ready_work() + +execute_admitted_task() + } +} + +package "Task config" { + class TaskAdmissionConfig { + +submission_capacity + +resource_limits + } +} + +ColumnGenerator --> SchedulingMetadata +TaskSchedulingResolver --> SchedulingMetadata +TaskSchedulingResolver --> ResolvedTaskScheduling +ResolvedTaskScheduling --> TaskGroupSpec +ResolvedTaskScheduling --> SchedulerResourceRequest +ResolvedTaskScheduling --> SchedulableTask +CompletionTracker --> FairTaskQueue : ready tasks +FairTaskQueue --> TaskAdmissionController : QueueSelection +TaskAdmissionController --> TaskAdmissionPolicy +StrictFairTaskAdmissionPolicy ..|> TaskAdmissionPolicy +BoundedBorrowTaskAdmissionPolicy ..|> TaskAdmissionPolicy +TaskAdmissionController --> TaskAdmissionDecision +TaskAdmissionDecision --> TaskAdmissionLease +TaskAdmissionLease --> SchedulableTask +AsyncTaskScheduler --> CompletionTracker +AsyncTaskScheduler --> FairTaskQueue +AsyncTaskScheduler --> TaskAdmissionController +TaskAdmissionController ..> TaskAdmissionConfig : reads config + +note right of SchedulingMetadata + Static declaration only. + Must not encode queue depth, + AIMD state, admitted limits, + RequestDomain, or runtime pressure. +end note + +note bottom of SchedulerResourceRequest + Replaces legacy needs_llm_wait-style booleans + once the resource-vector design lands. +end note + +@enduml + +@startuml AsyncSchedulingRequestAdmissionClassModel +title Data Designer Async Scheduling Epic - Request Admission Contracts + +left to right direction +skinparam classAttributeIconSize 0 +skinparam shadowing false +skinparam packageStyle rectangle +skinparam linetype ortho + +package "Model request boundary" { + class ModelRequestExecutor <> { + +execute(request) + } + + class ProviderModelEndpoint <> { + +request() + } +} + +package "Request admission contracts" { + class RequestResourceKey { + +provider_name + +model_id + +domain + } + + class RequestGroupSpec { + +key + +weight + } + + class RequestAdmissionItem { + +resource + +group + +timeout + } + + class RequestFairQueue <> { + +enqueue(item) + +select_next(is_eligible) + +commit(selection) + +view() + } + + interface RequestAdmissionPolicy <> { + +is_eligible(item, queue, limits) + +on_success(lease) + +on_rate_limited(lease, retry_after) + +on_failure(lease) + } + + class AdaptiveRequestLimitState { + +current_limit(resource) + +effective_max(resource) + +record_success(resource) + +record_rate_limit(resource, retry_after) + +record_failure(resource) + } + + class RequestAdmissionController { + +try_acquire(item) + +acquire_sync(item) + +acquire_async(item) + +release_success(lease) + +release_rate_limited(lease, retry_after) + +release_failure(lease) + +pressure_snapshots() + } + + class AdaptiveRequestAdmissionController { + +AIMD reduce/increase behavior + } + + class RequestAdmissionDecision <> { + RequestAdmissionLease | RequestAdmissionDenied + } + + class RequestAdmissionLease { + +item + +acquired_at + +current_limit + +effective_max + } + + class RequestAdmissionDenied { + +item + +reason + +retry_after_seconds + +available_after + +snapshot + } + + class RequestPressureSnapshotProvider { + +snapshot(resource) + +snapshots() + +global_snapshot(provider, model) + +global_snapshots() + } +} + +package "Request config" { + class RequestAdmissionConfig { + +resources + +initial_limit + +max_limit + } +} + +ModelRequestExecutor --> RequestAdmissionController +RequestAdmissionController --> RequestFairQueue +RequestAdmissionController --> RequestAdmissionPolicy +RequestAdmissionPolicy --> AdaptiveRequestLimitState +AdaptiveRequestAdmissionController --|> RequestAdmissionController +AdaptiveRequestAdmissionController --> RequestFairQueue +AdaptiveRequestAdmissionController --> RequestAdmissionPolicy +AdaptiveRequestAdmissionController --> AdaptiveRequestLimitState +RequestAdmissionController --> RequestAdmissionDecision +RequestAdmissionDecision --> RequestAdmissionLease +RequestAdmissionDecision --> RequestAdmissionDenied +RequestAdmissionController --> RequestPressureSnapshotProvider +RequestAdmissionController ..> RequestAdmissionConfig : reads config +RequestAdmissionItem --> RequestResourceKey +RequestAdmissionItem --> RequestGroupSpec +RequestAdmissionLease --> RequestAdmissionItem +RequestAdmissionDenied --> RequestAdmissionItem +ModelRequestExecutor --> ProviderModelEndpoint + +note bottom of RequestFairQueue + Internal waiter ordering. + This is not a second public wrapper around + RequestAdmissionController. +end note + +note right of RequestAdmissionController + Owns concrete provider/model/domain + request admission at model-call time. + Does not own DAG readiness or task + scheduler admission. + No durable Throttle*, needs_llm_wait, + or held_llm_wait compatibility concepts. +end note + +@enduml + +@startuml AsyncSchedulingSupportContractsClassModel +title Data Designer Async Scheduling Epic - Capacity, Telemetry, and Evidence Contracts + +left to right direction +skinparam classAttributeIconSize 0 +skinparam shadowing false +skinparam packageStyle rectangle +skinparam linetype ortho + +package "Capacity planning (issue 654)" { + class RunConfigRuntimeArgs <> { + +env + +runtime_args + +run_config + } + + class AsyncCapacityPlan { + +buffer_size + +row_group_concurrency + +submission_capacity + +task_admission + +request_admission + } + + class TaskAdmissionConfig { + +submission_capacity + +resource_limits + } + + class RequestAdmissionConfig { + +resources + +initial_limit + +max_limit + } +} + +package "Telemetry and correlation (issues 635, 647, 648)" { + class RuntimeCorrelation { + +run_id + +row_group + +task_column + +task_type + +scheduling_group_kind + +scheduling_group_identity_hash + } + + class RuntimeCorrelationProvider { + +set(context) + +reset(token) + +current() + } + + class SchedulerAdmissionEventSink { + +emit(event) + } + + class RequestAdmissionEventSink { + +emit(event) + } + + class CorrelatedRuntimeView { + +join scheduler and request timelines + } +} + +package "Evidence and future design (issues 649, 650, 651)" { + class AsyncSchedulingBenchmarkHarness { + +run_ab(baseline_ref, candidate_ref) + +emit_json_csv_artifacts() + } + + class SchedulerResourceVectorDesign { + +static task resources + +read-only request pressure + } + + class BoundedBorrowTaskAdmissionPolicy { + +borrow_debt(group, resource) + } +} + +RunConfigRuntimeArgs --> AsyncCapacityPlan +AsyncCapacityPlan --> TaskAdmissionConfig +AsyncCapacityPlan --> RequestAdmissionConfig +SchedulerAdmissionEventSink ..> RuntimeCorrelationProvider : attach current context +RequestAdmissionEventSink ..> RuntimeCorrelationProvider : attach current context +RuntimeCorrelationProvider --> RuntimeCorrelation +SchedulerAdmissionEventSink --> CorrelatedRuntimeView +RequestAdmissionEventSink --> CorrelatedRuntimeView +AsyncSchedulingBenchmarkHarness ..> AsyncCapacityPlan +AsyncSchedulingBenchmarkHarness ..> SchedulerAdmissionEventSink +AsyncSchedulingBenchmarkHarness ..> RequestAdmissionEventSink +AsyncSchedulingBenchmarkHarness ..> BoundedBorrowTaskAdmissionPolicy +SchedulerResourceVectorDesign ..> BoundedBorrowTaskAdmissionPolicy + +@enduml + +@startuml AsyncSchedulingEpicRuntimeSequence +title Data Designer Async Scheduling Epic - Runtime Sequence + +skinparam shadowing false +skinparam sequenceMessageAlign center + +actor User +participant "ColumnGenerator" as Gen +participant "TaskSchedulingResolver\nissue 646" as Resolver +participant "CompletionTracker" as Tracker +participant "AsyncTaskScheduler" as Scheduler +participant "FairTaskQueue" as Queue +participant "TaskAdmissionController\nissue 644" as TaskAdmit +participant "TaskAdmissionPolicy" as TaskPolicy +participant "ModelRequestExecutor" as Executor +participant "RequestAdmissionController\nissue 657" as ReqAdmit +participant "RequestFairQueue" as ReqQueue +participant "RequestAdmissionPolicy" as ReqPolicy +participant "AdaptiveRequestLimitState" as ReqLimits +participant "Provider / Model" as Provider +participant "SchedulerAdmissionEventSink\nissue 647" as SchedEvents +participant "RequestAdmissionEventSink\nissue 635" as ReqEvents +participant "RuntimeCorrelationProvider\nissue 648" as Correlation + +User -> Gen : declare columns / plugins +Gen -> Resolver : get_scheduling_metadata() +Resolver -> Resolver : resolve TaskGroupSpec\nand SchedulerResourceRequest +Resolver -> Tracker : provide SchedulableTask inputs + +Scheduler -> Tracker : ready_frontier() +Tracker -> Queue : enqueue ready SchedulableTask +Scheduler -> Queue : select_next(TaskAdmit.is_eligible) +Queue -> TaskAdmit : is_eligible(candidate, queue.view) +TaskAdmit -> TaskPolicy : evaluate candidate against leases/capacity +TaskPolicy --> TaskAdmit : eligible or denied +TaskAdmit --> Queue : eligibility result +Queue --> Scheduler : QueueSelection +Scheduler -> TaskAdmit : try_acquire(selection.item, queue.view) +TaskAdmit -> TaskPolicy : on_acquire if admitted +TaskAdmit --> Scheduler : TaskAdmissionLease +Scheduler -> Queue : commit(selection) +Scheduler -> Correlation : set RuntimeCorrelation +TaskAdmit -> SchedEvents : lease_acquired +SchedEvents -> Correlation : current() + +Scheduler -> Executor : execute task +Executor -> ReqAdmit : acquire_async(RequestAdmissionItem) +ReqAdmit -> ReqQueue : enqueue waiter if needed +ReqAdmit -> ReqQueue : select_next(ReqPolicy.is_eligible) +ReqQueue --> ReqAdmit : RequestQueueSelection +ReqAdmit -> ReqPolicy : evaluate resource/group against limits +ReqPolicy -> ReqLimits : read current/effective limit +ReqLimits --> ReqPolicy : limit snapshot +ReqPolicy --> ReqAdmit : eligible or denied +ReqAdmit -> ReqQueue : commit(selection) if admitted +ReqAdmit -> ReqEvents : wait_started / lease_acquired +ReqEvents -> Correlation : current() +ReqAdmit --> Executor : RequestAdmissionLease +Executor -> Provider : concrete model request +Provider --> Executor : response or rate limit + +alt success + Executor -> ReqAdmit : release_success(lease) + ReqAdmit -> ReqPolicy : on_success(lease) + ReqPolicy -> ReqLimits : record_success(resource) +else rate limit + Executor -> ReqAdmit : release_rate_limited(lease, retry_after) + ReqAdmit -> ReqPolicy : on_rate_limited(lease, retry_after) + ReqPolicy -> ReqLimits : record_rate_limit(resource, retry_after) +else non-rate-limit failure or cancellation + Executor -> ReqAdmit : release_failure(lease) + ReqAdmit -> ReqPolicy : on_failure(lease) + ReqPolicy -> ReqLimits : record_failure(resource) +end + +ReqAdmit -> ReqQueue : wake/select next waiter +ReqAdmit -> ReqEvents : request admission event +ReqEvents -> Correlation : current() +Executor --> Scheduler : generated value / error +Scheduler -> TaskAdmit : release TaskAdmissionLease +TaskAdmit -> TaskPolicy : on_release(lease) +TaskAdmit -> SchedEvents : lease_released / completed +SchedEvents -> Correlation : current() +Scheduler -> Correlation : reset RuntimeCorrelation + +@enduml + +@startuml AsyncSchedulingEpicIssueMap +title Data Designer Async Scheduling Epic - Issue Dependency Map + +skinparam componentStyle rectangle +skinparam shadowing false +skinparam linetype ortho + +component "issue 641\nSchedulingMetadata" as I641 +component "issue 646\nTaskSchedulingResolver" as I646 +component "issue 653\nRemove legacy hints" as I653 +component "issue 652\nDocs" as I652 +component "issue 644\nTask admission" as I644 +component "issue 654\nAsyncCapacityPlan" as I654 +component "issue 657\nRequestAdmissionController" as I657 +component "issue 635\nRequest admission telemetry" as I635 +component "issue 647\nScheduler admission telemetry" as I647 +component "issue 648\nCorrelation" as I648 +component "issue 649\nBenchmark harness" as I649 +component "issue 650\nBounded borrow task policy" as I650 +component "issue 651\nResource-vector design" as I651 + +I641 --> I646 +I646 --> I653 +I653 --> I652 +I646 --> I644 +I641 --> I654 +I646 --> I654 +I644 --> I654 +I654 --> I657 +I644 --> I657 +I657 --> I635 +I654 ..> I635 : metric vocabulary +I644 --> I647 +I635 --> I647 +I657 --> I648 +I635 --> I648 +I647 --> I648 +I644 --> I649 +I649 --> I650 +I644 --> I650 +I641 --> I651 +I646 --> I651 +I644 --> I651 +I649 --> I651 +I650 --> I651 + +note bottom + Native GitHub subissue order: + issue 641 -> issue 646 -> issue 653 -> issue 652 -> issue 644 + -> issue 654 -> issue 657 -> issue 635 -> issue 647 + -> issue 648 -> issue 649 -> issue 650 -> issue 651 +end note + +@enduml From c03bedc3055a92e4fa537c53545660f8a722e771 Mon Sep 17 00:00:00 2001 From: "Eric W. Tramel" Date: Thu, 14 May 2026 11:55:31 -0400 Subject: [PATCH 02/33] docs: align async scheduling issue map --- .../AsyncSchedulingEpicIssueMap.png | Bin 27924 -> 28601 bytes .../async-scheduling-epic.puml | 3 +++ 2 files changed, 3 insertions(+) diff --git a/architecture/async-scheduling/AsyncSchedulingEpicIssueMap.png b/architecture/async-scheduling/AsyncSchedulingEpicIssueMap.png index ab3772d7cd0b7c0cab779e9112351b8344bbf193..b18e095337092a737ff5a0e59633bcd3d0dacc50 100644 GIT binary patch literal 28601 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 z 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 diff --git a/architecture/async-scheduling/async-scheduling-epic.puml b/architecture/async-scheduling/async-scheduling-epic.puml index 181ff702c..02e865713 100644 --- a/architecture/async-scheduling/async-scheduling-epic.puml +++ b/architecture/async-scheduling/async-scheduling-epic.puml @@ -550,7 +550,10 @@ component "issue 650\nBounded borrow task policy" as I650 component "issue 651\nResource-vector design" as I651 I641 --> I646 +I641 --> I653 +I641 --> I652 I646 --> I653 +I646 --> I652 I653 --> I652 I646 --> I644 I641 --> I654 From 7125435106d93f5f51247760b048cb58a723568c Mon Sep 17 00:00:00 2001 From: "Eric W. Tramel" Date: Thu, 14 May 2026 12:27:55 -0400 Subject: [PATCH 03/33] docs: base async scheduling artifacts in plans Signed-off-by: Eric W. Tramel --- .../AsyncSchedulingEpicComponent.png | Bin 53001 -> 0 bytes plans/645/AsyncSchedulingEpicComponent.png | Bin 0 -> 52837 bytes .../645}/AsyncSchedulingEpicIssueMap.png | Bin .../645}/AsyncSchedulingEpicRuntimeSequence.png | Bin ...syncSchedulingRequestAdmissionClassModel.png | Bin ...syncSchedulingSupportContractsClassModel.png | Bin .../AsyncSchedulingTaskAdmissionClassModel.png | Bin .../async-scheduling => plans/645}/README.md | 6 +++--- .../645}/async-scheduling-epic.puml | 4 ++-- 9 files changed, 5 insertions(+), 5 deletions(-) delete mode 100644 architecture/async-scheduling/AsyncSchedulingEpicComponent.png create mode 100644 plans/645/AsyncSchedulingEpicComponent.png rename {architecture/async-scheduling => plans/645}/AsyncSchedulingEpicIssueMap.png (100%) rename {architecture/async-scheduling => plans/645}/AsyncSchedulingEpicRuntimeSequence.png (100%) rename {architecture/async-scheduling => plans/645}/AsyncSchedulingRequestAdmissionClassModel.png (100%) rename {architecture/async-scheduling => plans/645}/AsyncSchedulingSupportContractsClassModel.png (100%) rename {architecture/async-scheduling => plans/645}/AsyncSchedulingTaskAdmissionClassModel.png (100%) rename {architecture/async-scheduling => plans/645}/README.md (87%) rename {architecture/async-scheduling => plans/645}/async-scheduling-epic.puml (98%) diff --git a/architecture/async-scheduling/AsyncSchedulingEpicComponent.png b/architecture/async-scheduling/AsyncSchedulingEpicComponent.png deleted file mode 100644 index 4d4a20804aec5bbbfa4af33bd2ea99369db3a33a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53001 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ξ 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 ZpV92b$|C3MmwOn1z|+;wWt~$(69C>CqjvxR diff --git a/plans/645/AsyncSchedulingEpicComponent.png b/plans/645/AsyncSchedulingEpicComponent.png new file mode 100644 index 0000000000000000000000000000000000000000..7973d13f03a8bc638328bd5e847b2f208997048c GIT binary patch literal 52837 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%0D>=RR% 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 TaskSchedulingResolver -> CompletionTracker --> FairTaskQueue -> TaskAdmissionController -> AsyncTaskScheduler +-> AsyncTaskScheduler coordinates FairTaskQueue + TaskAdmissionController -> ModelRequestExecutor -> RequestAdmissionController -> provider/model endpoint ``` diff --git a/architecture/async-scheduling/async-scheduling-epic.puml b/plans/645/async-scheduling-epic.puml similarity index 98% rename from architecture/async-scheduling/async-scheduling-epic.puml rename to plans/645/async-scheduling-epic.puml index 02e865713..56f750bc0 100644 --- a/architecture/async-scheduling/async-scheduling-epic.puml +++ b/plans/645/async-scheduling-epic.puml @@ -21,7 +21,7 @@ actor "Operator / Integrator" as Operator component "Generator Metadata\nColumnGenerator\nSchedulingMetadata\nTaskSchedulingResolver\nissues 641, 646, 653, 652" as MetadataStage component "Task Readiness and Ordering\nCompletionTracker\nFairTaskQueue\nSchedulableTask" as TaskQueueStage -component "Task Admission\nTaskAdmissionController\nTaskAdmissionPolicy\nTaskAdmissionLease\nissues 644, 650, 651" as TaskAdmissionStage +component "Task Admission\nTaskAdmissionController\nTaskAdmissionPolicy\nTaskAdmissionLease\nissue 644" as TaskAdmissionStage component "AsyncTaskScheduler\nexecution owner" as SchedulerStage component "Model Request Boundary\nModelRequestExecutor" as ModelBoundaryStage component "Request Admission\nRequestAdmissionController\nRequestFairQueue\nRequestAdmissionPolicy\nAdaptiveRequestLimitState\nissue 657" as RequestAdmissionStage @@ -29,7 +29,7 @@ component "Provider / Model Endpoint" as ProviderStage component "Capacity Plan\nAsyncCapacityPlan\nTaskAdmissionConfig\nRequestAdmissionConfig\nissue 654" as CapacityStage component "Telemetry and Correlation\nSchedulerAdmissionEventSink\nRequestAdmissionEventSink\nRuntimeCorrelationProvider\nCorrelated Runtime View\nissues 635, 647, 648" as TelemetryStage -component "Benchmark and Future Design\nbenchmark harness\nresource-vector design\nissues 649, 651" as EvidenceStage +component "Benchmark and Future Design\nbenchmark harness\nbounded-borrow policy\nresource-vector design\nissues 649, 650, 651" as EvidenceStage Author --> MetadataStage MetadataStage -right-> TaskQueueStage : resolved task DTOs From 05522430316ddd3b45796b783354678ab92fb225 Mon Sep 17 00:00:00 2001 From: "Eric W. Tramel" Date: Thu, 14 May 2026 12:30:28 -0400 Subject: [PATCH 04/33] docs: clarify async scheduler control ownership Signed-off-by: Eric W. Tramel --- plans/645/AsyncSchedulingEpicComponent.png | Bin 52837 -> 51739 bytes plans/645/README.md | 7 ++++--- plans/645/async-scheduling-epic.puml | 7 ++++--- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/plans/645/AsyncSchedulingEpicComponent.png b/plans/645/AsyncSchedulingEpicComponent.png index 7973d13f03a8bc638328bd5e847b2f208997048c..a638ba97114f1adff7d03cc6c33e064e08864f90 100644 GIT binary patch literal 51739 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�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

A(XaKI+7c9|!% z&|XmI-fe3CPYS){(_1CiMbiM4<8Kt@BB`iRZ;B5Jg48g2Y;AF_x>{olg7e_wy9 z;t_NWE!nu7mnGd(x?<(w$H%=_F>q`ch1VFe&t?=_935cVt^9b7ytqBcE`IQ;zyLO& zx8DJwdYauA981l{f{Af)&ql`Np#DgMqbL`lxK=|1Kd2)y~S?|y5q8asTW9;R#IhS8|ZHD zfbkND_B#w^b4=6qP5P_vf%y)Sw%Xy^quC%`+UUrlDU4g*xU4goq0jaP@^i2cUi@U( z5PXuEcbw~ z@d&DH;&*PBB?!tWT?qod4kF>=;Qrba?Adz3-@lNv{qzN1>3N7}bC(9)dw3R6I`*^$Q;U!t56`%S#pWR8;G zG{zOfi-`yWx-Ym%pkJnzpv`wdBUoq%j*N5W(8|cD*v`zQ&hV7SAkze+I7fT0k6q@9 zFkF;=q%4VM+-Bq2^}qc?2g#n|3yxHR>P!&YL)o+ zP$%0C_}2h5v^rLl>w5vM=C8rzI_evj`Rz?xX!c3cmL*D8>bGk;Vjtq~Y@5m>E#e}N z5^Hw|v_C*tMo~+!2bpj=vq!WbiGTybE0-OvBLti2*d=m|0>Sl+%oZJ%BjvW}ZIinga$0SLsEU^mrRa2x~WGP z)IhtyaDVP+`n)R5-t!ZZCEvq=bZufgoT#Cft8pT-@446`&B_a;ynhlRrKc$vJxnqD5jJDbJ0!Z6C3S-F z!*9JH(n%Lt*bm3#q0T$A8!AOnFozg&MV@oCr}MkVO=Zc!peZZM%_{sD6`AFti+6l}TM z)Bz7*KGr#p#TR=0q?l`gDVARylRhYH8m?vM5J)xPyxb#rSJ3b9)N_mDJVUla68N8rFKlj|xN?Ufm{$ z>lf$v_I5O=X>#*EKJiohVpJ1;Wefl}H}v2A=CNGae$O`7KhH3D0Af6nNtTRaEiKk81HQSM=F535>ZZd$atxL6W!q?uL=&+4!!x=|o>rJ&`xNeeWzldFOr@ zK~ph+?Jd<+9>Xb=IOgGu`N_VPxwW$Sy63ZIyC~MJ7TL?oTpv34y`hJU3L)kB{ek=0 z2iL20JhuCNj>vz5p2fTLL5SiPOaJSMcDniDgS_zy<7D?8!9`XB2`1| zqfq)Wa*m1JTBoDqp=hb`AoLokeg$+E!~s;0k1{m=`mYGyPo-Xm=E$LDV2x@%3#c35UYjhM1ot9SK4z-WaUFe;x|8n-ACKQ-C zmzKu3UE)o)@EI##KEM@B^4mDt>{QeHAf=c7)p%GKA727gI~^2*@ek9t7+QspIpqBD z;%Sou`=mJzeT=;x26q;N@IHGoJ-_yn9C0PFD%%*25x!?-QgS+H>K?n1E-9ekNXsIgCJ_v9P2No zy-4@|@+hK@EaETctI5fdMmQa>6Aq;^pC!g-IjhIfCf)4UXj=l}ZVdpHXMo8&>)8)l z0FgK@N#$mSX+OGtx2KzVz$vhzCypyYSNF_tGpPDuq!vrcJgdg6Vzk?MJ8Q@m#=D>-`whev z=77|m{Qx4Ka}j-n)3EpJPIC(qic^G5*f4AJi-z@wcoquknDYZ<;Cg4WK0!#6iJ42b zsmPHzhZ6(Gtgg8Wh7%ghqJkOi+T&r?lKf18+}`T7*tVoau?)Vcs)8n@$scjaK)F&H zWr!rof)xN{3~*`;GU>d3f1x6VWxU}w5SKYq6l-SSa53NaPUHKf{RvXBkI*W007)xm zAX79NtY-L&e0xtrY%1q!E{khc-SGbPv|&gOTqJB{#F)hu(Qnkr)2SqvmRu#o?@g1^ z7B>IRWJ)GS;9M~$gP!2HM)IbR4o}kMz^j{LJ16yjMaPOF0`#627Ec?HMuH~Y&W%C! zWj}AmSJ#F=J^0cT-9W$}sJ|W8d}Y6gcrCwV2U)cs-FW<*zq=^h>nu3-CTQp_`i(HS z0#c~bG=Wp*{)15zt0IFxf(gmhq}-30uP(l(Tx-gvpI9j03Ke^;rufj6cDU>L+P8MN zbNbpRUt?u_Ps*fU|5s~_T)|!<#}5tvtXxSaIT^}>-ad}6N5>(!T|IQ#&DBOEvk_-R z)_Yntx|t|hwe*V=x*(T-H6{4G-Rc1sEK?9X>OHgoP9F1?o&&=puGgMnR>X6-#%eT( zPx%UW+XxQmlQ5y{m>79YCw;0xovZDsn&T)&pN=xYOUrWKEK~JPPSgUfq^Ya%VJyt( z*PUbfMXq1eSQlJx#9{kh6k*^qc~>?t@ZsdVzg)ccv8S!z z;<$dv87@7)|6+aa@>(URabCo~>PqFmyg0c!|1I{_H1~R=Dxqu|-1M*3L3VYcFYUo+ zkk-QEe=ud0x3$n>Z^f;_QIlf`R)bHP))xFC6Q*P(Un4~3t`@<+8dkBMZK)JLfbBDC zuW`87sY`(e5geo%BB?*Wso9~}RCu$F61VJAI??9v=e_RVg`yR|Op+lU{IsiYb8rj_ z!VT+ccwqssWA{uw9Qr>6m4qUgcmR1!gH3_Rj%L+O@6F)fw6bd%A~>5);UG)f|A3Se z-lZ_9d4{(-N7rWbL+j=4Re-N(z8N51a!AVp(CyZGA8VbRU+IvjID!TgToY z=voiQyR*L$&vyC=?GS`--amw|bdAwzaT$h^udK*2RdTktYEtINfBTvZpCt8z%ufau ze-|R5++Ym8tPaW~$Mt%;t9wdY3nPmxYR1GaeIKeh&mcuui$eWQH9fuP-{xq8o0|R# zl?7B2N`5k91U`G5y&Qc`Z0y^}rjQ?F4)|{)pYM~DEx%c(u2!&)g$BkchZW026eRAD%lqeTw&{^=t65u@T z@%1-#L&>KVbI6O~n;{($>XkH{XkEw1?YZH#W>2HvCu@p^j%2k*O~T!8iQk3oCdJrc z1_e1#RZMh^+9W+MTAns$6q;kYc&cq})4wjZ_m4;g zM)u$7?^1rluzfdkvPdda{p6|7fIUhE9YdzinUKPl6A zGWvrixNA~+n`c4x<|3t|iXP0ofj3*y=z4BTUO_{y$5ho)i#>wrXbV}H}W7}P3 zl&I9xmNlB)_qc*PAsEXcCU557Z@Up${UPI3iDmer>h3&ukpqfIQ$cMZO{#{qOi_#a zUiB+qW`8M;YZQ3ro1MV6b*098Gzsjn6mWCt!Np(+R z`T)nn?J)@slSB-UDncWacLc%gOJNgs6qw9(VFXWq8sYkYINx}*m&7=)LevmFQdaG} zOif4l3{w*+=+v^At!H8rFq58BB%rEZCO^H?Y3M<%N4-6^{j7}|R#i8popg}yHmOFf z&3TQQz$`%2d*p^q7FwzQfWv3#f`Oe2gm~~R)4+(qwdjF*V5}jI?}|{ZwcnnX0F$8S zo(^$Vd1B0KMn;d;|MxYD2eRoYDUVpV*h8XjBRafx|7pdFlXakPZBOyET3lW7Vp;8s zS8b&O`u7&f#5_8fzbkdg3vkDo?cbi%K9+9jhfbkX$YP8h?&AI~Djf^Stqw>KSoyxr zxpHb3qX8SVwmRr-&$+){tfhAK+Mknu#Z7f(1IAgF(PxfXYVL2RI_scxvRK=>=w4+c z?MGT1uAA#j2Mc-Y{rxS3NmwI@G}Q?yv=hfSs*LPH{&5M%nAD{n)%Bj!>3(H>A_sma z!&wHvQXo3vBnD}ePwVIuHCoNgczxn;y1i9k;ZQ1>JATZ*aDU76%(~#4ROs$h@Sn}w zwFt|LteP!vNR+dbl>7=Cw2i-K{H2BB*xq1qwV66DBrXeW>iI6HbIB|Ft}+Qq8Q=Qi zRl8N%=#hct*2DWr?|1zBAzqh8^JFfvqqNovA%C;p}#|hUgELhc}@_eM#WnN@C0A-sxFc! zKKc-tJ*>xdMQqxB`%-fCY0lksT9W8jAHRONU1Tca&*$S$r+*UFE1o|ExsK*91BNyH zXIvOK&gQB+u*q6EH0+U3x@o_I?wn8}5P`LUNSN(P4$ z?MXo((@O^x9ZM1K-naq7N{sSqYS#bJ-y!<)P|~W3Pvenl>gi6&X%cyX_706I*w69< z!Cs7rwFO?g_4Mi}Nwpn{9r~*Fhus~ir&j+GIthNnoR}AGWV8a)?2Tk#VfxU}K{kn! zS3|r3x~zY-@b?Z;f>zq;u#Ai~hDXag6Z@P)zSJc^4GC+N0$^hwKoQS_O@Xoxa*6WQ zQMVdK&@2+j|KhHEv3h`4E%NjjaJlC>s&7xJ;*)Zgr&#j zwb6E7>qvsq!W;>G#a?XHO)LZykXzb?aetfNUiA&>P^cT#Z%jHjN)P8KL4}pi$=V#Q zhmX!A85WJI)xk%&lPA!QQ!F1Y0nBdFd&p3c2O>PZ`%s9_I~9%LCIj!v2lLdf+$RLJ zrqIkHxgIB3^T!4)ece< zeBF@Daf#cYaOik{8;`Ez|CFi)?zC%zpUm#KTC3k!3#|R{qYxsNKP0acY-%V3uSq{O zz#_L3r+qXJ8|Cbsn-zaqkMX;WaphnHglqWBehhuMkw=riap24+LOB4%Qx&5Oy*sg> zZCR*HMW{uF8O#+udbdBjcR1ufgl)>@+Bb2mSf^|MUt7dML zI?fRl?&9;KhNHD9+Zs>z*kgA2K&!;JLHFvnnvzMt&E@0B&5jl-BKE;^o96`EDL<{@ zwZ0pZ4^4StNS4fgisHDm*mq$pJLR|FV${aU71RxN8Q-}v2Q}WDTtFG5|7*f;5N6?2 z$Iaq;b1U}?joA%W0QzT4YfA#bJ)@T@J*Q&GV&gH+Q7PN(bqt36Q1(QdRN~x3$rl7I zU)Dj;FtIm0BH7=6;81JkqEsQ>V&yU_(eKE4%cQLF@X#8ckiHMu7~S7ybp*8bU~Yxl z=JlE;>`U>wW3kSj6Rl2+B$~d}=sy54yV4rFY45**12Bg;vOBzk=~2eB)nJs!EzBd7 z`UeI5y5XFL+q@TMP+s1UW9nmTcasWr46RSiy;p_y4e{To*lz5vF~Q2?-^$M$ZcKF% z33Onfg;|d$T7^@yF|?Q^?@85We7-m!sp>$FR{id5qB$Ht>%N%_5ar8owruo@WrjQ+ za;sqNA$d_d4g)b0a_b-{-J>an3(b_WOLP8iqALgnF5oOk6n&N(*#rSrmH8Xr;u?Zv zdDxv2baW;|`PD4fZ&89W+UY}Dp5Ep&m?KvQk>{+YN4*w*goj_AbvS2lppg;PZ4q9M zmUmZ-x|r{Ib`zOdD{8AAo3AN!45v1rnWcnqzz)CAU%?;fLBG0#!x~<4O$Z>D#;A4; zBvforZC#x?FBg3!pZJ`4HZtTrt?@()wnW8Sl@&z>7!j^1x=sY}8weyxGM!tP^sL!v zs}i4eC^CZr*zhl-UD$r%jdmiS?#2V3K0(2a*DJ52H3oWQ+RgTyWkAi?yj zm}lf0MmL?CwGX*?r^iS4?cgu`Cs)t%`K(^^r~Yj1#yD0-9^8h5BAs~lJ3lUIa?5@;vD^)q>UZbt@;xuZ_JKnvWE^2s=zFz8Y z(LF(ywC^mUfjoJk4l{S3UoHUEl_@}7tWFOGkYfe6u9cpl{UqT>&2i|X#?@w}Jusnj z$l)p?(W6&;^v*192v-p8CQ%Jr`jED#`n;GtsS8K?Y^6po!-me2HC}GISC2&Q-W!EZ zjVroESKdUR0o*_J6dG3rYpGhhhfX4u|aXZ49rZp$0KE$|4FrRBXgBwt>%*O8}H zSBIQVV?tF32BZjF_iQYZY5Dgg9N3kvkVol5`N5{xBF)(;#S*8LygG z0ilRd(q;-xVNyF9%F!t+J=*c0;|kC72`}Eoy^Q;PEfx@o5_)OP#S{If`{>h0U z8h`8r&Gg-J{5hMD3C1`FNc7PlLtoscqfOEV+&xPT>w-QK1RSXHN(^gUoyEEY_c z2h<3LePSftQWq4#H7OeC`PKbhT20~y3^Ph2+EGZ&mbX@B7%^fUW+~N2`qcJaaoLfb zpG*NK8*TgJB!84#4Ft+7>%9Aw(y&^-%&TgPO+LbmhD*aitRM1$-GGHjH=@5|sZ|VM zllQ|CK!+4X@DSrORm=d~I4~SqTZp#I{bt^j1k<%iZPoyaH;LMYT&c;9TWibfRFA&iQos4YJt(7PkZn?AqrhO94A_4j3?!HTpkMJd zI?UHbXudsr&9z&f$=eL--^(Y2DUm~LrCjc20BUIgId)>yQ` zYjpU#Mwiu_)XbuDhVP_*o4LDA`*OsQ?8_taN4+~6s|;m9g7R#|2|?BDf{zG6Oh~Ei z1%=ud(3N^pG5%IUM-KMB4Lhmw|>)>VZ?aKeo$3Wk*-G+oq3aon}W+X zop3Sr1^jntp>IZGX_^gy%9OD>#qKYRp5)~!5!rPjqHi;i{SH6a`1PeSSLkD5#FF75 zLY}PxLuq~~o9cL>rLuD9|5%0V+Ek_O?svk1&oEdza1VQ%V=YgT9MVFA!UjcrpH+!N zgUIrJJQY0J^pbE<5kE0In}0+q9EiF+*MNR2NA!oh?MGJK2SH8%Tj@KgM#Sd`*9!mzalt~s8Oo*8@?KcsARbI*YX_NXoTDWSh5r;*$ zD{2e+Q?}?06$*2~A%-fOE7e?D-}&Z7QjC*baN9@jQ5IY+fNRUci$Y}C$&67`d9+d* zQR$3f8^)rZ1z*JMy7zSk=Uh620%GZZ%`e7~AwX6s0FtU1No0mVVId)TiY=NcIr|y~ z_{xOyO}1CCD&3KM7(3t;s1lT-i5-6&hO>)olphVF-L=&rAXk1z3WXhg2D{=Wq%s)D zWB>t}Gnwy{j1lT98zGH-A!d1D4b6k-$VYSt9r#_8w~b%eZJ7!hT2l{yubof!&C6$y z&r)^`*KE;hqAcRP(o+CM=KYZbn1c^H_5a;#Siz16?9d$zUjg6EeOTEtaO!6E=-$NV zwha7h_4c(3Qko>A|8J9(e*Q+GSq<777^7IrO!F0jSq4vam4UZX!jFnUopi`>5Iu5KEV03#K>6RZ{# zjxW`{FtSjZYPjUrb&L9jVHe8c=I|bNif4MR+C}*CToz?WqVz8e=n?RE(qBVNxt{(+ z>KDfCoMK5;gQ9pWaBU>bLAJRtkI&;9FbN!9?{RT72oS3XK~mW%@bDPK?diZR&L^kQ zaIj(KY5J3NjB*9)ZK%V7%TlPJh`twI*U^AiD#~P+e3b0?yPkeUy4n@#R91?~D?l-9 zYx&7=mhw_EFv+j`Gjd&o-{>DD__Sp&?x>j5)6X zcc8JQSJf^hwe*N>hq;kT9e8-7_OuksPL1&e;9(t)(TAt=IQ|Z98I{D8^N(w*vz`?_ zKMiad_PG!MB6!&9+lkVOL6_F9{t?Fi4{@_E*MJTQCl(Po3cwOoj2=)cU9MM?xb}AE zZ=izQQ{&(VGPfwmGoaxV$EP0UC*n(jq4}FXI$ho{D|1@o)lemiDK-|BI6HtrP&RnB z`SfN%RIw>3rkY@dGct?LY&rxwF+8Qw>So_Od_Nk9psxevyPV@Q?i6QaL6SJC#GaxC zoY77La&ld583^zlukAYjG+d7(f^2SsJn2Tz6lkVVDPz-AXdr#Ne|AM% zeMDg5OzohNHblOAzxPc4&ovk;T1LLps)A>ZWfEl+4~oZ6zG1`OnwZyY& z{65zuptd=clLvKv4Sxu{+D*tL_nvy2ehPDV$q<4{{sp+^`0T9)C{fIoUwGCy4xwHm z>~m1Swt5A}D!tD(@jRZO*-d&u84jiR*H@7x!y0l)b_G(iJbP$Cvo0bO85?pe1i&TX zupte9XrMIy#;-2>UGtpw4x8MXFy;KhPXp*P-+wnfk z?|VC4Ml;Gc=T{X{h zromEBi#8en#1%`667v62u>RZ}{&0qg;&wl--w$Ko6}c2S6$Jbcf(ZsrVoGlO=otAoC|g{ zVh?8Y2#yJuO&pq+Dq<4^Jwh~-b|#^K3d}d%y=jz2O>N7#BMsQ@Stt2fXU&s_AjDUX zQNL@LewmzVG@wyyX`N;r!U4)W4UkV3H$FtAp}{Ns;f0+rM!ak_mbQazEO9BTY>ufa z+E#0f469v4=@4wGcX^P8ZXS*p@3GZy_dBRnVDM5|PC?9Ht-|zU%=p4m?N-PgRMC2% z{B+uqVQ%y)TySLau0P>ktg*x&W%W`mmlB0pTN-VLU=f9W9o|0V4dP&)JHJOrOBV#a z3;hr5TUX~VwU_7C2H7Hs&=RezP(hlri}Hsr8uP;FlX|Hd4Ma9Is~bK)tPuZhH2LhK z4V(cRXFc;C8bK+Y$ZpVKqJeiP~@QUr(VmjT7NkTXPeYUL59{TQGjun5O^fry0 zCbCPG&kLQL0vp`==fZNN%Tju*EOAGF)=YZ$s(hSwj;b2G`C&FreuM0F*YyfL{x?QX zJh)@0rY8OP2zKrO=4Dq13MW|aB$TEzO5EK6tPlIU*W5YZBv9JOhpC%gF=r3aXHUE# zSnKgSwN@^MqeTuQ(j;fNXBO8|tD;}PxYn(o7XDxHsRQz{PcIbG$ods}gyZ6>W-{<* zsatN}gl4iCga?c?IWu!yoYZ)J`k}YXXWd3`)DS{aNv^O|aL(X5(eFn}40 zod|}!tnMrrO^#*HY@LvYxn$OR);k54&9JW_ZGsqK$AM!ZXy57{AP<{vxvxJod*~t*}GaC|LuZ%67;QhE!)c8cm8SS`B+f*Yy_`v_hEMUe`j%~`%oHTz{^vH z21hcpS>F1lj-I3~2U(lK+QgO{?nNjVq13*Wsu{kCxJ2o#(-ef!#v`Ld9gq9%M0~p( zkrjQ1?ytmFgH!b*xpq;wPgQZvSwSQgIbyyDghSC62w_nIxZsXvOS%-BmEzk&nhg56 zpPs~qABive6|nDIuU8hC_==LmkUwY2P!oOwi92b)4MRDSaf>*Vt;N^;k;7tsg!bL1 zmkuBge}kwLOBcWLb{kRvjOTgQ&qh7Kh_itXyOGrwx9r2EN{%IHYPC(iKX7O?{4+AD zqGc#Z8UakH*fBV_O4xv;uc+imA3HaBV8!PDDd%UFD!rWQN+6|NlFG%b@t#67AC4QL zrK9%l)yhjec?yVJBt>VLderI!ZqjlWF-edbnnCeo8QtGIP3+4~exa!X$PqCn+jr4& zj2;C94t%MBHfoQn2hNngaiL}Fp_E7L09%k@z1rZ_G77V(4SNzu1GCij-vI4X5ZC_2 z-*#9mYR4YPiWE%ucYcy1V#{AXsr^6p;$PNay^n|USa+KKW#VHpH+&Fz1X^|4Kt$fu zIj88Dy*!>f5X0^uspTm(TNQrcPh&{eoxj1QbeQky#R8l ze27zs^$~3xc(sjv#sa77_th3&5Yq=E(5Yng0HdzKxQ;onZ7bpu7wMfD> z5(sSq!ABub(MiWbL8V4!ccjqqhW|o9hyi3r*WQWv^Q#xf|1sI%vUKFazF|In$g^{? zFva%rjnxqgEV^uXrEa+vH-U-!`_UJB*bK!^dQ=6oF5ypJa7Ri|N7{!V@-fIkqJq6r zgx9tk*zybd=k^6(?H&w_shJ8|piL9`!&NvD|F9!d zY8#eGYhbIu7n5G0D-%tbh2mDvPA+e9rg^Cio51RT-)JP_=S2bJNC?7b`2X@ZeO6KZ zX%jhnj&nwaKYBqg!4cF_E_vSMaW+B*M5JviL0dyqc1M_AEO4;0ypSLl;!9a4Iri$o zy<6nCH2GPK5qI&Mx2`wz6{Q)}V>6aqTz{~s% z)q4gs*gQ*?j*wVd5gjnfR}?GDIbIGL!fN|%ZJ?-NKW?D748bhowDk5$zZu*R(SAE3 zMNF9I_)cVM0r`MI`>sx0e1I5OAF+!llns+RPYM%B?;<9Cn5Al(1S54TqnZ&ck?T!9 zEHFIPt#pGivi~ws;$kPp7R!75N?B9Xp#ciV zfz^}uTtw30)dq_#nlN^Bt5<4s9a8I-@R0tKC<8t8yuvwmNYoI^m9OU&wwR)U{(Iu4 zjEuVOY=w!vO(PjGYdxl2Z*MQYT#|jmgZ25Fj1kM9;a3A5lT0Ro2sSv!6VkFRyI%WS zr1z29Ty_3N)6>!+P>VF;gWG2^p8_L(I*s1e?7&OsX7Vk@rga3eHrlItf(SOq*st*? z@3ykPUB&1@HLu;nVWWHU2HTMyi3*!Of=BUc>8C?JEnF$wbSO7Zgi?8_%_@(2c-lhv zBjg_Zk@sT0R%k6EWu=Ks5-FgxNR03gT@9v@){RVijE%XGU8*(eV_KN!S%xhKuM;9u zi_fnT*pLWS1sjO3cx_-_rKy>bIw0bk7rL}%2067`^(CK04U-W|MT354zb{pG9*dp4 zq6cIgm#IOa#RPR!7gG@t5=#>Cd+7FCq?I&FI{UwI&HY=77bz6toOP_O-SxlwO_ZS z6z~79w6_Y&D_Wuif80H|2M8{~-GjRZch}&qL4#`u!GZ;McM0z98rf%x_kO% zx_JZ6*=PH%sae=OE|gP*(^7pR;C*}};@qENr`PWw{!SR@x~Eeh*y9zU-!w$Xk& z@A|HF zT(&?kBmMeyI)*FoaOCrQ9}bf=xSZAkg@xzSv~Eg-MozxjHk zLNnK(EBJawPFjLgk2>3jbR+7(L% zZhMdXQzfhf-Jtq!9#i=)$J-OZHX84;CN8oetAajTG)@`=^aSQ+co&q*1m(cL{WTEg z>TCsb4jx}k1XFTZ^oymi&MD}rl;{e#q<`->|JC4{v?VuWa_z+!)-zMUxSPagt8Zvn z*YRN?q%3+ernUPqa7V^i*>q+#H;}W+XLkgt8$A2v z`lE~X1=UDL8^=>P4!Qgr!dPTIQT{P{>$%W+q!j(^8p}6%hlW?|Ax29f=W}zC9n4+v z_JO1Lck#<-Fp@9?zzn5SvG62P7Mb-{yA{M_tp~flmA|a2lg}scr<*cZ&JFVa&8(AUVh@7mJniNOj_zBA8ww^ah!fR0wH~3T~4~D0gEw#Am&uKb}nC zuXEB#Y3dW(sUGi9i8y;-UOH~MiW+Rs^~|9<=w4uFXYc3WSPJg;Ji=C!|I-jy%$=qF zr^nD_XlrX6>#sv*@CN)ypWmm`e%lUC7^Q%IKK1=}mwKGrYx~ljE=Xc53ZC2<*%k-?p?Tfk$;Pn)pQBt@+YDMh7k#*nsU6k|&);PY#hk4S{Vvexxe}s>dd8ZixpbPb64&dHujuoN~DY?I~>)SLpp~ zgi_SaBDZB2CGW{;+=Ilt6}Hjf+qt$PuH|SjYL?NkOkm)H?cXV+fA6KeTanS3xf6>C z1wtGYu{xS(-gfg{PTi-&y7r^N6uG{jVq06=d7Nywind%H#P{PT+qq35R<5ID%SVsu zBL=6_Cd4@<-Wfcm-_L0l08}CmVr&@O<9mZ1Sv{Z7ikRBa&2;EHqp0@_ z2u`SM3c=6WY1a1WoT9v_KWzIE>Vzh9?qHao6hw4ob1&8+`5YYA+Gu&@1bvs2Ln<~t zF{5XYF9bi6jPOw9;ZyiK5YThCS{<$&G@FNk$hTRb%tDT=s#e0w?=Khkzw z9Am2UAK&il&jC0Id^YkH>%g0kpvHD@tZGm87+L%cL4)f+;;!qf#bf5cQ zWP>PA?yN)>=FxCWMa<&~5Hx^eUcK;BE~(d(t#0EYo>UW0z0=K-%?Q9}YS`HtYSSI6 zQp{h9jgOY6P?w-t38c%!SSTN75E`1b#Ta-GyTeYIw zR}9J0pvC_Xn<^V(u~qtEBRS$ZLv34G(kg#?uw`)dJrsZ( z)}G&_o4c77P%2z(TZB$$%{<=lFT0&<15ofy4g^^rc8k)KZQIqo5T7qwsjFRgHg{%i z)O`20J)^zf+8yt+MAYwB8rv3zeA$`BKdI{IepOY_Sgn&UU269{Yv6gMeLSB-u{{DQ z8f%_R9ct#nHw7BX4qswKm}`Ckf)!fMz$?`X_H?{MIOzYFx?{5lGUJYdraBXsQf!Hv zlwMBUJ?_?hHH+VduD>;PFnfVJ+#n<>A;7;jbS1yK@G7T+Z5P>(G2{W3Mb_=^>p>Al z+(PD#`{z}bIG&9{8vir3(hp5owh@mDywm#_{6(QWTp;_XRQ*D4^4Wy$dw=g_@)IF> zw5AUJgf^79Lw=^z4|!5x!Cway_t>K|3mbEkYUf#@iyFDjt%4PK3ar%WUY+;)o6dWgMKd*Md!=jP`Xcp%+tJf0Vu09Um?vQ-rJxpG7_WLY))XDOrE^KYQ%`8`h$g zmHUKpYAc8IGu;h?o8c+{PG?XW3w=2>_TKph0P--H=Ni2(Mb#bdbc|(YUWpeaz)$5;0?nls0k8_&jooX9u0y z#>$sa#rCUXDmWu|h8~{959rdhD`}YaByv%7JPauAgYJaBz6z>%^;OnRo`v zm>QIan$w`f6jOe$d2sv!kR^$L&Ye{S4n0Wu<*78qX&Dqk1Xwa%=koBXtv{ z{Y?joE#iLUH~{=1Rfz3Ey-TAt*B?{<4F$~+{8|%7AYaMl{&2kn6ta-S?C#3A+=5;O z^>JwvTmwu0SeLsNIepd>R$7FaZZGYCEC&Bmk>4=(bJj|=>tg<=y`>>fYM3Yosc)cv z@E>4Wk0kzDx7M_IS5lqI$ZGY>Mx(u0AAqTbLHxM(3J^*JjB_5{Unnb>T_C>fXW+7d z@`sI^q$)`R>kPaYwrmU_f{QEa)&nDXvT}F6m)`}9QQiH0cQK^4JD(Z$FjRmlZ}dJC z4S;tg0xAY8w}a@{_WYk_e)3~AyI9a0KUhiXL3r`%UM~*zu_|@HcAyX@Y30} zXMVL}-KGBFU2nG}UFV!6!4|pqG=WO)0(A82%<9hhqE|5AGVPsPotHbA(S6VbKTDEU z&hM5@y;~P(!YNXt)g-}8(pL%g7AjA4QAQa8~P_2942Z^!~iocZA?v0e7g!MdbJBU{zpq}Sxb zsohZS<}m-;JN_YCn+g=YI>$c&}T~zh$wllqCDTPfo|9{bZAYGVf z_9>y={*7JO4vLag&OOIx=xeZ?Hfrmna+_3+nv&$yG8@C7pO08~0hdPnNvTD4HNGyF zvaOGKx6>U2;}1ck5{Mm3k>o@Z-gAe`^zE&bKT8F=&8!VX2*i#snbO!1l0=3JrBIHM zBj{)WOBZhFDK4#@08?%<@cV4^=xn{F>O#Sd6_DiW^$YK;Gv$^;ug((_7TVm;skK?MB4RV~=YmWYvX)=iE!YdX9|4_~G9YPO(Dd4O0+d>4E-qrvL<p zF%#iVh41+%CYV*)5fOh~n`DHPKn=&JB9o z_+y+pte6Cmng0}MZL_<1iZvtjfk;AUT`cB28p=rAX&279amwkC0r;@Uf1#)K?Ci+Ny?!$`r zQa|2$oDIX6YkXpF$2T{vJY5A?FcG+MY(C0kb})nXNr%5(u=b@F(*zHv^ekHy=Ly?~ zy$o>)7D{hC^<^51u891{Uqi@b(2GU29C|Q)5M~TRBb(pBq7k^*6O5n{w>m+_Ip{oB z$wMuv@0P)MpZ(42XYOfRRw0aofb5-p%!dD<#y-PRL>DK>FA`0?@OnWO0+*fj963e? z1JRqC97^y7Y4^%iCYgap*W<_a^ByaRcFita(O{5aFhGBpbk7Xs$zRBxKpfhq-IsEP zb|JrOVp|1s2MaLjw0jqL8Gf<IT|TKz2P@x4 z%HOm4H*q)PZ3baH`iyFfci#jf0N|12_6G2Aw}wkD&h&I}wC<;nq|+MxQ*^u#jT-=N zlfjKG5jbk1vD; z0DAT*PB1F{p88O1A>Wu~ieV!fLcw}ip`qeA0_cF|XMM?d+0AKgIqbgxLtdTrAMjci z(~n`q3wlCiWW5)@&PL28{oGyN3~mIC>-%+ih?vZf$(^k4J>c2?!0^^MERn#QJAs^8 zZs+c`Iv+UTq(%dUu8vaVgMoXG&>LDYfjI#_E+i%BzuG46%wdYe^+e`KA{U1d2 zhSCQqf1|u&2=hU+5c*LQZw-ypGP`rG$2ufO+eMge2@64_v+|yNy<>@wxHiLkK?CGHpkWHow!t!H>Lb|2_XC!$ zw9luPc~MU)7))9N&Wn_!{ad5*3mKfi{>C#^7gsBW`?y|B+=={9E>X_omBNd^G)tx{ zWcLRnaAyLsZ+(MRgIR37bvo8)@n!m!pXrD!_b}sveQf7Yo}`njkgNtVHtlgKtw(?R z8t}h4_h$dA_tLC!NlxuNae;#rw|)PS*mgMg%SmnYS2**+t?H9lm)cXNzVv+WgVHK1 zD;&IlqTh*2BP$neZFn3R;@};gkRlFE&I7KP1L1TKM<|UsJdfeUX?4DMj%F;Yi)D{} ziOOQVcp(t@T5psu`5!}A)S3>yXBfo@6Gtv>DCRht+cFbe9kcr@*6FJ0G-qy#hu2Kbidj2 z!HJ98z|-E%<3cy`$?At0E6sCT#!}o`e!AACrVJlB&bXxVzjPfY(l1=9E z;)T_*G=D=l|H$n-+`%h;J^qSHxFNQ})Kz`wXd-N2!z@Ff3~EBrgcdx_k*0%aaL5cu zAzeKc>rh6-D5f^ZYi(_f=ef@);sRfGpj;AYVb=|1#h*L2+EJ824Y`{`us+W1)b+v)x6Wbwtl|hvtjtvNsOtt@LJ7ujXRQam(({qx0C97TP7 zcC4=|31_-sWh*GdAF?PVqY?`sF#x_C=GHu$sH|9h%L&(e*)_N(l`BKUAp$+~$6H2y zg?DG3VhYng8~pK0o)oU>N*)cld~8_Gdkb<)rW7)vj-?h+>!tcz z95~5q(iU-4W$TnKYz`kJt%fQmN@cpKk9)48T6eh?R{ooZMu+wL+pPxEFb-R?$_>mz zys|sCj;rT?UmSi@`W-A?v#W>kqF;g1bSOGrYDCo70dH5M0#;g#(by>+Z*fRqxgHIE z*l>$sayZK2S$@-A=%k>>c1tRL@!~i0SDO=`j};S4S*ew>1T794=a8niqVmT+?&PKl ztc$h{3S~F=LFDh>=n?2K7o^u=W4n8|?;DFmuMZOocTIO)Uu_G676i^;7Se{k;=uLhXuCfPMyw`vXEnSL5PrIb zY%i(G{^1o~{ATpUU!)c}VUfs|AiGS4lW^s#CHH2DgL-JtV<%Z zo0r7{MvGxdPJr-L}J*o?^{8m0;!`XW%z~lnzX7bRzwIDiSr~q!%^>G+^L{vII0ttHqqGN>`*s9r>pFfdFyzWd5%8$pZ<<5TXC84e|K!EZh!SX#mdbuA4GURHsF!k4 zluw18_-zAm6oLJcx3SipM@29u@z5e$#@{4`EDG^WSIG>6rIM4g!XkXYKr(Gf_f;AZ?Zi)VP4$J+4uF0SJ%#mxPY&`Hhj(i9WeofXd$_Rpi$2!aoC z94o}bz)oDK9F(`{BtQR*LHxCmcpLW>7KX-}Yx1wo7$Ue3st&-fJI(wxr!sL*`M#$_ zVd}&C*~(oup^2kB@HL77!A!M9-J(M}5@EsDg5$s{*KC6vMA27;v=$MoTLi;ZKL1=} z4s(4Mj0!gklxGOP@}`0562W>MoL@L~!rG~*BpxMGN6?ZMsg1dX)3vH;aP`x#6;)~E zgzC>0oLg^Z162j`$3+*Eb5?NoE!&ZbcCs--2pLNK)6&(OG7G4z{0KKxmb7{wRf0O3 zC-G}Gu9|)N2#eHXVM;c;wq!pdJWx3`@AqZGeoydxnapC&2vq3IbzPC}T$Ag`PqXJOEe~(a`~P@e`DRWIJ3<4*1itJI9uvmgQ4BSnvvvG zBxIg$<}M=9egiyLDP@7IvWkaP+V@iLoq1I%7dg*n-m7;f4}UauX~`Z!JfknliupXf zeFl_=%wOWSulI<{xE!D9Rd*NVbDz595bJyc6X+QC7lry-T;DnMefG8{S z10fFHMpS3r7(dvS{$$T~26whLR*Ngd+?E<{Jxn&I&?YQg?J>7*<@hlGEN~2MZj$zkNw2JRG>(i=3Xo&yOS7=R834&NM;*E z$VR4}R-_OY)|mm5O@;XNqfnSLsXRO--dMW^yquTBRDP+AYFzEzSNvkR;WOd%Lj&FqYn*7&?yu`8a$)>}F7V8T= z>duc)!Z8$(vohO4DuRi|YJ7F`JCFIEF8MW%J1hZAg;Ip74&-j8)i$B8RZufN4|qUR z2v&q|FZ^q2Vxpl~ok-J9^FX?Z)!3G+=AXE%euODb@^id26cB~E+`=P${>3V-S+r&U zC-9x(uDQ_N+%d|tn-^aD!?^EL%G7E8Y`w^n@5|Zf7$@JO**&@MazoFHPo260j&B`q z<|dz-{oZQ~HDa>ph7m1*4he9G$Y?TYAT_FV83x&(8jJseCD(`=sN`}Nsx@GOFQUq7 z9eA(38!c{blLb84n{+%LSvQ z84fQYwB*tr{R3dbZ4G6147uoGNGai}>|a*1+w zsrAq4KbP}+L_$(v-*eEeF>BaK2ULaoBn*^TVt&@hP)olqdIsy80}zO*&7>}v>WxoY z5Rhg<*-M3l7MVO$jqsbQQW8>CKhFBQoI)(|`eIqG=4+V#?6~1z*(Lv#qhErV?*Xl{ zb&B^U?6%(#-L+pyTOxQp#CP5Kzfq_O(SP~<0K}{KPai}1YywQa+I^ZCIYiH=$jPpa zJ!v{0)*A(9tz?|oA6T3vo(`4-^sV@&knZZO{GY5TF5#<`5A~b&U>P}^Iz|yjprf>$ ztyuPGz5^9gYGFk(#`z^PFn5ZlYoTUAvPs4$hZ)PR+N_ThWT*FV&THJhxww9-RuRs# zRVQ+cbk?jByxV>@$|@gU@9Bxf$yS%`_EfJ9St-+TbsUqhIKuHabtNQ!DZ_`@n$5WB zMZRRCE;(-Wad!2Hl&~h!r}2IzqgVg}hcNaa`UA%;tAUH#3wuR+UD#Dl;uvYf^OfD| z&f^UHe;tiN{mr~n$)8S`Lxc%BXs#6)NXBm9d6T|)^CqgeeYbr=xQdpAUL7=EHY?(B z+nG#9FwgIE6#isHc_Pq55L(xvOdMDI_z?69qP^jvZOOt8VugZjxI+U^eo#;3v=99` zm?ShR6WSW}H#D89ptDxs1Kd?5x23tb4Vj_|n}Vz=d^VP!>fo>?w*f>hBE^;(Tmvop z?{iY~op~X>upC}m+F@v1Vm>CJ)Iw6c^0o(GmKcqPb)L!mJpY1~OIx|&Gxdha9PiXT z`9?qYcwB4aqCVDC7Gde$mtc!=gVU*4bn{(Lie%RcZLe?sH>S_Ymsdj9u|dA?CEokt zmA{HUU}>I?bF*9D=j1pQUE@CH9?;;`FA=5+#`$n$oZhwR5cPML z&if^1O?!lwv#@w?w{x*65(vdfbX?g!eHWKy;|81i-54G`j8;(gHIQ6}A>YVBimu?$ zv-8UnX-OcYI`33*;Teu;u8YTx~x82QR9SmjJhf4oark3ck&m>3A{g0rz z6p8Z{3R4!a#KdrwUaoWS^;db8bMW-M@hl61eSsD2YTspw$Q1 zfL-~j*Hj{JG4>4G|HS|Phxh-h9Ej|W-Mg!cHtxLwE(F2>w7U`ncYnXR4-5Pp^Ynu? zdeLcmX968WgMs(BLB1lO8ffgA>qMhxY4&m;mv=JE$1;J5Kv$#sv z>=C26%}+oA*s%#mM7(?*UmwdV^L4a=#gS!ajY8?nhg6GgRo(XKSLEJMCac2!cbVi? zqyFlaE9125`c3^KRBG3*?)DgBz2v00sp6vtAdO`_MhdfY7aWc>G~FZ+@Mi2o!*KI0#nDNGrhXTj!!BUp*Ps9G~8 zHi*?{7vu!2;_4#%kw{3`4?}8v{|7`Nto6Z^>PeaSMP~6))2I17Cm;5u+#hN}A1avS zr3)KT7Q;~4xPlkI=%NXps7H{5A#d9n8!)eZsg!;YnBYftoIZ6@bf)3ZdXobg@`kT--4j;&3ijW+OqiHF2Cyd)+(P==-(#K_0yL z_}OLJcKm(y#^9o@&cO=P7aM?xMY|^;|Gd(;H=e4_0jI?f8aa$_>vh7>W)5~?vuZxx zjchKz4spp>a3d|YA&v3eO=dhzd`Sdm2x9iv!YT%ska@$&jew`ZeF<5x3-{**3%Pf79fH7D`~*9q8~ZU#93DXM3=HIuG)>>Faw)N;7yKG8zKkVRMbxNg z3EG7hiV?JL`H!sTKVUA}e-$^EF#l#WAgoaaq}YHq=YN*r{IAddN1^j%@kVBRT|xJg z|9{?l3uZ4x0(y*p&gVb5&zf#m<9ZWpl}9uwc{J8OA2_7YHiToHt#+{?7O`=`?vI7S z8&p)t6c}xm@yK~dxn+gzF;7U?fFYo|!vkRB{Pd6I5TRwCqkv6D zz@RqS2G*kO4}S$1Rs=db;jAfG`X6TrNJ&v9S4zmb`2k`=ewOyJT+h4>2xl33LEno} z#s?w`GXxYzmi*4t2fitU%Xm z*wrONIz#7%o>{vD?%g&B$>yhX6CiOMq)-6B^+!8J+WCliEyv(G`nlG=>V(pB5xLwb z8gzS;)F80CvgVRQ5XAf`@Sp0aJ1x7d=6kBy%X!X484sPynZ;9p#xfKM~gym+IKvZc@(CWr3vnzQOpX z8Z`A!Z=CZfBrgF@?MFo?82!|VjGgeIq7uSnQxy2`v9c&;-gf}j$fM8 z^86rr9mi*u@6ECGV>)jNtnFjbO#Fq#1`#s~f2Efkj?e)-%aKI z2@$qErkQClWl%REiLbBnQ_(D8bZ*_K^^AuW0)ZK^Q7>)EWz$YcnwRX%a#56SB-`y+ zrLKXmL~n>ADmfrkO#=Zro&H3WBx~M8&Uc)%a`>+>E15$xP4*I5y-~!J*jHk#>abIe zuw5}+N6G+3l(B{$Bh#l*$(8E6^-&K`(kgTpwq;hEO*>Y1hePzL8}Lv<)FQ5KvZNtE zKt%+sE{!Xg7V&aJt~$ogC3a$;w{2~FWm`ChJ=AC!SsLSUzgJ5hCrH})Fxj0hV-Ngo z=UD(Rp(dVdQf>TN&YR(fmrXfRy*7Smg(mtlb_a`Rt%hc>z3U*A32{03C zR-aIx+IL)m)8AEiL#F7nSIj4WPezh2xo;Zrp=BT@N$U{}y3rMk`3ijn!1`~J#xBL1 z*cCECR8asx@0O^RBZBM$D7AoTg0gK(_OTrSM5OJ611W@v0?ZUY33Hy8L`NJi=Xn^4 z4jaYL)B&4}mK|ST=OYUMsrW%qY@$xxZc%tj|CO|cc#FXAx@f82tX&FzjXXyz4_^o! z;+4jueIf^m7d#ODph?10Rz~9$f$(n47#MK$DjPEk$)M!_Y&39wrwS z9%?l#Qm{7|7U>UM?8?bi6T^@yqt#lVR~_=7cPyh~Ry_+`o`!NxbSJ2m&Xbj!rl16e zJ0_@l0Mks^-|7RLA9y1{OWViI68geP65M zf{hz{tuHy8&8k_Flczc^y|nOB+|o6HO*`&q^*naOl3{$-L@oNGLnD7364**QfL#UI zuF3Sp<#)#5NQNi!>}LkKiAuIv$8(nl)jkIuKH6Q|#W@BwPE%w(0!z>^(Xqo(m!mb; zUpKn>|CF$l221cy>hsjHSUD_k^YSez>w{}ffelW&F$2=^)>Ew(!xRFKTx-m@yQQ^b zkm-YD!8MvhRcF`Zd7Z}Or!}8M*f`kNqbJj+&i40ZQw{n;wG5EeYfWkZJ4q~xbN%x6gzgU>O1E7 z6_Dbhc%-H?jC&#u!k_H4atvifyrv+NA z>K=8YE9W*go2?j1ly-Kg{N5O4aF_T|*q1cy+JYbk+x6$w@If_(<2)GLH=8Ap*p`a| zd2Q*(OBHqBlQAv%j8^+#^R){o-vr)dXbqUP5nPomN-sp`#80D{*@dx?+^Z`;x0w)F z6Wgc2-`JDdKtOq#jz*`zizB#z!;v+fj#Lx-rK-{7g2Gxes`)#0d(S@y}xB2 zJx-QKq#b>R(}wIdDjBN^-AeSgzR{N+nONmQ@UBtzvDk77Xg05`Nc}3e(DQbvOyjYT zTl`emYLk-Z&HFR1x&r4o*QV-9)=}pQ^Ihj%Y)v#5ABtZvnvR>fz?wzX{GrQ&4AHMb zqinwmz?L=am&tYu8&`=(&In~OJ&_m?N|ct8tOTx17Y}#o+|{XILW-&e7pGLw{lP^( zWBgZ+%admCkFa7$#(|-Lpso>$Yb7H}o_HmS@Ewc;&Nx)U(`^yEe8xUw+>cn<+}% zSNAfEf?B(DE15@W0?ax}gWn3dLo;#ke&v26ZNi@!QY51tQBtzMeG2@s#?{;I`111S ztS;mpj6q|TQ5EyzsBX&+lx>t<|EB4KJ_5SfJfYx%sRT^hR0Q(J@*p&(1vfNENqZIH z07t`8Ra%;(O6MyXqAVC(tt6)qsY28bo6n$#2zyHGD7e^*qfK}C7vGV;J7Z?*aa;WF z3=)>1Y9QI2>_gAP@SSFN7iArnK}`3X`R>t zrd#UIQ;?5eYU%mFUTThZ0xR+u+yIl0tSh7{i%;l&6yWf`_H9^(y8M7V)NF3A&*eJ= z)xG(V9%lJ-)BSUIMgG(TQ51drQIwfpZUAOa|AyWfxYi7sQd_D~z zAGXs%8rPSqZtxr16~Bj^4_1HUb8v0X>4VmF;xLyL|C$dNv18w$$)I!{4ZE)gDvaCQE~Pi%GR((^ zfE^EAIAyG1~cHd;%R8+ zlw&A!B+<<;QP&9ED+-L+Q0M)UsP@B)-HDfPYU2o}&%017v-u!DTn)8JeH?0~Q&gF6 znxuK3GG(=zvYui+Ar{68e+7$WR#Nr-NOECCa5i~QQuI+D{fDUwp4qt9@!i!=$1*}5 zt}wI9r)G%_&(VvYj^`V@17G;{3?}$XrWVzL?lq+9ta5uYm#!FnR6fgkd!AxyEe(Wy z>A~PHAPkJ}l6GCak0~ie?{(cY+?wg!(xjkOBYQ9@4mPZ;)}TJwEACFKm0oMW2d$-G zSk0OZb3n}+uYO+5gg9`VywT7psw;uNs!FgG*bG$aU(mR=k4-C_!GhTm7z#l@X0tfM zV)fZKqr{corSAT7DH!HG!Z0u$>N8|X^?`*J$&;J*OWqNd+c7lAEe}bcPVjqmq(`cn zXyILE>oCdPev?Q;XEt{BOhW4LihHf`a!RL?1(nH_Q3X;-qL|u5Pqin?h%Ly^ZsFAN zVn^L#VrJiFvD!wfZt~DMTais)d;ms1FHX-Uo%BLd-VL#~m`A-&eU$6T5U)|#&XeLu zrU_+@4+G?9mWNQ3m7(Qj6jF3?1HUxd;!xJiN*Ro3^KL&&@&WlFim+s58d=R$!%NoA?u z4p2ukppGF9HYTriv|OkyUX1iq&kO(4I%!0gN(?*K7w6-c>d~2vqv6_DFc8|9eg6rM z{X><^Mr`8eNtfX}Bwr3tJ3{yBa#RM7iWxpwor0b6WUbY5lE~!$Mw@vB0KKfmK*EO zWso1kWP``zSgdwV9QS00x!vS394GL;PM+gcZ5COB#Jz}~^l|GXWCjZu$ZrK=bQuK7 zn9@TUa}6+?f7t$WdFob|JWJ53WK~0N-V&QDd_;L*vzc^ep_jUwdXS#q=|iR{SfKNQk1 zSwX_|QVg-#?C%G=d8>O5m9LY#*_4iYKHY-7HvQJfE%Q>5>Q-SKnt({{bpB%f=eW+G zC}c`9s!wFUaHb+6tH`=d+y+V6Z!Z|a43Y`L_lk(s4*O?g-Mb%`HH6GmzoAPbD&ohQ z7!oazJ&0V7SZKZ#{@S6@kL#O>ZRx}uI?2%g2(rAh zWclz%D9P$ef|Nwe9`bo>xMAiUO3hBc-eMXQIVj*z7>Z{%vXA*A%F##OYKN>0HSvx2 z&3?A4)<8pFHFVDJ0yqchSeGN=OFup2h)pbR80Ti z{uHl#MXwGWeaai{&na=yIWCW>Yf_BHFvBH*2bo&RVprh@p7YypJ@ZJQ(}5t2y6{cz z1wkb)o zdAiiq^={aIvI2-vj-Pv?f?lw$-FV6Ha42e16 zW>DG+2VuL`sG4lvTs&{6592NSBt<~sgpS}FO{}g1-!;W8XNO^IB7rc8~ zuK9cr+OHF185{NMCPk58Bqy-#I+@Gix&m-WS0#PR!$RLX4oXzjNe? zzuKCxtO!3gAoy2hX7>Bcv7aF~L7V_B6g=?*PpXGrPMpFsWzfKNL2fQG>S`+_l+ju*v3_*2Ac))iH2yh~(ydG2ZN(_Njqn3r#M+ zOza7GzDxbZZZ}w=eK&03g|fUV8?6)?#6K^O9KO z@{Lfttx7^%D&h|UhE*RXMJ-$wo2k#jyW9MY)%Fc){f#9xV_KME5nD1!d)fYU-CHBi&C#Cxu@xa8eJEl_ep%6}U}W6fBn7D5TpgPgqo^lJ#wG650A ztBc=^Yf>!I*)@)ciVa%VNekbip3W(9OA1BqAmxsYH7!Yx( zOZj+yUTU}izy9|s&aP3sE0KU{2b9a1-JjNs z0dZZnnS0kETID~6#It%k4bL87Z5`G?-xN}pSP`6VeM<6?PaYSFNc&El1&pOs=}%v` z$h5+Udg))}##x>x`}v6}t>ZmbN@aUwL7Rh)VPVZbVuIxVy_hbr!aWMn%XtZ|=%Px}>EkD9Ia^!8f#wzf}-n2k4ot%~?-73>1_ z%A49(kw9}=$YLuwiAo2*yETb2g`A3I|5M6^fHbt6#^2qUZxJ`%7gq8CBoo}sRLALF zHq*UW(3b(zCT!z}vym^uU?4YxHH|v;at;+GGp%KQ=IX9{8w9RDd3GL~uLc!1|6Qxu zlk!X3(omY61I+93#`t(XFE=ckiF=Vc9Ayh^F(82)xuv6P^cB_t6rb5kqSrnq_G$XK zd_>W#F|?Y(yK=ehujl0H4)WvpdKT1h;(MxAr+yY(eqZ+ZZMALkk^fl@4s_bHA)va~RrK`uPVMIG4k(ACa(?*+WaEDW>_nM2?Z6oYYJmYh0NUkyJvsizoenhSxpoNs nYSjR126RdEx_SK{y>d&uT}~rGHgr7)0)8Yv$%&Q<>j(Tl$fo_> literal 52837 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%0D>=RR% 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 TaskSchedulingResolver -> CompletionTracker --> AsyncTaskScheduler coordinates FairTaskQueue + TaskAdmissionController --> ModelRequestExecutor -> RequestAdmissionController -> provider/model endpoint +AsyncTaskScheduler -> FairTaskQueue.select_next(...) +AsyncTaskScheduler -> TaskAdmissionController.try_acquire(...) +AsyncTaskScheduler -> ModelRequestExecutor -> RequestAdmissionController -> provider/model endpoint ``` Task admission and request admission each have explicit controller, queue, policy, and lease/state boundaries where applicable. Telemetry observes scheduler admission and request admission separately, then issue 648 correlates the two timelines through the runtime correlation provider. diff --git a/plans/645/async-scheduling-epic.puml b/plans/645/async-scheduling-epic.puml index 56f750bc0..741bd61de 100644 --- a/plans/645/async-scheduling-epic.puml +++ b/plans/645/async-scheduling-epic.puml @@ -12,7 +12,7 @@ skinparam ranksep 45 legend right Epic issue 645 target shape. Issue tags show primary ownership. - Solid arrows are runtime/data flow. + Solid arrows are runtime calls or data flow. Dashed arrows are observability or policy inputs. endlegend @@ -33,8 +33,9 @@ component "Benchmark and Future Design\nbenchmark harness\nbounded-borrow policy Author --> MetadataStage MetadataStage -right-> TaskQueueStage : resolved task DTOs -TaskQueueStage -right-> TaskAdmissionStage : selected ready work -TaskAdmissionStage -right-> SchedulerStage : task lease +SchedulerStage -left-> TaskQueueStage : select_next(...) +SchedulerStage -down-> TaskAdmissionStage : try_acquire(...) +TaskAdmissionStage -up-> SchedulerStage : TaskAdmissionLease SchedulerStage -right-> ModelBoundaryStage : execute task code ModelBoundaryStage -right-> RequestAdmissionStage : model request item RequestAdmissionStage -right-> ModelBoundaryStage : request lease From 451c1ffbc5907434d296578733c57500c6affc52 Mon Sep 17 00:00:00 2001 From: "Eric W. Tramel" Date: Thu, 14 May 2026 12:36:39 -0400 Subject: [PATCH 05/33] docs: align task admission class flow Signed-off-by: Eric W. Tramel --- ...AsyncSchedulingTaskAdmissionClassModel.png | Bin 60292 -> 62306 bytes plans/645/async-scheduling-epic.puml | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plans/645/AsyncSchedulingTaskAdmissionClassModel.png b/plans/645/AsyncSchedulingTaskAdmissionClassModel.png index 12b41310c65b3a6d7047018b9cefa6ce13ca88a4..41cdbff3d24f3263bd964d64a214ebef497c6f30 100644 GIT binary patch literal 62306 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≺k@BR^nW-1EMdA!;HY=RNR-P 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 W!Hv6`Ri+Vw&+^jBQe_hF{QeI|CCn!P literal 60292 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 VQWnXs-~pFG(&F-BRiXv~{{viX diff --git a/plans/645/async-scheduling-epic.puml b/plans/645/async-scheduling-epic.puml index 741bd61de..39f2ed7ef 100644 --- a/plans/645/async-scheduling-epic.puml +++ b/plans/645/async-scheduling-epic.puml @@ -175,7 +175,7 @@ ResolvedTaskScheduling --> TaskGroupSpec ResolvedTaskScheduling --> SchedulerResourceRequest ResolvedTaskScheduling --> SchedulableTask CompletionTracker --> FairTaskQueue : ready tasks -FairTaskQueue --> TaskAdmissionController : QueueSelection +FairTaskQueue --> TaskAdmissionController : is_eligible(candidate) TaskAdmissionController --> TaskAdmissionPolicy StrictFairTaskAdmissionPolicy ..|> TaskAdmissionPolicy BoundedBorrowTaskAdmissionPolicy ..|> TaskAdmissionPolicy @@ -183,8 +183,8 @@ TaskAdmissionController --> TaskAdmissionDecision TaskAdmissionDecision --> TaskAdmissionLease TaskAdmissionLease --> SchedulableTask AsyncTaskScheduler --> CompletionTracker -AsyncTaskScheduler --> FairTaskQueue -AsyncTaskScheduler --> TaskAdmissionController +AsyncTaskScheduler --> FairTaskQueue : select_next returns QueueSelection +AsyncTaskScheduler --> TaskAdmissionController : try_acquire(selection.item) TaskAdmissionController ..> TaskAdmissionConfig : reads config note right of SchedulingMetadata From f617101c19fd17bb4de44b5c2e839995a1e3ffe0 Mon Sep 17 00:00:00 2001 From: "Eric W. Tramel" Date: Thu, 14 May 2026 12:44:56 -0400 Subject: [PATCH 06/33] Update plans/645/async-scheduling-epic.puml Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> --- plans/645/async-scheduling-epic.puml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plans/645/async-scheduling-epic.puml b/plans/645/async-scheduling-epic.puml index 39f2ed7ef..1970e7215 100644 --- a/plans/645/async-scheduling-epic.puml +++ b/plans/645/async-scheduling-epic.puml @@ -138,8 +138,8 @@ package "Task scheduling contracts" { } class TaskAdmissionController { - +is_eligible(item, queue) - +try_acquire(item, queue) + +is_eligible(item, view) + +try_acquire(item, view) +release(lease) +view() } From 844bfbba0193b85e6b7d81b704b3ea02edb2045f Mon Sep 17 00:00:00 2001 From: "Eric W. Tramel" Date: Thu, 14 May 2026 12:45:10 -0400 Subject: [PATCH 07/33] Update plans/645/async-scheduling-epic.puml Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> --- plans/645/async-scheduling-epic.puml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plans/645/async-scheduling-epic.puml b/plans/645/async-scheduling-epic.puml index 1970e7215..c363f87f7 100644 --- a/plans/645/async-scheduling-epic.puml +++ b/plans/645/async-scheduling-epic.puml @@ -184,7 +184,7 @@ TaskAdmissionDecision --> TaskAdmissionLease TaskAdmissionLease --> SchedulableTask AsyncTaskScheduler --> CompletionTracker AsyncTaskScheduler --> FairTaskQueue : select_next returns QueueSelection -AsyncTaskScheduler --> TaskAdmissionController : try_acquire(selection.item) +AsyncTaskScheduler --> TaskAdmissionController : try_acquire(selection.item, queue.view) TaskAdmissionController ..> TaskAdmissionConfig : reads config note right of SchedulingMetadata From ad7bb877b6c181afcba8732e32ee0980a685266f Mon Sep 17 00:00:00 2001 From: "Eric W. Tramel" Date: Thu, 14 May 2026 12:54:14 -0400 Subject: [PATCH 08/33] docs: add async scheduling source-of-truth plan Signed-off-by: Eric W. Tramel --- plans/645/AsyncSchedulingEpicIssueMap.png | Bin 28601 -> 31055 bytes ...ncSchedulingRequestAdmissionClassModel.png | Bin 70268 -> 70505 bytes ...AsyncSchedulingTaskAdmissionClassModel.png | Bin 62306 -> 76776 bytes plans/645/README.md | 18 +- plans/645/architecture.md | 79 ++++++++ plans/645/async-scheduling-epic.puml | 34 +++- plans/645/benchmark-plan.md | 160 +++++++++++++++ plans/645/capacity-model.md | 75 +++++++ plans/645/contracts.md | 189 ++++++++++++++++++ plans/645/issue-map.md | 67 +++++++ plans/645/migration-and-cleanup.md | 106 ++++++++++ plans/645/observability.md | 151 ++++++++++++++ plans/645/request-admission.md | 118 +++++++++++ plans/645/task-admission.md | 133 ++++++++++++ 14 files changed, 1124 insertions(+), 6 deletions(-) create mode 100644 plans/645/architecture.md create mode 100644 plans/645/benchmark-plan.md create mode 100644 plans/645/capacity-model.md create mode 100644 plans/645/contracts.md create mode 100644 plans/645/issue-map.md create mode 100644 plans/645/migration-and-cleanup.md create mode 100644 plans/645/observability.md create mode 100644 plans/645/request-admission.md create mode 100644 plans/645/task-admission.md diff --git a/plans/645/AsyncSchedulingEpicIssueMap.png b/plans/645/AsyncSchedulingEpicIssueMap.png index b18e095337092a737ff5a0e59633bcd3d0dacc50..28f230c8cdaee5a9b9a7c2aa0fe75d0d263a7d78 100644 GIT binary patch literal 31055 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 Aa{vGU delta 47481 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 diff --git a/plans/645/AsyncSchedulingTaskAdmissionClassModel.png b/plans/645/AsyncSchedulingTaskAdmissionClassModel.png index 41cdbff3d24f3263bd964d64a214ebef497c6f30..03898c11a28ec376644647d3b203cffff8f21c50 100644 GIT binary patch literal 76776 zcmbrl1yEf}w=KLAk`N#v5Zps>cL?sm-95Owy9Kx4?(XhRa0%}2vT=9*1v%$^xBh$I zt5@}QCADDfwYqzD&mMEk(USm4aee|`a*;qT+Sp2kiu(x+`u=jAV3beHiad3Axb98ic z_b_)3adnOHbc^%yu+Q{z%=B?7@b$Cx@$vEVxAXIN^oaHLjPvn{_xH;T3iizo^QrL< zun!7$4G#A9_xBI`#A=yQiqTySt~ixVNul zV6c2>XlQt(YGkx}VzPc>Vq$uxac;h4X}NuVetvnSV{@x#YrA)AYioO_@9=2&2>2Y2 z9G{GyoSa-;Pha0mKRzu!Jw4HWJ@^ASBB>3(qK&q>g`KD_Tr&AHnE2^WQ#yyk z1}s>*(s>!R90~GQwS3NX|HFxTOuw`45YbSxd)a3jUucH1j{<)fSL8I?s&n>D2Hc9H zevlzkD}L(WQ1T9iIakWj4EsP~UGVKoWWOhubl<&Hd?2ejExhUy9!qs0e9L>|nmwu? zNAE}<+p^i;x;vM!f51mV5m0YK#t3BiVJ)+h{+b_ZMz*c!xA#zmPTLY2$Ox z6pt&V6pz%fVAx8rn=c3A^rHr%TCf5QzN=%v7}1)ETC%4R(HHw;S#NXiYnnXSrUmOM z>$hZNA6Jc9Blf=qM-C7!v(iehXl3tIZ5+l0O}#@F#9j)Ge8TivkpFVK*ABBOEac@Z z3dLS?W7FMKRh=G_M7zfNk!C0hMG2oz<(gVRWM%i#9f&Ru~`2oI!R2qw$3{ zdsX68Z+V}uM?%5`BuJFX1f+T_Zt@llW)(XI^CWiI-noC^Zx~+_7PY{u>cc@qF)MG} zuIWr~cyD}K*cOs}wWy7F0Z-z+a;XYx{1M4nB%iU%%c_q7Q=tQI(Z^#)B4unvnPQX? z;PdWq)n)$+c2byMt>6Z3S)(V~)sM>$fDP^fh2I;lI^7pYk0PSZ*E3e^d+dc z4l{TtHT_JvV~UI;0_->tetFVxc8b@bVi>*gGed+XJ9d4ptaJU=3mx&if4vV(dzV}?7 z<`!b9vq4#NotlPQNnsuu+KGDy$;}1l{=Z_q$kTS2Azf z48pClAe-N4k!!_Bx*OY65{~kUNsxH`IL}Et@@AwRD>^R2KY57t`87 zJIU8cTcl(#0((8U2D0F@B0u7`F(mjy@CVp0{0)`$n!DYDu6&9AR#_(S%by10MkI%^QOWQ&p)il|HOv@u3tdE zbe_@f4Jd*fxOjlLBHjX5IFMikZ~?sr2_XX)F3^|0*TD5X2w&;>_A8J7`DIBm_E(@h zy3CN9G1{U-sY1#>6VB{&{6^U)Ze~-N{8&dpaJ8Q)i@^tkIjqSa2>s%e^*Wnj{ZORA z=Tw1YB~*)!jHe1)--yC~Pq0*NF2rMCW&ZYt0wpj3-HJ``(3;Vh#q8r$@FVT>NByv$ z6)cS`I{QsxSUxS27(d_wMFq!1W@?scBCEZ;qGc2h|HQJ!=)nBIS6H^jVw^kst%cT) z*%33RCSAdF>sEtdMl2az+tbJbG6)1FfnHZ=ykt{P7iktDtUPxsdx1?jN_*UqeZnfE z8K&tWL~}6v!D*dfSwpgzPT0wlxO095g3nQ8hgxdjwuRRI_XO>E_s2a)iFfhhc2+Xm zm-FlVSRi^KU>*}H6q{RQX8K=ex~+R^7&}o+>!#*xf?@N0C}N4{G46`5Orh}x#(pEs zT_hV^&Qj3mxSpuk-frzRt>o)Z?=R(Qpa^NrOjM#N5rv*CD#EOZ&$MU`SDb__KjAWm z80>9gRxqhFHh!%;nm4KP>GPck57(ip9NgB*YKfQP{X9E@KQ8X7`x*+ec?L}gOPCHp z1JeCAJbo%v8<))KY&=1TT7xJR4@7TScZ`*m zFG9#7q*CyGS?w5e5kpinS!ls30NwPxV;;39@no9FXrlk07&QWPCCPE7%B&*a*@Pc? zBng7jGqV+jV^EwB%`t-J6~->>>bf|e z$Uqk@+Et{Z43O)Pksf_rI4~bfg>X2@0$#5v`%x0@!UmoAd-4dRZa^*!1!GjW5 zF#BE`>~(k*cgd#Z2t7#19QE>CQU{i8V(OA-HLV;XeSavW#}_N2MjCDD?H8!K__aO_ z8Lc?bN&WTU)rrN--bgRX2ma_m!sVHYPA3jMnr32SyFkW(>Bzz>q6DV>UMMzRGsGCt{e^W?e-s*m8h<}lP>|^D zUdNsH_v>0ivsw@rYpDzKjA}k2rp(B;Y{#Wvfrmd0Q+qJaj$85 zXyrSTbAN!5316*X7;C}AwkG1_hBL`rMSUN~5u(aNz5e8khJ$x8RP;T3YMgA%dy{Vc z!+oKJ=VYOgZDR*kv)cD$)n2y{>y~TL1+2^1<~)-$hsB16Xr%tFD(=PbDw2tkop-Gi zjL}ETdIs#{UeL}WRAHlmz38eU>`$+4FO`^^Ui-ZQr3LUtyd9Z{p3e))PGz_pRW0wd z9KgQd-?-&SLr`tN9EW6vCMR~k9mZagq1Fb~7Qr5W;6~Wq(0)e44$iVC z7E>d>%T}CwE%14Y2lvU<)R$cOVzrF&Q5X*@trpD1m(f86{m;l^IVB4nvS1LxD7!T` zv#|a(lGS3YuLe8A0ZQgjA?kePfV#{@EBLJ^A#C* zIyA1mb{yYp7FA5|%znzmPh7eG8bY*;q9O~tNt{>MVxbH7+4&GzP#?Va7_ND_h}*o+ z42D5~o)9lB$~6(E?98cPpY|)-)Fh-VjtF>P9M_v1SXH0j`up*k(olYl3~o;c0>p*j zhYyoRGJo%SQYwETz9-cE0b=xINg|1sk5C90ZulsF0K_3Di<^b&Q#v8^CYkqq)CYZc z_?fUOLCs4`*jaU5nanybpLs!pqQlr>4N6J|V;Nf7@&l>`?l|wDTl>4toRp&QXy!{S zWttt1!wvOmF9kZ`g_duz@urU{HyxK3r~3!;2|Kg}kYk5sttLZLOGvwg$?Eaq36W&w z`7XmWyhKf937E8E-G9<`!-7NEP7kU`N-h>^iDoPTD^|c8FIF_dyh^BuSm=m>2;-N| zEtx9HGDzT+=uU{06$H#U7fNEV-=sqS`g;RG?Fza&m9KEVg+iiYUo#@QUA2QTQCumz zyOLz$L*^RvG{9Jgm8w>2=AXTtV+@)o zsvs3TP~D<`dy?T4lq&(YWTnffs}O4@(;a?oi`BmVC%;KZCwn_LF;EPvp-gFku`Jqe zhizg28*KJO2vzD)+Bl2(Dy^@LQ_n*M;%+qXFkzc{UQ}E)*;0M@EIBUOj+QshUGtNIGq{wC3 ze;s%YGPty8fNOiQ3v0V8fym6Jc2kn@Fbs|^Sw`96aDc*(Q@Is;>U z*l^lDqkNGHv*E$qyZ$t!QMjX)Kf;BE_rM(vwy+Z$%yK-mq&#@jkf_ z2%s96ER&#h#p1Y%1h24a1<5|_d&6W}x}~JM7X8Ib#%!F*M0GCm1+ZCWzMBi8|;Vp zjQ#xl`wtFTQUY5|kMI`6dVL)XSi;TXj-Eta@dJ}9;8np7FI_6FXzZ2ztJNshS`xd+!Vs6GdYIOb9<6B=8vxnn-i#us-!gC7I*@F!b zC~cM};_VX4@lK+lL`3;MjY>s!ltJ5k@-oq*)hS7`E$^Smlm0v!O&V#BJ-=l<^H_A4 z?Cw(^np=gW#NhPB^A<+muwYsnY*(egZIm3cGd#R)n&{Bvz=ooL-E0mxx)$l)o1I-P zaCzAZZ;g8v6hygAL!)vbWkr8i=u8I6zPCte2tiW|nZg$5h~XAeWL=bBfa{seB{kr@ z1|@)_HcjfEXba?yyq&9v?x3vAkj$WF8H+Ez*%woxreWyY_eCvZa^#8~YS+?EkIJKK zJs9De*L@hrd8mb(^_h)XbGJ9zn#m^)%kB z79T^^$&`Hc0;!yrQ@DHCNB1YW=zd~qgtG?{-=rHScffX=I5R#w8$jqpT5>s1wfIr8hsgJIU>PWi1w6g*TjOdCDu0yFr zDwEi)GqU=9=7gwCr;b|Q7NrXnUNgSC&l)LjEYot8>%AH!%K5EEgu7mSPU}^G{g;5SBg%EwzCcS^_5Ft`@u1Y^ey5oheNG|R(nb=PHvin7O_E|+ylIQrCRP~=H&Qv zH;N056{#WggiBj93~ByD;bjg_rG&maN8NA8KVk;^-P1b1^Y%|VzMj>$H{{lirHUsz z(SM~2_d2?vkVf~XNV?OR7F`vLo`F};!BKTFEqecWv3S|#{|$QC9wR`+Ij+eZ$&vHf z6R?$&|coaG^8ds-j2pr;j{(K+*m0lI{le$Bhy~#Y>qITVmuu%y%dn z7>j0Muy)FGzrC=Y-mYfY14zmp@z$2^%(H=E{;ITnT@`!8QCqs=lk1yp3z%XmhU#Ne z3jnpLaQnO(94pL*GBhj{&=2R?9pP>BP6m70fdsb6yAh_nlyneUqD@(SINxa*xW{Gs zOUF~=qe{W?o6t_?Sd*t*2^rf1prJHMV5{73kye`p^Xh68%x`J~H!r;KVea*$8z)07 z^Dz1C-T{U>3s$s=Y@J6=tYcAx92hQ5TB+d2>nBzDVpj%p=Bh0R!1NNg-0!FidKG44 zTn3ge4kIBhbepG2kWFp)2qzP;v3l8=46X9Ys)p6}DbseJ3*tFFw$P_X;apJI5Lp?RqB9mve=BRe%?m{7^US+8u^sSPlnJ^t9od7U~eI1g-f~8F~OBM>v2XywwZ-3#I#!u|)vXs$C}h zg#8)wJUu|l-(2O<)pPraW!!x zk12Q241Pqi6N^hR5Y}J(btYXt<5~1ADq1|4?Aw+QmK)i z*_6Nh)-qN8b*`oPFSuR);TzQo)7rp7mL;=<&rSq^%7fNX!hrgX5JdwM^a-$gFL zvNv5I(Rx6@Oa5b%nh8~B885ShKe6gv0*$-pnIgGq;%s4#+x~4vzo7YG&1@1YoQmF{ zq*LiL3(iR>IscFrez(hQHoDeVbj2a-T9Qp61+lYVZb*MxiG{(LdMx{A&UQA;&k{Ge za(cmDHZL3g61v8x42#8W$hTEziPCn;df;x-@`*M6)2g%VfO3Ud*>lQ(4 zCOwHrC)HzJvFT@l%d~j>s_ALu77t`71sK;k*!}hu$Rh`GTE}zRYtgJwmy;K^K74N1 zFK8LoZjXGXS|BzCHoN^YU6o2~nx%6NoZ9->)=oCR*h*NP2x~FQ3Ia`FM35W6>K)!q zuUI-|>jR551pRy`Lqihau%MCsmBYVO^}o|eU|Vp3RyyqK0%AfXggM6~cA*$ZD59Sk zCh^EB{-W@IN!z#E0cYNX2aNoE&~ zIK#;MFGJ_T1CrD|{opYK$!=eo`EXr;aufq#onDQ(<}jMEs5f!qXbZ1R)CJ% zdOdS>Bj7!k$l~)i=pSFcA$y)`(QKj-hc5uh_n7jhR4J66s{%1e3ZRy5 zY3a=}as1y;HU*aVDuDoST_fn`3Q%aB6w5Jmr(jk+BW!#1X-}mkRCn>lmdGYwb3X0H zR5Ie3)dlVsIvvw}Nq=NiAL2gJkXVs5L%>H@6@;;Yh zGte2^9oP%w$p-xG$-5o5K0$oHCH|22uDOr+CbrC|_mZckHF*xROdN;obaW%X3lV|z zQQ>4`P0CkwKlPr^Jy|vD$DY?FIP*LaKKcTzH}29hOKjL_W&z)z~2U~J|K6^h#1*~FS3N<(jjkrhHFl!#xr?vq(*I68l$on&W?Q&ceg zgpVM&Ui2SsJH`rF&gFrpw1Shaviq&p>ZY0?HzihX!MN3-nIcjz+=s#`Gc7HxvgrF# zZ?(5O{DUC8O(dp#jjkX&y%ZO3?XY4Pp>@M*& z)}Y&>`Vn}jP1XpHi;qD;KP%*FV8hhEMv3Y=E^O zYh9(#rjM5Iu5sj$IMW(wGs@4=&n{Lpv+W^)v1WEDW$S~)=ImB^uEDiu3g6@7eHh|Q z_9xx+R<%efB5XpU74<5Ou#7vupW51E2`)qpv7OldKJwhB`N&BKZ2q?Zzia8U)40c3 zo7^6J5hR6nmTd6^yx@aKMx;t=YMyQz#m%Yun!n1s3 z$YEmWaRn3`&>MeKd;eHge;P`kfnhG)a3(P!XLQgK&=csJwzC3YBio7~@^ufamHYN; z76CT8Ly^JzKv-A+xFJGyJk7@zQ3Q}Q>isx^N%iCrQn0vLYqmyis+3O8#6X>(Jvu#XJrvI766#1VUaZ0lJJ=QBqxsPWIqZJB`OOvT~TwKBR;p7mT5 zkM2;9U8}{;W$Q;|$l(6h6ery(7)>C9SOY z|0fyESpBJkwH}Y+0KB?zw|7EG*~xm zHi9Bsiyf^r7##uGTJAlaT09OKvjlP%+yLJxixm!O^hbxrv%7N%O$$vvV8yrqN#-~# z7B=b0Y9RGAqPY*E!6b$~rWxky{ngh!(Q{%nyv{Y4DqS)kH8X+ zZkcw=Dp(zdqZAZWYWa-<1tZIq$7?v*m)l-@e@PYPPoI~)Xc7E*pfkLaC0EQbPuA`^ z8^qrKRv3&Xd;~=OI;8yL@CHd7PWE03#;Z`*gct!tYns{9)WulvCM{e~m2z7+{d}H&d(9VO>(M zTU=c9m46f_FAQYGFtuwr>=Slrmes5@T72`(uP<|Ou5@g8M&P+gwZxtam9HiPdUEG3 z;;weRaUKW8Kx1Ps*uKjj{A=&cnZkX&stPvwgb0#RaU*D(+A*pQeP0npRU}VwtL}$x zk+hb;YfxJ;EJ_RS_=Kadn(~lKo7n2RYz-iwEkyj%;T}f}myeZ~AZ0fNn&tqSMyE5b zFZD#yqk3MPH^_i5ev)~26?_rG3D=w|)mLIRTt-ufhIWJjUIK@I%k?^VY7$y0%ci7B znR|ZWGa%}?4{~0*E6@c|aN6e#McZe=FFHhyO(yQ959AD{4`4;y6i&Q?aI4~qwg=!8>DHJ3Pfv;akS_P9-zE^Q(&AeBveQnRJ@F%n3X2=Ig|UVGnLP) zO?942DdaE79!%I~Gu@-7+6e=Y9R%A3urL@xenyi0?qTh~^=~zOZR)^?)J;21jrv_*f zhRR{HT7V!mqv%fpw+E%uJm7xBmG5jW$X1gYg(-AUWOh%UW=0u8TMdOnY* zu_EzZpw2q5J>H-LK7->jyLLdM-EC5a1rO7$`2B=ztAA|$q`p5oK0|nFhYgX85wH%k{_Km0&qSrBv18D4U#JfCfK{u# z@~EY)6capY{>KC1ezt=X<$MSIhICX_WxAB58t1_wgC#{Jm))NIab@K*i$fd?Lg7nj zu1ajL1KLh`{hzjFgDQoGK?yO3L|BZqxz}Se1#81Z3Gqb(=%S35HVlp8jAUokJC3VR z3b1l!7MquLDZs!^)p^fq9-l1Lh;-PJq!Q#}0>TainK}qeR-crjIvPES@)Z+KHOsPC7Xf-|UxD z6|lT{IKc9vG%wv`ZnG{CDglgkD*DP>2s^67Z1!DkXY|8gAzl9Jnf0I^&4{#AHL0D`O3#k3F#kF<0q- z_31HS#~GMNoR!23HuPe?Q2w+eM~c->c6f}dyJ)CX8jNL#p7bI&3B zdP<9#ll!r-S-=q>2_CV}To2RXe5i^j;Gf9+cUR6D`)El&96N6uWC4ME?s4CK{(te{ zyn%!`^*sohbu!bxn;Mt!g&F5lIXeLQ%6+(^AwRMi4&M}D`5%v3)>et94duj6D>tuu z1=hdaKJV*{;kBMnaomPysRT6=-qtP;DNyA=40}Y^x~wTjvY3779U$Yr5BzFmnVWF< zqo31xoUqH*@_HfZD+!x2d7vF?QP6nLeyfuZ48z z8=qGB0hzVQ2tx+I3F29-b$3r3CRuI%6=zTX{1rwp-}T0|Q!MyIx)MWi`r~P0-*>}D z+NL`JatbH6Wx^?Tc1*`}@r&6zfr>VbrGrStw57B2b;NTa(JgClTM2UlWrhNcJ9rKF zlddbuysXR8&qJ;i##?YKQ$Zc?20!J@x1hoctlnXsJ^&QHFt;>>3a(ae@Cnj=U4GH0 zvNOHY!VQk7pfRJ&g%HMJ_I@v$A&Eo7Bd#*tI!`lw9M6;4#bGb2d1Q4gq1K7BT zw~2_w$I}J!vorT;Jm+TtXpdS2sB(P5Q~YOyh#!7hcVa%U3mc;Cl$=Rug+@^J3j2&i z(uIqV?>F0F+21-F0o2_>=DP8f=a{4L!`-j>mE}XdH3)#?e@O!*N0^b;j8j|mV!+6{bOc^FrusaMSk4|5sL-P!|?Rf~_WBuP~<&{Jti z2oE#?3uJW~wBY6EIVgtsPpQ!|{he_c&_a_p5cjK76B#v!l&$-DrlJ`K#6VkuK`sbkuKzcBPVvG!76q9#) zE^`X;Wbqm(1>VI$^_%mrdY7FGjCq7O?+OeBbirR>XADPhpx}i5{3y4rkr4-w#AxU? z);EtxSCIND@sYAK0e<^kQ!0Vq8)ms(A>ORNWc)!`0vJ=;NnPsAxIaLO+jCwt5_FVH z2|RI>*C6_|pf%wE>g|G`B48(HlkJ+Zxn%KotldQo-(*V9jo-Xv)hI42upTI%i#vqJ zw6+WS=U|~5ORJOz&gL54H1O`_>(f<;V~z)muVvzFfj6w*fT&hG?2kW+L%+Trh$$Gg zM`06)G8)O=5mOCkC>OqGB8(EBk+jp$p;0-mNY63&I%>e%%j*NhNAh;cjJ3WuNEf*x zI{IV?C?3*n6hR*Qn{rJSexpE8`> zmYbEpuX89$H~x}@=UwENe+z05eme;ubNqf7pTZsy8viV?1>OhxDFyrjB!qs1&a)crcf&DVulIFB~(yiOc%_fF~~Dq zmEEzV71td7hl66a7xuY9K>Y@Jd?kPQa8BG<;h=8OwGh9r47V8@H0hE*`>3wSOX`-* z>(`l8gDgFLNvH%J^A^fAewMUaCa%sfHD)%w*fkWi!T`i=s#(D4(+p?zLKw+cuodG@ zIfZO~Q6wOUK#gUh*NtK8upW&Rz>IEm1)&IB;wJ`#Li_NaGu86i;IT-EbQW{CXt?$& zixXzt?OWQ<;4Bk}iTERfvzT9dOh3mO0)$xOSJxRtXmlU=dYpSMaEvk}YXmE+?fGww zS`w&24F48{n2QvD%?$bsx!`VdzcLcYeT8JjuLh$&L~O~*XOS4Ox^M3IXd#z1qL3Kz z6GdLe<|q4MfQ)Z%){k66s8N^X7h8a|8zjm1Z+VAKoJ$5+y+pLq_cRRV!etjl&D1xV zvp2!@v;L6UO^|O*foW^WnlSRu1d7CkuoI!GhJ$&n2!hKCev__{?M8#nXIgE7*@3bTd-uw z$DCmD;`1<>odG>dH?92p^24#Jp9U>|9xz|EQ9ORadmQz62BkLhnFXH#y9LfHHDWn1 zo9xU0`=;XgTK+MHypzlv@~zc@^pZC{1+M5iJvu;L090(FFkThN&0Ft41rTXO^x3=W zbi2q)+;KpX3P7RV{ac(mfW|$e-~C$@V*s>z|DztSU?d>|9OM`fwO@7|5U}6=2WbH) zdoJqy>lXk_(Eu>}81YxeMMwA#VEz{rZfO_d23{-uPZz*%0N6iw{&yUifOKmy&<1%3 zn&=B#u99_ver0p@0}!RsFrQl#rX9o2&V>_<31$|Sc*R8ns68)jKFv)_?V`Pj+N$?{ zx&JS6w~VMh%SeI$MgV})g3?B54w;P#paXVTc}mYkL1~8oY`5yHi+=TRM{JdzTrVx2 zi(0sLRPL=H&en$j*#a3P;GROr9-I?8*qAi_YKFX557VDyAae_&Qs6-oA4`B)H4rsY zzva;WRW-?+X(1mnCiB{(0qFIw!d_c9IL2>ZG2s3r+d+AlBoh#(3u%x6xc$rAypnUF z&U{;WZKZ-FHE^Z;x!S=^+)B1s%x=-*?%Oz%?`07f->9FbYAGd4N8pMY!ea{-SOqRT zTJ1N^nBZnMyN7O^{b^RB){00qyXq78RllSJlhV&JN&OrZ!Vt^^N|}Y1V?)A7f#ZBHhH!*b!I1B0pL-qk(qZ#@qb)& z!$dZ7CT>^Az2|DoJbUJp)T5}?b0jhanfeyX^Cc(&FF1Y$xE6|P(OXG(job4ZaU2a9rOHV) zXe9BPRU~7CM>Y`}ig?&MrjRn(uVZHNr6@}Z4E@|~S)yz?hrFywQ8`IPN1|4QFxhl_ zmB6QGQG#5L3WBkJ4yD+w)mp6y{u?+Li(?z8HuOenVIQOU@=>NJ_J^Y}=cq*ls)X4c zJZ?T$GLyNtB@EA=YDhFCEl`5X2ZlAAyl1~rF#z57k^jaMF{}#@NuJ8gYMwdfC05^%bixTy{FmCI{a=^*0uV+hiILnzc`Fw=LO~&ABwT@P!9wBC$ zLcHAkljV~y}>md|?Ka|nGS-8;#+ zKkYvMXrf8gguaF3JU5(_@I^!3%u+X;RTd~ zy?OWSz5v1EdJwzzd|=sP1d8_WZK)PlU|O+O;l^V^Q{n}e5t^;KRr`~>g08F9@)H*6 z`E$qlJCT*WGCsNeI*Xfs^Z{%e>%yMZ70yMI{%Q1)-7c>p$?!;;e{o2^pwE?VsI3Eu za2@wGh&74wjeGkuHfqeLHF1kV(|rkp#X%l8<-x=W%?=wFa=i~-@Dp%N7Fjj+BF+lT zkk4kf#+C1x`V-frJ=V|}z1MXX9|CuC!)C{8pk*$kLP)8U;g+AvUbDWPZ^*aGz95@@ z=*Hqi)w(I!^Vqr{T|^!jVvqSb&C%FWeiw~v+}?8MQE-d>P$+x*)d-@gO;g;?_Ac4X z@Z_v%*=NILZG|UxecmV;j35?&()g%??!DEodFYk7!`O%ky(;nw%#bQ2wa``?a)!%x z`DfGy-m0ci?83?ndhQP@a=mI{Q;!Q%-S4J#7LBesgI`V(y3JpEa2YK>74uX0M?{L0 zRGai5-``BF5O05BSd4lznC{_eiu)*zK?+y?7WaQrnQzvSmaU97eYlv=8mavRoK*ZUIvf)7ky#c99r zd*en1iAg%X&)U?UN?1{Djw#6P=5FB#dE)b73&BFhzZnyH?mp$h8UhCUIVn5#a>V>z z1ba{&giL)k2h%`WO|i;Kxm^qjLDH{lhXPS*(V%0@(4fu)AhUX*86Mrc8yfXp{2BOq zCtoyXT>aSaiNHxl9X4Ob2XgBPv=0uOSx6bF)au+*0`v5yXcF3xa}|iF8fb32&Jj$R z_^C0By9hhHDDssmmN8oh0zuY&fsko=ODJWK_ zo-;l!DZjv|6mBkt1tO+INOD}%tA47$VtehoD0#x~!`jFKrr!O$RRRUOEbN2$LaIB9@L4&Aqzxhlr1bDA z6#|1PU!b9%H1w*)1fXL=v_hyyAFr>W5fHT984H*wR^`2cV^gZ@HY|{&G#|;85Fh;X z&UCAwPxh(ti1BxHKLQF(`5gPi%8g!SJ$_Squ>aJ!YR#>K3j@FNo*G~hKAmBFDYqPD zIH3w;Mv25R4o$x8VOmX$#Xx&FAiC5coj-)C?EJ;}g(-ViUHHEk-)H%M!uTWge=uIk zRw&C_b!gz6=S?&rK7Oano6S0#m3o2&r~f!K{L==qwpph6(vZg0*he#PDxMC!>F!Q^ zz&ZOUnf_q*f?;0!Z8}^60>sHn{ zt$0_fQX1RR*9l*s^E2|~42Mglq_s{$*PO=nAS$8s(rfq{!wf075P3Ncrhl^#DcINV_D6Y&ud#i|<5hAQ1y->eY# zz%dSKKEwHjVio}Bz~q^uA#OO*Y6)DTnyYkBya7a%pxjRjN(@r#GMpj)x^f9)G9G%M z;l9(vb0v3?^-$gF)kC`btAeTPFVvEV0BF0PSd`uU7#}JZq&rC)lL3K_^5xm6i6rLw z6VKY9<=CAd@|ZCDyg-dpHrC{X14b44EUyv>CW|%{tekBOCUdgR_iJ&*r?p?ve|v@~ zOczLx@8m|gmcy_za)Nxzw%2@Il9!*JK@9x`@MXaAJBmD#G z{g4*XK(>-+YgUJP3rf}BhfeEoYnPimN*^|O4i+c9=R+At1|p*z%yDM-0%{@4TXU-zFPx6p z-5f7~x`e4SR)267TVsn>6nQ4&KNs^O>pu4PQD60cuzJ66{mU0d?S*j{D<-HXH|=!q zpo~jYEh1{-$nTr*fOU0*9N5+OIV1+QWlA+7q@yArD!{`E+;I>bzs)q`jccBc0vei8EEaMKvFjwAgjudK zBWtTw{noByvzW49xa)5?)G|Z0Wu|P%DW67um-=%lb$L({e{P7PNp|gFCV#&@ zzUhgCI553?)cosxD_WIW$h5)Wm}XwMj{lWSP!Rx#vlt5CIo zMV2Zr&+I>6$tyI`2VghKrX-?pe{yBaADidTRbFZ}YaA7nky8}s2YOB3RGYhMF~T|bIMRaNmWMat zvW4UD7rn)>5pU(C$dr~Zx9kO|TQ73+cPNz(Y@HOR;uA-cpucu75$;QJl9UEydJ!vs zn~s?Dy_x)M*PMPCU$UO|bKBvHn~ zCkLrt5gaLnR}$K4@XfER3YCEwMIDxsTq2hYNq93oe`BG0JR>SM-;6UgU zxP2XOm4-yWw5+PTu85yJZkmK%Y%*?%S^gCm9L24ornNf{Ofnm?^h=#f$!BSE=tk{D zTjbzMG8WUhO?LZ!U?m?6s$Hc>S8pzCSUjTNNM7VL-^mjGPK?C)WFCk0VWsf>7W?l7 zqTg8uDUMXgvO)2pKp^e)R)KVn=knVi;Cutw2T{GpQ=ZdbU603p5Jq$uPt*#3V2wJI z?Gf2@+Ep{V0J8#^q&|<@Q!Krs{r%(&-&hkxs@1Y`g!>rUD zgfgqzZg-+p9L86{asEqgH=hwkU9E@#FP>fDdg*RIzz@T{jKDrLZuJ3`{f=DaOnT@_ zr)n@{QXr{1ZY#@R2VJhD*U7&{e~AOfRA6Gu@06ErUKvKCy7{+`h6zdjA>;XYEKzeS zhZ$N)pI6RmG~Jf;-NpBpfc@QBK6_8*cxFeT>$ehtG1+uXu-$vvi_cUIduALm2MbBD zOF>VQXo#-I-bp=i(b%yqO67bU2_ml~P+W!Qr!2Mlo<5$B+z8*#3bP8Pzm7=uGkN7k?J z>Po-Ei%tm~Uh5~G;-bHdV(UY9HcA0ma6<@EPtDMtv-OWA8AFiEW#KSZ?pmL5f z(dM6}8=M|uJ|E%9NM$*Nl&-Bh-4o4Js}3w$sGay+v{s81Dj|n(mD`trdvg1@=eC>a zg27W&2<4ubPD2-ZNUkniHTob_j9$3TAj_avJZ?F|YnWIEE{RKZ2x94FJ{|%4`CJRz z%~vzaU2^7EFgX$%zLLqZMjy&<8{)$ zg5B4@R9O1beSMZp?f((EfZVvXEZD_J>~w6~wmMEawrzB5+qP}pv2pI_dEdRi?_B5ix@xUe zbI!sTRW+rbEg!^cv#nbHQ#`SudrTKrDnXXzYd3x3|7epSaXnj&tVA1j4P$sd34P)I z@5p!J792vkZ#Q(8oJqGXxs)L$5^V6M>+_0qtUFAV*qUoOCheer;+=4O;;I%1;fWh1 zMMwvKOENUZ+rHKZc6aXq18r#gi7NWT+b3Yn7MS?%i=GMTzw1p3!DUq{U)hDz4pR!1 zc8KT_XGHdk5O{ss+6D3>j*PsAEHj*4Uf1gOvFd2_DJeVEO*zE4Vi4Y(U0bXC2C-a| zR9#leDY`K0`d(20*AEa#vfta%*HVXCLuG%}?{!*Fjm(XGwJ$jgM(tYDoldv^V_24| zQTldR{ciCiiy=c_1xt1U%Wyhbw!Z8VsBxUPj-`QfpJc+ES02qvRQunJgJ&Gnzu&sx zhC4&_N@hk*5G3!<&co|1zX&Qlb=0}lc(ofC&3ghg{i;glW$EoZ{A$)G_xR+7nhiew zjMkE}T5&Nm@rpi}FGN-%lmYFg8gW_`0y?)i%UCv}gX?gUeO4y^zhl`$TXDhDg}?mM zDIWx6m31X@h7+F*NP&N@S#E|SKU=)DVc7loe*J#Sod2JR?O=7_z;@PxP#9&`l^Slm z>eDKRxXRzvYD~p(K#RGK%J5c4NDM^akhmQ-fyb=Ad*M<^K?SdmYNPIx;lhSu*lT1Jfmll6j;(nwQjUI#?wX`WntYT zy>;)EaXR0BD7=4g7{bKeElDaq9bkD|hN@c#O}&#E(6Qo4k{sW)MJ7vt{Yu|g}D%XUdFz4@R_%16VCSPXVY{|`RBY0*I5td2mrB>V}P}E%ZxVb^ElP2 zo(BRoXfPPFuR@h+ok*X5kN&1&ZEH^8nuZuTYJf^FgVd0C>7t|_56r(r&s z>~B`Oon8^11pMJ>xIC1@u(O?O?VkjrQB`Z_+RE<>4je_Ggo$x?izQOpu&2*5YP%X` z+vp6kHS`8K>b-n>jgP=!@vML*U*}nF^ELTbL=1}pvE}RJx%Z!8Yq12DenIDsX2u4? z8J`RPs%%3Ttt@gI2Zr^;NEz$5ao`OesJiO1vvmTS+Vp<(nwBJDcP1lqpRP_FX+S5dPeNMl&;YP<0vN@abQ(B=Dz_FWtBtHk|=+uboIrpoDy!yPX z(g8x$3D*2vV!gUzE{r>z!uo;OBEsrrFi{E8QdqALlQEC;1%p$YKF4`g3wl;4t2g)R zwQ7zh&%nb;afa1LVvCq`^EWTIw>tee9Lnb$dPWN4#`KozUJ6;}_-?Hmur4gI|-<%mw91T=mtbkyx zw)u)T6H1yllDSpBOo7VI_d%Oz2$&Bnuf>{2M?d+5lcsjJT z?jG(U<@;_w=YUq5U+4YhiE($QCfefeerdB_=Du?Lb$}XJD|>^RdP&+dr)<83aLno1 zjEa-82j%o8+V%?+?_W-v2tZBp_;VTEm#Q%D2SrCc^7c=AI~>;%x%e%XLbYm)Et)U@ z9y@=bfpjo`@Z9~`fhdPqcdBpxCFLqo$V$csLfA^U`p&a=*{s5N*c5NK+t0=YhrQTS zXY<))YR^DSnbB8`v^P(czQ6ky`(6RxTg{59OmddS-i2s(h;C>TzkzT3O(ccx-dgn& z>YXco=Fy{_<+Q%x`AMZWGBP!~q6KY$8+z3%tq_<3jGU^YqZG@UO-68^+I*aUs>`|N zn5Y@tR49R~C_lEw-T69jC(;zdqe-~Rx(OuTPOq6EhuiCLh8haN^O+RoA2gN|3hm3d z+?F3}-djxWO|VKVMr}{0Zj9K!*KS&F;~jEh8E?PC)NBZH5z;!HaieV)kIp=K+Gb1> z{E%;3BNR@LSNcKsrzNtx^tWFHi7E_$e!vZRLo1|C`q2%(TQ%-l?x*|qFD3NhBv>EV zBAJn(0u8RVRpCH|_Fj82}L$q;Xc(A*<7nn1a<)oR%Jwe+F@;)fR&Yd1l? zr4O$tn1W>Y^D0J?m@X``d9z|X#Mtdsy~CWICUeF|-frzL-_`wKP`0+j4grZOf_6MxQJ~*E?p> zH-=5OHb3lD*F_um2#De`g`O=A9)d!t1?y7DI5|L>EU{) zk_en>VA%^}FrryQpuW&uN9|?X`meA&qnk;>+K6AYgi!S--F{YoaC=ilkyiVr@~cM- zZ;BIuC(n6zp-0|{eFCoOz?V_AW1juTrr?(fzn3}Jte*;?fCWP)Urk2YnzXHlP*Q)* ze2?r_RlqBrmd+EE@5j#mIdDXX$sioKY$)%7DJxU_ECOG8FU|%g7on`hH{uzoj=q#a zc*S?}ibQa4?z@#}bIQPl8~U^U7}xHXDwg!()H?e-=Zc5+_eHr(Yb*OR@N;&JWLk|{_P<-fwpZQrL;S)8PS@#|Ym8POJf6&y%SxWE+6l9ZgdZja?-wJh zAZQXXZI}|=AH;{7SY05HQ4jBaTL<6+#t=z2m-1jf`#bHD^DOB!Th^P>vdKVmU#T2eTN++dW6D(NfoD#8|a{fG-1v|U3nA`l#m=KF_ z*udq`f3pP$J~t`y%d-Apd>_gSLVJ@a;149PsLCX|9&qxmAnB~%+5YM7Io`9o&C&25 z%}2N81dO7C*YY072FSdfJtmXHNWlVCXpp_%En`DqCAw=#?r9 za{Ji?#pSVKUFXJbHGpCoZc4l`h6eNJ^-3D*D#7(F!rXAWRQ`4evXAf9=k99kWP9_w z@;u64}i8+T~Za;tgx0TPX$SE7mB0l3bHb;w-V)&Pl6Ac&ibNu|euqo+qZZ_4@+GV=DIjh+(55||n@(J%^0QWb2-zNKK znR9i6O-{GPoeTK34968=ahuh|5mM!>lpn1bm=0LtUr>0t0yjoyuO&gK8bveVos+H5 zuW=eJPR*UItSOQsM$ z4%#e!@H=kFee`{UAF$VwjYy&{Hx3!NJjWKOcJ;-E=|b;5D;s>PKdmY%TGp%fUw9g_ zuEw@#7Bb5#_olL7b{~)4b=F_~nDti4Ndh|U&e^y&PA31p$+rV4`+Qzm);2hAMrMEf zVYh8wz29ALb7@D%DE4ttLdm!n^-gMI(Q_q8>zX`&5>E~_XS3-#HRf4p_pvWiC#^u| zMuD0O?P^U@4Ov4%Hr4jhN)NAWb?O`^A5b^Y+A!|-f~@w|zGUuakrwK2Ta~+{qAhv^ ze@JP2J3Z+X8k+82L=FQ6JPv$dz-yHQU_ZO=y@fysM-;4}cFE^0>`n&F(pQFcuC}A` zpulD3F#Ry8dghm?v;eXZGR1?Ra9$)!+tUa)@y{(RF^N8?glxcG&s-E>?3xO5X`AF8 zxtVv&1dL&xIA8taX)m8_&$a13tZWTaRQgbIYw>i^qVrDc4tfnkA`-SSA}vx-;R%^DeQ;Y z4(*g$QfA^lZYRIY06shU<+op7ZajAc(Dw8*H~sH~ODn)Kk%$9jDHnRP7?}3aq)K$pjNmgm=P2+2}e+|8f`h}Gh(Ool#Wj?OB zo-*HJUcN$kz>Z(sM>f2s-ZH(+GFzW~raf|&+aGE)bI6!DAeG(K6LBfqhJy2JQuIZ7 zX^nyl6-nGLsLQS-R&2l3QbG2EEq|bOzsD;0B&?P6ov;UdY)?KNlkQG2b}LymFlZOP z9?WNhl!!x!24eAJrQG&5Qr8qfWm>6g2e5K0Udwl>M{kB?*uC$%v=q-uNfl;zQ}y{v z?vaNvYy##MBu~vuWGKgxn)nZ^*cV4$n44hUrwq&_xuDG2yVp~W zTK#^j<11YV+wJUHXX3NZ=*6i?FtSCHJa9JrMLzXyG{(XrMW{YhBCfz0%Hh$l38FtY z$PHcyW1q5IIykZ>Pm0*RxebwjVD4=?3ZO}=CrIh~Bt856h%VB0sAT9&_8t`%Wy}&F zst@CqiQFxG*^JH^aPDLb^JIp;G%)2XTB2BL*dX?0O_{R5A^X3Gx<&r zZoFzFJjc?jl+r8Fpzs%|u9@%!^`xKXBv`yxl?0X{H~q<%u@3|KErDDb@M0V@EIb)^ zYR?K}RB+c`;aYbb=y>6CrJrLufZIzjF>3fc#K>NJiFD(RkUP$)FYN!M z6C7E?2_vTVsO>XW5LJ{jRj)DMqZ?ZVd>@)icjlkKn_$Mmp=YV!9S5jrr-fj1i0=hv zeVOzjcHlmWvAy~&hkO;{R23GtX1b{=A0B?wPjw=#Eah*9%J`9(QUkqhsE?KXM7Qp~G@J#jxQHvf1>{eRA+vC4Tk^d|EXHQ>_79(Kz zwNU;sQUeBV(bwp|!U>pDp!nIG6^}5?o@j&++1kH0cazcuC+=NV`TVG*gJ6-|;&78; zyD8d+5DN}1QtZbq`mD*7lj)%~Y5-afetpIX z2_P9ixYr)asSdk00Ky6)jW5Q76{3(a>KK5~fff=!KdE&iH8#Kr6o-=Xn%GG2`_A7hY$50;zprIQZUe7=dv!7$7 zkXTqsdq;=aUBsWNa*;gF?b~vnY|9GlM-LpUt-xpe8sNJ&jMXKR79HdI()+!u)0$JuA3{qSz~VoDsPPj+oLfMdMIuU1mkE2;aGOlK^D06W>#j0<0hn6 zphyC;H#E3WV?IW>Q0st6S-N~uvzkoou9H0&MOYSlN^ zt{o3GYXIgTk$a&0Fi`%PnQB}Qf4lpR;ZHoy_YBcdW})zxz4G(xp`>Epa1bBWzwQr3 zAnnE?(25>ZSbehI4r>dDoo4lDNd_1aJ^J_GQWFlT^s0Vu;ZW2^M5(zj$%-%O6P@q0 ztNw18bgc>+R5(Me67@ zvTuvkub&d4J#8@IT6^~h_x|Zjej|rJ0gl!|#Yz|Mso5?tlyIw_7Qay2%0#Uq&-L?1 z-c$uYHaukDE(&l51C6HqmdEprv$towIx4RWOvI#ivYr>BI8}{K&2X^Uzj83?9*@?~ zK|>H;st8kx)HG-CU98$%UCJK{HoKhFT*{&KTk6y6u|SFKq;$GscUbQQBz5$>`mE1vV;T4rZ(S$K*G_m~KnGQ~mNmFTK)^EOS>z7{35U+I3Yo5nqZfF-9e<#f5`&KSKiAccH`2e;_ri|Q~Q*MYZFaQ zyQKI|L$S*~cJJLYb@5xy`wphdKRX1h#kBeZD}US>eFKQ{;Swpl!DEy7b7^$#tFz!l z8A%2h=S~+6w$DaYe!1GDRiC?MPHn2^ecSA15741^0_X*8yoW`oxO8bl0V5~q}daM$0c+?_km@N z!@;#j8Pa%;!|){!i5`#Dm1I?M*PcGkDvdugRub z@51aB?KIwvkYK@j4)Q(+qdB_p2~w!?!qgIR;ktzQqyO1p+|`~a!9a0na-B^)?wk99 zfsevk=u3y_BYLT)-JhGI`m{01$EO4yB2Ho*cU2P*bvXOC)R2j(wJy`G&U$oXGuRJg zGO<_%{t(VD+0a!d!4+h8cYp4hK@mP&pb1X#JmqzBN##^*C#aub zGuu5Mg~t{-+zkRZhFAw;<;pY5Z*bmqFd}8w8<;2mQ28D<0|3QDf>4xh-{T(5mBxfhK03>8U znAPFhMB%082~HN|_&7?Uszz{jIHFihnRwgqq8LfxW7TORC*lCpRrBC@r}sDn-IZv4_McL z%N2S{t{2Dl{ftu2=cQ~)0s7e5^zqoBi&ysGdnIStw>YahpMHqX;J5g&V60d)45Z-^ zTc`m?KNnZG4@3r9&qEc5WhJ!XeWoGf{lDsp`Hjw;r=cjYAw+ecmGh@JgZ}TIcJClF z`=Fe(2~)ZB(;H5|*Gfk9nR$Wf*S5v5!uMNZoUr}JU3p0=aRRJN=riJ(_3l2e*q_=k z&fD^UOPYWMh*F&=XYDe)|MO zbr;SJ7s|`&k+~#@=kzg&{r1_2fCvTY!|Fcx9H3lix?u;)gX~#yOaR^m5Z%WT0NE0o zmKGi&_m?n3UoO+5^%-RfgH;fNt6ECDSauGHENJ34*^GxH`&Mzc-_4DF;@H0j!%JHZ z%XbO8i@D$&CNenL7>T>Ip3jIJwYTgvm4 zW}cGNa~kRu3IY|E>4M`2li2hEc^2(19rbMz|y+*P;o+XoAFmBXR&2lBEJcs9>6J&bLrcVZ;31Z0)S ze#%6g5qn{{56OwfTyV1w59s7i)EzMzLSN%8#ou!k$e{Klx$-qL{|KSyl0-S9K1^f$Xg1E`|D z44QN%*+P_e2%He%(}*3qCHpd>8ND&%gX3l&7&2 zGwEz18qqkf+A3xcq5)=W);sV`x}T|o+KR?T{3qtUksHVog^F~AMl{=Jf1;_e)m)!nYxvXmz!PNdU#WU2zkz1_uUkPH zNHnpT>AFR|7N&I`2#T)UiNiL~4hd~0G3i5&oSA%wJk@;SAz=x*Ynbto_EqOrRmz+- z4mgevo5$Y^M@)H#u>Iao&ZcjI`*oyvpm})EkQvh+y#D;s2#@w7BJVDjyX4k-4o4*_ z+Yi`fNmL~Jjw)pcyJ*$%IktvZeXh&(p zQuz7G4TAYr9#ZDyB#b$glpt((Yfg{b@W%+u8bZ7SCU;$cm|@TjI$;+MLqUiThb*(2 z2jb|n$U$h4(T|YjyEFNQIqe^LSts`X6zkES*9if?)Ei#8G6!i;BDl0Y7`AwDq86Z& zOpWa)bpGVP7qWKl?fbuT{qEHdV)-vG!=Pu@u(ci1zlYSm!ye1E-Mwu#n(NAamm z_=N#$eT=bf0OeZu`GMG_)T}ic9OI6JzK0r?{j)t|_jg-BGy1BddAsXXa0{}bUW1_O zn=8J+H(~D}oxIKcF8-W!oxz+d*rai@jGk`7$K2W+%ZYvf4;Q;7 z*K<-p6w3>;CZ8ITJ%4hZ%dmP;171f>4HyOMod*OyG1t+fN- zmGeV%KPy)79g!%qA4K|b#$_y{+@krg2g-cM-P!jU37=Ic1{k}#Zf7u0vzcOCtPhFF z=5EGE9np1k=fzi~lwiE*Ai0vWMKO_427_TiX?guRS>5)%xK zd_^`@aDa#k)R(p^gNf z$!n`v3sWmWxU;#ChzP@-3Mk(T4fT#QYRO#(2}Mfay$p-o%!OFxRZBfg-e|8KnJi{` z)p{0nmYlDk9++>87=?|Svf_JKE&hcR5w8#d`->iBq*2w=hVGb;?j@dG_OtSA`i<-` zW8?&MV3m}*YYYijgVIV2Fi1pYb%W-PAEBq?hC!ip&e|&IXlFGkyszami0;|YyhKor<_`#O5nj?9iuLj9Fkz?p-FXOZYLL1VF%T8XB>tt{%= zvRK!)Z=f7gR6L9^MxIe`8@ArXQ})AyUu#&CZP;EQ4;Cd-<2- zl;MBBgkvBWh{2-~Z9>FTmu$6GH;f**f3rYZhlJ>Kc(`(y#tKy#JT-w~ao$~9vZ*3P z2lF4ySFnhc(^lSa$*SQz= zm`i+~xSh42n7ljXM_-Hv0=R+gW~S`WQdRhM$JhY(O zJ`>YW>P-#>q_`%U(Y5RM9lB_#o)efUf=WguRja%S8{V^z?Ub&S07FnfBvA#N*4qtJ zU0Hyyz}#QyYq~ZK<(nQ$_l1Dw>1;6X{h;|_-HFyB@4hduCJ&0WG!D|%K2oduoBUG@ z3_}bCP9JL>S41~6dc4{qg5swrhIFRK>17tups6+SVswg*VXonDrUjJ_RN*HctGD!o zlCW*s{mI$1(Et{M%e6$cT>tuivi?}6@-dG7$+sL_Z$)bgE80d3dUNraVxr{m7z>(_ zsUTop-}DCL*GO1A@p2r#n#z4p|6O#JcoTx(dfY$hZe}274!o{`u+iG(e_$gucjrwX>r|!u$iSetW;Xm3e#lfj#}mF7e0H z`H{3DMNH5;!B7CJ0Iuq_lzX_*jCai{@=nnxz$j+7uW}{b^}?NZtIUD8G;4H&`rx>+yyEK-qkRgw^B({ z1K9{sQ{h2^qOGvi>5MRbrl=IsU$@c^2NqA9WcHb%hObNA#_7ObeQ-1ZU`7UUVT?1? zf2tMS2iM0e#EVaM!%Fa+T~_ZoOJ$)Ph>makq#TO{?IuR_W(FRm^I7%uZ|Yj>-T;C1 z-676M^Q#?kQlj_`vUCsZ+!y>A+D@Hfh?i=ra_WNq6ogE<D=l zCfka0?si(7Mn%M8wh+~lL-Se=Ye7owTvg+GKGssX58-a`b_yOOnanjArPV#nyCL|> zaHqO&pO+qd-eN6Gqs{x0U@2%#W2|y>U(`H~Hkl)u2*=Qb%&2`_<<3A_N(2$8vsnY} zo0&7xPvoZ<95+j!ilXTA^Y^!NG}ET}kJN>T7g?8K1ChI%hm{1vtyy!lNDs)q*&&T< zj1x!#k9Ny|`72=kex9+ZG~N|F0*{ArC+RNaBZZ2Gjck_wQ8YF0@p$4yry*xSwa3=W zt744`RrkJ5n-p}$_aGf;ZuWnO$TSj;cH_#aEd97Y#csRLKYu5z`gTUCTCvM!T(5mR z8rk75QTf!FO-QMSMTp~bZT-5clV33J=X)fYMQCyTfPd>2VUkwu*~Ix5uQ0zG?_bt^ z;-Czy4IUoGCYsXd5g=ildL$VWO#~w#tgX^8dGk{}epqDcY;{=#21yYbo#hFmRSP(O zCDv6Utf|G?N;EiAqh0Q())faZfU3gXzurf{Ef5g5EPSo~ z@k>vB%+fi(*zPve0|Eqw45VqAmS&beCjj8x7gayb7ssC7pCy}b4~AJG0lI}{Tl>r| z`IhoD3a!PqeO=96UqGe`Cf0!Gr?>*8Q#Lu)iHp1T@cZoE<+4_YBCkQI0<3E58LJ9? z5|R{D3#^VkfnY;wNx6n%M`}$Wa9#BQGiy49313(R^@Mt<)NO& zaw%t+AF2ns5u~ET9)l~J+JCEE26#3h0qLxyMEhQ=7)bP@+xgx8cC<;BhU@eDR6!pv zoBsfXL^ZRnyggh&dRX7?I=76%t%VtnG9sxVjC#Cn)|YkSP6yXks#`Z*rNB!e{I1z} zynof>@|`eITQ6PF@_UpEXBI_KGEW3cgRzDt zSg7}P#eESgP*v#M@f9;AvX`6+tMyK!EDQR}Ve6S{#?c-o!2I*wsNCUc_AZk^O{4<6 zz6k=*cJ*%FD-aBpYeQ8zVes>TFFk{{u6wH8U^j3E`=?~Dvl@_}jopt)_h7(JhdZf z!=ThBU-iAVD>=^x)*)FZgOry{A}DhRgFP?Zp_1&X-pH_!ySmD2%eRhfK(h$CZxk^W z=3igL<1o2_bNK2G%x;;>r#$}tMSlP6C`xEnv)+@y-s=Qfz}Y?Hg{#NJ{&D4QrB)C& z)BeZ{;2Rk}%-&={r;b$!{1>YuYe2M~T(W7W$0+$vjyhAjwK@Bd;`K@D1cImJO8($3 zcKsL?c*x;|g5$m?2s1;gQ+GwPEw|e4ZnaXYoW(fqy*nd!JZ`;b^|v$kvek_GmdQS* zss}zuEw^U!4mUKjl_s8OuS59PEm7{g^#S9_w4=E5(Aa(S61UgH96tQ(7e};k@NDr6 z{ZRgaj@eXC4}IvPDz@FVX6-qs1?ZtN z;-SI+u;c$I`jui4vzFzSwjCmj=2l7jEJl~!sCV?~=eOBJ4F+@YZmX|r0Fk*F+hDZY zLHpczN#-8lEYuu6`d*&lhb1241or;$vrzzC@AO7tws#;N!S!){R?lcv)ZFap1qOr-@MD`>LO_oDB=zAE^pMmkA~%juymBDKJueRrT0svbLcon?d_l) zrVJ#U)!xv6kYwBNOp}vypkm95e`sWE_)*n3tIF!kpmE&JX0eRaERHz3qxQ~CMPz2J zP@>?w*Tjs?LEI&;^)?L5%@_ z8%t6Fxy&^{4hlDYYjYQ+52Z7`xz_f7kjIqP#JD0DW!4_V(58mS?;ui2p5pLe4~Z_( zW1MgtcmV}S5YIu6<1%6vuW3v!II_ws>gcpC#`g8DHa{N1pUoei`(S{6ci^Qz-BblC z9|lPc!|S^|f;iCNYtJ3o1C?l+@E>`wjg9o1oW9Gry|%<^{VL;4MU;IG+?ObOG4vne?{?KRw<&3oe=xnxN1QS_iWtSwV&%+hZE0=Oo?mMlg}_-xFBuexcFaS zqp58;C~2`hWE-L8xbQkfYA!WDGAu=>q*D-fFQ;B#)fh|`-!YHeX6wvgM#bnnE~TX$ ztOtxTP*uSUw}Nz1(^HX(OtS{0qRCaeLz)9I*PA-jcH_4Jo9MuEUHZOVfbeC8$VSM!Qlkuq6x)T3a(N2H``# zGHpLeIZ96EMFkS6Wc>?@gAcWCfuqzr*SD^G?@Mw=IfPuEj*xz9Y;rL(faO2J z!WKbc{(x_bDCfqb)SkbJj7$HpJ+jL$r=0X(kq5|nD!*M6H$WV;8+eZ|@e!X<2y^~=Y6=wpY{ zX+^bV<*d%L1&abYIV5;zZuHOZ28*qDYec!^Sy$%nw5!66ny=Z>TYZCn88&K#H=ocD z9qZ1Ra%CKDtNIebMK7h_cfqzq^RYA{Ap9y_tlO>^8iwZBzTbrd@dV8-f3ZdqHCaO; z;IeIbCnJ%ezxKJ>#17cp+nhx|?FuDp3q6Ki**|&{A9)K-a+OGUU8IY39Gq2LG+}pr z8z^m4B11Wtr8_6`le!P0?PZ0VAdYAU9vs^9;xT} z<_(pziG3}h{j?7_r2H;2ov@9VmSEzrV_C1U72U{)kSPu2UuYa7|&(ySp#YqV;ki2eC z&Ac{3Mkl==!?S0Uu_7QtRKBra;%~|xR#l+Odj?Z?^3O5IY}CZ}!IzaYNG?v2!5kL; zVH(3Y$S3pN?67wH8X%gd4^OQ`)lpU+IonIOtqjl|8oi8jgkMQItwwFOaFi?!fp9zv zzIVPe{Y)HraFQEN9RG`h{c_)$Ms20Yw{jl_?d(@TuMI^&WC<$ts&uPRlEPqZxGJiS z7^!*LuNlB{sln!gI(AyXP~(Wtuu<^;>_EgW$57{312ErmtB=#gXyq_#yCtZm0yIwkdEQCAF=)9+1io0b0$y<-t!9Lk*!lqL= zn1k!Qim`w4vDzt4V&X)SZ}Q{MUeRh2$BO9Uc4W@(RVU<$opISm7tZDg%csFP6bSmh zBa$AcVaY_u0N%ms7-OnEC??srl~Mw~`(O2v%B0+z?}HNshbpgT9DnHt6(9>?JbE3V z$Vq=Lu#i#*;z{6XZougST@*2B{Ps(tj!J)B5KBN18wfH0h*`RGIP1CV>kEZZL7&w} zD1XWoFHv3rQxs2Kit9=kzKqQbPE z{7$)R$IDp_kNbKc;+^v-B#Y<^KhxCz4$h7NiY{ zBIGl%;JFyLz{I)Ive6A`xe-)bW$;pGetbZ zEC%BF{{jW-JnSk^0$}s|ov$!-WbqPP(C)Bk}SpGdT0Q5mY0v z=Lko5JFhCu)3l||6Zq}*FPCKU$q4T`5N&4Fbgk!C z)+1EaG@*7<v8 zJcc3^m_M=LCiY+!WJ5If-oWB=8sj%|_ze6}=`Y@t&Yu5samtXFTnwCQQ2)CgOG%tnd;4JyuV7ef0tHjGvB8A~Ib2=gcye&V? z$)c1_R)OswteyZ&Th>{2vC>@7-<)Si&Zgqx^lr`6mkVdPI!xgp*5AUleSG#s zR2PJxaTk^whxho_u(c%f?@^kiA$j*!FSTh`Bo^e*F#O#Y`C-X;X3n~vKz`4lcdIb^3wN3LbYS5 zyQ^JS8#VGZlt#}cnmItR-HsXoIv~u?p-B35z6kF)eb)z6e zJthu~U*FvRDYKYKUk>IU7s&7GyBU#PXia?FenJ69#-5A*QGq_2<@#H8#qMC(W3M(J zEDNWJ+g}lpbZCYw5psK9O|&y5lnuePk$rSe_D&%xy24H*H!Zq@uzox~P|Rf1u7=IF zFsF10Q^zmD)w>VNL(p=rXy=jURUU}&Tdz+?>ZA$m4cES69;lCW+DmrXhow`yW(Si= zb?H6J`I#&mA4-M|d9U%ll;ZBWCo0~)7R5TuqDn0%rf=|TqnJg`Sp8stzKll5KmG4; z_ogGvj=EkC+VUf&ZxJ?F)^{ zehNHbS&}QRyO~HqoI&QNY{Y9MvIEINA^`(U`wCanmj9THFi=fUpql5_)Z9g<2ODp4 zLeZQZz+y!FGrkmPKe6K z3Cjg`<9+zuqSKp}*pBdjW^UgZSb&xw`iCDyl@J2gNhL;3=_-HClg?)uByq`hC zIa2ppLVQt_Bf~gTXf`OLgauU~7lve9ai1v>45e}7h(pL{YQRMQM>FfT89NDXF8Tp6 z(e(it`#<;&?)w4s&G>;RBH9zq&zmE2^2fzL=LPMmV>n;n7TJfn50Wp=dLynx>kjO@ zs>4%pVj71nX?Y6RoCKeY*U3(fo_}G$`{Dr2W^ZQ8r#+}7(L4>02Hi`!PS>KET~Kp1 z(`B&dB#)Sg&U4URuEqPW%I27QE1z+n*|RfV85t;A6zZUEISKYCaF077AN^Q z!>~R$ilpbVKAUCwds;iBir*GsU5R>@U7Y)XL&fy#{A;Mv6M3gwJR5^yh9af?-BIlf z*wzFRq(vZ#d|y7RgqX9XsZkJH7j4^fPN{@S8)0ztyKyG1l{AVUljbS#bG!cplU~C< zAY-azbO}-w?k*f5U{2{)Smswje?i9blDu28{y`2oK*o)(WJzk zXLTrAYrFSP8wpdjE~{KRmc#(-)o~+x$<1Wa4~U%<@W>jsK49y}(BR#M(SI6BoL9|6 z$dfOiEa^&PAoLLXnHDsT0WM_xDeU&2vc2iYMm*`Dd;&3>_aw9eJ{N-M*_oaUq#~-q=<$~-dV*_DM9La|Swr6dIpbW|A ziKDl^EB#zvyQJQ1y90BdQ|RDKZHFs{L7hvbwE&6I*2WD>eCQ6ln3lDdd}dDSo9~ni zYdfCZQfKNs^W3fE`6`A^KSs_yd8sL_OMGO-ll<|unBLLA_n1-ox@UJuf|$Kf$-$K7 zM6~(#-gy&j{aY17XwR4{=03J6@PY34fN+i@{Rh2nXw-8wZ&qe1?^Ix4dc}rg+yG-! z$1ey8kX-LMp;V>f;^E$$@|Y)b=5XUzk}-lZ zti1SdoH}JA(5J{1r%Cw~83sQ}PQjbbKW6Nr2{`gd zXAqpd^9YT;Ad~{@d#O(T|N2yfzE0CzwGgd`HI~LbHIpBpNkORSejQS6t2MUqi68f@!n(~mkDl&HB|<&q2|;p4^maRN>{Khty=45?&1}dl^GGU{%~Pg zi<8sjJj0wOGa)W^`#)5jWk6ipl7$HtoZuGRU4y$j!QCNP(BK-}-66QUy9IZL0F5;6 z?#?v1_szWd+kZ}NJG;8-TkG`K3v<7bj2R4la*f34Y{dsLIrP4)_s*aSZ#>5F)!^kxP>-qNEJ*yunb zCC3DdP4BcmNa)Q2N9KsSxSHHFaY`Y*?ZDnqSZV7R~7t3(y^p}<-4YWul`9jrSP?FG4 z!_DIl`X9J<44*X_>g9tA16!N;)cx3HTs)NT*0L|g;QkuT5*iq8JEAFc^;`n7$T!sM zH^8?L?9y@(HbU4|33v#hCN*~z(A7}ku{kWmO2=US42fDJ1TM7x%v+91J|qsyt)$`c zLPF>h23c5~nXt$sgegqILlTOD@<{enD~+y%s<9XnZT`#54AFN027(<(8c$H*V}GGKh7o~~{}W-`ISW;b6P!V9`2Nx?@eCw=P0f%l^a zbZZ0D1N)PTmHaJr1oUWpE;n-BMB_h<1#|cEVTT-Qw$iq3e@@Gs1BQF1@t=aJj5w)0 z`=DVVQPirHln=Nyp!~=WbVU(}V+mvXLSVe&yfn$-sC@-{#DyUz-tT%S;vE`ag|iXc z!F={@MsBqDO)_iR+yW4`F^aGjH-M5`EYzBZ;}#cy(ke*;k7X#nzm{t8Y*n_+9aa@- z&tfM|p0B&$7+d@2C^9%*&xYzajcEDCSSe*j#h{I`O5bQSkn!6Qd)gd-dbP<3>zykq zpUZ<>4y45Oin6{Cg&zxYFngVy#(MWK>P@ztW3UdqGZNJ=O-35YHFTk(AsU6-+@RP2BAXf<8G$H)F;A zTtjH%J16`=C;r|#qB)QU{Re}^Y6cBrk{qX<&rE6_4;{yjo6()Dm54nROXM_0tMVFY#{+szTJGJ`Y&lffw53M3vN*?^1L>E4r9Z#xy}LqGG!_;uyM zkDp#QHKrOXqpOoMF9CiW?z@!ei#vtY<~Ki-%wEPjk8xtBS6%ID`|M&qD1KzM_qNeQ z2nLIKKhQ>2Ml_)4)TC)q++EyJXGmwTQ2<5QDI_J^BGS)Dc(63xGrFcs362?zb+L(G zgPj}?dq4%lYwFMmqkVE75b$#C={rkSOG&e;5CIuhNL7@5*@@!Her%;nJIQW1Jk}xop#rSg`$A)JTdL)NtvbGXd8P~GqSyHZ?L-dUpbM7Z5MK5Oi64fJq z!Enqs=!@M#+&Oi32|5m86A!qhhAfn%wU?AK?-gGmj@P`QwP*C-z)Hi|p07}~4BpGU zgeXRYE|eav%%H0D82aN&ETEA;?P!8{TZ7a&%BMB(w@#{)U`&$OD8u2p_hFeqOvd=x zV{?lLg)dspBzF&?;oRG412CV3H;%JFYs4u@{`Z|H{QU6?#-Hw)#2Lq>26HJ7${}G% z6N&tA8>y@w5}o&B18ct+g7<5r9J+LM#K2X2OO;97#1kzt);`U$+72}na#_d!RZk53 ztCs`j>7XhIR`~#Za!u0LdJ4s3ewQBLr5^3yEjgY;0Al`gSTZx{aFKFpcfFICWKnvB zh>kR*h(fCU64T(03=X6%OoZMp{{JiY&NPuKe_Ql@TDFg!+<(|5+az~`D7=27{tL^K z8?fFWPxa{08Cv?GQ1kJr_QdOX_$~g66x^YjzeN8NGvl+#zK3PhxgTgrRQjJ{|3#!U zj-g?hKeMBzyK6|0vL~Pr^{J35hdZpck>&Skax^zo?E1#&6)zK)b_m7mboTx$f!dI4hf$L2z>7TIf2Oe+s+uQ;S&skDZ2CS-p zP4ImE74_1pBT8$JkJeMy@QFt{rC`E4V79m28H-?4=JSdM|SxsAO`Y$z*&qxG4 z5BSXScU?plVKxVlFE=v6&(L{j^ik^7W5-I1D@SPSM(VXmQ+2<)8M<6Z8ZU+qIojyu z-cnx+cmDb>mZg34rRK{zc4$Jth!JrcwAZaN`n7~i@TYpc*73bl&cG~$3sz$(CkgO7 zD(c<+eTu~$3eIehH*ifZ(i)HEL_SA*IM_wb-MZ7FuB;w_;7Lx!>!RtFjV3KDjQp@v z)K;~06?ZsgNwuntDHE7?OYNHLW5BNl8A>6HeL&H8nM$s0S~OP``Sjz%ealajVD7+U z-0LL;%^27Hm2Yg=3P(b z{HSKq;1EIJu7#PKk!-vun`&;Q^tBp}ZjC3pD`EF~EE8gA#~lcPAnFs1Gbf2DH!%F^ z1m=AJdBWJ&^I?DFijjoS6%9ssY{pDLvpefjK8i->!$TeM_;mN)X|_VpeX9L)wJA@4 znRtT$c(iE1+Zv(`j})JdIqeRqT3-sLl(T_2)d8Zs8cdJ4XsntS(BIx4ROpe|`>Db< z@83!Talru-|79z3&!d&2cV9|0s~3}{#OX>fM3zOxR$j_@*@Dt?i&2o~T^ZN;3E`y|sqDVpTi^D9xf@hoH0qkVh*ogcgESvF!L~x<~KXkk`R6F z(|-I29E^)owx>rNP$BCJ&n;P()dj8g2n;JI1M}vwdb@5 zmtu1o`8Jt()snSRm9{T&uyR4Fqm{ZGOXCyS_*>>VNKa(;kG=4vsi zEiqB#fdKv_GeC6oE&H4@x^5!KrKEkx5#>XGk(AS{@KJ}trpfO*CphYpe#Y$Zk5fFxIX1}hnS-PITDSpd-i zxJ|p?ijFpNgoccKI}Kd6%#3BppA5U=?52mospzy`KEFm>qdAq0@QBq@=|-b zQ*BTP?S`>sJ37-+B0Zj`Yw_UoV6qP+?W*HJQbzyaaOi$bKfS-?QlM=}s;OsKJ~Xd2 zz8kS)nI$=ycQAxYSL}MOODnjt%h`O|pF8Z*YDFAs4}w3VZg#^A+qN_C{ZVkt!yGUP zaqY3-OrH0!rnO})vlKW7C27CEWLzRp)(!cfw$ZN)8~_MoX|;Vmi7D56VA%PXOg;m==kn07rBLIRt$j}lGi z4IXW5JutbW?z8!No!X9Vp^MOP1r6&IhAA8&Vs$EZY72yp9xV3gMgqKmP+=N>6kgdj z`j7nP4dQs>$u;CHYj&*<;VYkMTr=M(!?^AL#FZB_5{s=Im4=yQJB+9I8iw@e;QBd} zpvV>7>IQ62rWOx(ZPSbOpU`$<%Nggr-`0$V8%640T8>>v$iniOP592>PTdK^Z<6;5 z{tq!Vy%PNSuh7vhRkQ4iZX5Uf%?1>qAf@;pnc!pl>;LB(mH}PETjW2{ZMLQyIgk$+d%V&1vo6~m_m-p7 zBfpma`8cr8K=-o3JtGIP{?2U|ClEIs{@&x#s5LNW#*0UWk}%s$CIqW(N%pw! zLE$lBCmRvM#d!x)Jse^}vDZ1nNO1LuVXIuRCB&|S582itfLJ7CpUJNMrqRsPo^iCq z&*Dl2&dl`GZ1ckRxlni~|3Lwhxp0h4|Fkn#{NS~5BWr^svK4unh~;iADp&pO_{W2B zZ1@sf#^&}pGlvY%KX5I5rW7G_+K`zDZ(;jNZVjFLAIPd}8w%{tq)y-t@hX1OgarF@QLo zM*qN{ifA}QKJ{dZNJb_B1w=e(uTU7Z_|bn+k4}5{U&cPi%j~QK5vn^E-?( z5^NgiFw^DKWS(6xz5AI{&ZOy%mfD3UbnbZ(;fs|^#)V^HB(WBj|GsUQO^NR2nn1m` zTtY_{=j`gDawv1^@#Q5J5%0xQiPrjB$xf}As)9s>EKuvt?0RdS9|9Pv`~=xf{`gr< z`F{b=`mrEUE|^%96HWgl2n4^Y;@U$4>Zm+0%J(pZ|J73M^GC*H=U^e+5Z{4w$7-9W z*K8k>_Dh!DDyOtCo>6az3(^PRLC`O9b3)VS>HmXO)MWiqRsVs7PJnlx^kFy22QRhK zH^L4yApVhZJ-;s#CF>7+!9<4f@?*nPWX^qRWKN_F6a$d|hXS_9w2a192je=t1$ar` zzw3Vd=qU3oW4gVUETy`V)L1-0ZKF;Uv+xixOZEnZ-&P3Ezgz#S{Upv65{sfG6HKtV zf$i>Do&$%(utobRm2~iXjLxQcfM~Sj(rSD*T1!!Sbfkbf^We}b38i z3bv&0mMl%S>Gf<`xfq3%fc_Y-mR^C6^X!Py6sTy|03^y=jt$F%_uE5^vf2kH`u9!a zc_?lv7eQT+p@na^o0>Y)v6|1k3WVpbC!d5ZA#ttNZ`GRV`gc`qWtZ}9aa`RpiH};C z&KdF}_ycD#aPSO)Mqs0F>r%apL6UL-R3CA1a{eJu<%+G7#YaLfFlNr-a4}GTO{$AU zD5z}LekcqfGOH(NlrH>sL|t|4PV}EYZ;lBo+Tp~VcfLzemC9&(^CQxmETS^E{}Rj4 zFMYwEZ}=jJ^lbzsCyI$};$z|!37llY-K@TUPydYtg8hcZjL{>9JLL%uDiw)K)obdN zYW^#7b5dGbPZ*fXk4zS8Rnwzr4FdQ+qz^zRpWn&3RZUWI<_Z4TIEIUF``a&Razo2c>_MO9_V%WDEimyl{XJOr11VAEoe0?H4ISIJ~w=eN9V#$6xlCcwT@rhe> z)fuFPubIA=vFuV6n5HZ;yPas@Fm&vgFDI(9%nDg>)YPKZraxGi zkq$ZoN%?bV2KKAYw)C!zt+G2a6Xy3#9B|l1e8t5@wY%$U3~r;gk*{{`fa{{D?{5g0 z4UA7Rxg^esBFBBekpCP>F?YtVbWTlDHlG3*!Z#lLKsBz-3AkzZV1Vtsenfg^rKo+C&)A*sI}bd8{$8?P2`o|*Yl^u4o4!|$ml{MMI>cO zlRg_QW6NsYkUX57{(Cs$cJS+9dlk`vdbm zT&Nc2DL;)9>Y0H<%i;FCEt>{lDRAW}xaggtB%T$yC6t;_b}1i|yr>cDBhvq`$zUkF zuw@XdRF#(>eQ4Hhj?B_eH&iN&X~B9Gwj2otopQ9}+WFLs@T^JF4XJ zm#q0c6SXZ)q%j3L+*1*}!yGu?wHMBNGP{gD2o1pOH#@x~3_a^CmrkohZCEvEu_3p^ zOt|*|$bKW=j;hN%*44*t@PN|xVp+rK!#%sGeNnnyyPbx61E{t_=VqW;0KOv$N1Axp zUtL%&dLQ10hEFyK_1Tev$ZCToPt#WKa$B-h{au7qO>rK^d(7Gc?al}~=4}?K7mO?X4z>G{ zKeb>upmWx5+TG`5^%n?ej|P91bKdQ{9&Lb4)_xsl`ks(SurBq<3-m$8Lp8s|ZqZ3{ zNi`WiM$qcMzOSzBG2COMxN<_BD=?((k-Sld^RJEwa2At8F;Z~4*{P?PtDcfCcQO@@ zp_@FGRUEM`g}iMnR)vk+MrP`l*2Dw*XNUqj8Sj#rc%PC?A(&>HMQo(0wosLG$-<^f z=~Q4n6b@CG0cP8MD7Ey~Y!C(+Wc6{5_yZ<$SMGnaoxM6Jl?Vm|{M|%NZ^8MENOE`^ z7T|XKL-J;jsek}48k9b_)$ z`PXCYjSry7+xW?xr5lG`xtMbcTO39HhH`uNTGd6;FwRvF7*kl98A6oTknfdlWf1X5xlldV5iVd{5 z0+E6O-2_{U+S&U)T>LpsBt7;g$CT z(Daq6#2R=1MLI&WsU0V5vRf+ZvC?vFUD&TdJ?}Z?UO_SyDUs1B*Hb1%cSeOh!MmE< zZA7_=OPLfJi-ic44?d_1^f~}FsHs1|VSJH$9cu_eKh#zWcMgD%j?%f=d$H*#rwsOa z8!iI0pBef1fEep>(glGOE)IB_CbbKUD~YC)D33FW`_6UQ@7AAKx2WdZb)~CsZMF%~ z{?4yOiRgnGxU~1Q~CSw#ignYJ|H#F&2S;H|C+@ySL4{l-d&{w%*pN z7=bnys9m`NSNe zsdm3}ws0Fn@m8>EK`{S5zSvWScvxO28Su%2l723tG{deJxyLT)=vT?c&!$HVJr8+V z+CH=Q?GtH09Y`|Mv*T^2c7nEl;#y_8{T_&_3%W?c+)-Nxmd@*G>g9ivRX zqFj1CpFAPG4@|}24jlICfT{`(A#*#%Zrmlv3kQFGj7wPRnVgwPL|R}cnMIsnTt?3` z^su_YzgkJYJz2z$A>L5apat5% zvpi&Gai`nX%l^b541?w6>A^|fF@y#9M%VHvSz|Dp#8-&@Il2h*qRFqq-#8`+{Um|p z;Pbq+O7zz*)!aUmFTb>3E0${}guwO;pX4RYqt2AN-L$~$S7c0YQ*xI5(jnwacTbf3 zzVyKM?1(=yPb)}fA|)mn?Pw229O+G649n-h?uPYqpW>;1?B(5+MWhV*1~rrJ3X(X5 zs}fX;Lb-*wcOQR7BkCx zK{i@$kbsF8r!`FV+&~Nt%N;ZSV?IXDIqds^j5rm^`jyEAETARAVh|?Z6e9!@2s+0$ zb!DwQ{Py+i?mQoYuTn3M+Az%n5J`ce18@zgMhjBdli}W4UtU*6gwmcim(X+XCZR3l z{yyJpuV|=ofbdxLcM;e9`qXRY>K}x#9-^PtsEs8Rb|#=)h^Kw*4$bx5Az%8MHsqTa zZGK)@r4a_UUTjZbCe(rN1}o?)V8UJvv3F7HpE4?`?b_CRk8H}?!6POfq$@(jn|c>C ziDod-UT<;S%Uj@C>=7yR2}_biiT2*h5CG?WEpR?H+%*bX@(}(O7yZkKG&VgbaMi}eTlfuWo8>FBZ0?>TnNSS*G zjZJTdbzW*e27-qs#p*PN1ltU@9>fC{Kgib8Ax&J82-GVVFpKXM>RT?l2e;kL{(Rjp zJ7%AlyEipMSh-!WQapz%5%j686$AmIApR6*HLO@)=nE~v*FYV?P>n!Y7jV%;_=3#9 zZ1?FOn5vFg$1amFl;G&%Mxx*YVc*M~V8=!&o|NcGQ|(YH$(FZo*RM$!7kLVAx{jtI zOx9@BJi_L-g9|^vKAMxheoq zPF;ciHE4ej@4B=}#tpQK6$QWyod~(dVqIs4L>72D@v7wSsb1D9zRP<|gt#{9J>_-R==n zvLJQvn37?*Y_pItG8SFFFn@;A26>Q_0qLEki3hG5NtF3e6Jp6E_}APuP87zVCi?q} z&#~rH(P>0AnR6wn6-ke}A$6~LNr=-hRBVOk9`{>k7C_tn#J42i9_Bq1@ztbxcN#^u z_Fo>3j};jY8mNGVSSHVnT{`-u+mtWJt;H%ZSi_B>pJUg=3vrN-S^+TGFQD?gdyaDG zW9*n~hsup4Win?^5G747FSHmjgLoiC$wdBF;*l^EG3iiTO;E8nS7Yj#aPA77SAJN$ zq?(j!4(^VfGJ`-a^>!Bu-X8_25?Yu`RCWBfM zo$p^*60`PzUyQ&Z2VGF{aSizj&k9`EY!B!JR4uEP%09qj z=ul@Pz379=UJ8GJ&v6*)AWCDM`B3^#(Alkv$3J_d014j=)|$sW~q~=a&{or zuh5Elk$<#9SjjQt6MuC=jk~f}LpNjt2gB3WZCh(?p}6&?d*6h1{?K%OOE|7g(6KnpPP6xP4HT+|3f-2TJ7qrMT?>%bC z>UR8;+0x{cnWV*W>TO?8J}l|~ zix@9K z(sC?Ce!0Tw!aB`?x>GHRsaqeyJL;GG(CE}E?eho3I7G?Bg@?n^#HpAm5hDy>d>Upp z{bz88;YJB?d-C?VU*X#&D~?MP4B7v|y7M_Ni5*n6;IG$xVpZAGCu^^X^?fX z*|%PR{mubS*B;!ih%+P-D+A)f`KMhTXw{YU zWjeqFe%cp{bJx)RDGuA&I4w<{&LB2Q3DI90gkK_wc=2Q=L>k{tuYeJcV^^AujpfZJ zYq?2kj-_|J?wO98Luc0)BGj9ng&mv`Ev zhinUF>oy8@bS~g)e$cE*+|-k#u`?C1^FH>#UP$~2$Da1|?ASx_OjATeb4ZpNEYXr) zmeF?b^*C&!;=iFDyOzp2wxACPjPsxR7NHjb>PC)yEkXlg08WkTz|Z`r@xNw}ktrnH zMp8vVg1j(Jekf;*95ahFiDd+z@DS(V@Fm2{txKeuAc%223D&PZ3yx;x-}nn^m6a2Z z52Gk{%O;o^qeRAf5HVen+!Y z?VmAZdli#niGz2ioeLD~96xiM3MnIi%Yd=Z=#!U_kA|4>z;Gc{DcrB7Pu6DSnLYdG+M>E+WFXGE?Mk?Eu^*Zye00*lVl;3rAoeAPA=p5>URr;KL$j^w-9Pe;@MD0mj%>^aG;eNQmA;Ve zltPZ@=6qzk+&ya7U$uy>pi2T3GFIzBIZJj3ljs|VvtGad&sQdk_W}K=jS2t^!f`QQ zMF$wrqvbuBw>iZEin6(HTR)yfw1N%vVYsZ!VMcn#o6PONfgkz32*#l674NrzGgqjwb5vE6z(QGVaI za(q;Sf}*si_e}iPU(KFCcnJyHmOmX9RMARMQuI_;VTW^pUBnawG*vry*~SCj289M` zbB6Uo)xF6TixXiMXG~M}OBATQMQBXIi6+XniDJExO(7$AD33h1eFTgqKCXQf5!-Yr z_JTJ24L1?30cU5R1uc5gftVOGUMls2=vMjUUAIJzj8>EDYbxS2=D!4W0|&1ZF2f;D zkeHy0c)7bB5^_+(miH!Qtl+Y!v979TT?swB96@3?A1R*zk0bJon0o#LY9u?>iJkGv|y_-LK%~ zS6M+xygc`HaG7(jlt#j|`DX>g^-nK_Z6DJu1L^bEEEgyJfj^b^`95>XQv_{=LT^5g zG;NU{rxu?$ZWli_F$wNIRKhi`YRerAP zexql~geLG^sP8jo=PR9zSIb*f_LJWG5G{mr+J<-dou^!eloaVDZRZC#wv+19M0;YA6yU#t7sg zU(T0V`{M?TifV&+dNT}&u<2U4hCFRJh83#Xoq{}B0Kj zmdtXvb7=T@ukmU6th=NUr7ET`TlC_}me_-4?wix7ux{yk!u4<_Gp%6`<<$lyp6!B# zc&5tx>tu-i1a%p_YeH}OPAp{_-!`gypCTg1PA;|Uh*FPJ6X`0J(mRwL746J7Z3zwD zV=`A?++{brIfYG*9_BNAC1&ySHKQE$ zbUScz-TE&LC%~)%DaqRBWf~V>p!N=`&pogCW_KbJ zl=g`>YMaj=lh_+Xs$#<8tm8WaaK(U>G^Fm_8K8;|D?vtiA*oe$w9~onsUFt9-Zhik zm4VgZW6soCxs=C_hKnN+=ytXnh^w``N}oa;xsmH^Jt$@=elvw^#{-}Rs9 zm{FYKlybTu85vLL6e29*EC~2y>n$NINI~Uy5QI!Y5ehNYaCnfbuE$^F0UE2;-@ZFWage{-s?Il@U=J!`*WwpNIOMNaWW`D zyGo`=DFwVUSXpPgf12hZn&+LNu8#th>Z*QLm>Y|7XZ|XOFg_pE<3Z4aMw`7S-@H3< zg+2c?N6fJy1$1t=3^3B49DGQt*&iF5q1P|v6uLh2QQweK=4U{BEPt*@t+2U5_HuCF z^>nj@SEPiU5tw0!meQEHz?S?H4K0d42Kf+D;v$?FK@e1sWolsS)xHsWf)FkGIpYQ5 zj5I*B-H$DAaD8}~n;X9C87yYJW2F}>YLU9Ggyv12m6h;aM|e&vanL#P`ZbdB{`2m; z8S3;)oIbWVR^$eh@sPnkDg?hQL{XVxIBQl{8ABg77`0v1YX?GDkXb9`z>Zn(f4Q|WHsBak68n9u>wTD>5-=GmY?1MzmAfE-Njf_1N z9T|US4A={nankW(04&Ed5&lGOsYFC(=xp_epCCB=-Qc?Fwzl?9fSB~s#JJ2HKU9-w z(7v1KFEUa=UM|gw=PT(l*_k|GG)wxw+T57G4mjlR4mdZV!4uX|-SEAcHlqC|hS<7n zYAQSz_P@a4s*E}$;}CKSOh65)izG)W9Em;L6Q)m?zhX)4q2Dc7#qW+bcB=LbGUOR6 zrK~^_U`mawnayGI%CD%&&|Za%;5)zA`Q0nZwds7dK?GfLp7 z=JF4caye|8CQ&B9k;YnyRS@YKNG7h(Z?OpWE~xlsUAF&#JAJC5R3b0T%k|Q`Jm}{^ zZyW5>nN${C9eCIQrXZh`7%h7E4~=x$lGXs$6m2mSz`n)wiZiPeGrmgxmf+%`qA6`= zt10mjdg(&+__4l9x{fdXHCM%C9f>w^&eTDQ z`(mLg6ux2En3Lk7se{W4V#pDww94^}0X>KlqqWQGi@Q=m*Cq0(-f{yxEaQ1b69)l? ze)TAdl1A6)2}bo3gW3PFv(@8EfLhJ%AiTidEA@g#fF6jC$M}DGyKh^ZTB`wiW;Qsg zA(cMwEzuust*fex<4c?{God(LOy!AmxNVSkGV$r7+3%5?pYi~G>KBtf!{UJqQ2put z?V3}h3BIlO51%z7za$P82#tJTV?Fe#*KirA_g$g`Mvo%_g15|kZk?G#f}TEdDPEbs z{H^Lar_?JUM-V`QR&MOk7)p!x>aAHc%lXJ)!rbPe>3dw@#ao>V$GKdh%iDbyom)Xe zHxqThmntlV)m<4Y3=BAo0%^Bqq26+UQa}a5*G1$qgD*q96)H7&DvRLpGrq_M_^L67 zy0$W-=G2V{YEZk2y7o;`n9V*1(ZY%}O*b3-#%>Uh^!2V>C%zhwyY?J6ZI>T1JN5})f;#j>hL?EhSQtw zd9eos*mkqG37qLY^1qv3H0J{MWZVMzoa|xQo=qFt$1~1k=VG2y>th~d2%Zj?7$cR| z&;}L`a+*@E`*UtiBPb3#71G<3@qk6+MatU0`K@c^t)ViJ4}PU<{xH^85O2xa^K#eD zbc&jlV*BAZg*7_ZkYHJej&ur-?eFWjkcH=))ON*)m-S~pPU!nlYq`dOyKsKO)`f70 zJ@AP5wUe<0>dLw~T2rItRr0!IkUVgUo)Ke$q%lj--C8`){{g++G4->~+_~Y2d+8-r zjFn{|V(mZ0*YS$%&Glp+a6s($MsPPsiR=Z4?HX45~0N z!a$$zsbD(9*_-+rlc(NDPYi1I50CcajLEmU&C{Ffm_!+-&NMEZF|6Q}J{=CzBZ4id;c;Z%!mGb6XIwyKb)b3{g^tBNLiA6A{IPp1`SHn?hX-4nv{%b@er%pDsdMWV zZ6eJkPmIwf^oS!^skWwlVkW+C_Vq2e0(~UBY>J2PODzG{7`^u`pXH;j?g8twQ^h3K zP<%vT&~BikpSkIe1#%l0vX_tQ-`djH87O-~=!9_l+R8 zpW|BYMFsyUzsG*tm75lNl;dY<<7kF;}CyW}Mb+9ShK za>p*?Ofr@XXs4bRvMQLMWv?n-o_v9UO-BAiwl&1?5=eCKJOkh-E$=uc=MKg)}k(oAFxSP>6d9jCu zb2A&g!WtFd>LubL4i7(8mJuX-)Tf~~SuRrkj?hjL=&Wy#s7HSGql1c!JRF=Y_}JSQ zJRn`iUZ!toCggd#Z*LG5kvBwQ* zb@1E}4<@ZUT^~%BJ$-imlds&PwGHtm6##khpfD>@XyzxC|uozMILUCfRy+Q=f<;^!ho!6 zJx?ZCPxG;Jvv1wE*b5viZVIqC{XRO<8?h|hzfVo4NnAju0oG$hEI#zii@}G2Ud5)l zkG+-`bQDx8jlDi~^yf21fn`j$p3Npno3C!o zTFw`xTB|QuORHmpB^VcvaStPcU#o{z<`Cn1ysTy))Wn+pdIeZES|rBLI@|9@rzHAx za6e#Hv3>Usw#F#t^%&m|c)iezUkgW$Y{|lhKhI9dk{HQvhkXsdrQ=W;@E*B!=3txc zOq5-I`1mZ>%Xqd$`oqOGtHK3YAycm{0<`H!B(&iO`+V#}q!7LbJ3q`%Y|$UdHRduf zR|Pqqjj_$!e`NQ>UPh@H*@_hcI)GnWTye;|qfg1XR4p`7>EaP&s)b|r==vma;#PQg zYR&h>%esCXS8q)M%O)yJG;ONNEtqD1ZX7rhh2UeaE&kp9YGG4dPG-Xte5NO-ftG_S zF-~e4-kjMiQ1)atd#3c(_KMhv;?k@VvdU#GU%|%vF!GQWxMmcukLex`tN+;uRqnDo zU1IntJF*aZi<>)^cAFgZ-Vmu1;9TSM*&kHT%n67Xc*dZIok_{#-;w29oYUB?0(5TW zOQer|63Ce{GfS)lg9&JRU4f~8&hS~fuMcF^j=XjZ^NUXbN6=Dahso>M6Z)AeG8suX zPcd35(N|MheETwNMKXUJnpS1tU+A2s-o?g^$@uElc0^Bc#;`k!BS+Wq#BXg>#9k7g z>caKmsou@m51vEYyEG%;lv8#r%Qit@gs=rfZnTv;F1gOk&_r_n_R|z3c(p zkVajG?3O8Uzc5~SkY_jjGm@hUgS`H9>x{QHASAz0Cd<2W$w;Mjq@%W}3%TaRfKjrM zzcaKWr78L-xiM1r#b(~Q3a#4(inOx{8wIF6<`c(IMU|tFo}m8w&f-cr$%QLpb%m%x z|JA*9(qey-Q}gw@rv0)wm9PN#CYR0VeEn$YBellkHi9S;{zjo_;mPLpA_7@$O}E&M}tGi+ZE^gU2(@qwf^sin1GW+>vbo?NV+1ot$xZ!bfd%uAOj0jCK9>O7Xbz1$T z*~Rv_U^N@5XW@57zdLJD9?Wme2bz)VimfVTJVAufBF};{FtD)NZ`0#d?rdUO$vmfH zTa^&>_?OGtk6JbdKG{D#fSSHB zyJocHZh&H%!6f%@UKXd(g$RLy3R_`_sC^v(3%kUD9BMdbS;z?HpnsX~uacNw_@O}B zi7eeZXTj)>NL|Ka`?mFi=k1TUwa@aE&b;#vl@}D_`Rfe!g0kN=C%@L-gtPC0xDzUc zs@RN+k--WM3O#heYjpGmn`%0ZJF`P8_3yg6FpWN+WH3-Ktu;L--qw1s<3^*;w7z}M zY*p~5)qKUiHJOJI8Ig`4Jjb8CzDq=!h_W!OeqI*?Jp#8y=KvQ$sm0^K@=Yc*Mf1gL zi)UWma~(WD<)|BRMV9XA&A`mN$r?{uB$H!u_tA7-V2|wPqd4)ZO-%BOzLS4)9F}=pQ=~*>gZz zW?=zqG!+N97+udGqT}S@Cbx_W0fltiQCY9fV!d>k@BV0|K3*|XK$}sOo9g7z&CRi| z_f0F|Bt%Jud~G{>#pJ^W1G~~oEDiaqA*PFA0V-XtpC7hGylH0dGT6Q$^2Kl^EVo{b zV}**>vQDBrog408oWN7$7OJY7VbrQOBem4(eT^OU48W|0#f+e#NVlL*ZZ18hod-Wn zQk@T~48?rqPDv3V$+z@*O^8V;Hqkfz2~>dSh@Ict^DY0umLbZj@2Y)33ieau;_6~F zH1l=X?2evTdrchx1R83^i78~2wjcV^rfiCZYC=R%Y0=htSoLK0U1sINyDTY{SH_ z-I#%Yes84cY`k^k2`@diu|}OmGpXo4JQO@QHVJdIq_JYt=l{e+9MwTn-RZQ1BVLFsBsV{3#Fz$aP#pkI_j z&V~)8AAc&9RbUfW(+DX`B^lA8XNUgi^1E_2Twd%>@|WcjV9%W{J{bNi(+3toQM#4a zB9A8W+79+|e7A{TVWZLXozA=$mK_I+gX$J+Xuq;;#7W_^2@!bq)K)sQj&V&1`{}>u zCq+tp2}|!%uPZw2@7Io#+P{iVkUl1_b}r?TRX@I_k0ia!c&f}POw=}{)Jgq%GBxCI zpRZNzrSyR#$IDFZ68^(cxOkGlA1(_7d8R_%RsolO zm#xaGIr-~{^PCQ<2|ij2%EwWNbMM-RR7T7}fzdau(5~Ndy{K;)SNbCP=vbQ%1s0pz z<7$+>p;Nr z+x%YWNatBT=^CdplUSP7-}Ji{HCusYSS2b)ApBE#=Z++%kSt4~Oo3Az^ia9?p67#1 zt=BG=%O?@Ge&FzozY|FUcq7PdoVks^ zCVXVFQ5cDeOzhhwo2e<352|I<)k3M z4FFKD39}+P>eDVPtxm~4sj+m4d;iwuc)TXqEhw>norB=P+!u`Q!Xt`SW zFwtdZ8Hc>a8`ft2Wy3((7>AH64L9OwUz9;n8+2n?U-3CeK4B_X{1SLX1;XmTb%Qbi z7$#(dfni+qc7j@7j=J4}ub6~~mtaQo;TR3>BPq{tP7~HS&38TyZZprSY&VzsA+N3L zlAlvq)NTsv5it^jF0wT1X7!XGn{yXk$FlhrLASH$ZE7B(Xf)jmHQr@is}K7N0|;RN zuAc&4ZV+!9{$D=4)i1BwPdhq7MIQe*DRzs6b^RwP4oyK1`cFnJ6G~`Z6amigb%YpI z8NZ^iuL74L(th-E(B+}(IEJw~5NJDmsT1br@x+s~8YT8ZM?`ZhMhZ{V^9yNm8n^M+ z(|DG&2ZyZMo=WLh>6kNt;9cPFsUh6&i|m+B=K>3&sjOBccmvV*@@_Z3je%ZM%uRJc&nXd)m(xe_QvBJ06&oeoZP(-!gV(-rd^6rzH>X74kORAd1^G$iWeC{@!`K2lAGuZTg z92GlWLZwgPC;zs!)jAHer)>t}FIMHAFk^NvoWn;U%94fQBh)LfWx^xgq|nCtGab< zxt3>9vyJgv6&Yr})O#nl0YxRAaolA459! zckb>((q@dG1l~YDiD~BH>8rPak#?=bY*f@>f8A+d6rsY;G8ebEF2bPCqe#EzSGN!-&Ah4yFmVhoP_^rqnG7dsH1JCOp(~8I1=yxVJ2; z_qFP5^@@3DaVAYBpRnE*tCm1Pbh7S6%XNLNStLsAO$HcvHh%Y5Yo}?`RHGm)$g4Fn zos8F0sGLWxn`Da!Tei)0r#51nPaB#}BFTCS$(M=-19P`J>#cddn0`jg41)Z0)4Ju6 zxMW_Io@gb%BIl@?{7rhtojeuk{D;+ek-rJg11GFhukUQ7So&Mz~VYkk(!<__b8}a<-LR#lssAWnFld|oOxa&|J*|QQt%=kr% zfGMlclRmN?8R-Jf2X=Lu7FV8^ZCAus%UdjLS<=x}LaD_< z847Ru4rk50-c{Pr*g7}OK{)DA8859rp~D%IZJ+;KB;8PGD`KH6*IrV^XJlNk7ffa@ z7bZO^e4Z(6f#?g31$}?{=0Hjo>?eOs=R>mX@dd|9EgAQKH8hx_{=l$widK_F=hazi zy~FFijJ-}({xIWgoz5?YhkWOHp5eau@05kDI6wgjEf@YX2hO~b?&c`@?I?jI&-j5n z*<7Tws_Re(yalDwR3+^DI=VcW16=UmL^G``_GW8;|F1C=sLwp=6MzNCGU91^a^!C& znwloWNlBDZ+n0$SCiaOjXpV!d!pW$AEm=Cc7@>l1^|$>r;?ns^oY(s3dsI3ILc`NR zh#Li8My~p!Xv>Xb;LK+oW-zdqz1q2LS!4CMIGZ9s;+9WfxF*;%>5zERB4OxRP<~Bw z>!OWhWTn+{By){ADwYMyaQwbcyo(086X+p#Ay8pE=LJdCe5u?{D!~6?>np>e3fpc+ zkQV8X5b2bVQd&y7Lt45)y1PX{q@|>#ySp2tyStmAIeP}*@BPlX&M#%IJ$s)0#2ss` z``)=1bmh4~Cc1?LdV^dWtF`FdSiufWdop6+(AjU^7lwa3^2)^IA~9w2`Dws6nHA-r zr?7Ju+pdo?7CBuluCjU3=Q9^U1p0l%5I2RoqS9ne94TynUsw6q)XEyLHg~iJiw$4g zsES8hd&@kmB^JG8N1gqp55MD1YV%K~Ezc1wI=ecW)$;6TAa9{2sI#O&by>XIcw6@T zz>X{U=hDc9=D6=Be|hStTWI*!41EkA<1;?1-%E~jIF<$%uFRu+Jq)@0azwXi^R=gz z-}b@xbXgJeej+=_Aa8>W^7+O#OY4$G)#8UJms-!u^0KST1XUgWvW>g(H+&7AHV2Z9 zrQ9N{d_p_zm@8}Wu32VLqwL2Rm-K3|VsdAkjQGk@9AmRmq%m2i-!9>z;y*9T`?8g1 z#7FUj;!@c?2OS$#+IcK;qhVz&TukUPTBvVak0|)YC9}KsF=#cEmUNdLDmS-Qm|DEu zJ2`&YK`>PoHa~TCYn*Y&Z|xLT5Lp%9d}l!T>gHX2YV!$0V&+abSa{^%LtI?>xhW^W9dLt@5w~FvOoj;L-4IEwd4AYK=-?IozPfFc& zWTi)#a-Ff32unp@SYInOhhN`cy}Ou~f|Wz|LiKN^l2^XOaoZ7Uc-}@gqx!0Y_^f36 z&~fEFxo@5Xg?MggXN9Kf_L`7a0ku4HGrNz<^qjU;B~Cu6X(?kgMdU2%0}SZOq$Wlq ziM-DUxB4t~3+sWbQz!kE`;ReE0JlA6J^cI41qX)$E_m)Nxx2PLz<$%5b_DeZqjBMc zqn3^ZgeTnS(q6Gio!k1EOV^EBesN|rj>>N3Vs22Pvb3&Qs|J$m?&1)T#|7nOY7Z>Y z941P3YV|wGj&5Ug!+A=sT_q4xYKzc&ynOb?tTJL5@AX-B*p;aIeLXYbY}k3By-u4- zT(YEcy`4wZ*s8=Bw?>uo^C9hpTwWZfnqx`h=)o^A%l*gg}OVvRyO1R&?q zh*ew;g?=lE@3vm(lvs~K*ItI@9Bz->QB}%{dBnHd+7T@;%-BXH^DPa)krMBz}TAdXVT7B`ku2} z4R*tp;;HR+-!s9!$vnT4%5_a=J#3NW6w9y6^xMzr-iX@gR=8vxGU$tjnV%Cq2&~dU zgbVc<+rz;YU)^6}|_&gzjb!TNjioD#4nhTnk=q4K9oE@G_>TbI8vcMoQcJoqosLL6y5i8qEf8&f9Mr~`5~&Sh)N3}aTF|6IUF6tf4> zQBKF*?da${e-vD-s8q}sUPjug{kE=ng=4al2=Ao0e#W_g z^n!hcH9-XRO#XC!q;uA3>mA`!0-*@Ju_h!|<-6_?Zr9v`Pqmx^%!U%plr{bvXP4Ve zDpeyTRsOG97d7)46VWxw?GH{IR%#Ddi~)K6qAICyznVwR7K_mbs2q>c6vv*0eL_0C zCUkiAP36$a7V$Iqu6E&daq|&|y$K8=yU^X1(>s)fXmu|4&xrYrG7s9UM0*Xco(BWM zV^MtkYaJkPgaGfOq-_KP26*k=Mf4~F@?YW;0z@b2bO1(2Kl9S4k!gK!8d5s+VkS_F z%uuIi@W|-u8pUVZxKqM|JDb;-wYbK$J4|y%HgZm0~R*fvyDd5T41a?l>j)UcD%~-#PujB!glnZ=0mvLh#%)593Vy|+n zS5jK~drj-#pMM(YYt~M-I*+o58^wXcPx^a8EC`{8hCx$hScKW)8e<&px+(=nq%9!j z-=)V33sGGqmIX)1pI&6@qV)kNvH*WtBwSj$Wb$2q|0$?{!(pnt|L9?|i?K+@qch!} z_!&I@MD}{lBc0{F>BRIP?2ao7AIqD`6-QG4?`dS_fu8-c9fOmBDX^(X)zIj!9zLBsq?tu*Y@@L=!eLqzMF;~ICuFkL3YQmTzG*Hj) z$cd;M+${6IUXcU@<8lcLe4L9(oz}dG?b_Y5DgaovacH8+Z%ujo`_sLhjDpt}Y`cT1 zTT?;h9|e&ciDdZ!arkOcfu|h>UF&bpuK1?F)jK}Iw0nHI zvgFHjRJAFVy~#(zTYZOrsGR#|2W688ZD})pD&?Xl?ss)fk-Mzmg)tze5f?9+G@tJ`&c9a! z2v(t4UN`@+FI5-f6L?jn&0O(LEkJ;f9x9om^XIe0o3luqtv&_YK_FP@3!9^BWce&e z@wli9Ye6_}s$i0masD%seq@Wcvw5P1I3zblbG~l@(P4VsQuthD$aBuYfa`u-o^Y7*qn9rMng5W%I<_xy@zNRb_lPWXA;OyLc~#C2b8Gkq;$ zn!(s$mBdXocwl6g3mN$Bc!ZHr2+O#05p%-39|%E1`x?Dft~T!|qXH|+jv1{a^;N4J zO$;u+sMuw8@grtzszpvq8rxYWS)2t*T98Y6MGoCf6FY}^We&61oEmMK3-2knea;Sx zUjDL3_wY4xbn@@2jY#uwoZ#7*3XX>Y<}q*91%uE4gT?I}ISKIVAyEh*kVo27l=($_ zdqSnW4baPnDKH{i9qYraLi~hvFkkGb*XyA0Bl(W6HpQdL+tv9y7_WFgaW3eerO3`K z9tIlCR{!j|fqlqc!2_Q}wg**4rR4Fvo*f&byevxcJHT7&4d_|K7tEA8JUl30NZYCG zCm?>dsJI$#VE8qm)6#GFbyl=yDS-me<^cpc7h})0>H-gkH0L?crtT--z2lW+gQ9bI zlPW*KGIMuglSp9&Df2c#qwK-*XRnQQyi~x$*-KduPWOa&9v!lhA-@Q=(C)ALSfl>~ z_}Tvt;73K$;G%>!696=aQm@w(h6Xchdu_Rb9prdM|Vs!hozy zk;3Z+1QIyHDdsmT8E6QnNx3&{u+x=~ym_@rzge3RT6r{Nh-Jb*EAtA&BLxOHWmo`@ zM{uU0C-Ih;k0EfPt9)v_uV3u8g(>(St-aQ{C;a4v%h}A!Z({JoFT1`dB1TeVWv|Fu zGGYovs3@+ggr$P9<20uul>&d%%FS5K>E)_$9;VT%1VnH*nq3 z6|wM>RF&p06|Neq>{Xy-6rvn~Lh?fwHg#(Kxl+Zf1^?`+`x=M5R?GTw^sZxmKu^js zjVDnKCv95BajlS2_u3rfJTtOX%f*}h@PbCu&i4>?fz@Z@BR2a(c?l7maO0_F>Tl_{ z;MDh-e3-|kSq!&6%ql&5^uCXJ9We}ucx$l5MTCOUPwexwx0hv-)w-U&o}}p7MU-Hc zU9&Bc2YDk>THfzf_vz zrAN1WCYTofiKDIr^Q^*IWqr<1XFn9{nU`sViB+2lQz;vCaGX&&rlMhZs8;Q_wx}1esV~;6^ZJ_fjBlQM9}AJAwDo>A zed|>WiHUB*g1=9|F~5OJ(pE%1jt?G7j!bn{Od5|`GJ`NJylD3?o{@ooO~eFy;|)4j zT;5@CtZr1a#j=)&ay=dUii@?tR*O;H{p^M|o-f?Q;2B7m9NbXtlQVU`c*%W{GnJWA z6!=ReE8?x#$lae8!Wckah;+}CHMRKU+bnE{-3XmsrH?F|6}?<#c6Xkjl^s8nm!e<2 zml2ckP$2$pP!ORL@IN-mXq}893PGa(NmHj2Be&!QmYaUKkGPX`zcvem_)9k6o^yle zzXZKgL*BzVMugZV6h1NiJrQ`%(H)J4ytt@8?f;I4plcLA>nJ3M2?CTH6jMz&BpP4c zW24tFQRuKOb(bQTMZmqlU3u^W=zkCYw75KbxG#T^c^b3vm$@-=ypx^Bcyp=i*`Gjq ztED^`^ohK41%%H2K(m_qld6%QI`;2l_!QAecZDlTL3$D`JM0UPadR0R`yjBnH*{yFAo=gS z*IoYVq>WwG`7#u0WC@(&gwupF;`90#WEq(LRtIG`>4-I%Ag}6`jB`@I)E9vP2^TL) z73X5YQ-p0M6!^-8ccY|Db-esWzZKDh-F=sWUQh82vRJReuIbe=M>`k8JdqLS@f2u& z9jyJ?N#oc)c?m*Cal9ZaH2ZS?t>SkiTw^Pk6`PCZHH3DMA{5*IN#kI$uBe7gKsXVR z6Z&ttGv(N(x=VxTP_G4dqF_po<_CTe^1?VWDAY-;98Y3qnS=aY{7>DAEM@!F{m&r2S5E_F7ms>PT9cGbzEgg3PJYI?v{z7AoI(B>A*JTL%N+ z8j67P@qz(|g1yXf4q=_?wfEsMFP5^Nmt(19x~i-&X}mbYUONrbo3A=zrQ0dD9O;p8 zBQ)`}X&?~jrnsK(d*cqu4g!H1x{61V0v+UYc%Fc416X{`y1n+Ad@rCZ3T}l`idGo_ zJvc*^e8`O#CO-5dhlhD;F-g->rYf32z-r`c+O&>@91#55m3yqOFWG5Z^sCq-$nrSs zr7KJ}ztfPGJroE!|J9h@6p8^_2a6p*+qT!Bs}8V|PF3ewy%MTKZ;<2nvMug|6NRMR^W)J9 z<5lHXUZPjmMxPeog_enOHp#3JCR8sKC$(q6P+Q)UYb-HULf?ekSYJTc zIP2q1Y~D8fDQ6ZoW!6tNA`hnQAQ*h-`J>bpyFV`0x7p)6!Bk4zfz*w0k0e9gnd@lZ zdawT7c%I3B8^_Xa{U&)47qFfr;An*>d1XU7tPCyXcIUYq2sYyO9?SV9`;ny=txE)6 zWo&rNYg4=}%e9MhmFM1kf`Fm!=FJ*^!hhq8E8HY#hd*R}p6_mC=EZLLz3%yF&l>a# zec8B*Jz;o_?fmOVTX>;f%b%Kis=T;W*nz_?BUtYT0df>FT{d?7sS%{%XRcYaSq+=f zWV#YGx~??dt&GP+W_sR77Ut_7Am?_23{fVRw)TirL?u;BOmKCHT93pc^>WBO`V)Thj9l!xFaR#d~2f{v& zUQC*O6cp@X8P@@D84#%SH>cg7>!D7^>u!33)-`nrc12`Zv>!i5L_i}4FZZ;w@|S6+ zblyNO{i4b=dNb6?;U33RlY_j8XFT|j^E!^z{9ByxBV3mM>-@Nz>ych=rLWDi< z_5B)L7Q!t=R`=S#$A=+%i9gLfR9zEL_e;DTQ`_G!uyfoU69Xtru+kB?$Ih>Qum@>ZotiKCkxia!3&Ko)a zQvjhC5*!GU=bKJUs7Zz9K;$RB?&%O;FPQ?7rtJ4?2&0JNL=9GOL}{8sB`Yr0XS9YJ zc<*1&|79OZk6aBf^jY(ita9m&f9^En{v-cSHoZ;GNF#OWb9IGFN+S`_u`lp0B+$s= z>L^k!j!HVb{*M1avapM>q|Psf&R-C-^atQGXHW)Ix<#ngp@=TuoV$ctt#LSxVVITs z0x=WAFwtCm@|sy~*dUAP9?48u?VES1^NlI5%jzU?CEpOo(0asz(qBT>dSvKY=7i(s z#~&yiMp0KF$tpe-X5sLvbLV!W*V3Wfb}*#gqsl|EiG;OqC`8>6N+o zqql7T^U}m@*ov;4=SGH~^GA)5-s~Y2vM51NV{`Z)CD4Gb!4)57Td~6r--tQZb1L2p$SY zjbFUk1w14OJEigt#09U6ZHtM$riD4&zr>m#`tbXAcVv>_n=T#B(bw` z9XL8;k7~MsR9_<Z#qJpnkvb>H^N0Z*}pN=d*@k zFLmAFU?&U|sH<;KN4hOk>I_b+-%8S+xy&C3Hbh5cD5qvWrFw8-PpMw!&rVFX_1(I+ z>p396Mi&UBGJw4CS$+}x!W%_Oj~Ud8TkVho1d`QxMkVH0L!6d+O!kygyp6dF>PO`V zGPGv&I}E0YA0*>WdlxTZTvh1Q7<~TtZPI(V0_z5G%)+(K zD-TKkLrOs-hEajEEVaam;sPU;6z;muw}+ZWSYbxm|!lUCg3!n-wq8H)XML0fnMNqmju-O|Sd9Y)P7B#?`ue$G zuO5oMrXYe*E|K{27O+uIl}y(cvE zz332YbF3y-VKBO_1#2^yavckF1u+={s>I?RXEk z3lO?;Af1-aA6@x67|^{xBr>Z!gGG3NUf{9f(7`v z>dY{U9vK}3+1KbsQ;Z04LuL+rRSdkDlVMpFzt+alRBw(!Fi_*&R-miEoLdw&+-Ju0 z$aSTMvX;D_`Bs92Sl~_k8v?-W3bt1&3fB)8B6InDG^RGblZ`Io6nInf6AlEDPt(Oe zQ^0X23^kGFiB#J$gMIE#5BW_xev-!v>QCb?I;LJ;2nW++u{F1%Wg8ys`zjoVdmC?O zxrpnH=&#OaOZ4}BsXk+FZ-KQIS?$4L+;quUsVU&I+gQ1+w&FnP_pSw73k&^s{R%hn z&tTeO0QZ0xQ$Dxj=l@EH`vA#kt@@KaoG`!Tqca%KVt!xaK{K)?>t-j1KD?owp~=~6 z3Xk9Lo#lf?oDuE4`)WyF(9XUKS=5CeZ>kQGk(VT`#*Pp?;tPn^K};wuzRzsb4`j{R zd-t|h2yCq*?>09}Xsy{Vn#*6k)U&`_S~Zx!c}HzAAbZGMU5Q1hI?uAjL%BWST7+SA z@EMHNPM7YR;uKf-k_^LJ;cGpB!U$3&Y?B?h2VoAQ6*Jg&VO5S03o032u9sSutp#dl z5;-P@CWu+O5=gQssdR~u_BU98*XP}0T#_%VMn4g`3fY}Z@W?GQA%Q??Y(FQZjd3R@ zG_vEYe~(zu_jLslhTpRvf%|KpE8nfs^WMj(IoF4Ty&oB~y5uX6zY%NiD0R|)MDh9K zJr@A1i9}##<<@rD0U4!+6L)fZrFnsuYb286>xuS3&$*x3i}BmwWwjoM^09 z*gt-pkH_jX`{I^5>J0bB(2aT_%$dfpfys0N_s3PF6;P0I~24lpZ|R zdikXp_mj+JPD7Yi_K%|6%%zJd8kwr&ZiC`IPZDliT90VmGiW|@-{r-!Dgm4d|M*|G zRv}nT`u-fT4Igo~u*ksYoYlk@Zq;7OB~3P`-*`QzEkivs&wIT;Lf1E#k>2cq!=uTk z?{@LA{^Hf`RRFo?@gpO#mqO(Ukmw`8zlENny7`_Z#`5#Z$c?i7RPF$+>sB-?jj!9e zZrUoe9>UCGD?5T95Wbvde}qQ1n1&*Q4*v>}ZZV5NVgeBCw~f)_b^XMb_Y;q}bXt`7 znb2(j|8vr>xD4ftzoxJT9IS%pzH%5hG26*xef;`2{bQ)B?%>6SSR-~)q|u4g)ZzKi z4q;n~r_k&QSMlk6w!aSwWPjp|4Sbk)V94P%*q-0w$DJaMz~nFKh}Y7-mRV#dnkbOL zp3^X>x2;#LD@b&@z;A=s*4KU~!P5^;#Dr&rJlPje>4TTMS3&9n*r|KFOQYt5JXB|S;_Gg%-g=|zu3k8I6}GI=;=e|XM@SC1f48x{-^g@{?DFf zQv%MT?_vet^Mixg7)zZYZ8OWmL1h_**H+h18T*8$^N(auX>GwoiMU}_@A~IdBQn>> zcLdziw*hfFx2sK$l(3bLMurCubI4qtb`AlNv(Ppy~G7?mlNTt%gzEvFU3TLNk`o zk}pE))XLwvYHLEmhCB}v4<0{;MGF?b)n`|DuGsXWOp1GV4h1L#$)3GLl1SA@WYX+~ z0eL^m^vFzYiBvTpd>h@$=vf+U;gl+!Qz<^*9ztLY?atlb3+P83?NUOwADijR0|bsTi})ZWYh4hMQOU%>X2n)MK2 zE>KyQhW)`eRb?{3d8W(Q#)36xOc?Ag)GN%bU667eIWodt(EoeYwUNK0BZXRB7JPEQ zSj)H<#^$TJm2*buj!V1coR{X7fSH_ewcR}GT(!hq&lG{kx1m{tnepgZyPx2nf`*_+ za07Tf|GDm5iK#bqlsqoXFS2%-Zjc(@OI5XkflBr|Jxijoff4MfzkJ!GcelVx{G`VE zlod5JxF=`Cmr8Q`dRiRRa)vS4?K@panp=${ZDq3a_k%HT)%!ki%B`9{#AX^lpQ=vb zstqpHLc#J%JJ$h_N{Cng+TJMmh{<@_{DK60-!8j+@&a7<_vqfNEh{d9#VetDmzzJ6 zs7mLC<3KU_04M*2YvaR5F6j&t=`r73U4o*1uH@RNdcjUhM78-3JD#)7wVAegk+N>@ z#3y=|ex85-^2jUPY++SMCXo@F9Is&0(tZG#mtctv57&m{Nb2h%?TfA1kcX4YzZQ;b z<<;{@{+>tWbVf!}77V?`7HJ(9qD4A4^=NOasBL$s<@Im+0(bo)9z9+xO)NNClF9pV zMb4p@_1GF675|YNre7ZW>41E%O2j{1|LOVdQB$si-Ncx*lpSj0B7zU84h>Lf;jv{j zIseC=7?iG7>&8a0m%?8?w{`*M_1#g%cdNG)4SOu8pC>@Zm8dS1ET!19^5QRh-$WMb*Fy0gvf-T)1hIXrm6Gyc744ZvH8^icd!2Mn$osTi#BfNhcCU#ADdQpaV14B3piAtKPyimX-GZGjF)q0# ztJEFucll?g_DIxfgVYQvf4B}5ySdMn_>OwO`VP?JLn=cqv@z-r^vM6%{bU$5j64~Eq@Y*Mj3 zKT?-c_d#jikl2_ada1Xm=_r%MeA`D#_r=v5pMeI)y?zHxXVX-7o1adhl z6ELf$j?X+v1l*85%G6q3*%O`i8T>nlZz5Zn9-f)96W$MAtw!-NJwif_%;b1m`~R@T zIPW)$>$viNXl{~McuQ|S>0JAWm!qm%Y?>)=AIq4GSQz$}PIEnp%TM2l59Z{R6)T~{ zdsOp#ebaa+ajCrfr_%ghl6~Oiyc^Be^@4gXW3|@Ok>b6CFifZqFyP+W>;EMXH;>`| zQA$D*Qg&iUE)iV7pO0U3zV!Ufz_C4$&{Al=Zf&Z<>ZJ~SJu>u`3!IWv{J(%isn6Xa z>8#zcGGc`#KWnY}CL^Z(H-+dom6d*Qw@@EJ(ZL!#+WkOq@ZzC!qGpWgX!ujTE#^k@ zTMyHBcnZx61?02oDSTObJiV7+H>b}&@Y5xp@XIE9CCpr@_mMG7qt6Uo-;`DTRd9N) zik?`;aIgTgb|q>w+-#d31_%2Znil#3g{)@em3P$#G~BndEFlWWJt~}&f@5Qo`#(Fm zm!vBf?pNBNH6VCV^^Dwcd5&AN9Uw24{PVj|Yz{YvoJ*zol{Tj21clb83Xu^*Ap-se z9|xDJke-X)`(GOq8VnS3u!@u9tX@~yc`FpD$~|No(ML(e)_gOZ$`0QrZiylbt>Obr z4X9!oqmJHRDtQf?c!Z96jWLTKcwwMZLJzP16^i)&p3{&Qsttm6u(1x7Q(PSXjVCv+ zSf==05Rak)T_=Wzy6G6~Mnk?jW&7aZUn!TCrW+-@EhmBaG?w}eA z8Byx5$eFb=r~*nuKF3Z7unQ*-d`n?Wkjj>V%nhc~bcHOT5j928uIuM-+)o0ntrYR% zK@)rQ9Xc&41c#Iqul1ft_3XlpS_D}^TwT(oNW4@;US*s9AXDA$Zz-~`;5&joL()$H zih!kGJ$EK8U^v7XU}^Xi;LGvQ$NlcYUYGT%mpbQOZNATBNS z^<3>^u>be)yU81>Q3HDuYxx^A7<5mljYSIFGs|H)2&b*Izbe63Ash}LPftp;#gLNSnro&xM*2KtO>U~*)&8BtPYk?R9~V$$TaQRGXBI$Xd`DMtV= zcajd#V7Gu@i`|Gwm0p3LcXd2*3(e&1=s&tFB^1PUk||E^cNQ*r{6{_S^mbWDQ6u`b z{9uYMde+fo$7*i1??nrORdr!J8@=feb<|Gwz?llJn46wBQgM;a-zqV`t_lKgrx!7j z3ToORT&*9FN_|l@uW76)g4-tCs7Ig;93~rn_4N}UhP%MTF8Msh;X&2Z#Ff>jvL%d> z9dz>DLQ07#&`lVW_60lz^N>4G$C;j#R23@Z)d7FEH?bo+OhFJ{hfP&&CsJLMMn^#F#`q-Rd+Sgi;aVmotJm!MMUChwv7Ty^Pk38SKbS$(~b zPkzG!Yb#ZMxAvy45sbKI@Npa(^}SPSE-!F3_*J8PyK?T^I?H5wRrLF3@7!;hC2RWc zQE>8TkOPA#pI{fOy7)m?SYa+pmcMx@pC9+?htu>gXE0XoRh#c;zsGVA2t&W1BDQ(T zDqK$%WXKoa@39a_VNu3Sj6W8% zdMN`T5{8GB@j+u9&DVJ2Ob36ens-8l4(DGy(Dgu&v4Zr1#)nR^IJ>o9y_vGQC5!m% zn2Z`lMp;+{jiO z8qkpJ_zUxCs4m|w7Ke!NzHYHmqqGDr<6EzhdLk{(D%P8LeFiEs&%Cl93*02&?dA=| z`?_RN*97FaXpfNAMFf0k<|``pmf>+|I^>inEAG2O@V{CPg@RhEUH#_6_rrx_o#_w} z)Y%4-*4tO^eJ;w5bPKsaOt~#P~|LfmS)Tk#0$l|L)63d=v#e zL&kd#{$5xf@Fo^>>dT)8>uaYq|Lrs(m9AR|$=+C?+1oaF3N%$Bv8b;tWmfm82C)JV z7Qy72D?T|HS{uLtQ7kl$LAf%vGJi(`Qu?`MkIaujQdLg>Jotsj@K-q)%MEN%`tQJJmV{8t)mBsgoWa>F1L3`H8`a|NnA z8U9wsKx<^soDedn7|rbwQD5xCj>BRN(7_2M>D%*b~Nki#&wR zOS>1{VV-|TjB_YBE|{%|m|&uSIE(n635Ued93nwTitk<0{$9=V;+P@XT{!4>bAieb zi3hFByx708jL|P>dEySNOh**O;y z4$<$J>LopuX7qNJJbs%ZVgGET-Cd}-`e}|fLm(I(6L-jh-S!z&Y};2ZS)kP>VLEAa zL7yM;5BZ*1Y=F%qsxV-m)A>#>6Z~ZReH-&G?7#5^`}u!A!i}ioAFIR;ls6r{^1|S-2zJ2oBbUA>W*v7OnzrQG7(DH zC3Y2>^Kj>)AhD9{VcKpRq}ew2DYzJ6{Ol9rft~-rW4^0)c_I;DlpS~siQ++kXjNTz zhnS@(ONlkBWUklzG#4QtWf(2{LNmF|KV|HBseUjoWb3tnGLXj+7_pPrcr>KyU6Wzq zF}`2D1pW4Iw7%dy>X&{NTFOP{f?iluf~)hoSO3Jw;rxyo`Rqh!A7VrWp4EfTd96jH zf9t82lewY;WLjm6ZpgUJzzMJAK*IjDEcWJF&@?1WXaUJphPc>lNQam#?F4MmNAn&2 zz)xKv#+*+eqUlD{g__y*np4Xa+N*oI&8+Nv=JZcd%+~sBnteN9arVSUAz$t&dD}bm zMnK~WdgDuQpvSbGhpL73mOxcrT6I;1Tpr4nCAhssZ!3Fvo4Py2LeCU+6?62CBn@u9 z@0U?z4qb1{+h?g_ES? zLgH+i6+QXM?XIcbe-(xHo6}wUL=Va@>Q{KvtGO4cRI}KmyrGFeO$;;-5bGQu%x34` z0Z2K?cK|8JJrrfEW`7BTHDwctx>+uE#TyE@2~7neW%)>zp?!B~OT+u3`66ufvWAH? zxJWD8=mI$LC8;frC~`0N#SMmk*jwnhCBr>P^~scf_H}klKf5A@l4QUAYhX9~IwCB9 z(nNrr3q;L*M_8-ch|h5=k+Y{XuX{5}`;zBNem{-O(s1Db#Ma`5lD4C*N#_F0Uf2_} z$4K9AJba37G_2qg=U|$xRCe9lokd_IJ}4c7IaZ>QHJtIiessv`TlGkgf-tlpj+nwh zK-9K~BW?{VE&re((&$V`-&)YN9|VZTP&j>krl&B*+c}_+L;g!{K@bfS5R0}x|GrLD zq^~{KS@J*C7^`o)0D_Re&FIM{m*OKhoej&72M-TMRM9d?il&H2Z83g*QWWuDUnz}= zH8~MHSmF<>eq@r(s~;85#io{AGy7vonR_`Zeon!UGM^Al@<-0s-jNL0YPZn*4!A^cRSXop`A2A+(*+09`Ln962@cV?HiZ0`No1i*QWX3 z_-K*hW%p{qmx=ApO}@XTm) z#(G%32+1_4Kyw9ta34{ED%MdGB&^w{GFIJzD#oU4^B&UdAP!+mY@FOb(`5nikRMVuEx z9isHFgOZJH9Q%s864%gJmcsqA|5Z1W7s?^cazzWE@1x3vlD%;^d}^Q-9k!w6!T#n0^}_ zE${*7&|F37SEbs0U+93uNnhDJiC*l`v<45mD0&p*DuP_+dwD;@O@~E8UMKs~%Y|Bt zSL&ppm7z>gz+qn=F_W0jI~nZGDZ^&t$Rm-(!{Ub&?D6!4#Ds$z^i6vH6nQS!?b_4| z9@IwF{NjliJYy&^{)viFm4)eFj+NDoCU4w>2ZY{wOOV0^IxPfm6P1)bto1ix(t`_S zcGH!7jV1R1Cz@J%FRC{g1Gy3gZz_Xor*Afjb8e$2a@TOxE@9nchk8?U@30T*VwX8n zjcqhnvy~BUINRX)H-giAZ(cCgY~L9Gp2H%W_z zWScylF!p0-Foa@5{wuaH$?n;d)7VbLdbRN^Ou`K3tNEc`@WOz5fn;^=#sgMRg=v#v z?HrbStd5~e)hGXSWu#|ky}q>_-Sp&Kp|Z?5%G#u0HA!?dzX+#P;Z%-T{O%O->nf=E zIKLw8gL3Q_O6CEEvPfqkUC_p6@G=Rc^OTu@laWBtvtChJjM&pGuo|A7t~g{xu(QzR z^9=TYI38hMWus$LRyQ&F!Lg|$4wV|Uo4KCdL#cg*o9!>mEn|Qk0D*KN01}9%okPJV z`Ot$tSXkxLaId-+^7v~#6i8IO!cnWXLm*5E)Vm??JAhMC#wv{9A`5oqE6RQ&Y)1hK z0IR@IfQS`jgZ5l`zTB6H*`ef+rG>r;_sNt!4tyjX zP+-0Pngs0M3W0b5v=y$E%Ax{=+#h$sp7M}Q;h*_O&4TH^kF_W_A0$v^o-e{769#5nFshlLrJb zz$9svTT{;McJ@X~jf<#L3FxCm+wc30GK25(p6b+$SotlLN2n?Fj^(%#Ukks>#&InF zU*C4+tySUYNzx*guB5W9$a*d&7AK{h->os3Xd$w%84lH1>XoQ?aK#${;tA=Uj3AmI zi28;3&GtW(;U+@*sjHiI6W9M%Q)GStI$B{1zuWzNEkW{5_yaV!|D&`x*Nx)D$UvvS zA0>05?eyaM;9nGJg_!?8EgqhlrgeOw18RIIf*>Fy3{}){=`TMg{My-h6aMi$E0JQ@Il90#EokZ?mG#*5gC%|8a z_$TjY;xW1Qs9#FjA%_Ot56~t&BO*9Qgf5E6%Pe|tSicmA&;}%&+`qP@{qwKOLsW2@xbEJzwi0pFViBYg=Mo-6vCbTgO zA2Us56r%{hD5Mh5jD=+{j5;0<5E#+~K#qL}-K7=j3UCX0=q*%AoluZ~Yt^CGmVT?( z2)+$KFNDqje&^ELj(fpim8XZH+h&3Dsz(2xi{(wVBWV5W1O7Wa>D2|n|Naowi52M~ zo?x^BxEXlv?ZiIDEOT^>Tqpk=%^fRJx8`H^tO(2&==4j>92@wKDhCG}<&zS1ay{M| zU*k3n141T#N|3kU%a=bnaI=~!DTq4r_!VzjKy}b9id_3%Z1%HG*KvqPx?;RuTi|Nx}7g2YE0#^*xDO|87x=O0Ao7n?c-+(aI2Z zTtIXWorK>E0IM;4sQXk$-c3RyN2^5+LPRJgGhZKWw?-GSe*O`Gd*rXBkZI4^CJ#B@#ubM) z;i^WETQTD)*3Id_`B&T}Rk$=>NAF;03LsAJHKYZpQftz_r#`d2-`|MY7k#Qyi_S{c zFFqegnrLf!5ZNH+SBYo*P`YSt4X_gQ04u>==G#D^#>ah1*m0m!s8!RG;oOXL`c#*fh7@x(p9W@2CI!Poi{eiEjrvk60*GVp$$c8s8JWBsLy=-S1a2KHmf&U|*h zTf>%p>Y@G5mp&9hV++@wdE0hFw|qx#DSUU4IWo;2>I!cBC+4HGqvl|LdNYOL<~plK zdhqP+i*YQ@2J}jrGEj@ak?f`Q;zeI!zJcf^>O%%lH{Q^rquE^AtDd!|^rwdonGoMZ zX5eKi!+7yxd|vGxYc<{A;%Q~01Fn{QlE!5$gFd0` zGuT%Y#cq7M!^kVsQdaq}qy8v(U>0@t?NZWbcK3KdZ7QXD+UDzctkR=!E9tC?mVa@V8~(2Cr2<98SV;=Zw~!@@{NZ z9`hznX^3$A%3&W*Dy1JAbT$c_E%;7v^5;(#U*k^aJLrHeotNhoC69_LiTUlm&T__} zz&iDD^rg!Md8H3gP%BlaZRj+Nf5y*)&ii4@8X;E)(WP*5;==Bp*Ct7dQi^H)hEjNQ z>1?xaUdDrHj(UXYU|}_#vW#O$k1RFkrb$MAdz`wd7M{gg<;2OLq-~7AQj;5lq!|Yn z_inkwdWP3%7w`M~*ePk$AXuMP(qtj--EJrBS9rE8@i28H^V% zC~AMN4hjyp=7cqMdCNP?;DYdJP7+&08~E)xJfr?JsV}NAp$IL3h%ji9)eX$9j@Qxn zuHGoRyQwhzwDKV+%wO)vOnxvmsxrC6Xh!W_>y;uW2n%^YAI>RW=T74$C%_IL6kHNt5jM74(~()1Xe$>4blp4d<=$dVJuz z_LDXfnI+4?CBmHVqshfONg`e#FLV1u(~Dr>xmWJ0BWUGJY9n@&?On@5ScNYtMDGHla0 zn2~RPj#5^=aB}=yf3YH>T4f231^Sqi=N{Y|L}dk^Ou*rCKVu6f*S-GUV%oN&$cF|T zfxf)aSp9fmnmOsVXKVjv#HY?U8*H}0%4gJWmj$ogmFBcbPJC@>tzAlea6jto;xl(95TF!FGs4( z#;UG6J2$fu7KTW*xZ9$lb=Wswo}$4%V_C1u5H$uwQ?9ND+djiEFFwp|(J@h{&MrUt zt`zl2lJyqT-7ew9z#TqR)WVui&(%Hnrgam)e`$WmtdTiLa6+LTccj21nc-fv=t;uz zp2FSac%Ik(=x=y_>RfSl4w$vz~?*^%tw_D>n!6~d;`?Z9g z1^ai$#Zi^A(*^1?& zznM-GzJkRcjKCzDJh34K;rA=C8H)_^hm-J~0+3U4MS~S5SL)|>R3_oK-xxs5zwVPa z!A=!5SV0RXb%WcQdT9T##LiW1f*Fb+=IPHst^oQC3tSBX5d+2xl#a7xL`uZi;sIg9MN?>lMf~XX5nYDr9J$V*jNK&%#YWf1h7}v0DZ>O zO+ee;z!e|?1i(gvKwQ6jV7yHx8`6K*4gXHoa6584`TKjzzIF_i%rhFjG#t1z{d52M zWrDbeXyb*0JHNe`Ih4-f z0%9doBz5#&AHQZgcKIesW|A9AJ8o?c?es-^*-ch%y>%oas-#r5q~Tp1e62|Jwm;%3 z3KYl%8OUpq+f-hyNIuo@)DQ0u68i$G)KG&|U&f{1(Ec;yXQqop7uz9JZZzXZ^JHE% zY}0Yd7DLq%%(h)Z=Dvy~{C4lFOKl`|zkYc`VgG*$yY8^2zGWK}Q3L@MDI!IXUersI zjsgKeid2z~bOJ~hX;PF(iy#5%NT||#iv$Qr?@hW$l`0*Agm(_;@A~d{-}nAacFs97 zduGj=HQC8`94BU9d6||tj5J{*YIOJ|AI!x{v_h&ps*z~kpTddYm#%9_N=jA`PUUj3^O82603%4m_zL@kPmw)SXU9GR#V(0|aUBh58 zN^er{`LfAz#A*98)8%@OmYHc7yMWrIjYk{qT1INBCKtn2 z#Gmc;M)SpT7oFgKbtx4rX|_eM^_AVi@@u#wNDB&sniZOzN&0Uok1*zF3Qxq;)%*&X z;;r}Rs-%>BkhT7CUbm{Lo(19iC8>cZZsCI`@S0STj20)!rWPD9_DXff>#^e_#`wjH%#q5#x6G^45|JNfm^s zMHA<Jq_FW98=Jx+S4^rN&FW!p_IB$iq5gXvsxDD2}n4^vx&#>GIsT zINIUi(0Dp4j^v}@gY<=fl3Tuoy2Up>I=e{7wc^eSEo?6bXq@Zb@9=xw>L7JRQuIaj zHw?uNlkYH#wU$!~R9(oCh2-6G`1M2r)2San%1~il1n~P~3s9@=sz{bx+PzAwUKvW^ zBfUjPsV?g#g?tn9SoKOY$SBvx^_z(Q|b1$P34j!$;_r-JH82}6* zCDzSv-w79cY+vP`mz|8-nXcT;BqX|a@>a~TR{hF~U+Bq)Za7d=-; z0j~OB4P~boya8p0kWw&GpMj+IiKDJUh(Lt>8$bX3sNn4(F490`!WGBDR3J1=0K7!nVZ~tC@=lQQQY!HaShu2aF8dA>9%@XJWgbAM@BubEiG1SHjsGFJGxy9q1 zKDl@U0{ozo3yL3tv$OVBGc!>WKWNu3=oJClYt{}SmV;7O;G zs`0lIe*0E7ef7jBz>`c|B7YwA|6YH(7r@fce{71g{BKVF&%Ha@59^vYWMm4m{5;2`{q=rib;>evfW+LbEFKX z-rv4PK~GZ5cWDV0&EcU#LphElgvhcUQL`tKt&QKw_0;K#-K@zs3%-Qp+gb^?gbi=E zF=>PK_D$AEeT`bxZP#_1nqoRd-fP6m2(1c9*@)K)pkXot_7T;lBiv3hzLqca*gBJr zxC;gs-TfCqQ)yDw<=BFCJ&?n0jC&Is#p>Lyxl^8Z56CMHYT~z?v~lie^BO+3@gu#B zXzeQd4qx>o(Q51Apz_V$;*Coq$z>M9y>?O&N+D8$VupJItTaa%6mn01DHzRWdDRwF z0IxXGT2R_ma<2B9yLGvqo~Kb^)lMc#m22$cutZ+LuczVVRGK)I4r9B-vm#YS;q zEiz%XHHnsb-cZa{*{f@yfoNz6&j&Br5fQ#)^sSzOyWQy%(KeDidTSS9w!r^fVetM6 z-`S^>B|JGzp4xQ|)H&rxU)`KuEFTN=VTAL6Tai_IbY1cgJu`>u#3$+^|XWNI;nje9NNR~CImslT3jXx?hL;t*r>i_+6y6ygl-1|S@#}G-L z|9*)C_=5Q<0{t)M_%{XsTQ;#s_=*7RvSe8^|K#TXx&9AkfcO8C##?`Y0Kkk70DeGT z)lW}wu0j`{BP~V%1QG==-uO0={7IPE&!Tjv$SNL1;+<^?%xZ==8Fn%d;#6i7>~*Q`Agh)zoleB%A0v( zY6WT;a5DseWC|lM%*f$SO;^j=mgI*M8vQreQ2Y%PP2kn^H+aRLiVC_2xMGj_Hfa;D zyx{<`LEi&^oOc*eeT4T-)Do7$ty3pLGXrl1BS;7!8?(2A6bm$j7>{~+ov=B=aQ(ey zr1MG)ZDEP`{j_=NOv_#2b4IqNPK^kTcwwKd=i$B77lz4BAr&VK8^JDl=jtpE9PMJV z3#4AUG>I`k`|O90l9(Vu&yi8-+P!ZO(Qd!GIqr1VO$C(AYM5AlDu=0ljE8Zh<=dkY)4_33 ziZ-7-yrU1X?#wQ$$Q|v2@7E0^WeGr2Z+L7iEG^d=5AL;3J21B0neg2rrA~EMwufo58X>;6;G=-lyr2C zSHNd)QnMZE?ZWtqgJA-yHN&n@5uQ&N_x|&3yZiNX&OZ8%Q^y{-j*zx`Bi56<${{NX zVh-bxU*)dybH&ez9V~qFsCMscdxy+96R^Z?hfB`046W7fp#wKAywXA2NUZS&es5KN z?dQA5$c~t_$Fu&fUf~!@Tf@kBmhWTk2=livO`>5-q?ykwc^;oj8}B-A%#*@OhRD4+j9Dnv7>e7~pRl$lYuBvSavSN72P56_)&|{i&I{iQwlGyv z@{Lv9B83U6gb$?}-YV8(E2V>N8TDd24@@^D5ul9n3t>zX!F9r@{bkB-)<-Pymc%kg zM-|9HEfoCw-mxu|eq}JYiDzJtks>^46#I64!itl0j5OrJg9LpT@rn1RWZK^koYPaU zWG#A8RQ=4}jkCb_-2$7cn}^h8ggWQW1K{yF`CNHxo}fR%O`O!mmV2+6ZtOAPK^~Q= zew@@ViPzW}WGhx05jf`Ud9lA%2tSoavdpzC475@5+3laaL>R2acE93}4ws{zwzHKn z+eKs!zpQlx#|8)5lmN5 zkUzhGR(S73=TJ!1TR9avKJD`9RX)3au%gp(TjI8jD*LgYP?~cZEZ#^TW*9d@8^3WM zeb6DA}Xj_s6G4iB7HP4q%*9vLJW zAY)`BjkMe`MpYw|toc}2giw0grh#Ixcu6;MyuI4RPGMgGQRDf%*&WOK*~N9V#4H4- zg-tYIgiXyz+>CYvBn}GI6@I+yge$Z2e1e2K7BTpS5#KD}IZRO|t?r-~`!c(z(QMVu z4ZKoFx~H1DdVv8!I{Vtech%OJuv*O?I$JORo9@Co_m5vJ6^LR zyHbpbE9DF%m2O~!Z+tNvL_5oeh~3>;a~i9&Jc~PlGhdie%=N@Gb^nE)0-YBy3|iGW z-f56v4^_e0nA0RewohqeSI+HX)1L<#nLynU{Y%U+eKOV@6RJY6cn(b8H@f^8_E!9& z#7xW}Z1I$Q))1M?wm_9Ym;sps(kP&ZJa}%{#jZnH(fe&iD!Ub}hO$=|ca8+?_((&tw_2Vp?F|PQR+>gr+yC1f& z?NOABc{eP!%^S)3hSYQC|c4YqRyONK`(#i1(VsoXX@wGnQoMGX}x~CfX>s zK26B&#sv%I{0fP=Zp(4P1&Zg<8{L_^Lmu@)lLP5DO)APb4g(&T7l`iE|ENIQ+uR#x zEq0ccKYEh+hz_%K>GJv*Eqw*Xh@(E7E^*0$EE@jH#p#)fmE!8XuX%+NPF(U(ZM5#9 z$bM;W3^DX%cMHoissrtn&BdZ(Zj_AcGM|fQ7jeS2^PK1u&47@B#Jmc5|T`wUN$qUeUcdL)bs;xWz$`Ct1qE8scgl zEJI|Xci@lOP85qC4r{Bp+eU#Iqztwb_#RM?cvAfI{c-&w34u%@8vrL2WCIFqY$4*# z#wMF%h^$MTjId~)Aca&h9z}^B=CZKS;!~Z%qTZ0h2s=AHXZ|uJ5jm2_!0cW0H8Lp1oxDde&KuWs3 zl;gGOM}h0Unvwap!mzQwoio-hfA4h{8ls<&w{Vw1*(ta zqOr~h{)(20CDq!I9Ob^#g!XDG%a5{in%?QR8aM_#IXhs7!Ye4W?2t*9@0UV@oBPJiKQ~uOD zAqv1+T)-~_r}FdV`#u4Vf#-_>0Rsd}Gbpju2%yVTD%6s>bq$i%YABz;<{S^n(>q65 z6>W$74+k;=&snZiByRB?CsDM6sw>>5lvKw|G)oSV_S5K<5Z zWjX^u2BexlueTh^?*9Y|Ahxu7#)@CJ-%W%AphW%M&jJ0Ju`=K^!xa$|7a|>Q>>^>x z32jHWgnyn}`p=U2A0GvwvyOwF<=;)4t}-xLC=)GL26V7Rxcof`i`45c!{|5*;U4#Gt literal 62306 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≺k@BR^nW-1EMdA!;HY=RNR-P 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 W!Hv6`Ri+Vw&+^jBQe_hF{QeI|CCn!P diff --git a/plans/645/README.md b/plans/645/README.md index 6875e083d..d5a7acf31 100644 --- a/plans/645/README.md +++ b/plans/645/README.md @@ -1,6 +1,20 @@ -# Async Scheduling Epic UML +# Async Scheduling Architecture Plan -Reference diagrams for the async scheduling epic tracked by issue 645. These diagrams are intentionally design artifacts for future implementation PRs, not runtime documentation. +Source-of-truth architecture plan for the async scheduling epic tracked by issue 645. The UML file is the visual index; the Markdown files in this directory are the durable spec. GitHub issues should point back here and focus on implementation sequencing, quality gates, tests, and evidence. + +If an issue body and this plan disagree, update this plan first, then adjust the issue to reference the corrected section. + +## Spec + +- [Architecture](architecture.md): target system shape, ownership boundaries, invariants, and non-goals. +- [Contracts](contracts.md): durable DTO, protocol, event, and config names. +- [Capacity model](capacity-model.md): layered capacity vocabulary and ownership. +- [Task admission](task-admission.md): scheduler-owned ready selection, task leases, policy hooks, bounded borrowing, and resource-vector direction. +- [Request admission](request-admission.md): model-call admission, AIMD controller shape, dynamic request semantics, and no legacy throttle names. +- [Observability](observability.md): scheduler events, request events, runtime correlation, snapshots, and cardinality rules. +- [Benchmark plan](benchmark-plan.md): scenarios, metrics, A/B baselines, and required artifacts. +- [Migration and cleanup](migration-and-cleanup.md): legacy-name removal, grep gates, and no-shim rules. +- [Issue map](issue-map.md): how the GitHub issues map to this source-of-truth plan. ## Source diff --git a/plans/645/architecture.md b/plans/645/architecture.md new file mode 100644 index 000000000..0e9ffe3e4 --- /dev/null +++ b/plans/645/architecture.md @@ -0,0 +1,79 @@ +# Async Scheduling Architecture + +This plan moves Data Designer's async engine from implicit scheduling behavior to explicit, layered admission control. The target architecture separates static generator resource metadata, dependency readiness, ready-work ordering, scheduler-level task admission, concrete model-request admission, capacity diagnostics, and runtime observability. + +The guiding rule is: each layer owns one question and speaks through typed boundaries. + +## Source Of Truth + +The Markdown files in `plans/645` are the source of truth for this epic. The UML in [async-scheduling-epic.puml](async-scheduling-epic.puml) is the visual index and must be kept aligned with these files. GitHub issues should reference this plan and own implementation sequencing, validation commands, acceptance gates, and PR-level evidence. + +## Target Shape + +The durable runtime flow is: + +```text +ColumnGenerator / plugin + -> SchedulingMetadata + -> TaskSchedulingResolver + -> CompletionTracker + -> AsyncTaskScheduler + -> FairTaskQueue.select_next(TaskAdmissionController.is_eligible) + -> TaskAdmissionController.try_acquire(selection.item) + -> TaskAdmissionLease + -> ModelRequestExecutor + -> RequestAdmissionController.acquire_async(RequestAdmissionItem) + -> RequestAdmissionLease + -> provider/model endpoint +``` + +This is not a passive pipeline where `FairTaskQueue` or `TaskAdmissionController` pushes work into the scheduler. `AsyncTaskScheduler` is the execution owner. It asks the readiness tracker for work, asks the queue to select a candidate through an admission eligibility callback, asks the task admission controller for a lease, commits the queue selection, executes the task, and releases the lease. + +## Layer Responsibilities + +`SchedulingMetadata` is a generator-facing static resource declaration. It describes the resource shape a generator expects, such as local work or model-backed work. It does not expose queue internals, admitted limits, request domains, AIMD state, or runtime pressure. + +`TaskSchedulingResolver` is the internal bridge from generator metadata to scheduler inputs. It produces `ResolvedTaskScheduling`, including `TaskGroupSpec` and `SchedulerResourceRequest`, and appends scheduler-owned flow identity such as output columns. It is the only scheduler grouping bridge once the legacy resolver is removed. + +`CompletionTracker` owns dependency readiness. It reports the ready frontier and completion state. It does not order ready work, admit resources, or inspect provider/model pressure. + +`FairTaskQueue` owns ready-work membership and ordering. Its selection operation is non-mutating and takes an eligibility callback supplied by scheduler admission. It does not own dependency readiness, admitted counts, provider metadata, request admission, or policy state. + +`TaskAdmissionController` owns scheduler-level task leases and resource accounting. `TaskAdmissionPolicy` decides whether a queued task is eligible under the current queue and admission views. The controller consumes resolved scheduler inputs and must not inspect generators, configs, model registries, or provider registries directly. + +`AsyncTaskScheduler` owns runtime control flow. It wires readiness, queue selection, task admission, worker spawn, task execution, salvage/retry behavior, shutdown, and lease release. + +`ModelRequestExecutor` is the durable model-call boundary. It maps each concrete provider/model/domain call to a `RequestAdmissionItem`, acquires a request lease, calls the provider, records request timing, and releases that exact lease on success, rate limit, failure, cancellation, or unexpected exception. + +`RequestAdmissionController` owns request-level provider/model/domain admission. `AdaptiveRequestAdmissionController` is the V1 AIMD-backed implementation. Internal `RequestFairQueue`, `RequestAdmissionPolicy`, and `AdaptiveRequestLimitState` are implementation components of this controller, not a second public layer. + +`SchedulerAdmissionEventSink` and `RequestAdmissionEventSink` observe their own layers separately. `RuntimeCorrelationProvider` supplies shared runtime context, and `CorrelatedRuntimeView` joins timelines without collapsing the two telemetry systems. + +## Two-Stage Admission + +Task admission controls when ready dataset work may become a running worker. Request admission controls concrete provider/model/domain calls at the moment they are made. + +The split is required because arbitrary custom Python can make zero, one, or many model calls dynamically. A task's metadata may help group and schedule the task, but it is not a promise of exact request count and must not reserve every future model call up front. + +Task admission may later consume request pressure snapshots as read-only policy input. It must not pre-acquire request permits, emulate AIMD, or wrap provider/model/domain request admission. + +## Core Invariants + +- Scheduler-level work is not spawned until `TaskAdmissionController` returns a `TaskAdmissionLease`. +- `FairTaskQueue.select_next(...)` does not remove work or mutate virtual-time state. `commit(selection)` is the only queue operation that removes the selected task. +- If `try_acquire(...)` succeeds but `commit(selection)` fails, the scheduler releases the task lease before retrying. +- Every task lease and request lease is released exactly once in all success, failure, retry, cancellation, shutdown, and salvage paths. +- Root/from-scratch work uses the same ready queue and task-admission path as downstream work. +- Request admission happens only at concrete model-call time through `ModelRequestExecutor`. +- Scheduler telemetry and request telemetry remain independently useful when the other subsystem is disabled. +- Capacity and benchmark artifacts must distinguish dependency readiness, ready ordering, scheduler admission wait, request admission wait, provider execution, cooldown/rate-limit behavior, and task completion. + +## Non-Goals + +- Do not collapse task admission and request admission into one subsystem. +- Do not expose scheduler internals as plugin API. +- Do not put provider retry, cooldown, or AIMD behavior into `AsyncTaskScheduler` or `TaskAdmissionController`. +- Do not put DAG readiness, row-group lifecycle, or task ordering into `RequestAdmissionController`. +- Do not configure OpenTelemetry SDKs or exporters in core runtime. +- Do not add public capacity knobs before benchmark evidence and docs justify them. +- Do not keep durable compatibility shims or aliases for replaced scheduler/request-admission names at epic completion. diff --git a/plans/645/async-scheduling-epic.puml b/plans/645/async-scheduling-epic.puml index c363f87f7..fb52b2ffa 100644 --- a/plans/645/async-scheduling-epic.puml +++ b/plans/645/async-scheduling-epic.puml @@ -123,6 +123,17 @@ package "Task scheduling contracts" { +view() } + class QueueSelection { + +item + +sequence + } + + class QueueView { + +queued_total + +queued_by_group + +has_queued_peer(group) + } + interface TaskAdmissionPolicy { +is_eligible(item, queue, view) +on_acquire(lease) @@ -138,12 +149,18 @@ package "Task scheduling contracts" { } class TaskAdmissionController { - +is_eligible(item, view) - +try_acquire(item, view) + +is_eligible(item, queue_view) + +try_acquire(item, queue_view) +release(lease) +view() } + class TaskAdmissionView { + +resources_available + +leased_by_group + +running_by_group + } + class TaskAdmissionDecision { +lease +denied_reason @@ -175,10 +192,13 @@ ResolvedTaskScheduling --> TaskGroupSpec ResolvedTaskScheduling --> SchedulerResourceRequest ResolvedTaskScheduling --> SchedulableTask CompletionTracker --> FairTaskQueue : ready tasks +FairTaskQueue --> QueueSelection : returns +FairTaskQueue --> QueueView : view() FairTaskQueue --> TaskAdmissionController : is_eligible(candidate) TaskAdmissionController --> TaskAdmissionPolicy StrictFairTaskAdmissionPolicy ..|> TaskAdmissionPolicy BoundedBorrowTaskAdmissionPolicy ..|> TaskAdmissionPolicy +TaskAdmissionController --> TaskAdmissionView TaskAdmissionController --> TaskAdmissionDecision TaskAdmissionDecision --> TaskAdmissionLease TaskAdmissionLease --> SchedulableTask @@ -267,7 +287,7 @@ package "Request admission contracts" { +release_success(lease) +release_rate_limited(lease, retry_after) +release_failure(lease) - +pressure_snapshots() + +pressure } class AdaptiveRequestAdmissionController { @@ -547,6 +567,7 @@ component "issue 635\nRequest admission telemetry" as I635 component "issue 647\nScheduler admission telemetry" as I647 component "issue 648\nCorrelation" as I648 component "issue 649\nBenchmark harness" as I649 +component "issue 660\nArchitecture docs" as I660 component "issue 650\nBounded borrow task policy" as I650 component "issue 651\nResource-vector design" as I651 @@ -570,6 +591,11 @@ I657 --> I648 I635 --> I648 I647 --> I648 I644 --> I649 +I652 --> I660 +I654 --> I660 +I657 --> I660 +I648 --> I660 +I649 --> I660 I649 --> I650 I644 --> I650 I641 --> I651 @@ -582,7 +608,7 @@ note bottom Native GitHub subissue order: issue 641 -> issue 646 -> issue 653 -> issue 652 -> issue 644 -> issue 654 -> issue 657 -> issue 635 -> issue 647 - -> issue 648 -> issue 649 -> issue 650 -> issue 651 + -> issue 648 -> issue 649 -> issue 660 -> issue 650 -> issue 651 end note @enduml diff --git a/plans/645/benchmark-plan.md b/plans/645/benchmark-plan.md new file mode 100644 index 000000000..d5615656e --- /dev/null +++ b/plans/645/benchmark-plan.md @@ -0,0 +1,160 @@ +# Benchmark Plan + +The benchmark harness turns architecture claims into reusable evidence. It prevents each implementation PR from inventing one-off scripts and makes fairness/throughput tradeoffs explicit. + +## Harness Requirements + +Provide a repo-local benchmark entrypoint that can compare two refs or checkouts. + +Required inputs: + +- baseline ref +- candidate ref +- scenario +- record count +- buffer size +- row-group concurrency +- task admission capacity +- request latency knobs +- warmups +- measured iterations +- output directory +- seed + +Required artifacts: + +- JSON and CSV outputs +- concise Markdown summary +- baseline and candidate commit SHAs +- command lines +- machine/runtime information +- environment knobs +- `AsyncCapacityPlan` +- per-layer observed maxima +- completion timeline +- ready-idle/utilization timeline +- deterministic output hashes where applicable + +The sync path can be used as a correctness/hash oracle, not as the timing baseline for async scheduling policy. + +## Scenario Matrix + +### Queue And Admission Microbench + +Compare old `admit_next + release` behavior with new `select_next + try_acquire + commit + release` behavior. + +Matrix: + +- task counts: 1k, 10k, 100k +- group counts: 1, 8, 64, 256 +- resource mixes: local only, resource-bound, mixed local/resource-bound, stateful/exclusive if included + +Metrics: + +- p50/p95 admission cycle cost +- enqueue/select/acquire/commit/release breakdown +- total CPU time +- peak memory +- scaling by group count + +### Heavy-Root Downstream Benchmark + +Required shape: + +```text +true_from_scratch_root_slow -> downstream_fast +``` + +Optional secondary shape: + +```text +seed -> root_slow -> downstream_fast +``` + +Required metrics: + +- first downstream-ready time +- first downstream-dispatch time +- ready-but-not-running gap +- root over-admission debt after first downstream-ready timestamp +- time to first completed record +- time to 50 percent completed records +- p95 row completion time +- final wall time +- max ready-idle gap by group/resource +- active-capacity integral + +This scenario must exercise true root/from-scratch dispatch, not only downstream slow tasks. + +### Hidden-Waiter Proof + +After task admission lands: + +```text +max(spawned_waiting_for_llm_lease) == 0 +``` + +Required monotonic timeline fields: + +- selected_at +- lease_acquired_at +- worker_spawned_at +- model_request_started_at +- model_request_completed_at +- lease_released_at + +Scheduler events own selected/lease/spawn/release. Request/model instrumentation owns model request start/complete. + +### Idle And Utilization Proxy + +Use mock endpoint pools with request start/end events. + +Metrics: + +- active-capacity integral +- max ready-idle gap while work is available +- initial idle gap after first downstream-ready task + +### End-To-End A/B Timing + +Run paired A/B trials with warmup and at least five measured iterations for: + +- narrow serial workflow +- wide independent roots +- dual model generate-to-judge workflow +- heavy-root workflow +- dynamic request-count custom generator workflow + +### Request Dynamic-Call Benchmark + +Use custom generators that make zero, one, and many model calls per task, including branch-dependent request counts. + +Metrics: + +- request admission acquire/release overhead +- queue wait +- event emission overhead +- emitted event count +- CPU time +- memory +- end-to-end timing + +## Baselines + +| Consumer | Baseline | Candidate | +| --- | --- | --- | +| Task admission | `origin/main` or the implementation PR merge-base before `TaskAdmissionController` | task-admission PR | +| Bounded borrow | accepted lease-only task-admission SHA | bounded-borrow PR | +| Resource vector | accepted bounded-borrow SHA or named policy baseline | resource-vector policy PR | + +## Evidence Thresholds + +Neutral scenarios should be no worse than 5 percent mean wall time unless the PR explicitly justifies a fairness/utilization tradeoff. + +Heavy-root scenarios should show reduced downstream ready-to-dispatch lag versus the named baseline when the candidate claims to improve heavy-root behavior. + +Every run must show no permit leaks and deterministic output equality where applicable. + +## CI Smoke + +The harness should have a small deterministic smoke mode using mock endpoints. It writes machine-readable artifacts and does not require live providers. diff --git a/plans/645/capacity-model.md b/plans/645/capacity-model.md new file mode 100644 index 000000000..af1ff60f2 --- /dev/null +++ b/plans/645/capacity-model.md @@ -0,0 +1,75 @@ +# Capacity Model + +The async engine uses layered capacity. Each layer has a different owner and meaning. The epic goal is to make these layers visible, non-overlapping, and traceable in runtime artifacts. + +## Layer Vocabulary + +| Layer | Owner | Meaning | +| --- | --- | --- | +| Engine selection | Dataset builder / interface | Selects async or sync execution. Not a capacity control. | +| Record window | Dataset builder | Controls row grouping, checkpoint granularity, and memory shape. | +| Row-group admission | Async scheduler | Bounds row groups in flight. | +| Task-stage admission | `TaskAdmissionController` | Bounds scheduler-spawned work and scheduler-level resource pressure. | +| Request-stage admission | `RequestAdmissionController` | Bounds concrete provider/model/domain requests when they are made. | +| Static provider cap | Model config / metadata | User-declared provider/model upper bound and scheduling weight source. | +| Adaptive provider cap | `AdaptiveRequestAdmissionController` | Runtime AIMD limit under the static provider cap. | +| Transport pool | HTTP/model client adapter | Socket/session pool sizing. Not scheduling or fairness policy. | + +## AsyncCapacityPlan + +`AsyncCapacityPlan` is the run-level explanation of capacity. It should record: + +- `buffer_size` +- row-group concurrency +- task admission capacity +- task resource limits +- request admission resources +- static provider/model caps used by the workflow +- adaptive request-admission config +- transport/session pool values if they remain distinct +- source of each value, such as default constant, model metadata, run config, request admission state, or environment selection + +The plan is emitted for diagnostics, traces, benchmarks, and operator documentation. It does not admit work by itself. + +## Ownership Rules + +Task admission capacity is scheduler-level capacity. It controls when a ready task can become a running worker. + +Request admission capacity is provider/model/domain request capacity. It controls when a concrete model call can execute. + +`max_parallel_requests` remains the user-facing static provider/model cap and scheduling metadata weight source. `AdaptiveRequestAdmissionController.current_limit` is the runtime adaptive request cap. + +HTTP transport pools may be larger than the static provider cap. They are transport sizing, not effective request concurrency. + +`DATA_DESIGNER_ASYNC_ENGINE` is an execution path selector. It is not a capacity knob. + +`RunConfig.buffer_size` shapes record windows and row groups. It is not a request-concurrency knob. + +## Transitional Values + +Any current `max_llm_wait_tasks`, `needs_llm_wait`, or `held_llm_wait` concept is transitional. At epic completion these names must either be gone or replaced by explicit scheduler-resource terminology in `TaskAdmissionConfig` and `AsyncCapacityPlan`. + +If a distinct task-stage LLM backpressure resource remains, it must be derived from actually used resolved scheduling metadata, not every registered model alias. It must be described as scheduler task-stage pressure, not provider request concurrency. + +## Alias And Provider Semantics + +Scheduling metadata may use model aliases to derive static resource identity and weight. Alias metadata should deduplicate aliases that resolve to the same provider/model/generation resource before summing weight. + +Request admission resources are provider/model/domain scoped. A provider/model may have a global effective static cap while each request domain has its own adaptive state. The capacity plan must make that distinction visible. + +V1 does not define a cross-domain aggregate AIMD provider cap beyond the documented provider/model effective static cap unless a later issue explicitly adds that policy. + +## Observability Requirements + +Operators should be able to answer: + +- Which capacity values were used for this run? +- Was progress limited by dependency readiness, queue ordering, task admission, request admission, provider cooldown, or provider execution? +- What static provider caps and adaptive request limits were active? +- Were transport pools distinct from request caps? + +Benchmarks and traces must include `AsyncCapacityPlan` plus per-layer observed maxima. + +## Public Knob Rule + +Do not add a new public capacity knob until benchmark evidence shows a specific need and the docs explain its layer. Prefer clear defaults, internal configs, and diagnostics first. diff --git a/plans/645/contracts.md b/plans/645/contracts.md new file mode 100644 index 000000000..5e35a73fe --- /dev/null +++ b/plans/645/contracts.md @@ -0,0 +1,189 @@ +# Contracts + +This file records the durable names and semantics used by the async scheduling architecture. The exact implementation can evolve, but these names are the spec vocabulary for the epic. + +## Metadata Contracts + +`ColumnGenerator.get_scheduling_metadata()` returns generator-facing scheduling metadata. It is additive and non-abstract so existing generators keep working. + +`SchedulingMetadata` is a static declaration with: + +- `kind`: initial values are `local`, `model`, and `custom_model`. +- `identity`: deterministic tuple of broad-to-specific resource identity values. +- `weight`: positive static capacity hint. + +`SchedulingMetadataError` is the typed failure path for metadata resolution. It can carry fallback metadata when partial resolution is safe. + +Rules: + +- Metadata identity is resource identity, not a queue key. +- Metadata cannot encode queue depth, admitted limits, runtime pressure, request domains, AIMD state, or provider cooldown. +- Multi-alias metadata deduplicates aliases that resolve to the same provider/model/generation resource before summing weight. +- Alias ordering is canonicalized so equivalent configs produce equivalent metadata. + +## Scheduler Input Contracts + +`TaskSchedulingResolver` consumes `SchedulingMetadata` and produces scheduler-internal inputs. It owns per-run metadata caching and scheduler flow-identity composition. + +`ResolvedTaskScheduling` contains: + +- `group: TaskGroupSpec` +- `resource_request: SchedulerResourceRequest` + +`TaskGroupSpec` contains a scheduler-internal task group key and static weight. + +`SchedulerResourceRequest` contains scheduler-level task-stage resources: + +```text +amounts: Mapping[SchedulerResourceKey, int] +``` + +The first implementation can model submission and LLM-wait style resources. Future resource-vector work may add provider/model, local, GPU, or other scheduler resources, but those remain scheduler-internal unless a later design explicitly changes the public contract. + +`SchedulableTask` contains: + +- task payload +- task group +- scheduler resource request + +## Queue Contracts + +`FairTaskQueue` owns ready-task membership and ready ordering: + +```text +enqueue(item) +select_next(is_eligible) -> QueueSelection | None +commit(selection) -> SchedulableTask | None +view() -> QueueView +``` + +`QueueSelection` returns from `FairTaskQueue` to `AsyncTaskScheduler`. It is not delivered to `TaskAdmissionController`. + +`QueueSelection` contains the selected item and an opaque sequence/version used by `commit(selection)` to detect stale selections. + +`QueueView` is read-only policy input. It exposes queued totals and queued counts by group, including whether a group has queued peers. + +## Task Admission Contracts + +`TaskAdmissionController` owns task-stage resource accounting and leases: + +```text +is_eligible(item, queue_view) -> bool +try_acquire(item, queue_view) -> TaskAdmissionLease | None +release(lease) +view() -> TaskAdmissionView +``` + +`TaskAdmissionPolicy` owns the decision rule: + +```text +is_eligible(item, queue_view, admission_view) -> bool +on_acquire(lease) +on_release(lease) +``` + +`TaskAdmissionLease` contains: + +- `item` +- `resources` +- `acquired_at` + +`TaskAdmissionView` exposes task-stage resource availability plus leased/running counts by group. + +`TaskAdmissionDecision` is the richer decision shape for implementations that need denial reasons. V1 may expose `try_acquire(...)` as a non-blocking `TaskAdmissionLease | None` helper, but the spec vocabulary treats denials as typed scheduler-admission outcomes for events, tests, and debugging. + +`TaskAdmissionConfig` contains scheduler task-stage capacity values such as `submission_capacity` and resource limits. + +## Request Admission Contracts + +`ModelRequestExecutor` maps concrete model calls into request-admission items and owns exact lease release around provider execution. + +`RequestResourceKey` identifies a concrete provider/model/domain request resource: + +- `provider_name` +- `model_id` +- `domain` + +`RequestGroupSpec` contains the request resource key and static weight. + +`RequestAdmissionItem` contains: + +- request resource +- request group +- optional timeout + +`RequestAdmissionController` owns request-level admission: + +```text +try_acquire(item) -> RequestAdmissionDecision +acquire_sync(item) -> RequestAdmissionLease +acquire_async(item) -> RequestAdmissionLease +release_success(lease) +release_rate_limited(lease, retry_after) +release_failure(lease) +pressure -> RequestPressureSnapshotProvider +``` + +`RequestAdmissionDecision` is a union of `RequestAdmissionLease` and `RequestAdmissionDenied`. + +`RequestAdmissionLease` contains: + +- item +- acquired timestamp +- current adaptive limit +- effective max + +`RequestAdmissionDenied` contains: + +- item +- reason +- retry-after or available-after timing where applicable +- optional snapshot + +`AdaptiveRequestAdmissionController` is the V1 concrete request controller. It owns AIMD behavior through internal `RequestFairQueue`, `RequestAdmissionPolicy`, and `AdaptiveRequestLimitState`. + +`RequestPressureSnapshotProvider` exposes read-only request pressure: + +```text +snapshot(resource) +snapshots() +global_snapshot(provider, model) +global_snapshots() +``` + +It has no mutation or admission methods. + +`RequestAdmissionConfig` is the durable request-admission tuning/config vocabulary. `ThrottleConfig` and `RunConfig.throttle` are not durable names. + +## Telemetry And Correlation Contracts + +`SchedulerAdmissionEventSink` emits scheduler admission events. + +`RequestAdmissionEventSink` emits request admission events. + +`RuntimeCorrelation` contains primitive runtime context: + +- run id +- row group +- task column +- task type +- scheduling group kind +- scheduling group identity hash + +`RuntimeCorrelationProvider` owns set/reset/current behavior, likely through context variables. It must not require request admission protocols to import scheduler types. + +`CorrelatedRuntimeView` joins scheduler and request timelines for diagnostics, benchmarks, and future operator views. + +## Capacity Contracts + +`AsyncCapacityPlan` records computed per-run capacity values: + +- buffer size +- row-group concurrency +- submission capacity +- task admission config +- request admission config +- static provider/model caps when available +- source of each value + +The capacity plan explains observed runtime behavior. It is not itself a policy engine. diff --git a/plans/645/issue-map.md b/plans/645/issue-map.md new file mode 100644 index 000000000..d321b2364 --- /dev/null +++ b/plans/645/issue-map.md @@ -0,0 +1,67 @@ +# Issue Map + +This file maps GitHub issues to the source-of-truth plan sections. Issues should reference these files and own implementation/quality gates rather than restating the full architecture. + +## Source-Of-Truth Rule + +Use this directory for architecture, contracts, naming, invariants, and cross-cutting decisions. + +Use GitHub issues for: + +- implementation slices +- dependencies and target branch +- acceptance criteria for that slice +- tests and validation commands +- benchmark evidence required by that slice +- PR-specific cleanup gates + +## Issues + +| Issue | Implementation Focus | Source Sections | +| --- | --- | --- | +| #641 | Add `SchedulingMetadata` and generator override contract | [architecture.md](architecture.md), [contracts.md](contracts.md), [task-admission.md](task-admission.md) | +| #646 | Ingest metadata into scheduler grouping through `TaskSchedulingResolver` | [architecture.md](architecture.md), [contracts.md](contracts.md), [task-admission.md](task-admission.md) | +| #653 | Remove legacy hint resolver path | [migration-and-cleanup.md](migration-and-cleanup.md), [contracts.md](contracts.md) | +| #652 | Document plugin-facing metadata behavior | [architecture.md](architecture.md), [contracts.md](contracts.md), [migration-and-cleanup.md](migration-and-cleanup.md) | +| #644 | Implement task admission lease boundary | [task-admission.md](task-admission.md), [contracts.md](contracts.md), [benchmark-plan.md](benchmark-plan.md) | +| #654 | Implement and document capacity vocabulary and snapshots | [capacity-model.md](capacity-model.md), [observability.md](observability.md), [benchmark-plan.md](benchmark-plan.md) | +| #657 | Refactor model-call throttling into request admission | [request-admission.md](request-admission.md), [contracts.md](contracts.md), [migration-and-cleanup.md](migration-and-cleanup.md) | +| #635 | Instrument request admission state | [observability.md](observability.md), [request-admission.md](request-admission.md), [contracts.md](contracts.md) | +| #647 | Instrument scheduler admission state | [observability.md](observability.md), [task-admission.md](task-admission.md), [contracts.md](contracts.md) | +| #648 | Correlate scheduler and request observability | [observability.md](observability.md), [architecture.md](architecture.md) | +| #649 | Build reusable benchmark harness | [benchmark-plan.md](benchmark-plan.md), [capacity-model.md](capacity-model.md), [observability.md](observability.md) | +| #660 | Produce final user/operator docs | [architecture.md](architecture.md), [capacity-model.md](capacity-model.md), [observability.md](observability.md), [migration-and-cleanup.md](migration-and-cleanup.md) | +| #650 | Implement bounded-borrow task policy | [task-admission.md](task-admission.md), [benchmark-plan.md](benchmark-plan.md), [capacity-model.md](capacity-model.md) | +| #651 | Design resource-vector/provider-aware policy | [task-admission.md](task-admission.md), [capacity-model.md](capacity-model.md), [benchmark-plan.md](benchmark-plan.md) | + +## Dependency Order + +The implementation order remains: + +```text +#641 -> #646 -> #653 -> #652 -> #644 -> #654 -> #657 +-> #635 -> #647 -> #648 -> #649 -> #660 -> #650 -> #651 +``` + +#641 and #644 may proceed independently only while #646 preserves the adapter contract between them. The accepted end state is `SchedulingMetadata` feeding task admission through `TaskSchedulingResolver`. + +## Issue Body Cleanup Pattern + +When revising issue bodies, keep: + +- priority +- dependency metadata +- target branch +- short problem statement +- links to the relevant plan sections +- implementation checklist +- tests and validation commands +- evidence requirements +- acceptance criteria specific to the slice + +Remove or shorten: + +- duplicated contract definitions +- duplicated architecture diagrams +- broad cross-cutting non-goals already captured here +- stale naming decisions superseded by this plan diff --git a/plans/645/migration-and-cleanup.md b/plans/645/migration-and-cleanup.md new file mode 100644 index 000000000..6d21bfb72 --- /dev/null +++ b/plans/645/migration-and-cleanup.md @@ -0,0 +1,106 @@ +# Migration And Cleanup + +The epic is not complete until replaced names and compatibility paths are removed from production code and current docs. + +## Scheduling Metadata Cleanup + +Remove or collapse the legacy `SchedulingHintResolver` path after `SchedulingMetadata` and `TaskSchedulingResolver` are stable. + +Accepted end states: + +- delete `SchedulingHintResolver`, or +- refactor/rename it into a metadata-oriented adapter where all model/provider inference lives behind `ColumnGenerator.get_scheduling_metadata()` and typed `SchedulingMetadataError` fallback behavior. + +Unacceptable end state: + +- a parallel fallback that independently introspects generators, configs, model registries, aliases, or admitted policy data under the old resolver contract. + +Final search gate should have no production/current-doc matches for: + +```text +SchedulingHintResolver +SchedulingHint +_model_aliases_for_generator +``` + +Independent scheduler-side `is_llm_bound` fallback is also migration-only and should be folded behind metadata/resource requests by epic completion. + +## Request Admission Cleanup + +The durable request-admission names are: + +- `ModelRequestExecutor` +- `RequestAdmissionController` +- `AdaptiveRequestAdmissionController` +- `RequestAdmissionConfig` +- `RunConfig.request_admission` +- `RequestDomain` + +Final search gate should have no production/current-doc matches for: + +```text +ThrottleManager +ThrottleDomain +ThrottleConfig +RunConfig.throttle +throttle_manager.py +``` + +Historical changelog text may remain only if it is clearly marked as historical and not presented as current API. + +## Task-Stage Wait Cleanup + +The durable architecture does not include: + +```text +needs_llm_wait +held_llm_wait +max_llm_wait_tasks +``` + +If a scheduler-level resource remains for LLM-bound work, it must be represented through `SchedulerResourceRequest`, `TaskAdmissionConfig`, and `AsyncCapacityPlan`, with names that describe scheduler task-stage pressure rather than request concurrency. + +## Compatibility Shim Rule + +Do not leave production compatibility aliases, subclasses, adapters, reexports, docs paths, or durable tests for replaced names at epic completion. + +Temporary names may exist inside a PR only if the same PR removes them before merge. + +## Gate Semantics + +Before the migration issues land, stale-name matches can exist as current-state evidence. + +By #653 close, legacy scheduling-hint production paths are gone and tests have moved to metadata/resolver coverage. + +By #657 close, request-admission code has no production `Throttle*` aliases, exports, modules, or durable tests. + +By #645 close, public/current docs use only the durable architecture vocabulary. Historical changelog or dev-note text can remain only when explicitly marked historical. + +## Documentation Cleanup + +Current user/operator docs should use: + +- `SchedulingMetadata` +- `TaskSchedulingResolver` +- `TaskAdmissionController` +- `TaskAdmissionPolicy` +- `TaskAdmissionLease` +- `ModelRequestExecutor` +- `RequestAdmissionController` +- `AdaptiveRequestAdmissionController` +- `RequestAdmissionConfig` +- `RuntimeCorrelationProvider` + +Docs must not present scheduler internals as plugin API. Plugin-facing docs should describe metadata only, then link to architecture docs for maintainers/operators. + +## Validation Commands + +Adjust paths as files move, but final PRs should include searches equivalent to: + +```bash +rg "SchedulingHintResolver|SchedulingHint|_model_aliases_for_generator|is_llm_bound" packages docs fern +rg "ThrottleManager|ThrottleDomain|ThrottleConfig|RunConfig\\.throttle|throttle_manager\\.py" packages docs fern +rg "needs_llm_wait|held_llm_wait|max_llm_wait_tasks" packages docs fern +``` + +Any remaining hit must be intentionally historical, not a current implementation or docs path. diff --git a/plans/645/observability.md b/plans/645/observability.md new file mode 100644 index 000000000..9520dbc47 --- /dev/null +++ b/plans/645/observability.md @@ -0,0 +1,151 @@ +# Observability + +Observability must explain which layer is limiting progress without collapsing scheduler admission and request admission into one subsystem. + +## Separate Event Streams + +`SchedulerAdmissionEventSink` emits scheduler-owned task admission events. + +`RequestAdmissionEventSink` emits provider/model/domain request admission events. + +Both sinks are generic first. OpenTelemetry, structured logs, dashboards, benchmarks, and debug tools are adapters or consumers. + +Sink failures must never interrupt generation. Event data can be collected under locks, but event emission should happen after locks are released. + +## Scheduler Admission Events + +Scheduler events describe dependency-ready work moving through ready ordering, task admission, worker spawn, and task lease release. + +Representative event kinds: + +- ready enqueued +- selected +- lease acquired +- worker spawned +- admission blocked +- group capped +- stale selection +- retry deferred +- non-retryable dropped +- cancelled +- salvage redispatched +- queue drained +- lease released +- completed + +Scheduler snapshots include: + +- queued total +- queued by group +- admitted/running by group +- submission available +- scheduler resources available + +Scheduler events must make `spawned_waiting_for_llm_lease` derivable and zero after the task-admission lease boundary lands. + +## Request Admission Events + +Request events describe provider/model/domain request admission and AIMD behavior. + +Representative event kinds: + +- registered +- effective cap changed +- queue formed +- wait started +- queue wait completed +- queue wait timeout +- queue drained +- rate limited +- limit decreased +- limit increased +- soft ceiling recovered +- fully recovered +- failure released + +Request snapshots include: + +- request resource +- effective max +- current limit +- in-flight count +- waiters +- cooldown remaining +- rate-limit ceiling +- consecutive rate limits + +Global provider/model snapshots capture effective static caps and aliases. + +## Runtime Correlation + +`RuntimeCorrelationProvider` carries current task context while the scheduler executes a task. The likely implementation is a context variable with set/reset/current behavior. + +`RuntimeCorrelation` contains primitive values only: + +- run id +- row group +- task column +- task type +- scheduling group kind +- scheduling group identity hash + +`ModelRequestExecutor` and event sinks read the current correlation context at event emission time. `AdaptiveRequestAdmissionController` remains keyed by provider/model/domain resources and does not import scheduler types. + +`CorrelatedRuntimeView` joins the timelines for diagnostics and benchmarks. + +## Joined Timeline + +The joined timeline should distinguish: + +```text +dependency readiness +ready enqueued +selected by fair queue +task lease acquired +worker spawned +request admission wait started +request lease acquired +provider request started +provider request completed +request lease released +task completed +task lease released +``` + +Runs should be diagnosable as limited by dependency readiness, ready-queue fairness, scheduler capacity, request-admission wait, provider cooldown/rate-limit behavior, transport/provider execution, or downstream completion. + +## Cardinality And Safety + +Metric-safe dimensions: + +- event kind +- scheduler resource kind +- request admission event kind +- provider name +- model id +- request domain +- algorithm + +Trace-only or sampled fields: + +- run id +- row group +- task column +- task type +- scheduling group identity hash +- queued maps by group + +Never emit: + +- prompts +- completions +- row values +- dataset records +- secrets +- raw provider response bodies +- raw exception payloads +- unbounded request IDs as metric labels + +## OpenTelemetry Rule + +Core runtime may provide an OTel bridge that depends on API-level primitives, but it must not configure OTel SDKs, exporters, or collectors. Applications embedding Data Designer own exporter configuration. diff --git a/plans/645/request-admission.md b/plans/645/request-admission.md new file mode 100644 index 000000000..ce2575683 --- /dev/null +++ b/plans/645/request-admission.md @@ -0,0 +1,118 @@ +# Request Admission + +Request admission controls concrete provider/model/domain calls at the moment they are made. It is separate from task admission because task-level scheduling cannot predict every model call inside arbitrary generator Python. + +## Runtime Shape + +```text +ModelRequestExecutor + -> RequestAdmissionController.acquire_async(RequestAdmissionItem) + -> RequestAdmissionLease + -> provider/model endpoint + -> release_success | release_rate_limited | release_failure +``` + +`ModelRequestExecutor` is the durable model-call boundary. It maps each concrete call to a request resource, acquires a lease, calls the provider, records timing, and releases the exact lease. + +## Dynamic Requests + +Custom generators may make zero, one, or many model requests depending on row data, branches, retries, validation failures, tool calls, or helper functions. `SchedulingMetadata` can describe static resource shape for task grouping, but it is not an exact request-count promise. + +Therefore: + +- task admission must not pre-acquire request permits +- request admission happens at concrete model-call time +- each acquired request lease is released exactly once +- request-level wait and provider execution timing remain visible separately + +## Durable Names + +The durable interface name is `RequestAdmissionController`. + +The durable V1 implementation name is `AdaptiveRequestAdmissionController`. + +The durable model-call boundary name is `ModelRequestExecutor`. + +The durable config vocabulary is `RequestAdmissionConfig` and `RunConfig.request_admission` if a run config surface exists. + +Do not keep production aliases, shims, subclasses, adapters, exports, docs paths, or durable tests for: + +- `ThrottleManager` +- `ThrottleDomain` +- `ThrottleConfig` +- `RunConfig.throttle` +- `throttle_manager.py` + +## Request Resource Model + +`RequestResourceKey` identifies: + +- provider name +- model id +- request domain + +`RequestDomain` includes domains such as chat, embedding, image, and healthcheck. + +`RequestAdmissionItem` contains resource, group, and optional timeout. `RequestGroupSpec` contains resource key and weight. + +`RequestAdmissionDecision` is `RequestAdmissionLease | RequestAdmissionDenied`. + +`RequestAdmissionLease` records the item, acquired timestamp, current adaptive limit, and effective max. + +`RequestAdmissionDenied` records item, reason, retry timing, availability timing, and optional snapshot. + +`RequestAdmissionController.pressure` exposes the read-only `RequestPressureSnapshotProvider`. + +## AdaptiveRequestAdmissionController + +`AdaptiveRequestAdmissionController` is the AIMD-backed request controller. It owns: + +- request fair queueing +- request admission policy +- adaptive request limit state +- provider/model/domain in-flight counts +- waiters +- cooldown state +- rate-limit cascades +- additive increase and multiplicative decrease +- request pressure snapshots + +Internal `RequestFairQueue`, `RequestAdmissionPolicy`, and `AdaptiveRequestLimitState` are part of the single canonical request-admission implementation. They are not a second public wrapper around request admission. + +## Release Classification + +`ModelRequestExecutor` releases the exact acquired lease through: + +- `release_success(lease)` after provider success +- `release_rate_limited(lease, retry_after)` after provider rate-limit response +- `release_failure(lease)` after non-rate-limit failure, cancellation, timeout, or unexpected exception + +The release path is responsible for exactly-once accounting. Key-only release paths are not durable. + +## Request Pressure Snapshots + +`RequestPressureSnapshotProvider` exposes read-only state to diagnostics, benchmarks, telemetry, and future task policies. + +Domain snapshots include: + +- request resource +- effective max +- current limit +- in-flight count +- waiters +- blocked-until timing +- cooldown remaining +- rate-limit ceiling +- consecutive rate limits + +Global snapshots include provider/model effective caps and aliases. + +Task admission may read these snapshots as advisory input in later policy work. It must not mutate request state or emulate request admission. + +## Non-Goals + +- Do not make request admission aware of DAG dependencies. +- Do not make request admission own row-group lifecycle or ready-work ordering. +- Do not replace AIMD with token-bucket or leaky-bucket behavior in V1. +- Do not require static prediction of all model calls. +- Do not make task-level `TaskAdmissionController` responsible for provider retry, cooldown, or AIMD updates. diff --git a/plans/645/task-admission.md b/plans/645/task-admission.md new file mode 100644 index 000000000..cf594a6d8 --- /dev/null +++ b/plans/645/task-admission.md @@ -0,0 +1,133 @@ +# Task Admission + +Task admission controls when dependency-ready dataset work may become a running worker. It is scheduler-level admission, not provider/model request admission. + +## Control Owner + +`AsyncTaskScheduler` is the control owner. Its dispatch loop follows this shape: + +```python +selection = queue.select_next(admission.is_eligible) +if selection is None: + wait_for_wake() + return + +lease = admission.try_acquire(selection.item, queue.view()) +if lease is None: + wait_for_wake() + return + +committed = queue.commit(selection) +if committed is None: + admission.release(lease) + wake_dispatch_loop() + return + +spawn_worker(committed, lease) +``` + +`FairTaskQueue` selects candidates. `TaskAdmissionController` leases scheduler resources. The scheduler coordinates both. + +## Queue Semantics + +`FairTaskQueue` owns ready-work ordering only. + +Rules: + +- `select_next(...)` is non-mutating. +- `select_next(...)` calls the eligibility callback with candidates and queue view. +- `QueueSelection` returns to `AsyncTaskScheduler`. +- `commit(selection)` removes the selected task and advances queue state. +- The queue does not track admitted/running counts after this epic. +- The queue does not inspect model registries, provider pressure, or request-admission state. + +## Admission Semantics + +`TaskAdmissionController` owns: + +- scheduler-resource availability +- task-stage leases +- admitted/running resource counts +- per-group accounting used by policy +- release on every worker terminal path + +`TaskAdmissionPolicy` owns: + +- eligibility decisions +- acquisition/release policy callbacks +- strict fair admission +- bounded-borrow behavior +- future resource-vector policy decisions + +`TaskAdmissionController` consumes `SchedulableTask`, `SchedulerResourceRequest`, `QueueView`, and `TaskAdmissionView`. It must not inspect `ColumnGenerator`, config layout, model registry, or provider registry directly. + +## V1 Lease Boundary + +The first task-admission implementation is lease-only and behavior-preserving. It centralizes resource ownership without changing fairness policy beyond what is required to eliminate hidden waiters and make root work visible. + +V1 includes: + +- submission capacity for scheduler-spawned work +- task-stage LLM-wait style resource if a distinct scheduler-stage resource remains +- current per-group admitted/running cap behavior + +V1 excludes: + +- row-group admission +- concrete provider/model/domain request admission +- public runtime knobs +- distributed scheduling +- token budgets +- provider retry and AIMD behavior + +## Root And From-Scratch Work + +Root/from-scratch tasks must become `SchedulableTask`s and enter the same `FairTaskQueue` as downstream ready tasks. They must acquire scheduler-level leases through `TaskAdmissionController`. + +No root dispatch path should bypass: + +- ready queue membership +- queue selection +- task admission +- lease release accounting +- scheduler admission telemetry + +This is required for heavy-root live-traffic evidence and later bounded-borrow policy. + +## Resource Handoff + +Resource-bound work must not become a spawned worker that waits for scheduler-level resources. The lease is acquired before spawn. + +Non-resource-bound work holds the relevant scheduler lease until worker completion. Resource-bound work holds the scheduler resource lease that represents the V1 task-stage resource request. Durable `needs_llm_wait` and `held_llm_wait` fields are not part of the target architecture. + +## Bounded Borrow Policy + +`BoundedBorrowTaskAdmissionPolicy` is the first behavior-changing follow-up after the lease boundary. It limits how far one group may borrow ahead while no peer group is queued. + +Policy inputs: + +- `QueueView`: queued counts and peer pressure. +- `TaskAdmissionView`: leased/running counts and resources available. +- `TaskGroupSpec`: group key and weight. +- candidate `SchedulerResourceRequest`. + +Policy constraints: + +- Single-group workloads remain live. +- A solo heavy group may borrow only to its borrow ceiling. +- When peer queue pressure exists and a group has borrow debt, that group receives no further admissions while an eligible peer has queued work and the required resource is available. +- The policy must not traverse the DAG inside `FairTaskQueue`. +- No public knob is added until benchmark evidence supports it. + +## Resource-Vector Direction + +Future policy work may use `SchedulerResourceKey` and `SchedulerResourceRequest` for multi-resource admission. Candidate resources include submission, LLM-wait, provider/model task-stage hints, local resources, and GPU slots if reliable metadata exists. + +Resource-vector policy must: + +- remain scheduler-internal unless a later design explicitly changes public metadata fields +- consume resolved metadata from `TaskSchedulingResolver` +- avoid duplicating provider/model/domain AIMD request admission +- use `RequestPressureSnapshotProvider` only as read-only pressure input +- preserve single-resource and single-group liveness +- produce benchmark evidence through the benchmark harness From 59dbb47a17c3e728b16ef156cf03607f98a723a7 Mon Sep 17 00:00:00 2001 From: "Eric W. Tramel" Date: Thu, 14 May 2026 13:57:19 -0400 Subject: [PATCH 09/33] docs: tighten async scheduling plan contracts Resolve the second review pass over plans/645 by making the Markdown spec and UML source agree on task admission, request admission, capacity, telemetry, benchmark, migration, and issue-map contracts. Key updates include canonical event names, richer AsyncCapacityPlan fields, request waiter and cancellation semantics, timed wakeups, retry/salvage lease ordering, and clearer public/internal documentation boundaries. Signed-off-by: Eric W. Tramel --- plans/645/AsyncSchedulingEpicComponent.png | Bin 51739 -> 61721 bytes plans/645/AsyncSchedulingEpicIssueMap.png | Bin 31055 -> 38107 bytes .../AsyncSchedulingEpicRuntimeSequence.png | Bin 107275 -> 262691 bytes ...ncSchedulingRequestAdmissionClassModel.png | Bin 70505 -> 120203 bytes ...ncSchedulingSupportContractsClassModel.png | Bin 48023 -> 90775 bytes ...AsyncSchedulingTaskAdmissionClassModel.png | Bin 76776 -> 118400 bytes plans/645/README.md | 39 +- plans/645/architecture.md | 64 +- plans/645/async-scheduling-epic.puml | 606 ++++++++++++++---- plans/645/benchmark-plan.md | 95 ++- plans/645/capacity-model.md | 52 +- plans/645/contracts.md | 381 ++++++++++- plans/645/issue-map.md | 24 +- plans/645/migration-and-cleanup.md | 25 +- plans/645/observability.md | 131 ++-- plans/645/request-admission.md | 121 +++- plans/645/task-admission.md | 79 ++- 17 files changed, 1347 insertions(+), 270 deletions(-) diff --git a/plans/645/AsyncSchedulingEpicComponent.png b/plans/645/AsyncSchedulingEpicComponent.png index a638ba97114f1adff7d03cc6c33e064e08864f90..4eab0b4e39870b4647c15f7e9e93893598cdf71e 100644 GIT binary patch literal 61721 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 literal 51739 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�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

A(XaKI+7c9|!% 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 diff --git a/plans/645/AsyncSchedulingEpicIssueMap.png b/plans/645/AsyncSchedulingEpicIssueMap.png index 28f230c8cdaee5a9b9a7c2aa0fe75d0d263a7d78..383107f7243b461b88ea61e8530576736b8a1db3 100644 GIT binary patch literal 38107 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%0AIwlz*!^)F)(-qWuc;zs-GGG+P{zVJ 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 literal 31055 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 r*g#JcI!qgHe2 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ℜ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 h4)L?3@d?>d&u<&EVAL4jYad(kSAovH8d*~ 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 kZ13K$vU&m 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 RhWybh$SB{)`P1mZ{{g%VG<^U7 literal 107275 zcmc$_Wn5d&)-Xzywpb}GE~ONAC~j>jPzYAsDNu^L2df~ZSh3(vfB?ZQXz@aD0>LQ~ z+#$i?4edG4eLkGud;jNtx$DcG-|X3IW|q&|vqDsr

^7KET1jA&`IjMh*Lz#=*g5 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

0qs@Q(5>Az%8)iJ;_wdO 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 diff --git a/plans/645/AsyncSchedulingSupportContractsClassModel.png b/plans/645/AsyncSchedulingSupportContractsClassModel.png index d16e10d3d2ebd7d81380848e276be245402f754d..7ca61218aa11404739f34f4ce307711db90932fd 100644 GIT binary patch literal 90775 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�}#YklYZK~SbGVlhzduHc-7 zNYU@<>hKLl-OIW5woeK@Bl)0ehH=L}(Ovi_EE74OHz)jFe+d(pbZ>V^%QoSnF!opc zfkgOJ?<2faMl5=q5ty6}w@U3%rO^>z$gys7%0Y?%$(4KLX0O|VPMni<#FRM)e!IakR68HXn>=dp>{fhmIA88~d}+F0>IA}lE{E4HR4*rsHiCyY7M$r+Jm$#NrlckTm_<+zWs7o~-X*c$%X05Uw$KDb$kAG*k0E1yb}SIBbZGR9ebRi(sxJF4IC8@oKp*INh5$47+>MfxAjL8prJ z&#CnvqGJ|B4rh~>Ukuz_ahouCGTit327#06@yR3MF7>A)ICHE5h0@iq5_?#nY@KY2 zVM$rIFYI`!D=o5yXW%{qKjM%{Nl`j-lRm*ib$g}X(4S%X^v!nvsp-BFQbUnvGaC@b z&EzT$zx;?l+r2qD3n^+m4DqxRrcLGyooN(w@L{N~cDkQxQ(T6{Vk~qdj@cZzZa_zb z+bV2*OTf!^*IyDBIugFxO-jGjbPDF+*R)R@5Kq7U%qW%n*WUW|$IHOQ#H2cTI37qM z^t!9)LcWK#Ugbb9LB~*3hB%YaDOf#-@V6rxDs*rDlD110;-gUP$8U*CXz|y!D&q4u z$0kCkH7#HPMHX$Qd-KN7S7<8a^&z|mH0~8cL!h6(#|+m=^}5M1n1Ovn=klJ+&FJJu zZ`Ev*7DZG&wtbV*JAQ7Tw@_5KqWFSC?UjsSq0v=R;*soZKXEMi(EPeACYTzw=I94K zU+&ez064$AY1^+9qalh;Lc&xhyu#lr1}diyBtU|hMIi382{zJN^t`l4K~^b+N83Wv zFpJxba!R5hpv4hVpxrSa#WLyjM8_GozH-&lMqsi?nW^!o&Z#3P3P4D#y{61+J1Rn` zF%495IfFa3_bZv_cI)!(Vwyl}7(9&<1#I0rax=Y>VtpeMDRxbG}_+Svid>p<)ML_$J zNSyB>K2&uZ!+%>M`2P@CQm;$J^14CrSCee}e|qvL#91{)2|lt(UD zCx=FBW0tM=YRQp(nsi*3)^guwY&i+*|!=EU~zgDVtIpfj5ci6kfI+!riPn`c8aN)Y=H~SV@R{{GG zoF9F*EoOub%Z&as$C`Z^8U*Sg82pW}80ne!wSL&F5LR|4uETArm{m>nCy+I@JGMdCbi?4LZm5?=eX)OG&_*5;>O-$QwlYq&ks^tT##ha29{kkptX=yRh%u(JpEHU zw^gFyxsL^)FRiJlu;0v!^EwZdi8G{sr7}S2f46Gb^T^dBiS{)ZeK%gHex-MF5t14k z3Aw}Mt8f5<2-yII&2CcBFR#n z2VOE&1KF%nOz6)ClA_r{tmhF`KXrv%vGmHRXO10EoLySjEm{9Lt~s5socso1C^M|5CQ~dY&9SfyohhbG>MFKL%?fvSrWSqIf7^-OC=6 zHBN58(`T>CnK#%xrT)ZD%UHpZUqlhZ=;-ax?^Vs3vB_;fC^WUheb;IAj4xoWQ^So6 z+6%|b4|4oy$nl)}_Xj3M?Z0i|`w43uye==T*@MuGi%iTs!${B_M@T>>Vhe9Dsi zGo?kq&4I=Y{6vX*iWgM=oz4Q$Rq7wN^o2-gq?c|b0=;JGFi|2GVr2D$E1Wut(yoH_ zyy8?kL_ZoeKKsCc?*$zCSv+Sl1bp3_rt%oHA9ez$&e~HwDW2A2(;_mArl6iE88yq; zcT1{nFbx=1OW^Dtle_|?8l0Iz7T~NZ;I`XC&|&#JE(IDhFuLw}x)%Is)&%@0{-f1u3ai>k`1=UL`JTj5tjn@cY}_>EKXS;h7X zh;7XxnXo~jqKO^-s2(phbUFggpViy;Fy2h-h$L=V+6Fb-2M>%n&(Pw>A<$40m2U|a z6%vcU_$r}*Hi9KI2u8tX1VOwz03E%i^?|9J0W1<@-}FhkiaUR;^4!5$BDgEwbq|T_ zx$w|c2)-x}8`>jp;7a&eGF9;p6>n`g3ej}QHt1WF9)W|W=ma^aGf-hYDJyz6JngMa6V#+3D<-2qa2l#zDE1psm^;PsREPc z)3jAspy4XJ-tQK8UsXhUq-KX)#Qt%bX;+P`tl5{r1_#m5`m9#UG0y{Th=&byhNh;D z!TiV)dGEQ7v&KmuDzl-aRqBp-%2Cge!Rw9u%*BcngP?MC%PXV^OR@ppR-vo2{?B@Y z#+eBN?qBEI+?aZp*HJaj9jsl!9!Jp#9Z50XDI@@exf0GWRgStwvR!S^h` zyY|&6SXfJ_^y~8s`7VN-RrT!vjNbz?Y+pBWgF}_-dR_M8hBMxJ`u+WOL^F>TSCQ;S z5YxAQ&-*uifit_;gi?n=UgVTe3i$PYYoFu3wc|7x|62R2{pNN_^D0o_QL`&btqNQ4 z$=-0Bv~=1VWT2`2X48tDV_w@gp1)}8zd$_3B%kWN=>%LVt*^YOmj~696hUWzY-9xe;V6Y+uux-R4B$!zY_W^l^UO zngsXMH+prJhw~=|!}akYUeY*EE9(ai3KiIL_r*rOEi^)3S0zh(Bf|G2qg++^%eoKMOA8>;Qf3~4nF8#2-zSmTiV`W%&aK%MD zS5ehQ;u5?@w*_f|zqZ1b@2pD>dS$oIIAL3xHH>bN&euZ?^7^Z%F8jA)r<3w_K0Bc< zZ3>hdU&er)GpTocaGI{`m~sFOA?S>bOQ#FTI~tl)~{bQ$w;Y*#~#NVKsYWGxnxjgsV%F-;HeG9X7l z$&@(LSEK3ZyefC+!_@10KZ{ec4RtE^4~otd(|h$SDSKa7%;3XG%86qYUq z_HJok7kQ2!^}2Q$(%_)5s)t5Y^Pn2jFGCRQ_4CA{ba~MqL`|ypf5O=;cD?xFD1PsY zsoMdcZ4i*LElR(3C}#C-Zdb6w?w=mZ5XE@%VoKNGUu*?$)uFK2vJZsjrWpuG)QD?>;P}6nrS;mdEq^HvnXSZLBpDzM#maIjKw%T|$r2Q_K zo;KVk($wvyO$oQV48zD@C#zOG=aXXv(f{F;lJP*U?qQybn_K!V5HGJ`k5g^9w(o`&%!hGvwVSrS zw>lU~X_alNwl?xE*F}*f<3H}<}@1g#xXMYR7}jQ<BnaR0 z5{aI1WDEsTR78x%iIz&#Milc!6561H6VAkQjfJ%GiEDb$)h&YC!?$^T@AeZ{ z(U5Tu{b}{f#yZsnu7ew7rMLSLigKKiBS=P2=NQ24w>7Z?0fmqt9L!4;n94Ivj=9z; zCBfl?8v1)sDS;W|?%nTBk%rpQ*)`=0Kcz4J0Lle=pEe-}y;kmRvZrTi+^>lJM~@y2 z=_!W)j!xPzw+Oy@86&j*M29M4=U(l3X)ogv(O5#&$4cgoO5Tz9V4~6^P*ma0sJAKMG4Ba}r*jxJ+n+l&!#G}zKH@aRv_KqHq zsQ8q`d4Bz1*8tugc_5RPkJcF=R+zvQDS2ho=skCXtM<9%`kj?TtaXlHs>SM37xj=V z?xssgGQ6{E^qjmnEwK0)(gggcbxjjSrxm2Q$AT7(HGGG%S}Xkeb@@%?5B?lAiQ_x# zz9;d7=l2G7E<;O>O6nl2qkP^Cdn#uiH3FerDM{?_ZPaHTe-!IYYs{pTy6D2y23ogs zEeq(k9z0is+`kz=5A1P;VNmCYs1oSSmI9W9xS=8%uZU)6A33Rd#%oP^=vEG$ToE?j z?9cVJLBI{mkDTD5q7TgT>I`3##4HiSxZ9K~?lId^;2$e>50p?{_J=~CBCB*^MQIW- zpjk8Em*LeuYd=jXOzoIXHT>i=pW}T4f8? zEUbOBGh?d_l)d#hE_}oz9A)`d6fG77L9U`)z&uULikyF2gN-=r8kUWLTZ9wv{!RxL zFyeuopig~0&y)L6X4~1udFyu5>dTb}GFwT7d4L(pN5nN5AbwYT?#RUaHUfRw6U_l# zVwX7RqcjXkj*-;5BtvOCj<}=m*feeKrTyqq761Ybm111qS{~Np2rg|404VD-)P2#F z>iIEk-7ICy^R8iI31s~k`7`!7=VmpF4y!FUXLBu;xV32OxwP!>nYc%;@>WjNf+~z3n3AaGK)0|g& zD(HVL0OcImU-2-qKbW1N#BJ`ybZBfWfKp>AY;?(twnG_N(4hG$JWzDJP3k?muOHVB1hpNKYiPO9 zxGpqrGVFY~2eAMa-YfKOainPXj*#kq1ZmlVhuUetNK!-JUp=&Qm1ebS`YZ@6h$;dI zIv&*|^lQlVX*TX9kKGVU>9u;}!q6Dg1Jmm3@*^^*QdAk83s*J-Oq$b}gB%jzil6p7 z1Ai4JN`_zFY^Je+!4{GJf4+Xo7j|HS_2l6{+p;0*;eF2PNC6}Hsg+z$K4-M8x~uD4 z7Jo+uhSN65+`L;$YL4P+bvNp}E)T|%>rG$6VS?A@dT~s0P6@`6Shh+3DDc^>oa6F* l1uPbNT@oCumjepy68i{uh#E){L<$D_la*AGs1h>_{6Erd?(QTw1a}Ya&LF|v-3JW>cL;8`N#6I| z^SkTZb-uN}`KN}ar@E@TYCpU7vnyCuS_Byp2N47UA&ZF$%7Z`%l^_tD8v-nFg^uK# z9tiZzSXNR|2>28JB?1BhJQ5NTDk=&pDk>K4+js9U-@SW>PeMRQ_MVs+pNNQvhK7uq znwst-3oR2J9TPnrJ3T!en4X>r3@-TC68!E|I%E<{UD@!OVD=WyUs;H{S>np0MN$Kdw>*(mHTWD(8d^Xhf(bZKnHdfQq z(=)I#G;lUHayBt?F*VWsVrdv+VWDkp{n^UO%G|`s+SJ#|!P?rv#?sx|%H77w-`2*; z$==%6!6Med!O+Rc$=S)p(bm`5#o5`##o5QjF2vC>%*ET=%GK4?+sE4Fi>qh+7q7&x zKF--+U9 za7t)+T4Yepx3Hq9=%9wkD6jYg-LletW6YEpcnlrN#M{^R#GPAzr=0#>^X66?}=al8;mlu3*&CTq{&FwAB>nkeG zm@mnM78b>nl_wSy6qJ=f$}5t}s>;i2D~g88i$^O;$E#}cH!3QVYJg95V_khlb$w0U zkNU=@?3NZtEAVN{YirN%=`HE$>FMn&?dvZa9I6~19v&U585@U8O*c$UP0h|VLKj+= zSK1dA7FJd}Ha2@VxB50WH@CL?clU;lfY0&R(ecso$@t01$>r7T)%EPd~fV;J8| zDKOQj9E4OI^sQ}NEewquKq7`#hIYCRh6eBTT;H2GIM~>8(9zjg=vp~AT3XQRTU$Df z3=jgd_S{ra)#2akAQ+$?m(*NU32R)|H!Vly@7?5OC8X@P+gZM{+2TAe4V^)>qYQx) z3jffdX(wQpTOjt}9vIH~o<^ZQ?6$|JIy7V%~yEg$2sILJv2BOKt( zo%uDm!AhL-n0(ajY2xpp_01zy4qrT+QNrzx@QTCk!#(;%nc=x3l`@xMIHc0RKm8() zoLB7@Tr%Fi)IWI@(P}t+0Okvef9~USawTRX`)*CagX3$&C~0h6PfacTko=vZ4`f@x zqYa@SnFBkc{yS%GDf-YwyJwF&9Li@17oV@?+L@jT{O8rr(OaIeWa7dqhDeIoFB-nc zV9ss-tdqv!->4x<8x)okKXyEW86{|RlJ^>@dqMY-o(P$TV2W$=yR0sp$4^-S+WG^6 zDg=a|$MbBAM@{g1XsR)+^{Eu}DE$k8+ZLWlSU==PwCjIUr;aH1U(qg!BAiIfM&}=N zPEL%sJ@EUVxOm^RO@F5hNBa4_Vzlp+RPDAgq+LgBWkqi6YuCddriT-fu6?8)`B<9` z>H9KYp9~b8{v-8IT0KHUiybq8a@}q1hyK1k>sdngK@py;F9xCsmmjVuuVM(-nm@bz zChvW5yl(z%n7Z(bp4x^qCzbn(g|sXA)Q-e!IHdzMZR7VW#q={9uSlO?urlXQs*?Kb zfSkU6ZRTgE*BJ2mEqp_$jyMyGg;!7_tJJrJX{v84Wa3G}mG9I}KER{IR`(XIz@NI~ z%S*ax#CHfHa-XwOUgRy3`s8uvOo^;Yi7Z4u^S1d;JjEwnw+;0V#%iB^oz@6DAHEpY zQ|Q`NZ;AKN?u*1`z9={}-Aw;h7&86Nttvkt25pGZ0I3dn<`i_q0_KH(;7GK6QKi2{ z{9P-GqjO6S$Eh^F3O^)m6W5Ua_ptDuV#7#k@^9&o3&rW+Vy5ZgA8);aR#y3nb8x}t zC_DO-9>)!_iUl4dEU%qf*zzAC32G{E;m4CnK@KS_WCmj&n-?ZadGY2@6su11sPK>>bt*L3;!ovctlZ{!$+H)hDp9XG_oVKTZVb2XqD;f7>b;)*p6SWupHu(m=Q} zay{(l5*!tth;>to*+^T5^BSG2Y#M5&VEtSeHD9-QIN5AdOJhw=pwzQ3JK@0Y=oo4d zzAGIXW1c0Efk7oE;B1U=@U4SsVsa6jlG!xKoP*QjB5e~+VO0If?i7o$o7|+ZUjZy< zplu;pR4$ew6GJE(A#UvXwH^7u`gdd1%udZI&Ng*B9T}PsnNrhHx7jq-e1? z8;ib8x019*PBTU-o}M+8p^g4JpCSWh+Mgqrkm)tI$!=ZEXYD~?ANrM#n18^)F!d;7 zIQsG;^mlR&fA5c@rlC~@50NB+q|kS3a5!WiUQ2gOeCMx!y_bx9X~y#6BAfl9K+2bE zFxDy3OLKgoP)sDK+_s&|I)Ry%DJzbv^mx0a1Kan_cEck(Q5A12&C&y6g!RhG3hJK5 zhZg*+^Jum*UTJ|{>9>8WWe6kY2A`xc_{10A)G}5K@Y$AwqH}Q%QfWEz!i_U~g`|US zlSJp__WhezuW*{URcC=s3@B2Pfd&}7SnfqPX z_R6~7(vvdzk3k+Wy-E<140+46xx7y%ce`8t??)^rM!L#DARmyJ;3q{F=>8ItrlR9A z?{PU}$M*Zl7@V6o363iAlM_uPn6<9Kn!}M(N;w2f!>!31q#x;Ud46bvKjn5vBvTf` zgjAO9kt$HM(@d5)3=Z;85m7xO?dy8)dq3(ql7t=Ejy;l;H0rLyxs|$df9LgFXDgL` z^4GhkP-CL00D%Wekc~!=Dp2sQRIXy8tNl!arAcu>W|Dt*MT-Xlo@%UMzs$eocrFoGnV=## zpKy)tSw=3D^h3BSE$B{im%yu~Uf=o9$u}x3X*khrFYmBSYD+rh@K%eO8^(v6uj|>W z)o7f3iX79g$A+Z4-{%zFw*_}QHzG8~y+7TPIBB-!(zKMJe&Vn1r452o8h8rN~155a;iKLPc736NoVCr8<~ z--x94q@}XlT;x7i!_vRM6(@sU3Ufbp(hlXN5&6T7WXLX&;4u1&>a27;z8?_FS`z%? z>|zxDqp)}{Ealz^8JU9P!N-?NWKbc43uHqAjMw2T<%gVwCG!ZZ01Gag6Xgg)Ve!W= z%j&JXN^Dgh4X+p4cP}VQ6TOG&Mp;;74#Ahde~2=Ua{XjwftW>j4eZ3J-7b&?#wc10 z>Ght>c1IsOy<#OU6f!kg3${r}N|ZD7!mMBmp`+PT3Z}e$b6v^O)sHGXvVp~O zxi!!KX=f;hL5jVZ_PR^!Xnd-89Lb;IrDHeQRhh~`8FN|uqUupfLS+2jvVQ235`1A2@R(0N6_MJ)D zFB`*1pqP_8r{`D7!aUhQ@y_)gh8aLFRT&RU$%=?|iih1*uCMZ)2@Vs5owd zAkfg1!G*xnqvD#&Y$D2iOY)hT=Y|XG;mXdpK~i)StWmj5n%n-kQBzsW%%48V$x*Tv zkxXMw4twaTl|xYT1>Ug_a_w#oIvJCN?KoV|txtEKjB1uGYf*d?E1(9qJEzHA+gw9; zs$i-^5(E6=4-k(BNhFKeXnwxB;+lU4^F3;n8_TC>yh!a_#(_`dk?9wFR>7FPzKDbf zI2UnroWN62NEbmX2S&mFTh=oufi~D@0fo(mJ8w>t3X{a_q4G+4_($6@Wh2tSH@&4y zv1wzHgmDaWNK7ov@>tQWNvx~==7_TY471_Fjs0(3gPj;i8oExsB$!!R_yr4RhsC42 z$aLGTzGi0?L6G?He(~~!w1zE5iLn;@$X%s_s~A_c{CwgeG>)lGZ)SV$tL9JsFj*C_ zt;H;%e=2^A3RE1Ae)gBMU;y-Q$LMKJfR4GsgT~kZ6kv|lz!1)hGcH$Eh!v49T;Fef zDBj^m5IR~;Wj`~ey~mS7fIBwawD&eE?M}pC_)J-{?HQk}WSvAc!{We}(8O3?_epuU zJYq_tkGwiUnJbP&LZNnezcwGr>)Q1;9wiK&1O(Kod{DsfcrXjk0YTa}Ze zx;u(&ellkW-Vilml$(BcHZNLfMcA7BO?D4mWm~t19hb5gZA0bkKsJTB@Sw3EkAf{h zW-!8I@}zJcMM_r8A(><0a`$SSd1fba#BK9-D}ZopK2^6-GTTc;4Lpp`3B5+D6TqsidJXz+`(6*mrgh31kyiOOS03d@@)d)eHU_ur>G~M` zj;IY7 za8gn(13U3loD`m+Q-NsFcJp+t!POyn8e6RQX!qxLP$QQixD##EXSlI!8wA1;iqSWV z0JS9~I&x4kRd_GVljo~PSOgc&EXw<)qcQz!X*B``}%ty+ksDPE6qSgY8OQk4v+Ruw<*QAg|}u%Jek z;DV(+a?*beQt9-z2ZaUSGxa^%GE;6Dno?JbQv1;`|2gGV8YFq# zBqPs4L%jSRC#W-XK1{}W0sc~a(zY?WXJLynWNHRNTR-!xsyZ%!G@fzF_#0@|%nN;* z00uNAVr;J_WngEWzjuGu6Pl)o4R!S#(h37}f>!Tslo0+f4d-Qmc>LefkpGRp)alB( z1JC2jQE&%+cid?$N>hICtRkA5LQeSX_NvCZx9wmk9 z+*RhDR8RbMuCmhvDx>DWNF-qrSD50mBi<_Hk)xYFj9jC4Q8(r3`n?8HOa5BeV%F%F zfu}wtG7KcCsyJ#bU+|B$8od$czXZ6hD7hR!H+72QU9`*jm7?CxU2^9YQI#I^FX zZ3b&*fZuF?8l^V1sG^Y3raXy?Cv*$x@ZJdW_$u$-14k|P;Q<>gwusue-1QdKFE{!+ zRAScD624L?@31RAZNly3n*EMXBwelb;~1Q?u;0J}UtpGT)A@0QiQ z=992cVi?aJY%C{xz?wZ-3WKGU)fKbQEEX-~n~aG=eULXKf*kiO_C;dXDhbPBS>Dkw6N6R$bWhflHSblF8IiIdPJq10JiG;E|$@)y%&kIyNOvi70;7Vl3j zTgr>W2-b*(kSnAAP!7ifftX=b{DJrQ@m)M?`l;z4*vz#M84eYa)wwjE8WCfb*m``8 z(Mb>l$C!=}H7wOGp~*qx?jxiwdhRq&zuS4j-(Mzphl`icUA6Y-@mxt#c#IHo&*t-_ z$GdE)NrX%#+&ex(J=`6E1ZscFiW2V1Ywtz?r<(pF|&F}LzYwo1FLj}axFxbSx9W? zTBlcTe?|oJjx4_+tu>3lHepLc&O6#6h_01)ubqy48f>XHC8C1XmS$xv{~B$l6J=XC zIqfLd$`uf}Ar^{hRbJ`$Jabo2)%w=47G$E8NRZJ!->3E-hlj!#hEF$9LdACC7^bsMyon?P-3KGkgg^+GQml?6zM)I}X>j zf5wOACZA0J~Oz2cmNqB2bKKaHBG+p~z=h@*8IM5h@ zAk7&4BnL|YlsY5zfVbz6-2!v8r^u7%JSM%vGB4c8B{u)!7zAp1M~r2Xm>8gRdygSf zSjxQ-!=5cNYa5$&0mQW?Y#!?8w2sYdBMbE;n-e$jC58p()Hc@3XS87xqJkC zEfglCIam~LUjXO~`=-)oP_wzHzpVC1L6;T;YU{QkM5-V9b!_m_DK2-w00mE+hd^}QEvYKm`rG%A*_P7RTqenXpstK>EtmQpivgE5!Ag~>=bY_wnq2C7y}Dcn z@oH8}UcXX5aQvc%rX`4QR!>1qs^^S5A5ChHUP*MrU8~(`S_|)u#%v$*NjK6*j_9en zu~`896u~?Ep#;5lIqjj~Lz>rmuXF9uaNd}4^eb2qz5pGI)>Az{XFeUef#i#zZCKwt zA=Kv8Lc(S9g2TJ}GlrjZ=YIfcT$?As0QfRKFK~ z$gpR*-k4?!jj&x;Sw=ad{a=c$?72G zC{)Qs-^u{tZ2>|jdf1T_p3Nt5EZoTH=K%kDTICr?zu(IdUTDNNqE#Mg+Q=C6=YL!% z*vJLX*m;yOk_@?}p6rj&nxD_~2h*8N%=;24gn6spi_VzqndP3d)6alA{9*?! z5a%zt^EA=za()K$NEe;dk%b~hLdXD3;yE!^L52+nuH?!j_ssfz)c#)6wt5IPQ`dTA zDtgRHN|DKaYL-ypFKr^%fg!277ommz9@rwV#E6ES3E~SabIq?Es1jSM2@U_E-8{?t zVqm%8d@1IaT+DeG zs+!{49jrs4UNbl2p;}i~-m0oY(dlH!`95prM#vvN0cbv=#hLIxY}y66lK25)-K?qw z?i+Km5oPxo7!cntR=ERIpPsbc4$I_M^EVG*sP6Zv3a{VmQ7k z)ya4Y?$5v5nofv(9s=u_4H0S#%^WF|MS4T3p1MD?gAtZ=?(`8ltyn`ItJ}!9;5k^u z1~SxXQa#hY6;3+*cxs-_4?B=N)9_AVRx)?JlOF^+^u1O6zWn=jgk#kGk9Qr*T4wvxhVXJTmik*#ZWz%>#ZO1n1HI2Z+c7 z599!x=meOT&hafJz?y-7zXD(eDE|lX>TSD#9Smp@!FjpE@*U$8!563JGfAN+tgxVZ z0D|hn@}~)aAA-sd0S)Yre94^s)ZPI#)-0g-3<6=;gPUfelmO4Y%&J zy4?_Ps`5%C9HG^VKQh|tw-A)|Ja3DPRHq5row4@|vBvSU%VoYV@QR9&FWdczK%jHr zX~taV%h`r|L1o$yvdUY4D}PFHUi7&oGJpZe;-|ldmu54EPRB0+965es?!JW6^mjO} zO@7PTNHsQ*Sp*!YEgz_a{GG|Ai&4xUB5Ul71#kIn^>QTwM+URpQv=^6(tWaQ?I|KK zF5se%vdSEijn4O};LNTss$>{I!SuHpyDeOiJ?D&uEXIuW@%xi&95lqqOM1H5sWxRb z2?0L920#gj64D3_-b?j+g6JAf;(J087jVOv7iVX|!d|zhEzZ{&`B6eUM;W@co!c1^ zQcAxN;!YJ(JU&;Lul@-wj7cdiY6rZ&bcgRPSGAdxJg~|y6oKWi4!r7-Ij)`FPYnjl zI19VI&aAKN`R;gP6jaf0XQ`s875}nSvOYjVIgUqS>_?rKl;1 zf3TL`22pF;ikN0ogo5`-rqf@-A1@7qKvsUm{Hw7io$E%M&#T-C$)~Rd8BZyN7n>zf z5XCfVsrUtQ>K_*AY8*acVs)2l zrW1^OTpK2FU+eZ~$L8|_nCH^GxmE zN_AoZ0vR*qre>gOYOfZqDAq#9JT_8Mbyms};B@+cmn&z$Crt+{w+0b}Hp-xvgv5Jh9w+%XpAz_xY54tMC!~q4JC8(=1r-q-WclDF4zqD*vPnV z-I-*0qeb#~_1jQQnzb_8L&xO%PI%QP-$AD93{l<|UJ=v%YC|1;?P`=_ZroMZ+VEi& zcLdOwtW-F#6+M1#y4HH`ZQ8Tc#gF;LU?#@jJ*Mod3^CJA_o-fVH(tR|6jlEvKJ$Cq z$P4H!JJnEI;sRFifW2qAOGJ0>%_bI4sIwY~3v*c?CjTzsjV3)VS@hVBpJ(_ojz*B! z555$_5Bm9HlxTN+9 zZ#b>H@NM9FN!}a494iK?@-YqNS`~UV^BRu`Y&1c^HU8%n5l*SF=q)*YkN2*bhg!p;dJW zEM(!ALVC~pMkh(Rq9`2F`y%>$ZDTwV_Wk^|ywFrcV`wx$ErR_z+TXGlbJdPi-xl;X zl=GNUl`ku%LJCesFAbhenBwOlQhL;BR^tK)!%!+dD6xhJA5#4h3pHWbX{lt3=r=X( zw?sPHteUn{IKvl~7$dUV2_L}+`7|6!k-1#Pdnhq!nx=I4Fi1YV?Mg&81Cw6nJL27E zL)r}J5KU?#x0cQ?r60*^_hV;5sUur=Ql=l664RoLXUe&`PlYJ;0Ww-ySoMsg)zfvQ zQR+&5NKWqN*7#R&nl44BMR4yb?(Lw_=-40@1*9MTg^;7^%xU3Pt%k#Ws49d1QGA_&&Y0%>sW>&w zaILDKCV0WIIz4diNc&o}G?e0Fh2AG#`XFP9-?;JOn{>2V`4D`Ik@=g>=OAr3R3x^I z)*FKF5Umaa%0CPhH>{_&!#Mo!mV5jk$SOo*LL7uw*DDUmedbSEX&+$8x$B`!K(+v86)6)iRhko|d&C zbSM)}Bd?eMxlP?bf{rl?O8)$@Vg85Ye)$zcSz;5#w!n|NV5m@nyYhXkd|32=YG9Ai zHxD4qg)31BLxCFL+r`sijFfmh7N8p-75_GNI!~vIw&WFqm)N7P52}FULqzb>_i znTnit0(OlnV+x}|(VVr+joTj6t~~eC>xG1?;3H zy+$8w%YQn66I=4#OM1_;;;wH=N^_sh@p{A!=w<39kHs|k+lPk^gvQbrYWt@AQr(+> zNv_@}l_fBtC~0*+*df@P#P4`rB9+vzGxM3U`$sKYXo6sVv*Bcrg@4jKRtQBrFyXIW zbYga5omtMNSOj3ztIU@_ETec!-q~IRP%OlYV~_xuMSz&E=Ey1C37jtA(MaEY?W=0d ziaEsb_cm6>GB;LLQ*Y`SlO94aZQfri)!Sog2e99sdbAcz95O>k#Z@nn*;?>&a)b4#8wVylsSCP%7!Lw03C`{15M+`d1`~ zWpG&Oxnz7%8;#iYq)FU1=z36w+)*5e4z-f2hca|AXOc5Wa5*R{ii#tPdLErZZPqy6 za%y^5-K7oj%`RZMKEgQI~L zS^fPv?!Q7u?bf0=PJ3D@ImkrvkA}_lDLMOSh~dncE%BP}a~VR-AbB%!r`~IaNV-@% z)e>Tx$Gh@U?qIdG%&G#KLhmW!pQ_-Z#}r3$6g)9p`vqb-SK1_Vq4KpRq!=1bU0YfU zGPNF~mN?**SSAQdGDzsu3`_s$zMx{%(MYze463)N-6J!X)pRs$VH2!g<{53#5%HS{ z&l8~JK9rt;15Nn=8;|ziAyS_$ujK=1$K+bB>U!lW`3xoW;#9hVq^9S#hd^5mK&|2`G#A_LU=KqTpV*!MA?=Jy6?C{H6AqqY=ZfOSjr2 zL^I8IHT$Bx14DcT{22y>;ui$Re9&HrT*y)y?o-j_t<&d`LsN(pXK}a-)FjaTOo9*FFTT zAwR*2>r)Ea;9PT!AX0ToVtwK9YjtjBQP)(bQ!reHnw3t$jJS5^r&KZ-JMgz+=hV4l zTFp$DPDSgAKa{0YO)T!tv6d4*c5vAU^BYbaD9Qp8hRQi*(xg z96z{s*kXM5nobI^y_+IpUAE4Mz+fg0kb_X$-& zR6CIUA&GkQa^=cCW|@KzYrw9a`XIDY8#Wo8tzft-d$QHNSo?tG6a(ag0(b+Y=a2i) zLuX#14o)7GX*uNT-RLnKB`H2EC2VDbA1A(&9U|-W_#sPlkPS(#Uj{CnjZP~V%BZbZ z1qmzXqT}xV%5XC{>r!3sF|_s&zRuLVC$l~MuZDQV?FAmSp5)fk=|#c0OQtISqb|*9 z5ufdIX?39A@nj5l2b%xgLJ*})kz`PJ?5E!D#^iY@$fx#A75^jN?*-8sqE#m|+2+w? zSO()u?a%4faDS8-LPNn6GWM2ON`S9YoAesUig~F9C}s5*26B0_L4>6l^pcsVw8MP? zMf}`oTl{hgLmxuc^NA|P_Ey|sk70sT+prU?hVtYJh3?2rAB&H^2$?tfi6y;QYo*HD z=^sEK24wB{M1)Sp&(y6tsysbtjdiLwhlV_%A>#3ZV|!;wezewd<#f(FJww$Myz!d& zuH5FIu;Cs39-2dF=JeNU=2m#u18Cs z2qmV8@X~YjvyyfPOEyOt(upL1OPPMe?%#Lrx-wP$y4I8!G6|tW)uN8-p(3CPEh|rA zx3gB=r9XS?a9;+&Pb4}y=+BbOe8UUP?4b7-u4m>^+}IPd&n%%dKzlj)nW~aILZCP} z@07^M4Y97_jAWMg>>cPAu;7@YDWb~8cZKf8B{I^uD>hjv&qR11Cji|qJ>oFJjTAHY`V<8Q&i{MdHwpJAj?%mS~L2(+Y& z;nVhMsfW8Qvu6yufg}P|=wb#9*ii!O0W7*4=<#lVg`c|`_xp{#iF!^Q~hLF zwKF0M0knt+EU0#mUr{`Qg!?k9-d4oF>16BBZe2#?fz-7 zWgZNO3l9*2J6g!B8NHRpx#&;Si8UmL{_gRTd`IRuPTe3_HH9P>bidb;fw70@z?59+uacmc zY8hF)VxP`F2t|;J>+5K>fsVGkloN4KoAtr?@{8SY+I}GGAF}iN((6ipEuxyWZ#lL? zI7yF4XdMzR!t*vHIXoX|Fm`(HGijH6y4%rJQO^*YySo+gGfo{8ywow)lvWA{bJNzA z%yRVM+TTkn2Pkx}ya(u#7xI5M3O}6e490pUQj-~tS5bF9fEPa*Tj0Akt0O_DP;cMf zoV<`615zWES6nrJQy-L@8<^{(VhMzh=KM~y_y%ZlU{L z-FV*D_q6D{WCVUb7B>5VY_|T0eycAhQg4il)OuT;RoeaNjkwk3>Q3i8s}hrDA5%y@ zIFyFg&hS1@mY(lYm?#7u>FoBhFwt+;3N0S*7}+ilrnd_InCg3w3k|yVo?k?|PqDs_ zuJ2sEGi!w`iS?~L=&(VXJ|xS_I}6&x-NMJ(3e|H}7B;D|1Q0E>Zcdc-#>uwj53fJ0 zU#RX;nBGde9hjV7ww zDrvFVjl;KURd;+s)bjDmpT^aBJ95hnbjnh_v!K=7qx z#O+yITAMo!D1Gx%VOOpI^85Pm-DL!YDg-5F#fnzleY$rM#se47S65w!au3TEdT|HSI31@LKrVz$y@2kd$WJ80;TZO%@Kb5Fz%Fg<%*M!acI)I#va$Quzm@Ny24!S#$3C4r}(LL-ascj-KKlCdFfJoSRYnkutr34 zgVKtXFG_WO7Ei^Oj$ezPBzt+6pDi^VB;erL+N3Rh@_cKzp0AOF{!6;%%VAC#>|Z*u zM^SOSr{3y1W>tt+sqs~BbIDm*T^KNqi-hSkTp|JS=!Ch1@y&4=J&w3DoO-oqb@crpNf-l?cK` zngM;{_>lP(`OA$j%w@e0*qa&>>br-Tgr^h}^xdcRte(kw?YxrBp_V@NJ3wf(Nr10! z-tsT=TMO1C*Ys4YUSq2lzjpoMNA73j_sYt{`J{YewE<14lm%j-IW;=3aI+czj~FGAFwFZaKtxmULM+Zo=bTv|4w1?9`&+&@NXqk^JxZ;V zTqJOVJJp-|;qN+S8@MZ}Guc*Ns_4v=u)S`XNRD*H%ETt}#mzXTLQbb9DlR0wzMh#k zAiw|S5r9G79fy@KPob-$Qa~&n?m{sY<0f0;JA7kvwGrc1+x2e#asteC>gSbKf_*(v zA(5Nt1#ZuaF#jF9KH@)Z^j3TbHE7T1-V_E@4rCcpPyf3oz*eq5H7IDdG>M<_Oy9AJ zv17%AxfYWS`CXq~u7UKd)uebx(2pj}`9W)yU+-f4d!AI+_puFsgj9KrnKdBChG-3^ zewnjYC0#NszW$l}N7F5kGgQH1sy}&It}Gc$>?$P{C9Rn3U>guiPMRTJ>8GV-`t_h-l-h#{oR*Upoz<20B%B_sRe(B?$gJabWw=*%~ZZnfG;>je=W7U#tV8{#2;ObPaZ z46cn)1dt2nT`#iq4&<}yvdgB-K)mJDDcZPih$K-1vLP2|&7k^q*el)}IImHx!%nZa z))aCveE63h6M)+wCoz*+4#_+WN&bYM@}uN(QWaZNiJB>1$@?s2hk8yGwV~BsW6lBk zlw_!bS}M?DDomisxO;fesW|DFjMTs`ftF>%>ninyiWD2u>#lTr6Utj8(qOb5oYHUz zm_)-idO)Msd_e@>wh!V!VB~Bze+3Ttq$m=y=FdrL!g@tDt@SKVgW}#fjM6qUn=De@< ztU1?6cS;$twB!1`1X>OMS@edj(7HTMh^RC{t4T?7T)nm6c$JZ?^iP;gY!&oi1VXCA zgjV+P(U4?%VF}yOs8oW&zmfN}R=iN_=LOD&2tS&!J+4T1KQzwoNKgz9p1i!TY0lb* z*q1PaUR)?tUP>23+V<$4ZY@|mhIS-!EeAs>hrOnhI*p8%J>)w2Ty~bDFMbqymK;tJ zYN8Xvy1uryTy$O6gw4M3n{!*>k@qo4+o&PYrN7MH6k=%?YdjX&Z4ZOI{P=uT>zDvI zm$A_%2S1TPC7Aw#R@fP-oTtr0EsEN$*hPx}FUm-1~XvZ8^Y%{sbp zp^01(<+l#X!+V=zhpe?638oLcl!f&f9{LgQv)uC1GMD5puSYq? z0wDEA+@LIHz~B9PL1N`a34@!1@sef&|t{Y(~phOliIn0G#*t8Piwoj0)c z*#F;C1Z`q2SnPmd;c3JFa+Dab2w?&W`(NeaC2qzWsSXAZ=oV(i4UKu=;62WjazP44OSg)vN|&*pq>Z4%b+H z-Se22^}pOm$n0`+^BsILQMr?bh=9yGfaZxQ*`ZysyaSlvGEK2txt#l}WUR7($4ZUK za2f&sunCSFV_FhO*d&9M4q$wWo|?zhoEHRa7SU<^B={ZMoiA^|CA>Zh&*{B=o~(_0 z?>*Rnnn^Wm?OapZp3 zV<02jCPsOM`BIxIahvEA$;g?Npx&jpmyskXek(bd+i|7o4?^nrqUl)~V7$bgMGiFedwbVB>d78kaL|5D@w|~gma=LZqVNEqz9N)Dfv=u@ckTRg8 z+uBQ`ZS851+(hcdZ$1|lw{5W55jENC{x%ReI4fO;)mVqUbPjUA+LfEHxSHTkxA+Fq zMm~Br0VGav9g z->KagSXx&5hYlOU)o?di_(YP`bX)KsvU8G^*TkvPQ2kz1J%lg5?iDsw)f@Flcl-ug zMt-sZ0JHloLn)WL|B~=uqr8)~nrp1fLP?}c>fH?jI>bgtL8*9W+_(vjnnv+ z&o!67Eb^-OJi}wSKVl{L8y@qAn&`XTo4W6cs>;Bqs9dO2jpQY|nBdQphy0j%s_4lx z0iFPC=bQE!(gdCc2%aNk!~1-lANj!gr;+y4GYZv!s#l8FZ}(av_H0=0gB z;E)*XBFQWbEc_8062zf8xKr3>1$3G}omm)k6aeV(A2b=@k7j+#$h;(D-%ht4p?BZG zrT_J74{aa@|FjIrz{PMfYEY#9FVi@x>WRaxz2*e0$lEdp4~3EzsgrjXQWy_m7?q{q z?oRU3?6J@04dgOjcpQ?}Of;Fy8OHb|KF*!)0Lmq8~R#38F|MvllJQ)N;AD4n^kXAvd5H-0z+~_ zmNg8!1Dxo|Pa2j~jRW~_9L?r_N#@-(fHvP}%mwFPCHHjq+ zcQ;7vh7;9ml91+GIkPbZy#Vc-LR4r~q6Hxnxpze=^HZC*Y=9}~_ju-;VGo!!&Ka#c zUOdy>UOi@j=w(UAb1J3lOO>D74VT1xikq(C3oZHK_9W8;V4p3(J^}jvwa?#q`Gt>6J8-z>?=dU@5ddrlfjpjkbn+q4r_=B{ zfcOj)PllBLgx;t2tOWcM2L9t1mru+wjT;Cg3j@@GmM#R;NcHr z|AIMR{spLQGH2C}+vkNEqg2s3H-+FqHGIZXkZ40Pc#SMudZf_3G{xh23i3;(d#X~q^K>F9H$p-rf{vSeGV3A|qzNP+|MqpV=Z21T)Vklw`pzb9sU}tDB7FU8 zQlax=0#Y)_=EXAoa~o7mx--jU)yK2Ic(5+`mdOf@MF(4S$^d%z?m|003hvkJgTL2I zH1=j?o%v8%c$gbA%&NG{lift4i6_-F(C{9M>~rRThK2Z`@n$7%HP6qVXZE3~W+gn1 z7bWtyvF(9R{Xa(YXC*Y&9&CN@cI-`nH9^4owhH&LU2HTeCL*s?B(0>`EQ9Il4FDeG zx#nxb)}V^IX6oByC4n^Kar6lI(_oZ+5C4^hh(off55Jaim=hj{=?;&?I9Hgx(B#H- zyg%2S5?kP(sP=hP4$Cukk8G4-mEL5M{a9Zx%K%>?K1F*EXC@zIPt4vHEVOR=lo5Wt z2uUw<^_|%mlM$6kL`IIVRr#*_rm+N`MLgr2mrB%LuN5$U?gsVpJMpB*X%9e-6Pj7` z0}DN8R+*lHo=b4Xk&#Yl5XS)8(dMBb1M=tTR$mm6uKQd;`~W-x$=QXA zss3nxjtPd0(l==7ys8H=FIK+%OA1VN@2!_RTax=_yaLy__buzEYWB9AFAcMkd>ahb z$l&?2MpyFu&o5hN;yv#nn{{L}UFHw_ z=4ZJ{VnmGHhfJX}1v-P&ag`?u3HTle< z_r>wTC(X4J1ERX=F38}rDkCq6FUN0^X5d^b%1&C^l1@e%`lINOyAh z@zDHIl3+n_Q3Rdexxf>;O8x%=592OfK&i}3tDAy@IIJg=w0{_4wtJS8SpS zcqpiC7Qg}WpPhgg>-)2(nfLc7uIBUEK@Z%2YX+##HMq3g+sN#G;Ql}YB7!K3^mH%J z`|R|Lt@-;xC<$Bv+=ck;0QuxoaY9ve+^rrq&_}z5uFcdx z3Fo6~eyz`VdovN3vi^-Z)2w?`cjgzn>wSiH)&(WZ6rzeh=uh)gsP?S)x!5X8!taK# z+g-;=jGi0Xh>+QO?@aI@ZPSlC>W{W-Sxcz;F(~95|Bn30g>*K?v|47?(Y0;(C0blyx(4VES+cq=lgU11yc69+%83r}t@F~(`f`h7!q$0Q%F zU*jtp>&s7^;aaOv%FwPN1qSw4?)*?wa$$UAnsIs75bV%b9xofx&E#c{RtxJVzA)#f zcFec+6MOLmgG|2!s)vsYz$2*1JW;W*bSWkhQ``Q2J2>le_NXub?-|#EEqLA&^fWFb zg$VP=Q#0&vIRduA21txJyDBKR?@iprgwEd)SX5TuZEa4~OWpg4+M4Jl4*lxOLVTf++-?Xng6Z5BQLEfIz!LGzR?A0I8mSK#^}ZGjb_(u22(mA|NWyKJH6I$9ve zG-aUheTj}*t;Zo1QobN+6uzn4h`}>qp1CFdGhzAXxaD1%f+ZqG2=CG6FwY%U*~9(( zK0y_`Ne;>a{ZG17HhqL&CrpWE1or|Ov_U}RRj)ev9@Fcn> z2|b|e_C-CW0doRCIJaQ|?Ux`Y)QRdc7D%9N_(01)&}IvC4)e(h@B2<#t<+Z8@Fk+2 zI|v<>2s%1fQyzLv+(?Ru`ab$EY9->cK$lql!o-PFz9%({ zJS-)S+q&z>7kM+dbf={u(oEwU0Qwz{Xwf=@ggGAUnOlPD(WfkS5J37k`q72YXhCWcPu zNl&V(X71$h9ew%~8&pjPemZ^lE?WW)=j77R3^F*F#x}C*T_I45Xq+s*m*@IIzYrpt zqp7hz!+*1*+VmF`8SY1QW#ys><4l{RBi@v>x8re187>Tiwy$=2zPtC zk>-U8&Hnqx4)40vih!W@{9L`1WdHlwlB_Y)};q=0ulr z|4uQ+E^;oH;$tq>gDB1vVKO0YfrQis3(%53gwNdW@zP|=xc?#Y&E6=(|Av&nJ_R}X zt?UsgI?%8P48;98!Y)&K*Lmet!QQYEmC0|0Z13u18$qa<$3dkr?yE676RDX~hcIF- zK!BkFATY}EnH_N1prN9yYlXH8={8ZHq6^`U-#uWzWLV9ExtgsJ|Bh5$x3nv|bl! zn9wu7Lp9-0=BDutsZs^Ofqq%YvBTt$IBg=Qo+3|Gy7Rg9+#iS|KKyo5A+weoG_b>- z9B&LgEVw_X{6dqYivO@8ZHz(gpEMU`2wM}s`6z+O!4(z+KEMvaONpC)-X$MmTL!ez zAK;VGnheF*=--Wt%Ndy zb^4h zv63HF^n%jHG8Hik^WiPnpFR9s?E4QQqN#qlG>G~`g3!Jyz^B5sI#7YKn<>==F^lb$Q&ACJoKNz;fB4IKVveH4Kk?NmxLpSs9@vpp znXxthjo!&luW%&!H_d~3oSEl&$%t88FaLjus$qAIyzCZbH%!RGR37H=Yr3R#h{6e* z#R&P?RE>N%Ctm{+e)@@#q5()Zq^w)wFWCccry;#oj0sSc>DMu==r8BG2e5KiS2T{^Zy<8PW@KT5@615eq%=7%+&5A>MJ4PP^2B~jm>&F! z+CwHGP#%$!YA>SzLCR*R1NZK)uP0_W_(iKynyYh3Q`&aTYlb5AcY=zk2G`9sK`w*3+M+B08&u%LN!Yp?)dKy^yT72r@aA0^XoI zt^~r;E9A-G7vsSz2onbsdK=15OCSpz)%=54O1aV7swP~7*oo_hpRNboCe5l;CK!QD3 z{mcNMm-TiP7Td?Vf3%@&{xGi2b~9~CennL5^OXo;&9Cm4hiUi4$xEZ_`^QJ#nE?9* zZrXjv+3A4~L(+q*Wykt#(Niao0ax>reT)$((z9`uLyNhQ8X3&T<%ffUsAGMVj}Uc0 zf^QR5I>8!z`408$2AZE#&jCB_(7*6k#|fUX?j;^D5-!ZI3T!6xuLh2l-4*SuQ;>es zg!L6)p}Rr7oSc;jm&;8yP1Z?wOx{yB;GJR4^E_)y@B2&dZ)pkde;50Hs~y6=lnU?w zMhyT~d3aK_kRS6dWY%d5&C^;ne)hizqBZtD-`vOC^Q|Cb=J3Gg;FMnWEx_>rJpG<3=orvN7`;~~}*&Tm#kmN|K z7s-=dkM4TcrSww17qjHc)mSJQ3VqL#(}{2Y0`k)}%sI9&VmNd~`s0@ux970GW} zlD;>x7iFe=Oz)WJae2xpqne7bU^4zmf$##=DzCUr?rbm+LGYgRU1vV?dknxK2V#!p z8CT5a+;Z4fHW$#J;Y_cZ)%sz}U-{E}UryUd#PmVDt*Hx!-}})jklNn~I`k%g2BsXk z;bRAXH9)W*Y)LsMQxq75%wf}cCom<6f?BpIbCuQH5RdX_~1r|6?;}5j?SQ}bw^$FV@)+Zu=w$^$pCkR`qiux z@W9Zo^Ughag}l-@enmomGBCpaaRUKwr*%Ns%pjM#jlH;@YZ4Zx8sqh6e&%ebzu;ao zRL|NJJ}~n6ZX-^f&jc(9`7XX-=;OH%g1K~dysU~Uo`pJ7vJW2+rD-4i=aEwYM z|6xNkmIR$mWN&m|wY62nZlrv7D(&QdC6f$ML|y7vcaeI076~CUvo_|wUSX=#f?`0U z|6n<}t}w1L>qRchcp3a);;`vAVB+vW5-27v(=;wEVVn-PHWixxvHm-QzUIW&=cT6i zS~X#qcoD&snW*8Po3$)L^<8{C_ur@b1<#E7dkc%I&u7Y}SJb{qcNm0&DX7AjAF;5W zuUp{*kp0A-p-#Kq*Wo)LjED9=liy8G5}?lfcg^V9sIk>m`y|EbVz%jCZ5=EK>Z9Tx zx`#Wp{B75yi*{zYV*3w@NGi-86iW63*l1NDJ!jfl;)%R|2?HcV!Lyd{a_y+EMHfwBQY( zGJ)Z!|9a8YE10~B=#^abm)Bt(slT;W1jcaK?6&DZ{CeLlJjss9KCg&>YP=UbYjj(F z+>bGLxSQql^~{N$`*sD{a?cFAVz7Ht9x87cdCC8LH(W|O!?1sE-{_NF)LLvSuYomS zK0*HdmUrGmWZy@hU-EvFKeZKENGSYXUY>?&=<@Rma<90$pphhs{d<~*ANOrFS;@J~ zt+s0?YtK*e0`p58W{p#aCUdaD64NQP9MTepQdF7>LKD5DS!`X-k3S`aQ*jmzWOOEw zlE2R zb@it8*w&j;#uX@Qz zFJmIbxaT^e9*pZso(ILB`H;j;WD??p&`=wD2u@8Yr-VaW7vLhjW+D`sLZXBW$#bm< za}%Q)|KRxmy!USBu)WwCggDqlHdQTwiAxT z$cp5N zBjaS&|5)uO8@kM6x5t90(<(>s|GUXdQNclTgK6@xk1z6$O)scZ>v{~4G@YH2mb=e~H0pwvqspd-zR1gD;9&hZ9d*cC zI7&fu#%?*K>L82LOvkhK01($^?^oW_XFN?Qozl3_9v_sBwz6qV3E;DW9)Y}Q52SK4 zvFJn*wE2TVit%&3u;i=6K!=xW_5C;5t2}P+|8JhR)j}*@Kw@=sJQTK<$zx&)qkMIf z8SdIjBqqVTn|6W0Et9e>|EV9hporpif*j-oB%Q!B;_+x}W~L}F1cq(3&h?(#1LjaE z2T>RiDSzME^Q?6lej5>6#)$LGu1$K@GPeG>J-hfFJq@$l&dEtlW7F|%p%BIo3guc$ zRD_#}XB(nI_p%6czl%_v^p>G`b|Z+x;kO?L;AL{?!=d&HcVU~>M?TsHQTF-2nm?*d zQ(pZDF7sDUFfNXUqJv5J828Ty%?KJQ(={ipLy;rNf)w4-y}s_FiPuUcSjsf?;RKfwGZv%Pqq&xh0? zQK6*!IZ!T{IPfv^xQvr|sEyH-Z;C;FE3N8!&a=$%s!!ALip!D{R}CX>zG+G?H9dFX z!EIc=y25k-q2wx3I2oF{%b2h%5iSaBK zOv;v?h%#DdcK zi;Ywv%l^HI6oRuAM%ntr6Z{2fFAJNW61CS4@$waDu!Rs8&runTm0VKnSkWhr zt%z8yf!rm(0*nunvOiDdOKSN>eJO7}j6Po8Auve3(L3VNTyJMObH1U4R@?0HlPXp-mWkqKtCEirz?z5ak;Pb;#-tAo2m59wfnSxSft><V?0TQxh3QBZBnCI6yiXkO9aHy9{P(Y;E9luY3zT|iY>szxV?HZbQXh}+8U zKiCAmuV*!&y7?WJ%Wi@xbjR6XO|0gvzcW1)7NM~SHdMN@7C4!aS;~F;yF6!s7*LW$ zCZfgK;lOyT{%zvpZHPUYWDyPl%8oCB@z~>x3yJl!-)WIp;C2)vkhH!M&A!w7HzZSiMp|dph?E;`wC4P1TK4Lio7!p0v;>^syWWC*Jy0R(#aKkL z{zY$}$i9@WSQv7Z#IP8r4lz;~ceV2s!i}O9)v8LGS@Varvuia2HhD*1+v}<&+LC94 zZNEiJQ_Hwa(U!|?)9ed4^p4aWC%I55L!8uKa=1x8I(X};IF1cl{?-CjX*6hvYsqULyYuqsfi#1u}u z$$0QOv0P+!sZ?WaR+(Y9P3s>jDy(FZ!CyeZ%IN-V?H%H6U)B?BG-n86k;jtOVQFPo zQO=5*wFHHqvyD!6yYy|Ff*}RpRv~c>Dp80+3BDX#KnX69?Q~hDr_3Va1SrecGK|)! z681)^h(`MajP1z)$)8{+#G9R#ap!^IA+$g|m=>;TZrU^Yfs;nVAIwwfBzk>NSjzdU z#qCLa9-*sUtrW6~JVJvq0%NgZQ%AE&vAt1U0?IJrz5wTYYJ`PVoUZD`bE%s&c@ea_ zXg_nK{Wc-d-&5A{u5{xG8$=j1yeCQh*?8a8jzKZE;c%Q@N{qwLLL3t~d@up;{K$QF zmvrDSzZR_!Qqz_!^-bsCW<8<0DB}Nmrj39~WGKsSCPu>%D1GVBA}-S?M5^BRk$+ zzt-}DVp28-XFk{U_oNn0*{7^j{~BIN?KUiW9X$h4EQ&Ji=IeT}A$?b6jB$+pZ4l4PS=3yh3*(>ilVM2i8WtoM_%|O-!%{iidxyBskvOVKx+x*n@ek z$a*4Fx1{3O^5$1S8i7^H_xE7ITJn$i>db7RA$$;$ZM^v!B$00*{$znZlrE&Mz)b@b zFNzZ{#)Fpg+;e2w@%_t?E}D@W`6cdHy7_qP_InvSIZU3#VTiVR;2f+s(ck5Nm7OTE zX)bUXYg*}0?livC2X50}gtneK=nr=x43#b^%giZZ-)77}(&8plNuW2E%=Kw!pkuSm zc+M}3^wJcgiG&g-C~raak{;;~NUGUJCENry(TQXS!; zxMm<#8wOb+ObE@yx>VZDM>sJGZkvD75o);1*E()=|MvA~R5H`Y-=6ZG@4>y-AJd+$ zQ5d04xNgGy@0cZ)eNM3dNhw|#zGsPYd^HL`Z<&i-QnO;LiLHK&xgCgdCC?dNbuOvw z>#*CZI8LJ|=O2*^8jhl@RDb^RLb=u`?V4#TVP|jaR;=5^jnH_g6Kdb*w3Sf@5J`{) zx`OJR@_k(YQkEc-fbO&MQwX4FFkmZQOIr!rVbdmk?cbK9NS6GjSl39Ce_{*9oaFY) z-NIL;5T(!W9hvDdDRE*WZD6!9S0w1C>U@>l^wJ)C9KAX)wi#z*;bJAHJnBa@3Rq!}>{x9un=;fI$5Ft0NwmjBA5p!u9^-@YVN zA_)+)`oe0c?7^KjM0MC0j`R32ld!@NGHOavJQ-IEX57EnzE09{fy`dmU2u>9&-`!t zleIn1+|^+Z#nVH2KxQ>rGc3h{nGfuTm_@`k3jUcE`5x-p9CubbHq=+}-^9=HoIQLn zHd^DdD)F}4G$82RS*M|#*lqP^FQibtmyaPsgt@(evMcpA;)qEh8vI`fi2*q%nc7jvMT2=eM1$znY3wN93(N+~aGsP04V_;)lppuD$6TCWjJ!z*HE#zAr0!F+dR@%f3$Evh_$kJCm`2y`%k=M&d49~lCDa5 zIK~PKLeuCt__I>2Ghdol)3CO5$H&a`im5iLTXV_HRqO{&f!5TXUFie*8R7=UNrIEO z!S2}o*W-SgHIHRDdT`P=He#B~T+n-8{1J(D%?syU;xJ(^>i|Z;bBNs*ut3GC!846bQ#^&&~KsUV*O|B0$iw#EJ@1?D9d^{3`$lVFxD{`N8!I zG^B(j`_D2aL)e6M4sO4J7tI?!Tf|0}v+OqP0k<+EiP^XdY0+itHZTXY{=&V8a}vO7za&v8N3O55^A%qRLA zG+E+pCVvRWvMB+!q8aMc<%&yS$M{kfYi-vX(W!yDVBaT)5)`Qqg^>9Ch$ z^CXP;{~vL%Z1dU5?nyX4q)5tg zh4ov4nt=H$lvdy$YoGv9A{13>sX~vY#INH|C4f zT}LJ}z_tOjYM14|*bIE18I!f^PBJZ)>AMpDj+Oc0zuBt&7D+LK+g{ilqp9l!Lg3(D zQvnQWyNt3HXx9f|UgPB?$E-lVYC~6MAgXgf{?GOQeuCE)rAz)I@#nStGF1ujTG+KG zRsHpt?%e&cadwQmd!Fwb@g(&w_SaR7Ngpj;26N@HitxlteDJq^j3D4X(L36bxGkKi zHGG5HMfq}Nu#Pa82KZox#tt-p>~{t&)Qt}yI*Mf4z{Uc<`~32|_l+PWzePsW$raSm zVX~uHE~P_MU9KeLE5c6_jPVl`C|C zfZZAV&Ei|gz{DhD&sFS?wHSREWvPi%>auC<)m*mE2QlA%ju9PvNvU8ZFdceU-fYn; z9kL(1pB0Jm3Djfj5`TCbfd~86k|58gto65qkIN!CU&yd#w|I8uA0;`La&T}sz@?+0 z2^~AH-{Q@Gp(ZrmQXhB|dDq8X(m&>oKoY?UuWfRmXwkDUoUkGUyIuH8`O=N1pr-|u zk{i@YvvZI)Ywj~&yF}J&+&_1dh=YlxdNVcb@*td?XX{zkam!z+V!U}rU7JB78CTr&J^-YsY>E-F?49ne?_YG2(Dvq_q z?x8e(Ya#Rbj_&jLG+Y=S@W5kEzO$vw;T`x_(CE)?yxTKdAmqgLf56s#4(d%N{G`fj zTjKKJ!cFDvIv0A_^W9J&Q5v*BYp4a0XheF?$#V#K1QPL8BQ%Qbyg zqSw0+d=Nn{OG?kFx~l;-LQAc1T4lKImmrv(_LA2{5x5^rDxeb__J8y+t4&f*r&WzB zEBAtPH#!YJnpM?t%yKq)o{JR$Z^Z+iP+F~Lv zqxk&?btnF6-k(85hOa(=;2Sx08t?autJAmFCOydwv2qyf>Mb%D?8HM}qok2LS!hsp z%xep3uHyHxU$AK~<&0u~{_0W-uy!%ecOq&By>HIRKdB-_2Ct=CVAtNI5*9-6Qil5WM`?t8hyPmt8?rlwSE0Kless( z=8{8;*GRN%)sv!INdU)9h-HUWUu=Ri)n?4R*uWEov5d|cRG49#9AZM zbLTX>^|Q1_;Wia$8lQAuTa(BXnq3up$IU?%d#v;nq{@`vULOe_Qxj9aB;=nS^RUO_ z4QlI@*xs^{(bfsoGuQ5`H6UkLz~fSx1B0F~516g+o90r(iO$k2i=%GaXeeLaMaq<`p1WpZlW*TDuZrednSHeT-Wpyr7_z%M#u=UJ7O55fR z?=myEBbHWHx$pm3iSD&h7adw_4qMk_v^M!oug>01S*rsE&$L$K-N!XV$QT#0ny?#x z-XSN~Qt)E+E$^GvPoKh4KjNiO8F+l3pR$qCJm|^}n z*88l!Uo($FC^n@c%H6*b7?jD`i3Rx3?}b#%{k}OtGGn%%6d?M2Xj7~Af7VqT3dkAR zl+rUGgLn}k9hsWjKZctGPi~{+m*|^?@parfR2lzp9Y0kp>t#d=={G-*d3JdqA}&0d ziBH32(VqJ~#W$MuUc&Al?}HQeQp~Nm-DACvcA8qERxj7qztp+$f+lrt9)}3{Ly_;t zELRV-!@k4SH#poesxqO0xiYY!3zilrCC%M>Id*Eg6j!CrS#NQ}zq%;D3FJTB>yDWz zan~4v2zo)j`a39H`^NTj(UfSZI~QUcjv-X{ZlN+V(SW$Qqnh(@lvCyvDVz42LWEV# zlh#6|>J7^4-U=8#Usg#_MTQo^Kyq(mS^Xd+tLR)~A&J9~T3uHjuRtoAZ_)1GeR{tO z{>s@>`XRzn)`$ZUTSr>4n0rPN+zOYLI){Nh?bdP9y&5t2J)<4yMl#(x6JInSZ`k88 zX9ac`&!e%VQtWM7u^^zNP1M5tU;3V^M0n?{B_}Fmcu+4dpoOsbF{3`g zitNg^Y>xPT?z3zOD3ew4#A?s4Hgm@$$q>K*-z}F8wyt}UCDk+DjMmv(K*Et2^4CPo zYoT5mddsZ-ltP`-0G1+E5&v86UdZze3*}_OYTq2vWk#7I5UW~x{^n4PxW@sT-rupD%{y$d|`V z?_DoW3r}%RZ!PS;EpfCQ7#{7ctA2at_A;@$nU|C*@(UtcJ+}pcMNa<7$)cEKR8}Z` zXFL?T&;IQ3u`db+79V#2nfYp-KibgLin--O;0v*l2#PuJnTOuGIwB5%lt9))Imgsvm+rx-P7Kf0po5pd1n8Dva+Y6@t;F7sn^V$hs!e`bs zM~DaiS8lF6d?K(`7=4xl8}6>{^A-!wsC$u?A`Z0Zynb;}R3-keC7YL@odgyMg+@cz z)84J*uNDGM&!eGJ7F2k0nN(ZpJ5&mQBi+EzPhEfM8{oxDOa^C>+wf8aa~5sRD!D?x zC0PUr-98yA*b9|{2@qi$F7k+VG!WCSdo0nor-q_|(*jWVKi)i$F`svg984h|GCwiU zW>&tjjTC&L>;DQr75kQx?xMJcZ}z{Ji=C)TP)YtUZV8C0VJ)`Eg(ZNdEi61xtyHm+b6tRt`0}68fSS5K5lvN zhlg$Tkx}FItD5fif4P?JJ-t&c?!uJZNls8(sgC32eoxJ|y61%OYc&NTqz|?dr51wE zBlJAD(0^powVb?zF7diYF)16mr_|3p?%Pg>WR2+LMC2VMPlzdJ@t(V7&HNlHgOo%F zvM+A2<31dM?tnPsD`9?7(k231t^IPEv?B?bLQDQlVE+^|(lDBO?GnjzxDvN_hJ0TAmoNAt^ivF_8@xHQznUj-xu%U>kSmhLk7K^ zS_oF?tNrX*U0vtc`ke(;y)oXOg_a{#3>nX3F5vFf3Dy8%L3N?7r^*_A_3^nQv=PV| z_^ZCa{_EIb_ucB5r<|FIZmarXo)w%!6+bw+7wwvIF1%M4kc7j{=XZ7|t4Xiqybk1$ zYuTK;jf`p(wU@^`q$l`sk*6G=`hLTdyX~#u>WNEs=wG|Pe5PWR!n*>;C1D@br66Bx z59oMy{S8=e8Lk6PDtb3+kRKsyXZ-)Ox?Tx?ngv=1*7&A}Au);@7eHu9*crYO8FUPz z&3KViZFsU+Hfa@SB{|dze0A&MV08$ci-#5m=1HN20^%M88T|wPMqde^IYII!T*Q6M zaFu@<(nYrgO}aURU52|r6}n64Rcs9LM8`3#Lzw&E+SImwoe^u5q+`x^u~ny#me}c6#>wbcitg_?J>Sl zMEtG$x6?!|Cz--QBqKd&B^zw7)tboq#=7m^B-Brzd6jLj8@5} zP*_Qisf2!Cxp(u?f@HNZVG|0wf%m(C>mfk`sRSjg7gDsIZ>4fvHYb=JBt&8tq~Vz& z68g6UW9K*6G5p9364HoSFEO5xyWHN~^?j>${5yK&j%_Sv#46^)vHXot>L~nF!-|KR z3u}ckOH0!oL+(WMUZbph3srSuF<&|rGe0d*gwC7)VRn2=)h9z!pFSH3p&pD(C}@h% z`sKO)Cr+HEk~Bf`P=HqA)@{Zewg781!wz|DL;ry%0!dd)N(yAOkqL#s3m;Jmt^CvdP8$7sqtnp-S02)*u1WM#cj+qg*11cNJ+wvu0=rFGX-A1W)7FLq{;rF8 z>k8{573HrutJWQby9adRC&)9$C88UzUP{}frEK_L!>AH}Y6no|dpU>m?M7iAuhS{h zKk0wbEn_Fst&l8jM9znuj?IM2INFNXg2c+e8Idmnd5tB&3A=$Un;x7Y!p#Vzi?8QJ zwreViEX8Xpz&XR;cc|r|csjSgqJ*+-g#Q5L(Cl>nz^-b%f!cMJZ*a&R0ZKg}Lm~0H zky5d~c}9;BvJHg~EPt!_>zg$$Vg|45+_31w z2Uef*hU+^}aOfLlx(-y7+DC3|%IrMkn%EDC`yf~kRT~1^d{W<>h}hj00(2D+)G^G? zB*;9>l3HT-_a1wu?wQ6lP+KD4^Rhr; zQTa{Q#-(AM{uFhCA19kX>Fn_oqns4M-+mNx_laz)jW!Ifg&I#TRW6+^E^_hX?{jh@ z4ioqp2h30Dd?s~j&DFL=aus@|M*yuMM_zySzbLpX%#D3B;ah&?* `akQjcC7Pz* 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 a-b^d_MIO!K>b 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�I6OHRpN4a{D@ezFaZmsWL++hX#%#ldH$X;6E78D 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 RCId4=X<@5zob+4V8$tBXpn3Yx51%I`eBF- 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 literal 76776 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 diff --git a/plans/645/README.md b/plans/645/README.md index d5a7acf31..56d55fd7d 100644 --- a/plans/645/README.md +++ b/plans/645/README.md @@ -4,22 +4,35 @@ Source-of-truth architecture plan for the async scheduling epic tracked by issue If an issue body and this plan disagree, update this plan first, then adjust the issue to reference the corrected section. +This directory is the maintainer source of truth while the epic is active. Issue 660 promotes the stabilized V1 content into current user/operator architecture docs and marks older pre-epic scheduling descriptions as historical or removes them. + ## Spec - [Architecture](architecture.md): target system shape, ownership boundaries, invariants, and non-goals. - [Contracts](contracts.md): durable DTO, protocol, event, and config names. - [Capacity model](capacity-model.md): layered capacity vocabulary and ownership. - [Task admission](task-admission.md): scheduler-owned ready selection, task leases, policy hooks, bounded borrowing, and resource-vector direction. -- [Request admission](request-admission.md): model-call admission, AIMD controller shape, dynamic request semantics, and no legacy throttle names. +- [Request admission](request-admission.md): model-call admission, AIMD controller shape, dynamic request semantics, and replacement of pre-epic request-control names. - [Observability](observability.md): scheduler events, request events, runtime correlation, snapshots, and cardinality rules. - [Benchmark plan](benchmark-plan.md): scenarios, metrics, A/B baselines, and required artifacts. - [Migration and cleanup](migration-and-cleanup.md): legacy-name removal, grep gates, and no-shim rules. - [Issue map](issue-map.md): how the GitHub issues map to this source-of-truth plan. +## Read This First + +Recommended reading paths: + +- Implementers: [Architecture](architecture.md), [Contracts](contracts.md), then the topic file for the issue being implemented. +- Plugin documentation authors: [Contracts](contracts.md#metadata-contracts), [Architecture](architecture.md#audience-and-api-boundaries), and [Migration and cleanup](migration-and-cleanup.md#documentation-cleanup). +- Operators and performance reviewers: [Capacity model](capacity-model.md), [Observability](observability.md), and [Benchmark plan](benchmark-plan.md). +- Issue owners: [Issue map](issue-map.md), then the linked source sections for the issue. + ## Source - [async-scheduling-epic.puml](async-scheduling-epic.puml): PlantUML source for every diagram on this page. +The PNG files in this directory are generated review artifacts. The PlantUML file is authoritative for diagram source. Any PR that changes the UML should regenerate the PNGs and include them in the same diff, or explicitly state why rendering was unavailable. + ## Component View ![Component view](AsyncSchedulingEpicComponent.png) @@ -53,10 +66,26 @@ plantuml plans/645/async-scheduling-epic.puml The expected runtime control owner is `AsyncTaskScheduler`: ```text -SchedulingMetadata -> TaskSchedulingResolver -> CompletionTracker -AsyncTaskScheduler -> FairTaskQueue.select_next(...) -AsyncTaskScheduler -> TaskAdmissionController.try_acquire(...) -AsyncTaskScheduler -> ModelRequestExecutor -> RequestAdmissionController -> provider/model endpoint +ColumnGenerator.get_scheduling_metadata() + -> SchedulingMetadata + -> TaskSchedulingResolver + -> ResolvedTaskScheduling + -> SchedulableTask inputs + +AsyncTaskScheduler + -> CompletionTracker.ready_frontier() + -> FairTaskQueue.enqueue(...) + -> FairTaskQueue.select_next(scheduler-owned eligibility callback) + -> TaskAdmissionController.try_acquire(...) + -> FairTaskQueue.commit(...) + -> execute admitted task/generator code + +Admitted task/generator code + -> model facade/provider boundary + -> ModelRequestExecutor.execute_attempt(...) per concrete request attempt + -> RequestAdmissionController.acquire_async(...) + -> provider/model endpoint + -> RequestAdmissionController.release(lease, outcome) ``` Task admission and request admission each have explicit controller, queue, policy, and lease/state boundaries where applicable. Telemetry observes scheduler admission and request admission separately, then issue 648 correlates the two timelines through the runtime correlation provider. diff --git a/plans/645/architecture.md b/plans/645/architecture.md index 0e9ffe3e4..6ebfdf362 100644 --- a/plans/645/architecture.md +++ b/plans/645/architecture.md @@ -10,24 +10,39 @@ The Markdown files in `plans/645` are the source of truth for this epic. The UML ## Target Shape -The durable runtime flow is: +The durable data-preparation flow is: ```text ColumnGenerator / plugin + -> ColumnGenerator.get_scheduling_metadata() -> SchedulingMetadata -> TaskSchedulingResolver - -> CompletionTracker - -> AsyncTaskScheduler - -> FairTaskQueue.select_next(TaskAdmissionController.is_eligible) - -> TaskAdmissionController.try_acquire(selection.item) - -> TaskAdmissionLease - -> ModelRequestExecutor + -> ResolvedTaskScheduling + -> SchedulableTask inputs +``` + +The durable runtime control flow is: + +```text +AsyncTaskScheduler + -> CompletionTracker.ready_frontier() + -> FairTaskQueue.enqueue(...) + -> FairTaskQueue.select_next(scheduler-owned eligibility callback) + -> TaskAdmissionController.try_acquire(selection.item, queue_view) + -> FairTaskQueue.commit(selection) + -> execute admitted task/generator code + +admitted task/generator code + -> model facade/provider boundary + -> ModelRequestExecutor.execute_attempt(...) -> RequestAdmissionController.acquire_async(RequestAdmissionItem) - -> RequestAdmissionLease -> provider/model endpoint + -> RequestAdmissionController.release(lease, outcome) ``` -This is not a passive pipeline where `FairTaskQueue` or `TaskAdmissionController` pushes work into the scheduler. `AsyncTaskScheduler` is the execution owner. It asks the readiness tracker for work, asks the queue to select a candidate through an admission eligibility callback, asks the task admission controller for a lease, commits the queue selection, executes the task, and releases the lease. +This is not a passive pipeline where `CompletionTracker`, `FairTaskQueue`, or `TaskAdmissionController` pushes work into the scheduler. `AsyncTaskScheduler` is the execution owner. It asks the readiness tracker for work, enqueues ready tasks, asks the queue to select a candidate through an admission eligibility callback, asks the task admission controller for a lease, commits the queue selection, executes the admitted task, and releases the lease. + +`ModelRequestExecutor` is not a scheduler task wrapper. It is reached only when admitted task/generator code makes a concrete model call through the model facade/provider boundary. A task may make zero, one, or many concrete calls; each call attempt receives request admission independently. ## Layer Responsibilities @@ -35,20 +50,41 @@ This is not a passive pipeline where `FairTaskQueue` or `TaskAdmissionController `TaskSchedulingResolver` is the internal bridge from generator metadata to scheduler inputs. It produces `ResolvedTaskScheduling`, including `TaskGroupSpec` and `SchedulerResourceRequest`, and appends scheduler-owned flow identity such as output columns. It is the only scheduler grouping bridge once the legacy resolver is removed. -`CompletionTracker` owns dependency readiness. It reports the ready frontier and completion state. It does not order ready work, admit resources, or inspect provider/model pressure. +`CompletionTracker` owns dependency readiness. It reports the ready frontier and completion state to `AsyncTaskScheduler`. It does not enqueue into the ready queue, order ready work, admit resources, or inspect provider/model pressure. `FairTaskQueue` owns ready-work membership and ordering. Its selection operation is non-mutating and takes an eligibility callback supplied by scheduler admission. It does not own dependency readiness, admitted counts, provider metadata, request admission, or policy state. -`TaskAdmissionController` owns scheduler-level task leases and resource accounting. `TaskAdmissionPolicy` decides whether a queued task is eligible under the current queue and admission views. The controller consumes resolved scheduler inputs and must not inspect generators, configs, model registries, or provider registries directly. +`TaskAdmissionController` owns scheduler-level task leases and resource accounting. `TaskAdmissionPolicy` decides whether a queued task is eligible under the current queue and admission views. The controller consumes resolved scheduler inputs and its engine-internal `TaskAdmissionConfig`; it must not inspect generators, user config layout, model registries, or provider registries directly. `AsyncTaskScheduler` owns runtime control flow. It wires readiness, queue selection, task admission, worker spawn, task execution, salvage/retry behavior, shutdown, and lease release. -`ModelRequestExecutor` is the durable model-call boundary. It maps each concrete provider/model/domain call to a `RequestAdmissionItem`, acquires a request lease, calls the provider, records request timing, and releases that exact lease on success, rate limit, failure, cancellation, or unexpected exception. +`ModelRequestExecutor` is the durable model-call boundary. It maps each concrete provider/model/domain call attempt to a `RequestAdmissionItem`, acquires a request lease, calls the provider, records request timing, and releases that exact lease with a classified outcome on success, rate limit, failure, cancellation, timeout, or unexpected exception. `RequestAdmissionController` owns request-level provider/model/domain admission. `AdaptiveRequestAdmissionController` is the V1 AIMD-backed implementation. Internal `RequestFairQueue`, `RequestAdmissionPolicy`, and `AdaptiveRequestLimitState` are implementation components of this controller, not a second public layer. `SchedulerAdmissionEventSink` and `RequestAdmissionEventSink` observe their own layers separately. `RuntimeCorrelationProvider` supplies shared runtime context, and `CorrelatedRuntimeView` joins timelines without collapsing the two telemetry systems. +## Audience And API Boundaries + +The plan uses several contract categories. Keeping them separate prevents internal scheduling mechanics from becoming accidental plugin API. + +| Audience | Durable surface | Must not expose | +| --- | --- | --- | +| Plugin authors | `ColumnGenerator.get_scheduling_metadata()` and `SchedulingMetadata` | queue state, task leases, request domains, AIMD state, runtime pressure | +| Users/operators | documented run config fields, `AsyncCapacityPlan`, benchmark and telemetry artifacts | internal queue/policy classes, per-lease mutation APIs | +| Engine implementers | scheduler/request admission protocols, DTOs, policies, snapshots, events | config-layer imports from engine runtime | +| Diagnostics and benchmarks | event DTOs, snapshots, correlation view, capacity plan | prompts, completions, row data, secrets, unbounded IDs as metric labels | + +Package ownership follows Data Designer's structural layering: + +| Package | Owns | +| --- | --- | +| `data-designer-config` | public configuration DTOs and generator-facing metadata, including `SchedulingMetadata`, metadata validation errors, and future stable config surfaces only after an issue explicitly promotes them to public API | +| `data-designer-engine` | scheduler runtime DTOs, task/request admission controllers, queues, policies, leases, snapshots, events, capacity plan construction, and benchmark harness internals | +| `data-designer` | public interface wiring, CLI/operator presentation, and integration docs; it may consume engine/config contracts but must not make engine internals plugin API | + +When a contract is shared across packages, the lower package owns the data definition and the higher package owns presentation or orchestration. Engine code may import config contracts; config code must not import engine runtime protocols. + ## Two-Stage Admission Task admission controls when ready dataset work may become a running worker. Request admission controls concrete provider/model/domain calls at the moment they are made. @@ -57,14 +93,18 @@ The split is required because arbitrary custom Python can make zero, one, or man Task admission may later consume request pressure snapshots as read-only policy input. It must not pre-acquire request permits, emulate AIMD, or wrap provider/model/domain request admission. +In V1, a task waiting inside request admission keeps its scheduler task lease until the task reaches a terminal outcome. This makes request wait visible without adding yield/reacquire complexity to the lease boundary. The cross-provider optimization target, where tasks blocked on one cooled-down provider do not occupy every scheduler slot while another provider has ready work, belongs to #651's provider/resource-aware task policy or an explicit later yield/reacquire design. + ## Core Invariants - Scheduler-level work is not spawned until `TaskAdmissionController` returns a `TaskAdmissionLease`. - `FairTaskQueue.select_next(...)` does not remove work or mutate virtual-time state. `commit(selection)` is the only queue operation that removes the selected task. +- `select_next(...)`, `try_acquire(...)`, and `commit(selection)` are coordinated by `AsyncTaskScheduler` under a single dispatch critical section or an equivalent versioned-selection protocol. - If `try_acquire(...)` succeeds but `commit(selection)` fails, the scheduler releases the task lease before retrying. - Every task lease and request lease is released exactly once in all success, failure, retry, cancellation, shutdown, and salvage paths. - Root/from-scratch work uses the same ready queue and task-admission path as downstream work. - Request admission happens only at concrete model-call time through `ModelRequestExecutor`. +- Provider retries are visible to request admission: each outbound attempt either re-enters `ModelRequestExecutor` or is owned by a retry loop inside it that acquires/releases per attempt. - Scheduler telemetry and request telemetry remain independently useful when the other subsystem is disabled. - Capacity and benchmark artifacts must distinguish dependency readiness, ready ordering, scheduler admission wait, request admission wait, provider execution, cooldown/rate-limit behavior, and task completion. diff --git a/plans/645/async-scheduling-epic.puml b/plans/645/async-scheduling-epic.puml index fb52b2ffa..dcb12a02e 100644 --- a/plans/645/async-scheduling-epic.puml +++ b/plans/645/async-scheduling-epic.puml @@ -19,12 +19,14 @@ endlegend actor "Generator / Plugin Author" as Author actor "Operator / Integrator" as Operator -component "Generator Metadata\nColumnGenerator\nSchedulingMetadata\nTaskSchedulingResolver\nissues 641, 646, 653, 652" as MetadataStage -component "Task Readiness and Ordering\nCompletionTracker\nFairTaskQueue\nSchedulableTask" as TaskQueueStage +component "Plugin Metadata Surface\nColumnGenerator.get_scheduling_metadata\nSchedulingMetadata\nissues 641, 652" as MetadataStage +component "Scheduler Metadata Resolver\nTaskSchedulingResolver\nResolvedTaskScheduling\nissues 646, 653" as ResolverStage +component "Dependency Readiness\nCompletionTracker" as ReadinessStage +component "Ready Work Ordering\nFairTaskQueue\nQueueView\nQueueSelection" as TaskQueueStage component "Task Admission\nTaskAdmissionController\nTaskAdmissionPolicy\nTaskAdmissionLease\nissue 644" as TaskAdmissionStage component "AsyncTaskScheduler\nexecution owner" as SchedulerStage -component "Model Request Boundary\nModelRequestExecutor" as ModelBoundaryStage -component "Request Admission\nRequestAdmissionController\nRequestFairQueue\nRequestAdmissionPolicy\nAdaptiveRequestLimitState\nissue 657" as RequestAdmissionStage +component "Model Request Boundary\nModel facade/provider boundary\nModelRequestExecutor\nper concrete request attempt" as ModelBoundaryStage +component "Request Admission\nRequestAdmissionController interface\nAdaptiveRequestAdmissionController\nRequestFairQueue / Policy / LimitState\nissue 657" as RequestAdmissionStage component "Provider / Model Endpoint" as ProviderStage component "Capacity Plan\nAsyncCapacityPlan\nTaskAdmissionConfig\nRequestAdmissionConfig\nissue 654" as CapacityStage @@ -32,11 +34,13 @@ component "Telemetry and Correlation\nSchedulerAdmissionEventSink\nRequestAdmiss component "Benchmark and Future Design\nbenchmark harness\nbounded-borrow policy\nresource-vector design\nissues 649, 650, 651" as EvidenceStage Author --> MetadataStage -MetadataStage -right-> TaskQueueStage : resolved task DTOs -SchedulerStage -left-> TaskQueueStage : select_next(...) -SchedulerStage -down-> TaskAdmissionStage : try_acquire(...) +MetadataStage -right-> ResolverStage : static metadata +ResolverStage -right-> ReadinessStage : SchedulableTask inputs +SchedulerStage -left-> ReadinessStage : ready_frontier() +SchedulerStage -left-> TaskQueueStage : enqueue / select_next / commit +SchedulerStage -down-> TaskAdmissionStage : eligibility / try_acquire TaskAdmissionStage -up-> SchedulerStage : TaskAdmissionLease -SchedulerStage -right-> ModelBoundaryStage : execute task code +SchedulerStage -right-> ModelBoundaryStage : admitted task makes model call ModelBoundaryStage -right-> RequestAdmissionStage : model request item RequestAdmissionStage -right-> ModelBoundaryStage : request lease ModelBoundaryStage -right-> ProviderStage : admitted model call @@ -85,6 +89,13 @@ package "Metadata contracts" { +weight } + class SchedulingMetadataError { + +code + +message + +fallback + +diagnostics + } + class TaskSchedulingResolver { +resolve(generator) } @@ -98,6 +109,7 @@ package "Metadata contracts" { package "Task scheduling contracts" { class CompletionTracker { +ready_frontier() + +mark_enqueued(task_ids) +mark_complete(task) } @@ -110,36 +122,57 @@ package "Task scheduling contracts" { +amounts } + class SchedulerResourceKey { + +kind + +identity + } + class SchedulableTask { + +task_id +task +group +resource_request } class FairTaskQueue { - +enqueue(item) - +select_next(is_eligible) - +commit(selection) - +view() + +enqueue(items) -> Sequence[task_id] + +select_next(is_eligible) -> QueueSelection | None + +commit(selection) -> SchedulableTask | None + +view() -> QueueView } class QueueSelection { +item - +sequence + +queue_view + +sequence_version } class QueueView { +queued_total +queued_by_group - +has_queued_peer(group) + +queued_demand_by_group_resource + +first_candidate_resource_by_group + +queued_peer_demand_by_resource } interface TaskAdmissionPolicy { - +is_eligible(item, queue, view) - +on_acquire(lease) + +evaluate(item, queue_view, admission_view) + +on_acquire(lease, decision) +on_release(lease) } + class TaskAdmissionPolicyDecision { + +allowed + +reason + +available_after + +diagnostics + } + + class PolicyStateDelta { + +borrow_debt_delta + +diagnostics + } + class StrictFairTaskAdmissionPolicy { +enforce hard per-group limits } @@ -149,27 +182,52 @@ package "Task scheduling contracts" { } class TaskAdmissionController { - +is_eligible(item, queue_view) - +try_acquire(item, queue_view) - +release(lease) - +view() + +is_eligible(item, queue_view) -> bool + +try_acquire(item, queue_view) -> TaskAdmissionDecision + +release(lease) -> ReleaseResult + +view() -> TaskAdmissionView + +explain_blocked(queue_view) -> TaskAdmissionBlockSummary } class TaskAdmissionView { - +resources_available - +leased_by_group - +running_by_group + +limits_by_resource + +available_by_resource + +leased_by_resource + +leased_by_group_resource + +running_by_group_resource + +policy_debt_by_group_resource + } + + class TaskAdmissionBlockSummary { + +queued_count + +dominant_reasons + +available_after + +diagnostics + } + + class TaskAdmissionDecision <> { + TaskAdmissionLease | TaskAdmissionDenied } - class TaskAdmissionDecision { - +lease - +denied_reason + class TaskAdmissionDenied { + +item + +reason + +available_after + +snapshot } class TaskAdmissionLease { + +lease_id +item +resources +acquired_at + +controller_generation + } + + class ReleaseResult { + +released + +reason + +diagnostics } class AsyncTaskScheduler <> { @@ -182,29 +240,36 @@ package "Task config" { class TaskAdmissionConfig { +submission_capacity +resource_limits + +policy_config } } ColumnGenerator --> SchedulingMetadata +SchedulingMetadataError --> SchedulingMetadata : optional fallback TaskSchedulingResolver --> SchedulingMetadata TaskSchedulingResolver --> ResolvedTaskScheduling ResolvedTaskScheduling --> TaskGroupSpec ResolvedTaskScheduling --> SchedulerResourceRequest +SchedulerResourceRequest --> SchedulerResourceKey ResolvedTaskScheduling --> SchedulableTask -CompletionTracker --> FairTaskQueue : ready tasks +AsyncTaskScheduler --> CompletionTracker : ready_frontier / mark_enqueued FairTaskQueue --> QueueSelection : returns FairTaskQueue --> QueueView : view() -FairTaskQueue --> TaskAdmissionController : is_eligible(candidate) TaskAdmissionController --> TaskAdmissionPolicy +TaskAdmissionPolicy --> TaskAdmissionPolicyDecision +TaskAdmissionPolicy --> PolicyStateDelta +TaskAdmissionController --> TaskAdmissionBlockSummary StrictFairTaskAdmissionPolicy ..|> TaskAdmissionPolicy BoundedBorrowTaskAdmissionPolicy ..|> TaskAdmissionPolicy TaskAdmissionController --> TaskAdmissionView TaskAdmissionController --> TaskAdmissionDecision +TaskAdmissionController --> ReleaseResult TaskAdmissionDecision --> TaskAdmissionLease +TaskAdmissionDecision --> TaskAdmissionDenied TaskAdmissionLease --> SchedulableTask AsyncTaskScheduler --> CompletionTracker -AsyncTaskScheduler --> FairTaskQueue : select_next returns QueueSelection -AsyncTaskScheduler --> TaskAdmissionController : try_acquire(selection.item, queue.view) +AsyncTaskScheduler --> FairTaskQueue : enqueue / select_next / commit +AsyncTaskScheduler --> TaskAdmissionController : eligibility callback / try_acquire TaskAdmissionController ..> TaskAdmissionConfig : reads config note right of SchedulingMetadata @@ -215,10 +280,16 @@ note right of SchedulingMetadata end note note bottom of SchedulerResourceRequest - Replaces legacy needs_llm_wait-style booleans + Replaces legacy hidden-wait booleans once the resource-vector design lands. end note +note bottom of FairTaskQueue + select_next receives an opaque scheduler-owned + eligibility predicate. The queue owns ordering only; + it does not depend on TaskAdmissionController. +end note + @enduml @startuml AsyncSchedulingRequestAdmissionClassModel @@ -232,7 +303,7 @@ skinparam linetype ortho package "Model request boundary" { class ModelRequestExecutor <> { - +execute(request) + +execute_attempt(request) } class ProviderModelEndpoint <> { @@ -247,6 +318,23 @@ package "Request admission contracts" { +domain } + class RequestResourceResolver { + +resolve_provider_model(...) + +resolve_request_resource(...) + } + + class ProviderModelKey { + +provider_name + +model_id + } + + enum RequestDomain { + chat + embedding + image + healthcheck + } + class RequestGroupSpec { +key +weight @@ -256,38 +344,65 @@ package "Request admission contracts" { +resource +group +timeout + +event_context + } + + class RequestWaiter { + +waiter_id + +item + +enqueued_at + +deadline + +completion_handle + } + + class RequestEventContext { + +captured_correlation + +task_execution_id + +request_attempt_id } class RequestFairQueue <> { - +enqueue(item) - +select_next(is_eligible) - +commit(selection) - +view() + +enqueue(waiter) + +select_next(is_eligible) -> RequestQueueSelection | None + +commit(selection) -> RequestWaiter | None + +remove(waiter_id) + +view() -> RequestQueueView + } + + class RequestQueueSelection { + +waiter + +item + +waiter_id + +queue_view + +sequence_version + } + + class RequestQueueView { + +queued_total + +queued_by_group + +queued_demand_by_resource + +aggregate_waiters } interface RequestAdmissionPolicy <> { - +is_eligible(item, queue, limits) - +on_success(lease) - +on_rate_limited(lease, retry_after) - +on_failure(lease) + +is_eligible(item, queue_view, limits) + +on_release(lease, outcome) } class AdaptiveRequestLimitState { - +current_limit(resource) - +effective_max(resource) - +record_success(resource) - +record_rate_limit(resource, retry_after) - +record_failure(resource) + +current_limit(domain_resource) + +effective_max(domain_resource) + +aggregate_in_flight(provider, model) + +record_acquire(resource) + +record_outcome(resource, outcome) } - class RequestAdmissionController { - +try_acquire(item) - +acquire_sync(item) - +acquire_async(item) - +release_success(lease) - +release_rate_limited(lease, retry_after) - +release_failure(lease) - +pressure + interface RequestAdmissionController { + +try_acquire(item) -> RequestAdmissionDecision + +acquire_sync(item) -> RequestAdmissionLease + +acquire_async(item) -> RequestAdmissionLease + +release(lease, outcome) -> ReleaseResult + +pressure -> RequestPressureSnapshotProvider } class AdaptiveRequestAdmissionController { @@ -299,20 +414,38 @@ package "Request admission contracts" { } class RequestAdmissionLease { + +lease_id +item +acquired_at +current_limit +effective_max + +controller_generation } class RequestAdmissionDenied { +item +reason +retry_after_seconds - +available_after + +available_after_monotonic +snapshot } + class RequestAdmissionError { + +denial + } + + class RequestReleaseOutcome { + +kind + +retry_after_seconds + +safe_status_metadata + } + + class ReleaseResult { + +released + +reason + +diagnostics + } + class RequestPressureSnapshotProvider { +snapshot(resource) +snapshots() @@ -325,25 +458,41 @@ package "Request config" { class RequestAdmissionConfig { +resources +initial_limit - +max_limit + +max_limit_clamp + +cooldown_seconds + +multiplicative_decrease_factor + +additive_increase_step + +increase_after_successes + +default_queue_wait_timeout } } ModelRequestExecutor --> RequestAdmissionController -RequestAdmissionController --> RequestFairQueue -RequestAdmissionController --> RequestAdmissionPolicy +ModelRequestExecutor --> RequestResourceResolver +RequestResourceResolver --> ProviderModelKey +RequestResourceResolver --> RequestResourceKey RequestAdmissionPolicy --> AdaptiveRequestLimitState -AdaptiveRequestAdmissionController --|> RequestAdmissionController +AdaptiveRequestAdmissionController ..|> RequestAdmissionController AdaptiveRequestAdmissionController --> RequestFairQueue AdaptiveRequestAdmissionController --> RequestAdmissionPolicy AdaptiveRequestAdmissionController --> AdaptiveRequestLimitState RequestAdmissionController --> RequestAdmissionDecision +RequestAdmissionController --> RequestReleaseOutcome +RequestAdmissionController --> ReleaseResult RequestAdmissionDecision --> RequestAdmissionLease RequestAdmissionDecision --> RequestAdmissionDenied +RequestAdmissionError --> RequestAdmissionDenied RequestAdmissionController --> RequestPressureSnapshotProvider -RequestAdmissionController ..> RequestAdmissionConfig : reads config +AdaptiveRequestAdmissionController ..> RequestAdmissionConfig : reads config RequestAdmissionItem --> RequestResourceKey +RequestAdmissionItem --> RequestEventContext +RequestWaiter --> RequestAdmissionItem +RequestResourceKey --> ProviderModelKey +RequestResourceKey --> RequestDomain RequestAdmissionItem --> RequestGroupSpec +RequestFairQueue --> RequestQueueSelection +RequestFairQueue --> RequestQueueView +RequestQueueSelection --> RequestWaiter RequestAdmissionLease --> RequestAdmissionItem RequestAdmissionDenied --> RequestAdmissionItem ModelRequestExecutor --> ProviderModelEndpoint @@ -359,8 +508,8 @@ note right of RequestAdmissionController request admission at model-call time. Does not own DAG readiness or task scheduler admission. - No durable Throttle*, needs_llm_wait, - or held_llm_wait compatibility concepts. + No durable legacy request-control or hidden-wait + compatibility concepts. end note @enduml @@ -382,22 +531,60 @@ package "Capacity planning (issue 654)" { } class AsyncCapacityPlan { - +buffer_size + +configured + +runtime_snapshot + +observed_maxima + } + + class CapacityValue { + +value + +source + +fallback_from + +missing_reason + } + + class CapacityObservedMaxima { + +row_groups_in_flight + +queued_tasks_by_group + +task_leases_by_resource + +request_waiters_by_resource + +request_in_flight_by_resource + +provider_model_aggregate_in_flight + +request_domain_current_limits + +transport_pool_utilization + } + + class RowGroupAdmission { +row_group_concurrency - +submission_capacity - +task_admission - +request_admission + +observed_in_flight + } + + class TransportPoolConfig { + +pool_limits + } + + class ProviderModelStaticCap { + +cap + +aliases + +raw_caps + +merge_rule } class TaskAdmissionConfig { +submission_capacity +resource_limits + +policy_config } class RequestAdmissionConfig { +resources +initial_limit - +max_limit + +max_limit_clamp + +cooldown_seconds + +multiplicative_decrease_factor + +additive_increase_step + +increase_after_successes + +default_queue_wait_timeout } } @@ -409,6 +596,7 @@ package "Telemetry and correlation (issues 635, 647, 648)" { +task_type +scheduling_group_kind +scheduling_group_identity_hash + +task_execution_id } class RuntimeCorrelationProvider { @@ -425,6 +613,34 @@ package "Telemetry and correlation (issues 635, 647, 648)" { +emit(event) } + class SchedulerAdmissionEvent { + +event_kind + +captured_at_monotonic + +sequence + +captured_correlation + +task_id + +task_execution_id + +task_lease_id + +scheduler_resource_key + +reason_or_result + +snapshot + +diagnostics + } + + class RequestAdmissionEvent { + +event_kind + +captured_at_monotonic + +sequence + +captured_correlation + +request_attempt_id + +request_lease_id + +request_resource + +request_group_key + +reason_or_outcome + +snapshot + +diagnostics + } + class CorrelatedRuntimeView { +join scheduler and request timelines } @@ -434,6 +650,7 @@ package "Evidence and future design (issues 649, 650, 651)" { class AsyncSchedulingBenchmarkHarness { +run_ab(baseline_ref, candidate_ref) +emit_json_csv_artifacts() + +verify_final_snapshots() } class SchedulerResourceVectorDesign { @@ -449,11 +666,18 @@ package "Evidence and future design (issues 649, 650, 651)" { RunConfigRuntimeArgs --> AsyncCapacityPlan AsyncCapacityPlan --> TaskAdmissionConfig AsyncCapacityPlan --> RequestAdmissionConfig -SchedulerAdmissionEventSink ..> RuntimeCorrelationProvider : attach current context -RequestAdmissionEventSink ..> RuntimeCorrelationProvider : attach current context +AsyncCapacityPlan --> CapacityValue +AsyncCapacityPlan --> CapacityObservedMaxima +AsyncCapacityPlan --> RowGroupAdmission +AsyncCapacityPlan --> TransportPoolConfig +AsyncCapacityPlan --> ProviderModelStaticCap +SchedulerAdmissionEvent --> RuntimeCorrelation : captured at construction +RequestAdmissionEvent --> RuntimeCorrelation : captured at construction +SchedulerAdmissionEventSink --> SchedulerAdmissionEvent +RequestAdmissionEventSink --> RequestAdmissionEvent RuntimeCorrelationProvider --> RuntimeCorrelation -SchedulerAdmissionEventSink --> CorrelatedRuntimeView -RequestAdmissionEventSink --> CorrelatedRuntimeView +CorrelatedRuntimeView --> SchedulerAdmissionEvent : consumes +CorrelatedRuntimeView --> RequestAdmissionEvent : consumes AsyncSchedulingBenchmarkHarness ..> AsyncCapacityPlan AsyncSchedulingBenchmarkHarness ..> SchedulerAdmissionEventSink AsyncSchedulingBenchmarkHarness ..> RequestAdmissionEventSink @@ -476,6 +700,7 @@ participant "AsyncTaskScheduler" as Scheduler participant "FairTaskQueue" as Queue participant "TaskAdmissionController\nissue 644" as TaskAdmit participant "TaskAdmissionPolicy" as TaskPolicy +participant "Admitted Task /\nGenerator Code" as TaskCode participant "ModelRequestExecutor" as Executor participant "RequestAdmissionController\nissue 657" as ReqAdmit participant "RequestFairQueue" as ReqQueue @@ -487,66 +712,188 @@ participant "RequestAdmissionEventSink\nissue 635" as ReqEvents participant "RuntimeCorrelationProvider\nissue 648" as Correlation User -> Gen : declare columns / plugins -Gen -> Resolver : get_scheduling_metadata() +Resolver -> Gen : get_scheduling_metadata() +alt valid metadata + Gen --> Resolver : SchedulingMetadata +else generator omitted override + Resolver -> Resolver : use documented default metadata +else recoverable metadata error + Gen --> Resolver : SchedulingMetadataError(fallback) + Resolver -> Resolver : emit metadata diagnostic +else fatal metadata error + Gen --> Resolver : SchedulingMetadataError(no fallback) + Resolver --> User : fail before scheduling +end Resolver -> Resolver : resolve TaskGroupSpec\nand SchedulerResourceRequest Resolver -> Tracker : provide SchedulableTask inputs Scheduler -> Tracker : ready_frontier() -Tracker -> Queue : enqueue ready SchedulableTask -Scheduler -> Queue : select_next(TaskAdmit.is_eligible) -Queue -> TaskAdmit : is_eligible(candidate, queue.view) -TaskAdmit -> TaskPolicy : evaluate candidate against leases/capacity -TaskPolicy --> TaskAdmit : eligible or denied -TaskAdmit --> Queue : eligibility result -Queue --> Scheduler : QueueSelection -Scheduler -> TaskAdmit : try_acquire(selection.item, queue.view) -TaskAdmit -> TaskPolicy : on_acquire if admitted -TaskAdmit --> Scheduler : TaskAdmissionLease -Scheduler -> Queue : commit(selection) -Scheduler -> Correlation : set RuntimeCorrelation -TaskAdmit -> SchedEvents : lease_acquired -SchedEvents -> Correlation : current() - -Scheduler -> Executor : execute task -Executor -> ReqAdmit : acquire_async(RequestAdmissionItem) -ReqAdmit -> ReqQueue : enqueue waiter if needed -ReqAdmit -> ReqQueue : select_next(ReqPolicy.is_eligible) -ReqQueue --> ReqAdmit : RequestQueueSelection -ReqAdmit -> ReqPolicy : evaluate resource/group against limits -ReqPolicy -> ReqLimits : read current/effective limit -ReqLimits --> ReqPolicy : limit snapshot -ReqPolicy --> ReqAdmit : eligible or denied -ReqAdmit -> ReqQueue : commit(selection) if admitted -ReqAdmit -> ReqEvents : wait_started / lease_acquired -ReqEvents -> Correlation : current() -ReqAdmit --> Executor : RequestAdmissionLease -Executor -> Provider : concrete model request -Provider --> Executor : response or rate limit - -alt success - Executor -> ReqAdmit : release_success(lease) - ReqAdmit -> ReqPolicy : on_success(lease) - ReqPolicy -> ReqLimits : record_success(resource) -else rate limit - Executor -> ReqAdmit : release_rate_limited(lease, retry_after) - ReqAdmit -> ReqPolicy : on_rate_limited(lease, retry_after) - ReqPolicy -> ReqLimits : record_rate_limit(resource, retry_after) -else non-rate-limit failure or cancellation - Executor -> ReqAdmit : release_failure(lease) - ReqAdmit -> ReqPolicy : on_failure(lease) - ReqPolicy -> ReqLimits : record_failure(resource) +Tracker --> Scheduler : un-enqueued ready SchedulableTasks +Scheduler -> SchedEvents : dependency_ready\n(correlation captured now) +Scheduler -> Queue : enqueue ready SchedulableTasks +Queue --> Scheduler : accepted task_ids +Scheduler -> Tracker : mark_enqueued(accepted task_ids) +Scheduler -> SchedEvents : ready_enqueued\n(correlation captured now) + +loop dispatch while capacity and ready work may exist + Scheduler -> Queue : select_next(scheduler eligibility predicate) + Queue -> Scheduler : is_eligible(candidate, queue_view) + Scheduler -> TaskAdmit : is_eligible(candidate, queue_view) + TaskAdmit -> TaskPolicy : evaluate candidate against queue/admission views + TaskPolicy --> TaskAdmit : eligible or denied + TaskAdmit --> Scheduler : eligibility result + + alt no eligible selection + Queue --> Scheduler : None + Scheduler -> TaskAdmit : explain_blocked(queue.view()) + TaskAdmit --> Scheduler : TaskAdmissionBlockSummary + Scheduler -> SchedEvents : queue_empty / admission_blocked\n(correlation captured now) + Scheduler -> Scheduler : wait_for_wake_or_deadline() + else selection returned + Queue --> Scheduler : QueueSelection(item, queue_view, sequence_version) + Scheduler -> SchedEvents : selected\n(correlation captured now) + Scheduler -> TaskAdmit : try_acquire(selection.item, selection.queue_view) + + alt admission denied + TaskAdmit --> Scheduler : TaskAdmissionDenied + Scheduler -> SchedEvents : admission_denied\n(correlation captured now) + Scheduler -> Scheduler : wake_dispatch_loop() + else lease acquired + TaskAdmit -> TaskPolicy : on_acquire(lease, decision) + TaskAdmit --> Scheduler : TaskAdmissionLease + Scheduler -> Queue : commit(selection) + + alt stale selection + Queue --> Scheduler : None + Scheduler -> TaskAdmit : release(lease) + TaskAdmit -> TaskPolicy : on_release(lease) + Scheduler -> SchedEvents : stale_selection / task_lease_released\n(correlation captured now) + Scheduler -> Scheduler : wake_dispatch_loop() + else committed + Queue --> Scheduler : SchedulableTask + Scheduler -> Correlation : set RuntimeCorrelation + Scheduler -> SchedEvents : task_lease_acquired\n(correlation captured now) + + alt worker spawn failed + Scheduler -> TaskAdmit : release(lease) + TaskAdmit -> TaskPolicy : on_release(lease) + Scheduler -> SchedEvents : worker_spawn_failed / task_lease_released\n(correlation captured now) + Scheduler -> Correlation : reset RuntimeCorrelation + else worker spawned + Scheduler -> SchedEvents : worker_spawned\n(correlation captured now) + Scheduler -> TaskCode : execute admitted task + + loop zero, one, or many concrete model calls + TaskCode -> Executor : model call attempt + Executor -> Correlation : current() + Executor -> ReqAdmit : acquire_async(RequestAdmissionItem\nwith RequestEventContext) + + ReqAdmit -> ReqEvents : request_wait_started\n(correlation captured now) + + alt immediate eligible and no queued waiter selected first + ReqAdmit -> ReqPolicy : evaluate resource/group against limits + ReqPolicy -> ReqLimits : read domain limit\nand aggregate in-flight + ReqLimits --> ReqPolicy : limit snapshot + ReqPolicy --> ReqAdmit : eligible + else queued waiter path + ReqAdmit -> ReqQueue : enqueue waiter + + loop until admitted, timeout, cancel, or shutdown + ReqAdmit -> ReqQueue : select_next(ReqPolicy.is_eligible) + ReqQueue --> ReqAdmit : RequestQueueSelection | None + ReqAdmit -> ReqPolicy : evaluate resource/group against limits + ReqPolicy -> ReqLimits : read domain limit\nand aggregate in-flight + ReqLimits --> ReqPolicy : limit snapshot + ReqPolicy --> ReqAdmit : eligible or denied + ReqAdmit -> ReqAdmit : timed wait to next\nblocked_until / timeout + end + end + + alt no lease: timeout, shutdown, or hard denial + ReqAdmit -> ReqQueue : remove waiter if queued + ReqAdmit -> ReqEvents : request_wait_timeout / request_acquire_denied\n(correlation captured now) + ReqAdmit --> Executor : raise RequestAdmissionError + else async cancellation before lease + ReqAdmit -> ReqQueue : remove waiter + ReqAdmit -> ReqEvents : request_wait_cancelled\n(correlation captured now) + ReqAdmit --> Executor : re-raise cancellation + else request lease acquired + ReqAdmit -> ReqQueue : commit(selection) if queued\nand fulfill selected waiter + ReqAdmit -> ReqLimits : record_acquire(resource) + note right of ReqAdmit + Once record_acquire succeeds, + cancellation either delivers the lease + for caller cleanup or internally releases + it as local_cancelled. + end note + ReqAdmit -> ReqEvents : request_wait_completed\n(correlation captured now) + ReqAdmit -> ReqEvents : request_lease_acquired\n(correlation captured now) + ReqAdmit --> Executor : RequestAdmissionLease + Executor -> ReqEvents : model_request_started\n(correlation captured now) + Executor -> Provider : concrete provider/model attempt + Provider --> Executor : response / rate limit / failure + Executor -> ReqEvents : model_request_completed\n(correlation captured now) + + alt success + Executor -> ReqAdmit : release(lease, success) + ReqAdmit -> ReqPolicy : on_release(lease, success) + ReqPolicy -> ReqLimits : record_outcome(resource, success) + else rate limit + Executor -> ReqAdmit : release(lease, rate_limited) + ReqAdmit -> ReqPolicy : on_release(lease, rate_limited) + ReqPolicy -> ReqLimits : record_outcome(resource, rate_limited) + ReqAdmit -> ReqEvents : request_rate_limited / request_limit_decreased\n(correlation captured now) + else provider failure or timeout + Executor -> ReqAdmit : release(lease, provider_failure/provider_timeout) + ReqAdmit -> ReqPolicy : on_release(lease, provider outcome) + ReqPolicy -> ReqLimits : record_outcome(resource, provider outcome) + else local_cancelled or local_timeout + Executor -> ReqAdmit : release(lease, local_cancelled/local_timeout) + ReqAdmit -> ReqPolicy : on_release(lease, local outcome) + ReqPolicy -> ReqLimits : record_outcome(resource, local outcome) + else unexpected exception + Executor -> ReqAdmit : release(lease, unexpected_exception) + ReqAdmit -> ReqPolicy : on_release(lease, unexpected_exception) + ReqPolicy -> ReqLimits : record_outcome(resource, unexpected_exception) + end + + ReqAdmit -> ReqQueue : wake/select next waiter + ReqAdmit -> ReqEvents : request_lease_released\n(+ request_limit_increased if changed) + end + end + + TaskCode --> Scheduler : generated value / terminal outcome + alt success + Scheduler -> Tracker : mark_complete(task) + Scheduler -> SchedEvents : task_completed\n(correlation captured now) + else retryable failure + Scheduler -> SchedEvents : retry_deferred\n(correlation captured now) + Scheduler -> Scheduler : record retry requested + else non-retryable failure or cancellation + Scheduler -> Tracker : mark_complete(task) + Scheduler -> SchedEvents : non_retryable_dropped / cancelled\n(correlation captured now) + else salvage redispatch + Scheduler -> SchedEvents : salvage_redispatched\n(correlation captured now) + Scheduler -> Scheduler : record salvage requested + end + + Scheduler -> TaskAdmit : release TaskAdmissionLease + TaskAdmit -> TaskPolicy : on_release(lease) + Scheduler -> SchedEvents : task_lease_released\n(correlation captured now) + Scheduler -> Correlation : reset RuntimeCorrelation + + alt retry or salvage replacement requested + Scheduler -> Tracker : record replacement work + Scheduler -> Scheduler : replacement re-enters ready_frontier path + else no replacement + Scheduler -> Scheduler : terminal accounting complete + end + end + end + end + end end -ReqAdmit -> ReqQueue : wake/select next waiter -ReqAdmit -> ReqEvents : request admission event -ReqEvents -> Correlation : current() -Executor --> Scheduler : generated value / error -Scheduler -> TaskAdmit : release TaskAdmissionLease -TaskAdmit -> TaskPolicy : on_release(lease) -TaskAdmit -> SchedEvents : lease_released / completed -SchedEvents -> Correlation : current() -Scheduler -> Correlation : reset RuntimeCorrelation - @enduml @startuml AsyncSchedulingEpicIssueMap @@ -577,6 +924,7 @@ I641 --> I652 I646 --> I653 I646 --> I652 I653 --> I652 +I652 --> I644 I646 --> I644 I641 --> I654 I646 --> I654 @@ -591,11 +939,17 @@ I657 --> I648 I635 --> I648 I647 --> I648 I644 --> I649 +I654 --> I649 +I657 --> I649 +I635 --> I649 +I647 --> I649 +I648 --> I649 I652 --> I660 I654 --> I660 I657 --> I660 I648 --> I660 I649 --> I660 +I660 --> I650 I649 --> I650 I644 --> I650 I641 --> I651 @@ -603,12 +957,16 @@ I646 --> I651 I644 --> I651 I649 --> I651 I650 --> I651 +I660 --> I651 note bottom Native GitHub subissue order: issue 641 -> issue 646 -> issue 653 -> issue 652 -> issue 644 -> issue 654 -> issue 657 -> issue 635 -> issue 647 -> issue 648 -> issue 649 -> issue 660 -> issue 650 -> issue 651 + + Issues before 649 that need evidence emit provisional artifacts. + Issue 649 normalizes and reruns representative scenarios. end note @enduml diff --git a/plans/645/benchmark-plan.md b/plans/645/benchmark-plan.md index d5615656e..7048bc645 100644 --- a/plans/645/benchmark-plan.md +++ b/plans/645/benchmark-plan.md @@ -2,6 +2,8 @@ The benchmark harness turns architecture claims into reusable evidence. It prevents each implementation PR from inventing one-off scripts and makes fairness/throughput tradeoffs explicit. +Until issue #649 closes, implementation PRs that need scheduling evidence must emit the provisional artifact schema in this file. A minimal deterministic smoke entrypoint and artifact writer should exist before the risky task/request admission implementation slices rely on it; issue #649 formalizes the reusable harness and reruns the provisional evidence against the accepted implementation chain before issue #645 closes. This prevents task/request admission PRs from landing without evidence while still allowing the harness to mature after capacity and telemetry contracts stabilize. + ## Harness Requirements Provide a repo-local benchmark entrypoint that can compare two refs or checkouts. @@ -20,6 +22,10 @@ Required inputs: - measured iterations - output directory - seed +- scenario version +- harness version +- mock provider transcript or scripted provider behavior when live providers are not used +- monotonic clock/retry schedule when deterministic replay is claimed Required artifacts: @@ -31,12 +37,71 @@ Required artifacts: - environment knobs - `AsyncCapacityPlan` - per-layer observed maxima +- final task admission snapshot +- final request admission snapshot, or explicit `not_available_until_issue` marker before #657 lands - completion timeline - ready-idle/utilization timeline - deterministic output hashes where applicable +Final snapshots must prove zero active task leases, zero request leases, zero request waiters, and no resource-specific permit leaks after all terminal paths complete. Before #657 lands, request snapshot fields remain present but can carry `not_available_until_issue: 657` rather than fabricated zeros. + The sync path can be used as a correctness/hash oracle, not as the timing baseline for async scheduling policy. +## Artifact Schema + +The provisional and final JSON artifacts use monotonic seconds for timeline fields and stable scenario ids for comparison: + +```text +scenario_id +artifact_schema_version +scenario_version +harness_version +baseline_sha +candidate_sha +inputs +provider_script +clock_script +capacity_plan +iterations[] + wall_time_seconds + timeline[] + event_kind + captured_at_monotonic + stream + sequence + captured_correlation + run_id + row_group + task_column + task_type + scheduling_group_kind + scheduling_group_identity_hash + task_execution_id + task_id + task_execution_id + task_lease_id + request_attempt_id + request_lease_id + scheduler_resource_key + request_resource_key + reason_or_outcome + final_task_snapshot + final_request_snapshot + output_hashes +derived_metrics +``` + +Derived metrics: + +- `ready_queue_wait = selected_at - ready_enqueued_at` +- `task_admission_wait = task_lease_acquired_at - selected_at` +- `ready_to_lease_gap = task_lease_acquired_at - ready_enqueued_at` +- `ready_idle_gap` is derived from intervals where dependency-ready work exists, scheduler task capacity is available, and no task lease is acquired. Per-task `selected_at -> task_lease_acquired_at` is task admission overhead, not the starvation metric. +- `active_capacity_integral = integral(active_leases / configured_capacity) over wall time` +- `root_over_admission_debt = admitted root work above strict fair share after first downstream-ready timestamp` +- `hidden_scheduler_resource_waiters` is the count of spawned workers waiting for scheduler-level resources that should have been acquired before spawn. After the task-admission lease boundary lands, the event stream should prove this is zero by showing no worker-spawned event before the corresponding task-lease-acquired event and no pre-epic scheduler-resource wait event for the task. +- deterministic hashes include generated output values and stable ordering metadata, not timing or event ids + ## Scenario Matrix ### Queue And Admission Microbench @@ -91,19 +156,28 @@ This scenario must exercise true root/from-scratch dispatch, not only downstream After task admission lands: ```text -max(spawned_waiting_for_llm_lease) == 0 +max(hidden_scheduler_resource_waiters) == 0 ``` Required monotonic timeline fields: +- dependency_ready_at +- ready_enqueued_at - selected_at -- lease_acquired_at +- task_lease_acquired_at - worker_spawned_at +- request_wait_started_at +- request_wait_completed_at +- request_lease_acquired_at - model_request_started_at - model_request_completed_at -- lease_released_at +- request_lease_released_at +- task_completed_at +- task_lease_released_at + +Scheduler events own selected/task-lease/spawn/task-completion/task-release. Request/model instrumentation owns request wait, request lease, model request start/complete, and request release. -Scheduler events own selected/lease/spawn/release. Request/model instrumentation owns model request start/complete. +Immediate request acquisition records `request_wait_started_at == request_wait_completed_at` so the timeline can distinguish a zero wait from missing instrumentation. ### Idle And Utilization Proxy @@ -124,6 +198,7 @@ Run paired A/B trials with warmup and at least five measured iterations for: - dual model generate-to-judge workflow - heavy-root workflow - dynamic request-count custom generator workflow +- cross-provider cooldown workflow where provider A is rate-limited or cooling down while provider B has ready independent work ### Request Dynamic-Call Benchmark @@ -149,12 +224,24 @@ Metrics: ## Evidence Thresholds +All timing gates use paired same-machine runs with at least five measured iterations unless the scenario explicitly raises that count. Reports include mean, p50, p95, min, max, standard deviation, and a noise-floor note. If standard deviation is large enough to make a threshold ambiguous, the PR must either add iterations or treat the timing claim as inconclusive. + Neutral scenarios should be no worse than 5 percent mean wall time unless the PR explicitly justifies a fairness/utilization tradeoff. Heavy-root scenarios should show reduced downstream ready-to-dispatch lag versus the named baseline when the candidate claims to improve heavy-root behavior. Every run must show no permit leaks and deterministic output equality where applicable. +Scenario-specific gates: + +- Queue/admission microbench: p95 admission cycle cost must not regress more than 10 percent unless the PR documents a fairness or correctness tradeoff. +- Heavy-root benchmark: p95 ready-to-dispatch gap for downstream work must improve versus the named baseline when the candidate claims heavy-root fairness; root over-admission debt must be bounded by the configured policy. +- Hidden-waiter proof: `max(hidden_scheduler_resource_waiters) == 0` across success, failure, cancellation, and salvage paths after task admission lands. +- Idle/utilization proxy: ready-idle gaps while eligible work and capacity are available must be zero except for documented event-loop scheduling granularity. +- Dynamic request benchmark: zero/one/many request tasks must produce matching output hashes, request lease counts must equal concrete outbound attempts, and request wait/execute/release timelines must be monotonic. +- Cross-provider cooldown benchmark: provider B ready work must continue to receive scheduler task leases while provider A is blocked by request cooldown once the provider-aware policy in #651 claims that optimization. +- Variance: measured iterations must report mean, p50, p95, min, max, and standard deviation. Any acceptance claim based on timing should remain directionally true after removing the fastest and slowest measured iteration. + ## CI Smoke The harness should have a small deterministic smoke mode using mock endpoints. It writes machine-readable artifacts and does not require live providers. diff --git a/plans/645/capacity-model.md b/plans/645/capacity-model.md index af1ff60f2..4ac49db2c 100644 --- a/plans/645/capacity-model.md +++ b/plans/645/capacity-model.md @@ -12,7 +12,7 @@ The async engine uses layered capacity. Each layer has a different owner and mea | Task-stage admission | `TaskAdmissionController` | Bounds scheduler-spawned work and scheduler-level resource pressure. | | Request-stage admission | `RequestAdmissionController` | Bounds concrete provider/model/domain requests when they are made. | | Static provider cap | Model config / metadata | User-declared provider/model upper bound and scheduling weight source. | -| Adaptive provider cap | `AdaptiveRequestAdmissionController` | Runtime AIMD limit under the static provider cap. | +| Adaptive request-domain limit | `AdaptiveRequestAdmissionController` | Runtime AIMD limit for one provider/model/domain resource under the static provider/model cap. | | Transport pool | HTTP/model client adapter | Socket/session pool sizing. Not scheduling or fairness policy. | ## AsyncCapacityPlan @@ -24,20 +24,50 @@ The async engine uses layered capacity. Each layer has a different owner and mea - task admission capacity - task resource limits - request admission resources +- provider/model aggregate static caps +- provider/model aggregate in-flight maxima - static provider/model caps used by the workflow -- adaptive request-admission config +- adaptive request-admission config snapshot +- request-domain adaptive initial/current/effective limits when captured - transport/session pool values if they remain distinct - source of each value, such as default constant, model metadata, run config, request admission state, or environment selection The plan is emitted for diagnostics, traces, benchmarks, and operator documentation. It does not admit work by itself. +`AsyncCapacityPlan` uses three sections: + +```text +configured: values computed before or at run start +runtime_snapshot: point-in-time controller snapshots, nullable until the owning issue lands +observed_maxima: maxima collected during execution or benchmark replay +``` + +Each configured value is a `CapacityValue` with `value`, `source`, `fallback_from`, and `missing_reason`. Fields that depend on request-admission runtime state may be present with `value = None` and `missing_reason` in #654 before #657 lands. + +`CapacityValue.source` uses the durable source vocabulary from [contracts.md](contracts.md#capacity-contracts), including `dataset_builder`, `engine_internal_config`, and `adapter_config` for values that do not come from public run config or model metadata. + +Source precedence is per-field, not global: + +| Field | V1 precedence | +| --- | --- | +| `buffer_size` | explicit run config, then documented default | +| row-group concurrency | existing dataset-builder/runtime setting if present, then documented default | +| task admission limits | benchmark override for benchmark runs, then engine default | +| provider/model static cap | canonical model/provider metadata; request-admission config may lower but not raise it | +| request-domain initial/adaptive settings | benchmark override or engine default, then clamped under provider/model static cap | +| transport pool | adapter/client config, then documented default | + +If a value is missing, the capacity plan records the missing source and fallback used. If no safe fallback exists, construction fails with a typed configuration/metadata error before work is scheduled. + ## Ownership Rules Task admission capacity is scheduler-level capacity. It controls when a ready task can become a running worker. Request admission capacity is provider/model/domain request capacity. It controls when a concrete model call can execute. -`max_parallel_requests` remains the user-facing static provider/model cap and scheduling metadata weight source. `AdaptiveRequestAdmissionController.current_limit` is the runtime adaptive request cap. +`max_parallel_requests` remains the user-facing static provider/model cap and scheduling metadata weight source. `AdaptiveRequestAdmissionController.current_limit` is the runtime adaptive request cap for a request domain. + +The provider/model static cap is an aggregate in-flight upper bound across all domains for that provider/model in V1. Domain adaptive limits operate under that aggregate cap. V1 intentionally does not define an aggregate cross-domain AIMD policy; adding one requires a later design that specifies fairness, telemetry, and benchmarks. HTTP transport pools may be larger than the static provider cap. They are transport sizing, not effective request concurrency. @@ -45,9 +75,17 @@ HTTP transport pools may be larger than the static provider cap. They are transp `RunConfig.buffer_size` shapes record windows and row groups. It is not a request-concurrency knob. +## Row Groups And Record Windows + +`buffer_size` defines the record-window shape used by the dataset builder. Row groups are the concrete execution partitions produced from that windowing behavior. + +Row-group admission remains scheduler-owned but is not changed by the V1 task-admission lease boundary. For this epic, #654 records row-group configured concurrency and observed row groups in flight through the `RowGroupAdmission` section of `AsyncCapacityPlan`; it does not introduce a new row-group scheduling policy unless a later issue explicitly does so. + +Preview, resume, and checkpoint behavior use the existing dataset-builder partitioning rules. `AsyncCapacityPlan` reports the row-group values that the current engine used rather than redefining those rules. + ## Transitional Values -Any current `max_llm_wait_tasks`, `needs_llm_wait`, or `held_llm_wait` concept is transitional. At epic completion these names must either be gone or replaced by explicit scheduler-resource terminology in `TaskAdmissionConfig` and `AsyncCapacityPlan`. +Any current hidden LLM-wait task-stage capacity concept is transitional. At epic completion those names must either be gone or replaced by explicit scheduler-resource terminology in `TaskAdmissionConfig` and `AsyncCapacityPlan`. If a distinct task-stage LLM backpressure resource remains, it must be derived from actually used resolved scheduling metadata, not every registered model alias. It must be described as scheduler task-stage pressure, not provider request concurrency. @@ -57,7 +95,9 @@ Scheduling metadata may use model aliases to derive static resource identity and Request admission resources are provider/model/domain scoped. A provider/model may have a global effective static cap while each request domain has its own adaptive state. The capacity plan must make that distinction visible. -V1 does not define a cross-domain aggregate AIMD provider cap beyond the documented provider/model effective static cap unless a later issue explicitly adds that policy. +V1 does not define a cross-domain aggregate AIMD provider cap beyond the documented provider/model effective static cap unless a later issue explicitly adds that policy. The request controller still enforces the static aggregate cap by checking provider/model aggregate in-flight counts before admitting a domain request. + +Alias-derived provider/model caps deduplicate aliases that resolve to the same concrete provider/model endpoint. If aliases for the same endpoint specify different `max_parallel_requests` values, V1 uses the minimum as the effective static cap and records every contributing alias and raw cap in `AsyncCapacityPlan`. This min-merge is not a metadata error. Alias resolution is fatal only when endpoint identity is ambiguous or conflicting. If the provider treats generation type as a distinct endpoint, the canonical model id includes that distinction before cap merging. ## Observability Requirements @@ -70,6 +110,8 @@ Operators should be able to answer: Benchmarks and traces must include `AsyncCapacityPlan` plus per-layer observed maxima. +Required per-layer maxima include row groups in flight, queued tasks by group/resource, task leases by resource, request waiters by resource, domain in-flight counts, provider/model aggregate in-flight counts, adaptive current limits, and transport pool utilization when available. + ## Public Knob Rule Do not add a new public capacity knob until benchmark evidence shows a specific need and the docs explain its layer. Prefer clear defaults, internal configs, and diagnostics first. diff --git a/plans/645/contracts.md b/plans/645/contracts.md index 5e35a73fe..fc4991939 100644 --- a/plans/645/contracts.md +++ b/plans/645/contracts.md @@ -1,6 +1,28 @@ # Contracts -This file records the durable names and semantics used by the async scheduling architecture. The exact implementation can evolve, but these names are the spec vocabulary for the epic. +This file records the durable names and semantics used by the async scheduling architecture. The exact implementation can evolve, but these names are the normative spec vocabulary for the epic. Topic files may explain behavior, but should not redefine fields or return shapes in ways that conflict with this file. + +## Package Ownership + +| Contract family | Owning package | Notes | +| --- | --- | --- | +| Generator metadata and public config DTOs | `data-designer-config` | `SchedulingMetadata`, metadata validation errors, and exposed run-config fields live here when they are public/user-facing. | +| Scheduler/request runtime protocols | `data-designer-engine` | queues, controllers, policies, leases, runtime snapshots, event DTOs, capacity plan construction, and benchmark internals live here. | +| User interface and operator presentation | `data-designer` | consumes config and engine contracts for the public `DataDesigner` interface, CLI, and integrations. | + +Config-layer contracts must not import engine runtime protocols. Engine contracts may consume config-layer DTOs. + +## Config Surface Status + +| Contract | V1 status | Owner | +| --- | --- | --- | +| `SchedulingMetadata` | public plugin-facing DTO | `data-designer-config` | +| `TaskAdmissionConfig` | engine-internal config and benchmark injection surface; not a public `RunConfig` knob in V1 | `data-designer-engine` | +| `RequestAdmissionConfig` | engine-internal config and benchmark injection surface in V1 | `data-designer-engine` | +| `RunConfig.request_admission` | reserved future public spelling if evidence justifies a user-facing request-admission knob | not introduced by this epic unless a later issue explicitly changes the public API | +| `AsyncCapacityPlan` | diagnostic/reporting DTO, emitted to explain a run | `data-designer-engine` | + +Public knobs are not added by the task-admission or request-admission implementation slices. Benchmarks may inject capacity values through harness-only configuration so policy evidence can be produced without committing to public API. ## Metadata Contracts @@ -12,7 +34,7 @@ This file records the durable names and semantics used by the async scheduling a - `identity`: deterministic tuple of broad-to-specific resource identity values. - `weight`: positive static capacity hint. -`SchedulingMetadataError` is the typed failure path for metadata resolution. It can carry fallback metadata when partial resolution is safe. +`SchedulingMetadataError` is the typed failure path for metadata resolution. It can carry fallback metadata when partial resolution is safe. The documented default metadata for generators that do not override `get_scheduling_metadata()` is a normal resolver path, not an error fallback. Rules: @@ -20,6 +42,27 @@ Rules: - Metadata cannot encode queue depth, admitted limits, runtime pressure, request domains, AIMD state, or provider cooldown. - Multi-alias metadata deduplicates aliases that resolve to the same provider/model/generation resource before summing weight. - Alias ordering is canonicalized so equivalent configs produce equivalent metadata. +- Generators that do not override `get_scheduling_metadata()` receive a documented default metadata value. The default must preserve current behavior and must not infer provider/model pressure dynamically. +- Invalid `kind`, non-deterministic `identity`, non-positive `weight`, or ambiguous alias resolution raises `SchedulingMetadataError`. +- Differing `max_parallel_requests` values for aliases that resolve to the same concrete provider/model endpoint are not, by themselves, ambiguous. They merge through the static-cap min rule in the capacity model. Alias ambiguity is fatal when aliases cannot be resolved to one concrete endpoint, resolve to conflicting endpoint identities, or would require hidden dynamic inference to choose a resource. +- Fallback metadata is safe only when it preserves current scheduling behavior and the resolver can explain the fallback in diagnostics. Ambiguous resource identity or invalid weights are fatal. + +Normative V1 metadata shapes: + +| Kind | Identity tuple | Weight source | Default/fallback behavior | +| --- | --- | --- | --- | +| `local` | `("local", resource_name)` where `resource_name` defaults to `"default"` | positive integer, default `1` | the default for generators that do not override `get_scheduling_metadata()` is `SchedulingMetadata(kind="local", identity=("local", "default"), weight=1)` | +| `model` | `("model", provider_name, canonical_model_id, generation_kind)` after alias resolution | effective static provider/model capacity hint, normally derived from the model config's `max_parallel_requests` and clamped to at least `1` | safe fallback is allowed only when the resolver can identify the same canonical provider/model resource as the current implementation | +| `custom_model` | `("custom_model", plugin_namespace, resource_name, version)` with deterministic plugin-provided values | positive plugin-provided capacity hint, defaulting to `1` if omitted | no alias inference is performed unless the plugin returns model aliases through the documented metadata API | + +`SchedulingMetadataError` contains: + +- `code` +- `message` +- optional `fallback: SchedulingMetadata` +- sanitized `diagnostics` + +If `fallback` is present, the resolver may continue and must emit diagnostics. If `fallback` is absent, metadata resolution is fatal before scheduler inputs are created. ## Scheduler Input Contracts @@ -38,20 +81,33 @@ Rules: amounts: Mapping[SchedulerResourceKey, int] ``` +`SchedulerResourceKey` identifies a scheduler-owned task-stage resource such as `submission`, `llm_wait`, `local`, or a future internal resource-vector key. It is not a provider request-domain key. + The first implementation can model submission and LLM-wait style resources. Future resource-vector work may add provider/model, local, GPU, or other scheduler resources, but those remain scheduler-internal unless a later design explicitly changes the public contract. `SchedulableTask` contains: +- stable `task_id` - task payload - task group - scheduler resource request +`CompletionTracker` owns readiness state: + +```text +ready_frontier() -> Sequence[SchedulableTask] +mark_enqueued(task_ids) +mark_complete(task) +``` + +`ready_frontier()` returns dependency-ready tasks that have not yet been acknowledged as enqueued. After `FairTaskQueue.enqueue(...)` accepts a task, `AsyncTaskScheduler` calls `mark_enqueued(...)` with exactly the accepted task ids. `FairTaskQueue.enqueue(...)` is also idempotent by `task_id`, so duplicate frontier reads cannot create duplicate ready membership. If enqueue fails before acceptance, the task remains unacknowledged and appears in a later frontier read. + ## Queue Contracts `FairTaskQueue` owns ready-task membership and ready ordering: ```text -enqueue(item) +enqueue(items) -> Sequence[task_id] select_next(is_eligible) -> QueueSelection | None commit(selection) -> SchedulableTask | None view() -> QueueView @@ -59,9 +115,19 @@ view() -> QueueView `QueueSelection` returns from `FairTaskQueue` to `AsyncTaskScheduler`. It is not delivered to `TaskAdmissionController`. -`QueueSelection` contains the selected item and an opaque sequence/version used by `commit(selection)` to detect stale selections. +`QueueSelection` contains the selected item, the queue view used during selection, and an opaque `sequence_version` used by `commit(selection)` to detect stale selections. + +`QueueView` is read-only policy input. It exposes: + +- queued totals +- queued counts by group +- queued resource demand by group and `SchedulerResourceKey` +- first-candidate resource request by group where available +- queued peer demand by resource -`QueueView` is read-only policy input. It exposes queued totals and queued counts by group, including whether a group has queued peers. +`QueueView` is produced by `FairTaskQueue`; policies must not traverse queue internals directly. It contains raw queued membership and demand facts only. `TaskAdmissionPolicy` computes eligibility and resource-aware peer pressure from `QueueView` plus `TaskAdmissionView`. + +`FairTaskQueue` must not invoke scheduler-supplied eligibility predicates while holding internal queue locks that can be needed by enqueue, commit, release wakeups, or diagnostics. The scheduler dispatch critical section owns the cross-component coordination; queue internals remain local to queue mutation. ## Task Admission Contracts @@ -69,48 +135,134 @@ view() -> QueueView ```text is_eligible(item, queue_view) -> bool -try_acquire(item, queue_view) -> TaskAdmissionLease | None -release(lease) +try_acquire(item, queue_view) -> TaskAdmissionDecision +release(lease) -> ReleaseResult view() -> TaskAdmissionView +explain_blocked(queue_view) -> TaskAdmissionBlockSummary ``` `TaskAdmissionPolicy` owns the decision rule: ```text -is_eligible(item, queue_view, admission_view) -> bool -on_acquire(lease) -on_release(lease) +evaluate(item, queue_view, admission_view) -> TaskAdmissionPolicyDecision +on_acquire(lease, decision) -> PolicyStateDelta +on_release(lease) -> PolicyStateDelta ``` +`evaluate(...)` is side-effect-free. It may be called while scanning queue candidates and must not mutate borrow debt, counters, timers, diagnostics, or resource ledgers. Only controller-mediated acquire/release paths apply `PolicyStateDelta` values. + +`TaskAdmissionPolicyDecision` contains: + +- `allowed` +- optional denial `reason`, such as no capacity, group cap, borrow debt, shutdown, or policy denial +- optional `available_after` +- sanitized diagnostic fields + +`PolicyStateDelta` contains policy-owned state changes such as borrow-debt increment, repayment, or diagnostic counters. The controller applies the delta in the same transaction as lease acquire/release and exposes the resulting policy counters through `TaskAdmissionView`. Bounded-borrow debt affects eligibility, but it is not part of the hard resource ledger and never changes resource availability counters directly. + +`AsyncTaskScheduler` supplies the boolean eligibility callback used by `FairTaskQueue`; that callback delegates to `TaskAdmissionController.is_eligible(...)`. The controller may call `TaskAdmissionPolicy.evaluate(...)` internally, but denial details are surfaced through `try_acquire(...)`, `explain_blocked(...)`, events, and tests rather than through the queue callback. + +When `FairTaskQueue.select_next(...)` returns no selection while queued work exists, `AsyncTaskScheduler` calls `TaskAdmissionController.explain_blocked(queue_view)` before sleeping. `TaskAdmissionBlockSummary` contains queued count, dominant denial reasons, optional earliest `available_after`, and sanitized diagnostics. This is the source for `admission_blocked`, `group_capped`, and timed wakeups when no candidate can currently be admitted. + `TaskAdmissionLease` contains: +- `lease_id` - `item` - `resources` - `acquired_at` +- controller identity or generation token sufficient to reject stale/wrong-controller releases + +`TaskAdmissionView` exposes a consistent read-only snapshot: + +- task resource limits by `SchedulerResourceKey` +- task resources available by `SchedulerResourceKey` +- leased resources by `SchedulerResourceKey` +- leased resources by group and `SchedulerResourceKey` +- running counts by group and resource where tracked +- policy-only debt by group/resource if the active policy uses bounded borrow + +`TaskAdmissionDecision` is a union of `TaskAdmissionLease` and `TaskAdmissionDenied`. + +`TaskAdmissionDenied` contains: + +- item +- reason, such as no capacity, group cap, borrow debt, shutdown, or policy denial +- optional available-after timing +- optional `TaskAdmissionView` snapshot -`TaskAdmissionView` exposes task-stage resource availability plus leased/running counts by group. +Implementations may provide a local convenience helper that converts `TaskAdmissionDecision` to an optional lease, but telemetry, tests, and benchmark artifacts use the typed decision vocabulary. -`TaskAdmissionDecision` is the richer decision shape for implementations that need denial reasons. V1 may expose `try_acquire(...)` as a non-blocking `TaskAdmissionLease | None` helper, but the spec vocabulary treats denials as typed scheduler-admission outcomes for events, tests, and debugging. +`TaskAdmissionConfig` is engine-internal in V1 and contains scheduler task-stage capacity values such as `submission_capacity`, resource limits, and optional policy-specific config. Bounded-borrow policy config, when enabled by #650, includes borrow ceiling by group/resource, strict-share rounding mode, and repayment behavior. The default V1 lease-boundary policy is behavior-preserving unless #650 explicitly enables bounded borrow. -`TaskAdmissionConfig` contains scheduler task-stage capacity values such as `submission_capacity` and resource limits. +`ReleaseResult` contains: + +- `released: bool` +- `reason`, such as released, duplicate, stale lease, wrong controller generation, or unknown lease +- sanitized diagnostics + +Terminal `finally` paths must not raise from release. Duplicate, stale, or wrong-controller releases return `ReleaseResult` and emit diagnostic events without increasing capacity. ## Request Admission Contracts -`ModelRequestExecutor` maps concrete model calls into request-admission items and owns exact lease release around provider execution. +`ModelRequestExecutor` maps concrete model-call attempts into request-admission items and owns exact lease release around provider execution: + +```text +execute_attempt(request) -> provider response +``` + +`RequestResourceResolver` is the canonical request-resource identity factory. It maps provider alias, model alias, model id, generation kind, endpoint metadata, and `RequestDomain` into `ProviderModelKey` and `RequestResourceKey`. `TaskSchedulingResolver`, `ModelRequestExecutor`, `AsyncCapacityPlan`, and request admission all use the same provider/model canonicalization rules so alias merging, metadata weight, and request caps cannot drift. `RequestResourceKey` identifies a concrete provider/model/domain request resource: -- `provider_name` -- `model_id` +- `provider_name`, the canonical resolved provider name, not an alias +- `model_id`, the canonical resolved provider/model endpoint id, not a user alias - `domain` -`RequestGroupSpec` contains the request resource key and static weight. +Aliases are recorded in capacity plans and pressure snapshots for diagnostics, but request admission keys use canonical resolved provider/model identity so aliases cannot bypass aggregate caps. + +`ProviderModelKey` is the aggregate request-capacity key: + +- canonical provider name +- canonical model endpoint id + +`RequestResourceKey` is `ProviderModelKey + RequestDomain`. + +`RequestDomain` is the durable domain vocabulary for request admission. V1 includes `chat`, `embedding`, `image`, and `healthcheck`; adding new domains requires updating this plan and the request-admission docs. + +`RequestGroupSpec` contains the request fairness group key and static weight. In V1 the group key is the `RequestResourceKey`; a later design may split fairness group from resource key, but must specify the mapping before doing so. `RequestAdmissionItem` contains: - request resource - request group -- optional timeout +- optional queue-wait timeout +- optional `RequestEventContext` + +`RequestEventContext` is constructed by `ModelRequestExecutor` when it maps a model call attempt into a request item. It contains primitive, telemetry-only context: + +- captured `RuntimeCorrelation | None` +- `task_execution_id` +- `request_attempt_id` + +The request controller treats this as opaque event context. It does not import scheduler task types or mutate scheduler state. + +`RequestFairQueue` owns waiter ordering inside `AdaptiveRequestAdmissionController`: + +```text +enqueue(waiter) +select_next(is_eligible) -> RequestQueueSelection | None +commit(selection) -> RequestWaiter | None +remove(waiter_id) +view() -> RequestQueueView +``` + +`RequestWaiter` contains waiter id, item, enqueue timestamp, deadline/cancellation state, and the waiter completion handle used by the blocking acquire path. + +`RequestQueueSelection` contains the selected waiter, item, waiter id, queue view, and opaque `sequence_version` for stale-selection detection. + +`RequestQueueView` exposes queued totals, queued counts by request group, queued demand by request resource, and aggregate provider/model waiters. It does not inspect adaptive limit state. + +`try_acquire(...)` is non-blocking. It may immediately acquire only when the request is eligible and no queued eligible waiter for the same request resource or provider/model aggregate cap would be selected before the incoming item by `RequestFairQueue`'s weighted ordering. Otherwise it returns `RequestAdmissionDenied` with reason `queued_waiters_ahead` or another specific denial reason. `RequestAdmissionController` owns request-level admission: @@ -118,30 +270,66 @@ on_release(lease) try_acquire(item) -> RequestAdmissionDecision acquire_sync(item) -> RequestAdmissionLease acquire_async(item) -> RequestAdmissionLease -release_success(lease) -release_rate_limited(lease, retry_after) -release_failure(lease) +release(lease, outcome) -> ReleaseResult pressure -> RequestPressureSnapshotProvider ``` +`acquire_sync(...)` and `acquire_async(...)` wait until a lease is available or a terminal no-lease condition occurs. Timeout, shutdown, or hard denial before a lease is acquired must remove the waiter and raise a typed project error that carries the corresponding `RequestAdmissionDenied` decision. They must not return `None`. + +`RequestAdmissionError` is the typed no-lease exception raised by blocking acquire paths. It wraps `RequestAdmissionDenied` and must not be raised after a lease has been returned; post-lease provider outcomes are represented by `RequestReleaseOutcome`. + +`acquire_async(...)` must preserve cooperative cancellation. If the awaiting task is cancelled before a lease is acquired, the controller removes the waiter, emits a cancellation/denial event, and re-raises the cancellation exception instead of converting it to `RequestAdmissionError`. + +Once a waiter is selected and in-flight counts are incremented, cancellation cannot orphan the lease. The controller either delivers the lease to that waiter's acquire call so caller cleanup can release it, or internally releases the admitted waiter as `local_cancelled` before completing cancellation. A caller's `acquire_async(item)` may only return the lease for its own waiter; if the controller admits another waiter while this caller is awake, it fulfills that other waiter's completion handle and this caller continues waiting. + `RequestAdmissionDecision` is a union of `RequestAdmissionLease` and `RequestAdmissionDenied`. `RequestAdmissionLease` contains: +- `lease_id` - item - acquired timestamp - current adaptive limit - effective max +- controller identity or generation token sufficient to reject stale/wrong-controller releases `RequestAdmissionDenied` contains: - item -- reason -- retry-after or available-after timing where applicable +- reason, such as no capacity, cooldown, queue timeout, queued waiters ahead, cancellation, shutdown, or hard policy denial +- `retry_after_seconds` when supplied by the provider or policy +- `available_after_monotonic` when the controller can compute an unblock deadline - optional snapshot +`RequestReleaseOutcome` contains: + +- `kind`: one of `success`, `rate_limited`, `provider_failure`, `provider_timeout`, `local_cancelled`, `local_timeout`, or `unexpected_exception` +- `retry_after_seconds` when rate limited +- provider/status metadata safe for telemetry + +Only provider rate-limit outcomes drive multiplicative decrease/cooldown. Provider failures may affect diagnostic counters. Local cancellation and local timeout release capacity and wake waiters but must not be treated as provider pressure unless a later policy explicitly defines that behavior. + +`provider_timeout` is a timeout or timeout-shaped transport/provider failure after a lease has been acquired and an outbound provider attempt has started. `local_timeout` is a caller, queue-wait, or controller deadline that is not evidence of provider pressure. Cancellation after lease acquisition is classified as `local_cancelled`; release diagnostics must not mask the original cancellation and the cancellation is re-raised after accounting. + `AdaptiveRequestAdmissionController` is the V1 concrete request controller. It owns AIMD behavior through internal `RequestFairQueue`, `RequestAdmissionPolicy`, and `AdaptiveRequestLimitState`. +Request admission acquires under one controller lock/condition. An admitted lease increments domain in-flight counts and provider/model aggregate in-flight counts before the lease is returned. Release decrements those counts exactly once and wakes eligible waiters. + +Cross-domain arbitration under a provider/model aggregate cap uses `RequestFairQueue` ordering by `RequestGroupSpec` weight. V1 uses weighted fair ordering across request groups sharing the aggregate cap; if weights are equal, older waiters are selected first. + +V1 AIMD semantics: + +- `effective_max = min(provider_model_static_cap, request_config.max_limit_clamp_for_resource_if_present)` +- instantaneous aggregate availability is checked separately as `provider_model_aggregate_in_flight < provider_model_static_cap` +- `initial_limit` is clamped to `[1, effective_max]` +- `current_limit` starts at `initial_limit` +- on `rate_limited`, `current_limit = max(1, floor(current_limit * multiplicative_decrease_factor))`, `blocked_until_monotonic` is set from provider `retry_after_seconds` when supplied or the configured cooldown otherwise, and rate-limit counters increment +- on success outside cooldown, successful releases accumulate; after `increase_after_successes` successes, `current_limit = min(effective_max, current_limit + additive_increase_step)` +- `request_soft_ceiling_recovered` fires when `current_limit` rises above the last rate-limit ceiling +- `request_fully_recovered` fires when `current_limit == effective_max` and cooldown has cleared +- all timing uses a monotonic clock +- waiters use timed waits to the earliest relevant monotonic deadline: queue-wait timeout, cancellation, `available_after_monotonic`, or `blocked_until_monotonic`. Cooldown expiry must wake queued waiters even when no in-flight request releases. + `RequestPressureSnapshotProvider` exposes read-only request pressure: ```text @@ -153,7 +341,9 @@ global_snapshots() It has no mutation or admission methods. -`RequestAdmissionConfig` is the durable request-admission tuning/config vocabulary. `ThrottleConfig` and `RunConfig.throttle` are not durable names. +Snapshots are immutable and internally consistent for their capture point. Domain snapshots include `captured_at`, monotonic `sequence`, resource, effective max, current limit, in-flight count, active lease count, waiters, blocked-until timing, cooldown remaining, rate-limit ceiling, consecutive rate limits, last outcome summary, and leak diagnostic counters. Global provider/model snapshots include aggregate static cap, aggregate in-flight count across domains, aggregate active lease count, aliases contributing to the cap, and per-domain limit summaries. + +`RequestAdmissionConfig` is the durable engine-internal request-admission tuning/config vocabulary for V1. It includes request resources, per-resource `initial_limit`, optional `max_limit_clamp`, configured cooldown, `multiplicative_decrease_factor`, `additive_increase_step`, `increase_after_successes`, and default queue-wait timeout. Legacy request-control config names are not durable names. ## Telemetry And Correlation Contracts @@ -169,21 +359,150 @@ It has no mutation or admission methods. - task type - scheduling group kind - scheduling group identity hash +- task execution id `RuntimeCorrelationProvider` owns set/reset/current behavior, likely through context variables. It must not require request admission protocols to import scheduler types. +Scheduler/request events capture primitive correlation values when event DTOs are constructed. Event sinks must not rely on reading mutable ambient context later, because deferred emission could attach the wrong task context. + +Canonical scheduler `event_kind` values are snake_case and versioned as part of the benchmark artifact schema: + +```text +dependency_ready +ready_enqueued +selected +queue_empty +admission_blocked +group_capped +task_lease_acquired +admission_denied +worker_spawned +worker_spawn_failed +stale_selection +retry_deferred +non_retryable_dropped +cancelled +salvage_redispatched +queue_drained +task_completed +task_lease_released +release_diagnostic +``` + +`SchedulerAdmissionEvent` contains: + +- `event_kind` +- `captured_at_monotonic` +- monotonic `sequence` +- captured `RuntimeCorrelation | None` +- task id +- task execution id when a worker execution exists +- task lease id when available +- scheduler resource key when applicable +- decision reason or release result when applicable +- optional scheduler snapshot +- sanitized diagnostics + +Canonical request `event_kind` values are snake_case and versioned as part of the benchmark artifact schema: + +```text +request_resource_registered +request_effective_cap_changed +request_queue_formed +request_wait_started +request_wait_completed +request_wait_timeout +request_wait_cancelled +request_acquire_denied +request_lease_acquired +model_request_started +model_request_completed +request_queue_drained +request_rate_limited +request_limit_decreased +request_limit_increased +request_soft_ceiling_recovered +request_fully_recovered +request_lease_released +request_release_diagnostic +``` + +`RequestAdmissionEvent` contains: + +- `event_kind` +- `captured_at_monotonic` +- monotonic `sequence` +- captured `RuntimeCorrelation | None` +- request attempt id when the event belongs to one concrete model-call attempt +- request lease id when available +- canonical `RequestResourceKey` when the event is resource-specific +- request group key when the event is queue/admission specific +- denial reason or release outcome when applicable +- optional request pressure snapshot +- sanitized diagnostics + +Lease ids, task ids, request attempt ids, and raw model ids are trace/artifact fields only; they are not metric labels. Metric exporters use bounded labels such as `metric_model_label`, model family, or allowlisted model label. The OTel bridge must reject raw model ids as metric labels. + `CorrelatedRuntimeView` joins scheduler and request timelines for diagnostics, benchmarks, and future operator views. ## Capacity Contracts `AsyncCapacityPlan` records computed per-run capacity values: -- buffer size -- row-group concurrency -- submission capacity -- task admission config -- request admission config -- static provider/model caps when available -- source of each value +```text +CapacityValue[T]: + value: T | None + source: default | run_config | dataset_builder | model_metadata | engine_internal_config | adapter_config | environment | runtime_snapshot | benchmark_override + fallback_from: str | None + missing_reason: str | None + +RowGroupAdmission: + row_group_concurrency: CapacityValue[int] + observed_in_flight: int | None + +ProviderModelStaticCap: + cap: int + aliases: Sequence[str] + raw_caps: Mapping[str, int | None] + merge_rule: min_same_endpoint + +RequestAdmissionConfigSnapshot: + resources: Sequence[RequestResourceKey] + initial_limits: Mapping[RequestResourceKey, int] + max_limit_clamps: Mapping[RequestResourceKey, int | None] + cooldown_seconds: float + multiplicative_decrease_factor: float + additive_increase_step: int + increase_after_successes: int + default_queue_wait_timeout_seconds: float | None + +AsyncCapacityPlan: + configured: + buffer_size: CapacityValue[int] + row_group_admission: RowGroupAdmission + submission_capacity: CapacityValue[int] + task_resource_limits: CapacityValue[Mapping[SchedulerResourceKey, int]] + request_resources: CapacityValue[Sequence[RequestResourceKey]] + provider_model_static_caps: CapacityValue[Mapping[ProviderModelKey, ProviderModelStaticCap]] + request_domain_initial_limits: CapacityValue[Mapping[RequestResourceKey, int]] + request_admission_config: CapacityValue[RequestAdmissionConfigSnapshot] + transport_pool_limits: CapacityValue[Mapping[ProviderModelKey, int]] + runtime_snapshot: + request_domain_current_limits: Mapping[RequestResourceKey, int] | None + request_domain_effective_max: Mapping[RequestResourceKey, int] | None + request_domain_blocked_until: Mapping[RequestResourceKey, float | None] | None + provider_model_aggregate_in_flight: Mapping[ProviderModelKey, int] | None + observed_maxima: + row_groups_in_flight: int + queued_tasks_by_group: Mapping[str, int] + task_leases_by_resource: Mapping[SchedulerResourceKey, int] + request_waiters_by_resource: Mapping[RequestResourceKey, int] + request_in_flight_by_resource: Mapping[RequestResourceKey, int] + provider_model_aggregate_in_flight: Mapping[ProviderModelKey, int] + request_domain_current_limits: Mapping[RequestResourceKey, int] + transport_pool_utilization: Mapping[ProviderModelKey, int] | None +``` + +Fields that depend on request-admission runtime state may be `None` in #654 before #657 lands, but the capacity plan and benchmark artifact must still include the field with `missing_reason` or an equivalent `not_available_until_issue` marker. The capacity plan explains observed runtime behavior. It is not itself a policy engine. diff --git a/plans/645/issue-map.md b/plans/645/issue-map.md index d321b2364..4e0415948 100644 --- a/plans/645/issue-map.md +++ b/plans/645/issue-map.md @@ -25,14 +25,14 @@ Use GitHub issues for: | #652 | Document plugin-facing metadata behavior | [architecture.md](architecture.md), [contracts.md](contracts.md), [migration-and-cleanup.md](migration-and-cleanup.md) | | #644 | Implement task admission lease boundary | [task-admission.md](task-admission.md), [contracts.md](contracts.md), [benchmark-plan.md](benchmark-plan.md) | | #654 | Implement and document capacity vocabulary and snapshots | [capacity-model.md](capacity-model.md), [observability.md](observability.md), [benchmark-plan.md](benchmark-plan.md) | -| #657 | Refactor model-call throttling into request admission | [request-admission.md](request-admission.md), [contracts.md](contracts.md), [migration-and-cleanup.md](migration-and-cleanup.md) | -| #635 | Instrument request admission state | [observability.md](observability.md), [request-admission.md](request-admission.md), [contracts.md](contracts.md) | -| #647 | Instrument scheduler admission state | [observability.md](observability.md), [task-admission.md](task-admission.md), [contracts.md](contracts.md) | -| #648 | Correlate scheduler and request observability | [observability.md](observability.md), [architecture.md](architecture.md) | -| #649 | Build reusable benchmark harness | [benchmark-plan.md](benchmark-plan.md), [capacity-model.md](capacity-model.md), [observability.md](observability.md) | -| #660 | Produce final user/operator docs | [architecture.md](architecture.md), [capacity-model.md](capacity-model.md), [observability.md](observability.md), [migration-and-cleanup.md](migration-and-cleanup.md) | +| #657 | Refactor model-call request control into request admission | [request-admission.md](request-admission.md), [contracts.md](contracts.md), [migration-and-cleanup.md](migration-and-cleanup.md), [benchmark-plan.md](benchmark-plan.md) | +| #635 | Instrument request admission state | [observability.md](observability.md), [request-admission.md](request-admission.md), [contracts.md](contracts.md), [benchmark-plan.md](benchmark-plan.md) | +| #647 | Instrument scheduler admission state | [observability.md](observability.md), [task-admission.md](task-admission.md), [contracts.md](contracts.md), [benchmark-plan.md](benchmark-plan.md) | +| #648 | Correlate scheduler and request observability | [observability.md](observability.md), [architecture.md](architecture.md), [benchmark-plan.md](benchmark-plan.md) | +| #649 | Build reusable benchmark harness and normalize provisional evidence | [benchmark-plan.md](benchmark-plan.md), [capacity-model.md](capacity-model.md), [observability.md](observability.md), [task-admission.md](task-admission.md), [request-admission.md](request-admission.md) | +| #660 | Produce final user/operator docs | [architecture.md](architecture.md), [contracts.md](contracts.md), [request-admission.md](request-admission.md), [capacity-model.md](capacity-model.md), [observability.md](observability.md), [benchmark-plan.md](benchmark-plan.md), [migration-and-cleanup.md](migration-and-cleanup.md) | | #650 | Implement bounded-borrow task policy | [task-admission.md](task-admission.md), [benchmark-plan.md](benchmark-plan.md), [capacity-model.md](capacity-model.md) | -| #651 | Design resource-vector/provider-aware policy | [task-admission.md](task-admission.md), [capacity-model.md](capacity-model.md), [benchmark-plan.md](benchmark-plan.md) | +| #651 | Design resource-vector/provider-aware policy | [task-admission.md](task-admission.md), [request-admission.md](request-admission.md), [capacity-model.md](capacity-model.md), [observability.md](observability.md), [benchmark-plan.md](benchmark-plan.md) | ## Dependency Order @@ -43,7 +43,15 @@ The implementation order remains: -> #635 -> #647 -> #648 -> #649 -> #660 -> #650 -> #651 ``` -#641 and #644 may proceed independently only while #646 preserves the adapter contract between them. The accepted end state is `SchedulingMetadata` feeding task admission through `TaskSchedulingResolver`. +#644 may be prototyped before the metadata chain fully lands only if it remains behind an interim adapter and cannot close until #646/#652 preserve the accepted contract. The accepted end state is `SchedulingMetadata` feeding task admission through `TaskSchedulingResolver`. + +#660 promotes the stabilized V1 admission/capacity/telemetry docs. #650 and #651 are follow-on policy/design issues; if they change behavior or public/operator guidance, they must update this source-of-truth plan and any promoted docs as part of their own acceptance gates. #651 is design-first unless its issue body explicitly promotes an implementation slice. + +## Evidence Phasing + +The native issue order keeps #649 after capacity, request admission, telemetry, and correlation because the reusable harness consumes those contracts. That does not waive evidence for earlier implementation PRs. + +Before #649 closes, issues #644, #654, #657, #635, #647, and #648 must produce provisional benchmark/evidence artifacts using the schema in [benchmark-plan.md](benchmark-plan.md). A minimal deterministic smoke writer should exist before those slices rely on one-off evidence. Issue #649 then converts those provisional artifacts into the reusable harness, reruns representative scenarios, and becomes the gate for #660, #650, and #651. ## Issue Body Cleanup Pattern diff --git a/plans/645/migration-and-cleanup.md b/plans/645/migration-and-cleanup.md index 6d21bfb72..e02e7375a 100644 --- a/plans/645/migration-and-cleanup.md +++ b/plans/645/migration-and-cleanup.md @@ -1,6 +1,6 @@ # Migration And Cleanup -The epic is not complete until replaced names and compatibility paths are removed from production code and current docs. +The epic is not complete until replaced names and compatibility paths are removed from production code, current docs, and this source-of-truth plan. ## Scheduling Metadata Cleanup @@ -33,7 +33,6 @@ The durable request-admission names are: - `RequestAdmissionController` - `AdaptiveRequestAdmissionController` - `RequestAdmissionConfig` -- `RunConfig.request_admission` - `RequestDomain` Final search gate should have no production/current-doc matches for: @@ -44,6 +43,8 @@ ThrottleDomain ThrottleConfig RunConfig.throttle throttle_manager.py +ThrottledModelClient +throttled_model_client ``` Historical changelog text may remain only if it is clearly marked as historical and not presented as current API. @@ -74,11 +75,11 @@ By #653 close, legacy scheduling-hint production paths are gone and tests have m By #657 close, request-admission code has no production `Throttle*` aliases, exports, modules, or durable tests. -By #645 close, public/current docs use only the durable architecture vocabulary. Historical changelog or dev-note text can remain only when explicitly marked historical. +By #645 close, public/current docs and `plans/645` use only the durable architecture vocabulary except for this cleanup file's explicit legacy-name search lists. Historical changelog or dev-note text can remain only when explicitly marked historical. ## Documentation Cleanup -Current user/operator docs should use: +Current maintainer architecture docs should use durable internal names when they discuss implementation internals: - `SchedulingMetadata` - `TaskSchedulingResolver` @@ -91,16 +92,22 @@ Current user/operator docs should use: - `RequestAdmissionConfig` - `RuntimeCorrelationProvider` -Docs must not present scheduler internals as plugin API. Plugin-facing docs should describe metadata only, then link to architecture docs for maintainers/operators. +User/operator docs should expose public run config fields, `AsyncCapacityPlan`, benchmark artifacts, telemetry views, and high-level layer names. They must not present `TaskAdmissionConfig`, `RequestAdmissionConfig`, policies, leases, queues, or controller mutation APIs as public user knobs. Plugin-facing docs should describe metadata only, then link to architecture docs for maintainers/operators. + +Current architecture docs, diagrams, generated assets, and plan files must be checked as part of final cleanup. Existing historical dev notes may retain old names only when the text clearly says the name is historical and no longer current API. + +Current user/operator architecture docs must also remove or mark as historical semaphore/throttling descriptions that imply the pre-epic architecture. This includes old model-client throttling names and semaphore-based scheduling explanations. ## Validation Commands Adjust paths as files move, but final PRs should include searches equivalent to: ```bash -rg "SchedulingHintResolver|SchedulingHint|_model_aliases_for_generator|is_llm_bound" packages docs fern -rg "ThrottleManager|ThrottleDomain|ThrottleConfig|RunConfig\\.throttle|throttle_manager\\.py" packages docs fern -rg "needs_llm_wait|held_llm_wait|max_llm_wait_tasks" packages docs fern +rg "SchedulingHintResolver|SchedulingHint|_model_aliases_for_generator|is_llm_bound" packages docs fern architecture plans/645 +rg "ThrottleManager|ThrottleDomain|ThrottleConfig|RunConfig\\.throttle|throttle_manager\\.py|ThrottledModelClient|throttled_model_client" packages docs fern architecture plans/645 +rg "_submission_semaphore|_llm_wait_semaphore|get_semaphore_permits|TrackingSemaphore" packages docs fern architecture plans/645 +rg "throttl(e|ed|ing)|semaphore" docs fern architecture plans/645 +rg "needs_llm_wait|held_llm_wait|max_llm_wait_tasks" packages docs fern architecture plans/645 ``` -Any remaining hit must be intentionally historical, not a current implementation or docs path. +Any remaining hit must be intentionally historical, not a current implementation or docs path. Allowed plan hits are limited to explicit cleanup/search-gate sections that name the legacy strings so reviewers know what to remove. The task-stage semaphore-specific search distinguishes obsolete submission/LLM-wait scheduling semaphores from unrelated internal synchronization primitives that may remain after review. diff --git a/plans/645/observability.md b/plans/645/observability.md index 9520dbc47..ffc76ef3a 100644 --- a/plans/645/observability.md +++ b/plans/645/observability.md @@ -12,69 +12,95 @@ Both sinks are generic first. OpenTelemetry, structured logs, dashboards, benchm Sink failures must never interrupt generation. Event data can be collected under locks, but event emission should happen after locks are released. +Event DTOs capture primitive correlation fields at construction time. Sinks receive already-captured event data; they must not read ambient context later to discover which task/request an event belongs to. + +All event DTOs include `captured_at_monotonic` and a monotonic per-stream `sequence`. Scheduler events include task id, task execution id when a worker execution exists, task lease id when available, scheduler resource key when applicable, denial/release reason when applicable, optional snapshot, and sanitized diagnostics. Request events include request attempt id when they belong to one concrete attempt, request lease id when available, canonical request resource when resource-specific, request group key when queue/admission-specific, denial/release outcome when applicable, optional pressure snapshot, and sanitized diagnostics. + ## Scheduler Admission Events Scheduler events describe dependency-ready work moving through ready ordering, task admission, worker spawn, and task lease release. -Representative event kinds: - -- ready enqueued -- selected -- lease acquired -- worker spawned -- admission blocked -- group capped -- stale selection -- retry deferred -- non-retryable dropped -- cancelled -- salvage redispatched -- queue drained -- lease released -- completed +Canonical scheduler event kinds: + +- `dependency_ready` +- `ready_enqueued` +- `selected` +- `queue_empty` +- `admission_blocked` +- `group_capped` +- `task_lease_acquired` +- `admission_denied` +- `worker_spawned` +- `worker_spawn_failed` +- `stale_selection` +- `retry_deferred` +- `non_retryable_dropped` +- `cancelled` +- `salvage_redispatched` +- `queue_drained` +- `task_completed` +- `task_lease_released` +- `release_diagnostic` Scheduler snapshots include: - queued total - queued by group +- queued demand by group/resource - admitted/running by group -- submission available -- scheduler resources available +- resource limits by scheduler resource +- scheduler resources available by resource +- leased resources by group/resource +- active task lease count by resource +- release diagnostic counters +- bounded-borrow debt by group/resource when applicable -Scheduler events must make `spawned_waiting_for_llm_lease` derivable and zero after the task-admission lease boundary lands. +Scheduler events must make hidden scheduler-resource waiters derivable and zero after the task-admission lease boundary lands. ## Request Admission Events Request events describe provider/model/domain request admission and AIMD behavior. -Representative event kinds: - -- registered -- effective cap changed -- queue formed -- wait started -- queue wait completed -- queue wait timeout -- queue drained -- rate limited -- limit decreased -- limit increased -- soft ceiling recovered -- fully recovered -- failure released +Canonical request event kinds: + +- `request_resource_registered` +- `request_effective_cap_changed` +- `request_queue_formed` +- `request_wait_started` +- `request_wait_completed` +- `request_wait_timeout` +- `request_wait_cancelled` +- `request_acquire_denied` +- `request_lease_acquired` +- `model_request_started` +- `model_request_completed` +- `request_queue_drained` +- `request_rate_limited` +- `request_limit_decreased` +- `request_limit_increased` +- `request_soft_ceiling_recovered` +- `request_fully_recovered` +- `request_lease_released` +- `request_release_diagnostic` Request snapshots include: +- captured timestamp +- monotonic sequence - request resource - effective max - current limit - in-flight count +- active lease count - waiters +- blocked-until timing - cooldown remaining - rate-limit ceiling - consecutive rate limits +- last release outcome +- leak diagnostic counters -Global provider/model snapshots capture effective static caps and aliases. +Global provider/model snapshots capture effective static caps, aggregate in-flight counts across domains, aliases, and per-domain summaries. ## Runtime Correlation @@ -88,8 +114,11 @@ Global provider/model snapshots capture effective static caps and aliases. - task type - scheduling group kind - scheduling group identity hash +- task execution id -`ModelRequestExecutor` and event sinks read the current correlation context at event emission time. `AdaptiveRequestAdmissionController` remains keyed by provider/model/domain resources and does not import scheduler types. +`ModelRequestExecutor` reads the current correlation context when constructing `RequestEventContext` for each concrete request attempt. Scheduler event DTOs capture the scheduler's current task/run identity directly. `AdaptiveRequestAdmissionController` remains keyed by provider/model/domain resources and does not import scheduler task types; it may attach the opaque primitive request event context to request events. + +Correlation must propagate through child asyncio tasks created as part of admitted task execution. If execution crosses threads, callbacks, or background tasks that cannot preserve context variables, the caller must pass primitive `RuntimeCorrelation` explicitly or mark the event as intentionally uncorrelated. Late/background provider calls after the scheduler has reset task context are not considered part of the admitted task unless they carry explicit correlation. `CorrelatedRuntimeView` joins the timelines for diagnostics and benchmarks. @@ -104,9 +133,10 @@ selected by fair queue task lease acquired worker spawned request admission wait started +request admission wait completed request lease acquired -provider request started -provider request completed +model request started +model request completed request lease released task completed task lease released @@ -114,6 +144,22 @@ task lease released Runs should be diagnosable as limited by dependency readiness, ready-queue fairness, scheduler capacity, request-admission wait, provider cooldown/rate-limit behavior, transport/provider execution, or downstream completion. +Benchmark-required monotonic timeline fields are derived from these events: + +- `dependency_ready_at` +- `ready_enqueued_at` +- `selected_at` +- `task_lease_acquired_at` +- `worker_spawned_at` +- `request_wait_started_at` +- `request_wait_completed_at` +- `request_lease_acquired_at` +- `model_request_started_at` +- `model_request_completed_at` +- `request_lease_released_at` +- `task_completed_at` +- `task_lease_released_at` + ## Cardinality And Safety Metric-safe dimensions: @@ -122,7 +168,8 @@ Metric-safe dimensions: - scheduler resource kind - request admission event kind - provider name -- model id +- bounded model label, model family, or allowlisted model label +- metric model label - request domain - algorithm @@ -133,6 +180,12 @@ Trace-only or sampled fields: - task column - task type - scheduling group identity hash +- raw model id +- task id +- task execution id +- task lease id +- request attempt id +- request lease id - queued maps by group Never emit: diff --git a/plans/645/request-admission.md b/plans/645/request-admission.md index ce2575683..366080f36 100644 --- a/plans/645/request-admission.md +++ b/plans/645/request-admission.md @@ -6,13 +6,18 @@ Request admission controls concrete provider/model/domain calls at the moment th ```text ModelRequestExecutor + -> ModelRequestExecutor.execute_attempt(request) -> RequestAdmissionController.acquire_async(RequestAdmissionItem) -> RequestAdmissionLease -> provider/model endpoint - -> release_success | release_rate_limited | release_failure + -> RequestAdmissionController.release(lease, RequestReleaseOutcome) ``` -`ModelRequestExecutor` is the durable model-call boundary. It maps each concrete call to a request resource, acquires a lease, calls the provider, records timing, and releases the exact lease. +`ModelRequestExecutor` is the durable model-call boundary. It maps each concrete call attempt to a request resource, acquires a lease, calls the provider, records timing, and releases the exact lease. + +The boundary is per outbound attempt. Provider retry behavior must either live inside `ModelRequestExecutor` and acquire/release a lease for each attempt, or call back through `ModelRequestExecutor` for each attempt. HTTP/provider-client retries that hide multiple outbound attempts under one request lease are not compatible with the target architecture because rate limits and provider timing would be invisible to request admission. + +After a lease is acquired, `ModelRequestExecutor` owns release in a non-cancellable cleanup path. Cancellation after lease acquisition is classified as `local_cancelled`, the exact lease is released before the cancellation is re-raised, and release diagnostics must not mask the original cancellation. ## Dynamic Requests @@ -23,6 +28,7 @@ Therefore: - task admission must not pre-acquire request permits - request admission happens at concrete model-call time - each acquired request lease is released exactly once +- each retry attempt is admitted and released independently - request-level wait and provider execution timing remain visible separately ## Durable Names @@ -33,36 +39,62 @@ The durable V1 implementation name is `AdaptiveRequestAdmissionController`. The durable model-call boundary name is `ModelRequestExecutor`. -The durable config vocabulary is `RequestAdmissionConfig` and `RunConfig.request_admission` if a run config surface exists. - -Do not keep production aliases, shims, subclasses, adapters, exports, docs paths, or durable tests for: +The durable internal config vocabulary is `RequestAdmissionConfig`. V1 does not introduce a public `RunConfig.request_admission` knob; that spelling is reserved for a later public surface if benchmark evidence justifies one. -- `ThrottleManager` -- `ThrottleDomain` -- `ThrottleConfig` -- `RunConfig.throttle` -- `throttle_manager.py` +Do not keep production aliases, shims, subclasses, adapters, exports, docs paths, or durable tests for the replaced request-control vocabulary. [Migration and cleanup](migration-and-cleanup.md#request-admission-cleanup) lists the exact search terms. ## Request Resource Model -`RequestResourceKey` identifies: +`RequestResourceKey` identifies canonical resolved request identity: -- provider name -- model id +- provider name, after alias resolution +- model id, after alias resolution - request domain -`RequestDomain` includes domains such as chat, embedding, image, and healthcheck. +Aliases are diagnostic-only after request-key construction. They are recorded in `AsyncCapacityPlan` and snapshots, but request admission must not key aggregate caps by user alias. + +`RequestResourceResolver` is the single canonicalization contract for request admission. It resolves provider alias, model alias, model id, generation kind, endpoint metadata, and `RequestDomain` into `ProviderModelKey` and `RequestResourceKey`. Metadata resolution and capacity planning use the same provider/model canonicalization rules; generation kind is folded into the canonical model id only when the provider treats it as a distinct endpoint. + +`RequestDomain` V1 values are `chat`, `embedding`, `image`, and `healthcheck`. Additions require updating this plan. -`RequestAdmissionItem` contains resource, group, and optional timeout. `RequestGroupSpec` contains resource key and weight. +`RequestAdmissionItem` contains resource, group, optional queue-wait timeout, and `RequestEventContext`. `RequestGroupSpec` contains a fairness group key and weight. In V1 the fairness group key is the `RequestResourceKey`; a future policy may split resource identity from fairness identity only after updating this plan. + +`RequestEventContext` is created by `ModelRequestExecutor` from the current primitive runtime correlation plus a request-attempt id. It is telemetry context, not scheduler state. `RequestAdmissionDecision` is `RequestAdmissionLease | RequestAdmissionDenied`. -`RequestAdmissionLease` records the item, acquired timestamp, current adaptive limit, and effective max. +`RequestAdmissionLease` records a unique lease id, item, acquired timestamp, current adaptive limit, effective max, and controller generation token. `RequestAdmissionDenied` records item, reason, retry timing, availability timing, and optional snapshot. `RequestAdmissionController.pressure` exposes the read-only `RequestPressureSnapshotProvider`. +`acquire_sync(...)` and `acquire_async(...)` block until a lease is available or a terminal no-lease condition occurs. Queue-wait timeout, shutdown, or hard denial removes the waiter and raises `RequestAdmissionError`, a typed Data Designer error carrying `RequestAdmissionDenied`. These methods never return `None`. `try_acquire(...)` is the non-blocking path that returns the full decision union. + +`acquire_async(...)` preserves cooperative cancellation: if the awaiting task is cancelled before a lease is acquired, the controller removes the waiter, emits a cancellation event, and re-raises the cancellation exception. + +Once the controller selects a waiter and increments in-flight counts, cancellation cannot orphan the lease. The selected waiter's acquire call receives the lease for caller cleanup, or the controller internally releases it as `local_cancelled` before completing cancellation. A blocking acquire call may only return a lease for its own waiter; if a wakeup admits a different waiter, that other waiter is fulfilled and the current caller continues waiting. + +## Request Queue Semantics + +`AdaptiveRequestAdmissionController` owns an internal `RequestFairQueue`. The queue is protected by the controller lock/condition and exposes the same transaction shape as task admission: + +```text +enqueue(waiter) +select_next(is_eligible) -> RequestQueueSelection | None +commit(selection) -> RequestWaiter | None +remove(waiter_id) +view() -> RequestQueueView +``` + +`RequestWaiter` carries waiter id, item, enqueue timestamp, deadline/cancellation state, and the completion handle for the blocking acquire path. `RequestQueueSelection` carries waiter, item, waiter id, queue view, and a `sequence_version`. `commit(selection)` is the only operation that removes an admitted waiter. + +Wakeups occur when a request lease releases, cooldown expires, adaptive limit increases, shutdown/cancellation removes waiters, or provider/model aggregate capacity becomes available. Waiters use monotonic timed waits to the earliest queue timeout, `available_after_monotonic`, or `blocked_until_monotonic`; cooldown expiry cannot depend on a later provider release to wake the queue. + +Every concrete request attempt emits request-wait timeline events. Immediate acquisition emits `request_wait_started` and `request_wait_completed` as a zero-duration wait before `request_lease_acquired`; queued acquisition emits those events around actual queue wait. + +`try_acquire(...)` must not bypass queued work. It may return an immediate lease only when the item is eligible and no queued eligible waiter for the same request resource or provider/model aggregate cap would be selected first by `RequestFairQueue` weighted ordering. Otherwise it returns a typed denial, usually `queued_waiters_ahead`, `cooldown`, or `no_capacity`. + ## AdaptiveRequestAdmissionController `AdaptiveRequestAdmissionController` is the AIMD-backed request controller. It owns: @@ -70,7 +102,7 @@ Do not keep production aliases, shims, subclasses, adapters, exports, docs paths - request fair queueing - request admission policy - adaptive request limit state -- provider/model/domain in-flight counts +- provider/model/domain in-flight counts plus provider/model aggregate in-flight counts - waiters - cooldown state - rate-limit cascades @@ -79,36 +111,81 @@ Do not keep production aliases, shims, subclasses, adapters, exports, docs paths Internal `RequestFairQueue`, `RequestAdmissionPolicy`, and `AdaptiveRequestLimitState` are part of the single canonical request-admission implementation. They are not a second public wrapper around request admission. +An admitted request increments domain in-flight count and provider/model aggregate in-flight count before the lease is returned. Release decrements those counts exactly once before waking waiters. + +Weighted fairness applies across `RequestGroupSpec` groups that share a provider/model aggregate cap. Equal weights fall back to oldest waiter first. + +V1 AIMD contract: + +- all timing uses a monotonic clock +- `effective_max = min(provider_model_static_cap, request_config.max_limit_clamp_for_resource_if_present)` +- instantaneous aggregate availability is enforced separately by `provider_model_aggregate_in_flight < provider_model_static_cap` +- `initial_limit` is clamped to `[1, effective_max]` +- `current_limit` starts at `initial_limit` +- provider rate limits apply multiplicative decrease and set `blocked_until_monotonic` +- success outside cooldown contributes to additive recovery +- `request_limit_increased`, `request_soft_ceiling_recovered`, and `request_fully_recovered` events are emitted from state transitions, not inferred later by sinks + ## Release Classification -`ModelRequestExecutor` releases the exact acquired lease through: +`ModelRequestExecutor` releases the exact acquired lease through the canonical release call: + +```text +release(lease, RequestReleaseOutcome) +``` + +Required outcome kinds: -- `release_success(lease)` after provider success -- `release_rate_limited(lease, retry_after)` after provider rate-limit response -- `release_failure(lease)` after non-rate-limit failure, cancellation, timeout, or unexpected exception +- `success` +- `rate_limited`, with `retry_after_seconds` when available +- `provider_failure` +- `provider_timeout` +- `local_cancelled` +- `local_timeout` +- `unexpected_exception` The release path is responsible for exactly-once accounting. Key-only release paths are not durable. +Rate-limit outcomes drive AIMD decrease, cooldown, and waiter wake behavior. Provider failures may drive diagnostic counters but do not automatically imply provider pressure. Local cancellation and local timeout release capacity and wake waiters but must not be treated as rate limits or provider failures. + +`provider_timeout` means a timeout or timeout-shaped transport/provider error after a lease has been acquired and an outbound provider attempt has started. `local_timeout` means a caller, queue-wait, or controller deadline that is not evidence of provider pressure. + +Release returns `ReleaseResult` and must not raise from terminal cleanup paths. Duplicate release, stale release, or release against the wrong controller generation must return a diagnostic result and emit an error event without corrupting counters. + ## Request Pressure Snapshots `RequestPressureSnapshotProvider` exposes read-only state to diagnostics, benchmarks, telemetry, and future task policies. Domain snapshots include: +- captured timestamp +- monotonic sequence/version - request resource - effective max - current limit - in-flight count +- active lease count - waiters - blocked-until timing - cooldown remaining - rate-limit ceiling - consecutive rate limits +- last release outcome summary +- leak diagnostic counters -Global snapshots include provider/model effective caps and aliases. +Global snapshots include provider/model effective static caps, aggregate in-flight count across domains, aggregate active lease count, aliases contributing to the cap, and per-domain limit summaries. Task admission may read these snapshots as advisory input in later policy work. It must not mutate request state or emulate request admission. +## Static And Adaptive Cap Semantics + +`max_parallel_requests` remains the provider/model static cap when available. In V1, that cap is enforced as an aggregate upper bound across all request domains for the provider/model. Domain-specific adaptive limits decide how each domain is admitted beneath the aggregate cap; there is no cross-domain aggregate AIMD state beyond the static aggregate cap unless a later issue adds one. + +Effective admission for a request must satisfy both: + +- the provider/model aggregate static cap has available in-flight capacity +- the request domain's adaptive limit and cooldown state admits the item + ## Non-Goals - Do not make request admission aware of DAG dependencies. diff --git a/plans/645/task-admission.md b/plans/645/task-admission.md index cf594a6d8..f26684d1a 100644 --- a/plans/645/task-admission.md +++ b/plans/645/task-admission.md @@ -7,27 +7,43 @@ Task admission controls when dependency-ready dataset work may become a running `AsyncTaskScheduler` is the control owner. Its dispatch loop follows this shape: ```python -selection = queue.select_next(admission.is_eligible) +selection = queue.select_next(lambda item, view: admission.is_eligible(item, view)) if selection is None: - wait_for_wake() + block_summary = admission.explain_blocked(queue.view()) + emit_queue_empty_or_blocked(block_summary) + wait_for_wake_or_deadline(block_summary.available_after) return -lease = admission.try_acquire(selection.item, queue.view()) -if lease is None: - wait_for_wake() +decision = admission.try_acquire(selection.item, selection.queue_view) +if isinstance(decision, TaskAdmissionDenied): + emit_admission_denied(decision) + wake_dispatch_loop() return +lease = decision committed = queue.commit(selection) if committed is None: admission.release(lease) + emit_stale_selection(selection, lease) wake_dispatch_loop() return -spawn_worker(committed, lease) +try: + spawn_worker(committed, lease) +except Exception: + admission.release(lease) + emit_worker_spawn_failed(committed, lease) + raise ``` `FairTaskQueue` selects candidates. `TaskAdmissionController` leases scheduler resources. The scheduler coordinates both. +V1 requires a scheduler dispatch mutex around `select_next -> try_acquire -> commit`. No concurrent dispatch iteration may acquire resources for the same selected task. `QueueSelection` still carries a queue version so `commit(selection)` can detect stale selections defensively. If `commit(selection)` fails because the selection is stale, the scheduler releases the exact task lease before retrying and emits a stale-selection event. + +Wakeups are required when ready work is enqueued, task admission capacity is released, policy state changes from denied to eligible, an `available_after` deadline expires, shutdown/cancellation is requested, or a stale selection is detected. The implementation must avoid lost wakeups: a sleeper cannot remain asleep while queued work is eligible and task capacity is available. + +Lock ordering is part of the contract: the scheduler dispatch mutex coordinates the sequence, but `FairTaskQueue` must not hold queue-internal locks while invoking the scheduler eligibility predicate, and event sinks must not be called while queue or controller locks are held. + ## Queue Semantics `FairTaskQueue` owns ready-work ordering only. @@ -37,9 +53,14 @@ Rules: - `select_next(...)` is non-mutating. - `select_next(...)` calls the eligibility callback with candidates and queue view. - `QueueSelection` returns to `AsyncTaskScheduler`. +- `QueueSelection` carries the queue view/version used to evaluate the candidate. +- `enqueue(...)` returns the accepted task ids; duplicate task ids are accepted idempotently and do not create duplicate queue entries. - `commit(selection)` removes the selected task and advances queue state. - The queue does not track admitted/running counts after this epic. - The queue does not inspect model registries, provider pressure, or request-admission state. +- The queue may scan ready candidates to find the next eligible task, but eligibility is computed only through the scheduler-supplied predicate. + +`QueueView` must be strong enough for current strict fairness and future bounded borrow without policy traversal of queue internals. It includes queued counts by group, queued demand by group/resource, and first-candidate resources by group. It does not report admission-aware eligibility. `TaskAdmissionPolicy` computes whether a peer is eligible for a currently available resource by combining `QueueView` with `TaskAdmissionView`. ## Admission Semantics @@ -50,6 +71,8 @@ Rules: - admitted/running resource counts - per-group accounting used by policy - release on every worker terminal path +- rollback of acquired resources when the scheduler reports stale queue commit +- the authoritative hard resource ledger; policy debt is stored separately and affects eligibility without changing resource availability counters directly `TaskAdmissionPolicy` owns: @@ -59,6 +82,10 @@ Rules: - bounded-borrow behavior - future resource-vector policy decisions +`TaskAdmissionPolicy.evaluate(...)` is a pure decision function. It can be called repeatedly while the queue scans candidates and must not mutate debt, counters, timers, or diagnostics. `on_acquire(...)` and `on_release(...)` return deterministic policy state deltas. They must not directly mutate the controller's authoritative lease/resource ledger. If a policy needs borrow debt or similar mutable state, the controller applies the state transition as part of the same acquire/release transaction and exposes the resulting policy state in `TaskAdmissionView`. + +Policy decisions are typed. A denied decision carries the reason used by scheduler telemetry and tests. Bounded-borrow policies return `PolicyStateDelta` values for borrow-debt increments and repayments; the controller applies those deltas atomically with the lease acquire/release path. + `TaskAdmissionController` consumes `SchedulableTask`, `SchedulerResourceRequest`, `QueueView`, and `TaskAdmissionView`. It must not inspect `ColumnGenerator`, config layout, model registry, or provider registry directly. ## V1 Lease Boundary @@ -70,6 +97,10 @@ V1 includes: - submission capacity for scheduler-spawned work - task-stage LLM-wait style resource if a distinct scheduler-stage resource remains - current per-group admitted/running cap behavior +- typed `TaskAdmissionDecision` denial reasons for telemetry, tests, and benchmarks +- unique task lease identities so duplicate, stale, or wrong-controller releases are rejected or diagnosed + +V1 request waits remain inside admitted task execution and the task lease is retained until worker completion. That preserves the lease boundary and makes request waits visible, but it does not by itself solve cross-provider utilization when tasks for a cooled-down provider occupy all scheduler task slots. Issue #651 must address provider/resource-aware task admission or an explicit yield/reacquire design before the epic claims cross-provider scheduling optimization as complete. V1 excludes: @@ -84,6 +115,16 @@ V1 excludes: Root/from-scratch tasks must become `SchedulableTask`s and enter the same `FairTaskQueue` as downstream ready tasks. They must acquire scheduler-level leases through `TaskAdmissionController`. +Initial root materialization is owned by `AsyncTaskScheduler`. `CompletionTracker.ready_frontier()` reports dependency-ready root tasks to the scheduler; the scheduler enqueues them into `FairTaskQueue` through the same path used for downstream work. `CompletionTracker` must not enqueue directly into `FairTaskQueue`. + +Readiness handoff is idempotent: + +- every `SchedulableTask` has a stable `task_id` +- `ready_frontier()` returns tasks that are ready and not yet acknowledged as enqueued +- `FairTaskQueue.enqueue(...)` is idempotent by `task_id` +- after enqueue succeeds, the scheduler calls `CompletionTracker.mark_enqueued(task_ids)` +- `CompletionTracker.mark_complete(task)` closes the task only after the scheduler records the terminal outcome + No root dispatch path should bypass: - ready queue membership @@ -98,7 +139,20 @@ This is required for heavy-root live-traffic evidence and later bounded-borrow p Resource-bound work must not become a spawned worker that waits for scheduler-level resources. The lease is acquired before spawn. -Non-resource-bound work holds the relevant scheduler lease until worker completion. Resource-bound work holds the scheduler resource lease that represents the V1 task-stage resource request. Durable `needs_llm_wait` and `held_llm_wait` fields are not part of the target architecture. +Non-resource-bound work holds the relevant scheduler lease until worker completion. Resource-bound work holds the scheduler resource lease that represents the V1 task-stage resource request. Legacy hidden-wait booleans are not part of the target architecture. + +## Lease Lifecycle + +Every admitted task has one `TaskAdmissionLease` with a unique lease id. The scheduler releases that exact lease in a terminal `finally` path for success, retryable failure, non-retryable failure, cancellation, shutdown, salvage redispatch, and worker-spawn failure. + +Release rules: + +- release returns `ReleaseResult` and must not raise from terminal `finally` paths +- duplicate release must not increment capacity +- releasing a stale lease or a lease from another controller generation returns a diagnostic release result and emits an error event +- stale queue commit releases the task lease before any worker is spawned +- salvage/retry may make replacement work visible only after the original lease terminal path is accounted for. Replacement work is recorded through `CompletionTracker` or an explicit retry tracker, then re-enters the normal `ready_frontier() -> enqueue -> mark_enqueued` handoff; it must not be inserted directly into `FairTaskQueue` while the original lease is active. +- task release wakes the dispatch loop if queued work may now be eligible ## Bounded Borrow Policy @@ -106,16 +160,19 @@ Non-resource-bound work holds the relevant scheduler lease until worker completi Policy inputs: -- `QueueView`: queued counts and peer pressure. -- `TaskAdmissionView`: leased/running counts and resources available. +- `QueueView`: queued counts and queued resource demand. +- `TaskAdmissionView`: resource limits, availability, leased/running counts, and policy debt by group/resource. - `TaskGroupSpec`: group key and weight. - candidate `SchedulerResourceRequest`. +- engine-internal `BoundedBorrowTaskAdmissionPolicyConfig` when enabled by #650, including borrow ceiling by group/resource, strict-share rounding mode, and repayment behavior. Policy constraints: - Single-group workloads remain live. -- A solo heavy group may borrow only to its borrow ceiling. -- When peer queue pressure exists and a group has borrow debt, that group receives no further admissions while an eligible peer has queued work and the required resource is available. +- Borrow debt is measured in admitted scheduler-resource units above strict fair share for a group/resource. Strict share is computed from scheduler-known competing groups and their weights; #650 owns the exact rounding rule and benchmark evidence. +- A group may borrow beyond strict share only up to its configured ceiling while no eligible peer can use the resource. +- When peer queue pressure exists and a group has borrow debt, that group receives no further admissions for the borrowed resource while an eligible peer has queued work and the required resource is available. +- Debt repayment happens when peer pressure exists and the indebted group is withheld, or when policy-defined repayment work completes. Repayment changes policy debt counters only, not hard resource availability. - The policy must not traverse the DAG inside `FairTaskQueue`. - No public knob is added until benchmark evidence supports it. From d40e27c22395935811a535b6fa8a7cee7418f4b7 Mon Sep 17 00:00:00 2001 From: "Eric W. Tramel" Date: Thu, 14 May 2026 17:36:08 -0400 Subject: [PATCH 10/33] feat: implement async scheduling admission control Signed-off-by: Eric W. Tramel --- architecture/dataset-builders.md | 6 +- architecture/models.md | 28 +- architecture/overview.md | 6 +- .../agent-aimd-scale/README.md | 48 + .../agent-aimd-scale/combined_summary.json | 1224 +++++++++++++++++ .../645-live-bench-nano/agent-aimd/README.md | 28 + .../agent-aimd/combined_summary.json | 906 ++++++++++++ .../agent-bottleneck/README.md | 32 + .../agent-bottleneck/README_mixed.md | 27 + .../combined_mixed_summary.json | 369 +++++ .../agent-bottleneck/combined_summary.json | 297 ++++ .../agent-cap-scale/README.md | 33 + .../agent-cap-scale/combined_summary.json | 93 ++ .../agent-cap-sweep/README.md | 13 + .../agent-cap-sweep/README_final1024.md | 13 + .../agent-cap-sweep/combined_summary.json | 269 ++++ .../combined_summary_final1024.json | 493 +++++++ .../agent-fan-scale/README.md | 37 + .../agent-fan-scale/combined_summary.json | 279 ++++ .../645-live-bench-nano/agent-fan/README.md | 4 + .../agent-fan/combined_summary.json | 161 +++ .../agent-mixed-pipeline/README.md | 12 + .../combined_summary.json | 1206 ++++++++++++++++ .../agent-mixed-pipeline/smoke/README.md | 10 + .../smoke/combined_summary.json | 176 +++ artifacts/645-live-bench/agent-fan/README.md | 21 + .../agent-fan/combined_summary.json | 452 ++++++ .../maxparallel_live_benchmark.json | 507 +++++++ .../maxparallel_live_benchmark.md | 22 + docs/concepts/architecture-and-performance.md | 61 +- .../architecture-layers.svg | 12 +- .../async-all-the-way-down/task-lifecycle.png | Bin 30470 -> 47355 bytes .../native-model-client-layers.png | Bin 196456 -> 54814 bytes ...throttle-keying.png => request-keying.png} | Bin .../owning-the-model-stack/retry-boundary.png | Bin 331171 -> 42573 bytes docs/devnotes/posts/async-all-the-way-down.md | 47 +- docs/devnotes/posts/owning-the-model-stack.md | 58 +- .../architecture-layers.svg | 12 +- .../async-all-the-way-down/task-lifecycle.png | Bin 30470 -> 47355 bytes fern/assets/images/architecture-layers.svg | 12 +- .../images/native-model-client-layers.png | Bin 196456 -> 54814 bytes ...throttle-keying.png => request-keying.png} | Bin fern/assets/images/retry-boundary.png | Bin 331171 -> 42573 bytes fern/assets/images/task-lifecycle.png | Bin 30470 -> 47355 bytes .../native-model-client-layers.png | Bin 196456 -> 54814 bytes ...throttle-keying.png => request-keying.png} | Bin .../owning-the-model-stack/retry-boundary.png | Bin 331171 -> 42573 bytes fern/versions/latest/pages/devnotes/index.mdx | 2 +- .../concepts/architecture-and-performance.mdx | 58 +- fern/versions/v0.5.8/pages/devnotes/index.mdx | 2 +- .../devnotes/posts/async-all-the-way-down.mdx | 47 +- .../devnotes/posts/owning-the-model-stack.mdx | 58 +- fern/versions/v0.5.9/pages/devnotes/index.mdx | 2 +- .../src/data_designer/config/__init__.py | 7 +- .../src/data_designer/config/run_config.py | 63 +- .../src/data_designer/config/scheduling.py | 118 ++ .../tests/config/test_scheduling.py | 35 + .../src/data_designer/engine/capacity.py | 119 ++ .../column_generators/generators/base.py | 87 +- .../column_generators/generators/custom.py | 19 +- .../dataset_builders/async_scheduler.py | 513 ++++--- .../dataset_builders/dataset_builder.py | 10 +- .../utils/completion_tracker.py | 72 +- .../dataset_builders/utils/fair_task_queue.py | 248 ++-- .../utils/scheduling_hints.py | 123 -- .../dataset_builders/utils/task_admission.py | 416 ++++++ .../dataset_builders/utils/task_scheduling.py | 150 ++ .../engine/models/clients/__init__.py | 31 +- .../models/clients/adapters/anthropic.py | 4 +- .../clients/adapters/openai_compatible.py | 4 +- .../engine/models/clients/factory.py | 23 +- .../models/clients/model_request_executor.py | 244 ++++ .../models/clients/request_admission.py | 968 +++++++++++++ .../engine/models/clients/retry.py | 14 +- .../engine/models/clients/throttle_manager.py | 505 ------- .../engine/models/clients/throttled.py | 222 --- .../data_designer/engine/models/factory.py | 14 +- .../data_designer/engine/models/registry.py | 21 +- .../src/data_designer/engine/observability.py | 187 +++ .../dataset_builders/test_async_scheduler.py | 272 ++-- .../utils/test_completion_tracker.py | 2 +- .../utils/test_fair_task_queue.py | 234 ++-- .../utils/test_scheduling_hints.py | 150 -- .../utils/test_task_admission.py | 176 +++ .../utils/test_task_scheduling.py | 121 ++ .../engine/models/clients/test_factory.py | 34 +- .../clients/test_model_request_executor.py | 155 +++ .../models/clients/test_request_admission.py | 209 +++ .../models/clients/test_throttle_manager.py | 579 -------- .../clients/test_throttled_model_client.py | 469 ------- .../tests/engine/test_capacity.py | 73 + plans/645/capacity-model.md | 4 +- plans/645/contracts.md | 4 +- plans/645/migration-and-cleanup.md | 15 +- plans/645/task-admission.md | 4 +- ...sync-scheduling-epic-benchmark-report.html | 791 +++++++++++ .../benchmarks/benchmark_async_scheduling.py | 441 ++++++ 97 files changed, 12039 insertions(+), 3054 deletions(-) create mode 100644 artifacts/645-live-bench-nano/agent-aimd-scale/README.md create mode 100644 artifacts/645-live-bench-nano/agent-aimd-scale/combined_summary.json create mode 100644 artifacts/645-live-bench-nano/agent-aimd/README.md create mode 100644 artifacts/645-live-bench-nano/agent-aimd/combined_summary.json create mode 100644 artifacts/645-live-bench-nano/agent-bottleneck/README.md create mode 100644 artifacts/645-live-bench-nano/agent-bottleneck/README_mixed.md create mode 100644 artifacts/645-live-bench-nano/agent-bottleneck/combined_mixed_summary.json create mode 100644 artifacts/645-live-bench-nano/agent-bottleneck/combined_summary.json create mode 100644 artifacts/645-live-bench-nano/agent-cap-scale/README.md create mode 100644 artifacts/645-live-bench-nano/agent-cap-scale/combined_summary.json create mode 100644 artifacts/645-live-bench-nano/agent-cap-sweep/README.md create mode 100644 artifacts/645-live-bench-nano/agent-cap-sweep/README_final1024.md create mode 100644 artifacts/645-live-bench-nano/agent-cap-sweep/combined_summary.json create mode 100644 artifacts/645-live-bench-nano/agent-cap-sweep/combined_summary_final1024.json create mode 100644 artifacts/645-live-bench-nano/agent-fan-scale/README.md create mode 100644 artifacts/645-live-bench-nano/agent-fan-scale/combined_summary.json create mode 100644 artifacts/645-live-bench-nano/agent-fan/README.md create mode 100644 artifacts/645-live-bench-nano/agent-fan/combined_summary.json create mode 100644 artifacts/645-live-bench-nano/agent-mixed-pipeline/README.md create mode 100644 artifacts/645-live-bench-nano/agent-mixed-pipeline/combined_summary.json create mode 100644 artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/README.md create mode 100644 artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/combined_summary.json create mode 100644 artifacts/645-live-bench/agent-fan/README.md create mode 100644 artifacts/645-live-bench/agent-fan/combined_summary.json create mode 100644 artifacts/645-live-bench/agent-maxparallel/maxparallel_live_benchmark.json create mode 100644 artifacts/645-live-bench/agent-maxparallel/maxparallel_live_benchmark.md rename docs/devnotes/posts/assets/owning-the-model-stack/{throttle-keying.png => request-keying.png} (100%) rename fern/assets/images/{throttle-keying.png => request-keying.png} (100%) rename fern/assets/owning-the-model-stack/{throttle-keying.png => request-keying.png} (100%) create mode 100644 packages/data-designer-config/src/data_designer/config/scheduling.py create mode 100644 packages/data-designer-config/tests/config/test_scheduling.py create mode 100644 packages/data-designer-engine/src/data_designer/engine/capacity.py delete mode 100644 packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/scheduling_hints.py create mode 100644 packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/task_admission.py create mode 100644 packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/task_scheduling.py create mode 100644 packages/data-designer-engine/src/data_designer/engine/models/clients/model_request_executor.py create mode 100644 packages/data-designer-engine/src/data_designer/engine/models/clients/request_admission.py delete mode 100644 packages/data-designer-engine/src/data_designer/engine/models/clients/throttle_manager.py delete mode 100644 packages/data-designer-engine/src/data_designer/engine/models/clients/throttled.py create mode 100644 packages/data-designer-engine/src/data_designer/engine/observability.py delete mode 100644 packages/data-designer-engine/tests/engine/dataset_builders/utils/test_scheduling_hints.py create mode 100644 packages/data-designer-engine/tests/engine/dataset_builders/utils/test_task_admission.py create mode 100644 packages/data-designer-engine/tests/engine/dataset_builders/utils/test_task_scheduling.py create mode 100644 packages/data-designer-engine/tests/engine/models/clients/test_model_request_executor.py create mode 100644 packages/data-designer-engine/tests/engine/models/clients/test_request_admission.py delete mode 100644 packages/data-designer-engine/tests/engine/models/clients/test_throttle_manager.py delete mode 100644 packages/data-designer-engine/tests/engine/models/clients/test_throttled_model_client.py create mode 100644 packages/data-designer-engine/tests/engine/test_capacity.py create mode 100644 reports/async-scheduling-epic-benchmark-report.html create mode 100644 scripts/benchmarks/benchmark_async_scheduling.py diff --git a/architecture/dataset-builders.md b/architecture/dataset-builders.md index 825a2a392..a1ffbfe2a 100644 --- a/architecture/dataset-builders.md +++ b/architecture/dataset-builders.md @@ -35,7 +35,7 @@ Preparation (`_prepare_async_run`): 4. Constructs `CompletionTracker`, `RowGroupBufferManager`, `AsyncTaskScheduler` 5. Hooks `ProcessorRunner` for pre-batch and post-batch stages -`AsyncTaskScheduler` runs on a dedicated async loop with frontier-driven dispatch, semaphore-based capacity limits, salvage rounds for failed tasks, and order-dependent locks for columns that must execute sequentially. Ready frontier tasks are admitted through a virtual-time fair queue so one hot column or model-backed generator cannot consume the whole submission window before peer work gets a turn. +`AsyncTaskScheduler` runs on a dedicated async loop with frontier-driven dispatch, task-admission leases, salvage rounds for failed tasks, and order-dependent locks for columns that must execute sequentially. Ready frontier tasks enter `FairTaskQueue`, are selected through virtual-time ordering, and are committed only after `TaskAdmissionController` acquires the required scheduler resources. ### Execution Graph @@ -121,7 +121,7 @@ DatasetBuilder.build() → _prepare_async_run() → ExecutionGraph.create() → CompletionTracker.with_graph() - → AsyncTaskScheduler(semaphores, salvage_rounds) + → AsyncTaskScheduler(task admission, fair queue, salvage_rounds) → scheduler.run() → for each row group, fairly admit ready tasks from frontier → tasks execute generators, update CompletionTracker @@ -133,7 +133,7 @@ DatasetBuilder.build() - **Dual execution engines behind one API.** The sequential engine is simpler and easier to debug; the async engine adds row-group parallelism for throughput. Users switch via an environment variable without changing their code. - **DAG-driven ordering** ensures columns with dependencies (e.g., a judge column that depends on a text column) are generated in the correct order, regardless of the order they appear in the config. -- **Fair async admission** keeps the scheduler flowing across ready columns and model groups. Global semaphores still bound memory/coroutine growth, while per-group virtual-time queues prevent a large ready frontier from degenerating into a column-by-column wave. LLM admission caps are peer-sensitive: a solo model group can fill available global capacity, but once another scheduling group has queued work the saturated group yields until peers get admission slots or admitted tasks complete. +- **Fair async admission** keeps the scheduler flowing across ready columns and model groups. `FairTaskQueue.select_next(...)` chooses eligible ready work, `TaskAdmissionController` leases scheduler resources before spawn, and `FairTaskQueue.commit(...)` removes the selected task only after admission succeeds. Per-group virtual-time ordering prevents a large ready frontier from degenerating into a column-by-column wave, and scheduler-resource accounting remains separate from provider/model request admission. - **Salvage rounds in async mode** retry failed tasks after all other tasks in a round complete, improving resilience against transient LLM failures without blocking the entire generation. - **Unified DAG construction.** `topologically_sort_column_configs` (in `execution_graph.py`) determines column ordering using Kahn's algorithm; the runtime `ExecutionGraph` adds strategy-aware dependency tracking for the async scheduler. diff --git a/architecture/models.md b/architecture/models.md index d7af0cdac..fc90bcb8a 100644 --- a/architecture/models.md +++ b/architecture/models.md @@ -1,6 +1,6 @@ # Models -The model subsystem provides a unified interface for LLM access: chat completions, embeddings, and image generation. It handles client creation, retry, rate-limit throttling, usage tracking, and MCP tool integration. +The model subsystem provides a unified interface for LLM access: chat completions, embeddings, and image generation. It handles client creation, retry, request admission, usage tracking, and MCP tool integration. Source: `packages/data-designer-engine/src/data_designer/engine/models/` @@ -11,12 +11,12 @@ The model subsystem is layered: ``` ModelRegistry (lazy facade-per-alias) └── ModelFacade (completion, embeddings, image gen, MCP tool loops) - └── ThrottledModelClient (AIMD rate limiting) + └── ModelRequestExecutor (request admission + provider execution) └── ModelClient (OpenAI-compatible or Anthropic adapter) └── RetryTransport (httpx-level retries) ``` -Generators never interact with HTTP clients directly. They request a `ModelFacade` by alias from the `ModelRegistry`, which handles lazy construction and shared throttle state. +Generators never interact with HTTP clients directly. They request a `ModelFacade` by alias from the `ModelRegistry`, which handles lazy construction, request-resource canonicalization, and shared adaptive request admission state. ## Key Components @@ -31,13 +31,13 @@ Defines the contract: sync/async chat, embeddings, image generation, `supports_* `create_model_client` routes by provider type to the appropriate adapter. Optionally wraps with: - **`RetryTransport`** — httpx-level retries via `httpx_retries.RetryTransport`. `HttpModelClient` sets `strip_rate_limit_codes=True` for the async client and `False` for the sync client (`http_model_client.py`), which controls whether 429 responses are eligible for transport-layer retries. -- **`ThrottledModelClient`** — AIMD (Additive Increase, Multiplicative Decrease) concurrency control per throttle domain. +- **`ModelRequestExecutor`** — maps model-call attempts to request-admission items, acquires request leases, invokes the provider client, and releases the exact lease on every terminal path. -### ThrottleManager +### Request Admission -Manages concurrency limits per `ThrottleDomain` (CHAT, EMBEDDING, IMAGE, HEALTHCHECK), keyed by `(provider_name, model_id)`. Thread-safe with a shared lock for sync/async access. +`RequestAdmissionController` manages provider/model/domain request resources. `AdaptiveRequestAdmissionController` adds AIMD (Additive Increase, Multiplicative Decrease) adaptation per `RequestDomain` (`chat`, `embedding`, `image`, `healthcheck`) under the provider/model static cap. -`ThrottledModelClient` wraps each API call in a context manager that acquires/releases throttle capacity and adjusts limits on success (additive increase) or rate-limit errors (multiplicative decrease). +`ModelRequestExecutor` wraps each provider call with a request-admission lease and feeds success or rate-limit outcomes back to the controller. `RequestResourceResolver` owns canonical provider/model/domain identity so aliases that target the same endpoint share request capacity. ### ModelFacade @@ -50,7 +50,7 @@ The primary interface for generators. Holds a `ModelConfig`, `ModelClient`, opti ### ModelRegistry -Lazy `ModelFacade` construction per alias. Registers a shared `ThrottleManager` across all facades for coordinated rate limiting. Provides `get_model_usage_stats` and `log_model_usage` for post-build reporting. +Lazy `ModelFacade` construction per alias. Registers shared request-admission state across all facades for coordinated provider/model/domain capacity. Provides `get_model_usage_stats` and `log_model_usage` for post-build reporting. ### Usage Tracking @@ -59,18 +59,18 @@ Lazy `ModelFacade` construction per alias. Registers a shared `ThrottleManager` ## Data Flow 1. Generator requests a model by alias from `ModelRegistry` -2. Registry lazily creates `ModelFacade` with the appropriate client and throttle config +2. Registry lazily creates `ModelFacade` with the appropriate client and request-admission executor 3. Generator calls `completion()` with prompt/messages -4. `ModelFacade` builds kwargs, calls `ThrottledModelClient` -5. Throttle layer acquires capacity, delegates to `ModelClient` +4. `ModelFacade` builds kwargs, calls `ModelRequestExecutor` +5. Request admission acquires a provider/model/domain lease, delegates to `ModelClient` 6. `ModelClient` makes the HTTP request through `RetryTransport` 7. Response flows back; usage is tracked; if MCP tools are configured, tool calls are executed and results fed back for another completion round ## Design Decisions -- **Facade pattern** hides HTTP, retry, throttle, and MCP complexity from generators. Generators see `completion()` and get back parsed results. -- **AIMD throttling at the application layer** rather than relying solely on HTTP retries. This provides smoother throughput under rate limits — the transport layer still handles many transient failures, while the throttle manager adjusts concurrency to avoid sustained 429 storms. -- **429 handling depends on sync vs async `HttpModelClient`** — The async client uses `strip_rate_limit_codes=True`, so 429s are not retried at the transport layer and rate-limit signals reach `ThrottledModelClient` / AIMD quickly. The sync client uses `strip_rate_limit_codes=False`, so 429s may still be retried transparently at the transport layer before surfacing to callers. +- **Facade pattern** hides HTTP, retry, request admission, and MCP complexity from generators. Generators see `completion()` and get back parsed results. +- **AIMD request admission at the application layer** rather than relying solely on HTTP retries. This provides smoother throughput under rate limits: the transport layer still handles many transient failures, while adaptive request admission adjusts concurrency to avoid sustained 429 storms. +- **429 handling depends on sync vs async `HttpModelClient`** — The async client uses `strip_rate_limit_codes=True`, so 429s are not retried at the transport layer and rate-limit signals reach `ModelRequestExecutor` / request admission quickly. The sync client uses `strip_rate_limit_codes=False`, so 429s may still be retried transparently at the transport layer before surfacing to callers. - **Distribution-valued inference parameters** (`temperature`, `top_p` as `UniformDistribution` or `ManualDistribution`) enable controlled randomness across a dataset without per-row config changes. - **Lazy facade construction** avoids health-checking or connecting to models that are configured but never used in a particular generation run. diff --git a/architecture/overview.md b/architecture/overview.md index 30c91bdfb..10bde6c90 100644 --- a/architecture/overview.md +++ b/architecture/overview.md @@ -30,7 +30,7 @@ Users declare what their data should look like through config objects (columns, | `DataDesigner` | `data-designer` | Public API — `create()`, `preview()`, `validate()` | | `DataDesignerConfigBuilder` | `data-designer-config` | Fluent builder for dataset configs | | `DatasetBuilder` | `data-designer-engine` | Orchestrates generation (sync or async) | -| `ModelFacade` / `ModelRegistry` | `data-designer-engine` | LLM client abstraction with retry, throttle, usage tracking | +| `ModelFacade` / `ModelRegistry` | `data-designer-engine` | LLM client abstraction with retry, request admission, usage tracking | | `MCPFacade` / `MCPRegistry` | `data-designer-engine` | Tool execution via Model Context Protocol | | `ColumnGeneratorRegistry` | `data-designer-engine` | Maps column types to generator implementations | | `PluginRegistry` | `data-designer-config` | Discovers and registers entry-point plugins | @@ -44,7 +44,7 @@ Users declare what their data should look like through config objects (columns, 3. **Generation** — `DatasetBuilder` instantiates column generators from the registry, then executes one of two paths: - **Sequential** (default): batch loop over columns in topological order. Each generator produces its column via `CELL_BY_CELL` (threaded fan-out) or `FULL_COLUMN` strategy. - - **Async** (`DATA_DESIGNER_ASYNC_ENGINE=1`): builds an `ExecutionGraph`, partitions rows into groups, and dispatches tasks via `AsyncTaskScheduler` with semaphore-based concurrency, salvage rounds, and per-row-group checkpointing. + - **Async** (`DATA_DESIGNER_ASYNC_ENGINE=1`): builds an `ExecutionGraph`, partitions rows into groups, and dispatches tasks via `AsyncTaskScheduler` with `FairTaskQueue` selection, `TaskAdmissionController` scheduler-resource leases, salvage rounds, and per-row-group checkpointing. 4. **Post-processing** — `ProcessorRunner` applies transformations (pre-batch, post-batch, after-generation). Profilers analyze the generated dataset. @@ -61,7 +61,7 @@ Users declare what their data should look like through config objects (columns, - [Config Layer](config.md) — builder API, column types, model configs, plugin system - [Engine Layer](engine.md) — compilation, generators, registries -- [Models](models.md) — model facade, adapters, retry/throttle +- [Models](models.md) — model facade, adapters, retry, request admission - [Dataset Builders](dataset-builders.md) — sync/async orchestration, DAG, batching - [MCP](mcp.md) — tool execution, session pooling - [Sampling](sampling.md) — statistical generators, person/entity data diff --git a/artifacts/645-live-bench-nano/agent-aimd-scale/README.md b/artifacts/645-live-bench-nano/agent-aimd-scale/README.md new file mode 100644 index 000000000..39c5c1826 --- /dev/null +++ b/artifacts/645-live-bench-nano/agent-aimd-scale/README.md @@ -0,0 +1,48 @@ +# 645 live bench nano AIMD scale lane + +Ran in `/Users/etramel/src/DataDesigner` on branch `scheduling-yolo` with only `/tmp/dd_live_aimd_bench.py` and artifacts under this directory. No tracked repo files were edited. + +## Configuration + +- Model: `openai/openai/gpt-5-nano` +- Provider: `nvidia-internal` +- Temperature: omitted +- `skip_health_check=True` +- `DATA_DESIGNER_ASYNC_ENGINE=1` +- `DATA_DESIGNER_ASYNC_TRACE=1` +- `max_parallel_requests=16` +- AIMD initial limit: 1 +- AIMD `increase_after_successes=16` +- Shape for final scenarios: 512 rows x 2 independent `LLMTextColumnConfig` columns = 1024 model generations +- Event instrumentation: `InMemoryAdmissionEventSink`, patched request admission init, model-client factory `request_event_sink`, and scheduler init `scheduler_event_sink` + +## Scenarios + +| Scenario | Buffer | Requests | Success | Failures | Wall s | Time to cap s | Max in-flight | Max waiters | Request wait p50 / p95 / max s | +|---|---:|---:|---:|---:|---:|---:|---:|---:|---:| +| diagnostic-4x2-buffer32 | 32 | 8 | 8 | 0 | 5.586 | n/a | 2 | 7 | 2.638 / 3.871 / 3.887 | +| final-512x2-buffer32 | 32 | 1024 | 1024 | 0 | 104.823 | 50.332 | 16 | 63 | 3.180 / 19.371 / 29.990 | +| final-512x2-buffer512 | 512 | 1024 | 1024 | 0 | 114.522 | 57.062 | 16 | 63 | 3.283 / 22.949 / 35.324 | + +## Observations + +- Both final scenarios completed exactly 1024 `model_request_started` and 1024 `model_request_completed` events, with 0 failed model requests and no fallback model. +- AIMD limit increased monotonically from 1 through 16 in both final scenarios. There were 15 `request_limit_increased` events, 0 decreases, and 0 rate-limit events in each final scenario. +- Cap enforcement held: observed request in-flight max was 16 in both final scenarios, matching `max_parallel_requests=16`. +- `buffer_size=32` reached cap faster (50.332s) and completed faster (104.823s) than `buffer_size=512` (57.062s to cap, 114.522s wall). +- Request wait p95 was lower for `buffer_size=32` (19.371s) than `buffer_size=512` (22.949s). +- Traffic became steady after the initial AIMD ramp in both final scenarios; see each `flow_buckets.json` for per-second starts/completions and `monitor_samples.jsonl` for sampled pressure snapshots. + +## Artifacts + +Each scenario directory contains: + +- `timeline.jsonl` +- `request_events.jsonl` +- `monitor_samples.jsonl` +- `task_traces.csv` +- `task_traces.json` +- `flow_buckets.json` +- `summary.json` + +Combined summary: `combined_summary.json`. diff --git a/artifacts/645-live-bench-nano/agent-aimd-scale/combined_summary.json b/artifacts/645-live-bench-nano/agent-aimd-scale/combined_summary.json new file mode 100644 index 000000000..ff9154390 --- /dev/null +++ b/artifacts/645-live-bench-nano/agent-aimd-scale/combined_summary.json @@ -0,0 +1,1224 @@ +{ + "artifact_schema_version": "645-live-bench-nano-combined-v1", + "comparison": { + "both_cap_enforced": true, + "both_zero_failures": true, + "buffer32_max_waiters": 63, + "buffer32_time_to_cap_seconds": 50.33227308301139, + "buffer32_wait_p95_seconds": 19.37087424368073, + "buffer32_wall_time_seconds": 104.82342862500809, + "buffer512_max_waiters": 63, + "buffer512_minus_buffer32_seconds": 9.698241957987193, + "buffer512_minus_buffer32_time_to_cap_seconds": 6.729556832986418, + "buffer512_time_to_cap_seconds": 57.061829915997805, + "buffer512_wait_p95_seconds": 22.94936933576682, + "buffer512_wall_time_seconds": 114.52167058299528, + "same_shape": true + }, + "env": { + "DATA_DESIGNER_ASYNC_ENGINE": "1", + "DATA_DESIGNER_ASYNC_TRACE": "1" + }, + "fallback": null, + "harness": "/tmp/dd_live_aimd_bench.py", + "root": "artifacts/645-live-bench-nano/agent-aimd-scale", + "scenarios": { + "diagnostic-4x2-buffer32": { + "artifacts": { + "flow_buckets": "artifacts/645-live-bench-nano/agent-aimd-scale/diagnostic-4x2-buffer32/flow_buckets.json", + "monitor_samples": "artifacts/645-live-bench-nano/agent-aimd-scale/diagnostic-4x2-buffer32/monitor_samples.jsonl", + "request_events": "artifacts/645-live-bench-nano/agent-aimd-scale/diagnostic-4x2-buffer32/request_events.jsonl", + "summary": "artifacts/645-live-bench-nano/agent-aimd-scale/diagnostic-4x2-buffer32/summary.json", + "task_traces_csv": "artifacts/645-live-bench-nano/agent-aimd-scale/diagnostic-4x2-buffer32/task_traces.csv", + "task_traces_json": "artifacts/645-live-bench-nano/agent-aimd-scale/diagnostic-4x2-buffer32/task_traces.json", + "timeline": "artifacts/645-live-bench-nano/agent-aimd-scale/diagnostic-4x2-buffer32/timeline.jsonl" + }, + "buffer_size": 32, + "increase_after_successes": 4, + "initial_limit": 1, + "llm_columns": 2, + "max_parallel_requests": 16, + "model_generations_expected": 8, + "model_request_completed_events": 8, + "model_request_started_events": 8, + "request_summary": { + "cap_enforced": true, + "event_counts": { + "model_request_completed": 8, + "model_request_started": 8, + "request_effective_cap_changed": 1, + "request_lease_acquired": 8, + "request_lease_released": 8, + "request_limit_increased": 2, + "request_queue_drained": 2, + "request_queue_formed": 2, + "request_resource_registered": 1, + "request_wait_completed": 8, + "request_wait_started": 8 + }, + "final_pressure": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 173980.1628715, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 3, + "effective_max": 16, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 65, + "waiters": 0 + }, + "limit_path": [ + { + "current_limit": 1, + "diagnostics": { + "alias": "aimd-nano", + "max_parallel_requests": 16, + "provider_model": { + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + } + }, + "effective_max": 16, + "elapsed_seconds": 0.010773582995170727, + "event_kind": "request_resource_registered" + }, + { + "current_limit": 1, + "diagnostics": { + "current": 16, + "previous": 0, + "provider_model": { + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + } + }, + "effective_max": 16, + "elapsed_seconds": 0.010781874996609986, + "event_kind": "request_effective_cap_changed" + }, + { + "current_limit": 2, + "diagnostics": { + "current": 2, + "previous": 1 + }, + "effective_max": 16, + "elapsed_seconds": 3.0564847079804167, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 3, + "diagnostics": { + "current": 3, + "previous": 2 + }, + "effective_max": 16, + "elapsed_seconds": 5.035948874981841, + "event_kind": "request_limit_increased" + } + ], + "limit_values_seen": [ + 1, + 2, + 3 + ], + "max_in_flight": 2, + "max_waiters": 7, + "request_wait_seconds": { + "count": 8, + "max": 3.8871747499797493, + "p50": 2.6384192499972414, + "p95": 3.8706564271909882 + }, + "time_to_reach_cap_seconds": null + }, + "rows": 4, + "scheduler_event_counts": { + "dependency_ready": 9, + "queue_drained": 1, + "ready_enqueued": 9, + "selected": 9, + "task_completed": 9, + "task_lease_acquired": 9, + "task_lease_released": 9, + "worker_spawned": 9 + }, + "success": true, + "summary_path": "artifacts/645-live-bench-nano/agent-aimd-scale/diagnostic-4x2-buffer32/summary.json", + "task_trace_count": 9, + "task_trace_status_counts": { + "ok": 9 + }, + "traffic_regularity": { + "bucket_seconds": 1.0, + "first_15_buckets": [ + { + "bucket_end_seconds": 1.0, + "bucket_start_seconds": 0.0, + "request_completions": 2, + "request_starts": 4, + "task_completions": 2, + "task_starts": 9 + }, + { + "bucket_end_seconds": 2.0, + "bucket_start_seconds": 1.0, + "request_completions": 2, + "request_starts": 2, + "task_completions": 1 + }, + { + "bucket_end_seconds": 3.0, + "bucket_start_seconds": 2.0, + "request_completions": 2, + "request_starts": 2, + "task_completions": 1 + }, + { + "bucket_end_seconds": 4.0, + "bucket_start_seconds": 3.0, + "request_completions": 6, + "request_starts": 8, + "task_completions": 3 + }, + { + "bucket_end_seconds": 5.0, + "bucket_start_seconds": 4.0, + "request_completions": 2, + "task_completions": 1 + }, + { + "bucket_end_seconds": 6.0, + "bucket_start_seconds": 5.0, + "request_completions": 2, + "task_completions": 1 + } + ], + "last_10_buckets": [ + { + "bucket_end_seconds": 1.0, + "bucket_start_seconds": 0.0, + "request_completions": 2, + "request_starts": 4, + "task_completions": 2, + "task_starts": 9 + }, + { + "bucket_end_seconds": 2.0, + "bucket_start_seconds": 1.0, + "request_completions": 2, + "request_starts": 2, + "task_completions": 1 + }, + { + "bucket_end_seconds": 3.0, + "bucket_start_seconds": 2.0, + "request_completions": 2, + "request_starts": 2, + "task_completions": 1 + }, + { + "bucket_end_seconds": 4.0, + "bucket_start_seconds": 3.0, + "request_completions": 6, + "request_starts": 8, + "task_completions": 3 + }, + { + "bucket_end_seconds": 5.0, + "bucket_start_seconds": 4.0, + "request_completions": 2, + "task_completions": 1 + }, + { + "bucket_end_seconds": 6.0, + "bucket_start_seconds": 5.0, + "request_completions": 2, + "task_completions": 1 + } + ], + "nonempty_buckets": 6, + "request_completions_per_nonempty_bucket_mean": 2.6666666666666665, + "request_completions_per_nonempty_bucket_stdev": 1.4907119849998598, + "request_starts_per_nonempty_bucket_mean": 2.6666666666666665, + "request_starts_per_nonempty_bucket_stdev": 2.748737083745107 + }, + "wall_time_seconds": 5.585904499981552 + }, + "final-512x2-buffer32": { + "artifacts": { + "flow_buckets": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer32/flow_buckets.json", + "monitor_samples": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer32/monitor_samples.jsonl", + "request_events": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer32/request_events.jsonl", + "summary": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer32/summary.json", + "task_traces_csv": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer32/task_traces.csv", + "task_traces_json": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer32/task_traces.json", + "timeline": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer32/timeline.jsonl" + }, + "buffer_size": 32, + "increase_after_successes": 16, + "initial_limit": 1, + "llm_columns": 2, + "max_parallel_requests": 16, + "model_generations_expected": 1024, + "model_request_completed_events": 1024, + "model_request_started_events": 1024, + "request_summary": { + "cap_enforced": true, + "event_counts": { + "model_request_completed": 1024, + "model_request_started": 1024, + "request_effective_cap_changed": 1, + "request_fully_recovered": 1, + "request_lease_acquired": 1024, + "request_lease_released": 1024, + "request_limit_increased": 15, + "request_queue_drained": 2, + "request_queue_formed": 2, + "request_resource_registered": 1, + "request_wait_completed": 1024, + "request_wait_started": 1024 + }, + "final_pressure": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 174091.2588695, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 16, + "effective_max": 16, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 7191, + "waiters": 0 + }, + "limit_path": [ + { + "current_limit": 1, + "diagnostics": { + "alias": "aimd-nano", + "max_parallel_requests": 16, + "provider_model": { + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + } + }, + "effective_max": 16, + "elapsed_seconds": 0.0526990000216756, + "event_kind": "request_resource_registered" + }, + { + "current_limit": 1, + "diagnostics": { + "current": 16, + "previous": 0, + "provider_model": { + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + } + }, + "effective_max": 16, + "elapsed_seconds": 0.05270808300701901, + "event_kind": "request_effective_cap_changed" + }, + { + "current_limit": 2, + "diagnostics": { + "current": 2, + "previous": 1 + }, + "effective_max": 16, + "elapsed_seconds": 15.712296790996334, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 3, + "diagnostics": { + "current": 3, + "previous": 2 + }, + "effective_max": 16, + "elapsed_seconds": 23.050738916004775, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 4, + "diagnostics": { + "current": 4, + "previous": 3 + }, + "effective_max": 16, + "elapsed_seconds": 27.39916841601371, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 5, + "diagnostics": { + "current": 5, + "previous": 4 + }, + "effective_max": 16, + "elapsed_seconds": 31.248203166003805, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 6, + "diagnostics": { + "current": 6, + "previous": 5 + }, + "effective_max": 16, + "elapsed_seconds": 34.453307500021765, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 7, + "diagnostics": { + "current": 7, + "previous": 6 + }, + "effective_max": 16, + "elapsed_seconds": 37.04487558300025, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 8, + "diagnostics": { + "current": 8, + "previous": 7 + }, + "effective_max": 16, + "elapsed_seconds": 39.11540133302333, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 9, + "diagnostics": { + "current": 9, + "previous": 8 + }, + "effective_max": 16, + "elapsed_seconds": 40.83609758300008, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 10, + "diagnostics": { + "current": 10, + "previous": 9 + }, + "effective_max": 16, + "elapsed_seconds": 42.55307258301764, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 11, + "diagnostics": { + "current": 11, + "previous": 10 + }, + "effective_max": 16, + "elapsed_seconds": 43.91511349999928, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 12, + "diagnostics": { + "current": 12, + "previous": 11 + }, + "effective_max": 16, + "elapsed_seconds": 45.856080625002505, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 13, + "diagnostics": { + "current": 13, + "previous": 12 + }, + "effective_max": 16, + "elapsed_seconds": 47.06025733301067, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 14, + "diagnostics": { + "current": 14, + "previous": 13 + }, + "effective_max": 16, + "elapsed_seconds": 48.28704245801782, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 15, + "diagnostics": { + "current": 15, + "previous": 14 + }, + "effective_max": 16, + "elapsed_seconds": 49.465360916015925, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 16, + "diagnostics": { + "current": 16, + "previous": 15 + }, + "effective_max": 16, + "elapsed_seconds": 50.33227308301139, + "event_kind": "request_limit_increased" + } + ], + "limit_values_seen": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16 + ], + "max_in_flight": 16, + "max_waiters": 63, + "request_wait_seconds": { + "count": 1024, + "max": 29.989937375008594, + "p50": 3.1799129999999423, + "p95": 19.37087424368073 + }, + "time_to_reach_cap_seconds": 50.33227308301139 + }, + "rows": 512, + "scheduler_event_counts": { + "dependency_ready": 1040, + "group_capped": 940, + "queue_drained": 2, + "ready_enqueued": 1040, + "selected": 1040, + "task_completed": 1040, + "task_lease_acquired": 1040, + "task_lease_released": 1040, + "worker_spawned": 1040 + }, + "success": true, + "summary_path": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer32/summary.json", + "task_trace_count": 1040, + "task_trace_status_counts": { + "ok": 1040 + }, + "traffic_regularity": { + "bucket_seconds": 1.0, + "first_15_buckets": [ + { + "bucket_end_seconds": 1.0, + "bucket_start_seconds": 0.0, + "request_starts": 2, + "task_completions": 3, + "task_starts": 67 + }, + { + "bucket_end_seconds": 2.0, + "bucket_start_seconds": 1.0, + "request_completions": 2, + "request_starts": 2, + "task_completions": 1, + "task_starts": 1 + }, + { + "bucket_end_seconds": 3.0, + "bucket_start_seconds": 2.0, + "request_completions": 2, + "request_starts": 2, + "task_completions": 1, + "task_starts": 1 + }, + { + "bucket_end_seconds": 4.0, + "bucket_start_seconds": 3.0, + "request_completions": 2, + "request_starts": 2, + "task_completions": 1, + "task_starts": 1 + }, + { + "bucket_end_seconds": 5.0, + "bucket_start_seconds": 4.0, + "request_completions": 2, + "request_starts": 2, + "task_completions": 1, + "task_starts": 1 + }, + { + "bucket_end_seconds": 7.0, + "bucket_start_seconds": 6.0, + "request_completions": 2, + "request_starts": 2, + "task_completions": 1, + "task_starts": 1 + }, + { + "bucket_end_seconds": 8.0, + "bucket_start_seconds": 7.0, + "request_completions": 4, + "request_starts": 4, + "task_completions": 2, + "task_starts": 2 + }, + { + "bucket_end_seconds": 9.0, + "bucket_start_seconds": 8.0, + "request_completions": 4, + "request_starts": 4, + "task_completions": 2, + "task_starts": 2 + }, + { + "bucket_end_seconds": 10.0, + "bucket_start_seconds": 9.0, + "request_completions": 2, + "request_starts": 2, + "task_completions": 1, + "task_starts": 1 + }, + { + "bucket_end_seconds": 12.0, + "bucket_start_seconds": 11.0, + "request_completions": 2, + "request_starts": 2, + "task_completions": 1, + "task_starts": 1 + }, + { + "bucket_end_seconds": 13.0, + "bucket_start_seconds": 12.0, + "request_completions": 4, + "request_starts": 4, + "task_completions": 2, + "task_starts": 2 + }, + { + "bucket_end_seconds": 14.0, + "bucket_start_seconds": 13.0, + "request_completions": 2, + "request_starts": 2, + "task_completions": 1, + "task_starts": 1 + }, + { + "bucket_end_seconds": 15.0, + "bucket_start_seconds": 14.0, + "request_completions": 2, + "request_starts": 2, + "task_completions": 1, + "task_starts": 1 + }, + { + "bucket_end_seconds": 16.0, + "bucket_start_seconds": 15.0, + "request_completions": 2, + "request_starts": 4, + "task_completions": 1, + "task_starts": 1 + }, + { + "bucket_end_seconds": 17.0, + "bucket_start_seconds": 16.0, + "request_completions": 2, + "request_starts": 2, + "task_completions": 1, + "task_starts": 1 + } + ], + "last_10_buckets": [ + { + "bucket_end_seconds": 93.0, + "bucket_start_seconds": 92.0, + "request_completions": 16, + "request_starts": 16, + "task_completions": 8, + "task_starts": 8 + }, + { + "bucket_end_seconds": 94.0, + "bucket_start_seconds": 93.0, + "request_completions": 34, + "request_starts": 34, + "task_completions": 17 + }, + { + "bucket_end_seconds": 95.0, + "bucket_start_seconds": 94.0, + "request_completions": 34, + "request_starts": 34, + "task_completions": 18, + "task_starts": 35 + }, + { + "bucket_end_seconds": 96.0, + "bucket_start_seconds": 95.0, + "request_completions": 32, + "request_starts": 32, + "task_completions": 16, + "task_starts": 16 + }, + { + "bucket_end_seconds": 97.0, + "bucket_start_seconds": 96.0, + "request_completions": 34, + "request_starts": 34, + "task_completions": 17, + "task_starts": 14 + }, + { + "bucket_end_seconds": 98.0, + "bucket_start_seconds": 97.0, + "request_completions": 32, + "request_starts": 32, + "task_completions": 16 + }, + { + "bucket_end_seconds": 99.0, + "bucket_start_seconds": 98.0, + "request_completions": 34, + "request_starts": 34, + "task_completions": 17 + }, + { + "bucket_end_seconds": 100.0, + "bucket_start_seconds": 99.0, + "request_completions": 28, + "request_starts": 24, + "task_completions": 14 + }, + { + "bucket_end_seconds": 101.0, + "bucket_start_seconds": 100.0, + "request_completions": 24, + "task_completions": 12 + }, + { + "bucket_end_seconds": 105.0, + "bucket_start_seconds": 104.0, + "request_completions": 4, + "task_completions": 2 + } + ], + "nonempty_buckets": 100, + "request_completions_per_nonempty_bucket_mean": 20.48, + "request_completions_per_nonempty_bucket_stdev": 12.62891919366024, + "request_starts_per_nonempty_bucket_mean": 20.48, + "request_starts_per_nonempty_bucket_stdev": 12.771436880789881 + }, + "wall_time_seconds": 104.82342862500809 + }, + "final-512x2-buffer512": { + "artifacts": { + "flow_buckets": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer512/flow_buckets.json", + "monitor_samples": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer512/monitor_samples.jsonl", + "request_events": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer512/request_events.jsonl", + "summary": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer512/summary.json", + "task_traces_csv": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer512/task_traces.csv", + "task_traces_json": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer512/task_traces.json", + "timeline": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer512/timeline.jsonl" + }, + "buffer_size": 512, + "increase_after_successes": 16, + "initial_limit": 1, + "llm_columns": 2, + "max_parallel_requests": 16, + "model_generations_expected": 1024, + "model_request_completed_events": 1024, + "model_request_started_events": 1024, + "request_summary": { + "cap_enforced": true, + "event_counts": { + "model_request_completed": 1024, + "model_request_started": 1024, + "request_effective_cap_changed": 1, + "request_fully_recovered": 1, + "request_lease_acquired": 1024, + "request_lease_released": 1024, + "request_limit_increased": 15, + "request_queue_drained": 2, + "request_queue_formed": 2, + "request_resource_registered": 1, + "request_wait_completed": 1024, + "request_wait_started": 1024 + }, + "final_pressure": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 174211.70947675, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 16, + "effective_max": 16, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 7191, + "waiters": 0 + }, + "limit_path": [ + { + "current_limit": 1, + "diagnostics": { + "alias": "aimd-nano", + "max_parallel_requests": 16, + "provider_model": { + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + } + }, + "effective_max": 16, + "elapsed_seconds": 1.21228933299426, + "event_kind": "request_resource_registered" + }, + { + "current_limit": 1, + "diagnostics": { + "current": 16, + "previous": 0, + "provider_model": { + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + } + }, + "effective_max": 16, + "elapsed_seconds": 1.21229975001188, + "event_kind": "request_effective_cap_changed" + }, + { + "current_limit": 2, + "diagnostics": { + "current": 2, + "previous": 1 + }, + "effective_max": 16, + "elapsed_seconds": 21.04242341601639, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 3, + "diagnostics": { + "current": 3, + "previous": 2 + }, + "effective_max": 16, + "elapsed_seconds": 29.358662083017407, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 4, + "diagnostics": { + "current": 4, + "previous": 3 + }, + "effective_max": 16, + "elapsed_seconds": 34.2536578750005, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 5, + "diagnostics": { + "current": 5, + "previous": 4 + }, + "effective_max": 16, + "elapsed_seconds": 37.14513820799766, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 6, + "diagnostics": { + "current": 6, + "previous": 5 + }, + "effective_max": 16, + "elapsed_seconds": 39.98303475001012, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 7, + "diagnostics": { + "current": 7, + "previous": 6 + }, + "effective_max": 16, + "elapsed_seconds": 44.051574707991676, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 8, + "diagnostics": { + "current": 8, + "previous": 7 + }, + "effective_max": 16, + "elapsed_seconds": 46.41951241600327, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 9, + "diagnostics": { + "current": 9, + "previous": 8 + }, + "effective_max": 16, + "elapsed_seconds": 48.140478916000575, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 10, + "diagnostics": { + "current": 10, + "previous": 9 + }, + "effective_max": 16, + "elapsed_seconds": 49.83326658300939, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 11, + "diagnostics": { + "current": 11, + "previous": 10 + }, + "effective_max": 16, + "elapsed_seconds": 51.01946379101719, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 12, + "diagnostics": { + "current": 12, + "previous": 11 + }, + "effective_max": 16, + "elapsed_seconds": 52.255215915996814, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 13, + "diagnostics": { + "current": 13, + "previous": 12 + }, + "effective_max": 16, + "elapsed_seconds": 53.402203250007005, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 14, + "diagnostics": { + "current": 14, + "previous": 13 + }, + "effective_max": 16, + "elapsed_seconds": 54.766846125014126, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 15, + "diagnostics": { + "current": 15, + "previous": 14 + }, + "effective_max": 16, + "elapsed_seconds": 55.84289866601466, + "event_kind": "request_limit_increased" + }, + { + "current_limit": 16, + "diagnostics": { + "current": 16, + "previous": 15 + }, + "effective_max": 16, + "elapsed_seconds": 57.061829915997805, + "event_kind": "request_limit_increased" + } + ], + "limit_values_seen": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16 + ], + "max_in_flight": 16, + "max_waiters": 63, + "request_wait_seconds": { + "count": 1024, + "max": 35.32375045801746, + "p50": 3.2831020835001254, + "p95": 22.94936933576682 + }, + "time_to_reach_cap_seconds": 57.061829915997805 + }, + "rows": 512, + "scheduler_event_counts": { + "dependency_ready": 1025, + "group_capped": 937, + "queue_drained": 1, + "ready_enqueued": 1025, + "selected": 1025, + "task_completed": 1025, + "task_lease_acquired": 1025, + "task_lease_released": 1025, + "worker_spawned": 1025 + }, + "success": true, + "summary_path": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer512/summary.json", + "task_trace_count": 1025, + "task_trace_status_counts": { + "ok": 1025 + }, + "traffic_regularity": { + "bucket_seconds": 1.0, + "first_15_buckets": [ + { + "bucket_end_seconds": 2.0, + "bucket_start_seconds": 1.0, + "request_starts": 2, + "task_completions": 1, + "task_starts": 65 + }, + { + "bucket_end_seconds": 3.0, + "bucket_start_seconds": 2.0, + "request_completions": 4, + "request_starts": 4, + "task_completions": 2, + "task_starts": 2 + }, + { + "bucket_end_seconds": 4.0, + "bucket_start_seconds": 3.0, + "request_completions": 2, + "request_starts": 2, + "task_completions": 1, + "task_starts": 1 + }, + { + "bucket_end_seconds": 5.0, + "bucket_start_seconds": 4.0, + "request_completions": 2, + "request_starts": 2, + "task_completions": 1, + "task_starts": 1 + }, + { + "bucket_end_seconds": 12.0, + "bucket_start_seconds": 11.0, + "request_completions": 4, + "request_starts": 4, + "task_completions": 2, + "task_starts": 2 + }, + { + "bucket_end_seconds": 13.0, + "bucket_start_seconds": 12.0, + "request_completions": 2, + "request_starts": 2, + "task_completions": 1, + "task_starts": 1 + }, + { + "bucket_end_seconds": 14.0, + "bucket_start_seconds": 13.0, + "request_completions": 4, + "request_starts": 4, + "task_completions": 2, + "task_starts": 2 + }, + { + "bucket_end_seconds": 15.0, + "bucket_start_seconds": 14.0, + "request_completions": 2, + "request_starts": 2, + "task_completions": 1, + "task_starts": 1 + }, + { + "bucket_end_seconds": 16.0, + "bucket_start_seconds": 15.0, + "request_completions": 2, + "request_starts": 2, + "task_completions": 1, + "task_starts": 1 + }, + { + "bucket_end_seconds": 18.0, + "bucket_start_seconds": 17.0, + "request_completions": 2, + "request_starts": 2, + "task_completions": 1, + "task_starts": 1 + }, + { + "bucket_end_seconds": 19.0, + "bucket_start_seconds": 18.0, + "request_completions": 2, + "request_starts": 2, + "task_completions": 1, + "task_starts": 1 + }, + { + "bucket_end_seconds": 20.0, + "bucket_start_seconds": 19.0, + "request_completions": 2, + "request_starts": 2, + "task_completions": 1, + "task_starts": 1 + }, + { + "bucket_end_seconds": 21.0, + "bucket_start_seconds": 20.0, + "request_completions": 2, + "request_starts": 2, + "task_completions": 1, + "task_starts": 1 + }, + { + "bucket_end_seconds": 22.0, + "bucket_start_seconds": 21.0, + "request_completions": 4, + "request_starts": 6, + "task_completions": 2, + "task_starts": 2 + }, + { + "bucket_end_seconds": 23.0, + "bucket_start_seconds": 22.0, + "request_completions": 2, + "request_starts": 2, + "task_completions": 1, + "task_starts": 1 + } + ], + "last_10_buckets": [ + { + "bucket_end_seconds": 103.0, + "bucket_start_seconds": 102.0, + "request_completions": 28, + "request_starts": 29, + "task_completions": 14, + "task_starts": 3 + }, + { + "bucket_end_seconds": 104.0, + "bucket_start_seconds": 103.0, + "request_completions": 26, + "request_starts": 26, + "task_completions": 13 + }, + { + "bucket_end_seconds": 105.0, + "bucket_start_seconds": 104.0, + "request_completions": 28, + "request_starts": 27, + "task_completions": 14 + }, + { + "bucket_end_seconds": 106.0, + "bucket_start_seconds": 105.0, + "request_completions": 30, + "request_starts": 29, + "task_completions": 15 + }, + { + "bucket_end_seconds": 107.0, + "bucket_start_seconds": 106.0, + "request_completions": 22, + "request_starts": 12, + "task_completions": 11 + }, + { + "bucket_end_seconds": 108.0, + "bucket_start_seconds": 107.0, + "request_completions": 10, + "task_completions": 5 + }, + { + "bucket_end_seconds": 109.0, + "bucket_start_seconds": 108.0, + "request_completions": 4, + "task_completions": 2 + }, + { + "bucket_end_seconds": 110.0, + "bucket_start_seconds": 109.0, + "request_completions": 2, + "task_completions": 1 + }, + { + "bucket_end_seconds": 113.0, + "bucket_start_seconds": 112.0, + "request_completions": 2, + "task_completions": 1 + }, + { + "bucket_end_seconds": 114.0, + "bucket_start_seconds": 113.0, + "request_completions": 2, + "task_completions": 1 + } + ], + "nonempty_buckets": 104, + "request_completions_per_nonempty_bucket_mean": 19.692307692307693, + "request_completions_per_nonempty_bucket_stdev": 13.064247250148695, + "request_starts_per_nonempty_bucket_mean": 19.692307692307693, + "request_starts_per_nonempty_bucket_stdev": 13.266554914141834 + }, + "wall_time_seconds": 114.52167058299528 + } + }, + "skip_health_check": true, + "temperature": "omitted" +} diff --git a/artifacts/645-live-bench-nano/agent-aimd/README.md b/artifacts/645-live-bench-nano/agent-aimd/README.md new file mode 100644 index 000000000..8db50cc8e --- /dev/null +++ b/artifacts/645-live-bench-nano/agent-aimd/README.md @@ -0,0 +1,28 @@ +# Live AIMD benchmark: gpt-5-nano + +Runtime patches were applied only inside `/tmp/live_aimd_bench.py`; no tracked repository files were edited. + +Common settings: +- provider: `nvidia-internal` +- model: `openai/openai/gpt-5-nano` +- `skip_health_check=True` +- temperature omitted from `ChatCompletionInferenceParams` +- `DATA_DESIGNER_ASYNC_ENGINE=1` and `DATA_DESIGNER_ASYNC_TRACE=1` +- shared `InMemoryAdmissionEventSink` passed to request admission, model request executor, and async scheduler + +| Scenario | Rows | LLM cols | Expected requests | Wall time (s) | Success/failure | Limit ramp | Max in-flight | Max waiters | Cap enforced | Rate limits | +|---|---:|---:|---:|---:|---|---|---:|---:|---|---:| +| `aimd_rows48_cols3_cap6_initial2` | 48 | 3 | 144 | 39.863 | 144/0 | [2, 3, 4, 5, 6] | 6 | 34 | True | 0 | +| `aimd_rows64_cols2_cap8_initial1` | 64 | 2 | 128 | 38.998 | 128/0 | [1, 2, 3, 4, 5, 6, 7, 8] | 8 | 31 | True | 0 | + +Artifacts per scenario: +- `timeline.jsonl`: merged scheduler and request timeline, sorted by monotonic capture time and event sequence +- `request_events.jsonl`: request-admission and model-request events using `event_kind` and `pressure_snapshot` +- `monitor_samples.jsonl`: periodic pressure snapshots while the preview ran +- `task_traces.json` and `task_traces.csv`: async scheduler task traces from `DATA_DESIGNER_ASYNC_TRACE=1` +- `summary.json`: scenario-level rollup including limit changes, final pressure, event counts, and cap validation + +Notes: +- Both scenarios completed without provider failures or rate limits. +- Observed request in-flight counts never exceeded `max_parallel_requests`. +- Console model-usage logs reported 128 successful requests / 4608 total tokens for the 64x2 run and 144 successful requests / 5184 total tokens for the 48x3 run. diff --git a/artifacts/645-live-bench-nano/agent-aimd/combined_summary.json b/artifacts/645-live-bench-nano/agent-aimd/combined_summary.json new file mode 100644 index 000000000..00ae89034 --- /dev/null +++ b/artifacts/645-live-bench-nano/agent-aimd/combined_summary.json @@ -0,0 +1,906 @@ +{ + "benchmark_lane": "agent-aimd", + "env": { + "DATA_DESIGNER_ASYNC_ENGINE": "1", + "DATA_DESIGNER_ASYNC_TRACE": "1" + }, + "model_name": "openai/openai/gpt-5-nano", + "provider": "nvidia-internal", + "scenario_count": 2, + "scenarios": [ + { + "artifacts": { + "monitor_samples_jsonl": "artifacts/645-live-bench-nano/agent-aimd/aimd_rows48_cols3_cap6_initial2/monitor_samples.jsonl", + "request_events_jsonl": "artifacts/645-live-bench-nano/agent-aimd/aimd_rows48_cols3_cap6_initial2/request_events.jsonl", + "summary_json": "artifacts/645-live-bench-nano/agent-aimd/aimd_rows48_cols3_cap6_initial2/summary.json", + "task_traces_csv": "artifacts/645-live-bench-nano/agent-aimd/aimd_rows48_cols3_cap6_initial2/task_traces.csv", + "task_traces_json": "artifacts/645-live-bench-nano/agent-aimd/aimd_rows48_cols3_cap6_initial2/task_traces.json", + "timeline_jsonl": "artifacts/645-live-bench-nano/agent-aimd/aimd_rows48_cols3_cap6_initial2/timeline.jsonl" + }, + "cap_enforced": true, + "columns": 3, + "env": { + "DATA_DESIGNER_ASYNC_ENGINE": "1", + "DATA_DESIGNER_ASYNC_TRACE": "1" + }, + "error": null, + "expected_requests": 144, + "final_pressure": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 173652.671785458, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 6, + "effective_max": 6, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 1022, + "waiters": 0 + }, + "increase_after_successes": 8, + "initial_limit": 2, + "limit_events": [ + { + "captured_at_monotonic": 173619.239310541, + "captured_correlation": { + "row_group": 0, + "run_id": "run-ad4db4c019124c3ab44ac891b014b5e0", + "scheduling_group_identity_hash": "0380441d1e130774", + "scheduling_group_kind": "model", + "task_column": "nano_col_2", + "task_execution_id": "task-exec-d7cf3f1fce10470a83b038dc53446999", + "task_type": "cell" + }, + "diagnostics": { + "current": 3, + "previous": 2 + }, + "event_kind": "request_limit_increased", + "pressure_snapshot": { + "active_lease_count": 1, + "blocked_until_monotonic": null, + "captured_at": 173619.239297208, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 3, + "effective_max": 6, + "in_flight_count": 1, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 136, + "waiters": 34 + }, + "reason_or_outcome": null, + "request_attempt_id": null, + "request_group_key": null, + "request_lease_id": null, + "request_resource_key": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 136, + "stream": "request" + }, + { + "captured_at_monotonic": 173622.440582583, + "captured_correlation": { + "row_group": 0, + "run_id": "run-ad4db4c019124c3ab44ac891b014b5e0", + "scheduling_group_identity_hash": "0380441d1e130774", + "scheduling_group_kind": "model", + "task_column": "nano_col_2", + "task_execution_id": "task-exec-4d163792b3624641934846bee803d6e0", + "task_type": "cell" + }, + "diagnostics": { + "current": 4, + "previous": 3 + }, + "event_kind": "request_limit_increased", + "pressure_snapshot": { + "active_lease_count": 2, + "blocked_until_monotonic": null, + "captured_at": 173622.440576166, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 4, + "effective_max": 6, + "in_flight_count": 2, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 196, + "waiters": 33 + }, + "reason_or_outcome": null, + "request_attempt_id": null, + "request_group_key": null, + "request_lease_id": null, + "request_resource_key": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 196, + "stream": "request" + }, + { + "captured_at_monotonic": 173625.76298125, + "captured_correlation": { + "row_group": 0, + "run_id": "run-ad4db4c019124c3ab44ac891b014b5e0", + "scheduling_group_identity_hash": "0380441d1e130774", + "scheduling_group_kind": "model", + "task_column": "nano_col_2", + "task_execution_id": "task-exec-d1fdb0d3c48e4d30a51a0b9e962a9133", + "task_type": "cell" + }, + "diagnostics": { + "current": 5, + "previous": 4 + }, + "event_kind": "request_limit_increased", + "pressure_snapshot": { + "active_lease_count": 3, + "blocked_until_monotonic": null, + "captured_at": 173625.762971083, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 5, + "effective_max": 6, + "in_flight_count": 3, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 256, + "waiters": 32 + }, + "reason_or_outcome": null, + "request_attempt_id": null, + "request_group_key": null, + "request_lease_id": null, + "request_resource_key": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 256, + "stream": "request" + }, + { + "captured_at_monotonic": 173627.23577875, + "captured_correlation": { + "row_group": 0, + "run_id": "run-ad4db4c019124c3ab44ac891b014b5e0", + "scheduling_group_identity_hash": "0380441d1e130774", + "scheduling_group_kind": "model", + "task_column": "nano_col_2", + "task_execution_id": "task-exec-8fcdc3e9b33048439786b6dce6fa597f", + "task_type": "cell" + }, + "diagnostics": { + "current": 6, + "previous": 5 + }, + "event_kind": "request_limit_increased", + "pressure_snapshot": { + "active_lease_count": 4, + "blocked_until_monotonic": null, + "captured_at": 173627.235774625, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 6, + "effective_max": 6, + "in_flight_count": 4, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 316, + "waiters": 31 + }, + "reason_or_outcome": null, + "request_attempt_id": null, + "request_group_key": null, + "request_lease_id": null, + "request_resource_key": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 316, + "stream": "request" + }, + { + "captured_at_monotonic": 173627.235785166, + "captured_correlation": { + "row_group": 0, + "run_id": "run-ad4db4c019124c3ab44ac891b014b5e0", + "scheduling_group_identity_hash": "0380441d1e130774", + "scheduling_group_kind": "model", + "task_column": "nano_col_2", + "task_execution_id": "task-exec-8fcdc3e9b33048439786b6dce6fa597f", + "task_type": "cell" + }, + "diagnostics": {}, + "event_kind": "request_fully_recovered", + "pressure_snapshot": { + "active_lease_count": 4, + "blocked_until_monotonic": null, + "captured_at": 173627.235782583, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 6, + "effective_max": 6, + "in_flight_count": 4, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 317, + "waiters": 31 + }, + "reason_or_outcome": null, + "request_attempt_id": null, + "request_group_key": null, + "request_lease_id": null, + "request_resource_key": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 317, + "stream": "request" + } + ], + "max_observed_current_limit": 6, + "max_observed_in_flight": 6, + "max_observed_waiters": 34, + "max_parallel_requests": 6, + "model_name": "openai/openai/gpt-5-nano", + "model_usage": { + "column_profiles": null, + "column_statistics": [ + { + "column_name": "nano_col_1", + "column_type": "llm-text", + "input_tokens_mean": 15.0, + "input_tokens_median": 15.0, + "input_tokens_stddev": 0.0, + "num_null": 0, + "num_records": 48, + "num_unique": 1, + "output_tokens_mean": 0.0, + "output_tokens_median": 0.0, + "output_tokens_stddev": 0.0, + "pyarrow_dtype": "string", + "simple_dtype": "string" + }, + { + "column_name": "nano_col_2", + "column_type": "llm-text", + "input_tokens_mean": 15.0, + "input_tokens_median": 15.0, + "input_tokens_stddev": 0.0, + "num_null": 0, + "num_records": 48, + "num_unique": 1, + "output_tokens_mean": 0.0, + "output_tokens_median": 0.0, + "output_tokens_stddev": 0.0, + "pyarrow_dtype": "string", + "simple_dtype": "string" + }, + { + "column_name": "nano_col_3", + "column_type": "llm-text", + "input_tokens_mean": 15.0, + "input_tokens_median": 15.0, + "input_tokens_stddev": 0.0, + "num_null": 0, + "num_records": 48, + "num_unique": 1, + "output_tokens_mean": 0.0, + "output_tokens_median": 0.0, + "output_tokens_stddev": 0.0, + "pyarrow_dtype": "string", + "simple_dtype": "string" + } + ], + "num_records": 48, + "side_effect_column_names": [ + "_internal_row_id" + ], + "target_num_records": 48 + }, + "observed_limits": [ + 2, + 3, + 4, + 5, + 6 + ], + "provider": "nvidia-internal", + "request_event_counts": { + "model_request_completed": 144, + "model_request_started": 144, + "request_effective_cap_changed": 1, + "request_fully_recovered": 1, + "request_lease_acquired": 144, + "request_lease_released": 144, + "request_limit_increased": 4, + "request_queue_drained": 3, + "request_queue_formed": 3, + "request_resource_registered": 1, + "request_wait_completed": 144, + "request_wait_started": 144 + }, + "rows_completed": 48, + "rows_requested": 48, + "scenario": "aimd_rows48_cols3_cap6_initial2", + "scheduler_event_counts": { + "dependency_ready": 145, + "group_capped": 108, + "queue_drained": 1, + "ready_enqueued": 145, + "selected": 145, + "task_completed": 145, + "task_lease_acquired": 145, + "task_lease_released": 145, + "worker_spawned": 145 + }, + "skip_health_check": true, + "success": true, + "task_trace_count": 145, + "temperature_omitted": true, + "wall_time_seconds": 39.862907250004355 + }, + { + "artifacts": { + "monitor_samples_jsonl": "artifacts/645-live-bench-nano/agent-aimd/aimd_rows64_cols2_cap8_initial1/monitor_samples.jsonl", + "request_events_jsonl": "artifacts/645-live-bench-nano/agent-aimd/aimd_rows64_cols2_cap8_initial1/request_events.jsonl", + "summary_json": "artifacts/645-live-bench-nano/agent-aimd/aimd_rows64_cols2_cap8_initial1/summary.json", + "task_traces_csv": "artifacts/645-live-bench-nano/agent-aimd/aimd_rows64_cols2_cap8_initial1/task_traces.csv", + "task_traces_json": "artifacts/645-live-bench-nano/agent-aimd/aimd_rows64_cols2_cap8_initial1/task_traces.json", + "timeline_jsonl": "artifacts/645-live-bench-nano/agent-aimd/aimd_rows64_cols2_cap8_initial1/timeline.jsonl" + }, + "cap_enforced": true, + "columns": 2, + "env": { + "DATA_DESIGNER_ASYNC_ENGINE": "1", + "DATA_DESIGNER_ASYNC_TRACE": "1" + }, + "error": null, + "expected_requests": 128, + "final_pressure": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 173607.557462708, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 8, + "effective_max": 8, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 911, + "waiters": 0 + }, + "increase_after_successes": 8, + "initial_limit": 1, + "limit_events": [ + { + "captured_at_monotonic": 173577.217782375, + "captured_correlation": { + "row_group": 0, + "run_id": "run-2ba0bf5f1b9b4dfba9d251f8c5e907a8", + "scheduling_group_identity_hash": "0380441d1e130774", + "scheduling_group_kind": "model", + "task_column": "nano_col_2", + "task_execution_id": "task-exec-a1910513d8d7421a83b7baffc2a86025", + "task_type": "cell" + }, + "diagnostics": { + "current": 2, + "previous": 1 + }, + "event_kind": "request_limit_increased", + "pressure_snapshot": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 173577.217771291, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 2, + "effective_max": 8, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 123, + "waiters": 31 + }, + "reason_or_outcome": null, + "request_attempt_id": null, + "request_group_key": null, + "request_lease_id": null, + "request_resource_key": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 123, + "stream": "request" + }, + { + "captured_at_monotonic": 173582.624881, + "captured_correlation": { + "row_group": 0, + "run_id": "run-2ba0bf5f1b9b4dfba9d251f8c5e907a8", + "scheduling_group_identity_hash": "0380441d1e130774", + "scheduling_group_kind": "model", + "task_column": "nano_col_2", + "task_execution_id": "task-exec-fa9c99d412844f30aea41507c10b2095", + "task_type": "cell" + }, + "diagnostics": { + "current": 3, + "previous": 2 + }, + "event_kind": "request_limit_increased", + "pressure_snapshot": { + "active_lease_count": 1, + "blocked_until_monotonic": null, + "captured_at": 173582.624876333, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 3, + "effective_max": 8, + "in_flight_count": 1, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 183, + "waiters": 30 + }, + "reason_or_outcome": null, + "request_attempt_id": null, + "request_group_key": null, + "request_lease_id": null, + "request_resource_key": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 183, + "stream": "request" + }, + { + "captured_at_monotonic": 173587.410946791, + "captured_correlation": { + "row_group": 0, + "run_id": "run-2ba0bf5f1b9b4dfba9d251f8c5e907a8", + "scheduling_group_identity_hash": "0380441d1e130774", + "scheduling_group_kind": "model", + "task_column": "nano_col_2", + "task_execution_id": "task-exec-53577fb2f69d464dbe6683cd90abad56", + "task_type": "cell" + }, + "diagnostics": { + "current": 4, + "previous": 3 + }, + "event_kind": "request_limit_increased", + "pressure_snapshot": { + "active_lease_count": 2, + "blocked_until_monotonic": null, + "captured_at": 173587.4109345, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 4, + "effective_max": 8, + "in_flight_count": 2, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 243, + "waiters": 29 + }, + "reason_or_outcome": null, + "request_attempt_id": null, + "request_group_key": null, + "request_lease_id": null, + "request_resource_key": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 243, + "stream": "request" + }, + { + "captured_at_monotonic": 173589.729611708, + "captured_correlation": { + "row_group": 0, + "run_id": "run-2ba0bf5f1b9b4dfba9d251f8c5e907a8", + "scheduling_group_identity_hash": "0380441d1e130774", + "scheduling_group_kind": "model", + "task_column": "nano_col_2", + "task_execution_id": "task-exec-43b228ef4ad14db89437504a2128a0e2", + "task_type": "cell" + }, + "diagnostics": { + "current": 5, + "previous": 4 + }, + "event_kind": "request_limit_increased", + "pressure_snapshot": { + "active_lease_count": 3, + "blocked_until_monotonic": null, + "captured_at": 173589.729607333, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 5, + "effective_max": 8, + "in_flight_count": 3, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 303, + "waiters": 28 + }, + "reason_or_outcome": null, + "request_attempt_id": null, + "request_group_key": null, + "request_lease_id": null, + "request_resource_key": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 303, + "stream": "request" + }, + { + "captured_at_monotonic": 173591.56972375, + "captured_correlation": { + "row_group": 0, + "run_id": "run-2ba0bf5f1b9b4dfba9d251f8c5e907a8", + "scheduling_group_identity_hash": "f642ec0af806976e", + "scheduling_group_kind": "model", + "task_column": "nano_col_1", + "task_execution_id": "task-exec-c4d419ffa902437888efe84607449e7c", + "task_type": "cell" + }, + "diagnostics": { + "current": 6, + "previous": 5 + }, + "event_kind": "request_limit_increased", + "pressure_snapshot": { + "active_lease_count": 4, + "blocked_until_monotonic": null, + "captured_at": 173591.569718458, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 6, + "effective_max": 8, + "in_flight_count": 4, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 363, + "waiters": 27 + }, + "reason_or_outcome": null, + "request_attempt_id": null, + "request_group_key": null, + "request_lease_id": null, + "request_resource_key": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 363, + "stream": "request" + }, + { + "captured_at_monotonic": 173593.409727916, + "captured_correlation": { + "row_group": 0, + "run_id": "run-2ba0bf5f1b9b4dfba9d251f8c5e907a8", + "scheduling_group_identity_hash": "f642ec0af806976e", + "scheduling_group_kind": "model", + "task_column": "nano_col_1", + "task_execution_id": "task-exec-3acb666ce8b44116b6eaa2f1283257ab", + "task_type": "cell" + }, + "diagnostics": { + "current": 7, + "previous": 6 + }, + "event_kind": "request_limit_increased", + "pressure_snapshot": { + "active_lease_count": 5, + "blocked_until_monotonic": null, + "captured_at": 173593.409720083, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 7, + "effective_max": 8, + "in_flight_count": 5, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 423, + "waiters": 26 + }, + "reason_or_outcome": null, + "request_attempt_id": null, + "request_group_key": null, + "request_lease_id": null, + "request_resource_key": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 423, + "stream": "request" + }, + { + "captured_at_monotonic": 173594.760791291, + "captured_correlation": { + "row_group": 0, + "run_id": "run-2ba0bf5f1b9b4dfba9d251f8c5e907a8", + "scheduling_group_identity_hash": "0380441d1e130774", + "scheduling_group_kind": "model", + "task_column": "nano_col_2", + "task_execution_id": "task-exec-a8ff7ba0c68f450dabf06dea4aa89b81", + "task_type": "cell" + }, + "diagnostics": { + "current": 8, + "previous": 7 + }, + "event_kind": "request_limit_increased", + "pressure_snapshot": { + "active_lease_count": 6, + "blocked_until_monotonic": null, + "captured_at": 173594.76078525, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 8, + "effective_max": 8, + "in_flight_count": 6, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 483, + "waiters": 25 + }, + "reason_or_outcome": null, + "request_attempt_id": null, + "request_group_key": null, + "request_lease_id": null, + "request_resource_key": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 483, + "stream": "request" + }, + { + "captured_at_monotonic": 173594.760798458, + "captured_correlation": { + "row_group": 0, + "run_id": "run-2ba0bf5f1b9b4dfba9d251f8c5e907a8", + "scheduling_group_identity_hash": "0380441d1e130774", + "scheduling_group_kind": "model", + "task_column": "nano_col_2", + "task_execution_id": "task-exec-a8ff7ba0c68f450dabf06dea4aa89b81", + "task_type": "cell" + }, + "diagnostics": {}, + "event_kind": "request_fully_recovered", + "pressure_snapshot": { + "active_lease_count": 6, + "blocked_until_monotonic": null, + "captured_at": 173594.760795416, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 8, + "effective_max": 8, + "in_flight_count": 6, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 484, + "waiters": 25 + }, + "reason_or_outcome": null, + "request_attempt_id": null, + "request_group_key": null, + "request_lease_id": null, + "request_resource_key": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 484, + "stream": "request" + } + ], + "max_observed_current_limit": 8, + "max_observed_in_flight": 8, + "max_observed_waiters": 31, + "max_parallel_requests": 8, + "model_name": "openai/openai/gpt-5-nano", + "model_usage": { + "column_profiles": null, + "column_statistics": [ + { + "column_name": "nano_col_1", + "column_type": "llm-text", + "input_tokens_mean": 15.0, + "input_tokens_median": 15.0, + "input_tokens_stddev": 0.0, + "num_null": 0, + "num_records": 64, + "num_unique": 1, + "output_tokens_mean": 0.0, + "output_tokens_median": 0.0, + "output_tokens_stddev": 0.0, + "pyarrow_dtype": "string", + "simple_dtype": "string" + }, + { + "column_name": "nano_col_2", + "column_type": "llm-text", + "input_tokens_mean": 15.0, + "input_tokens_median": 15.0, + "input_tokens_stddev": 0.0, + "num_null": 0, + "num_records": 64, + "num_unique": 1, + "output_tokens_mean": 0.0, + "output_tokens_median": 0.0, + "output_tokens_stddev": 0.0, + "pyarrow_dtype": "string", + "simple_dtype": "string" + } + ], + "num_records": 64, + "side_effect_column_names": [ + "_internal_row_id" + ], + "target_num_records": 64 + }, + "observed_limits": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ], + "provider": "nvidia-internal", + "request_event_counts": { + "model_request_completed": 128, + "model_request_started": 128, + "request_effective_cap_changed": 1, + "request_fully_recovered": 1, + "request_lease_acquired": 128, + "request_lease_released": 128, + "request_limit_increased": 7, + "request_queue_drained": 2, + "request_queue_formed": 2, + "request_resource_registered": 1, + "request_wait_completed": 128, + "request_wait_started": 128 + }, + "rows_completed": 64, + "rows_requested": 64, + "scenario": "aimd_rows64_cols2_cap8_initial1", + "scheduler_event_counts": { + "dependency_ready": 129, + "group_capped": 96, + "queue_drained": 1, + "ready_enqueued": 129, + "selected": 129, + "task_completed": 129, + "task_lease_acquired": 129, + "task_lease_released": 129, + "worker_spawned": 129 + }, + "skip_health_check": true, + "success": true, + "task_trace_count": 129, + "temperature_omitted": true, + "wall_time_seconds": 38.99835645899293 + } + ], + "skip_health_check": true, + "temperature_omitted": true +} diff --git a/artifacts/645-live-bench-nano/agent-bottleneck/README.md b/artifacts/645-live-bench-nano/agent-bottleneck/README.md new file mode 100644 index 000000000..2422dcc2a --- /dev/null +++ b/artifacts/645-live-bench-nano/agent-bottleneck/README.md @@ -0,0 +1,32 @@ +# Agent Bottleneck Live Benchmark + +Model: `openai/openai/gpt-5-nano` +Provider: `nvidia-internal` +Temperature: omitted +Health check: skipped + +Note: exact model returned `not_found` for every model request in these runs; artifacts still capture admission behavior up to the provider failure boundary. + +## request_bottleneck_rows64_cap2 +- Rows requested/result: 64 / 0 +- max_parallel_requests: 2; observed max in-flight: 2; cap enforced: True +- Wait p50/p95/max: 1.823871 / 3.294706 / 3.412188 sec +- Max waiters: 62; scheduler group_capped/admission_blocked: 0 / 0 +- Wall time: 4.241 sec; request successes/failed: 0 / 64; outcomes: `{'not_found': 64}` +- Summary: `/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/request_bottleneck_rows64_cap2/summary.json` + +## narrow_downstream_rows40_cap1 +- Rows requested/result: 40 / 0 +- max_parallel_requests: 1; observed max in-flight: 1; cap enforced: True +- Wait p50/p95/max: 2.060097 / 3.858477 / 4.058885 sec +- Max waiters: 39; scheduler group_capped/admission_blocked: 0 / 0 +- Wall time: 4.667 sec; request successes/failed: 0 / 40; outcomes: `{'not_found': 40}` +- Summary: `/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/narrow_downstream_rows40_cap1/summary.json` + +## heavy_fast_rows32_cap8 +- Rows requested/result: 32 / 0 +- max_parallel_requests: 8; observed max in-flight: 8; cap enforced: True +- Wait p50/p95/max: 0.242845 / 0.434496 / 0.473193 sec +- Max waiters: 24; scheduler group_capped/admission_blocked: 0 / 0 +- Wall time: 1.336 sec; request successes/failed: 0 / 32; outcomes: `{'not_found': 32}` +- Summary: `/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/heavy_fast_rows32_cap8/summary.json` diff --git a/artifacts/645-live-bench-nano/agent-bottleneck/README_mixed.md b/artifacts/645-live-bench-nano/agent-bottleneck/README_mixed.md new file mode 100644 index 000000000..96904bcdc --- /dev/null +++ b/artifacts/645-live-bench-nano/agent-bottleneck/README_mixed.md @@ -0,0 +1,27 @@ +# Mixed Buffer Live Benchmarks + +No model fallback was used. Initial integrate-endpoint attempt failed with gpt-5.5 not_found; final runs used configured nvidia-internal endpoint. + +Previous small-run summary: `/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/combined_summary.json` + +## mixed_rows512_buf256_1024gens +- Rows / expected model generations / observed completions: 512 / 1024 / 1024 +- Buffer size: 256; wall time: 264.457 sec; result rows: 512 +- Outcomes: `{'openai/openai/gpt-5-nano': {'success': 512}, 'openai/openai/gpt-5.5': {'success': 512}}` +- Max in-flight: `{'openai/openai/gpt-5-nano': 7, 'openai/openai/gpt-5.5': 8}` +- Max waiters: `{'openai/openai/gpt-5-nano': 1, 'openai/openai/gpt-5.5': 248}` +- Wait p95/max by model: `{'openai/openai/gpt-5-nano': {'p50': 0.000496, 'p95': 0.00113, 'max': 0.005292}, 'openai/openai/gpt-5.5': {'p50': 119.00833, 'p95': 129.106918, 'max': 131.423565}}` +- Upstream-to-downstream idle p95/max: 0.111947 / 0.356167 sec +- Traffic shape: `{'openai/openai/gpt-5.5': {'active_seconds': 224, 'zero_bins_inside_active_window': 33, 'max_started_per_second': 8, 'mean_started_per_second': 1.992, 'burst_ratio': 4.016, 'interpretation': 'waves'}, 'openai/openai/gpt-5-nano': {'active_seconds': 232, 'zero_bins_inside_active_window': 27, 'max_started_per_second': 7, 'mean_started_per_second': 1.977, 'burst_ratio': 3.541, 'interpretation': 'waves'}}` +- Summary: `/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf256_1024gens/summary.json` + +## mixed_rows512_buf32_1024gens +- Rows / expected model generations / observed completions: 512 / 1024 / 1024 +- Buffer size: 32; wall time: 259.315 sec; result rows: 512 +- Outcomes: `{'openai/openai/gpt-5-nano': {'success': 512}, 'openai/openai/gpt-5.5': {'success': 512}}` +- Max in-flight: `{'openai/openai/gpt-5-nano': 9, 'openai/openai/gpt-5.5': 8}` +- Max waiters: `{'openai/openai/gpt-5-nano': 1, 'openai/openai/gpt-5.5': 88}` +- Wait p95/max by model: `{'openai/openai/gpt-5-nano': {'max': 0.001512, 'p50': 0.000276, 'p95': 0.000618}, 'openai/openai/gpt-5.5': {'max': 45.718323, 'p50': 31.02182, 'p95': 39.684837}}` +- Upstream-to-downstream idle p95/max: 0.002748 / 0.028367 sec +- Traffic shape: `{'openai/openai/gpt-5-nano': {'active_seconds': 220, 'burst_ratio': 2.412, 'interpretation': 'waves', 'max_started_per_second': 5, 'mean_started_per_second': 2.073, 'zero_bins_inside_active_window': 27}, 'openai/openai/gpt-5.5': {'active_seconds': 217, 'burst_ratio': 3.828, 'interpretation': 'waves', 'max_started_per_second': 8, 'mean_started_per_second': 2.09, 'zero_bins_inside_active_window': 28}}` +- Summary: `/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf32_1024gens/summary.json` diff --git a/artifacts/645-live-bench-nano/agent-bottleneck/combined_mixed_summary.json b/artifacts/645-live-bench-nano/agent-bottleneck/combined_mixed_summary.json new file mode 100644 index 000000000..8fc843a3a --- /dev/null +++ b/artifacts/645-live-bench-nano/agent-bottleneck/combined_mixed_summary.json @@ -0,0 +1,369 @@ +{ + "created_at_epoch": 1778787927.324943, + "notes": [ + "Previous smaller bottleneck runs are preserved separately in combined_summary.json.", + "Mixed runs use exact upstream openai/openai/gpt-5.5 and downstream openai/openai/gpt-5-nano with temperature omitted and skip_health_check=True.", + "Initial mixed attempt against https://integrate.api.nvidia.com/v1 returned not_found for gpt-5.5; rerun used configured nvidia-internal endpoint https://inference-api.nvidia.com/v1 and exact requested models succeeded. No model fallback was used." + ], + "previous_small_runs_location": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/combined_summary.json", + "run_class": "final mixed 1024+ generation scale", + "scenarios": [ + { + "buffer_size": 256, + "cap_enforced_by_model": { + "openai/openai/gpt-5-nano": true, + "openai/openai/gpt-5.5": true + }, + "dataset_path": "None", + "expected_model_generations": 1024, + "failures": [], + "final_pressure_by_model": { + "openai/openai/gpt-5-nano": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 174420.160102208, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 16, + "effective_max": 16, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 7210, + "waiters": 0 + }, + "openai/openai/gpt-5.5": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 174418.987495666, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 8, + "effective_max": 8, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5.5", + "provider_name": "nvidia-internal" + }, + "sequence": 7199, + "waiters": 0 + } + }, + "max_inflight_by_model": { + "openai/openai/gpt-5-nano": 7, + "openai/openai/gpt-5.5": 8 + }, + "max_waiters_by_model": { + "openai/openai/gpt-5-nano": 1, + "openai/openai/gpt-5.5": 248 + }, + "model_request_outcomes": { + "openai/openai/gpt-5-nano": { + "success": 512 + }, + "openai/openai/gpt-5.5": { + "success": 512 + } + }, + "models": { + "downstream_fast": { + "alias": "gpt-5-nano-fast", + "max_parallel_requests": 16, + "max_tokens": 64, + "model": "openai/openai/gpt-5-nano" + }, + "upstream_heavy": { + "alias": "gpt-5.5-heavy", + "max_parallel_requests": 8, + "max_tokens": 128, + "model": "openai/openai/gpt-5.5" + } + }, + "observed_model_request_completed": 1024, + "paths": { + "request_events": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf256_1024gens/request_events.jsonl", + "summary": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf256_1024gens/summary.json", + "task_traces_csv": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf256_1024gens/task_traces.csv", + "task_traces_json": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf256_1024gens/task_traces.json", + "timeline": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf256_1024gens/timeline.jsonl", + "traffic_flow_csv": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf256_1024gens/traffic_flow.csv", + "traffic_flow_json": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf256_1024gens/traffic_flow.json" + }, + "provider": "nvidia-internal", + "request_event_counts": { + "model_request_completed": 1024, + "model_request_started": 1024, + "request_effective_cap_changed": 2, + "request_lease_acquired": 1024, + "request_lease_released": 1024, + "request_queue_drained": 18, + "request_queue_formed": 18, + "request_resource_registered": 2, + "request_wait_completed": 1024, + "request_wait_started": 1024 + }, + "request_wait_seconds_by_model": { + "openai/openai/gpt-5-nano": { + "max": 0.005292, + "p50": 0.000496, + "p95": 0.00113 + }, + "openai/openai/gpt-5.5": { + "max": 131.423565, + "p50": 119.00833, + "p95": 129.106918 + } + }, + "result_columns": [ + "case_id", + "source", + "sink", + "constraint", + "heavy_upstream", + "fast_downstream" + ], + "result_rows": 512, + "rows_requested": 512, + "scenario": "mixed_rows512_buf256_1024gens", + "scenario_dir": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf256_1024gens", + "scheduler_admission_blocked_count": 472, + "scheduler_event_counts": { + "admission_blocked": 472, + "dependency_ready": 1026, + "queue_drained": 256, + "ready_enqueued": 1026, + "selected": 1026, + "task_completed": 1026, + "task_lease_acquired": 1026, + "task_lease_released": 1026, + "worker_spawned": 1026 + }, + "scheduler_group_capped_count": 0, + "skip_health_check": true, + "task_traces": { + "by_column": { + "case_id": 2, + "fast_downstream": 512, + "heavy_upstream": 512 + }, + "count": 1026, + "status_counts": { + "ok": 1026 + } + }, + "temperature_omitted": true, + "traffic_shape": { + "openai/openai/gpt-5-nano": { + "active_seconds": 232, + "burst_ratio": 3.541, + "interpretation": "waves", + "max_started_per_second": 7, + "mean_started_per_second": 1.977, + "zero_bins_inside_active_window": 27 + }, + "openai/openai/gpt-5.5": { + "active_seconds": 224, + "burst_ratio": 4.016, + "interpretation": "waves", + "max_started_per_second": 8, + "mean_started_per_second": 1.992, + "zero_bins_inside_active_window": 33 + } + }, + "upstream_to_downstream_idle_seconds": { + "max": 0.356167, + "p50": 0.053224, + "p95": 0.111947 + }, + "wall_time_seconds": 264.457 + }, + { + "buffer_size": 32, + "cap_enforced_by_model": { + "openai/openai/gpt-5-nano": true, + "openai/openai/gpt-5.5": true + }, + "dataset_path": "None", + "expected_model_generations": 1024, + "failures": [], + "final_pressure_by_model": { + "openai/openai/gpt-5-nano": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 174146.476839041, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 16, + "effective_max": 16, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 7210, + "waiters": 0 + }, + "openai/openai/gpt-5.5": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 174137.719422166, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 8, + "effective_max": 8, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5.5", + "provider_name": "nvidia-internal" + }, + "sequence": 7199, + "waiters": 0 + } + }, + "max_inflight_by_model": { + "openai/openai/gpt-5-nano": 9, + "openai/openai/gpt-5.5": 8 + }, + "max_waiters_by_model": { + "openai/openai/gpt-5-nano": 1, + "openai/openai/gpt-5.5": 88 + }, + "model_request_outcomes": { + "openai/openai/gpt-5-nano": { + "success": 512 + }, + "openai/openai/gpt-5.5": { + "success": 512 + } + }, + "models": { + "downstream_fast": { + "alias": "gpt-5-nano-fast", + "max_parallel_requests": 16, + "max_tokens": 64, + "model": "openai/openai/gpt-5-nano" + }, + "upstream_heavy": { + "alias": "gpt-5.5-heavy", + "max_parallel_requests": 8, + "max_tokens": 128, + "model": "openai/openai/gpt-5.5" + } + }, + "observed_model_request_completed": 1024, + "paths": { + "request_events": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf32_1024gens/request_events.jsonl", + "summary": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf32_1024gens/summary.json", + "task_traces_csv": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf32_1024gens/task_traces.csv", + "task_traces_json": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf32_1024gens/task_traces.json", + "timeline": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf32_1024gens/timeline.jsonl", + "traffic_flow_csv": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf32_1024gens/traffic_flow.csv", + "traffic_flow_json": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf32_1024gens/traffic_flow.json" + }, + "provider": "nvidia-internal", + "request_event_counts": { + "model_request_completed": 1024, + "model_request_started": 1024, + "request_effective_cap_changed": 2, + "request_lease_acquired": 1024, + "request_lease_released": 1024, + "request_queue_drained": 18, + "request_queue_formed": 18, + "request_resource_registered": 2, + "request_wait_completed": 1024, + "request_wait_started": 1024 + }, + "request_wait_seconds_by_model": { + "openai/openai/gpt-5-nano": { + "max": 0.001512, + "p50": 0.000276, + "p95": 0.000618 + }, + "openai/openai/gpt-5.5": { + "max": 45.718323, + "p50": 31.02182, + "p95": 39.684837 + } + }, + "result_columns": [ + "case_id", + "source", + "sink", + "constraint", + "heavy_upstream", + "fast_downstream" + ], + "result_rows": 512, + "rows_requested": 512, + "scenario": "mixed_rows512_buf32_1024gens", + "scenario_dir": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf32_1024gens", + "scheduler_admission_blocked_count": 0, + "scheduler_event_counts": { + "dependency_ready": 1040, + "queue_drained": 542, + "ready_enqueued": 1040, + "selected": 1040, + "task_completed": 1040, + "task_lease_acquired": 1040, + "task_lease_released": 1040, + "worker_spawned": 1040 + }, + "scheduler_group_capped_count": 0, + "skip_health_check": true, + "task_traces": { + "by_column": { + "case_id": 16, + "fast_downstream": 512, + "heavy_upstream": 512 + }, + "count": 1040, + "status_counts": { + "ok": 1040 + } + }, + "temperature_omitted": true, + "traffic_shape": { + "openai/openai/gpt-5-nano": { + "active_seconds": 220, + "burst_ratio": 2.412, + "interpretation": "waves", + "max_started_per_second": 5, + "mean_started_per_second": 2.073, + "zero_bins_inside_active_window": 27 + }, + "openai/openai/gpt-5.5": { + "active_seconds": 217, + "burst_ratio": 3.828, + "interpretation": "waves", + "max_started_per_second": 8, + "mean_started_per_second": 2.09, + "zero_bins_inside_active_window": 28 + } + }, + "upstream_to_downstream_idle_seconds": { + "max": 0.028367, + "p50": 0.000646, + "p95": 0.002748 + }, + "wall_time_seconds": 259.315 + } + ] +} diff --git a/artifacts/645-live-bench-nano/agent-bottleneck/combined_summary.json b/artifacts/645-live-bench-nano/agent-bottleneck/combined_summary.json new file mode 100644 index 000000000..9935f8154 --- /dev/null +++ b/artifacts/645-live-bench-nano/agent-bottleneck/combined_summary.json @@ -0,0 +1,297 @@ +{ + "created_at_epoch": 1778787718.6548312, + "env": { + "DATA_DESIGNER_ASYNC_ENGINE": "1", + "DATA_DESIGNER_ASYNC_TRACE": "1" + }, + "model_name": "openai/openai/gpt-5-nano", + "notes": [ + "AdaptiveRequestAdmissionController.__init__, create_model_client, and AsyncTaskScheduler.__init__ were patched only in-process.", + "Request-event snapshots were read from event.pressure_snapshot and event kinds from event.event_kind.", + "The exact requested model returned not_found from nvidia-internal in all scenarios; rows were not reduced because this was deterministic model availability failure, not rate limiting or overload." + ], + "provider": "nvidia-internal", + "scenarios": [ + { + "artifact_dataset_path": null, + "failed_request_count": 64, + "failure_signal_count": 64, + "failures": [ + "DataDesignerGenerationError: \ud83d\uded1 ModelNotFoundError: |----------\n | Cause: The specified model 'openai/openai/gpt-5-nano' could not be found while running generation for column 'llm_note'.\n | Solution: Check that the model name is correct and supported by your model provider 'nvidia-internal' and try again.\n |----------" + ], + "max_parallel_requests": 2, + "max_tokens": 32, + "model_name": "openai/openai/gpt-5-nano", + "model_request_outcomes": { + "not_found": 64 + }, + "observed_max_active_request_leases": 2, + "observed_max_request_in_flight": 2, + "observed_max_request_waiters": 62, + "provider": "nvidia-internal", + "provider_failure_note": "All model_request_completed events had outcome=not_found; exact requested model was not available from provider, so row reduction was not attempted as a remedy.", + "request_cap_enforced": true, + "request_event_counts": { + "model_request_completed": 64, + "model_request_started": 64, + "request_effective_cap_changed": 1, + "request_lease_acquired": 64, + "request_lease_released": 64, + "request_queue_drained": 3, + "request_queue_formed": 3, + "request_resource_registered": 1, + "request_wait_completed": 64, + "request_wait_started": 64 + }, + "request_events_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/request_bottleneck_rows64_cap2/request_events.jsonl", + "request_pressure_final": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 173649.073962625, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 2, + "effective_max": 2, + "in_flight_count": 0, + "last_outcome": "provider_failure", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 457, + "waiters": 0 + }, + "request_wait_seconds": { + "max": 3.412188, + "p50": 1.823871, + "p95": 3.294706 + }, + "result_columns": [], + "result_rows": 0, + "rows_requested": 64, + "scenario": "request_bottleneck_rows64_cap2", + "scenario_dir": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/request_bottleneck_rows64_cap2", + "scheduler_admission_blocked_count": 0, + "scheduler_event_counts": { + "dependency_ready": 66, + "non_retryable_dropped": 64, + "queue_drained": 3, + "ready_enqueued": 66, + "selected": 66, + "task_completed": 66, + "task_lease_acquired": 66, + "task_lease_released": 66, + "worker_spawned": 66 + }, + "scheduler_group_capped_count": 0, + "skip_health_check": true, + "success_request_count": 0, + "summary_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/request_bottleneck_rows64_cap2/summary.json", + "task_traces": { + "by_column": {}, + "count": 0, + "duration_seconds": { + "max": null, + "p50": null, + "p95": null + } + }, + "task_traces_csv_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/request_bottleneck_rows64_cap2/task_traces.csv", + "task_traces_json_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/request_bottleneck_rows64_cap2/task_traces.json", + "temperature_omitted": true, + "timeline_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/request_bottleneck_rows64_cap2/timeline.jsonl", + "wall_time_seconds": 4.241 + }, + { + "artifact_dataset_path": null, + "failed_request_count": 40, + "failure_signal_count": 40, + "failures": [ + "DataDesignerGenerationError: \ud83d\uded1 ModelNotFoundError: |----------\n | Cause: The specified model 'openai/openai/gpt-5-nano' could not be found while running generation for column 'downstream_summary'.\n | Solution: Check that the model name is correct and supported by your model provider 'nvidia-internal' and try again.\n |----------" + ], + "max_parallel_requests": 1, + "max_tokens": 32, + "model_name": "openai/openai/gpt-5-nano", + "model_request_outcomes": { + "not_found": 40 + }, + "observed_max_active_request_leases": 1, + "observed_max_request_in_flight": 1, + "observed_max_request_waiters": 39, + "provider": "nvidia-internal", + "provider_failure_note": "All model_request_completed events had outcome=not_found; exact requested model was not available from provider, so row reduction was not attempted as a remedy.", + "request_cap_enforced": true, + "request_event_counts": { + "model_request_completed": 40, + "model_request_started": 40, + "request_effective_cap_changed": 1, + "request_lease_acquired": 40, + "request_lease_released": 40, + "request_queue_drained": 2, + "request_queue_formed": 2, + "request_resource_registered": 1, + "request_wait_completed": 40, + "request_wait_started": 40 + }, + "request_events_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/narrow_downstream_rows40_cap1/request_events.jsonl", + "request_pressure_final": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 173653.822882916, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 1, + "effective_max": 1, + "in_flight_count": 0, + "last_outcome": "provider_failure", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 287, + "waiters": 0 + }, + "request_wait_seconds": { + "max": 4.058885, + "p50": 2.060097, + "p95": 3.858477 + }, + "result_columns": [], + "result_rows": 0, + "rows_requested": 40, + "scenario": "narrow_downstream_rows40_cap1", + "scenario_dir": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/narrow_downstream_rows40_cap1", + "scheduler_admission_blocked_count": 0, + "scheduler_event_counts": { + "dependency_ready": 45, + "non_retryable_dropped": 40, + "queue_drained": 4, + "ready_enqueued": 45, + "selected": 45, + "task_completed": 45, + "task_lease_acquired": 45, + "task_lease_released": 45, + "worker_spawned": 45 + }, + "scheduler_group_capped_count": 0, + "skip_health_check": true, + "success_request_count": 0, + "summary_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/narrow_downstream_rows40_cap1/summary.json", + "task_traces": { + "by_column": {}, + "count": 0, + "duration_seconds": { + "max": null, + "p50": null, + "p95": null + } + }, + "task_traces_csv_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/narrow_downstream_rows40_cap1/task_traces.csv", + "task_traces_json_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/narrow_downstream_rows40_cap1/task_traces.json", + "temperature_omitted": true, + "timeline_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/narrow_downstream_rows40_cap1/timeline.jsonl", + "wall_time_seconds": 4.667 + }, + { + "artifact_dataset_path": null, + "failed_request_count": 32, + "failure_signal_count": 32, + "failures": [ + "DataDesignerGenerationError: \ud83d\uded1 ModelNotFoundError: |----------\n | Cause: The specified model 'openai/openai/gpt-5-nano' could not be found while running generation for column 'fast_after_prework'.\n | Solution: Check that the model name is correct and supported by your model provider 'nvidia-internal' and try again.\n |----------" + ], + "max_parallel_requests": 8, + "max_tokens": 16, + "model_name": "openai/openai/gpt-5-nano", + "model_request_outcomes": { + "not_found": 32 + }, + "observed_max_active_request_leases": 8, + "observed_max_request_in_flight": 8, + "observed_max_request_waiters": 24, + "provider": "nvidia-internal", + "provider_failure_note": "All model_request_completed events had outcome=not_found; exact requested model was not available from provider, so row reduction was not attempted as a remedy.", + "request_cap_enforced": true, + "request_event_counts": { + "model_request_completed": 32, + "model_request_started": 32, + "request_effective_cap_changed": 1, + "request_lease_acquired": 32, + "request_lease_released": 32, + "request_queue_drained": 9, + "request_queue_formed": 9, + "request_resource_registered": 1, + "request_wait_completed": 32, + "request_wait_started": 32 + }, + "request_events_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/heavy_fast_rows32_cap8/request_events.jsonl", + "request_pressure_final": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 173655.181078375, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 8, + "effective_max": 8, + "in_flight_count": 0, + "last_outcome": "provider_failure", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 245, + "waiters": 0 + }, + "request_wait_seconds": { + "max": 0.473193, + "p50": 0.242845, + "p95": 0.434496 + }, + "result_columns": [], + "result_rows": 0, + "rows_requested": 32, + "scenario": "heavy_fast_rows32_cap8", + "scenario_dir": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/heavy_fast_rows32_cap8", + "scheduler_admission_blocked_count": 0, + "scheduler_event_counts": { + "dependency_ready": 65, + "non_retryable_dropped": 32, + "queue_drained": 3, + "ready_enqueued": 65, + "selected": 65, + "task_completed": 65, + "task_lease_acquired": 65, + "task_lease_released": 65, + "worker_spawned": 65 + }, + "scheduler_group_capped_count": 0, + "skip_health_check": true, + "success_request_count": 0, + "summary_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/heavy_fast_rows32_cap8/summary.json", + "task_traces": { + "by_column": {}, + "count": 0, + "duration_seconds": { + "max": null, + "p50": null, + "p95": null + } + }, + "task_traces_csv_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/heavy_fast_rows32_cap8/task_traces.csv", + "task_traces_json_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/heavy_fast_rows32_cap8/task_traces.json", + "temperature_omitted": true, + "timeline_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/heavy_fast_rows32_cap8/timeline.jsonl", + "wall_time_seconds": 1.336 + } + ], + "skip_health_check": true, + "temperature_omitted": true +} diff --git a/artifacts/645-live-bench-nano/agent-cap-scale/README.md b/artifacts/645-live-bench-nano/agent-cap-scale/README.md new file mode 100644 index 000000000..ebc8e094f --- /dev/null +++ b/artifacts/645-live-bench-nano/agent-cap-scale/README.md @@ -0,0 +1,33 @@ +# Live async scheduling benchmark: cap scale + +Ran two required live DataDesigner async scheduling scenarios on `openai/openai/gpt-5-nano` via `nvidia-internal` with `temperature` omitted, `skip_health_check=True`, `DATA_DESIGNER_ASYNC_ENGINE=1`, and `DATA_DESIGNER_ASYNC_TRACE=1`. + +Instrumentation used one shared `InMemoryAdmissionEventSink` and runtime monkeypatches for `AdaptiveRequestAdmissionController.__init__`, `data_designer.engine.models.clients.factory.create_model_client`, and `AsyncTaskScheduler.__init__`. + +| Scenario | Rows x cols | Buffer | Requests | Wall s | Max in-flight | Max waiters | Start mean/s | Start CV | Max start gap s | Wave score | Failures | +|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:| +| cap8_rows512_cols2_buffer32 | 512x2 | 32 | 1024 | 160.30 | 8 | 30 | 6.38 | 0.252 | 1.086 | 0.816 | 0 | +| cap8_rows512_cols2_buffer512 | 512x2 | 512 | 1024 | 167.08 | 8 | 31 | 6.14 | 0.246 | 1.091 | 0.872 | 0 | + +## Buffer comparison + +- `buffer_size=32`: 16 row groups, repeated dispatch/checkpoint waves, request start CV 0.252, wave score 0.816. +- `buffer_size=512`: 1 row group, no repeated row-group dispatch waves, request start CV 0.246, wave score 0.872. +- Cap enforcement held in both scenarios: max observed request in-flight was 8 and 8 for cap 8. +- No fallback model was used. No request rate-limit events were observed. Total failures: 0. + +## Artifacts + +- `cap8_rows512_cols2_buffer32/timeline.jsonl` +- `cap8_rows512_cols2_buffer32/request_events.jsonl` +- `cap8_rows512_cols2_buffer32/scheduler_events.jsonl` +- `cap8_rows512_cols2_buffer32/task_traces.json` and `cap8_rows512_cols2_buffer32/task_traces.csv` +- `cap8_rows512_cols2_buffer32/flow_buckets.json` +- `cap8_rows512_cols2_buffer32/summary.json` +- `cap8_rows512_cols2_buffer512/timeline.jsonl` +- `cap8_rows512_cols2_buffer512/request_events.jsonl` +- `cap8_rows512_cols2_buffer512/scheduler_events.jsonl` +- `cap8_rows512_cols2_buffer512/task_traces.json` and `cap8_rows512_cols2_buffer512/task_traces.csv` +- `cap8_rows512_cols2_buffer512/flow_buckets.json` +- `cap8_rows512_cols2_buffer512/summary.json` +- `combined_summary.json` diff --git a/artifacts/645-live-bench-nano/agent-cap-scale/combined_summary.json b/artifacts/645-live-bench-nano/agent-cap-scale/combined_summary.json new file mode 100644 index 000000000..cc03cd844 --- /dev/null +++ b/artifacts/645-live-bench-nano/agent-cap-scale/combined_summary.json @@ -0,0 +1,93 @@ +{ + "all_caps_enforced": true, + "comparison": { + "buffer32_minus_buffer512_max_waiters": -1, + "buffer32_minus_buffer512_start_rate_cv": 0.005909466834193605, + "buffer32_minus_buffer512_wall_time_seconds": -6.777404916996602, + "buffer32_minus_buffer512_wave_score": -0.05615488622945386 + }, + "env": { + "DATA_DESIGNER_ASYNC_ENGINE": "1", + "DATA_DESIGNER_ASYNC_TRACE": "1" + }, + "fallback_used": false, + "model_requested": "openai/openai/gpt-5-nano", + "provider": "nvidia-internal", + "scenarios": [ + { + "active_bucket_peak_to_mean_after_warmup": 1.557128412537917, + "buffer_size": 32, + "cap_enforced": true, + "expected_model_generations": 1024, + "failure_count": 0, + "llm_columns": 2, + "max_observed_request_in_flight": 8, + "max_observed_request_waiters": 30, + "max_parallel_requests": 8, + "max_start_gap_seconds": 1.0862738750001881, + "model_request_completed": 1024, + "model_request_started": 1024, + "model_used": "openai/openai/gpt-5-nano", + "provider": "nvidia-internal", + "request_queue_formed_events": 9, + "request_rate_limited_events": 0, + "rows": 512, + "scenario": "cap8_rows512_cols2_buffer32", + "scheduler_group_capped_events": 1007, + "start_rate_cv_after_warmup": 0.25193792813478294, + "start_rate_mean_after_warmup": 6.380645161290323, + "start_rate_stddev_after_warmup": 1.6075265220987118, + "status": "success", + "success_count": 1024, + "summary_path": "artifacts/645-live-bench-nano/agent-cap-scale/cap8_rows512_cols2_buffer32/summary.json", + "task_trace_count": 1040, + "wait_seconds_max": 3.962501068599522e-05, + "wait_seconds_p50": 2.62709945673123e-05, + "wait_seconds_p95": 3.841470024781302e-05, + "wall_time_seconds": 160.29887850000523, + "wave_like": false, + "wave_score": 0.8155179535759258, + "zero_start_bucket_fraction_after_warmup": 0.0064516129032258064 + }, + { + "active_bucket_peak_to_mean_after_warmup": 1.6194331983805668, + "buffer_size": 512, + "cap_enforced": true, + "expected_model_generations": 1024, + "failure_count": 0, + "llm_columns": 2, + "max_observed_request_in_flight": 8, + "max_observed_request_waiters": 31, + "max_parallel_requests": 8, + "max_start_gap_seconds": 1.0914802920015063, + "model_request_completed": 1024, + "model_request_started": 1024, + "model_used": "openai/openai/gpt-5-nano", + "provider": "nvidia-internal", + "request_queue_formed_events": 9, + "request_rate_limited_events": 0, + "rows": 512, + "scenario": "cap8_rows512_cols2_buffer512", + "scheduler_group_capped_events": 985, + "start_rate_cv_after_warmup": 0.24602846130058934, + "start_rate_mean_after_warmup": 6.136645962732919, + "start_rate_stddev_after_warmup": 1.5097895637576537, + "status": "success", + "success_count": 1024, + "summary_path": "artifacts/645-live-bench-nano/agent-cap-scale/cap8_rows512_cols2_buffer512/summary.json", + "task_trace_count": 1025, + "wait_seconds_max": 3.2042007660493255e-05, + "wait_seconds_p50": 2.7874993975274265e-05, + "wait_seconds_p95": 3.188170521752909e-05, + "wall_time_seconds": 167.07628341700183, + "wave_like": false, + "wave_score": 0.8716728398053797, + "zero_start_bucket_fraction_after_warmup": 0.006211180124223602 + } + ], + "skip_health_check": true, + "temperature_omitted": true, + "total_failures": 0, + "total_model_request_completed": 2048, + "total_model_request_started": 2048 +} diff --git a/artifacts/645-live-bench-nano/agent-cap-sweep/README.md b/artifacts/645-live-bench-nano/agent-cap-sweep/README.md new file mode 100644 index 000000000..f174fc90a --- /dev/null +++ b/artifacts/645-live-bench-nano/agent-cap-sweep/README.md @@ -0,0 +1,13 @@ +# GPT-5 Nano Live Cap Sweep + +Model: `openai/openai/gpt-5-nano` +Provider: `nvidia-internal` +Max tokens: `32` +Temperature: omitted +Async env: `DATA_DESIGNER_ASYNC_ENGINE=1`, `DATA_DESIGNER_ASYNC_TRACE=1` + +| Scenario | Status | Rows | Requests completed | Wall s | Max in-flight | Cap | Enforced | +|---|---:|---:|---:|---:|---:|---:|---:| +| cap2_rows40_cols2 | success | 40/40 | 80/80 | 54.33 | 2 | 2 | True | +| cap4_rows40_cols2 | success | 40/40 | 80/80 | 27.41 | 4 | 4 | True | +| cap8_rows40_cols2 | success | 40/40 | 80/80 | 16.11 | 8 | 8 | True | diff --git a/artifacts/645-live-bench-nano/agent-cap-sweep/README_final1024.md b/artifacts/645-live-bench-nano/agent-cap-sweep/README_final1024.md new file mode 100644 index 000000000..cbc4dee68 --- /dev/null +++ b/artifacts/645-live-bench-nano/agent-cap-sweep/README_final1024.md @@ -0,0 +1,13 @@ +# GPT-5 Nano Live 1024+ Buffer Sweep + +Model: `openai/openai/gpt-5-nano` +Provider: `nvidia-internal` +Max tokens: `32` +Temperature: omitted +Async env: `DATA_DESIGNER_ASYNC_ENGINE=1`, `DATA_DESIGNER_ASYNC_TRACE=1` + +| Scenario | Status | Buffer | Rows | Requests completed | Wall s | Max in-flight | Cap | Traffic | Enforced | +|---|---:|---:|---:|---:|---:|---:|---:|---:|---:| +| final1024_cap8_buffer32_rows512_cols2 | success | 32 | 512/512 | 1024/1024 | 155.37 | 8 | 8 | steady | True | +| final1024_cap8_buffer128_rows512_cols2 | success | 128 | 512/512 | 1024/1024 | 153.96 | 8 | 8 | steady | True | +| final1024_cap8_buffer512_rows512_cols2 | success | 512 | 512/512 | 1024/1024 | 150.27 | 8 | 8 | steady | True | diff --git a/artifacts/645-live-bench-nano/agent-cap-sweep/combined_summary.json b/artifacts/645-live-bench-nano/agent-cap-sweep/combined_summary.json new file mode 100644 index 000000000..917a3ac11 --- /dev/null +++ b/artifacts/645-live-bench-nano/agent-cap-sweep/combined_summary.json @@ -0,0 +1,269 @@ +[ + { + "cap_enforced": true, + "env": { + "DATA_DESIGNER_ASYNC_ENGINE": "1", + "DATA_DESIGNER_ASYNC_TRACE": "1" + }, + "error": null, + "expected_llm_requests": 80, + "final_pressure": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 173639.597257, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 2, + "effective_max": 2, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 569, + "waiters": 0 + }, + "first_event_monotonic": 173586.112177833, + "last_event_monotonic": 173639.597423833, + "llm_columns": 2, + "max_observed_request_in_flight": 2, + "max_observed_scheduler_in_flight": 0, + "max_observed_waiters": 7, + "max_parallel_requests": 2, + "max_tokens": 32, + "model_name_configured": "openai/openai/gpt-5-nano", + "model_usage": { + "openai/openai/gpt-5-nano": { + "request_usage": { + "failed_requests": 0, + "successful_requests": 80, + "total_requests": 80 + }, + "requests_per_minute": 88, + "token_usage": { + "input_tokens": 2080, + "output_tokens": 2560, + "total_tokens": 4640 + }, + "tokens_per_second": 85 + } + }, + "provider": "nvidia-internal", + "request_event_count": 488, + "request_event_counts_by_kind": { + "model_request_completed": 80, + "model_request_started": 80, + "request_effective_cap_changed": 1, + "request_lease_acquired": 80, + "request_lease_released": 80, + "request_queue_drained": 3, + "request_queue_formed": 3, + "request_resource_registered": 1, + "request_wait_completed": 80, + "request_wait_started": 80 + }, + "rows_generated": 40, + "rows_requested": 40, + "scenario": "cap2_rows40_cols2", + "scheduler_event_count": 640, + "scheduler_event_counts_by_kind": { + "dependency_ready": 81, + "group_capped": 72, + "queue_drained": 1, + "ready_enqueued": 81, + "selected": 81, + "task_completed": 81, + "task_lease_acquired": 81, + "task_lease_released": 81, + "worker_spawned": 81 + }, + "skip_health_check": true, + "started_wall_time": 1778787649.100818, + "status": "success", + "task_trace_count": 81, + "temperature_omitted": true, + "wall_time_seconds": 54.3302686669922 + }, + { + "cap_enforced": true, + "env": { + "DATA_DESIGNER_ASYNC_ENGINE": "1", + "DATA_DESIGNER_ASYNC_TRACE": "1" + }, + "error": null, + "expected_llm_requests": 80, + "final_pressure": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 173667.383977333, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 4, + "effective_max": 4, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 573, + "waiters": 0 + }, + "first_event_monotonic": 173640.502204375, + "last_event_monotonic": 173667.384284208, + "llm_columns": 2, + "max_observed_request_in_flight": 4, + "max_observed_scheduler_in_flight": 0, + "max_observed_waiters": 15, + "max_parallel_requests": 4, + "max_tokens": 32, + "model_name_configured": "openai/openai/gpt-5-nano", + "model_usage": { + "openai/openai/gpt-5-nano": { + "request_usage": { + "failed_requests": 0, + "successful_requests": 80, + "total_requests": 80 + }, + "requests_per_minute": 175, + "token_usage": { + "input_tokens": 2080, + "output_tokens": 2560, + "total_tokens": 4640 + }, + "tokens_per_second": 169 + } + }, + "provider": "nvidia-internal", + "request_event_count": 492, + "request_event_counts_by_kind": { + "model_request_completed": 80, + "model_request_started": 80, + "request_effective_cap_changed": 1, + "request_lease_acquired": 80, + "request_lease_released": 80, + "request_queue_drained": 5, + "request_queue_formed": 5, + "request_resource_registered": 1, + "request_wait_completed": 80, + "request_wait_started": 80 + }, + "rows_generated": 40, + "rows_requested": 40, + "scenario": "cap4_rows40_cols2", + "scheduler_event_count": 630, + "scheduler_event_counts_by_kind": { + "dependency_ready": 81, + "group_capped": 62, + "queue_drained": 1, + "ready_enqueued": 81, + "selected": 81, + "task_completed": 81, + "task_lease_acquired": 81, + "task_lease_released": 81, + "worker_spawned": 81 + }, + "skip_health_check": true, + "started_wall_time": 1778787703.492047, + "status": "success", + "task_trace_count": 81, + "temperature_omitted": true, + "wall_time_seconds": 27.406881708011497 + }, + { + "cap_enforced": true, + "env": { + "DATA_DESIGNER_ASYNC_ENGINE": "1", + "DATA_DESIGNER_ASYNC_TRACE": "1" + }, + "error": null, + "expected_llm_requests": 80, + "final_pressure": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 173683.576781916, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 8, + "effective_max": 8, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 581, + "waiters": 0 + }, + "first_event_monotonic": 173667.980828458, + "last_event_monotonic": 173683.577060208, + "llm_columns": 2, + "max_observed_request_in_flight": 8, + "max_observed_scheduler_in_flight": 0, + "max_observed_waiters": 26, + "max_parallel_requests": 8, + "max_tokens": 32, + "model_name_configured": "openai/openai/gpt-5-nano", + "model_usage": { + "openai/openai/gpt-5-nano": { + "request_usage": { + "failed_requests": 0, + "successful_requests": 80, + "total_requests": 80 + }, + "requests_per_minute": 298, + "token_usage": { + "input_tokens": 2080, + "output_tokens": 2560, + "total_tokens": 4640 + }, + "tokens_per_second": 288 + } + }, + "provider": "nvidia-internal", + "request_event_count": 500, + "request_event_counts_by_kind": { + "model_request_completed": 80, + "model_request_started": 80, + "request_effective_cap_changed": 1, + "request_lease_acquired": 80, + "request_lease_released": 80, + "request_queue_drained": 9, + "request_queue_formed": 9, + "request_resource_registered": 1, + "request_wait_completed": 80, + "request_wait_started": 80 + }, + "rows_generated": 40, + "rows_requested": 40, + "scenario": "cap8_rows40_cols2", + "scheduler_event_count": 615, + "scheduler_event_counts_by_kind": { + "dependency_ready": 81, + "group_capped": 47, + "queue_drained": 1, + "ready_enqueued": 81, + "selected": 81, + "task_completed": 81, + "task_lease_acquired": 81, + "task_lease_released": 81, + "worker_spawned": 81 + }, + "skip_health_check": true, + "started_wall_time": 1778787730.970028, + "status": "success", + "task_trace_count": 81, + "temperature_omitted": true, + "wall_time_seconds": 16.111844333994668 + } +] diff --git a/artifacts/645-live-bench-nano/agent-cap-sweep/combined_summary_final1024.json b/artifacts/645-live-bench-nano/agent-cap-sweep/combined_summary_final1024.json new file mode 100644 index 000000000..76bd8c86b --- /dev/null +++ b/artifacts/645-live-bench-nano/agent-cap-sweep/combined_summary_final1024.json @@ -0,0 +1,493 @@ +[ + { + "buffer_size": 32, + "cap_enforced": true, + "env": { + "DATA_DESIGNER_ASYNC_ENGINE": "1", + "DATA_DESIGNER_ASYNC_TRACE": "1" + }, + "error": null, + "expected_llm_requests": 1024, + "final_pressure": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 173951.761318291, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 8, + "effective_max": 8, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 7189, + "waiters": 0 + }, + "first_event_monotonic": 173797.088315333, + "last_event_monotonic": 173951.761623333, + "llm_columns": 2, + "max_observed_request_in_flight": 8, + "max_observed_scheduler_in_flight": 0, + "max_observed_waiters": 37, + "max_parallel_requests": 8, + "max_tokens": 32, + "model_name_configured": "openai/openai/gpt-5-nano", + "model_usage": { + "openai/openai/gpt-5-nano": { + "request_usage": { + "failed_requests": 0, + "successful_requests": 1024, + "total_requests": 1024 + }, + "requests_per_minute": 396, + "token_usage": { + "input_tokens": 26624, + "output_tokens": 32768, + "total_tokens": 59392 + }, + "tokens_per_second": 382 + } + }, + "provider": "nvidia-internal", + "request_event_count": 6164, + "request_event_counts_by_kind": { + "model_request_completed": 1024, + "model_request_started": 1024, + "request_effective_cap_changed": 1, + "request_lease_acquired": 1024, + "request_lease_released": 1024, + "request_queue_drained": 9, + "request_queue_formed": 9, + "request_resource_registered": 1, + "request_wait_completed": 1024, + "request_wait_started": 1024 + }, + "rows_generated": 512, + "rows_requested": 512, + "scenario": "final1024_cap8_buffer32_rows512_cols2", + "scheduler_event_count": 8287, + "scheduler_event_counts_by_kind": { + "dependency_ready": 1040, + "group_capped": 1006, + "queue_drained": 1, + "ready_enqueued": 1040, + "selected": 1040, + "task_completed": 1040, + "task_lease_acquired": 1040, + "task_lease_released": 1040, + "worker_spawned": 1040 + }, + "skip_health_check": true, + "started_wall_time": 1778787860.077785, + "status": "success", + "task_trace_count": 1040, + "temperature_omitted": true, + "traffic_shape": { + "bin_seconds": 10.0, + "bins": [ + { + "request_starts": 64, + "start_offset_seconds": 0.0 + }, + { + "request_starts": 61, + "start_offset_seconds": 10.0 + }, + { + "request_starts": 72, + "start_offset_seconds": 20.0 + }, + { + "request_starts": 76, + "start_offset_seconds": 30.0 + }, + { + "request_starts": 67, + "start_offset_seconds": 40.0 + }, + { + "request_starts": 67, + "start_offset_seconds": 50.0 + }, + { + "request_starts": 62, + "start_offset_seconds": 60.0 + }, + { + "request_starts": 72, + "start_offset_seconds": 70.0 + }, + { + "request_starts": 73, + "start_offset_seconds": 80.0 + }, + { + "request_starts": 72, + "start_offset_seconds": 90.0 + }, + { + "request_starts": 59, + "start_offset_seconds": 100.0 + }, + { + "request_starts": 72, + "start_offset_seconds": 110.0 + }, + { + "request_starts": 67, + "start_offset_seconds": 120.0 + }, + { + "request_starts": 64, + "start_offset_seconds": 130.0 + }, + { + "request_starts": 66, + "start_offset_seconds": 140.0 + }, + { + "request_starts": 10, + "start_offset_seconds": 150.0 + } + ], + "classification": "steady", + "coefficient_of_variation": 0.22997165671148478, + "first_start_monotonic": 173797.124120125, + "last_start_monotonic": 173948.406894416, + "request_start_count": 1024, + "zero_bin_fraction": 0.0 + }, + "wall_time_seconds": 155.36664783401648 + }, + { + "buffer_size": 128, + "cap_enforced": true, + "env": { + "DATA_DESIGNER_ASYNC_ENGINE": "1", + "DATA_DESIGNER_ASYNC_TRACE": "1" + }, + "error": null, + "expected_llm_requests": 1024, + "final_pressure": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 174106.610647125, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 8, + "effective_max": 8, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 7189, + "waiters": 0 + }, + "first_event_monotonic": 173953.297322375, + "last_event_monotonic": 174106.610886208, + "llm_columns": 2, + "max_observed_request_in_flight": 8, + "max_observed_scheduler_in_flight": 0, + "max_observed_waiters": 31, + "max_parallel_requests": 8, + "max_tokens": 32, + "model_name_configured": "openai/openai/gpt-5-nano", + "model_usage": { + "openai/openai/gpt-5-nano": { + "request_usage": { + "failed_requests": 0, + "successful_requests": 1024, + "total_requests": 1024 + }, + "requests_per_minute": 399, + "token_usage": { + "input_tokens": 26624, + "output_tokens": 32768, + "total_tokens": 59392 + }, + "tokens_per_second": 386 + } + }, + "provider": "nvidia-internal", + "request_event_count": 6164, + "request_event_counts_by_kind": { + "model_request_completed": 1024, + "model_request_started": 1024, + "request_effective_cap_changed": 1, + "request_lease_acquired": 1024, + "request_lease_released": 1024, + "request_queue_drained": 9, + "request_queue_formed": 9, + "request_resource_registered": 1, + "request_wait_completed": 1024, + "request_wait_started": 1024 + }, + "rows_generated": 512, + "rows_requested": 512, + "scenario": "final1024_cap8_buffer128_rows512_cols2", + "scheduler_event_count": 8184, + "scheduler_event_counts_by_kind": { + "dependency_ready": 1028, + "group_capped": 987, + "queue_drained": 1, + "ready_enqueued": 1028, + "selected": 1028, + "task_completed": 1028, + "task_lease_acquired": 1028, + "task_lease_released": 1028, + "worker_spawned": 1028 + }, + "skip_health_check": true, + "started_wall_time": 1778788016.288474, + "status": "success", + "task_trace_count": 1028, + "temperature_omitted": true, + "traffic_shape": { + "bin_seconds": 10.0, + "bins": [ + { + "request_starts": 75, + "start_offset_seconds": 0.0 + }, + { + "request_starts": 61, + "start_offset_seconds": 10.0 + }, + { + "request_starts": 65, + "start_offset_seconds": 20.0 + }, + { + "request_starts": 66, + "start_offset_seconds": 30.0 + }, + { + "request_starts": 66, + "start_offset_seconds": 40.0 + }, + { + "request_starts": 71, + "start_offset_seconds": 50.0 + }, + { + "request_starts": 72, + "start_offset_seconds": 60.0 + }, + { + "request_starts": 77, + "start_offset_seconds": 70.0 + }, + { + "request_starts": 74, + "start_offset_seconds": 80.0 + }, + { + "request_starts": 65, + "start_offset_seconds": 90.0 + }, + { + "request_starts": 69, + "start_offset_seconds": 100.0 + }, + { + "request_starts": 63, + "start_offset_seconds": 110.0 + }, + { + "request_starts": 65, + "start_offset_seconds": 120.0 + }, + { + "request_starts": 69, + "start_offset_seconds": 130.0 + }, + { + "request_starts": 64, + "start_offset_seconds": 140.0 + }, + { + "request_starts": 2, + "start_offset_seconds": 150.0 + } + ], + "classification": "steady", + "coefficient_of_variation": 0.2596407712169354, + "first_start_monotonic": 173953.646338458, + "last_start_monotonic": 174103.847372708, + "request_start_count": 1024, + "zero_bin_fraction": 0.0 + }, + "wall_time_seconds": 153.95940983400214 + }, + { + "buffer_size": 512, + "cap_enforced": true, + "env": { + "DATA_DESIGNER_ASYNC_ENGINE": "1", + "DATA_DESIGNER_ASYNC_TRACE": "1" + }, + "error": null, + "expected_llm_requests": 1024, + "final_pressure": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 174257.867132375, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 8, + "effective_max": 8, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 7189, + "waiters": 0 + }, + "first_event_monotonic": 174108.252816083, + "last_event_monotonic": 174257.867387333, + "llm_columns": 2, + "max_observed_request_in_flight": 8, + "max_observed_scheduler_in_flight": 0, + "max_observed_waiters": 31, + "max_parallel_requests": 8, + "max_tokens": 32, + "model_name_configured": "openai/openai/gpt-5-nano", + "model_usage": { + "openai/openai/gpt-5-nano": { + "request_usage": { + "failed_requests": 0, + "successful_requests": 1024, + "total_requests": 1024 + }, + "requests_per_minute": 409, + "token_usage": { + "input_tokens": 26624, + "output_tokens": 32768, + "total_tokens": 59392 + }, + "tokens_per_second": 395 + } + }, + "provider": "nvidia-internal", + "request_event_count": 6164, + "request_event_counts_by_kind": { + "model_request_completed": 1024, + "model_request_started": 1024, + "request_effective_cap_changed": 1, + "request_lease_acquired": 1024, + "request_lease_released": 1024, + "request_queue_drained": 9, + "request_queue_formed": 9, + "request_resource_registered": 1, + "request_wait_completed": 1024, + "request_wait_started": 1024 + }, + "rows_generated": 512, + "rows_requested": 512, + "scenario": "final1024_cap8_buffer512_rows512_cols2", + "scheduler_event_count": 8159, + "scheduler_event_counts_by_kind": { + "dependency_ready": 1025, + "group_capped": 983, + "queue_drained": 1, + "ready_enqueued": 1025, + "selected": 1025, + "task_completed": 1025, + "task_lease_acquired": 1025, + "task_lease_released": 1025, + "worker_spawned": 1025 + }, + "skip_health_check": true, + "started_wall_time": 1778788171.2434812, + "status": "success", + "task_trace_count": 1025, + "temperature_omitted": true, + "traffic_shape": { + "bin_seconds": 10.0, + "bins": [ + { + "request_starts": 74, + "start_offset_seconds": 0.0 + }, + { + "request_starts": 71, + "start_offset_seconds": 10.0 + }, + { + "request_starts": 71, + "start_offset_seconds": 20.0 + }, + { + "request_starts": 76, + "start_offset_seconds": 30.0 + }, + { + "request_starts": 82, + "start_offset_seconds": 40.0 + }, + { + "request_starts": 75, + "start_offset_seconds": 50.0 + }, + { + "request_starts": 73, + "start_offset_seconds": 60.0 + }, + { + "request_starts": 68, + "start_offset_seconds": 70.0 + }, + { + "request_starts": 77, + "start_offset_seconds": 80.0 + }, + { + "request_starts": 62, + "start_offset_seconds": 90.0 + }, + { + "request_starts": 59, + "start_offset_seconds": 100.0 + }, + { + "request_starts": 72, + "start_offset_seconds": 110.0 + }, + { + "request_starts": 57, + "start_offset_seconds": 120.0 + }, + { + "request_starts": 59, + "start_offset_seconds": 130.0 + }, + { + "request_starts": 48, + "start_offset_seconds": 140.0 + } + ], + "classification": "steady", + "coefficient_of_variation": 0.13117964539224206, + "first_start_monotonic": 174109.32116575, + "last_start_monotonic": 174256.884750083, + "request_start_count": 1024, + "zero_bin_fraction": 0.0 + }, + "wall_time_seconds": 150.2723574169795 + } +] diff --git a/artifacts/645-live-bench-nano/agent-fan-scale/README.md b/artifacts/645-live-bench-nano/agent-fan-scale/README.md new file mode 100644 index 000000000..868b2c69d --- /dev/null +++ b/artifacts/645-live-bench-nano/agent-fan-scale/README.md @@ -0,0 +1,37 @@ +# Live async fan scale benchmark + +Second-wave large-scale live benchmark lane for async scheduling fan-out/fan-in and buffer-size effects. + +## Configuration + +- Model: `openai/openai/gpt-5-nano` +- Provider: `nvidia-internal` +- Fallback used: `false` +- Temperature: omitted +- `skip_health_check=True` +- `DATA_DESIGNER_ASYNC_ENGINE=1` +- `DATA_DESIGNER_ASYNC_TRACE=1` +- Shared sink: `InMemoryAdmissionEventSink` injected into request admission, model client factory, and scheduler + +## Scenario Summary + +| Scenario | Topology | Buffer | Requests | Wall s | Max in-flight | Max waiters | Wait p50/p95/max s | Failures | +|---|---:|---:|---:|---:|---:|---:|---:|---:| +| `fanout_buffer32` | fanout | 32 | 1024/1024 | 132.24 | 8 | 56 | 6.79/8.97/9.80 | 0 | +| `fanout_buffer256` | fanout | 256 | 1024/1024 | 125.94 | 8 | 57 | 6.58/8.09/9.83 | 0 | +| `fanin_buffer256` | fanin | 256 | 1024/1024 | 141.64 | 8 | 57 | 7.18/8.85/9.62 | 0 | + +## Observations + +- Fan-out buffer 32 and 256 both maintained balanced traffic across all four independent branches. +- Buffer 256 was modestly faster than buffer 32 in this run, while wait distributions were similar. +- Fan-in used 3 upstream LLM columns plus 1 downstream synthesis LLM column for 1024 total model generations. +- Fan-in showed row-level fan-in: downstream synthesis began almost immediately after the first row became ready and interleaved with upstream traffic. +- Request in-flight never exceeded the configured cap of 8 in any scenario. + +## Artifacts + +- `fanout_buffer32`: `/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer32` +- `fanout_buffer256`: `/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer256` +- `fanin_buffer256`: `/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanin_buffer256` +- Combined summary: `/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/combined_summary.json` diff --git a/artifacts/645-live-bench-nano/agent-fan-scale/combined_summary.json b/artifacts/645-live-bench-nano/agent-fan-scale/combined_summary.json new file mode 100644 index 000000000..cab97c802 --- /dev/null +++ b/artifacts/645-live-bench-nano/agent-fan-scale/combined_summary.json @@ -0,0 +1,279 @@ +{ + "all_caps_enforced": true, + "env": { + "DATA_DESIGNER_ASYNC_ENGINE": "1", + "DATA_DESIGNER_ASYNC_TRACE": "1" + }, + "fallback_model": null, + "fallback_used": false, + "max_parallel_requests": 8, + "model_attempted": "openai/openai/gpt-5-nano", + "provider": "nvidia-internal", + "scenario_count": 3, + "skip_health_check": true, + "summaries": [ + { + "artifacts": { + "dataset_preview": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer32/dataset_preview.json", + "flow_buckets": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer32/flow_buckets.json", + "request_events": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer32/request_events.jsonl", + "summary": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer32/summary.json", + "task_traces_csv": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer32/task_traces.csv", + "task_traces_json": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer32/task_traces.json", + "timeline": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer32/timeline.jsonl" + }, + "buffer_size": 32, + "env": { + "DATA_DESIGNER_ASYNC_ENGINE": "1", + "DATA_DESIGNER_ASYNC_TRACE": "1" + }, + "error": null, + "expected_model_generations": 1024, + "fanin_delay_stats": null, + "max_parallel_requests": 8, + "model": "openai/openai/gpt-5-nano", + "model_usage": { + "openai/openai/gpt-5-nano": { + "input_tokens": 30720, + "output_tokens": 8192, + "successful_requests": 1024, + "total_tokens": 38912 + } + }, + "name": "fanout_buffer32", + "num_records": 256, + "provider": "nvidia-internal", + "records": 256, + "request_stats": { + "cap": 8, + "cap_violations": [], + "failure_completions": 0, + "final_pressure": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 174086.687923416, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 8, + "effective_max": 8, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 7189, + "waiters": 0 + }, + "max_in_flight": 8, + "max_waiters": 56, + "model_request_completions": 1024, + "model_request_starts": 1024, + "starts_by_column": { + "branch_0": 256, + "branch_1": 256, + "branch_2": 256, + "branch_3": 256 + }, + "success_completions": 1024, + "wait_summary": { + "count": 1024, + "max_s": 9.798331875004806, + "p50_s": 6.790842978982255, + "p95_s": 8.969159151802888 + } + }, + "skip_health_check": true, + "started_wall": "2026-05-14T15:46:58-0400", + "status": "success", + "task_trace_count": 1032, + "temperature_omitted": true, + "topology": "fanout", + "wall_time_s": 132.23862399999052 + }, + { + "artifacts": { + "dataset_preview": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer256/dataset_preview.json", + "flow_buckets": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer256/flow_buckets.json", + "request_events": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer256/request_events.jsonl", + "summary": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer256/summary.json", + "task_traces_csv": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer256/task_traces.csv", + "task_traces_json": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer256/task_traces.json", + "timeline": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer256/timeline.jsonl" + }, + "buffer_size": 256, + "env": { + "DATA_DESIGNER_ASYNC_ENGINE": "1", + "DATA_DESIGNER_ASYNC_TRACE": "1" + }, + "error": null, + "expected_model_generations": 1024, + "fanin_delay_stats": null, + "max_parallel_requests": 8, + "model": "openai/openai/gpt-5-nano", + "model_usage": { + "openai/openai/gpt-5-nano": { + "input_tokens": 30720, + "output_tokens": 8192, + "successful_requests": 1024, + "total_tokens": 38912 + } + }, + "name": "fanout_buffer256", + "num_records": 256, + "provider": "nvidia-internal", + "records": 256, + "request_stats": { + "cap": 8, + "cap_violations": [], + "failure_completions": 0, + "final_pressure": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 174222.467629416, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 8, + "effective_max": 8, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 7189, + "waiters": 0 + }, + "max_in_flight": 8, + "max_waiters": 57, + "model_request_completions": 1024, + "model_request_starts": 1024, + "starts_by_column": { + "branch_0": 256, + "branch_1": 256, + "branch_2": 256, + "branch_3": 256 + }, + "success_completions": 1024, + "wait_summary": { + "count": 1024, + "max_s": 9.826479708019178, + "p50_s": 6.583455063009751, + "p95_s": 8.091820146406826 + } + }, + "skip_health_check": true, + "started_wall": "2026-05-14T15:49:20-0400", + "status": "success", + "task_trace_count": 1025, + "temperature_omitted": true, + "topology": "fanout", + "wall_time_s": 125.94064362501376 + }, + { + "artifacts": { + "dataset_preview": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanin_buffer256/dataset_preview.json", + "flow_buckets": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanin_buffer256/flow_buckets.json", + "request_events": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanin_buffer256/request_events.jsonl", + "summary": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanin_buffer256/summary.json", + "task_traces_csv": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanin_buffer256/task_traces.csv", + "task_traces_json": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanin_buffer256/task_traces.json", + "timeline": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanin_buffer256/timeline.jsonl" + }, + "buffer_size": 256, + "env": { + "DATA_DESIGNER_ASYNC_ENGINE": "1", + "DATA_DESIGNER_ASYNC_TRACE": "1" + }, + "error": null, + "expected_model_generations": 1024, + "fanin_delay_stats": { + "downstream_dispatch_delay_after_row_upstream_complete_s": { + "max": 3.2125449589802884, + "p50": 0.23460531298769638, + "p95": 1.281055572500918 + }, + "downstream_first_start_after_first_row_ready_s": 0.006151334004243836, + "downstream_start_delay_after_row_upstream_complete_s": { + "max": 3.212546791997738, + "p50": 0.23460716698900796, + "p95": 1.281056812236784 + }, + "rows_with_delay": 256 + }, + "max_parallel_requests": 8, + "model": "openai/openai/gpt-5-nano", + "model_usage": { + "openai/openai/gpt-5-nano": { + "input_tokens": 29184, + "output_tokens": 8192, + "successful_requests": 1024, + "total_tokens": 37376 + } + }, + "name": "fanin_buffer256", + "num_records": 256, + "provider": "nvidia-internal", + "records": 256, + "request_stats": { + "cap": 8, + "cap_violations": [], + "failure_completions": 0, + "final_pressure": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 174371.645033458, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 8, + "effective_max": 8, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 7189, + "waiters": 0 + }, + "max_in_flight": 8, + "max_waiters": 57, + "model_request_completions": 1024, + "model_request_starts": 1024, + "starts_by_column": { + "synthesis": 256, + "up_0": 256, + "up_1": 256, + "up_2": 256 + }, + "success_completions": 1024, + "wait_summary": { + "count": 1024, + "max_s": 9.619726165983593, + "p50_s": 7.178008854491054, + "p95_s": 8.853222151745285 + } + }, + "skip_health_check": true, + "started_wall": "2026-05-14T15:51:33-0400", + "status": "success", + "task_trace_count": 1025, + "temperature_omitted": true, + "topology": "fanin", + "wall_time_s": 141.6412126670184 + } + ], + "temperature_omitted": true, + "total_failures": 0, + "total_model_request_completions": 3072, + "total_model_request_starts": 3072 +} diff --git a/artifacts/645-live-bench-nano/agent-fan/README.md b/artifacts/645-live-bench-nano/agent-fan/README.md new file mode 100644 index 000000000..458e05ead --- /dev/null +++ b/artifacts/645-live-bench-nano/agent-fan/README.md @@ -0,0 +1,4 @@ +# Live async fan benchmark + +- fanout_rows32_cols4_cap6: success=True, rows=32, wall_time_s=33.839, requests=128, max_in_flight=6/6, queue_formed=7, rate_limits=0 +- fanin_rows24_up3_down1_cap4: success=True, rows=24, wall_time_s=43.434, requests=96, max_in_flight=4/4, queue_formed=5, rate_limits=0 diff --git a/artifacts/645-live-bench-nano/agent-fan/combined_summary.json b/artifacts/645-live-bench-nano/agent-fan/combined_summary.json new file mode 100644 index 000000000..d3eb8ab24 --- /dev/null +++ b/artifacts/645-live-bench-nano/agent-fan/combined_summary.json @@ -0,0 +1,161 @@ +{ + "endpoint": "https://inference-api.nvidia.com/v1", + "env": { + "DATA_DESIGNER_ASYNC_ENGINE": "1", + "DATA_DESIGNER_ASYNC_TRACE": "1" + }, + "model": "openai/openai/gpt-5-nano", + "provider": "nvidia-internal", + "summaries": [ + { + "cap_enforced": true, + "error": null, + "failure_count": 0, + "final_pressure": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 173673.30631075, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 6, + "effective_max": 6, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 913, + "waiters": 0 + }, + "max_observed_request_in_flight": 6, + "max_parallel_requests": 6, + "max_tokens": 64, + "max_waiters": 43, + "model": "openai/openai/gpt-5-nano", + "model_usage": null, + "provider": "nvidia-internal", + "queue_drained": 7, + "queue_formed": 7, + "rate_limit_count": 0, + "request_event_counts": { + "model_request_completed": 128, + "model_request_started": 128, + "request_effective_cap_changed": 1, + "request_lease_acquired": 128, + "request_lease_released": 128, + "request_queue_drained": 7, + "request_queue_formed": 7, + "request_resource_registered": 1, + "request_wait_completed": 128, + "request_wait_started": 128 + }, + "request_events_total": 784, + "rows_requested": 32, + "scenario": "fanout_rows32_cols4_cap6", + "scheduler_event_counts": { + "dependency_ready": 129, + "group_capped": 79, + "queue_drained": 2, + "ready_enqueued": 129, + "selected": 129, + "task_completed": 129, + "task_lease_acquired": 129, + "task_lease_released": 129, + "worker_spawned": 129 + }, + "scheduler_events_total": 984, + "skip_health_check": true, + "success": true, + "success_count": 128, + "task_trace_count": 129, + "temperature_omitted": true, + "wall_time_s": 33.83901049999986 + }, + { + "cap_enforced": true, + "error": null, + "failure_count": 0, + "fanin_timing": { + "downstream_ready_after_first_three_upstream_s": 0.15985870899748988, + "first_downstream_done_s": 14.99186962499516, + "first_downstream_ready_s": 1.7582419590034988, + "first_downstream_start_s": 1.7586683339904994, + "first_three_upstream_completion_max_s": 1.598383250006009, + "trace_columns": { + "bench_id": 1, + "downstream_synthesis": 24, + "upstream_1": 24, + "upstream_2": 24, + "upstream_3": 24 + } + }, + "final_pressure": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 173716.935575458, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 4, + "effective_max": 4, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 685, + "waiters": 0 + }, + "max_observed_request_in_flight": 4, + "max_parallel_requests": 4, + "max_tokens": 64, + "max_waiters": 29, + "model": "openai/openai/gpt-5-nano", + "model_usage": null, + "provider": "nvidia-internal", + "queue_drained": 5, + "queue_formed": 5, + "rate_limit_count": 0, + "request_event_counts": { + "model_request_completed": 96, + "model_request_started": 96, + "request_effective_cap_changed": 1, + "request_lease_acquired": 96, + "request_lease_released": 96, + "request_queue_drained": 5, + "request_queue_formed": 5, + "request_resource_registered": 1, + "request_wait_completed": 96, + "request_wait_started": 96 + }, + "request_events_total": 588, + "rows_requested": 24, + "scenario": "fanin_rows24_up3_down1_cap4", + "scheduler_event_counts": { + "dependency_ready": 97, + "group_capped": 54, + "queue_drained": 11, + "ready_enqueued": 97, + "selected": 97, + "task_completed": 97, + "task_lease_acquired": 97, + "task_lease_released": 97, + "worker_spawned": 97 + }, + "scheduler_events_total": 744, + "skip_health_check": true, + "success": true, + "success_count": 96, + "task_trace_count": 97, + "temperature_omitted": true, + "wall_time_s": 43.433844124985626 + } + ] +} diff --git a/artifacts/645-live-bench-nano/agent-mixed-pipeline/README.md b/artifacts/645-live-bench-nano/agent-mixed-pipeline/README.md new file mode 100644 index 000000000..4f59d0939 --- /dev/null +++ b/artifacts/645-live-bench-nano/agent-mixed-pipeline/README.md @@ -0,0 +1,12 @@ +# Mixed-model async scheduling live benchmark + +Rows: 512; model generations per scenario: 1024. +Provider: `nvidia-internal`. +Upstream: `openai/openai/gpt-5.5` cap 4, max_tokens 96. +Downstream: `openai/openai/gpt-5-nano` cap 8, max_tokens 32. +Temperature omitted for both model configs. Health checks skipped. + +| Scenario | Buffer | Success | Wall s | Heavy starts | Nano starts | Overlap s | Idle p50/p95/max s | Max in-flight | Max waiters | Diagnosis | Cap violation | +|---|---:|---|---:|---:|---:|---:|---|---|---|---|---| +| mixed_rows512_buf256_heavy4_nano8 | 256 | True | 366.44 | 512 | 512 | 329.37 | 0.037/0.071/0.133 | {'openai/openai/gpt-5-nano': 6, 'openai/openai/gpt-5.5': 4} | {'openai/openai/gpt-5-nano': 1, 'openai/openai/gpt-5.5': 252} | steady_interleaving | {'openai/openai/gpt-5-nano': False, 'openai/openai/gpt-5.5': False} | +| mixed_rows512_buf32_heavy4_nano8 | 32 | True | 368.46 | 512 | 512 | 321.33 | 0.001/0.005/0.053 | {'openai/openai/gpt-5-nano': 6, 'openai/openai/gpt-5.5': 4} | {'openai/openai/gpt-5-nano': 1, 'openai/openai/gpt-5.5': 92} | steady_interleaving | {'openai/openai/gpt-5-nano': False, 'openai/openai/gpt-5.5': False} | diff --git a/artifacts/645-live-bench-nano/agent-mixed-pipeline/combined_summary.json b/artifacts/645-live-bench-nano/agent-mixed-pipeline/combined_summary.json new file mode 100644 index 000000000..2c14d75ac --- /dev/null +++ b/artifacts/645-live-bench-nano/agent-mixed-pipeline/combined_summary.json @@ -0,0 +1,1206 @@ +{ + "buffers": [ + 32, + 256 + ], + "models": { + "downstream": "openai/openai/gpt-5-nano", + "upstream": "openai/openai/gpt-5.5" + }, + "provider": "nvidia-internal", + "rows": 512, + "summaries": [ + { + "artifacts": { + "flow_buckets": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf256_heavy4_nano8/flow_buckets.json", + "idle_times": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf256_heavy4_nano8/idle_times.json", + "request_events": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf256_heavy4_nano8/request_events.jsonl", + "summary": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf256_heavy4_nano8/summary.json", + "task_traces_csv": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf256_heavy4_nano8/task_traces.csv", + "task_traces_json": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf256_heavy4_nano8/task_traces.json", + "timeline": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf256_heavy4_nano8/timeline.jsonl" + }, + "buffer_size": 256, + "cap_violations": { + "openai/openai/gpt-5-nano": false, + "openai/openai/gpt-5.5": false + }, + "configured_caps": { + "openai/openai/gpt-5-nano": 8, + "openai/openai/gpt-5.5": 4 + }, + "error": null, + "expected_model_generations": 1024, + "final_pressure_by_model": { + "openai/openai/gpt-5-nano": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 174723.571601541, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 8, + "effective_max": 8, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 7194, + "waiters": 0 + }, + "openai/openai/gpt-5.5": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 174722.552245541, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 4, + "effective_max": 4, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5.5", + "provider_name": "nvidia-internal" + }, + "sequence": 7183, + "waiters": 0 + } + }, + "idle_times": { + "count": 512, + "seconds": { + "max": 0.1327779580024071, + "p50": 0.037426437498652376, + "p95": 0.07076091601629741 + } + }, + "max_tokens": { + "downstream": 32, + "upstream": 96 + }, + "max_waiters_by_model": { + "openai/openai/gpt-5-nano": 1, + "openai/openai/gpt-5.5": 252 + }, + "model_completion_outcomes": { + "success": 1024 + }, + "models": { + "downstream": "openai/openai/gpt-5-nano", + "upstream": "openai/openai/gpt-5.5" + }, + "provider": "nvidia-internal", + "request_event_counts": { + "model_request_completed": 1024, + "model_request_started": 1024, + "request_effective_cap_changed": 2, + "request_lease_acquired": 1024, + "request_lease_released": 1024, + "request_queue_drained": 10, + "request_queue_formed": 10, + "request_resource_registered": 2, + "request_wait_completed": 1024, + "request_wait_started": 1024 + }, + "request_wait_seconds_by_model": { + "openai/openai/gpt-5-nano": { + "count": 512, + "max": 0.0022010419925209135, + "p50": 0.00043241700041107833, + "p95": 0.0007573750044684857 + }, + "openai/openai/gpt-5.5": { + "count": 4, + "max": 4.991699825040996e-05, + "p50": 3.760399704333395e-05, + "p95": 4.991699825040996e-05 + } + }, + "rows": 512, + "scenario": "mixed_rows512_buf256_heavy4_nano8", + "start_regularities_by_model_column": { + "openai/openai/gpt-5-nano::nano_summary": { + "max_starts_per_window": 9, + "mean_starts_per_window": 6.918918918918919, + "stdev_starts_per_window": 1.3631913743695667, + "window_count": 74 + }, + "openai/openai/gpt-5.5::heavy_analysis": { + "max_starts_per_window": 9, + "mean_starts_per_window": 7.013698630136986, + "stdev_starts_per_window": 1.1406937409077287, + "window_count": 73 + } + }, + "success": true, + "task_failure_count": 0, + "task_success_count": 1026, + "task_trace_count": 1026, + "traffic": { + "active_intervals_by_model": { + "openai/openai/gpt-5-nano": [ + { + "duration_s": 9.394017957994947, + "end": 174370.794954458, + "start": 174361.4009365 + }, + { + "duration_s": 6.279662167013157, + "end": 174377.80422975, + "start": 174371.524567583 + }, + { + "duration_s": 4.624943999981042, + "end": 174382.750991875, + "start": 174378.126047875 + }, + { + "duration_s": 2.4475870419992134, + "end": 174385.2531145, + "start": 174382.805527458 + }, + { + "duration_s": 5.486310500011314, + "end": 174390.876632416, + "start": 174385.390321916 + }, + { + "duration_s": 2.1258456670038868, + "end": 174393.284984083, + "start": 174391.159138416 + }, + { + "duration_s": 2.4145924169861246, + "end": 174395.824191083, + "start": 174393.409598666 + }, + { + "duration_s": 4.683905292011332, + "end": 174400.522879875, + "start": 174395.838974583 + }, + { + "duration_s": 6.695771667000372, + "end": 174407.753622, + "start": 174401.057850333 + }, + { + "duration_s": 12.101943292014766, + "end": 174420.276835083, + "start": 174408.174891791 + }, + { + "duration_s": 2.3032693749992177, + "end": 174422.809576291, + "start": 174420.506306916 + }, + { + "duration_s": 1.7844039170013275, + "end": 174424.964499, + "start": 174423.180095083 + }, + { + "duration_s": 1.8883888339914847, + "end": 174427.57692025, + "start": 174425.688531416 + }, + { + "duration_s": 2.4874935419938993, + "end": 174430.715748208, + "start": 174428.228254666 + }, + { + "duration_s": 3.9159133749781176, + "end": 174435.1747095, + "start": 174431.258796125 + }, + { + "duration_s": 1.2698066250013653, + "end": 174437.295050958, + "start": 174436.025244333 + }, + { + "duration_s": 2.917881875007879, + "end": 174440.694206708, + "start": 174437.776324833 + }, + { + "duration_s": 1.5008295409788843, + "end": 174442.508677416, + "start": 174441.007847875 + }, + { + "duration_s": 8.853815541981021, + "end": 174452.015937083, + "start": 174443.162121541 + }, + { + "duration_s": 5.434969583002385, + "end": 174457.869136291, + "start": 174452.434166708 + }, + { + "duration_s": 1.6006494169996586, + "end": 174460.3698885, + "start": 174458.769239083 + }, + { + "duration_s": 2.217115499981446, + "end": 174463.523851291, + "start": 174461.306735791 + }, + { + "duration_s": 1.3022618750110269, + "end": 174465.074833333, + "start": 174463.772571458 + }, + { + "duration_s": 11.245732541981852, + "end": 174476.347735208, + "start": 174465.102002666 + }, + { + "duration_s": 11.11303645800217, + "end": 174487.664771166, + "start": 174476.551734708 + }, + { + "duration_s": 1.0640465420146938, + "end": 174488.755994583, + "start": 174487.691948041 + }, + { + "duration_s": 4.047189292003168, + "end": 174493.042717208, + "start": 174488.995527916 + }, + { + "duration_s": 6.003170917014359, + "end": 174499.569978, + "start": 174493.566807083 + }, + { + "duration_s": 30.606017333018826, + "end": 174530.209833166, + "start": 174499.603815833 + }, + { + "duration_s": 4.3893592079984955, + "end": 174534.735890791, + "start": 174530.346531583 + }, + { + "duration_s": 22.670841541985283, + "end": 174558.074752958, + "start": 174535.403911416 + }, + { + "duration_s": 5.8687200830026995, + "end": 174564.365196791, + "start": 174558.496476708 + }, + { + "duration_s": 2.411567165981978, + "end": 174567.436270666, + "start": 174565.0247035 + }, + { + "duration_s": 7.105816458992194, + "end": 174574.7820415, + "start": 174567.676225041 + }, + { + "duration_s": 2.618370500014862, + "end": 174577.861389416, + "start": 174575.243018916 + }, + { + "duration_s": 3.8683478330203798, + "end": 174581.970612291, + "start": 174578.102264458 + }, + { + "duration_s": 3.836351542006014, + "end": 174585.889124083, + "start": 174582.052772541 + }, + { + "duration_s": 2.1516553330002353, + "end": 174588.062163708, + "start": 174585.910508375 + }, + { + "duration_s": 3.000816832995042, + "end": 174591.333445958, + "start": 174588.332629125 + }, + { + "duration_s": 3.94905979197938, + "end": 174595.677885583, + "start": 174591.728825791 + }, + { + "duration_s": 9.056580917007523, + "end": 174605.4722525, + "start": 174596.415671583 + }, + { + "duration_s": 1.4633029579999857, + "end": 174607.453311291, + "start": 174605.990008333 + }, + { + "duration_s": 2.925129541021306, + "end": 174611.478714416, + "start": 174608.553584875 + }, + { + "duration_s": 1.3310756249993574, + "end": 174612.897840875, + "start": 174611.56676525 + }, + { + "duration_s": 5.439490582997678, + "end": 174618.446302041, + "start": 174613.006811458 + }, + { + "duration_s": 1.412131417018827, + "end": 174619.874751958, + "start": 174618.462620541 + }, + { + "duration_s": 6.178748042002553, + "end": 174627.271969333, + "start": 174621.093221291 + }, + { + "duration_s": 2.437078458024189, + "end": 174629.909232333, + "start": 174627.472153875 + }, + { + "duration_s": 4.673200999997789, + "end": 174634.708177916, + "start": 174630.034976916 + }, + { + "duration_s": 0.7527447500033304, + "end": 174635.565301166, + "start": 174634.812556416 + }, + { + "duration_s": 2.2939525000110734, + "end": 174637.958529166, + "start": 174635.664576666 + }, + { + "duration_s": 1.8510925419977866, + "end": 174639.99378175, + "start": 174638.142689208 + }, + { + "duration_s": 9.924431749997893, + "end": 174650.052930833, + "start": 174640.128499083 + }, + { + "duration_s": 1.1489215829933528, + "end": 174651.604184958, + "start": 174650.455263375 + }, + { + "duration_s": 4.982904500007862, + "end": 174657.416232708, + "start": 174652.433328208 + }, + { + "duration_s": 2.831311124988133, + "end": 174660.704992916, + "start": 174657.873681791 + }, + { + "duration_s": 1.89609679201385, + "end": 174662.64229175, + "start": 174660.746194958 + }, + { + "duration_s": 2.043272707989672, + "end": 174664.906875833, + "start": 174662.863603125 + }, + { + "duration_s": 1.4234511249815114, + "end": 174666.620862208, + "start": 174665.197411083 + }, + { + "duration_s": 1.5424332080001477, + "end": 174669.211621083, + "start": 174667.669187875 + }, + { + "duration_s": 1.776593624992529, + "end": 174671.772575833, + "start": 174669.995982208 + }, + { + "duration_s": 5.1787199590180535, + "end": 174677.11717325, + "start": 174671.938453291 + }, + { + "duration_s": 9.867947749997256, + "end": 174687.204336416, + "start": 174677.336388666 + }, + { + "duration_s": 2.191539166989969, + "end": 174689.708712125, + "start": 174687.517172958 + }, + { + "duration_s": 1.9892010840121657, + "end": 174691.854132625, + "start": 174689.864931541 + }, + { + "duration_s": 3.7240812920208555, + "end": 174696.282378083, + "start": 174692.558296791 + }, + { + "duration_s": 1.457416541990824, + "end": 174698.701261708, + "start": 174697.243845166 + }, + { + "duration_s": 1.5992781250097323, + "end": 174700.987046166, + "start": 174699.387768041 + }, + { + "duration_s": 3.580902415997116, + "end": 174705.456952416, + "start": 174701.87605 + }, + { + "duration_s": 1.967339291004464, + "end": 174707.851803166, + "start": 174705.884463875 + }, + { + "duration_s": 1.3390686249767896, + "end": 174710.085239583, + "start": 174708.746170958 + }, + { + "duration_s": 2.8785799169854727, + "end": 174713.554430833, + "start": 174710.675850916 + }, + { + "duration_s": 1.014782042009756, + "end": 174715.853167458, + "start": 174714.838385416 + }, + { + "duration_s": 2.3982557090057526, + "end": 174718.521211, + "start": 174716.122955291 + }, + { + "duration_s": 1.0727456249878742, + "end": 174719.631981208, + "start": 174718.559235583 + }, + { + "duration_s": 3.062694416003069, + "end": 174723.571634791, + "start": 174720.508940375 + } + ], + "openai/openai/gpt-5.5": [ + { + "duration_s": 364.3234237919969, + "end": 174722.552268083, + "start": 174358.228844291 + } + ] + }, + "completion_count_by_model": { + "openai/openai/gpt-5-nano": 512, + "openai/openai/gpt-5.5": 512 + }, + "max_in_flight_by_model": { + "openai/openai/gpt-5-nano": 6, + "openai/openai/gpt-5.5": 4 + }, + "max_start_gap_seconds_by_model": { + "openai/openai/gpt-5-nano": 2.4862680829828605, + "openai/openai/gpt-5.5": 3.143693332996918 + }, + "overlap_duration_seconds": 329.36860837900895, + "start_count_by_model": { + "openai/openai/gpt-5-nano": 512, + "openai/openai/gpt-5.5": 512 + } + }, + "wall_time_seconds": 366.4424302089901, + "wave_diagnosis": "steady_interleaving" + }, + { + "artifacts": { + "flow_buckets": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf32_heavy4_nano8/flow_buckets.json", + "idle_times": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf32_heavy4_nano8/idle_times.json", + "request_events": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf32_heavy4_nano8/request_events.jsonl", + "summary": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf32_heavy4_nano8/summary.json", + "task_traces_csv": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf32_heavy4_nano8/task_traces.csv", + "task_traces_json": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf32_heavy4_nano8/task_traces.json", + "timeline": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf32_heavy4_nano8/timeline.jsonl" + }, + "buffer_size": 32, + "cap_violations": { + "openai/openai/gpt-5-nano": false, + "openai/openai/gpt-5.5": false + }, + "configured_caps": { + "openai/openai/gpt-5-nano": 8, + "openai/openai/gpt-5.5": 4 + }, + "error": null, + "expected_model_generations": 1024, + "final_pressure_by_model": { + "openai/openai/gpt-5-nano": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 174356.357171125, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 8, + "effective_max": 8, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 7194, + "waiters": 0 + }, + "openai/openai/gpt-5.5": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 174355.489251416, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 4, + "effective_max": 4, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5.5", + "provider_name": "nvidia-internal" + }, + "sequence": 7183, + "waiters": 0 + } + }, + "idle_times": { + "count": 512, + "seconds": { + "max": 0.052871040999889374, + "p50": 0.0008464374986942858, + "p95": 0.004843625007197261 + } + }, + "max_tokens": { + "downstream": 32, + "upstream": 96 + }, + "max_waiters_by_model": { + "openai/openai/gpt-5-nano": 1, + "openai/openai/gpt-5.5": 92 + }, + "model_completion_outcomes": { + "success": 1024 + }, + "models": { + "downstream": "openai/openai/gpt-5-nano", + "upstream": "openai/openai/gpt-5.5" + }, + "provider": "nvidia-internal", + "request_event_counts": { + "model_request_completed": 1024, + "model_request_started": 1024, + "request_effective_cap_changed": 2, + "request_lease_acquired": 1024, + "request_lease_released": 1024, + "request_queue_drained": 10, + "request_queue_formed": 10, + "request_resource_registered": 2, + "request_wait_completed": 1024, + "request_wait_started": 1024 + }, + "request_wait_seconds_by_model": { + "openai/openai/gpt-5-nano": { + "count": 512, + "max": 0.0017384170205332339, + "p50": 0.0003472709940979257, + "p95": 0.0009644999809097499 + }, + "openai/openai/gpt-5.5": { + "count": 4, + "max": 3.283299156464636e-05, + "p50": 2.229199162684381e-05, + "p95": 3.283299156464636e-05 + } + }, + "rows": 512, + "scenario": "mixed_rows512_buf32_heavy4_nano8", + "start_regularities_by_model_column": { + "openai/openai/gpt-5-nano::nano_summary": { + "max_starts_per_window": 10, + "mean_starts_per_window": 6.918918918918919, + "stdev_starts_per_window": 1.3331202654203809, + "window_count": 74 + }, + "openai/openai/gpt-5.5::heavy_analysis": { + "max_starts_per_window": 10, + "mean_starts_per_window": 6.918918918918919, + "stdev_starts_per_window": 1.4864864864864864, + "window_count": 74 + } + }, + "success": true, + "task_failure_count": 0, + "task_success_count": 1040, + "task_trace_count": 1040, + "traffic": { + "active_intervals_by_model": { + "openai/openai/gpt-5-nano": [ + { + "duration_s": 1.7392419999814592, + "end": 173993.193507083, + "start": 173991.454265083 + }, + { + "duration_s": 3.906982999993488, + "end": 173997.875538375, + "start": 173993.968555375 + }, + { + "duration_s": 1.4602454580017366, + "end": 173999.885431708, + "start": 173998.42518625 + }, + { + "duration_s": 1.1126019999792334, + "end": 174001.052090958, + "start": 173999.939488958 + }, + { + "duration_s": 0.9724255420151167, + "end": 174002.108186875, + "start": 174001.135761333 + }, + { + "duration_s": 8.741101042018272, + "end": 174012.133871333, + "start": 174003.392770291 + }, + { + "duration_s": 2.17999662499642, + "end": 174014.45498975, + "start": 174012.274993125 + }, + { + "duration_s": 2.046032207988901, + "end": 174016.623302458, + "start": 174014.57727025 + }, + { + "duration_s": 1.7173061250068713, + "end": 174019.061701666, + "start": 174017.344395541 + }, + { + "duration_s": 2.697560416010674, + "end": 174022.290488541, + "start": 174019.592928125 + }, + { + "duration_s": 1.4170709589961916, + "end": 174024.199792875, + "start": 174022.782721916 + }, + { + "duration_s": 1.1734709999873303, + "end": 174025.844737583, + "start": 174024.671266583 + }, + { + "duration_s": 12.310245667002164, + "end": 174039.070432083, + "start": 174026.760186416 + }, + { + "duration_s": 1.5059390839887783, + "end": 174041.109286625, + "start": 174039.603347541 + }, + { + "duration_s": 1.7366176249925047, + "end": 174044.259897041, + "start": 174042.523279416 + }, + { + "duration_s": 2.5285517500014976, + "end": 174047.0339175, + "start": 174044.50536575 + }, + { + "duration_s": 2.0299618749995716, + "end": 174049.245588291, + "start": 174047.215626416 + }, + { + "duration_s": 0.8145373340230435, + "end": 174050.31337325, + "start": 174049.498835916 + }, + { + "duration_s": 11.927282291988377, + "end": 174062.2616535, + "start": 174050.334371208 + }, + { + "duration_s": 1.1666754999896511, + "end": 174063.489532416, + "start": 174062.322856916 + }, + { + "duration_s": 0.8380858330056071, + "end": 174064.376657541, + "start": 174063.538571708 + }, + { + "duration_s": 1.0648002919915598, + "end": 174065.564689458, + "start": 174064.499889166 + }, + { + "duration_s": 0.8665000000037253, + "end": 174066.739350583, + "start": 174065.872850583 + }, + { + "duration_s": 4.360133332986152, + "end": 174071.506664833, + "start": 174067.1465315 + }, + { + "duration_s": 1.62389258298208, + "end": 174073.437612916, + "start": 174071.813720333 + }, + { + "duration_s": 5.9206377920054365, + "end": 174080.13428525, + "start": 174074.213647458 + }, + { + "duration_s": 1.8886292499955744, + "end": 174082.870294125, + "start": 174080.981664875 + }, + { + "duration_s": 2.0180791659804527, + "end": 174086.151302416, + "start": 174084.13322325 + }, + { + "duration_s": 1.7399675409833435, + "end": 174088.160357166, + "start": 174086.420389625 + }, + { + "duration_s": 0.8051585830107797, + "end": 174089.552694916, + "start": 174088.747536333 + }, + { + "duration_s": 0.8353897079941817, + "end": 174090.541251041, + "start": 174089.705861333 + }, + { + "duration_s": 9.873239584005205, + "end": 174100.8587855, + "start": 174090.985545916 + }, + { + "duration_s": 7.0381785419886, + "end": 174108.155404375, + "start": 174101.117225833 + }, + { + "duration_s": 6.935596082999837, + "end": 174115.872906583, + "start": 174108.9373105 + }, + { + "duration_s": 13.120881374983583, + "end": 174129.313358375, + "start": 174116.192477 + }, + { + "duration_s": 1.1449434999958612, + "end": 174130.684390416, + "start": 174129.539446916 + }, + { + "duration_s": 0.8076670829905197, + "end": 174131.768864208, + "start": 174130.961197125 + }, + { + "duration_s": 2.0355630410194863, + "end": 174133.841675416, + "start": 174131.806112375 + }, + { + "duration_s": 13.335706165991724, + "end": 174147.761271291, + "start": 174134.425565125 + }, + { + "duration_s": 0.889271167019615, + "end": 174148.745910958, + "start": 174147.856639791 + }, + { + "duration_s": 1.5138824169989675, + "end": 174150.6875005, + "start": 174149.173618083 + }, + { + "duration_s": 2.271901208005147, + "end": 174154.046634041, + "start": 174151.774732833 + }, + { + "duration_s": 4.069246041006409, + "end": 174158.159593666, + "start": 174154.090347625 + }, + { + "duration_s": 0.9442274169996381, + "end": 174159.6558195, + "start": 174158.711592083 + }, + { + "duration_s": 17.081960957992123, + "end": 174176.876705083, + "start": 174159.794744125 + }, + { + "duration_s": 1.7502368749992456, + "end": 174179.273249166, + "start": 174177.523012291 + }, + { + "duration_s": 1.699702291021822, + "end": 174181.391542916, + "start": 174179.691840625 + }, + { + "duration_s": 1.5822077500051819, + "end": 174183.810419333, + "start": 174182.228211583 + }, + { + "duration_s": 1.4197293750185054, + "end": 174186.283567875, + "start": 174184.8638385 + }, + { + "duration_s": 1.179858334013261, + "end": 174187.817298, + "start": 174186.637439666 + }, + { + "duration_s": 2.0357941670226865, + "end": 174190.304439958, + "start": 174188.268645791 + }, + { + "duration_s": 6.856323167012306, + "end": 174197.367766083, + "start": 174190.511442916 + }, + { + "duration_s": 0.8828057919745333, + "end": 174198.933304958, + "start": 174198.050499166 + }, + { + "duration_s": 5.902916416001972, + "end": 174204.856911166, + "start": 174198.95399475 + }, + { + "duration_s": 1.197503167000832, + "end": 174206.44524625, + "start": 174205.247743083 + }, + { + "duration_s": 2.1656562910065986, + "end": 174209.298966541, + "start": 174207.13331025 + }, + { + "duration_s": 8.359825417021057, + "end": 174218.04774375, + "start": 174209.687918333 + }, + { + "duration_s": 1.562762790999841, + "end": 174220.208167791, + "start": 174218.645405 + }, + { + "duration_s": 0.9469654579879716, + "end": 174221.662930541, + "start": 174220.715965083 + }, + { + "duration_s": 4.41232870798558, + "end": 174226.132287458, + "start": 174221.71995875 + }, + { + "duration_s": 2.562057749979431, + "end": 174229.156908958, + "start": 174226.594851208 + }, + { + "duration_s": 1.8489006250165403, + "end": 174231.132239416, + "start": 174229.283338791 + }, + { + "duration_s": 8.572871250013122, + "end": 174240.371292666, + "start": 174231.798421416 + }, + { + "duration_s": 2.214653749979334, + "end": 174242.843862708, + "start": 174240.629208958 + }, + { + "duration_s": 1.8244840829866007, + "end": 174244.712724458, + "start": 174242.888240375 + }, + { + "duration_s": 3.9903303330065683, + "end": 174249.032017333, + "start": 174245.041687 + }, + { + "duration_s": 4.035728415998165, + "end": 174254.182838416, + "start": 174250.14711 + }, + { + "duration_s": 2.169388667010935, + "end": 174256.930428958, + "start": 174254.761040291 + }, + { + "duration_s": 1.8179866249847692, + "end": 174259.188476208, + "start": 174257.370489583 + }, + { + "duration_s": 3.3168897920113523, + "end": 174262.889609708, + "start": 174259.572719916 + }, + { + "duration_s": 2.8455557500128634, + "end": 174266.036189, + "start": 174263.19063325 + }, + { + "duration_s": 2.374892624997301, + "end": 174268.458841958, + "start": 174266.083949333 + }, + { + "duration_s": 8.159147540980484, + "end": 174276.709620791, + "start": 174268.55047325 + }, + { + "duration_s": 6.312752249999903, + "end": 174283.092960833, + "start": 174276.780208583 + }, + { + "duration_s": 2.1540549579949584, + "end": 174285.345789958, + "start": 174283.191735 + }, + { + "duration_s": 2.0611925000266638, + "end": 174288.524819, + "start": 174286.4636265 + }, + { + "duration_s": 1.8585902089835145, + "end": 174290.512703625, + "start": 174288.654113416 + }, + { + "duration_s": 1.804813541995827, + "end": 174293.237821333, + "start": 174291.433007791 + }, + { + "duration_s": 1.1622461669903714, + "end": 174295.183344833, + "start": 174294.021098666 + }, + { + "duration_s": 6.357775959011633, + "end": 174302.370211, + "start": 174296.012435041 + }, + { + "duration_s": 5.376596332993358, + "end": 174307.766399916, + "start": 174302.389803583 + }, + { + "duration_s": 2.1133893340011127, + "end": 174310.197679625, + "start": 174308.084290291 + }, + { + "duration_s": 1.4733228330151178, + "end": 174312.485081916, + "start": 174311.011759083 + }, + { + "duration_s": 1.4972249160055071, + "end": 174314.348660041, + "start": 174312.851435125 + }, + { + "duration_s": 6.1263907920219935, + "end": 174321.194866083, + "start": 174315.068475291 + }, + { + "duration_s": 1.5847329169919249, + "end": 174323.591156958, + "start": 174322.006424041 + }, + { + "duration_s": 2.940674375015078, + "end": 174326.573084083, + "start": 174323.632409708 + }, + { + "duration_s": 3.6662402920192108, + "end": 174330.278663125, + "start": 174326.612422833 + }, + { + "duration_s": 1.1483551660203375, + "end": 174332.194349416, + "start": 174331.04599425 + }, + { + "duration_s": 3.5202709999866784, + "end": 174336.220429708, + "start": 174332.700158708 + }, + { + "duration_s": 4.211606666998705, + "end": 174340.71144425, + "start": 174336.499837583 + }, + { + "duration_s": 1.0340612499858253, + "end": 174341.795236833, + "start": 174340.761175583 + }, + { + "duration_s": 2.214746915997239, + "end": 174344.189198666, + "start": 174341.97445175 + }, + { + "duration_s": 4.89728245799779, + "end": 174349.582323416, + "start": 174344.685040958 + }, + { + "duration_s": 3.658865125005832, + "end": 174353.888867708, + "start": 174350.230002583 + }, + { + "duration_s": 1.129474166984437, + "end": 174356.357214, + "start": 174355.227739833 + } + ], + "openai/openai/gpt-5.5": [ + { + "duration_s": 366.48894541698974, + "end": 174355.489265958, + "start": 173989.000320541 + } + ] + }, + "completion_count_by_model": { + "openai/openai/gpt-5-nano": 512, + "openai/openai/gpt-5.5": 512 + }, + "max_in_flight_by_model": { + "openai/openai/gpt-5-nano": 6, + "openai/openai/gpt-5.5": 4 + }, + "max_start_gap_seconds_by_model": { + "openai/openai/gpt-5-nano": 3.1320800830144435, + "openai/openai/gpt-5.5": 2.457247084006667 + }, + "overlap_duration_seconds": 321.3316014549928, + "start_count_by_model": { + "openai/openai/gpt-5-nano": 512, + "openai/openai/gpt-5.5": 512 + } + }, + "wall_time_seconds": 368.45588716701604, + "wave_diagnosis": "steady_interleaving" + } + ] +} diff --git a/artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/README.md b/artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/README.md new file mode 100644 index 000000000..d28937cbd --- /dev/null +++ b/artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/README.md @@ -0,0 +1,10 @@ +# Mixed-model async scheduling live benchmark + +Rows: 2; model generations per scenario: 4. +Provider: `nvidia-internal`. +Upstream: `openai/openai/gpt-5.5` cap 1, max_tokens 32. +Downstream: `openai/openai/gpt-5-nano` cap 1, max_tokens 16. + +| Scenario | Buffer | Success | Wall s | Heavy starts | Nano starts | Overlap s | Idle p50/p95/max s | Diagnosis | Cap violation | +|---|---:|---|---:|---:|---:|---:|---|---|---| +| mixed_rows2_buf2_heavy1_nano1 | 2 | True | 4.67 | 2 | 2 | 1.37 | None/None/None | wave_or_serialized | {'openai/openai/gpt-5.5': False, 'openai/openai/gpt-5-nano': False} | diff --git a/artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/combined_summary.json b/artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/combined_summary.json new file mode 100644 index 000000000..6c0de069b --- /dev/null +++ b/artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/combined_summary.json @@ -0,0 +1,176 @@ +{ + "buffers": [ + 2 + ], + "models": { + "downstream": "openai/openai/gpt-5-nano", + "upstream": "openai/openai/gpt-5.5" + }, + "provider": "nvidia-internal", + "rows": 2, + "summaries": [ + { + "artifacts": { + "flow_buckets": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/mixed_rows2_buf2_heavy1_nano1/flow_buckets.json", + "idle_times": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/mixed_rows2_buf2_heavy1_nano1/idle_times.json", + "request_events": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/mixed_rows2_buf2_heavy1_nano1/request_events.jsonl", + "summary": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/mixed_rows2_buf2_heavy1_nano1/summary.json", + "task_traces_csv": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/mixed_rows2_buf2_heavy1_nano1/task_traces.csv", + "task_traces_json": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/mixed_rows2_buf2_heavy1_nano1/task_traces.json", + "timeline": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/mixed_rows2_buf2_heavy1_nano1/timeline.jsonl" + }, + "buffer_size": 2, + "cap_violations": { + "openai/openai/gpt-5-nano": false, + "openai/openai/gpt-5.5": false + }, + "configured_caps": { + "openai/openai/gpt-5-nano": 1, + "openai/openai/gpt-5.5": 1 + }, + "error": null, + "expected_model_generations": 4, + "final_pressure_by_model": { + "openai/openai/gpt-5-nano": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 173981.798141416, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 1, + "effective_max": 1, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5-nano", + "provider_name": "nvidia-internal" + }, + "sequence": 42, + "waiters": 0 + }, + "openai/openai/gpt-5.5": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 173980.912700375, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 1, + "effective_max": 1, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5.5", + "provider_name": "nvidia-internal" + }, + "sequence": 33, + "waiters": 0 + } + }, + "idle_times": { + "count": 0, + "seconds": { + "max": null, + "p50": null, + "p95": null + } + }, + "max_tokens": { + "downstream": 16, + "upstream": 32 + }, + "model_completion_outcomes": { + "success": 4 + }, + "models": { + "downstream": "openai/openai/gpt-5-nano", + "upstream": "openai/openai/gpt-5.5" + }, + "provider": "nvidia-internal", + "request_event_counts": { + "model_request_completed": 4, + "model_request_started": 4, + "request_effective_cap_changed": 2, + "request_lease_acquired": 4, + "request_lease_released": 4, + "request_queue_drained": 4, + "request_queue_formed": 4, + "request_resource_registered": 2, + "request_wait_completed": 4, + "request_wait_started": 4 + }, + "request_wait_seconds_by_model": { + "openai/openai/gpt-5-nano": { + "count": 2, + "max": 2.2666004952043295e-05, + "p50": 2.204100019298494e-05, + "p95": 2.2666004952043295e-05 + }, + "openai/openai/gpt-5.5": { + "count": 1, + "max": 2.5834015104919672e-05, + "p50": 2.5834015104919672e-05, + "p95": 2.5834015104919672e-05 + } + }, + "rows": 2, + "scenario": "mixed_rows2_buf2_heavy1_nano1", + "success": true, + "task_failure_count": 5, + "task_success_count": 0, + "task_trace_count": 5, + "traffic": { + "active_intervals_by_model": { + "openai/openai/gpt-5-nano": [ + { + "duration_s": 1.3914966669981368, + "end": 173980.88520775, + "start": 173979.493711083 + }, + { + "duration_s": 0.8845595419988967, + "end": 173981.798155333, + "start": 173980.913595791 + } + ], + "openai/openai/gpt-5.5": [ + { + "duration_s": 1.7167455829912797, + "end": 173979.491799958, + "start": 173977.775054375 + }, + { + "duration_s": 1.397769832983613, + "end": 173980.912711916, + "start": 173979.514942083 + } + ] + }, + "completion_count_by_model": { + "openai/openai/gpt-5-nano": 2, + "openai/openai/gpt-5.5": 2 + }, + "max_in_flight_by_model": { + "openai/openai/gpt-5-nano": 1, + "openai/openai/gpt-5.5": 1 + }, + "max_start_gap_seconds_by_model": { + "openai/openai/gpt-5-nano": 1.419884708011523, + "openai/openai/gpt-5.5": 1.7398877080122475 + }, + "overlap_duration_seconds": 1.3702656669775024, + "start_count_by_model": { + "openai/openai/gpt-5-nano": 2, + "openai/openai/gpt-5.5": 2 + } + }, + "wall_time_seconds": 4.6713245830032974, + "wave_diagnosis": "wave_or_serialized" + } + ] +} diff --git a/artifacts/645-live-bench/agent-fan/README.md b/artifacts/645-live-bench/agent-fan/README.md new file mode 100644 index 000000000..80381379c --- /dev/null +++ b/artifacts/645-live-bench/agent-fan/README.md @@ -0,0 +1,21 @@ +# Agent Fan Live Benchmark + +Output: `/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan` + +## fan_out_mp2_short +- DAG shape: fan-out +- Wall time: 6.556s +- Rows / columns: 2 / 6 +- max_parallel_requests: 2; observed max request in-flight: 2; waiters: 4 +- Scheduler events: `{'dependency_ready': 7, 'ready_enqueued': 7, 'selected': 7, 'task_lease_acquired': 7, 'worker_spawned': 7, 'queue_drained': 2, 'task_completed': 7, 'task_lease_released': 7}` +- Request events: `{'request_resource_registered': 1, 'request_effective_cap_changed': 1, 'request_queue_formed': 3, 'request_wait_started': 6, 'request_wait_completed': 6, 'request_lease_acquired': 6, 'request_queue_drained': 3, 'model_request_started': 6, 'request_lease_released': 6, 'model_request_completed': 6}` +- Timeline: `/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_out_mp2_short/timeline.jsonl` + +## fan_in_mp2_mixed +- DAG shape: fan-in +- Wall time: 10.622s +- Rows / columns: 2 / 7 +- max_parallel_requests: 2; observed max request in-flight: 2; waiters: 4 +- Scheduler events: `{'dependency_ready': 9, 'ready_enqueued': 9, 'selected': 9, 'task_lease_acquired': 9, 'worker_spawned': 9, 'queue_drained': 4, 'task_completed': 9, 'task_lease_released': 9}` +- Request events: `{'request_resource_registered': 1, 'request_effective_cap_changed': 1, 'request_queue_formed': 5, 'request_wait_started': 8, 'request_wait_completed': 8, 'request_lease_acquired': 8, 'request_queue_drained': 5, 'model_request_started': 8, 'request_lease_released': 8, 'model_request_completed': 8}` +- Timeline: `/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_in_mp2_mixed/timeline.jsonl` diff --git a/artifacts/645-live-bench/agent-fan/combined_summary.json b/artifacts/645-live-bench/agent-fan/combined_summary.json new file mode 100644 index 000000000..c237e82ec --- /dev/null +++ b/artifacts/645-live-bench/agent-fan/combined_summary.json @@ -0,0 +1,452 @@ +{ + "created_at_epoch": 1778786197.816855, + "notes": [ + "All live model calls used alias gpt-5.5.", + "temperature was omitted because gpt-5.5 rejects temperature=0.", + "AdaptiveRequestAdmissionController.__init__, create_model_client, and AsyncTaskScheduler.__init__ were patched only in-process for observability injection." + ], + "output_dir": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan", + "scenarios": [ + { + "artifact_dataset_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_out_mp2_short/artifacts/fan_out_mp2_short_05-14-2026_151620/parquet-files", + "capacity_plan": { + "buffer_size": 2, + "observed_maxima": { + "queued_tasks_by_group": { + "local:local/default/topic/audience/constraint": 1, + "model:model/nvidia-internal/openai/openai/gpt-5.5/chat-completion/action_brief": 2, + "model:model/nvidia-internal/openai/openai/gpt-5.5/chat-completion/metric_brief": 2, + "model:model/nvidia-internal/openai/openai/gpt-5.5/chat-completion/risk_brief": 2 + }, + "row_groups_in_flight": 1, + "task_leases_by_resource": { + "llm_wait": 6, + "submission": 6 + } + }, + "row_group_concurrency": 3, + "submission_capacity": 256, + "task_resource_limits": { + "llm_wait": 256, + "local": 256, + "submission": 256 + } + }, + "dag_definition": [ + { + "allow_resize": false, + "column_type": "llm-text", + "drop": false, + "extract_reasoning_content": false, + "model_alias": "gpt-5.5", + "multi_modal_context": null, + "name": "action_brief", + "prompt": "For {{ audience }}, write one sentence under 18 words about the best immediate action for: {{ topic }}. Constraint: {{ constraint }}.", + "propagate_skip": true, + "skip": null, + "system_prompt": null, + "tool_alias": null, + "with_trace": "none" + }, + { + "allow_resize": false, + "column_type": "llm-text", + "drop": false, + "extract_reasoning_content": false, + "model_alias": "gpt-5.5", + "multi_modal_context": null, + "name": "risk_brief", + "prompt": "For {{ audience }}, write one sentence under 18 words about the highest operational risk for: {{ topic }}. Constraint: {{ constraint }}.", + "propagate_skip": true, + "skip": null, + "system_prompt": null, + "tool_alias": null, + "with_trace": "none" + }, + { + "allow_resize": false, + "column_type": "llm-text", + "drop": false, + "extract_reasoning_content": false, + "model_alias": "gpt-5.5", + "multi_modal_context": null, + "name": "metric_brief", + "prompt": "For {{ audience }}, write one sentence under 18 words about one useful measurement for: {{ topic }}. Constraint: {{ constraint }}.", + "propagate_skip": true, + "skip": null, + "system_prompt": null, + "tool_alias": null, + "with_trace": "none" + } + ], + "dag_shape": "fan-out", + "dataset_preview_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_out_mp2_short/dataset_preview.json", + "failures": [], + "files_changed_by_benchmark": [ + "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_out_mp2_short/seed.csv", + "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_out_mp2_short/timeline.jsonl", + "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_out_mp2_short/dataset_preview.json", + "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_out_mp2_short/summary.json" + ], + "max_parallel_requests": 2, + "max_tokens": 24, + "model_alias": "gpt-5.5", + "num_rows": 2, + "observed_max_active_request_leases": 2, + "observed_max_request_current_limit": 2, + "observed_max_request_in_flight": 2, + "observed_max_request_waiters": 4, + "observed_max_task_llm_wait_leases": 6, + "observed_max_task_submission_leases": 6, + "ready_frontier_by_column": { + "action_brief": { + "dependency_ready": 2, + "ready_enqueued": 2, + "selected": 2, + "task_completed": 2, + "task_lease_acquired": 2, + "task_lease_released": 2, + "worker_spawned": 2 + }, + "metric_brief": { + "dependency_ready": 2, + "ready_enqueued": 2, + "selected": 2, + "task_completed": 2, + "task_lease_acquired": 2, + "task_lease_released": 2, + "worker_spawned": 2 + }, + "risk_brief": { + "dependency_ready": 2, + "ready_enqueued": 2, + "selected": 2, + "task_completed": 2, + "task_lease_acquired": 2, + "task_lease_released": 2, + "worker_spawned": 2 + }, + "topic": { + "dependency_ready": 1, + "ready_enqueued": 1, + "selected": 1, + "task_completed": 1, + "task_lease_acquired": 1, + "task_lease_released": 1, + "worker_spawned": 1 + } + }, + "request_event_counts": { + "model_request_completed": 6, + "model_request_started": 6, + "request_effective_cap_changed": 1, + "request_lease_acquired": 6, + "request_lease_released": 6, + "request_queue_drained": 3, + "request_queue_formed": 3, + "request_resource_registered": 1, + "request_wait_completed": 6, + "request_wait_started": 6 + }, + "request_pressure_final": { + "domains": { + "nvidia-internal:openai/openai/gpt-5.5:chat": { + "active_lease_count": 0, + "current_limit": 2, + "effective_max": 2, + "in_flight_count": 0, + "last_outcome": "success", + "waiters": 0 + } + }, + "provider_models": { + "nvidia-internal:openai/openai/gpt-5.5:None": { + "aggregate_active_lease_count": 0, + "aggregate_in_flight": 0, + "aliases": [ + "gpt-5.5" + ], + "domains": { + "chat": 2 + }, + "raw_caps": { + "gpt-5.5": 2 + }, + "static_cap": 2 + } + } + }, + "result_columns": [ + "topic", + "audience", + "constraint", + "metric_brief", + "action_brief", + "risk_brief" + ], + "result_rows": 2, + "scenario": "fan_out_mp2_short", + "scheduler_event_counts": { + "dependency_ready": 7, + "queue_drained": 2, + "ready_enqueued": 7, + "selected": 7, + "task_completed": 7, + "task_lease_acquired": 7, + "task_lease_released": 7, + "worker_spawned": 7 + }, + "skip_health_check": true, + "task_traces": { + "by_column": { + "action_brief": 2, + "metric_brief": 2, + "risk_brief": 2, + "topic": 1 + }, + "count": 7, + "duration_seconds_max": null, + "duration_seconds_mean": null, + "duration_seconds_min": null + }, + "temperature_omitted": true, + "timeline_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_out_mp2_short/timeline.jsonl", + "wall_time_seconds": 6.556 + }, + { + "artifact_dataset_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_in_mp2_mixed/artifacts/fan_in_mp2_mixed_05-14-2026_151627/parquet-files", + "capacity_plan": { + "buffer_size": 2, + "observed_maxima": { + "queued_tasks_by_group": { + "local:local/default/topic/audience/constraint": 1, + "model:model/nvidia-internal/openai/openai/gpt-5.5/chat-completion/customer_view": 2, + "model:model/nvidia-internal/openai/openai/gpt-5.5/chat-completion/measurement_view": 2, + "model:model/nvidia-internal/openai/openai/gpt-5.5/chat-completion/operator_view": 2, + "model:model/nvidia-internal/openai/openai/gpt-5.5/chat-completion/synthesis_judge": 1 + }, + "row_groups_in_flight": 1, + "task_leases_by_resource": { + "llm_wait": 6, + "submission": 6 + } + }, + "row_group_concurrency": 3, + "submission_capacity": 256, + "task_resource_limits": { + "llm_wait": 256, + "local": 256, + "submission": 256 + } + }, + "dag_definition": [ + { + "allow_resize": false, + "column_type": "llm-text", + "drop": false, + "extract_reasoning_content": false, + "model_alias": "gpt-5.5", + "multi_modal_context": null, + "name": "operator_view", + "prompt": "In one sentence under 16 words, state an operator's most practical concern for {{ topic }}. Audience: {{ audience }}.", + "propagate_skip": true, + "skip": null, + "system_prompt": null, + "tool_alias": null, + "with_trace": "none" + }, + { + "allow_resize": false, + "column_type": "llm-text", + "drop": false, + "extract_reasoning_content": false, + "model_alias": "gpt-5.5", + "multi_modal_context": null, + "name": "customer_view", + "prompt": "In one sentence under 16 words, state the customer-visible consequence for {{ topic }}. Audience: {{ audience }}.", + "propagate_skip": true, + "skip": null, + "system_prompt": null, + "tool_alias": null, + "with_trace": "none" + }, + { + "allow_resize": false, + "column_type": "llm-text", + "drop": false, + "extract_reasoning_content": false, + "model_alias": "gpt-5.5", + "multi_modal_context": null, + "name": "measurement_view", + "prompt": "In one sentence under 16 words, state the measurement that would reveal success or failure for {{ topic }}. Audience: {{ audience }}.", + "propagate_skip": true, + "skip": null, + "system_prompt": null, + "tool_alias": null, + "with_trace": "none" + }, + { + "allow_resize": false, + "column_type": "llm-text", + "drop": false, + "extract_reasoning_content": false, + "model_alias": "gpt-5.5", + "multi_modal_context": null, + "name": "synthesis_judge", + "prompt": "Synthesize these three notes into a concise recommendation under 45 words. Topic: {{ topic }}\nOperator: {{ operator_view }}\nCustomer: {{ customer_view }}\nMeasurement: {{ measurement_view }}\nEnd with a short confidence phrase.", + "propagate_skip": true, + "skip": null, + "system_prompt": null, + "tool_alias": null, + "with_trace": "none" + } + ], + "dag_shape": "fan-in", + "dataset_preview_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_in_mp2_mixed/dataset_preview.json", + "failures": [], + "files_changed_by_benchmark": [ + "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_in_mp2_mixed/seed.csv", + "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_in_mp2_mixed/timeline.jsonl", + "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_in_mp2_mixed/dataset_preview.json", + "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_in_mp2_mixed/summary.json" + ], + "max_parallel_requests": 2, + "max_tokens": 64, + "model_alias": "gpt-5.5", + "num_rows": 2, + "observed_max_active_request_leases": 2, + "observed_max_request_current_limit": 2, + "observed_max_request_in_flight": 2, + "observed_max_request_waiters": 4, + "observed_max_task_llm_wait_leases": 6, + "observed_max_task_submission_leases": 6, + "ready_frontier_by_column": { + "customer_view": { + "dependency_ready": 2, + "ready_enqueued": 2, + "selected": 2, + "task_completed": 2, + "task_lease_acquired": 2, + "task_lease_released": 2, + "worker_spawned": 2 + }, + "measurement_view": { + "dependency_ready": 2, + "ready_enqueued": 2, + "selected": 2, + "task_completed": 2, + "task_lease_acquired": 2, + "task_lease_released": 2, + "worker_spawned": 2 + }, + "operator_view": { + "dependency_ready": 2, + "ready_enqueued": 2, + "selected": 2, + "task_completed": 2, + "task_lease_acquired": 2, + "task_lease_released": 2, + "worker_spawned": 2 + }, + "synthesis_judge": { + "dependency_ready": 2, + "ready_enqueued": 2, + "selected": 2, + "task_completed": 2, + "task_lease_acquired": 2, + "task_lease_released": 2, + "worker_spawned": 2 + }, + "topic": { + "dependency_ready": 1, + "ready_enqueued": 1, + "selected": 1, + "task_completed": 1, + "task_lease_acquired": 1, + "task_lease_released": 1, + "worker_spawned": 1 + } + }, + "request_event_counts": { + "model_request_completed": 8, + "model_request_started": 8, + "request_effective_cap_changed": 1, + "request_lease_acquired": 8, + "request_lease_released": 8, + "request_queue_drained": 5, + "request_queue_formed": 5, + "request_resource_registered": 1, + "request_wait_completed": 8, + "request_wait_started": 8 + }, + "request_pressure_final": { + "domains": { + "nvidia-internal:openai/openai/gpt-5.5:chat": { + "active_lease_count": 0, + "current_limit": 2, + "effective_max": 2, + "in_flight_count": 0, + "last_outcome": "success", + "waiters": 0 + } + }, + "provider_models": { + "nvidia-internal:openai/openai/gpt-5.5:None": { + "aggregate_active_lease_count": 0, + "aggregate_in_flight": 0, + "aliases": [ + "gpt-5.5" + ], + "domains": { + "chat": 2 + }, + "raw_caps": { + "gpt-5.5": 2 + }, + "static_cap": 2 + } + } + }, + "result_columns": [ + "topic", + "audience", + "constraint", + "operator_view", + "measurement_view", + "customer_view", + "synthesis_judge" + ], + "result_rows": 2, + "scenario": "fan_in_mp2_mixed", + "scheduler_event_counts": { + "dependency_ready": 9, + "queue_drained": 4, + "ready_enqueued": 9, + "selected": 9, + "task_completed": 9, + "task_lease_acquired": 9, + "task_lease_released": 9, + "worker_spawned": 9 + }, + "skip_health_check": true, + "task_traces": { + "by_column": { + "customer_view": 2, + "measurement_view": 2, + "operator_view": 2, + "synthesis_judge": 2, + "topic": 1 + }, + "count": 9, + "duration_seconds_max": null, + "duration_seconds_mean": null, + "duration_seconds_min": null + }, + "temperature_omitted": true, + "timeline_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_in_mp2_mixed/timeline.jsonl", + "wall_time_seconds": 10.622 + } + ], + "schema": "agent-fan-live-benchmark-v1", + "workspace": "/Users/etramel/src/DataDesigner" +} diff --git a/artifacts/645-live-bench/agent-maxparallel/maxparallel_live_benchmark.json b/artifacts/645-live-bench/agent-maxparallel/maxparallel_live_benchmark.json new file mode 100644 index 000000000..2d2d47cb5 --- /dev/null +++ b/artifacts/645-live-bench/agent-maxparallel/maxparallel_live_benchmark.json @@ -0,0 +1,507 @@ +{ + "agent": "agent-maxparallel", + "all_cap_checks_passed": true, + "branch": "scheduling-yolo", + "command": "DATA_DESIGNER_ASYNC_ENGINE=1 DATA_DESIGNER_ASYNC_TRACE=1 PYTHONUNBUFFERED=1 .venv/bin/python - <<'PY' # benchmark driver", + "files_written": [ + "artifacts/645-live-bench/agent-maxparallel/maxparallel_live_benchmark.json", + "artifacts/645-live-bench/agent-maxparallel/maxparallel_live_benchmark.md", + "artifacts/645-live-bench/agent-maxparallel/serialish_cap1_2rows_2cols/request_events.jsonl", + "artifacts/645-live-bench/agent-maxparallel/stress_cap2_3rows_2cols/request_events.jsonl", + "artifacts/645-live-bench/agent-maxparallel/fanout_cap3_2rows_3cols/request_events.jsonl", + "artifacts/645-live-bench/agent-maxparallel/serialish_cap1_2rows_2cols/task_traces.csv", + "artifacts/645-live-bench/agent-maxparallel/stress_cap2_3rows_2cols/task_traces.csv", + "artifacts/645-live-bench/agent-maxparallel/fanout_cap3_2rows_3cols/task_traces.csv", + "artifacts/645-live-bench/agent-maxparallel/serialish_cap1_2rows_2cols/summary.json", + "artifacts/645-live-bench/agent-maxparallel/stress_cap2_3rows_2cols/summary.json", + "artifacts/645-live-bench/agent-maxparallel/fanout_cap3_2rows_3cols/summary.json" + ], + "health_check_policy": "skip_health_check=True in in-memory ModelConfig", + "model_alias": "gpt-5.5", + "output_dir": "artifacts/645-live-bench/agent-maxparallel", + "results": [ + { + "dataset_sha256": "6836d3cddee8039113ad6a8548d8a34013e2005328ddfa4d500432f3c3d981e3", + "dataset_shape": [ + 2, + 3 + ], + "event_path": "artifacts/645-live-bench/agent-maxparallel/serialish_cap1_2rows_2cols/request_events.jsonl", + "expected_requests": 4, + "failure": null, + "final_pressure": { + "domains": { + "{'provider_name': 'nvidia-internal', 'model_id': 'openai/openai/gpt-5.5', 'domain': 'chat'}": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 171960.385970541, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 1, + "effective_max": 1, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5.5", + "provider_name": "nvidia-internal" + }, + "sequence": 35, + "waiters": 0 + } + }, + "provider_models": { + "{'provider_name': 'nvidia-internal', 'model_id': 'openai/openai/gpt-5.5'}": { + "aggregate_active_lease_count": 0, + "aggregate_in_flight": 0, + "aliases": [ + "gpt-5.5" + ], + "captured_at": 171960.386059333, + "domains": { + "chat": 1 + }, + "provider_model": { + "model_id": "openai/openai/gpt-5.5", + "provider_name": "nvidia-internal" + }, + "raw_caps": { + "gpt-5.5": 1 + }, + "sequence": 35, + "static_cap": 1 + } + } + }, + "observed": { + "event_counts": { + "model_request_completed": 4, + "model_request_started": 4, + "request_effective_cap_changed": 1, + "request_lease_acquired": 4, + "request_lease_released": 4, + "request_queue_drained": 2, + "request_queue_formed": 2, + "request_resource_registered": 1, + "request_wait_completed": 4, + "request_wait_started": 4 + }, + "max_model_request_overlap": 1, + "max_request_lease_overlap": 1, + "max_snapshot_in_flight": 1, + "max_snapshot_waiters": 3, + "model_request_overlap_samples": [ + { + "active": 1, + "at": 171953.541596166, + "event_kind": "model_request_started", + "lease_ids": [ + "69acd365b1f2458a9174f6c02838f640" + ] + } + ], + "request_lease_overlap_samples": [ + { + "active": 1, + "at": 171953.541588541, + "event_kind": "request_lease_acquired", + "lease_ids": [ + "69acd365b1f2458a9174f6c02838f640" + ] + } + ], + "snapshot_limits_seen": [ + [ + 1, + 1 + ] + ], + "wait_metrics": { + "completed_waits": 4, + "max_wait_seconds": 5.408440416009398, + "mean_wait_seconds": 2.7624485100095626, + "queued_waits_gt_10ms": 3 + } + }, + "output_lengths_by_column": { + "note_1": [ + 0, + 0 + ], + "note_2": [ + 0, + 0 + ] + }, + "passed_cap_check": true, + "saturated_or_serial_expected": true, + "scenario": { + "description": "Serial-ish comparison: 2 rows x 2 independent LLM columns, cap=1.", + "id": "serialish_cap1_2rows_2cols", + "llm_columns": 2, + "max_parallel": 1, + "max_tokens": 24, + "num_records": 2, + "prompt_style": "short" + }, + "task_trace_metrics": { + "max_task_overlap": 4, + "task_count_by_status": { + "ok": 5 + }, + "task_count_by_type": { + "cell": 4, + "from_scratch": 1 + } + }, + "trace_path": "artifacts/645-live-bench/agent-maxparallel/serialish_cap1_2rows_2cols/task_traces.csv", + "wall_time_seconds": 9.210403208009666 + }, + { + "dataset_sha256": "80e7a6af4b81a244e5628494c311007acdfa58a092fce23a70403942a133537c", + "dataset_shape": [ + 3, + 3 + ], + "event_path": "artifacts/645-live-bench/agent-maxparallel/stress_cap2_3rows_2cols/request_events.jsonl", + "expected_requests": 6, + "failure": null, + "final_pressure": { + "domains": { + "{'provider_name': 'nvidia-internal', 'model_id': 'openai/openai/gpt-5.5', 'domain': 'chat'}": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 171964.953983875, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 2, + "effective_max": 2, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5.5", + "provider_name": "nvidia-internal" + }, + "sequence": 51, + "waiters": 0 + } + }, + "provider_models": { + "{'provider_name': 'nvidia-internal', 'model_id': 'openai/openai/gpt-5.5'}": { + "aggregate_active_lease_count": 0, + "aggregate_in_flight": 0, + "aliases": [ + "gpt-5.5" + ], + "captured_at": 171964.954019958, + "domains": { + "chat": 2 + }, + "provider_model": { + "model_id": "openai/openai/gpt-5.5", + "provider_name": "nvidia-internal" + }, + "raw_caps": { + "gpt-5.5": 2 + }, + "sequence": 51, + "static_cap": 2 + } + } + }, + "observed": { + "event_counts": { + "model_request_completed": 6, + "model_request_started": 6, + "request_effective_cap_changed": 1, + "request_lease_acquired": 6, + "request_lease_released": 6, + "request_queue_drained": 3, + "request_queue_formed": 3, + "request_resource_registered": 1, + "request_wait_completed": 6, + "request_wait_started": 6 + }, + "max_model_request_overlap": 2, + "max_request_lease_overlap": 2, + "max_snapshot_in_flight": 2, + "max_snapshot_waiters": 4, + "model_request_overlap_samples": [ + { + "active": 1, + "at": 171960.396262208, + "event_kind": "model_request_started", + "lease_ids": [ + "a8cc785352f14de084a437d482f9991c" + ] + }, + { + "active": 2, + "at": 171960.409349833, + "event_kind": "model_request_started", + "lease_ids": [ + "1bbe6fce354e451086fa9ee346193601", + "a8cc785352f14de084a437d482f9991c" + ] + } + ], + "request_lease_overlap_samples": [ + { + "active": 1, + "at": 171960.396255666, + "event_kind": "request_lease_acquired", + "lease_ids": [ + "a8cc785352f14de084a437d482f9991c" + ] + }, + { + "active": 2, + "at": 171960.409342875, + "event_kind": "request_lease_acquired", + "lease_ids": [ + "1bbe6fce354e451086fa9ee346193601", + "a8cc785352f14de084a437d482f9991c" + ] + } + ], + "snapshot_limits_seen": [ + [ + 2, + 2 + ] + ], + "wait_metrics": { + "completed_waits": 6, + "max_wait_seconds": 3.0761253340169787, + "mean_wait_seconds": 1.5652659305002696, + "queued_waits_gt_10ms": 4 + } + }, + "output_lengths_by_column": { + "note_1": [ + 0, + 0, + 0 + ], + "note_2": [ + 0, + 0, + 0 + ] + }, + "passed_cap_check": true, + "saturated_or_serial_expected": true, + "scenario": { + "description": "Max-parallel stress: 3 rows x 2 independent LLM columns, cap=2.", + "id": "stress_cap2_3rows_2cols", + "llm_columns": 2, + "max_parallel": 2, + "max_tokens": 24, + "num_records": 3, + "prompt_style": "short" + }, + "task_trace_metrics": { + "max_task_overlap": 6, + "task_count_by_status": { + "ok": 7 + }, + "task_count_by_type": { + "cell": 6, + "from_scratch": 1 + } + }, + "trace_path": "artifacts/645-live-bench/agent-maxparallel/stress_cap2_3rows_2cols/task_traces.csv", + "wall_time_seconds": 4.565962042019237 + }, + { + "dataset_sha256": "67ab4baa1ce3be86a730144609088c3e697bac06c7b3c51c5e9043ae6fed3498", + "dataset_shape": [ + 2, + 4 + ], + "event_path": "artifacts/645-live-bench/agent-maxparallel/fanout_cap3_2rows_3cols/request_events.jsonl", + "expected_requests": 6, + "failure": null, + "final_pressure": { + "domains": { + "{'provider_name': 'nvidia-internal', 'model_id': 'openai/openai/gpt-5.5', 'domain': 'chat'}": { + "active_lease_count": 0, + "blocked_until_monotonic": null, + "captured_at": 171968.478985666, + "consecutive_rate_limits": 0, + "cooldown_remaining_seconds": 0.0, + "current_limit": 3, + "effective_max": 3, + "in_flight_count": 0, + "last_outcome": "success", + "leak_diagnostics": {}, + "rate_limit_ceiling": 0, + "resource": { + "domain": "chat", + "model_id": "openai/openai/gpt-5.5", + "provider_name": "nvidia-internal" + }, + "sequence": 53, + "waiters": 0 + } + }, + "provider_models": { + "{'provider_name': 'nvidia-internal', 'model_id': 'openai/openai/gpt-5.5'}": { + "aggregate_active_lease_count": 0, + "aggregate_in_flight": 0, + "aliases": [ + "gpt-5.5" + ], + "captured_at": 171968.479015291, + "domains": { + "chat": 3 + }, + "provider_model": { + "model_id": "openai/openai/gpt-5.5", + "provider_name": "nvidia-internal" + }, + "raw_caps": { + "gpt-5.5": 3 + }, + "sequence": 53, + "static_cap": 3 + } + } + }, + "observed": { + "event_counts": { + "model_request_completed": 6, + "model_request_started": 6, + "request_effective_cap_changed": 1, + "request_lease_acquired": 6, + "request_lease_released": 6, + "request_queue_drained": 4, + "request_queue_formed": 4, + "request_resource_registered": 1, + "request_wait_completed": 6, + "request_wait_started": 6 + }, + "max_model_request_overlap": 3, + "max_request_lease_overlap": 3, + "max_snapshot_in_flight": 3, + "max_snapshot_waiters": 3, + "model_request_overlap_samples": [ + { + "active": 1, + "at": 171964.964600541, + "event_kind": "model_request_started", + "lease_ids": [ + "24233255c6b94f3487df94d152568c7a" + ] + }, + { + "active": 2, + "at": 171964.977525916, + "event_kind": "model_request_started", + "lease_ids": [ + "24233255c6b94f3487df94d152568c7a", + "f4aab4688e9247c181caf077b04d2858" + ] + }, + { + "active": 3, + "at": 171964.978175416, + "event_kind": "model_request_started", + "lease_ids": [ + "24233255c6b94f3487df94d152568c7a", + "43ba7ca403f741888f681673e39f249b", + "f4aab4688e9247c181caf077b04d2858" + ] + } + ], + "request_lease_overlap_samples": [ + { + "active": 1, + "at": 171964.964594083, + "event_kind": "request_lease_acquired", + "lease_ids": [ + "24233255c6b94f3487df94d152568c7a" + ] + }, + { + "active": 2, + "at": 171964.9775195, + "event_kind": "request_lease_acquired", + "lease_ids": [ + "24233255c6b94f3487df94d152568c7a", + "f4aab4688e9247c181caf077b04d2858" + ] + }, + { + "active": 3, + "at": 171964.978169541, + "event_kind": "request_lease_acquired", + "lease_ids": [ + "24233255c6b94f3487df94d152568c7a", + "43ba7ca403f741888f681673e39f249b", + "f4aab4688e9247c181caf077b04d2858" + ] + } + ], + "snapshot_limits_seen": [ + [ + 3, + 3 + ] + ], + "wait_metrics": { + "completed_waits": 6, + "max_wait_seconds": 2.133320500026457, + "mean_wait_seconds": 0.8536303541671563, + "queued_waits_gt_10ms": 3 + } + }, + "output_lengths_by_column": { + "note_1": [ + 0, + 0 + ], + "note_2": [ + 0, + 0 + ], + "note_3": [ + 0, + 0 + ] + }, + "passed_cap_check": true, + "saturated_or_serial_expected": true, + "scenario": { + "description": "Fan-out stress: 2 rows x 3 independent LLM columns, cap=3.", + "id": "fanout_cap3_2rows_3cols", + "llm_columns": 3, + "max_parallel": 3, + "max_tokens": 24, + "num_records": 2, + "prompt_style": "short" + }, + "task_trace_metrics": { + "max_task_overlap": 6, + "task_count_by_status": { + "ok": 7 + }, + "task_count_by_type": { + "cell": 6, + "from_scratch": 1 + } + }, + "trace_path": "artifacts/645-live-bench/agent-maxparallel/fanout_cap3_2rows_3cols/task_traces.csv", + "wall_time_seconds": 3.522671666025417 + } + ], + "schema": "data-designer-live-maxparallel-benchmark-v1", + "started_at_unix": 1778786014.1403196, + "temperature_policy": "omitted entirely; model default used", + "total_wall_time_seconds": 17.35138870900846 +} diff --git a/artifacts/645-live-bench/agent-maxparallel/maxparallel_live_benchmark.md b/artifacts/645-live-bench/agent-maxparallel/maxparallel_live_benchmark.md new file mode 100644 index 000000000..0fa710894 --- /dev/null +++ b/artifacts/645-live-bench/agent-maxparallel/maxparallel_live_benchmark.md @@ -0,0 +1,22 @@ +# Live Max Parallel Benchmark + +- model alias: `gpt-5.5` +- temperature: omitted +- health checks: skipped with in-memory `ModelConfig(skip_health_check=True)` +- total wall time: `17.351s` +- cap checks passed: `True` + +| scenario | cap | requests | wall s | max snapshot in-flight | max lease overlap | max model overlap | max wait s | cap ok | failure | +|---|---:|---:|---:|---:|---:|---:|---:|---|---| +| serialish_cap1_2rows_2cols | 1 | 4 | 9.210 | 1 | 1 | 1 | 5.408 | True | | +| stress_cap2_3rows_2cols | 2 | 6 | 4.566 | 2 | 2 | 2 | 3.076 | True | | +| fanout_cap3_2rows_3cols | 3 | 6 | 3.523 | 3 | 3 | 3 | 2.133 | True | | + +## Artifacts + +- `serialish_cap1_2rows_2cols` events: `artifacts/645-live-bench/agent-maxparallel/serialish_cap1_2rows_2cols/request_events.jsonl` +- `serialish_cap1_2rows_2cols` traces: `artifacts/645-live-bench/agent-maxparallel/serialish_cap1_2rows_2cols/task_traces.csv` +- `stress_cap2_3rows_2cols` events: `artifacts/645-live-bench/agent-maxparallel/stress_cap2_3rows_2cols/request_events.jsonl` +- `stress_cap2_3rows_2cols` traces: `artifacts/645-live-bench/agent-maxparallel/stress_cap2_3rows_2cols/task_traces.csv` +- `fanout_cap3_2rows_3cols` events: `artifacts/645-live-bench/agent-maxparallel/fanout_cap3_2rows_3cols/request_events.jsonl` +- `fanout_cap3_2rows_3cols` traces: `artifacts/645-live-bench/agent-maxparallel/fanout_cap3_2rows_3cols/task_traces.csv` diff --git a/docs/concepts/architecture-and-performance.md b/docs/concepts/architecture-and-performance.md index 5d1545ad7..537fb1aca 100644 --- a/docs/concepts/architecture-and-performance.md +++ b/docs/concepts/architecture-and-performance.md @@ -48,7 +48,7 @@ This guide explains the architecture, execution model, and how to tune performan ## Execution Model !!! note "Two execution engines" - The default execution path is the **async engine**, which dispatches work at the cell level and overlaps independent columns — see [Async Engine](#async-engine) below for its semantics. The legacy **sync engine** is still available for one transitional release via `DATA_DESIGNER_ASYNC_ENGINE=0` and is what this section describes. The configuration knobs documented below (`buffer_size`, `max_parallel_requests`, AIMD throttle config, error handling) apply to both engines; the differences are flagged inline. + The default execution path is the **async engine**, which dispatches work at the cell level and overlaps independent columns — see [Async Engine](#async-engine) below for its semantics. The legacy **sync engine** is still available for one transitional release via `DATA_DESIGNER_ASYNC_ENGINE=0` and is what this section describes. The public configuration knobs documented below (`buffer_size`, `max_parallel_requests`, error handling) apply to both engines; the differences are flagged inline. The sync engine processes datasets in **batches**, with **parallel** operations within each batch. @@ -104,12 +104,12 @@ At any moment, the number of concurrent LLM requests is: ```python concurrent_requests = min( buffer_size, # Records in current batch - current_throttle_limit, # AIMD-managed limit (≤ max_parallel_requests) + current_request_limit, # AIMD-managed limit (≤ max_parallel_requests) remaining_cells_in_column # Cells left to generate ) ``` -`max_parallel_requests` sets the **ceiling**. The actual limit (`current_throttle_limit`) is managed at runtime by an AIMD (Additive Increase / Multiplicative Decrease) controller that reacts to rate-limit signals from the inference server: +`max_parallel_requests` sets the **ceiling**. The actual limit (`current_request_limit`) is managed at runtime by adaptive request admission that reacts to rate-limit signals from the inference server: - **On the first 429 in a burst**: the limit is reduced by a configurable factor (default: 25% reduction) and a cooldown is applied. Further 429s from already in-flight requests in the same burst do not reduce the limit again — they release their permits and hold the limit steady. - **After consecutive successes**: the limit increases by 1 (by default) until it reaches the ceiling or a stabilized rate-limit threshold. @@ -117,7 +117,7 @@ concurrent_requests = min( This means Data Designer automatically finds the right concurrency level for your server without manual tuning. !!! note "Engine paths" - AIMD adaptive concurrency is fully active on the default **async engine**. The legacy **sync engine** is available for one transitional release via `DATA_DESIGNER_ASYNC_ENGINE=0`; on that path 429s are first retried at the HTTP transport layer and AIMD only engages as a fallback. See [Async engine](#async-engine) below. + Adaptive request admission is fully active on the default **async engine**. The legacy **sync engine** is available for one transitional release via `DATA_DESIGNER_ASYNC_ENGINE=0`; on that path 429s are first retried at the HTTP transport layer and AIMD only engages as a fallback. See [Async engine](#async-engine) below. **Example**: With `buffer_size=100` and `max_parallel_requests=32`, Data Designer starts sending up to 32 requests in parallel. If the server returns 429s, concurrency drops automatically (e.g., to 24, then 18) and recovers once the server catches up. @@ -153,7 +153,7 @@ designer.set_run_config(run_config) ### `max_parallel_requests` (InferenceParams) -Sets the **maximum** concurrent LLM API calls **per model**. This is the ceiling that the AIMD throttle controller can ramp up to — the actual concurrency at runtime may be lower if the server signals rate limits. +Sets the **maximum** concurrent LLM API calls **per model**. This is the ceiling that adaptive request admission can ramp up to — the actual concurrency at runtime may be lower if the server signals rate limits. ```python import data_designer.config as dd @@ -170,14 +170,14 @@ model = dd.ModelConfig( **Default**: 4 -**When to increase**: Your inference backend has high throughput capacity, you're using a cloud API with generous rate limits, or you're running vLLM/TensorRT-LLM with multiple GPUs. With AIMD, setting an aggressively high value is safer than before — the system will self-correct downward if the server can't keep up. The salvage queue on the async engine (default) reclaims failed rows; on the sync engine the initial burst of 429s before AIMD stabilizes can drop rows, so start with a more conservative ceiling if you've opted into sync. +**When to increase**: Your inference backend has high throughput capacity, you're using a cloud API with generous rate limits, or you're running vLLM/TensorRT-LLM with multiple GPUs. With adaptive request admission, setting an aggressively high value is safer than before — the system will self-correct downward if the server can't keep up. The salvage queue on the async engine (default) reclaims failed rows; on the sync engine the initial burst of 429s before AIMD stabilizes can drop rows, so start with a more conservative ceiling if you've opted into sync. **When to decrease**: You want to cap resource usage to a known safe level, or you want more predictable/debuggable execution. !!! tip "Finding the optimal value" The right value depends on your inference stack and model. Self-hosted vLLM servers can often handle values as high as 256, 512, or even 1024 depending on your hardware. - With AIMD, a practical approach is to set `max_parallel_requests` to the **upper bound** you're comfortable with and let the throttle controller find the sustainable level automatically. If you see frequent 429 → recovery cycles in the logs, your ceiling is above the server's true capacity but the system is handling it. If you never see any throttle activity, you may have room to increase the ceiling further. + With adaptive request admission, a practical approach is to set `max_parallel_requests` to the **upper bound** you're comfortable with and let the request controller find the sustainable level automatically. If you see frequent 429 → recovery cycles in the logs, your ceiling is above the server's true capacity but the system is handling it. If you never see any request-admission activity, you may have room to increase the ceiling further. **Benchmark approach**: Run a small dataset (e.g., 100 records) with increasing `max_parallel_requests` values (4 → 8 → 16 → 32 → ...) and measure generation time. Stop increasing when the runtime stops decreasing—that's when your inference server is saturated. @@ -198,38 +198,9 @@ designer.set_run_config(run_config) --- -### Adaptive Throttling (RunConfig) +### Adaptive Request Admission -Data Designer uses an AIMD (Additive Increase / Multiplicative Decrease) controller to automatically adjust concurrency per model based on rate-limit feedback from the inference server. The defaults work well for most workloads. Override them via `ThrottleConfig` only when you understand the trade-offs. - -!!! note "Engine paths" - Adaptive throttling is fully active on the default **async engine**, where 429 responses propagate directly to the AIMD controller. On the legacy **sync engine** (`DATA_DESIGNER_ASYNC_ENGINE=0`), 429s are first retried at the HTTP transport layer; `ThrottleConfig` settings only take effect as a fallback if transport retries are exhausted. - -```python -import data_designer.config as dd -from data_designer.interface import DataDesigner - -run_config = dd.RunConfig( - throttle=dd.ThrottleConfig( - reduce_factor=0.75, # Multiply limit by this on a 429 (default: 0.75) - additive_increase=1, # Add this many slots after success_window successes (default: 1) - success_window=25, # Consecutive successes before increasing (default: 25) - cooldown_seconds=2.0, # Pause after a 429 when no Retry-After header (default: 2.0) - ceiling_overshoot=0.10, # Probe 10% above observed server limit (default: 0.10) - ), -) - -designer = DataDesigner() -designer.set_run_config(run_config) -``` - -| Parameter | Default | Effect | -|-----------|---------|--------| -| `reduce_factor` | 0.75 | How aggressively to cut concurrency on a 429. Lower = more aggressive. | -| `additive_increase` | 1 | Slots added per recovery step. Higher = faster ramp-up, but riskier. | -| `success_window` | 25 | Consecutive successes required before each increase step. | -| `cooldown_seconds` | 2.0 | Pause duration after a 429 (used when the server doesn't send `Retry-After`). | -| `ceiling_overshoot` | 0.10 | Fraction above the observed rate-limit ceiling the controller is allowed to probe. | +Data Designer uses AIMD (Additive Increase / Multiplicative Decrease) request admission to automatically adjust concurrency per provider/model/domain based on rate-limit feedback from the inference server. This is an internal runtime controller, not a public `RunConfig` knob. Set `max_parallel_requests` as the user-facing ceiling and inspect `AsyncCapacityPlan`/logs to understand the effective runtime limits. !!! tip "How it works in practice" When a model endpoint returns HTTP 429, the controller reduces the concurrency limit for that model and pauses briefly. After enough consecutive successes, it begins ramping back up. If the server rate-limits again, the controller records that level as a ceiling and stabilizes just below it, with a small overshoot band to detect when the server can handle more load. @@ -263,11 +234,11 @@ designer.set_run_config(run_config) ## Async Engine -The async engine is the default execution path. It dispatches work at the cell level rather than the column level, so independent columns overlap in time and per-(provider, model) AIMD pools tune themselves independently. See the [Async All the Way Down](../devnotes/posts/async-all-the-way-down.md) dev note for the full architecture. +The async engine is the default execution path. It dispatches work at the cell level rather than the column level, so independent columns overlap in time and provider/model/domain request resources tune themselves independently. See the [Async All the Way Down](../devnotes/posts/async-all-the-way-down.md) dev note for the full architecture. ### Per-model timeouts drive every deadline -The `inference_parameters.timeout` field on a `ModelConfig` sets the per-request HTTP timeout. The same value also drives the sync→async bridge that custom columns use when they call `model.generate()`. There is no separate queue-wait deadline — waits scale with provider speed and AIMD's adaptive concurrency. Slow self-hosted endpoints (e.g. large models on a single GPU) only need this one knob raised: +The `inference_parameters.timeout` field on a `ModelConfig` sets the per-request HTTP timeout. The same value also drives the sync→async bridge that custom columns use when they call `model.generate()`. There is no separate queue-wait deadline — waits scale with provider speed and adaptive request admission. Slow self-hosted endpoints (e.g. large models on a single GPU) only need this one knob raised: ```python import data_designer.config as dd @@ -315,8 +286,8 @@ DATA_DESIGNER_ASYNC_ENGINE=0 python my_pipeline.py | Problem | Symptom | Solution | |---------|---------|----------| -| **Low throughput** | Low GPU utilization | Increase `max_parallel_requests` and/or `buffer_size`. If the throttle has self-reduced due to earlier 429s (check logs for "concurrency reduced" messages), the server may need more capacity or you can wait for AIMD recovery. | -| **Frequent 429 → recovery cycles** | Logs show repeated concurrency drops and ramp-ups | The `max_parallel_requests` ceiling is above the server's sustained capacity. This is handled automatically, but you can lower the ceiling to reduce the sawtooth or tune `reduce_factor` / `success_window`. | +| **Low throughput** | Low GPU utilization | Increase `max_parallel_requests` and/or `buffer_size`. If request admission has self-reduced due to earlier 429s (check logs for "concurrency reduced" messages), the server may need more capacity or you can wait for AIMD recovery. | +| **Frequent 429 → recovery cycles** | Logs show repeated concurrency drops and ramp-ups | The `max_parallel_requests` ceiling is above the server's sustained capacity. This is handled automatically, but you can lower the ceiling to reduce the sawtooth. | | **Long tail of slow generations** | Most records fast, few very slow | Reduce `max_conversation_restarts`, simplify schemas, improve prompts | | **Multi-model idle periods** | One model busy, others idle | Reduce `buffer_size` for faster cycling, or consolidate models | | **Memory errors** | OOM crashes | Reduce `buffer_size` and `max_parallel_requests` | @@ -326,10 +297,10 @@ DATA_DESIGNER_ASYNC_ENGINE=0 python my_pipeline.py ## Tuning Workflow -1. **Start with defaults** for initial development — AIMD handles rate-limit adaptation automatically +1. **Start with defaults** for initial development — adaptive request admission handles rate-limit adaptation automatically 2. **Profile your workload**: How many LLM columns? How many records? What models? -3. **Identify bottleneck**: Low GPU util → increase `max_parallel_requests` (AIMD will self-correct if you overshoot). Memory issues → decrease `buffer_size`. Long tails → tune retry settings. -4. **Check throttle logs**: Look for "concurrency reduced" / "concurrency increased" messages to understand whether rate limits are the bottleneck +3. **Identify bottleneck**: Low GPU util → increase `max_parallel_requests` (request admission will self-correct if you overshoot). Memory issues → decrease `buffer_size`. Long tails → tune retry settings. +4. **Check request-admission logs**: Look for "concurrency reduced" / "concurrency increased" messages to understand whether rate limits are the bottleneck 5. **Iterate**: Make one change at a time, measure impact before next change --- diff --git a/docs/devnotes/posts/assets/async-all-the-way-down/architecture-layers.svg b/docs/devnotes/posts/assets/async-all-the-way-down/architecture-layers.svg index 122d3d95d..dec3601a6 100644 --- a/docs/devnotes/posts/assets/async-all-the-way-down/architecture-layers.svg +++ b/docs/devnotes/posts/assets/async-all-the-way-down/architecture-layers.svg @@ -39,21 +39,21 @@ Row-Group Admission & Buffer Management Memory-bounded execution with streaming checkpoints - • Semaphore-gated row-group admission + • Admission-gated row groups • Per-group buffer with cell-level writes • Checkpoint-to-parquet on completion - • Submission semaphore caps in-flight tasks + • Task admission caps in-flight work - + - ThrottleManager (AIMD Adaptive Concurrency) - Per-model, per-provider rate-limit adaptation + Request Admission (AIMD Adaptive Concurrency) + Provider/model/domain rate-limit adaptation • Additive increase on success streaks • Multiplicative decrease on 429s - • Independent pools per (provider, model) + • Independent request resources • Global cap across model aliases diff --git a/docs/devnotes/posts/assets/async-all-the-way-down/task-lifecycle.png b/docs/devnotes/posts/assets/async-all-the-way-down/task-lifecycle.png index 69262a3b50fd2264985d92d52df7e3196fd19583..1d0330513266760ecdab07c6ea13368b87a0de93 100644 GIT binary patch literal 47355 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

  • so+-O7eDyUK51T+1B_pu_2p{7j^0z4hca{ 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 T*1vX(H(bV!cgh_zJLbOuvuxZq literal 196456 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

    dTSH*TU8 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�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


    ^6B z>}%oHnoLF!AoMx?0PlElC$GEY_=ymJ7%l|(DOn6$pVQe&QV<7HbHgHH zn_?te3Q2r#A(mUnJ!qB?kFitnw%z%qWJ6|r&nP=Gz7Z@NURdr-bosj&z$7GVmSJr; zaDa9vu;t1!vN!;CN7ZrOrX!$$#wDq_j-Z%j2RQv;|nkWa?$1LDS4)I;7r8FT0}g?pc7XtOlD+m3h7au;vny zuV4&Mz@3Xc@fyOxT*Sod&QtWjm5_SmV8sYztxCU6;4@7{*4Bp zz~%Dry73BV-8j(14THrqe@fr}>?&qNTpWQO>xnkGh%FI{9hryLM{3~ic8MqbDiWBy z*&0c82{||FyDZ998jCe5gj0ChtMR!Hd-ESh_k@JQU<+jz37oF;9bjn}17t41GJ~Dj zU{;J$g{(ItWlHwF6MT(^8xr_-yYNtd34aH|svXD-;wi~y{4x@Z$>ncnjDLnO!xJTw z)-*DG8s~g&k)o2SuQMsDfO5n}_ zOS8ux;=i&q=T;ajCFI}QhN*AC$WAanbMp%wv(<$g276$wWv~pexQm>Ml1Tuch#(^L zP>Z}l777PID3I<2(G24rvYpD#Se+3Qx^~4>ka+q+WN286jk6f>^%>V86zfWdW9% zbT=3mm-*4##z6@31lWp*uW?t+8@0ung#)m320foebGXMCVA*#yZ~6pSO($p0jn9V3 z>IJaM0PJYm=D&UGE!Ay`Qz94-iQv!ueRsjaeYjFjA6`61HjE`eQiOV8Q>Ap|DO!K;#x zAj^o&jdxikMB3W60P94e0PwIROkn%OFX4MI;Y6CjnnZ7%i{fbx^%yd)$PHKrY8YgY zofRAr&9$rWKjN;gNp&3uMv2HJ>j0MtJWv$>|8K5kJC0<_AIwhG&chjo14#%;TWYmh z{v+T~;6-7eg*DgNe22(yy`9N8{yL<`6jc0k{^xw?U_C|fZ!B?5qXXCz0iQXA*w6v2 z&BuRy-b^Uvs!=ZYHoh6k1MJyRw^U4eZmT)j&~%zPz@E?RrNyz}i^+y3WgE zA)dek?3n;|cAxD;u`UN#IwBXrUKacFh+^7QrWFA8{Etff?;Un5%s5m=s707qh7P5$ zpHdL}#pLgL%+xPODy&P_LARb2OMxUekTbxTK?!~lyk+g-;_}ViMX+mZQ+A@HjRGdH z^HmirMzAO-f}T<*lqIiNPSgi&wLZeM_Mx{jYdnH8_I={9gk$0Lzo^kCWGDyNQref? z4?Sf7)N_|FG=1^=LY3FSJVu2?pmY$*D20ckWu z@Ex`k!M;Yf1NX~39>#5N@+*UD#+pB$s|&VWyBMJ<^|YRhIh`56nm19&PL|*S)>X&c z6IWwDDh&{umdj$MY!OissepCzSicY{nv&i-m**`(y=DxCk%|JxNW^8lQD4Ku(22vEf~wZO(SkNP|cb zxDkZ^GWP%zaq3PHtc~(+)cIE#XPE1T?l30BZahkn*vq;9qAUld{T_r^bi2(=H_Q^*2iS1F~9Bz1c{XhN9GMr6vlyY#abPI&Q))Deq-E&+q5W zRU_@HXqkZkZS$y!ovIRy#H+3c zRFP{R#4hn0L@stQV9c@-6AnB$Sc?#BMoX|$HBKF{+J_XuQt0~GY>a5b)4SKfUN1Jo ze+7A!3q3=WX`lFP>lE;h{<_~k_VpfMCm+Guf8O-8g)|GW_VMe-2C!zm{ybl|*U!_& z$po+?0sUqX_?Rs2Z2?X$f~7ouBn9pD?WD8o=jU^KSbTOOfD?5=*iAX|!m+To=ks;H z+9R3;z#3Bgem<|Ki(ucLA_yD_ebx_g$j^((=Z`snjXK!;a!z@5p3b#JGT;6PYBcTi zEa6<2pJFaMJHlH1lMa>120eveES?KYOH^rvi{oIC>21{c6OI&GIk(y>8$%fwswUXE zQC9CNfH?*s7xncm8Olijez{hmTWlcOl|fBCz*GrCril=#7<3TUU28QKkQ{4VTrc~C ztdWl06(NG19l)lRtQM2jjp{m+**;f`a?~$n1I^We-}1C*M8&K5$6eK>GNK^66!@8 zly)lWV|1sVg#^N{?|GfjO1>D=mx1>=gnFV3@%g|?hecl&G zSSPS$#xq$&JGP^=l z!b~+T!q!sP3b-(-r16VL$#uU(s6zII**TD(3#%NdMql92)+=JypvrW$kwNpI%FPO8 zhk-kTl}dt|{jT2`QxS|4A3f+4TgJ?f#km7K2%^lg+1St`AQ=|gJbJ#|?-%k)nU|UP z%4J*j$t&iu**|8gCArps%l07a75n_dc>~a|k+yfE_YlCE$Bn#a9dy~}w`JVD2i@_k zkL@xiDt`-Yba*bFwR^bGTim2T{)v^@NiDnB*@z_#-jrb}D4F9=P~AU|2r@Cvcj$<^fqjFRI}*#pc{ z;PTn5Aa+@K%yk^dA~eK&5v&_?Lh*aWDBnAz|C&GxdPxWcue}e45c`z?QQ4|8h!T%!P>7r`23vY&LBHf}_Ud)?#toaKNPF`mSf3Lf% ztYIS!r|69^MH_%*^w&N_;S_xcBZ=(%y3FR32s^;KQkNLQ=zI2GEw~P# z&bw7Z8WwZ$9v=J+6AL+~ap-7-l7=gT5`0cJq5&)Sz-9n@+>Fw6wQUQ0tV_Ht`fz9x z2EK5(X#ukb>YKmB_1}tb2<2nqCiffhs!2-exdJ4@$Ksv%ZM;A4pz9Qs^bMG4mA(g4J!t|FvnDx z${#ka;y({ttjz&zGLoBf!Xq0NW0WDba?bV+o+P!sJ{^s0q~W%h7fwigc|Nb(cKz|< zEKfk2@+?NKg;gThV};&Ze1ZtidqkkuOzwJ7sNMzg7H7dIa0cIZj(d?-u|GZeF^(PI_(hj+riCD_fnh9qFUWQJ{uxP@lHiNW4(w zb=b;GAhlE&ipwyhtf)dYX?LF52Low_gzP3%2c)|q*F+pFx%wG(@~WJay~mhTYM-N5 zwICPLk=bH0fB@Ltd-ed>eFXQumpIVn*tRmtkO|DVCzu6J;)`EPI^dh(J z^Yp`FCKXH*mlwllauFfn0JhvE%{v)O+Gd2r&6k%8uw`0-$vwacerPg%-_de)u35Rg zwcaQ!*ClFtPGD&%emmqU$1&8WgS7m{(o)`T-wz$9w_+HGEN*S4t{t!nJNgZA6j~S# zIQ);7K>~rnI~{*d_ZEp>NJC(dL%r}1KEdt<&nJ})P3y^41rh?l5<+C5p*9>l;@Nt+ z7!GWFR6sHhYpRaVrguNC+sNnG#;BMN)E-A|%D0#hJ2B?K0j+u5F0&X7rW}n6qU|fM z*W1HHCZllVCe8{A4YR>b%S|)@_>0RGGXA&H2a!#0 zkn-{JM zDFB(poCm0l$%yT#6seYtw&2x0B7j{-2e44M1yr6$ z(63Q*bZ}bv+%;aoMGaEZO9_%|STF>jrlIxDL&(~KU?-#0zE7-HwUi1rR%-r*_!l6z zJ;bsgLF@<9Gl3czS5eM$i!eF1JCgw=dxx^-0aOk`?eTz!dpnyXgbp%UfuUZvQwZn1 zWFu%H2}0a^K?NtQ7xhqVneR%<6X1*065~lunhLY=i}|@n%fx5>uR~{*kfAjMf+wnv!>4WXrqrqU_4tBsa>w{dO zq6wJT7~fJWe2@F>&P80&HYXf?Etqz?f5xZ4;^Ct)X1d1}UjQx@O-8tJD0 z6M&kpUSxdyZ-F*U?bho}N%mFE1mifvF82ZMr-ZUH3W(Yj1u6>#Vm}h$poCl+?KGsO z24ATVFv6482$V%j1pmS+=(ETZ6Vm?kHg`Ws!N z!DP%#7%@(j6guSu`e3M*SpQu(`XwO#240QEJ%mrN++Vk4O#wC=T@8IsM?G|$K!ox| z6RXBak*T&%roO}hp)!&NswMv6tAvhUw}ShCp$6<3=eXyEpoh$<j>yH54px zgSkvg;XI+z6;`A*{>$FAHaBj=K(359^~iDRiRaqf-1Ptd%vus33lOBJq|@n#>h5xO zEbB>uz+$n8+Gv9#1Odt(iF9wsE`r%|=cp;LHQ6|_kETUMvD-jr^d3!`qCzwfG+2${ zy@+l1D4HC-3T{vH_3ifQxUeVBFP#4sgLra@V&5^Xvn|1zYuh<%3YOB<_BXx)*tfT( zJNR#_)C=nCE+$|%J?;30s33kogsPsb$qfWm_(AO{F^Y_fGcv5uaxZc_KyW_U*eFX$ zbP(6J&?^kk%Y2#;zS-|iC6G;Z?|>^xqzRzVP21)JP9hJG#${-m*ES?wAe=a+#A}eg zrVsMtp@`+%F`o5Ld`}2L?y)Q4&vB# ztGlT*bx)#hcAebfn--xvfc_{7W^TrF;(sz){ zwN#R@+Pzd0L{4qvkn@G$OiAsq zr{-bODtn{zshq;{qW}cyUG{zFX(}|~{9@6IdA}{!t#4q>?H1)$a*UFkOr{bXcnU=o zei0ssx=jH>BZ;OPhJ;#LJ7{ztp)iBe(T_d?Zs8|X_98zPBJ?~+NnPWM)g59oK)Hm+ z%?D$zmA$!Uol3~o)B_XSWwO%?AY3m ztEGlC91bcBvV{X@B=yV#+I)J&k6t)hfR-D~Z7K>S0A-Bnb@O0X7j_ACZ9V8}*5=Ii zKlzqx?x%x}8`_g9|DV6=XHB|eSLi$YUQWQ zLkXt?wW7lS(C+0#XfhRrCMo7Q0tQTA7N(JstPxIY2#x;Yx0WBxnkLUpQkqu9Jtb^R z1$sz`+s;n_03ZNKL_t)b$KDhqRfSrX?leGvfzy?T}cB)ks($BY@CN~Dm4dsaIlolwMj(S z>-q9_|GeGbF4u`lR;dr-rq@y=v8GdNQLuky+aYHFWpyK^E48FH8Or2P4Ij5?4=reXcRUNcEt$J=ha#~P3+>2&GYh) zmZ+f>U&NpOvPIj~I?h+7iNBI#?^6`Aa<@GvNHl((f_4+k&xaO*1++8FZab}iU8bb> z#lAky%LQAdUQ7&*0o^#%CbVX~h*hDia@(~^D!ylSjDieYtp7k~=xQ+fO0sPWGH@}K zpbd%M9cX_FFXLSE9CBGt7W-@T^vMaGceCv| zhDNE}4umh_EDTYh>sdmTNsc9i>`*CKYdp)HpMZ# zT?n))%lrJfYHn{9b}_L}&+J|-%6<8p{%o&r_j~-UvOxD+{5*aAe#^hK7V4fqOIy9i ze+}#Q>-i^b=$K7paJPJ_9>ZNtb zBIp5Z^AtuJ-JAL#`+J>K9^QJ<(qf)g8@I+jJIXLzHITuD5kwX%GXpxv$3Fd-5QsuJ zhDi{q-3-&t%EZXyQS~;i;oNSI7-_o%B`nBrL=>~$;KXY#^UUJghcv>mmgrX`t2;O))g#rv)j zLa#a&roPiE6T%W1hI03?SxTmc7|aKTz};gHPUy43WT(D}pXqIF6&BQ^Tz5-)O zN)s;IqRuzBJtfm=0W7wh&-69=uxqC4`FB|!@lSfi|HWVDPxHzTy>ecy`t9~zewkjF z4QUL_tL0kaN0cxAX6GeT{7)Xd!JXDj|VD_;qNljO* zmIN&%<7{BRF8pmSebxDUEO>PzUg{KefYw4_iR;%_{SHN1JgSNV=br-?HhRat}(DiwrQ=wD-)a?ZW)DOwsSf_c6J z`)nhUg`v`ga7#M<2M`vitSwa0g;l8TE-WBB-DMM7nlvXB?x1?3gFB{R453j$f=9X%=aiu#2;VIL%Y$zq!Agf+ zVFFq%?%PZJyBV4I)~*uQIP)5pdXxOcOI~F$W%kv7EzY+vRP-4+eO_GQM-$Em3!G4sVcjR!P+0tCJQq2j%e5K5KBVGAoEw2@3FCSqv}IuR3Q z+o@Z;DGbK4F`a^Nd_x_OLL)h%>B6vzNt%{@k(Nxdu+fV>XA9yQm@EDK$Cj)6a#@mr z^}cZZ`d-doJB#a?%xko-03^T+XHHbcdS$MMEz;VQq6h&k;ZrvoBB(-m8nb3h)mCi; z?Jc?Of`%&GtXOwxDF--N14dXatVeld1S0denw@)yL2T*E)G|`sRd-?^Jn5#AZKDI4h6bBLxGM9-p8Z>JJT-$meAVTVeh@kp2sPYMcCU2l!a$N-{QYHpnmw{l(DMgN8 zFqG2RAXXgNIgWqcmA4ia*d`n*}O3+mI;R(ZtOoYS&$7a-HZa%6GkPqY_h)kyW#4&!^9sLi_EnS#Fii!M z&>A#=S)Obn7xW(S#@H>4DAasReXqB*MSOkGzVtDeLtsd}roUdZcSwhKL`KIvXiPh+ zs8i@Of=rm8iqVUGg?5~j@=F7aWuySyhQh^Q>v{{R$U)NW&kG4Q42G!!NK^(hk_Pdn z#Kw&}4?#8EWEDy!*Hz#U=}zA4)RJ7FA)~?y5>lKrV_2msmSt6uT+g!ED4LnRwu0nSeJV(cI=PU z!2WqUX#qmD-TgwXe(_m3t7)g&YpZ74nu;%%YlR11p_QsDjwGp1RuCC%h}_d)v8_T? zvo=+>0EAApzCVtd?41Z%R9Lcc*KoiA^WG}KBdd3VP6LMBT3bWV;f}osTJb~2qX>J7 zT+n*3j)C?0se6w&M-EvL4GQB!d8la+NN9Kaa_>I1pNQ38g&52N8O-t|?H7#Ri6ocH z_aShn?8D>8pR-|u1W+Ip>h83yeM;kQlY$ad9AOU5>Uh9sN~zN7v7ycVWJ3fhHax&CxbpHc`bi)cWphcvpN(@Yl}SgX*#N^ z{{NqO62M>^Lr7-!k@lC)w7C*;VPWiL8=Y=LY25qhL!IUJBzOTj%f3;hjD|e4h~}{4 zEvQV!hAiimibICY5SwB4_$q+ArN3j>fy06RwbD3N^`~ zcj7s5HAE-8p{f*&89{rYpFk0fwTK}YXCo3LMAG!Fa18^y#LRF^GM!#$Rb}EBqgDWR zNt_?O1UO5PIN@4peW?Nfx*um1a8xHZJF2PJD}uSuveM(C^h=YZM89yp5|^MsY@PZw zV$*cvc>&Yocq#zPm6KJBODBkzw#4NMN7fEFVd|!=rSm}v!DRr3`zcYn_sPvig&)32 zDw7or3{kh5-2evB5<8mIf4Fm3Zes$B4wjbDzw-z8bb* z!vfSZWF`&dWS}q=GlJ)4F}*diw}GPT;)I7mBY9zDC*eMBM~s-h54cUgv3*gj3u&hv zips){N(r8iRgw3|GI53>J8fh)^FB!`OgiB-yMKQt7D42b$6QSkWwj%ZDs7aD%`1pk zAGOiv>L^fZmgQT6^r^z$3UZ3l-$NJ z>)iYHK{R=})|7y>+771nqJdzAbyRYhq>wel?Cexn5uF5!Af14hA-~3BH)9&5*B}*r z3f1`H=THnwhxb3|0+4*Xsgz0+DTnLxF$!e>=h#26wnyUzGY%Zo? z?c!*e=&0AVVk$Do&?H{mn4mJaX`o&m_tpSx(mLRTBRb^^oSBC}nyh9?FQrl7ss*I7 zpK4e-ZQQbf#^(8~F|~__&>Oj0@=FXj`dAjS80!&2ura2jX9H#d0Wj#_B&Sx8E8Iv| zoWYGQQBX`w6tY3sB$?DFh+vp*!B`KQq*#)BG+33HLY$-$IEB^jNh=R;C_1Djr+1Z4 z?{fu3swk*nvIuZd{Z!bjQgD#?nyMPbs5;7`+qvp*0@%+1u%Bn_&?I(;#VBi}cawFO zSlw!?Hi}|Zf0NfFWbpDBk__Ea?M_fEj9Ut}m$sAhO2^4#Y*GuBEqSbb%?eOjln0SO6!sBP4nsm>iRa;84QK_!5$F zma(oh71)XnItq>CvBPUwfN+v2J2c|`OdCn^wOVfyG>FOt_!a=Erl+2Av@G;F(XFH< zh^{p;cTh(#zMIs&ithM|W>f^CCB?`z271*DK%$L1qJU4|0d?_E$QK$dSbODZGP`i=$5+K@A9wa-0G+s!N99^(45$%slU@rZ83;a z+tdY-mr06(43+hzi&bk8D~=r;;{9I=ybAo%@mYY~G4}J|cq)N+LJlH zRf#Q9FNqkWCRakcZwQi6d>n2DpX2NGi2Y^9qSJ_>BpwaY`yND{7j-wB z)7y)Lno+!(^HGjFFqUH1HsP2^2f~u)s|5<7r)eRKQ>c*Jp%R7QhSR@GJ?KLOj+7b~ zy99^(g5Y|n-Kub~L&CGV8v22M*H1L#<@JFZq{P80>be~nw_wFPWP*QI+lxK`!D-~3 zGo^#DqS4T@wi3Oqqe>`iE_DSCdjco^Ao)6N@Q4bQY`j385YB&tZjR(orwd|v80|>f z=pcL|P0aU#v*g5RpeUMnzaIAQ)i$F^2Z&CMR+}=Zjq?8j3}W}#=)_A^>20_-h#?C zw1PdfNxMV4wmX#eJE+E9lVM^sZu&G)qO)rf!I?yj zF|vR#X8`8v0Vn8#FDc_h0p37`pvC0NV!nCUkh&+rU3Bd(^ivDk~jg*n3%>4bq`h*3%0E1zT0ZsraDpXvNmi8GbmWOrmuT-eX^ zaa>1CerI8|#1Q|+g)Q8#AkRLy?Md$t7G0vL#}3F1Mr0z5qQEfMpu1`z4)ukB8%cyB zPvf`FZ5#QCI~qTlNEl~YXf5{XsC#Dk2{Z{7)Crn&qR;H5;IH%^C*Yf>R_gkT`m+O2;U?HIfs~$1Rd@vA^ffwttQV zUQX+drLC;n%BqL+*&gxaV`oRZ=#6&A zmY=@osdx%~13wqqBsf-z=B-tn3WA1c__NrvYO zCTFYh<2D*M*umn0P1aLiE#*GSo)_!?r8W#3<4pU>;RHGMymWJ@B{AFCkXkqaagkx@jLOoK~c z*IRELGd~5x>!wpt2@?ghiEJoiH&l5LV|qJ@b1VIg*mgHB->?8O-e;0L(w zi_;bx9(kQ`+0po zaz-y^W}--N+!>=MiAYqTss7T14L1=6x+Zav;Dr-OGkd_G#%}CK?p~u9j)qIXe2f_p zbW7PV#aY9;sgwaf{LPwr1@n+yDePwWAACK zGu)E36`!k=hvP8P0ebf4xsOS|3l#nH)7RJQ8Ox=`_$)H*e{TBvd~1e8(P~wK7it`2 z$Pk^5b@Z0?!(yroSxgt;Xj%4@d=uePdQEsuH)$Yik|#&eN$TENLnhDIZ8d(=U@xqk z^}!UwR2PE*FHBE{74?IEr=+=wdki{@iN>#}wicbLpy=)!+HDf?JAV@8uvNQS)8KV* z)qgE+0$#uV<>|AFcF!#a4mEt(yuLr5PcINwx!0M!E?mC9l!W>Ib@}z3#dH2m4{Gm7 zB3s6@M|d-!k{!cSZ-HNwG_^afpMkX_wut1>G)rS+P1YwoAUDT%CxoGwvLS|dCmxQN z3H30ha1Bvi`Iu=ZCh=gk@l9E+Fz)H*ph2P_V4$<`pZf~vp_hf3#}4^oHtRu!Tr8rx zZ`0!Y&J964m1aAnO9+lGiKFh1z`o3I-&#{%%)F+=*Zjztbp1(7xvvt!m znX{rcMDLgPtk)rGT9?FPDpi#I8r4F5wJU$sv!uCKSBO0SOBV7Po$r;)d3}qTvEt+N z9b=}FoyIpBfK?XIz{WDlhL_wq6Q`^RUCfv@&bh`;EAcRonk`hIavjW&z^M@BoR6wk zq25WbtAAjwl8Mt8OqBvro?&Xq6Hy$o=tj4$h1IIpku_*hWlXrP{nfpkQpL8ei2nnY zgjPDyH=K-yE<4pM(_P>&TMBKpG_VxguUOl+V!GZQ`jfxJH^&9cb9KWbTfg&s+V*(V ztvtW+PoBz=Y2UiJ9Gec?%F0|qJKaOprct4?4y4_|gXhF$srquYT6qt-lIP2r>qW@L zNBNH8`j5XT4r`~XbK(}X8_CDEJNDoc@{P{H7ZX?FD_RtT|U zX&AvXLKqLF34E-jAG?G{Q|24&CF9afB)}hMPk69sgU=xc0?^hVnf8)9N{sH;#m7fV ziYBsFRMiFFKxM7XW!=m;qxWUCh8(^NXR5nOhx*3A16U@o9n{x^uZLkMRzSi~GXnuz zA?8~d^~TtCLGfr(WySWRN*C)x6y-$SYWCAo^h_?P-eenSzJpOdapT<;r7}PJCg!MD zNrsF36rva(fVt9jE<)?G@+TTRDh_jdbx`h3DD+rTHE+XDsCyE#uy+u;@>6@ppq-#k z;~CSSvEc>^%UpNrg#|8Y_b{}eu?-7GtCepSIWUhKttI=tl>92_^N%tc823Z#61>sF zB;Ypii^|E_eRral0K>;!eTryc(32fH#?Uy`gwxCm)rgI(WdMBQfGfb$%ue83{PIf% zZ9Y2yB_1A6M@x;Wm^>d14#n!&K^AVykIHL8vCJkXr~(ifBoTDjJ!C+30G(>_99oj? z9kH4g8KRnY8Bik;9y_+Vz4zSC6v?8Hi1BDmB(JZ-2PF!F?x>yY)W<#y1w?m$z4$AkochqQb9YAj z1YMbni1I5ec`-67N2M^D#hwSxP%m>80h*=NM8?>u8%Jj8GxV{7sf&sj#6~K)>0?-3 z&cHGYEZBpJhGa#OjOBFwRdBcQ`VYHmMI=?RtugN`P5v%8GfV@0&`E(4&Zd5bJ+W{n z{^;g`vCb`btk9dp=|D0FJu*#yCM)p8vI)6zF(wB9uFhmN|F1e&7({uw4At{^eLHLs zTz-i)`kZ7=Gc#bUbdj!hi{8cjO*6?``z@gC7VRW(17AQ znNeW7>(53CTOyFgM1XbcGnfTG+>AFb9pU#jQ)JY52^^6{f3T)cw0MB40Zb^iXTdG_ z6pjfh;0QNjfQi8(k1F6Pf}p`j?lkExXZVzG#?G(JRX%rYurrt{>l767otgTAL(EMF zwxq-|)b}!}LF~8QN*!64lHR!CFnVFdatO!X0Q_QpG8P3;u2H`K20)7>a9 zLT7V|-lLXx5xs33NxDXoQjUBcoS=VfzHUZXF_iBnxFxyt#Qb*eq?qf1n}fAXOv%CA z$=vlU(44!=p?p3nAuc^mjJQf8=QZwG4w5R2`y34KF;b&ja<`lK?K2ycX@F{@HzW!Q zH60nVPdxHYegy+&bW=L#BwfylESy3EOi&KVZ`ACvq@MwE%lCBG-_CTVLk-w7YyHh7 zR+=uLw>fq(2zUV5W&0`bmc*W%PvY1-+j`~2=d!4P$4o&p)zAX6Rl*g5&LY>%27~vU zl{~Dbq%eha;2i0Uzm~JZ4D`4S6f&AEmykMM-ahB*0(VYEMxM!N?{7z}9~sg3boOLG zY=+eYu^YiWP}?tYjPt=%TTXUZvax&P4pVe@)D_V*ekSh4nXb!XUzTq)s|`iQ+&l)k z__c^PydB4RFh)}x*gTfZ)|jNx-;9!JVn9Pi1I)3bwb=JKkW)0owYf#~4hwIj%Z-D^ zASg*^;TYK!xi5ReDOX?Lb(6k+)S$_)CShBmTJ!K`X^>cGq^X>wjZ(|bVU8OuhkKV} zX>-9Uxy@B22YQOVw&s|)*|Md{=3_^1>86{_$@RAxsK0(r+Up6LA0HP+aB9h4Ld_Vf z={Lg5gH-}q!A{v~`$OJT8V=939m2k)Gd*YtaA1J(}q1mCFf?9pW~4jw9hSBvDO!jouk7AxbhvRa&OMc z7{;xZTWZ%d+25hpj{`+D8aAe0kE$-9--UydS|a-jpBy-r(yO1(*?W~qd%e&d$tbAm zF<3+59AE`OdimX>S4M&9i*1$B0vn@)X~dvkrYza6$#=#A=4BG$*jvraWW#1|m;xT_ zi5zTF4i+r#tqMlaWP+Dr2y))P*4#CnY_?rU?3&+zm*HHXBKd5p2fEXp-%i=MBM7$j^Mbk_DTMe$vi-W}V3g@(ZEO%?$@jsb$gU0`dM z=IotNx6Z!He7#)AfXLUEV~B38Y48?_k4qto#DJP(9D`MSQ+O>mVsD;J<2qgd03ZNK zL_t*Y$&d+Sz-exqB{E_-AIBUlg|3l!Zr)FAtBzw|n4Q97hO{P1YRq5S+BCCN0%ReA zPE?Z(4vK1M*=?)uC=jz&>Cas$_v!j=S{o(v_56HFXS~TNnHy-OLCLLCv36feOAJDs z;G{vhY}k)ezuFmlSP&Xd@#U6?0dHu+;E5aGZ7>7yW%ootH*KSI`2v_ey{-^_uIG2(sh;U z(ly-omkzyZaHmDd2op>bj5<7@lMaCN36#8N4fQyCVhCd=&_et=w~75Ht(8z;LFMUp z87$ZyBFNpd)ZOPIK}B~GMrIX+jVh}# z3kXm4xLIr5Ik`Mc!oFUt|F1)-0W(`R^FDm{P~33|%F+ zz)NN;SO$)_Q6NsRkU{Zw9sU~cftd&h5!?+_UD6l?B_Eut zh8fJHu&xUDj_ES=xQWN^0)jzEpjA1xA{-D|j_SQr$9y?<_#DFka__qZwc0nbuX*Nm z0}(#qyto8(S3kv$s}>>I0#;+{<%vey>5r*!lN2J;_klRpC8?C;hJ=ImObqKyVp_H!Cpko5n{7?C-Hz4Uy z#vzK5pfgB`O&!HYv1At(EtClN=EyP4*0a8L&Gw5u-k~w&;>MR&XkaTlQrDZ2=h;Mzc3^A72Ora>74y)ipYy3&v)o~} zd=Of_oYn5}R^j8IAX+lJqv7(kvRrh0*yOdKIcTzSv~X}F?a6YbpHDSY=L9ViukNq9 zap1D)o|p;WX;AB6T0go_Z{S!2AidNc;XyRwx z=rA!ZMf+2KqH#c(z>Y;FT#-<*H-y68()|FNU9g1&5xQL7sx#2=KZB2_)vsE~1sx}& zK>Jw}2#!3~9(n+nxq`N`>WD#RfHh&*ngWMfE0SgD(4i{_u3N7DM>#BYX_a;EX12yK z7?`5wB$JF)z3T?)v58wDqCS6}rfXnIhXlUZW1z=i(Y5VP0EvAFIMm*---eyZKrY2K zoJa9YxZt*r9WlkBFeVxVN;aVq2wt2B5u79j$!lmxTyw8m7iedONkF)6DS<58`Eb?w z*A*-kgwP&8&B*h8nLB{}Fv5_ZN*W@_F&mboH%=+gwqtD{w5mpSW29q4>Gek0bVDa> zZA^QVkj>IXqM~@hF0-}w;N_~&xO~cn8Lg>2Dg{9W-8EDu023INkdo`PCPu;pM^y%J zYes4dZO@1jB{>Xm^=`R0jQ1A zYAZ@(6TM_V-{6bsB{s*N)QF7T1!Gbqx5NeOz>u*)v^2j-(S1RerscH$)b&Tk{>r(% z`&8CO@$J!}_#ZM5qA9Wr{EO5L69p(g~K;;6d^um`CUbeuIUIdtAd_e z5{lZ0GXzgHj}qIpw)yY_G>bzp1=cT9s!7;WzP8nb%`k9GpILDyl@gMKP4UHz&t-_{ zuC)Vz-loACl74EMoBh(PkE#a2ol3olS+D^=@EsIGORONr>X=5l7Y@+0DSws{LV)OU zcJRb#G3{%en2`g3x_0y#72Hm>!noNTmJyIM;UzW{RE-lptd&3?i^b zD3$``)ek_ZZSw6sXse4#{^;DhK-*VE`PBjV3R7P4^(5YIbE2gHYVjm>I%DINn5IDs zA-Gs9Qyw{RG_EKWnbU~ZObUX5vxmL!0ybG|uCI(?EYiFv-3Dk9N%KAKPot*RF3lf#B$NY_=;rt)R2JQ+^ln z!RttN^>PjFnhtkO{paOxugJyEXPL9{-f>tx9@^4qE5Sa`wy5Nfu(^;W($uZmHe*OK|KY!Nee}4PFKOXwn7a}k zXL%ipaagLfMTknj=KWvv5+I4~I3duPPnTIrS+hFM@v-xK{`Z-t*W+@{J@Zd~UVDa2 z?^X{3>{GYHP@OmOG@1cZ_mDVS4z;x4cdB34#jdLhy~^U{)VGX#qXZxt#^>ktT9#?w7Wcaxd&mDJoFE6|neZWY#pZ8a z8Qv0!k~9MjbB50=H!Q$lfRcd=lI#v&ayBspXUez=ss|Ut=S90;Kb!FB{4aBk`u4( zXPNbE%an@4GdWSLvYF+3PM@uBKilu=Gkr4V_dJUNruD0}6H&vw9j2Mu>S5Thd;q!d zfl;7OVax|UtuPtuxG*Qv=#X4~NMb@oNCV!0OlCb5NPI3pIio7uA*yZ~?By((kQ850 z=zRO(CJ79%f$;O~%X<*Vdq-BH(aF10Nw52TNnqigRqMI(G5t^{rvNzTYgx(Ba+|fl%4yKnp0*~MU)Fugisn{p)uc}n_31b4?3cmt&osB?^W+hIdax(Ck7*3o_xZQm{m&fUw zPtO`>HUURV_P4F|u&N*L`DHhoS7NgPDCk;&l~hlIHD%EQ0nQ~o92)pO6qtw?6I~4} zEoX-mHPqL0hd%Q%n%<4|3sPn#0AEDfgF0MsbM5+XPev=EkO=R8J>^*90tx_;Jdm@N6oMUB`MS=4Y`bootU%m$+hgbE=I-A< zj&J)%{JQ@hCy-yJKQB2F?nl4TP8YTtNk1OH-HkDM?f$hUaoNqr|FnpGQvJXEqwQa- zAbdT$aZq9xF>NEED?-llb?C2aov-2*N$Dk7!8DiqpHFDWfIYIX=ZTa(``%*d@ke=t zYmufbR0fjrYLR{*%}k5RE3n+cd`-vZ6b3!}S(VtA9bJF~FqG%dbsOf*P_Pi0qKISe z&&1ecJS-5y$Nrs0R9UoH-Dt6W^TlCfs32NVDfo6Gc;(NGRkN>X6VkDBAH2 z5;;gWEn$6&K9iEl=2-8~W$kPI+VZSz%ks$H6SelHD7uyo%xu4vi~C8mSF_Rvp@nPD zb`rK7hd3>vlQvSPK$d$=rgcEqgc`AjPO|GLn|+fDqdbb7La`@Ms7SR0@`J zfN@T8=$u}GZBgp}7^fges9RIcZynm+0jm*R$7Yp-zKiNl72YT_cQ{;vX zC{2dR03NiM=&TeJxB?Amx@(Jc6xcrPYyMfE*Bcy0{^`b1 zi@qfeg%GZJ$IW3JpUcnuvHQb+w<4Lu+r=PW7UD!vm56E_Fn^<++6yUK|M$y#n@Tjn zCJiKVZv5n3u#Ayvf=mV&+8xMf4+j|ur=i54D)}VfhNdBr=0lVWW_cU3p)3e zsICnahE2o4W#$xSu2|eykST5hY(x|S3c#)#z8w7|ZLYSurQ(I2b6uaX^_?EMNm+o% zR+p<6pp9?(^cTgmCi^k%s?$yqB8waH-Ua7lu`_Uu*44QUOorc7W0B6uPYcXy695mw zG69=V2fnEdn;&M&Exn&S8cvKu!1YdHdA^8pGNlx#*9cH%0yK)v{LCfEq$YWw&M88{ zjC2BBC}rZ5ht)UrVP5q}%sn-YIsg*qh`cz-osnL)`2sTKCCRBv2MxiS#D$Qraq@Ls zr#(9whrdb~u(w6fEvq(0JBK%@V3tyKSzLHJ7=DSw+PljA(@8`e$E|BqrXmO*Oi-Nm z1ST|&T|cdLj)X7vC4PRNAA)Dok;B*&OjiMS_}4&|n@Tt|{Qbdki&fjO*ro6GJc5_y;+#8K6i@1wk*!&DE6P z(Is;ig~dt!4R^r>s>%Y>Xp_K%QNTXdS|NoMcl2CL>mrMU`)2NW)>H}2om zV85A3teYF?+HIVp+9q&6Och@=mw`WM2=v4J?Q`_z8ap=#Ewy3bYbMrgy{${alQ+#} zjTWM%WPJnR9=V|U=jM`Oil#)JjK&ZO?vS=GuC>v1oI}q#TkKK^i@z@~{sI3KBT+nO z2Dy(rMlXQ6$Nt*ev0X*t^xQO9ZN8%hnGfBZ0epi)2tE!W=-U6!jru1by>s8y-Vc`Kw~Tn8<_OgedH_(oZH0~8Mf$O%|3 zgwDlj6@S90c&Dxg!>NNrrrdyfYH=b08=SHp%3zEWu()@&948+$@&PZ?o@}%g{B`$i zsonW2v5JD`6BwQUcKp}{Y(H*hF3J6)p`3tC)>41R#?^Uew}~#+BNvvC1d3V3Ul~rQ z>e{luHu6&ON+sfja2KK#76|?BPby5tUG=0l3%~X{=i6heDjd+_8#*8X)ySiNO?8w&(V#BB4MX1nd{eHJzzio*(Bg?l{N!J+vJi1fX9S_&=Qx}_KMqp$Ij#D zImn+_N8_+!cW}km12yFb@fd}lUy2uMyzv2;B%o|5!X0QB`w24gq9mR6He(3k0r&#+ zO=N8;#Q76l&@c=(X_qHcePM0m>rdvn2tf4-NR5l4{Gozv%RSq~>QQ82S608E3fQf) zF#$`x?!9MCM}Ru(Ct<(!QP=> z*ua&FBtY{jU^_*F%_a(4?laIOa~+CyN0$zJQuX#k4MyUM6{bvqnUD;hm{PAOj4mMs zThh}>oP{)LPQdov=*?V2j)=(DTrijl5z8#)lw`{TLiq|eDsu{wrT>H}hdE>s&ey>V z)3IDr5j;ES;z7XvkF_h|Zj{%dFBNk4zZ{)^a_1jj3@GREAF3DL|%lZ}KTGx>9xh!=c(%E&*e4sUR0IW>qg_sJ} zcc$y$+qeTCxqn@s)Z&PSx2^*T|Mw7ja=xP!p^oA|sd3GtNs==Z522O^rj}>8xOlrL9P7c*K8T5v`%!{Q(m(ilA z7xkI95QQ!yXuU2nfoDxdi0eIHLTd+qekt;Zown@s&<~5^o+F5A>qK5@9&gV}e`JMS zD+yLXcbe6uii>E4f`XU1_}R`{1;VD1tz0LTpv;NZp~!F*tVrd`8R{p+#n`F1iX|Fe z7VD;1EgSjoBo;}{u*f?JJ_@T>FRP`bXBKQ!MoV%tuhC)Q%l})~*%Tw)4aur6|FrB$ zEe$hq(9lP7FVgx%(Zx^A*jsWVmSM^wCyetZEp^3jRhAxfZ!EPmcb;ER1P);TFqV{d zs|xT=N6>D;27o=WCAAlat@UG^Op=`(R;AzvX~-ssO;36sHNB|+cuXKl^CwMv3oVHxBz*Ugf3Y%*Y}krT?i5Q zxJIVs>JVXu)mrOt^*~m8pskTSDas*3Y1E8d)6bObMSVD5PQX3#z%O~b&y&PF~2Ca!Evk!BgPy;_U7A#hnVTv;uU|IbHK z#C7)yL?uN0|36$#`eDH~nfWTaah<<^zWwq0`-|Vd@Ed)tql&FO7{qE=<{3AK@ecaSta@0acU8P$CXMF`C4bBchrH+>?_DHmB$0oW^2 zm`k(T`Fo`P|Dhq^2Z8&|j=hWxd^jx;N{!5eP)WU5G;BF6I<)HC&?P*PYK6hpkMH+p zN=*P9@Er8RjQ!wBZ^|Cot)|t`58J?Z8}D4O+X78gZH z+*R*Vt{$}fRYaW9y44wP%uu^-GMtfJy+xz|X1>=4K0IKJ> zM|5SxkVPc}a5}UKPV|0%hSpWPSN8q&wg_r1;DY_YMZVr2JM@w#ZfCf_5!B!juk0lMywrGYw$bQC)ERv7#6E7_rGU>5xaPg(x3G1lv65N5s;@iHyJ}Vek(7FNI`Z4eU z@HrE?uqTrmmJe)#J_lIk0Jgx+f@{Cp2kl8er=#Wx>+SKigOT_}g9L+u&~3{H zMrGG_8@{KJG7^}ah)jCbsXkFKL_w}#!4_O1yVi}0+v))IiOVX|*ON%N_zUb|>@mW; zE;j*4m@1E~MI9Pe6}qz5$(CicM1V*mmBsem8b;UkEU6HGSE1ox9>l9sN+}69rlk&& zdy|Xe$f5H9o7r?QF4ymGhp#_B1hA1A`};fD#p5ge-`TfA7l2rpcQTIoXcvgmAqWxT z5V}c25ok8K6Rmzjj~?*}<_9>({q*_TkI&@dY&x7Tuk9R!4!ls89Zar1uo=*M+tv;( zpz(_UR^w0W4OSv9I&9nQSC+J#p&H+zaf^~%Ex6ze+5@bosAKjqV;x&=R@Z_wHl~Tp zbQUa6Wdxy+kKe@pe(N>_SWNhw%^vU3J9D0174FDv*J%aYm4<*@WFweet%*zSLeG8n zo;wL>_4Bq_TFiSyyVZ>gt)o}o z6pux?)zsnSe33@CsEc@cegs&uW(Z&t9~;Il04z)^nqI$-CGg+$|GZAerYur+(WnM{ z6M#UUN|bbn^9HO%2ys=75}$+7z-)$+At}}) zz)l2+aM6C)zQ6;G0oEB#4qzuKQ@#`ve7ZGm+#9B+p0Jez*U;?u+RI?@rl0>ne#wV7 zLa~%Ji5CGZcN3e%(mOA(c|FWYX9vL6J>?x~G4CD$_Q$hCzkBEJB+>T{uzMUy`u_QJ zGJ)5F8f`j@4gh{s0$4ObcPXw%*DU;XBo+iynM_bz&(YmSn$^b<-TNh8A{?7(TRyu1 z1g_BgGl3uEH$@5sz;%qU@JEd!Ve8Nf**PEt9Qya z=fRJ?Y~pykjJaL+9$nCF{-t`KAq$Pm_z0$*3$o=dl6PlUal$omOU=2KWps0&MTXYH*$Q4*~1~bM#nTJcfAi zhsL?327#3T*2u<8^McUW1pY4xbbEb*Yid@D6V-L;_WA`7i$+)lN?*>R`frk{I)@y5AR`{RzbCJqZyR$rn2xurouw z-p>1)J4FIlo+$QLyH$#a=_Qqx2iQC>UGfRFICS_Q^EmGZKDoG^IT1Dp`rhkcIx~L= zUSz9PXS%+@7!`U{UMEA(QiL8R1~GC-c%iO#4@jdYM|6YjV}SkB8k)b`()DWEJd9JM zSYc#EIYSh~EHFbA>NJs}LpBXPN!0YBc$fa7y*vS1fN#Yq&9wvA1>Z;dUoG|OEZE*R zP#ys5KM7ryaLRed+hSDb)&Xe!;((UJ3l%4GoNM~9Zlf00NOu={YN8?=dg(e{<`^dc zTN_K_fk8vda+?CIuFIqdR%nf_>a_4lyG0a1;C9gUcMAz_eBGd!+K_I#LC*kS)tKG` zY>zTq7ZP-L17E8MEb;E*_#v+b&IHCOcb!S7N54u!N4lk*gJ;(d?{Vmqag+_X4$gvw zmnx$g>O1cH-8pNH7}iR;XC!zdDF9-X zAd7eig>iU@RrK=-!~2|Ya4U7$uqfB1%E2b=?+LFPZ=Eepv;?f+9PXlC;;E&4mInC* zV1>v`W9rB~;89wzFr25+#JY0)Qp)|rVDUQbm*Vu+0TSN{0bPWPFE;Y;cu?wy)jiL)~xc?bo1hmKw zn%at+3vlDCE{w?VGM_2{>{a;selVpLtj^LS;%h<&jT5GqP=-l)%o~QYJir3_jAX() zjsUy6Cq`LKZUo@z=mUbEW27Pu)-3qp7e(N^+IfIm{aHJJ!ohXwWY9y=!)RCN)zRXe z0tEaYYuDN&sj37UL>d>AQ0Whb;s5`ew_f1e?%i`I_MGjVnYKkB$;!$CZ{gWZ@CsMd zh}|=HEnsjU^?c|NnECae#gaq-gDJp=%`G0m4R4>Yha;~1&<_({z2&RJYRqa6+-6ru zKA~&Hdl3-8R>WY{S?W9P%x50Dr9}Sfn<+#+ceQyK3+fcfs^^;3dtPh~8K(=U@9AiP za|6`t(XDGvpQui?tLE?M_`jJqE~)dyiuVw(kPWuD2#zW3v2QTy(wkUzlWRy*uWJcy z3GSAL;%3J=oyL(YyKulf%n8*)-7Z5(Q2|U&I2pPe%aP>8pw=Nq4Ly2Z>9~X#%2W z0a%CLt1R}soB1wW-Rrj8L8_0Ga-+ez zb7A#vi%oN97LwQQBoW*c8o*PAbx(8^5i-1VKSuH+0_>XJr)RKWd$5;aT#)4=ih6|W zRTh7S(Gi1{I39im?}q39nJF@fzGO28eCpg$ix^1e1dD${t)bTrus8Sr2OE?}B6+XT zHZTC2?iuqf+{w__@4Do{2J)id_sf`pkwLxBmrRo8@+5H3{|^lI#_q2U0-w4)Guo(I zNl{%pX3hP^Q|8{WpuQA4sH;M+VmvZ8#93|muX<-DZbTsXEsJmN%?{h`WYvKLoBLC2 zlsT_H<~K-v++XZ_L(DFwG+zKV=}_|il4@WX3r`&J*%c+K8C&j4Gt zHYe-U5D8{sIf0=tUtT(-+~=+#(Czc0`}yX)mHR54$WtRKZ~U0njKy0>|nvwO!pDS$tE zip)Q8GIjOW;oyYpyELzFyHCl9wdd6Px4phj-q9yN?rtk{wL7rIJS2;y z7Yc0l4E9DMK!6Q_vksxudzMK?0L$e|ls!fe;~X!!lSU^1oAX{{{boSzV!v!SDF6wSx=_<-@i7v~TrD60w3bYmmlm$__oq=x$SZZxQ#2{P3 z*~vD{VHPY<8X1)ZV26c~da_P5SVvg7^pPkje*YtW1CothRcp9)0ayy1v1|c9Xqd)v z<`qcrMw$-*WcdytG;XTuPJ?w>{Cl>|Wb$M#OavD$g6gVVwnl)hbBamQb2WMHFxid( z>q<~lQ}Y1FV%7*~t)%ubmNiu?CgvrPp?H0?7{HgOF(+CzbDj!98@um^-t*vsC7FLB zX-~l7$iqM&9~}nHWq_qVo3w;jQ{T%XE}#72p#q?qB#GK}4Kr9oR@Mjn7GTYz59mu~ z-yBhHYX|y`G?_>9t2+8rUuL_F<*k+0JmhWeDTF!+nlIM@0Nw?CFBhi=Q?7=LH|4^f}B5nKz}6Xl}N`NV(r`tuw+54qkt6}s|>vm4A*qxY@!edR;%P5~WlKNz&1|tIMjH$6& z80-T5Gx2i6Ph;p(%d6|qr^GT$=?8dHbR~I~@Webp@syVXo;Mru8Gq;cW7lwa}-V15f#H&m?Z=n^b!POfG0`WhJgma zS~tY$0yEk%uyXnbl~SIRo#%_p;k^QEy8~D@KQcD9LBj7(BHfcrsFZbr3k6o-81Dy6 zu5oDII1g)v^|b&jUp^bBlI`j@F8nLsQ3lC{T907KxzB z06TJPfq;|E()vks+lm`&oo7pYeYx%VMj|lJE2w!;ht2?dzil7`EH0)K41u~KYZk1S zI1qXZx4i>cQV2TF4|>8!K@V$zK}7vML;>Lri=bt6RBTNHKxRIV2`+X5%n7%ep>g5m zNqLlY=n3(qyAWhZ0hpt}+SwIgWlI;t*gbVIN=@YIa1Ael;#v zJ`1rKV7X-3{LE+A56hPRo#lR8)2bdR)&?)k0T9ho)T=Ja$-dY5n{$HeW=8?Dtz`(DL@9XutK-Zr*>*m#8RLiRC71TV6D%`#&2CE5RgNE5f;^sUy_+JYl zv?T@`#oh{V!w!9^cwz?2Q)p>wq;m9g4$a6|Ni(lue*k&~DAGp)NURU1l8Bl|2HSBV z4qL@*&5@#o!OrD6Eq@ehp)8};{NW#oNf%qcnSSE!R^GP##Nj1OT6zolU`6H7^3lLn z1VJ@T>`~xhM*A9zf&Akwg9YdifE5jv=J^2c>FGT~3bHOaxwpniBkKCR&F;3);Qd^X zeGKPzgx0JY?8A12EIkT?^?C$cO}d$;vF)bbqO^$%Cj+chRot zCzu=~!1Jx^BGm0TNu#o0A=bL#r|vm{4P+b=kZx#LDCDHWb9R z0IzWw)`YQhxzHd(ux1wlDXU!kE&yBY6L@ghBwDQFEEoPcXt1{K_RVh@HWFYAJsDJK zdx8F|qXIS(!R>I|$pqKB*|i3{mkP46l^LuKJ(iU~AOcHkocqeccmdJ~xZAj5g5@;_ zmk%~nR4$`n%@iHEI`uQ@=#r&!jB4=f90nzf#7B{mGzShJ23UvzDlx1`Bmn@sFmRKv z0izn~!WgQ&msyRm{0?A!*bl=`Ly-$6R9RVvUZfBMgRgRGMTXd&P3wIRh33jMZ}xKI zS>d}8bInzio_TG0*xc-5@{^it9^9kmWHd8JOgAMDMY_NNV1LNNAAAq1lwrPA8GN~( z;mVqg5BRd+_c6pjXvAf&^HSivIhjYD%Jz0Pt?F7L2z{5PK7=@T!1h|4W>^ug+nIf^ zm=2=_ztggRA&=*GC;+Q>06WOn+_2t?XqW*u`wWKRBQEiGVX*ci8Dw$`HL>r? zD7gh#5tl5CF9BG_?mp0aN6j^Iu-ww<#9k?rCL}h?w!aUh`l>v4q z5pY4*NrNqBC1cEbnt&;X3+7Gx%-`ju)!sT}Hb;Mzt~EJ-Z=Ph|$6dAPrptAAr`_-f zqgRH<)fdB)I_#z;E&pc$^XAk6brT|(TQT;@ccHFr7H7(OyxNw--pX>%5&^m2n<=6y zpnkzqm~VTLA0}A(Im<7H+_6?pn>#UM+PH0al_aqzH7|ssJki)SEBmc0&zN1zoTq zMV=$P9$vkiIYqFO^iYK8e3-$+mAI@kfJFo=Y6!L4(_qXZ*re@tP|rH4m$Ke=0@y;f zw=VRl1Hgt`AOKfD*ZKMCT99QSIMay|tO2ZWt;+bEBXdbu17H^cSZ4sMyKzLf8o}0@ z1^|{x6{^RZDvMyT4sxV2g8k)B3M^2>8xWfW1b5 zRcT`mj#bZhmnwUjqWJ`jqdolbY&5Mqb^WUGQ+CkRBsbHVU_2=9}QOBn&@?T>i z<)Pzur=f$hkp<+m$MK~HU~2(bC=x)A;MPyCg>^Ri5e@wrz}9GdkY%St%w zEwKopSgA}fqP>@%$+2w+I3mC{wl|YXhsJo)+!X;Xp=%nBq5L)E6m|Ri^4Ar> zN&}k5JE-lvj)QZ52C)2KLng71YRDZ8SkwAKf4*BYA)?DJ(O@l0&fTvef<*#nVwvqB zto+h5nq+|0cdShBZ`gR~%7sa~ZUL6_v(Fg8P9SFR-xOd$Xl7U%e~`xO-5iL?7a~ieN2!E^6rpu%?WV zMX*Hw){|OPSu}2}iZG3gc}Yi=rqjG>7K&Pi!3bltZoK+Ojau5N_EVHdiJD!1>C-PQ z4$r7&bkOESS$2lLYXqYW5lt>+Tcb>ylPo89eo&5Pj>TS(gYBoOYlr9927pE2>O(kt zTS|acrom(C`d%8E-h)2B@>92&B3;k6ta{p z(g(6IlTQFEudgsuUI+)HuEQ&?gLM&jsS2X=PYGla8Q-5v+o~!?ScjYRW+=eQvV^18 z0Oh%D{ImgBEpmaX=rbNhL6yB+Hlbm$O^uDnyCKiY2)No}7p;@IG3`@QtBwLxWiwT| zr$Dt+UZM?nQ^bx_Htw!rLzT-PQdNByOHv-8ehbIN%o3%VlT1{eKF-(T^v#re9nfKu z8f8HiC;+Qq)uK=5<2KA%Sy@G}gHwQ=6`miX zl+V!OBT;DEjrSa2q0)R+CYLGSc zc;B^tej*d=nhap2hhSn!m&Q1EoHa*I#{gD%0rzp}4PbSh?~~VBz7Nr`l&T)nJU*1N ztm`n}WF1;d5jfR$(N7LeHvwS|Uk@XPSPr&TfK`&nFg)++=o!HFx(+X7#0uB6daXr} zLfCTRGw`Ahdx{T1mBJk5$nkT;Cm}=AZQk{pjx4gb1bs{<(3WRVwkqUpT6BDk)lu-e z>qeXFztACDABO(D;tcLx{3S zAFSwQhL?PEUF*SGmhEnJ53b41Ss?_yGkvD(313}73LU>l|N z%H_}T!VwE``ioV5N5dQQ%8|f4P z8*`sh3es*f0a$37Sp=(mhGzARdx5XISu?7Ac)CnyGZM#Z%YxPhu-Z7O z_J&fK_tuOGMp14WFmhGdPmd(7>`vpYIS5%@L4f*8sG+Xz9AtphDNiw=GOtW&Qnp5#}rRtz#rUSuWE5uqGD z%@zSq6<}+VglSY3TP%Ol?6Odg&s7`3)TwvE2+m5x(>t=Z4Fc{o%kLQ)J7tQXuG@4Q zK5i;X$s!jT!8TV#cuHJi18!3Y5mYoEmMd5`3Hf@|-H@>;T@pw9uMA+=+HyXgu8uox# z2b!|pth*&}4cja}d&6A%yCfLi((T#=j1)JpMYOsCdWZ4wy948bTunIG1KZ3NPU(C<~?Gzd+~;NFeq)G7)&OxNgEMhBK_H`wakgx*>b1 zYFcTFLPaWy=={k(DRTMbg@q<39|1Nwti(H^4m+CLYjMg-fVkOX5_(-+Sa6Y9VWQ@R z9e}^AGzNghpEu9)X}DnISg>-sC-24wFNH`=DphdgUm*`sbA!MH#ow0K9|l~e1kvj{ z+@XPa@+3M$|mfp2c zmg>w<07~@pZ3aaZj|t=ryck>KZ{Z(@p;af3@a%-o4xYcV=t$VO6`fISV{SG07=GhL zNf}PAh`Ra92usA<)y3h2g9*nR=MMv3`kqgKiO$@HgOY^GdH+6z5oZmQ(QhPJN9y64O^_vaG|c97^2SY))PF8 zB1N#YPK#xQkmGh7GAH33v6n))Kf-O;#9+ZM#o9Y{vhWiUEizJEO1LU3leK(3nCrP^ zU31Jt%k?76Kv-(N+@IPYV<-qjt6DHA?=q9$bxzk+r0SOQJtF+U0R-HCo z(U~oG2YipwqBf zhq}Ag;tASB&y>=GKC&J4$RZc(q649QN9|n9zs5DL^pX}0Qv+BRePqOr!B}A`yr^e$ zs(9dZ2s#|dGl^|e&4#8u7}MyT_{?AcPOW1abqTZUSLaE;dE0TD zmICZ0m9J?9uEoBN_M5GRXwWLaDgks;;*_y9OZZfuoU+u~h3|!M3p`(~T}A1Z+vL82 zY8&M2%9=E-%1mi;|9A1=VL3$JF0nAWGPzve${^~@aZQZb>g<45oAIm5oMzI9L>f+u z3TB69Rz_kg?#vi>Lv<^PT&GXwZqdK0z7!Iny=u}PA?)WMJ*uJZ|7%4(X-J_1Y58t+cJ^<&ACA)jbSf=QbTBIiIhbrE=%i7B%1WZ93Ft$zT@GHVX*IbWJzMaN(``;a z`u7|Ej8AcxFO0Y39#`)xMKrZ+s*|}=($s9DY|>5kA8*&Tq`IyHBU>Jz%;mt42a4kVfAhq5$(Efkuot^_&8)d3 z84|Z!EvXeA%OxZ`U(f7yO;fr~9Mj5R!GzBlU@PgNJj#k=S?+;X^^EQMpBdrux};;B zRUQ|bz|)1kL4!TewQh{oUBi=l5MVj9R_u>$()|QtG~EYO*IT9a1F&6yHTzwY_DrQb zLV!eV*g(=?X{nZG*Y88+({jVF?3Jdpxko@#t+{`Io= zsS($wK}rRi%=a|C8|ovAfJhb%IuugUB_erEqrj1fy%N6G#y2?7OmXv$g@`28NQ1m= z^RgljlPs2?%%D)U8>+_;nBjJAG%!jP+L1WMF$`aFW0}ayec@Q(HIG*2K$H=U^RYx% z(uE+B<=23WEz0NZ)P{c6j;kzN$up_MtP*5K$uKqQA*<}%ka7_V2cRmmCwvQe85bZ5y|*}OmhR#qLT%AscP_3E$=r z=XL9bYRV4)A;;=FFUuIL)50+lneYK<9D(nI>5aKRkj*j_c82~_0=l?S$VJ}%1WkaB z(SZ$tSoj~fmso)0O@RVc&p?KTW$`iij3SA;2618_3hQ~CeO3j z3Z2-Dmk9WpFgdoeBDyJER9htgjwT8CE)i56GON_;!q9b2s!L(QF-`k(o3&A`n?y}# zJLp2r+Pd8;5g5sbv{RVENCxKG=Ut=0aurskd%OD1bnj8`{?fSPe=;JH^q9^ZHRi08 zs=|GC7gOf48q)ZM&Cn7?O}q%k9j??w5?~x&)EXncL4=Ww2H?F@s|h#UNV18o<9W`oqdgk5mZ8_dn~(oJZ(q=i&9XcjiEB^m-uVWl95iX_0(w^ z`t|_p8VwF%{yEz-?K{`>CkCtNeySBu^k>ycQ4rP4frcY%4dY6GR~=B2FE5b@P^!m- zM)>Qa?P?{gh>frbvtfkWjUv%ZUu+=>P?9RKE)>gd1iQf{0YKAK0F-7{SP#{xdT5Kc zkk4!ZlC6Wbduv)Vt3|2U0@+NOwxX8m8^Fz8^h#9zd5A?8UnSGALT^?UwP7Kvy82kFv1;r3cxSQD^5J!$!tHw}+Ef$N|7=O;&B(!|JCvk)_HZm4T|`!J0(h zeA?AJfqEKLFv9atNu7#9C+yaB(az{F5Zk({9-BIp+ZZQ6bvO_lUyETGF=O!mZ5tE@ zv@boCX^kF8yCu7^8tAHAs%rSUFr@Zhm)h|S;b`fPiWTOx&DDsSYe>Jbrm77P8;_<^ zqwc?hSIYo)7liZ)V9om#wpJ0udV5RV2<+cC17FQo+Nx?sN!h(5@oHXz)eu#pR+-Fp zP3pO|9Ga1m?ouQ&V38lndB zHzL6H$9AW|2XfL6*i3V*L~Hqd#HqU&R;DE8EenV41FWz^K1tQS;1?+ATq|nOgzN8-&1i-yOU7h&iLw< z$@$_>wo#DK#=3)fca!B5)_kQnVEo&OHo3^1j*I~!3g8OF*3agy>E!b5%2rkWU4LhP zuK(+Fh`p-I)8#&=^tIQJpz3-Cu>gx?S9KWJ6TWf}4ZYqx=;yTc&ThDYWm=5?#H1wG zZbxqbikn(%C50JCW-i5Iu4d~L0GH^lqxz(v@D2eS!ZYCEFrTvy9xk|tGX9B?1XxkiKH$RTc z4QzTH^x@@)d)(&V7(yPO&eg8p(d9ZB=1b(=_Tl{iJ-IwPr@Y|y;ieB>wW*~7=lmKB z?VKN-(o(N#OV-VOzCG`4m0BaU83qFt+vCG_u^Gf{R=WN~IsQD0tUgz+5y}5&cFx9jmsXqqKKKphD>pyV zc>&n@pq4ectcgo-rgqojES0Y<;mOLI(Lb--CE%#BkK6O;eY5-w@i^Sun}l3V)(!G1 zwO3~rdVS8f*PRg~T}YhG-h1i9%P-A`y(n3z?i_N(~n2A8-$eb8__n z`*H(|o-aR#J3LJK^8{_$0kU*rlLl)-6@e_gX4AbMVOn#=mWR2f%@WG8F5gH?8*wv8 ztXnE(YuDa|VPY1sn9ql!IxZid#~`Q%^SXF-#oxs^%ai5!jxD|B*X?Q? zh+l56<4&nBX1c8SmAI}gNph7&18kq}vP;)pD(QI=UU<*;R9r|kD2uwn7;Riwl74|gGx5wV!F=r(1-^qhB zK|J`P+k3DwUq1bD_T{H=N`DKS-@9_ZcYa*`EigZ)<)=@_oaS=qeSX|7Dgvw{;mf@} zdw|tOe@X&a@mg{)P7;CH?-~yi;i}MmUMFctCyQ|csnnQ(C(Mzu&~xc1lXqsT{j?bz6F5Qq;E?fUv6Ce z-u%vw2(YFF*w<_Jb-l|e+>h*2hB;B89uzV3ZcSZ^A>ik355pYC(| z5FL~XY^llGChBe^%Xsti7`(g%$ztFI&QkC@)Z-!cHJJR8DwG3--`_bQB6u~{lxo*O8!RRD(h zw4XW^*UBd}D*MDatPKhc>aRlmZ;XX*A~L}0u7AiL_nQU_adR9Vh9Dp;Jj15Vlhe(* z*)&lO>UloNtbzvXHenHfh1$R|CBvuHn8-p;N8Cj=SSVX(-QlBAoYKCIIAM)J% zZSDA+J&M~_$Ab(}2|a-C&FAdyc&Xd5qQ5}wH(Q!)Q+8NVof;du2;R=8sw*F?3HIbF zsQ3lGw^tA_z+&xWfE_WQy@VzlVF>z37*KZ8)D;Nl@AW+Df+l`B)R~7Z3w$Ve2_6Bk z10VD2<>7UYs|!7J`yNGDVGCX!rww4S9x*!W(ob@I@qwnm1Y4d+>u(uT2LPKFCqugV zWVEW(|Na3-Q*jcfdf{BHvgog#b3c_WGp%A!3IWzn$^|QdN=&dHB=@T%_jl-^XU1>O z>4z0K>T(;%7mMVs2~=J#`H&4%P#k;?h+{L9-BtE&wESp39)t`Uti}`>3lCsPgUIY431~P~XK$3!eF@$w8uA(fcsgJt5rkVK2j7EIaHXOk z=qJ1B;Z>sT%1A&dGM$wwV6ZK(T6AYnY!R~;W*IOzda=0NrsYtB&%sct8@{UYfk2*- zd2fLcMz$VHsVJ)Mg3CHMH-7&YtfK|SySv{D`>@zM< z0v7tp11b!5k{rk^8te|RJ?2zNcA0^1+w7h8jjVZEL31Os==>2_lbK;0dHxpnj~Fby zeNB?&N|57nNiNy8`$y&G^vxga!$3J!Lo}~^WSGkGv(2NieAx}$8XC_DfMwWR@UWFnSjg_%W@wM% zJ;vu@m_}KV3o9}@-@V1s3U};p2Nw*p{|k~_$|p)Ub-J2v5$b*$nyWz3J;(bNA?!`P znWw*0BhUPe@))6Kh<)qid%J+RA8hrq9!x#M)|{Gf+5;|LTyT3XmanR}6OAe(uzTx5 zm`4kWWdk4V_m-m1(z4|2gaWX|h=87Fh!a#9V41nB?Yx*yXo#akZQr+>w;cK!Lo!6v zgTdAtz%mIU0a)U*Y22~E36Yj!>>aJ%U|>Ru`z|5@G}@iP;tBcxY8hbd+6%xUCnFPB zKej(iXWsx=`rPqEVF{Oi6J;1|Xis@jAgi(r_HdmBa^rU+?d?t}5cYlqpcv_r0I&?I=5ai(C}unkW9I<2S+@~^(7*t@n!b0t zs{>%)mIx?YXHo`H#r7A!t37}XDNdX(x_PCeiTL-HoEb8sL=m`MbK;;SNtORJoXrDN z;4?e%LS;3~=LTLWGN_cwRmwV=op+`t?Q61Ikg2Oo*y%e~nG!A)Khdkc+Db*e6_u|O z++t^NWMey??kDU;@VBcAd~W6>0@F9!{wZa2h>$Eu$eB(WL? zuwspL04w|S0bm($E&n6h09I_5-464@jm1+5w&VboPcrk&2B^xu)I7uSvoP4lj3-$8 zahxCw17Mf#M!!mro-*HZtAP(}TAn>eskCD7Do^4AZ2o!u#eqIVS(km989kAKniyyq zV8^ns%h1Ty@3^!jwYnGmr7oIzS{K7B;xe|P%)lHn5wDb3Xc=H9!UG9^3u@-k$*ZCe zJeHAzipfAEhv43A+rn=E`+?3yevYq$>Zr1F%3goVdNC7X+Y{sF*JlILojkw=PgJO(?0)UFWMBtkEP`X0b+IWxyZx})3x zRz!kPBm(gZKq3HGVkYvrjH?y!G8o9UzY|{Fvm^MH}wKrgc+61evKA%FgNCIWqYgY|6JkUp-C~asUe^x-Pwl*CoXvwnKbN(Y77KAv_rnx=Rv(#TUKL=Rt@SoXW%fgw#0g0#vnC~aR3gnJdNz*@yddEy8TT-eXW+`Mi{IVsWV6e zU}gVlpP9gP$?U3a<{mZckXP;8H5zqVOnsNB>-4$|?gco2y)&velDTfN8f*Yt{^|lm zvR_5D0c_(H8eHb%=u0(7Bm!_s5myWYEa_#Pnyxj=Nb|bR zL@gRgm}Th7#w?axw1CPwq6wQ*wj3+04Q`jm@j}?xm62JLrQJg?-KFSH{LnBc2=Y?7 z0qhq6#I;~fu4f@O^E?X;o?wCsi;2?WW|bpZ>NyCgxItwk7KE**)LW31zpHvCX;xLH z7posv@8z;84A`s0PW5c9NHthhB^I~y!|vD4UA(pICQ8}PWqzw#l>`m`>-U3-h{qn5 zos+?qe~Gt7%)m)mA`xJs*guZJN|I}+k!D`>X1GbVrgg3%S3tYshp*kzRj3*ptsZ$QB|fMxQkVO!WdUSLWLu+6>v zE6PAT+bYh4mut~~Etn+-ut@SFnJ55T5U*v{Vtmk}XSD`t zD^!!0=3ZnLlA#p}KA-JxyAD!2q z&dY=@9kCC8I{-G@ur$aitM}|cDuFu{6^P|pm&D9hw!nPp+xHtkg=v}Od=bIDlnu^z z`I8hHYYhze-bKo)ycpYbg))(zQk z1mjH40G84T{}DIyOO$rQWYe40m6gxdwl)9AA*(hZt$MXBa~xwcd2Td$F)O%lO_R%i ztfrxHJLHGV78O~1QcctiD@Xi9u~bMfx-U{4D?JSik}zWj{jTM?zpOpa;?|-zl{VgclZ_Qj`_E{OVJ+n@{epz&M;mli5l6|dAqd>Lz_xeWwD zNC18eO9g#zBk*}r)9ghXJ|I+D;aOu62JJqGmfp3zr5(335K-Q#Wa}2Lj!-TF)KBHHo$M|I}S; zlj67zjcox#DKtej^Py}1|Nq?hEy?l&x_4)nJGGZ4Avm!u%ST5?djJ}O4aMuzi_0F( z@Q|NB-G^mr{qYcN*)z=&-*r^gooSy|Ts&C!>sLzhX2={Zb2uUtm`hWWt0a)2U@+j@ zjDq;&_RvkZ$FJ^JFW>8l9`^e5vaP-we8&Z8U3VNl7Bz2PkFGl(kNm?^?GAU;cg-HS zcKEz~`fQP80MC0?F7%kLA4EBTiq|W;S<@*jl5z-04jXnj9>@f@4JBVvA&}Ab7X}Ff zA`5_!EH}bquhA|eVTM^sf+0Ejh9uD&YQKes!V-cC1W0J~U-3*(QKNN zPi{lSO;Q103n> zud<>pmoacLSt|*AIBH7k|FL!@buCXA+XI;Ar*OXNDWsm0QZ_Nas$!(hsmly5MNqoj zEY}{W7Qjg@0!H33f@-trsepbrcl5ba6AgYOZ$Cbl*b$k!93Nhk%|hRy@xkV|DbGLE z@A1y;;plqI=&ukoi_Cz0DO!5yM7AWBq{cd@Y{wAC^kh^L4X`;6G4?~ygDu>3N+MwM zxGJNMCo_iv+DJCbzvNz$QKL*f`$uJ;n$Q`6cKh%w3?lD@Q=##+rsT3wkYB){##E{W zPZk!GwlN~z-UH++%;aat{()s{nbGQIiZ?U&V8c`h|8T{mA|tE|h{2)es3B68JDnD| z>O#3ZSIL$a(drI2CcEjU_@1IALDRs!5EuLsV(D#bQnQdGR zFA^2InOwq$eP0VKJiwz0!0C&zAz4 zM9T6FCQ1NPaufGpyRfb4J{Hi=HIpj0Mn=Eb{sCS{LWWgaY-VvuQz3#|m=Zt2H$qE6 zJ=EMfoJDT2O*zGOsAIKiY1Yci;CM-h-qs#iUrLt1Th9UUT_?Xu%iy55H?Zf-gMC4P zKvbqP#K4|bQuTf;5i0ALBe9DpL?6Rx9sfv50$ zmz=AWWEfcC?q)A-rlF>Z51~DN(7CIr}%}XmMGmc%nQOqOmDTN)Ud> z&UV3;tfYUog{H;Pe$%D^s!fVCpa1|M07*naRAYd6upfiMjsFHgV%S|l=hs=K=p`~B z36&JIFlO9D1$`l=z)I{Es4UEuE85egrL;4;j#)|>YI3QBNNbCSj(4S?W%`RGQI7SR zZR>!g?S6DRpL| ze-;g_J%-Hv?D{)lB!F28IN=%wONV`w%Rp*gTVM?-Ss^385?y%RIqbBvw7?DB@fM0h z?gOQkrvEbVZXw1+ivYGN1emSN(Mz|zrD+l9ZfUG0?(_5GSX56EzrnX8z`l!yr~tWh zq~M@aeSHR=*5OHzU2b;Uc&)aXa{AV%T-h7gGs)!I(!}0kC92H~ad181y$0Q(C4Cub zvWzr-ec2Mq2_UL2(pGFtfRENSkU|E%l3y%H)?8k&P~jCfxTnGC08B@ zrLCsW8JbaNq*B&W^Fu0^-}Kb_A=m-4aBk#;SBk>AGVu}=>eATSFk6fk2OWNPe&cMv zTCob028f5_NKQL3v;8KZ>tzk8o|pGI_sAk39LX1mg^3Uo4ea&tbw4}RaQ!J47GE;T zN?Wlm-#lFcTL=MHK!qZ*T_O~S`z)_bnbT#Ltk57XHwCaj-vIdFn}2mV}DFN93-FjHNNhs3&LcxzDANJMt}lV zwPTeiY$CcGg=IlsY*|f%IgYJ+XXi-~-*>6FF~u^4RqKp)tO1K7YA|YuBhAn_-vig< z^os~?H{%T!HlxYF-oHY22~I%wKWA~V%NG=@EwYc);1${#z=UeoU`n&D^e{a7;qg3n z5}8HtCc3FA5Y&P&rpFw8>lcl{5jSCa=b`aTF%6%IZs!PulX~N<9O(=u(W!WN}=bw zrWjW=u;;@e{yaOGz4bGIEPnR_qgW={PRRX|MU>Eil`&QYaYEN`fwQ!rd(f>7G}ye6 zSaNS*o@AgzleU-5lY+a8qOXmd0XYEQbOLJ?T}|wzUpq(P5bPFs38!!T2xZAekD%{3NJ!a;UqPEAEv@OnGth;ZNX2@b=;gE@oBAQj!4A~%fmB;%lq2X5S6tO{Dv2_v}Oct@~5w`0pRu%C`3A+VR?-1j@U?h$N)7fK)8N2nme$L&vCOH93Ap=y_LuxTH=I!0i{c3b z?EVdkmm?v3MTG`!v-FB{k_s3>d77C~Y*oh`fiw;>nZHS>>zs-e|jRy$*`c>;2^WBQ}+9U0b%WXi+k-J|yMc z%{|4qM5cQk{V<6aK=ELYUCZ_M_zK2?5S)1a9X87YTAkobtyfJ_ZVdE0V5~y{uOQ)b zaP9^HZtCDeq7BFu)JXh zl80hOO#G1%fi8Yb)wI;r!8BX=MaOmG^~20vRZ?bw-HeeWUEw3I!_;|UNKvl+m~9`S z5=K?I*I%5WDvpphonzd(s+VVPZ2t^#mKEDZPTdu4v*Z|u@aQ67)pl!7gC4WkYkKdH za!ZxY=>@<1@^^opcVBFrY)z}YJKGSB2ks?-u>0AA1P`C}Sp}qU_0{d3W}FPqYQ81i zS5#=&uQhRa)Z$>!ruJm_)o0|ye!#fUnbiu@#A^~kZ<5Upu#J@@gp&%b^%#8D01s-# z+oVeg)Q!ZnL> zvHL1;wf;J(pW4}#PVfD~iN3<0Z#M9i2K2rhemv-Po!YDB4^QLYJ%wBH0sqI>SFo?4 zkl4kHD_FolN-4rZq09ZYC0JPB=O?WdC(_E(>?v9GEj!yT^!zDzW9q-tVz-=rW<1p! zI5mUH?Qx2vez;uBoW3#eW?OkIGqq-*#8JqMZuaq7mBjpu(20-3EJzL`nyN_V$~uEE zTr2v|j6t}DNNANCg7u{UI!18YHc@(ETV#ifY;3m8X~VdmgM~e&+cnpw^OffE8{G5% zcDlgt@?AQ$elwJ-W8a8ZNmq?$V)`>&V9!4iua*AAZ`Q-<)15V9_=*jwKc+OUX(yK7 zt`DF#WUpt^yV-O5@-LJpM;~Z?Zuwt%6q8oeUIdz3#id+niWVwD^08e zVs?plVS|NbeO{h6>5BR{rkg<4iSb@b56N4rH-<=t1%2fXA9N-?md7D&Omldz%^^p3 zt+jb%>|}6~FGR=I_rt?KD_?;zgt#u#Nj-{r7wKm(1a5_w&;YjO&HWFpV^%n?X5#{T zX71@}+iVbIQ`l(LK_Ee{i%}`5!0moN4Z)DAkSZFjFA|2VI8f{|JT>k*X6qTf3ZNKks?n3!#-?MTV4cfT&kfMia20 z0aX}D8fu3nIV|ksBXs%af3PqAGd*=QBXq;Z{T7xYTc{kuiLKl$v8eTIEi8FnP`y1$tknfgIr%fRqAW&377owY`+K# zA1XSs*LjUAD?!4L0!|2kc+(*3kkDFPP7Ic(E%#CN&SHN)|Ey}tg!+%G{aO|I`uSFO zDxcQ|M11uxi~2l~$RZ-Ii$lylIowF3K#D(d#{E9)0-3~VcWaRC#h!KOviz|4i=I<# z&baW%je`a{yNqQ>8#>s*IsCD`uH7hcR0uVQZ<)+dsV2xS4fv1`8j7ri!KU7JXR&Fh zwk<3+dV4$<7sdUv{(p2l^Ql|F&Syt266iyRLh#(odNiByat_ly=NfEr`>v6{vIaJo zc|W>RM{li*wvcjx&7apy^H*gjfAM&3-`9A#5A)9!Y38kKU3(4f-!BFFPKJNBVQx)y zxQ}vSKoQsV;3A#H62~KLtgp9Jt7uUheT{^5)zU~-gcf5xF$4g;YE4zpnvZHSsq2wI zt!1x1{OB+7>nb0zEP{?`pOfH>)Jp}2-TK>oUb;;gKR0W9JCpLTw6`M5x2mM#`+wix z-`|emc^iQK?ey36E1%z6U7<3izPiOt#}a=P4Xj(AFm1y}>Fh7_W|AkGZ_1R9(e^FZ zNGMs+@=e~4wyE1jy>AWuz*~dnuIxeR1){g{R(iV$8CXF;I9#jQ6H${)OR{1kOV}tC zp1^R<{H@I9?dDNYwyv^*H%U0P#t*L-@#d+WXj(wq@?n(8?x4b}q9L}sKz9ucRJpS4 zEHkz>F{QmT{7eAZvuELD5)-n@cCpxRr!)7`fVdnabTv)tY$ax^AZ*cj|q+m6$8r%`KNzQml#j z^69O__w8EIGJiG4V_k&~glevitSxOzIyRguwP)rf&x8@2n$~#5RHcm3w`**Id^XDZ zA*TiEnTJKuRpeLbgdUdVoH7G*koA_ej4m{-JTTs@j|93Q$2_(A&d;82YjL>?sw&7W zc_dSgunLGLmPHufeL$Jw(kr#Q5>&+xxd)8x&vL+UE20 zQW_{7k_AC9T^^YYSSEY+66!%9bfTICF=w^G+q36zbDW3j-> zueF{8Ba*;?b{4go!!hHw`2akcDC--DjtuPJ2O($=#E$n|>TZ`L(4_8`n`G>0@s~uM zS$bS*a=GzI6Slur|C+n0iYK|h&vHLIc&>cS3DSl9q6FLSXs(>u=2`r44fUN(NIPuqtvu*aGm(8na?!EB=nmf*_}2;OAtrZb#5M7hpT;JATQ~d z>1=Q@oBx=X=UiNk70YpWyv=i?gtA`mYjqGJ`%P$?yrS0amJAG{n-B@MT=z$- zksfUdFio8eZk>V}nGiKr(Wc3;c0z_nmG}L6ptJ6%cx@n^GDabGote#Yw_D>sz44uK z?@n*mZi>0rw}%sTUd1l@OIgFU`N6uA-MU}k5ZHs@u8rIyp5xypHN{QFCBSnu4gn!I zFH{y=hp{h34|~~yy`*tfsJ@QWZf#&{HO=KSG`&NxsR(|p>-bk6rAM!+t_GMnAt$ld zWmz=Z4jW1#vqBs?9vnxSM&bWuW+O0ytW1G{yr!m0hU3lx~=jz)-;YN{Gs`pXlzt53+Rr6avo%7H~MXizpN%S`;=pcO!g~zhr z2?|{+tf|i%^P)<$8C5pOY}Lw4M?tA}w@ZbN6HX(M>-GU}S=PZ$duCcY<4XlD%J}0{ z+kj7Km<^*Ex*FQpGgb~w3l1E!?9JgqyPLYnK5@KK4PCP5ss7OM@LmgtuU;^LmUGxq zV1kFPL;U*mJuz78sZ%6ecZwVFaDRB(@j2RaFI!vb*3w6wckX*g-kPafZyH!MRy+LM z3ww*(acMb4>kMh$vZzb3*`oEqhh@lgeLTXz+NtMLA1jX)h9mWUFhrgFt-sr9Jg(ZX zJ&e)!p>r7{5+p)IGKA7dwDtwXpe#mpq-%J2Y^puvVE{)6|I4<(jV`8u`FV^|}(sh-;4EWj?pIyr60uC9?tfFf@N7G61 z9(wtDH~1tqA^X1LM7L?gw9wE>ywtVPeBrWQE|%sI-4Y!jYSM!j!81Qy#eTpE#U~* zS@SBExz4yDVe%!oRnE4D0rexK!YyyXtpj1-e-}1X4E41HX{TKRjnuH%M%*$dv|Lq9 zdZ__AW;34&K!DCwBjyKmNTb?%O|DZnwjItN{Wt%IV;2};6z;2 zBT2UtWT3C%b*ag@lwxmc-Pw7eHgG~)1yOGMB@A|&oZoME)=f3gq`p?(q&AqJ#9w~0$XV_s z0pCa~*0f9N@mlPn3`~nWaJ4a?>%HV9 z)yrv02BzTpP8@vUiyJ7&U)r+lS%FU{ zGVqbbi-2L_Uno@dRP+S>mT{*QQH1GdS|Xdg@K~sWaa#M3C6H1%(06&MB_wFv%2-z- zC1xhAQZ?5%CRu#_$g~85FRGAFjtnJn?&Mz+C(8V``& z=FCLRJ-M>1-(b$5_O7<7Sfz@u!rPj`$0pPu3}XtJ{vu^o>PlXO{+id0{g~mjtf3>8 zo9>Nn%N~q2MA@H$*%+ccVv9&2pU`@5Qi9nP1;h@;T|J&b(&^3PKpJb3nXI{vJpx+~ z{eADF-<3^;9D*Wf@}SQtjsu#l@K>4Vm>hz=;@A3=ZB$atEoKmL7%?g7C&ppywwN@0 zCW&LZI>N9vjr_a>#_if$?BJA+4^!63LTQS84ou?!ts&Qi@7M{3>t~)r>ahiwnSu!e z!Ww3k_25=GeJTsSV{;ncDb_3Wkq5fzhAmO=>tl}__xtMrKkAPJpHDD()xbT&AF zmtY}HsJS}~T9PUiUIijf4n=f4HvAS}8>++Z(x+`G%6-H&crA?$Rs+SykU$$+^DHTA zfOtHy!x_4p!bJw21HQ51I84HTGA9D}uSxqv6hNk=A^0721os?+Re^i+KH^a+Gqmh~ zLUIm?BM5;Svmyn#HJaD=Fw-u|+8U~-N+*|psW=-0LY&!e37sIJC|5F4-C5&A65_7g z>(f}H4F;`=@0JZSSU1VkrggY(Qk2)SNFt|}W0veq;^~~2Xz50kiV@ZbSv%nQUX9M; zki?6T;Duhs{Q&nk2&2%8%SwigeIS}v8qaJmpwa;CBbrolHV6{6wqWM?5_`48DKaPc zA8psR+qez`H2?wkF;7hp6#4(pJhpY=kfLO{+mqdMw#~(kWr-q(!y#7h^KyL|vSehL zuw!utv53bYsFjvOREw8jyH*wn^2~^yy4?-rc&1%vGw`FZ5hJp{g%MHK%C)eo=@Dw(Jywl4vl_xKc%hs_+T0| zBx2k%Q6vTy9`i~GN^}J=sLvTW2+jK8WvIH8Nm=akZkdIb2u}E za3Zij-$$D3v&WfRJx;zmnPy+^Kr5N1Lj@0A)__&;l@SAS3867d@2b(3M77m2%=b#o zc3}mOof6L_iA4ODpk>~gZ!s90qUMb1!D{2^$SIhPzic8h1OIHSI+=hV$ z0F$ej<`}!QB5_18Bwc_*Al$%lChQJ`hr%!Rey_t;%0FxOOX_e8?k5lC1D^Ktw67X2Q6xm+OzTiYEuOkn=u6wh$uL(~ zvz0N~=A_!rI)D#W5JgGGUciTpbS>94xB)*P;J-HMX>g|&gwbE$AAseyedF%&L|o`n zAhZ@IszzqlNL~NlSu`qvbCE_BVSW8BKoEp|1I80HvaoF$A#tBdnxx>KZjpjzf$XYl zNXfwy)XUInstF|LVzyt^`j&Lrq&+E`MgdlL2-&vk*brKR3P2*<=f$t=CE?k zOzLa4FVICWVZ1EfbSQ^~3&d8^X#W?toQj>(j7ud4@D2Bem6?s|TVTNN*4HSTtO#qs z?-Yeaki3sHblJwWrj1&pn6JiIcDw5s`xmJmkx|~pH7JFF-ra>uAZ^IlnsjOceY6AG zR6_$X9(|EMBQl+6A!iDlSy(HHSmaI`Y`zTIAuP%qEN@9E2t^fg(*bK9YzUnNgVpPPWSJEC zRr&(ab_8Sl#Na~`2Av$IV!A~7b`;X7O0T-i#O~*wnivaJQx*0`}^e~6d=j-*H zJznNd`~8)F%0JfUUhntkG_Sk=`n4bam4EyGyx;qa`SZ``%N@Udh3M6%J?k^SdH?sZ zKMtOzq+Z4feN+LD!(qu^rMn^vje?OTXg~yXgeR2ckRKPP49_Srds0N#;?_J^0}No0 zEs4AxtjIU(`iJQNu*#@0)jWcz2w>FGHLL`&P(*-n7}qs`jAIm8f?Wnt)!%&DPUNv# z%R^0WaiPJajVso+hgm4^@&krLQ$cS~SUu6gk+cxV)uXyRrX`^uo=QRIkyw0J1)Kpx zFl*$U1R}`$uY5-GulMKkeLQ}?*B(Fa=Y0|CpZrfD51h#BewOE_KJ|0H`41nT&-?ZK zD#FY2+tgw==)Do`!gPBdAG}6EyM5wvvdX}+i}=<>=)rcT6I@@w7*>I@`J@=w%%;?f zkU4&~G=Q~i5isOD>rciDO(g1%jV`96oNQ&hTNfb9|=A^tiA zO2J+j`rrr`o4_nn5hm-7`B4q5#s2PzGf$F%nlcmW()TZctoSTXyB5$mg{d^T4nd91 ziSXS`%AZmH6^j`7sWc39xn;X(7(dvYXZg1_FFTfJ?0zUK{J$nPr_ekE zCjo$EWU2Ht!u*2-TyE=UE$G5^idGI-TDD=yl7Y0r7s$fnou|z{SWAk7!BD9T6l5l)Y^(msBB%yIEow~$;?QaOU>2|v}<$^?cg_tIOWj1(5 z>p)ACjlAza6vA|#0O-~ND+#X75DUa7xuAeYy1N@V8!jO}mbB7KhITsL?6435;kL#m zS>C8l**p5OMz}U6a{yd{7T<}(C{+9U{dqkfkL_{i@wNXs{a{vgT{BnvFM^ekyVe zH!nQnymfL*7KHJZfa~U2oqkYO68t&f%Pps(^55;Sh2|KU3$qBn(_V(^}wsMg2e=V&o-zc9mzc1BKpD$EKSQb2})wXhTgl6{$W*1$r(p%iC zsYF{`-+H+-O(TF-gwP3?MsW+5z%;EZuTQ2f8CC}hQMrbQFc*&;g?~t4M2U0cHY>li z6vHJgK~a+Yx-tYE%_*#xO0kw!nZgJ&I=-%T82yORX%Q>W9bf<$oG;}6Nwj~8O^_nq zPI0w|*2J;ntH|O$5R^nao3L+IZ_BEQ`SV*~h_>?L@z$dZplCIz z0u`4UBULRbS3sE6=JL6VwN;Z_F6(>()htW-vA9MDzI&nsUt*!3?oM_Lj&$KTDZ?FI z4A3D$c2e1#J}#D`*p(udmIuwl0e(hJ`=bWbf9c}M(Kl=uEaLhbQ_>@&rh+h;fy@0Y zx*m{HMp)Gf1RG}K(M(9Z7{i+kl~Hp#wLW$;xtgAGX8Xl&qZ+yI4=`b>KjsutJr1z^4L)2Iw9*M|v`s_`{@-mGfFQV>_NomX?#GJLAA zo(@q8$A{(|ev{Wks(evg+zPFgMM~=#kiyGCvhofzPZPb+#zxkYW_I6cM^yF7^M*XD zfh|~G>VV&giZbky=m#j7VS)l6vCA|D0cN*YVC8}qDvHG(-i=InnhN!1zwW+RVyk3i z)eYStjGBPC<=yfY<3f&la+RGClspY2Ajq>2^wCI^M_2Qtlq^i z&ww^LtjTc0RC{XPhBf_A(3YgKo0LVc8{MHPyU7Ux zI0;OHA@l-7WD)GMK+fhP`&I3ACn5M>^-A*&d z<`yIQA>+Ax(eJ85MR~!QxPpmzP*vAkxvu6)^5An^q`>&t_mg1m+$!Y40ulFy3N99( z=p24*2lgws#pdP`kvQApq&Aq~BN!$UmPf=>r_kEu6J8^gKDKAwirdFzpR zc$pk=kryTZzx0pWP)u}ijwAh1=eXIjXn?nGY00xp6&d|~n-U-nStXu%v zc){`oVM;Xu;FM{g;)QD_f%KyWLvrC&O*StOeVNM?c9}kILB_r@&HYX+%IB+&WcyZ@ z&hE;7Z5ugsV%LCQc5^rp+-&1A-C-HvCQ%LNMob_1f@;Eh|8uYyU@8iI@_NiTLY!0X zObAvX91biPM0|9dvqH9NU=Pgu>+!Xjr6dc! z3mCm+N!%b$6CP-ki-%?N+u3QiZI{P(*M&xRg5U`S+5%wm+P?3rHwvDqn`qYs*dcD>yQB zhYPzK*!>e<^^$_f=rUcfhL7?Bqo|ji+?fi$j7)cI14b9&sExB^7bsUG38CkRnqI5Z zByYnfvb_)T=k-Msa$L`0>4I=6K#=TP$9hFt&#U{D)=^vsHg)X`h)4&7qeQFM`$}SW zf_T@)h)NNy_Z91^KCXa;@2;vuj0v`$lo;rpu1q=?vfHA(zYm|YO13^G9My&8i<#=I zVLJ+&;s0p6((S}~C8#1D35Xp ze!;AP!RlJf$iQNSX1hA?sDJ05&&L8?_9CldC4oS$SEJ#A3ubB8C=!Sln!Xo0(`STWzf=C|??KXkpwJXEMgfeO268+OmYy&A9#BO| zBpg&5N{cVP+|o1p_&_E=}#CIJa0v@{(3MhrG*HX|{G?`W|003`^g+yYTR*w|bVXC@MsO~~BVDL+@ zg@Hk0e+L23qPooZh(6aWg9($eka^qPapK3u>p}=Y6L)0v1v0R$-z^o%dQF|h!2bFC zPUT!!OoHWX3l2(PaZEl!4pbQc6c&S;Zs~O^@z?LeWN2%$ zW8%dS4UjpYssVE2;f3IXR1FH9%J9nf5p-lhVJgaWX2#O{H)*{@JhZurF*NcS!{BSjM3o(?Y zRp^8va6YNhg75dXtqZ0Z1W;TTUiA}f8mJ48bf(Ae6216dGN5uQWSSS2eHmn&ZkROc z2fX>fWf5%nWkb4go7d2ZmA`)He6Gj$pJZ+)wfsmbUWvHtLEIQ+GCa3wpSlYX#j2`VQ$#af`J^TkUO;^>4br+GhTjR3xD7aQ5Oe^2 zu3rIG+1^EK9E^A)R-u9iQmGCGF|eVGrUQ!-GvG3HYAQHnV?yH{+$JE%YDjB6yJC#CgOraCn53Itn@(bq_; zsoWFa4v9FUNkS3bW8H99n{_4d5O48uBCN@M?dWr_Bb;Di4j5ppI@?f(wT;ISn1lix zMyC4ejE25+8z`!@B5UXaydPTfOX4>h%EXg!2DmFHWDu!alN2^$227Q%6*3E6BPZ`0JKm z^~7pUD+x?v;ubdB*TJ3z-xDI}pxwWBw)W9X$cct#j~jeOsAr9l!Us2W2uzzs`>IZ% z|ELHAM;Ve%v;xKPw_0-2`9aa|C;AWjIVXoZh?3gA|HE4lg|XciuY847ZyOc_X+V;7 zM;F05FQie{)Q3K?n`8+!#%d=oq^a>l5zCY)OAU_moE!=PZWfo0Es9`T2WU!fJgq+L z?7tGEUkn|sklN1OQKDVvwSaZtN+p6>#$yKXHk}(P`@8{MS19BtwAd!Avthr%TcIFSf7*f z)zAv|C1%&fBwsYKkb%$(is=gr6<4mtRL9#@<$w@00;ke{u~0X#A=QjUQUtq&;BsCV zLL^6pBNRNBZkhRTtJL!OaK>Qfw+{)flZ1HSBDqvOgfGJRwhiE%Z22HTw!C z>W?7#v?dag`<|E&`@8tBsDbQRxPa$pNf6&?z3GI;uHz&ucuPo*i;bbHiBiTv@&!<7 zediswN*jt`Lwa>Gw~^b97em>$5Gn7Xg2C#xC$vhrwvbz5D;-GXWjckO`)`1PoU!PS zC^8wk#ewTFHJQ7s<$*ZMk^!$g$(yn;BV~ywEV8c5sYqnePiqR-88VxxiP1(07;Ym+ z`v0xwZfKJv6AjQMx>`7Cv4aGKiSEd9L6G;?gv^aU8~xd#f6JGEDcoPrb16x~0 zqbL_J#EkRAU7SY8@N(12q#!4(2(6W1J9H_tbvT{(M{(TEgX3{N<^Fsg_pc-VR?fN4 z$NVUMpU*z;-ltZzy9%gP=NO0DMtq*{hr=%3!<}Dp^GIjjFVD;USh@YiUtaBS-W{fS zi5iOZHj>UuP>DwNT9sjBDZ2xkQR|^4`#L+HIJ}#Y(Q3|n8V2()xg7URqt8>D1VpA|LjIdl*mi19<2~jqz)PmM;<>3F$auV4B2$RF{? z{J9+0%MXi%IVHIJbHSS;E4bl=PX!# zX(?jg{_XfGFZ^}A9N%d)l4a}&Xq=8=JBFOn!vD_nsttD{1-v(ISf<%FHrb>%+#Ezf z1Nogz>STgkE$GuTJ`FwgEyWQLC>$H14di~s;mY=8e+w1qY<=DOL^0EB)v^+O`&&PRxyx(TW@^(Cg z&a9T9Q8G(K4RfCF?)`Y3mx$YX52xi?<3*P5Z}DoEdx{sGj(ltBue?zS<|fqPs-R~8Z#hbXK!l~fM>HEp@^9e7wIlBR@Z1_cu&vRFK%@LGm~r zgGc+XO5-7I2qs5^`%N2>p;S2Uf2>{Ewz9kuG)afSfG!m;T(0l^U-P6hc1Gg<4;On- zPza>Dx_U_9AK8*BjCCmA`EaFjQD|riWttX6&kE7+s5NQWAS(=Kqvb5s1+p6Ja3zh` z##t;}pa3W6D&x>x6$kH{nMI$+zHT@TgcLGvi!8S#f7Q$xDLkIpiQ^{|zN=RB-Ep?i zjOC%sl!T_SbZG+G++H4!kGTf?N_|Sw{1*ONg#Cdp+tamY7XS9Ui1ezGjlM+oGC%bt zYJ`1FbJjzwO`qWM_v)O=n%=aL=};AE-=V|jVxGnRK*Nhqh9H9?t3%?j(;G4o;8Y0N z+}uqPZsg-fD%5+l&D!R<15%Kfh|^XeSy!o+8xf3CFO9wu1YkLrYb`8QOFn?1MSY6| z)J}Y;<^KRQ6G)@P!XV9QpFLds?kzQ3>&uT%Y2~}1-P8L5MQ;K&`mu$se=6fPRZi3{ z%`AGYj+{l-;h2Zu%Cn0&Zvq!o%8{6Si=Tlrhp(FA-F7~+GF1z@z zR}mO_AlYuxXB&AzhzJSkJLGCq_jnBp>d=62Ul&#>NBipr$wD`mv=o!w^(BK1P+m=5A_Bl|+c-r?eC&E5Q?jUEgJ}(S*!N8=3mcIy)wNzp( zZAjYBae>|!(5Eo(+sgig9zA!uvUE(lYadX|hCIl1Zi>=ME_NAofS3=RRhAIR3_q|u z6hGucK%P3lQalZDX2>)eHsGJc>E38X(#`GY@KTr#bt98TJ9@d1d`R< zRCbp7QDbO11xONw*^gnb>PoRSt7UXh1FxO&p~jS}@h2rgUe2jiwkj2$wCUFfJG;u4 z-#zVo1qo7547IF^G5HUw0h=^<4+DLB;L?imw{XQ(tYquD<>4l{3?xcbkr|TZMWaU0 zvDg5kcjS+v3$+jc=RwM9NIBwbNHu4*FrNh`=w>Rk;;w1yL2Gu57l_Wgk`$PXlP{up z8AzUcLqs$d1-eG1Ejr=)1&Ivrwu?EnH_+~}#M-d~iaYumq`_BC@l_HBHS=Lp5cZc8 z{M)!g1r3~LXf+VGlOG8wCPdh2KF?gQ-~6OW7E1zN06#pvC(kPs;#?9~aaC_KThJ>A zPX-aR-9=YXSJVuU7g>L>dKPVsReq`2^@p&|Ey0h7NWjJxsvV#1P>FfL845!^hFJGx zA&-s&z|h@<^Xxt#;t8W)1|u*RdJ#0T2q06lTaox*tzssuvf!$xvS`H$jrKgU)(Kd? zQgM)X0N{L)@!Fj&aw;&iZLsNc)3ZoMubO*VK;$zgk=A-7mWvGE@E@hW>T#HSQ3n3T z1Ea-%06$`f&3;`G2^_w1k!b`Osr4Yi$&?S*MX*)WSXi(swLuUlgxqeLalueQO_C5& zb|D3ts@j=)tnXYVNm>xliIrWYNr{Rn%bMaLB{6KHC-a25$<368=gt}$C%ZUM|R(xmIQ z8{axWtb%n&1scEZM#3Q4@U)+siPmO6aA|vK;+#QX;RQ zu!qq6>LY*mQSjso1YZeD_f~8;!qj){%9TCX7$tzN8(sQdrjNipb9^$Chz#G;_V_8_bqAZ5S{)`|w z$z;{ACTqYIT!w;NC$^cc=+;frs$~$g9B6hLGTNwJRmL<`%_G7;7nMwU(8!y zD2aSL&za3~N6IB!G?&DID*~EB95==4@G5xehjb8e_iy4-q$Gh`lO(U1cnRI$ejZR zpDD}Lx=*P@;6Ki#QIM3{U}f}gnV_;|T)V~t&gO>7UJ;r)kOBRrrr6~N8}0SWP$k>p zRcv0C4M&ye@u@V__6s3G%Mp&mA4BTE6qyP8niX30YDX(9DTML*bv z(-oYx^dDAvsG*S>43OY8)aXHSIlY@dGGO2ZeSot}VOG?X!pMl4R!GuNN|!boU0-$F zKi`i=t!x%~x45Yf=+D{qyQak4VASzC5;iN<{xI42tjGw3v$)`;mi6JT;i0dAaAzrA z81l0J?e{}*JgJHE3vC#oiSO;56|op9tb7WI6avv;=Vmvp)0|yW6$_yQ z>Y2S(xE*`?FDOQVAQ-(!~N#X5m=c>kn87peO|B6_kBxbNY5-( zrk;83VX*n3kKLu+@q7KZ+`XhIlMogdn8^+e;@dYXQdx~lplymkIi>-L|?A|p4X27Snf;Qj0_^J zM+<&gLTH6wAfZo?wwj=PssSF9aMTDI1WAHYvrFAw3s0&gu#eT5Q|j87A&l@!wrR(R znB=$Xdy}HH!g)cQ&wAzR`+U9xuR<*TLX$Q5wKIqba$`0$*MW+p>9T-D@ut+S;s5|3 z07*naR4Cz5CGgRr*5)b={itO6RZxookveY0?X#S(xievvFxii)Zb=QHWHv13gT-dO z?ODnoekiNQPkN!)*bma0Oa|VY$i%^}huiFN$g1fRMTg&3+sM<-Ocj9+pE7Lg>S&59 zdh(C-@kVfcKQ&T*CZ9)d@Q2KkP+m&Y7ZJApU9Z=hof+!i^*zO?h%^-Tb~~^Yom&%P zM1F*dOkks?hy;OZ5rCbvdHA;)VOgKgcM}@|ELS&uZV%<0&zIimJDEdn`d!apt-zoG z_JtR$aPN;c8D1dKu&n>{I)V8N4JteqV<=Qzws~gkEZjlxG@Wgi%g=#UXva5zy39a#AR8Q)hn<`NKac7eff881EI9QfC~+*dJxU;&6drnKx>^$L#(q4q?%l;+gqE% zwC*6N+?K-PGlLn_K&E2>WB_BKKx6zUym9YulIgX;5CDm7LxhVCDA3+0PMR|KS-a4fPr+ z@hyF%X1Sk@i%|Hgw_5;ME))W+bd+qehheV{5 z8maePrM{Zq&@G`EBr>^s%ffe}5CmaJ$`{^VGlas6(|Dsdy_+7T0|(Fm?1I(QzP=Vq ztIg5o8Pdn#E5epsBTj4XyKxQD0{4*kmvV}?6|C$tvuK2k&Mnl`6BxHkSp+I(Tf#}J zVi*{DcH))h>h<6o1y_OL`jW8?|s|Uw%v_8$k*f8C^1-A##2 z|E2h`9~06zkR%g z5MX&!BrW0ci3I(1?NYdd^A+Thg^bRlt#CQ%M_3i-aa1w$&56q~qKQNC{$B0v<@)BY zVtw8BNn_)NX6W@l(yn&NO&A8oSa5KLFyZ4zhT;8Rvswv^4F;0y&9uE-(=;)7y;`lL zqLw?LwnN_(;!LTlf>#vfU|BKryv8Nu?~2zr*XKx%t5&t3YWk)Md&DTn7Cm2L0IY0z z44QfD87C#=#7iT<2d0gam6LaH8F}4#`RQCGrGqAF?gWPFn5>_{w-bO43I;ol-2`=c1=vmiR%8zWRm%|C{o;Gjva!k9ZmvMV^M0J10IU^& zwSWu}WaVQ(x$U|q$Q{21fBQRSxiYS`!4~{YuJp#DgWqm1`w+#U`#x3iIXIf53FgWt znF^_m5Lj_$6nW;N@&H~~zO)>pJmq>0^Z3Ml(M-MZQdhp5GJYhdwdVP z_`H7o%s=Euxtvl{^~7^}Uc34=zxm?00zbhsWEHpGLHT;m{1_slr2Qh*ZqEyIMBX<= zXL*&s7@Sfq31eVO%RTgg5aZ8i_y>Z@ z-@hI6z7E@nzut)AnC}6bcpEXvg`9xD`JF3K5_)E@PU3L}v0?$(pe3CZ5!Ncd3lpQE zyZM~lI)N0Bp{mWE_8S7RY;>M+MmI&De@WSL<*p zOx-&RHCWGJSAZR72)x+%GcODPHgjPg2aaf41j*qj)nh=qbLk}SP`WmbToxi8ov?@f zmg=FUN3X5gXDBr0;YrH7@_9#;_DOi zD8|Aqw^WZL7s3i0*79l`ANUqR8v960km->{=IYd;eP!Iz@#6%G3?+ozd-yYnSz+eO z?VO56_p@)J8ocDZC%RzXL`0WjyH=Xh`4}E|s081w|*L0TlO66exYR;zHqLR4K z?88*l?h>4I&q~czy^DZIQd|nK$o%@+R=%&x7N9DY0GBa3&2_?qVY9hNun6~=@|Lz4yEe~-!PZ=n%3ytyM#!|n{_>xnPkgGUjrM4tm)#Gu{InQ`u2%GTOUbE)<~bY}#09Q=)bKJE z_W3KG3w-=;>KoWb1`hi9R%j96^J;ak0&qFG+yO_QuO_QT5%!s+GCF4x^z_3E(3|A~ zupB}#=^dIGsYmA<$cniS_l(mc>s;|O-$2_=x}`^~S5s1|Tpjr4acJB9EnkYX8?#GT zN3N4A*f?qbo$gg)!dyFDh!@Im$g{DK!QReD-ydgD=_>sdU=LM{sjmH>_ZPg-SX2Mr zTrK6nvDsJ?+d^d%(R(k zii@Cxlu^MgFb^|u6zM7c7QiZ${N<3!8u^Vmbrh&XAX%J6BFH_1od;pX{BsVDM=ue0 zE38O{dA?0Yy-WJ0jRR4(g2L8r#@rs#^hg?dPSQ0LG+dL=CR0d@3WlAC)stN8x6^#) z%;9_iA&Kt+B)P15F5aq7^FkuTX`#RK?b6!Cp1~{^$1^`-Q01k^`Z_+$McQuWajIO{ znk}~xz^37Y&btGe>l9tu3o%~l{9i_|bn#h;CNFzqW81u1Pfv(hc>9Hbx zlFYJ=B=ia^8v(G4m9-ceC3s_iWytMin<4Z^{67G9n7=$TQ3EvKep}rz%)k9Bf+5f?8-A>VvHTuwv1yT7gd9{?7^kTP_kT z@9ggP>G&@Mbv?k=E5I%i2LQHuO8Co9Z6QhugAHuNQm$qn8*n%iy}EUCSpg&J!${^>z2HyK zE6`o2>eAQVcPsoc>7KOdABC;9;#|P(NkU)L``$Gh*u^=iT$u5_lul^M)es&^RAFkR zztLLr(!$~7!O8kfgzd5zWKby}04owCBi6thq?;%H8X3NTxxz&FiIY|qbWKqdErT@j z={p7+04!{ck;~#{a&mC1%c*0QY)o$TkcgUOE5I_ocVn*rD-1TbV5fjYCm&@2SmvyA zrN;sP36;^7Ym&V>JS+4+_t6eLHvb_K- zJbMM7Tk6<)Gt$D0P{~*f4kT&?SYG&ct6j)~a)Vqe@YW-XmbA>D(o(eVKS)s%LNZ7D z=;^#ab5PKC-xyzPLXwMLWArohGf7W7oemc?Th#-llClq8xa$SxCwfD~Xg^l}0BV}RvtGu2ko zHj*K7(A;`~4^44MDgwWaFYGEICJM0Nh26|wBdoC4kP(B`kuA!N@+HY`qNI&6=Gw~} z6h18s)&?b=JAkzi35LltSSctNc;kmUH8p#5lCTQ4647l`~2&XSKWT#P8BCaZnL2G52T-N zxxA29ka;{V67kbwT+74 zcOwPXc9E5m8^dfK`P5i}zkX2&d<*f^e3S1DZ~pSCX|w7hPD_|gZu}sqx#+?c&2AtQ z)h8KR&k)~+YK^K?BG`&$AHF5ioq};tsrOy}9{-Jt<`|v)AHMDfjR)no=9BSGW~rQB z;ueuFMQN+8+q!Nn+S#BC7C|60(WjWTq;5$V?AQ;O6N*Sq0Jcn?VB*P38%1FZo2?wzlE-&_QR%K@411Hd+n3q6!TQ3J}7VYp?o zCR*$hzg+17)4 zqK9?zJK_Qzf791_&|(lD@hSEZDWir&!dF{l)nVkAM*y}80rt58tQF-&>r*CSuv$8o z=ln=c@CG;6%a;baP=ZAV3q)Ec02|n{%$ooHD)Du51t<~#Olp9{mnC-heYFp-Oy$z+t5~tstRrJEkBf-R*Jrp{7mpqvbgVgX6Yfi8>2lIfDixKSt+ts>k{2jC zQ$Ifgmd@RHn<^1VJ!IU0Q$oC_PGJ%)6#)DDl8pM>Yp{$*t}2+CfPr{`g+kB{7}yMt zL7lmS28+!i0;S!hfXtzE`6P|AwCNEU8C=VX4>n6M*joISqnHB}U?C9<^8JKdwgN07 z{lNlYA&9)X5dva@!7dFQ1z<}E56f#Ty$Jk#1gjZ%YgdvUoZhte5A2N2`w4d5@qKB9 zxex|V#(t)OM0b^}s?_@y-d(IE!%X}6Xlh@tcH)Cqj$Z(5DFB;o(!dd5HJB;1@S}S> z$OjE1f?Bd>cxHyoXzi>kP=DZ}0YuvGR}bZzv%{FrQ%nf~@N%zTmCDj-T4!e)J9p!T zKQJdBi9Ym;e8Ujq5rTg1apWL~@YS5_plP%0r!^gikblj%ogWtQ9Ih|JIpY!Aqz5xU zOxQ@qT*}YtY%;2`FA{-lqbduAR%1Kye(Bm8jakswq|V?Qn0T|n70VBMq>hk7p67;X z3vw4ycRD#&iK{D9^|c$Urof^cS1yHD%3#-d%(PPqBIO_`^opjY;baBZvf6MlXeQzr zEbrC^9TgUUEkuJIa`=HnLj}OPk~cd(9jdrmh#!;S0035s>}xevG;4*t0xSo#{K_w} zO?VAf@jz7Jrp}Id@JMv3r=6Z2muRJ9+#APCaw4jsLo=wu*}Gu6NCXv%sPjDVzKMHa zlBtqnX_I)R%~yc6E6-PewHv@faLQ2Q@q*FoDS0yfeJ;uphQ3zUHv@e0l4t)&yV@;B zbsUI5kYP;7;fDOk$;tb_=326B$;NzSHhboFr#s0u2INwyq+0#nHRb`9FH_-Q_p)mx zC65854g@&JRpHFQsK%5Y6`--wGPLV)1D9Z47QpL9IKRQ-rn<1|Pf>ponl=s418c1Dz0ip=`%-uR3E%4BKo05@I z^+D3{BmUXbt`~333%C#ZDQb2t>_xMYU0)N~>sFwolU;->P zN{tcTDMPt2?|~w^=#heYb3sUENfb4&1%mYf_B~L8Jazj9y)MB`zg74EOURWEj6_F{ zDA<`4pMGnh&R3!p{om;in?jr=1ODAx!WH(6849T;Bx8OIcNqF`E1<^JHSms#fPy+p|tb^q? z6AGd$A=eKxBh=wD)ldYOR@eWBRz)vOYf~1JnV;^o2)%yFj|s>9761 zbiA}a7pzw6_cLtSyJLhcH(~{@<>%%HZg(>}Az&8F+J#d%hhs(_K-+yRg8jeTkt?$o zOzf%+#(?X}jS3Xmm@ylfBbr{@YGw$>J6+K~hK4XgC9iLRX`>dI=U@VC7~S!pKtnw0 zmwRd+)XBxX>OA=uuF`|^dN`38xR!wm!`3i`t{XYwqqYO1luu0Jw2}_|C=GgDwhh){oKRMG? zB=6AdE0N#=(b3dZ(|CcO&4#Dee_!~-BnTTwNw~o0>$iAy(?1zwP!NewNxUixwi&~5 zbfPiKmz5USIwQa)5kM}FB!(?6U7!dik0<9f6>Zyy!Pfcvdc8h0S(?%4fA^>V!S^vS zmKnou?-W><@0$bc{C#+E_vHvo6Jv(i|Dt=o-cd{`gQ_I@bY+P>2kGX>(Oi^Z`hyc& zNQ$Cm%mS>><6p}ZVAuNj`fuBZ|I@mjCOea^=<^|nIlNyBiLLmSZ~4XF*L&cJH+MQj zek?xPzS0xt4{RZe9sjw+IF6s!qqoDpxfj@ngSM}V2x|Q`7=<8GrOwX#uRsQm%A9z1 z9mfF6Ll>h)T6`UzFTXhQgqF@9`}fY>C7&;YUBC1C1#x!RPgdrTVl9QoUDeG_=3c6g zP8?2f&w6$1*wLhV{xzst3q(+TrX9Vh85Z_xG&aCyriTc7rLx-7BL^+Kv~ks=D8%-R zfK9G6hv9LV5i~2_q>5M}(sWD$NRbS*H3DVzg4)rs;nAdiQ^`|y7}s%-lJ3G3*%+Vu zf8$EiwCG-&#=!|!N%OZ{bP?pAbQ4vYtSgrbkXbZL07^~A)CAFLV?kt{Ak7y5y0?f- zEASjsm#j&d8sPa%9S^q}rZBLHzW0AEbp#IsH@gqx;881$DwJ`9{wF+$kX|zS{|)qy zU(est68P`KCgNX8=*s^rCDI&V+2Pj301Fq2Oju-Sjk@PGaDZd+d}ig|kOMG|X9+|H zkRkzg2xe`m$mN6Tz~?&rfLE24fRq+~IYS%qI?{|aSs=gI6ZH)Yam*`?UXxi_Oe4_C z!&t6il4=&eqRahf3BW%6D}=T$@46Tgnj`4|p32uDi-WMq5}}AnfIDgpJf=)-RRxlB zbQFrHYu`UAnP5Ns7B+a0;cT#1Mfi#_z}^B6n*qq$I5+%(Og=pd+@)!3s*9KU#gBJ2 zJr!8sz0EYd)I)4{Zv@c!j-gj2Py~PacA`vhSqt}Amn;DTpZef=(`iJ#vqp9LXyYvU z%-qWQyM``j_ zvZT5m6|J5w23TWi(yNb7T#lg6)FYL5^vPhB2!ap}ct-9G&I%Mwg@MJg%N?4X%Em8h zmnLtpg)PiUx7IDpWE~&o%5dt*ZC$ynb#Lc_YSu+p;9xB<0NJu0TwSBG0Gi(tGEm3LV557i=zl?aF5|>X zd7c(1E*N{U68f7af`5-OLDw#I97xhkUt@q3t!by$9$}dMl(~I``^9z1?ye1925cBZ z(Px|#-es=q2#{!?rcse|x=@4(O7DuHfRDi?1S|7Io%J_$f~#Y^NPqCOyvN+fRJWO= z%ADk(n@QoIEAR2)VV!vk2^d}4Fzc2Zsk29zSTJdvxw;U`S;yfrxZG+9kYVI3G${mx zsLMf~QsHr^hp@}2dv82+!I#D{HU(f#8k`BG;To~;4_`<=xBltkrxk|aYN<$XCC|g> zFh!M?)O@kXdzHgC_s!L?i>4CPWG%N~YC|@W%!vm`PFF`^1NKtRZQ2i4Xke_AN$Z3G zRD*8>u?E-xh(!#hG24n_w|pd)8w6(l$+hea8a%@ZP$>&m*ibygd=KG3#}#gAKQ!tzO-3@%5f2(o=uK4}MBMLO!3wU(hC`|} zB_T5vm&X805Z141*F~>aNou{1ds^`)KGHSQi&bx&Mgom3chs!y4l>4C7pIhiD>Wdv z;`UXQGbFb{fc?>;xvu>J$pKAeW?tE8o3lfkBge+5_(8&n#D}IVbluW+ydhrC=^1T8 z+f&E@Y+8bkWm`~nqy{WDpZXl&xHDrxR+nbGk~^AY57SwUqwNtbzr)KG7=@cuh^Aq< zFZ1#=*0LK1P^wp%3~m!*T@Dm8muD4dwbPwK`RD_zwi%?bnGiZ8&KL#7qV0lgk`_YT zqxcxc6bn+hNl;~st)1l#;{htMZ1;gw*fFo%Mvi0}6(bJKISKKViacEMwp)K`!3{=F zh1Yjxs2870wGCX9!p#y6MulrE{tUg&sMThZuOl``%39ci zo*<(Mgn+bzwjm!`SYA@_;~~J6c?!@RgVucwFC0|b>YFQMn)5Ub3Bb0qZOS2XHZfjo zrh15I!`Q81krP4Kkt6KrLWJGHYs#lu?*K^&4Z>-=&D|pJp+L^}$`t1!8KD`ZGA;-; zAb7k<^Nc`gl7xGi=V<*Vu|6pltW%pYgV`-#hRXz4HEhJ!bmoLV48}YPTxZDk)7lLcS^oGNDMYTNs~oOUcccR@Is5D;bs4 zwtFB}eKK@ayJ#$H9lA?KJN-X!eDxdWIZQMC5`ewkZkawaCOQb|o`8}j!QEmsWb|a%+>3cq=4LZ+ z2Wt{rJl-Ya`AoP8&52K;qiX(y+oJl$XhBb}7KChDR$}zEo)L>&0GZTu17M>{t1>wZ zj?#JM#eeXWGxvF2Y6g{V=p(N($ii>Q*C%FO3P4FEjFAmMwC0Ktv&J=Vq=YTMzcmW? z;U-EgicaJG;Xy3LhPISng<`zQt@{7*cCB5F>^RVsh%}r8I5{ea{|Nv98iz?lK~(T% z{{J6c+Sa2ayGi!$+-;a1@@_k}ESE~9FtHK4IFXB^Y^8qaf2Uo*;| zjl_LD>|#s;(@f~?LxArwDLBm4x3fQ=@aK=(w;3@U1-Z|0dMPwAcEo(TUmd`$=HVQ+ z`=t}XZa;navEu`8>cDQ>hyu-pwi_dOM|kF$V} z-oE!mqxUMOQxgV5q0vBPc(uJIqFZ>Z6TQ#033ce4c4WPenM*jZ;GK+uXqrQ_4{teu zL8pBKj-*P-7ABG;OsX(Jy?Ee|MNA|cx(d94*b0w#!?Q&fEY=Nk(*icERI37mk{!mB zXt3E-eM~2A$4uFW5!qEMqQ{;Hhs|2ZSb+nq_bDFSLQIgs4CvI*kYPX|P$I!Qp-c>? zUUbRru1C;4mE8dDCid(7`}_ONkMI8TKOL9-ZFc+Jr|G3vQ)CJOZ%=}E*GP{tZi}?M zxLSRa?uK^@_v3GsHuzPf(`Eeew~p`kuid=f-@h*xB1vG508DzNIscETc|OMEm>jU& zBY`alu=*^_rUuP(I);J$Sr>mg>1XHh=VSEhgRl9ZYkqm;+s@zqJo{?Kn7QxntJ+sX z?OW{Lq)L!1@qs!KXSs*iE>zWv*76?lN$OO>U;{YK2@$Bk>NCW9EGbS)z*6!K8?)YJ zfQF(d5!w=e-6Vt9a+pzoMRMRTus;q9IVPfi4oCfNy4Mkk9OesVsAEe61~7YMZ1Z$8 zNJJ+sSRvxN60|KGaxdnn3?KGw7{Oi8WO01nKjXOXf_0zkXN_mxWY@$KC)Cw}iyu=}B96pJHnzZnB^?WAnI#bY3cSuqi!_wJ^zNo^ zH?e(SSoF5i{m72U>o~`)mAh4KW3KZz*p5#5Q zUoXV|n~#q;MT6q<(-S}P3$?lSIrqJZZ?=L&IWDXNnCyXp7$MFK5fea?EpTM?jP|JV=49eZk50G{lGqEP71&_ zFAarSImOaX6N>o@MEHmz;NONQ{SnWE&2ym^EFg(m6{ZGpAZuALJZW(;?^KkI)egoZ z$e6f!m1JNCL?E+;rq$x`x*+s3W9u2EY^#O0o||RiyD~vA^!= z7_ieROpe92$ka+9XT^>z?iyKB>cW~2J7&_?*XOUE-~IFRNzZUUzV_d*uWns?YX7i4 ziKFH0db)m3jScpI+gz$<(U%jm1sx^${yE;i9$eH{oS*P-pK9k`-@#gV4nk4I=m-yY zrUwcY9hv_sIYVA#&eKUD3flr42tXnU?ZQyYz%~bb#JxHeuJ^+Z`=ax+N8S?AjeG9U zzF>KPYx993RNXbUztzL91-P)<#^xP1iuWthR&shG)qW%=Oar!7corFno!Q9g(`VnU zew~LoOgOZ}IH3ADFf3j)h9#jai)$mXm+anQdT&X+4Cn33g3OIcI{_4pbEq3w0wKU- zkOs(KSc$)-&4j4uqIfJc;*Lb)GSaAV1Zhj%C>pwVgIm~>PNY7S*2nwzdq0oUd%E}G z(Xq8LS1Jx%dpzg;u!-iOtGg8eQJK6; z-z##qnnD8>PVxQ-T~D+`^F(z35``t_7lPs#EoBQ5MLrwYfxVcC{U^QppvT{RSiQ%s zck9oK4w=(=1Vx8-#UPWR7+8xqkjEce`?esGwn-T)(;`98gD}+!52E0nSC9hgNO7*I zV8xM*I99KcNx9Dp^r46-FDZICxXNsu$-p`{Zl(+`>UBVHsK6o%gPik-$-DA=&Pf>h zG4h>*$7m_5m$?XLZ9*rMSXj=)P#jH+>`E!8=Fy5_KO&&0;s%{Zr!kQ(Z+|!TLopDw zuP+J^gaQpDffy|Xxh(HY0v|!4n}OSK`FAe=_pr`ILo@1ab^mo^x=P`y0u-=}ekh^l z2ErAEt!7C;L8%JbvEN|s1QRS3Ps|S0AZxJ71NpEwRTBI6jzu8sa#8rzw>%q<3#Rpl z=c?qb>eC5L<3g*zY+~sPsc6EK)Ua|FWfCd@`PiH~*N&A~vhsnfk{Hl@lgDN^I3l!^ zEIcB5B_! z1rVknK&Y%@mXyQqVH3n{ipmF%9MKL7XY8)ZZ~=#r{oAvtPZhI1LlX%}dD57#tVh`m zuW&LnP)w^*IJFHu=DK&^ozAjphGq@gps0vF^K+8l-tA-ug2H^a8A zC$lW+e^feCqmqEUP|+ly1-L26y>W^JXsUr;k1y9asx|f zvx6*cm7xiW10myz2rfD%rrooI&MCOq&?d#`z!|AlO-jE>)TpBZ;(^k5rBZKh0Q7cX|4__1}xX=2jo>=C#k25noU7s$7lT ztFRM9Ajn%-j&eq*tLqVV(W`@Nk88Z$_@1X4xN5NVlqqeweU-K-k_H+_)&(0!m~|cX z^k$%_A&CUuBS+&K$aSVmT0@K%Nq%#4=`LHKeeJz!pN@{zKD$NVQNQZXCExOKHGdnI z^a|?LK4Q+JLtjDCmU?}fr3hXv#65SXA*I_`@!C;hkKiDem}aKT>{L8XJuZcSG9*BO zei7cj9u{3&zCTtDB_{hf-A|84_8&1i6HN3zVi2c z=k@rZbWe9*2YqSVm<_muK38S9{V` zbqr6|!cndpmF{fYe`y4Z#}3k!Ba{n*kSQ>oUtxh{|DKBwJ5ZR^K6rAbLJS_a86^E;{!ZMnQ<^V|eS;Au6msLAsY*bpfqizxDrXl(-Knj-|1 zEjvjah-?-ZYK%?lFeVZ|G#RxDpP@u4<`tlVG7_n{qWX$$@jA@6k;pXMt0C9|x?W-b zl~ehGhA%ONvmWetxhVOq8`#$u^UZZZ(Hkb)aIK$KfS}v-r{=W zjJNaI0FVtcrH(UI%VV3%;FYk0j$0eA&J}_OGj;r?oj{&0$SH`JSqB`;rZh@TMcH&@ zoOn3s=&-ZZvbb^&dhd3*;Pj{u6n{VOR2pullXoaK0^^XhuR&Y+R}McHyn9Ap(~t0aD>a6ov#A zWj(=SW31d6nn8*%iLjxGWIKejYE#Te1?CAl20IuC{S7;W{iiMx&!63=PkRT{)rjmJeu}MiHs4hX646N91LN?s!1{}GWiG4|OwWO~d|0u`z8lsG+ z&=5bl816MIZ@WNjZRAMu>}?cI#6)~^jilWyDjO3P9K*A53K9u`Ck@-=X463NfMraa z47_2r41pmVSjt4UUVS;I@7eo})GArv{Cc`3nVjp1l4Of=&XomYLmc+S)+-Zr*rsh{ z%oy^(^D@Q#Lk6}f6QSzKY`-qAbfm zqAX}LnYMw-m_VxO0ZNp0CttnUZpI~rh=d~>Ne+dS9c9UR8qp=4Nv|)jFOd#D&S(33 zB=oB~%FCG^^t0;0oay=Fz4ocX3NN91TZkb|I4D=Y{G>@B!pO&_UhL~DUH|zdt0MRv zXZpJ~GTQQ@YB14Ce_p)S8>r?0zHyP3JTD<}4+=`QfNW}E^1P=a08jk&4!m1!<(yK0 z!`ztAeIcMe<;%$stVq3j=1$}uwEm7?`pf%naogUe^ykk&wEo-(PvO0vLPQxfDbWXm zL5P(y1!#)2h!m1Q2_I!RHlSK*5o`;O*V(wMq5`dmWlJfWmeIsHZ8q`UNkV}P%O+d_ zCFzHoSB#W^+;Se5dav%mV#?137)4$DkCgL;6uzgRKLRvI8Rj^sE91gS>u|Nr9EbZk=vILYjs?yeu{ z#Bng@Q52jq8nl)^p=*D|{Ad32eZOCS<{C(ctWWmwQ}e7!98FVkc^NDSf4!;NW6pw2 z5GD{Wxdk55PmJkvjeF_DAO4PRWq&ajdo22WES;US>zaE@oB|u&%H&2q`yRoGjboOC zm?ttI*ZlHk*}4+FAUb*{-mwT0nIsdl5Jq*!?u&UfnOu`PVp?NzSQ64?|9tdw5{{oZ zlbnX6XI?P)voKWwrL--Gse*!y32c_lh~O%mQie^<5m-sL+)m=MXTPTzfr(p4EKe*= z7J-H!UYd3%a)dW3CUo-y)g~m5*J}xMjCZi-Kj$Rl5lqS2HhIm4LRJ%Y^YI0aNeT+M z*I4P(bI86inFPm=iG9cgc9Sev5T2GhgEA7!zy-rfAEu!M!;bHer3VyFF}pSP+u+I$ zH~5OhRxKN%{)t5#*Q z8Dd)mAI|UuQ!YDbge-hz<}4?jOo~MX1xmd!){-qSB}?0m8T?OwSR_@y3ihht89x8# zW6tf;kKg|+(ck}Gbdm9?fBd(UU}@FQ`mrFbHXc_ipEU-XqZy6Dov@-kfis}Imgk7^ z`=EiRd%8w_ee+od$`9m>bX#N3kxwWQ=V!V9f+P`)$rnTU$@}=dhdgk`?-If5t~b-@ zC`-puoZGlT7s+}lL?@+0anU;Vy&0iV)WYK@M7d+}c~jcbbKvn16W>it<9y2rS$^K`5avVZWCNWm zK3r>q?DNBR1*DPQSj*@5H{ecXmq-99XNqQlyAe$yB8~0ppL5~~&Yj6F7Y!~Q8J7$1 zyZSgPa1j}A8wBwpJ}EaMm%bJhq}`u}qV_CVqk!zBkZKfLVLLLpyN1JeLGmD&ydD_L z=gvInBPFSJI(gP_1Qj|1U}q+fWH z+w>Fow*^pcQ6qmCiMz#>)gPeUTc|#N}1;BQ{~#aWM+P-L&5jJp}BhJbPaEn9hPwzOkkWzA2zymHAdYnyPe55 zsS$#w+X`)&Qi0B;Y_6>fn3KzEF|GBX8`SR+Q58<4F^yK!Vwa*S1X zCJRVX{FXGj5%I**AUllik~H$RpoAl;i55;dFdQ|8PYuaPFyV@t;T>4oaVJBG}os0XTle}@};X#Cw3oji7i)9 zTBRl5Q?vPa;0yai#h!lPrA$SthzKy8GBDh67er!t32^@$P6D63`5 zQM%->jEfI;O}c;)QVkHhoZwSF<%o6w3_GYg1s+86bIyWG4br!>tDbutFiBKdF~Of_ ztM1`84)K;*BaGe}1#sj+7rt+gxcXq`-|K1=Z5CY?^q%s z6+Og|f79#fP!kR0(RJ*nhbczt+jFQY)|4qqe;yRT;+sF%8NKYy(^le76t)ZN1t&2U zyk2FVfnvp3f1ynB_30n zHYhcr-;MInFXfGPz`J&;fBkE?6(28uo@oS`iI@dIq$twlOVKIp%uzcl8ji(Q{R|h? zQ&eol4#smEy54VAsGkqqkgIuy)zA#FyZO_?G8m(+*T$ zZ3Ie1V+?mTFzj!x^=&Cx<6q#>E6>TMItuWw(Rt5LKHzI7d)3%EnEIRZ+m=d$ab7vF zM$cF?xEX8tVAc+R!bg((J*@ZM3iP$(ebsG(OJhQwi9jo6*N%|*%|9O;n_{h2t zOgBWEdZayBH(h6`3%->ngO@QlJIN~w98N+& zFK+P`j)}WD(Qp|^1)u@Q2*kturrV(UvqukJLJhTQtz}5ho6VgsbZQj@iHobD=;CLg zqxH2wjLn+k(z5nJlwqrS`C#yAUyaPHbGR?GXF{u&DcnEX2*FbMQ86*aW`!dmFr#%~p07GKV~c%_8$+tgK>W@zKn?BBsp zlYi^%cKbU;kB}Lu%gzsb6B28~5nlF()Oa?S3EFAGDbxUJG!5K5D}RVGcyX}&{?Rw+ zvFt^Xx((*6K+xK1tFn>A*n^Um5#H}E$b<6P6>0?0gEF7 zlg-chd&Vh#Rmaj@oLt7{AHlxn)@{bu@-&|7m|12O`VE{lgW~*DQ6N=~+M-+_1)DBj zg|rIqI4lO-qvGkoZ3TPl%pT5!Q@^=i#V|S;zW-+QO&Q6xkpaM;15hvE zD-ZHBY*?)qs~|g4KpF63f8xBY@g+7dG-7J0kMYw wGT8EaQnd1()a?8WIL`n5nnjf5U$qAR03uQvgNqOv4*&oF07*qoM6N<$f>HAM4*&oF diff --git a/docs/devnotes/posts/assets/owning-the-model-stack/throttle-keying.png b/docs/devnotes/posts/assets/owning-the-model-stack/request-keying.png similarity index 100% rename from docs/devnotes/posts/assets/owning-the-model-stack/throttle-keying.png rename to docs/devnotes/posts/assets/owning-the-model-stack/request-keying.png diff --git a/docs/devnotes/posts/assets/owning-the-model-stack/retry-boundary.png b/docs/devnotes/posts/assets/owning-the-model-stack/retry-boundary.png index d01d8f7cd78f919a8bc74a3ac456dba80c7cbe91..e3918eee432b0638ee7381989e533e5d4ab344b2 100644 GIT binary patch literal 42573 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°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�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
    OFn80$4) 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 z z@)q8*$SdJEk{0(*R47mAk0u;mjd}Xy z^|E;O(B41SPCUoxTrXd1CF#vb)D2G<++R}zBxmRFUk^97CR(rXGe7pvsL`Ju_B40? zGxC=Bw2s>#mh0z)-)=J9o~Grpw3ts#24w<4p}o5)^)Q*%c}?d;|M$OCk(g6ANGaKd zem^eUTy**|Pq&Hy=IEzcfEp!XouhBW*xS)k0JqG_Sa*{TPo6b-f*i8 zy{!-RT(UTuei58<4kZdY z$Hfx9iajzg3Af<{38qiCF_`nrP2t2$y|S;eR+zKjDsi*i7(Jd>1B5u{=8ufyZb!*U zcO7N7@tNpVRC!d(!UdS+&8-9L2x`TJLALj1S1j__IbH}{&!s)!-5U~f4)|-^=@jfP zS^W3wxWMjf4fwc6-hlU&TNiJTW)&{B&4dcDTY5|cTS-4$XfPE0b@5==V;%?UyJ7X= z>m_TuSMN)c)THF!RJGd|l_TO$!w78VU#hK-CoTLdFDXg#|1$1 -![Three layers: AsyncTaskScheduler for dependency dispatch, row-group admission for memory, ThrottleManager for rate limits](assets/async-all-the-way-down/architecture-layers.svg){ style="max-width:100%; height:auto" } +![Three layers: AsyncTaskScheduler for dependency dispatch, row-group admission for memory, and request admission for provider capacity](assets/async-all-the-way-down/architecture-layers.svg){ style="max-width:100%; height:auto" } @@ -67,43 +67,42 @@ Getting this right required solving three problems at different levels of the st At the top sits the `AsyncTaskScheduler`. It builds an `ExecutionGraph` from your column configs using [Kahn's algorithm](https://en.wikipedia.org/wiki/Topological_sorting#Kahn's_algorithm) for topological ordering, then tracks per-cell completion via a `CompletionTracker`. When a cell completes, the tracker determines which downstream cells are now ready and pushes them onto the dispatch queue. -The scheduler maintains a *frontier* — the set of tasks whose inputs are all satisfied. Dispatch is a loop: pull ready tasks from the frontier, acquire a [semaphore](https://en.wikipedia.org/wiki/Semaphore_(programming)) slot, spawn a worker. When the worker completes, mark the cell done, which may add new tasks to the frontier. The loop runs until every cell in every row group has completed or been dropped. +The scheduler maintains a *frontier* — the set of tasks whose inputs are all satisfied. Dispatch is a loop: enqueue ready tasks, ask `FairTaskQueue` to select the next eligible task, acquire a scheduler-resource lease from `TaskAdmissionController`, commit the queue selection, then spawn a worker. When the worker completes, mark the cell done, release the lease, and make any newly-ready downstream tasks visible. The loop runs until every cell in every row group has completed or been dropped. -There's a subtlety in how the scheduler manages its task slots, and getting it right required a delicate dance between two semaphores. A naïve approach would hold a submission slot for the entire lifetime of a task. That's fine for the outbound HTTP call — the slot is released before the request goes out. But the `ThrottleManager` can impose an internal timeout while waiting for a permit during AIMD cooldown, and *that* wait would hold the submission slot hostage. If enough tasks are blocked waiting for throttle permits, the scheduler can't dispatch new work even when the frontier has ready tasks. +There's a subtlety in how the scheduler manages task-stage pressure. Scheduler resources and provider request resources are separate. The scheduler decides which dependency-ready cell may become a running worker; `ModelRequestExecutor` and request admission decide when an individual provider call may execute. Keeping those ledgers separate prevents provider cooldown or request backpressure from masquerading as DAG readiness. -The fix is a one-way semaphore handoff. The scheduler maintains two pools: a *submission* semaphore that caps how many tasks can be dispatched, and an *LLM-wait* semaphore (sized larger) for tasks that are blocked on a model call. When a task is about to call the model, it acquires an LLM-wait slot and releases its submission slot in the same atomic operation — stepping from one pool to the other mid-flight. The dispatch loop immediately sees a free submission slot and can send another task. When the LLM responds, the LLM-wait slot is released. Non-LLM generators (samplers, Jinja expressions) skip the handoff and hold their submission slot for the full duration, which is fine because they complete quickly. +The durable scheduler contract is selection plus admission plus commit: ```py -if is_llm_bound: - await self._llm_wait_semaphore.acquire() - holds_llm_wait = True - self._submission_semaphore.release() - holds_submission = False +selection = queue.select_next(lambda item, view: admission.is_eligible(item, view)) +decision = admission.try_acquire(selection.item, selection.queue_view) +committed = queue.commit(selection) +spawn_worker(committed, decision) ``` -This keeps the dispatch loop saturated without unbounded coroutine growth — the submission semaphore controls how fast tasks enter, and the LLM-wait semaphore controls how many are waiting on the network. +This keeps ready-work ordering, scheduler-resource accounting, and request-capacity adaptation explicit. `SchedulingMetadata` describes static generator pressure, `TaskSchedulingResolver` turns it into scheduler inputs, `FairTaskQueue` handles ready ordering, and `TaskAdmissionController` owns leases for scheduler resources. ### **Layer 2: Row-group admission** -Below the scheduler, the 10,000 rows you requested aren't all in memory at once. They're partitioned into row groups that checkpoint to parquet independently. A semaphore limits how many row groups are in flight simultaneously, preventing memory from growing unboundedly on large runs. +Below the scheduler, the 10,000 rows you requested aren't all in memory at once. They're partitioned into row groups that checkpoint to parquet independently. Row-group admission limits how many groups are in flight simultaneously, preventing memory from growing unboundedly on large runs. When a row group completes — all columns generated for all its rows — the buffer manager flushes it to disk and releases the memory. Partial results appear on disk during generation. If something fails, you keep everything that already checkpointed. This is also the basis for fault tolerance, discussed later — the unit of loss is a row group, not the entire run. ### **Layer 3: Adaptive rate limiting** -At the bottom, each (provider, model) pair gets an independent concurrency pool with [additive-increase, multiplicative-decrease (AIMD)](https://en.wikipedia.org/wiki/Additive_increase/multiplicative_decrease) rate adaptation. When the provider returns a 429, the pool cuts its concurrency. On streaks of successful requests, it gradually increases. Because this happens per-model, a judge model running on one provider can saturate its endpoint while a generator on another provider is backing off. The [Owning the Model Stack](owning-the-model-stack.md) dev note covers this layer in depth. +At the bottom, each provider/model/request-domain resource gets [additive-increase, multiplicative-decrease (AIMD)](https://en.wikipedia.org/wiki/Additive_increase/multiplicative_decrease) request admission. When the provider returns a 429, `AdaptiveRequestAdmissionController` reduces admitted concurrency for that request resource. On streaks of successful requests, it gradually increases. Because this happens per request resource, a judge model running on one provider can saturate its endpoint while a generator on another provider is backing off. The [Owning the Model Stack](owning-the-model-stack.md) dev note covers this layer in depth. ### **How they compose** -The layers are independent. The scheduler decides *what* to run next. The row-group layer decides *how much* to keep in memory at once. The throttle layer discovers *how fast* each provider will accept requests. No layer needs to know about the others. +The layers are independent. The scheduler decides *what* to run next. The row-group layer decides *how much* to keep in memory at once. The request-admission layer discovers *how fast* each provider will accept requests. No layer needs to know about the others. A single task's lifecycle makes the composition concrete:
    - Task lifecycle: Frontier → Dispatch → Generator → Throttle → LLM Call → Complete, with downstream cells looping back to the frontier + Task lifecycle: Frontier to fair queue to task admission to generator to request admission to LLM call to complete, with downstream cells looping back to the frontier
    -A cell enters the frontier when its upstream dependencies are satisfied. The dispatch loop acquires a submission slot and hands it to a worker. The worker runs the generator, which acquires a throttle permit before making the LLM call. On completion, permits are released, the cell is marked done in the `CompletionTracker`, and any downstream cells whose dependencies are now satisfied enter the frontier. The cycle continues until every cell has completed or been dropped. +A cell enters the frontier when its upstream dependencies are satisfied. The scheduler enqueues it, selects it through `FairTaskQueue`, acquires a `TaskAdmissionLease`, commits the selection, and hands the task to a worker. The worker runs the generator; any model call goes through `ModelRequestExecutor`, which acquires and releases the request-admission lease around provider execution. On completion, leases are released, the cell is marked done in the `CompletionTracker`, and any downstream cells whose dependencies are now satisfied enter the frontier. The cycle continues until every cell has completed or been dropped. --- @@ -138,13 +137,13 @@ The pattern is clear: speedup scales with the amount of parallelism available in The **narrow** workload is a sequential chain with no cross-column parallelism. The async engine still ekes out a small gain from overlapping row-level dispatch, but there's no structural parallelism to exploit. This is expected: async can't speed up a fundamentally serial pipeline. -The **dual-model** workload is the most interesting case. Three generation columns use one model, and three judge columns use another. Each model gets its own ThrottleManager pool. The judge model starts processing rows as soon as the first generator finishes, running at full concurrency while the generator is still producing. In the sync engine, all generation has to finish before any judging starts. +The **dual-model** workload is the most interesting case. Three generation columns use one model, and three judge columns use another. Each model maps to its own request-admission resources. The judge model starts processing rows as soon as the first generator finishes, running at full concurrency while the generator is still producing. In the sync engine, all generation has to finish before any judging starts. ### **At higher record counts** -The benchmarks above use 10 records deliberately — small batches isolate the scheduling benefit from rate-limit effects. At higher record counts, the bottleneck shifts. The async engine dispatches requests more aggressively, which means it discovers the provider's rate limits sooner. When a 429 hits, the AIMD controller backs off, and the backoff can cascade through downstream columns that were waiting on the throttled model's output. +The benchmarks above use 10 records deliberately — small batches isolate the scheduling benefit from rate-limit effects. At higher record counts, the bottleneck shifts. The async engine dispatches requests more aggressively, which means it discovers the provider's rate limits sooner. When a 429 hits, adaptive request admission backs off, and the backoff can cascade through downstream columns that were waiting on the rate-limited model's output. -This is where the per-model throttle pools become important. Single-model pipelines are most susceptible to cascading backoff because all columns compete for the same pool. Multi-model pipelines hold up well because each model adapts independently — a 429 on the generator model doesn't slow down the judge. In our larger runs, dual-model and multi-provider workloads consistently showed the largest async gains. +This is where per-model request resources become important. Single-model pipelines are most susceptible to cascading backoff because all columns compete for the same provider capacity. Multi-model pipelines hold up well because each model adapts independently — a 429 on the generator model doesn't slow down the judge. In our larger runs, dual-model and multi-provider workloads consistently showed the largest async gains. The primary tuning lever is `max_parallel_requests` per model. Set it to a generous upper bound and let AIMD find the real ceiling. See the [Owning the Model Stack](owning-the-model-stack.md) dev note for the full story on adaptive concurrency. @@ -180,7 +179,7 @@ The performance numbers are satisfying, but raw throughput is only part of the p ### **Progress you can see** -Because rows complete out of order and row groups checkpoint independently, results start appearing on disk within seconds. The new progress bars — sticky ANSI bars that redraw in-place at the bottom of the terminal — update on every task completion rather than waiting for a full column to finish. Log messages from the scheduler and throttle layer render above the bars, so you see both the high-level progress and the per-event detail. A 10-minute generation run no longer means staring at nothing until the end. +Because rows complete out of order and row groups checkpoint independently, results start appearing on disk within seconds. The new progress bars — sticky ANSI bars that redraw in-place at the bottom of the terminal — update on every task completion rather than waiting for a full column to finish. Log messages from the scheduler and request-admission layer render above the bars, so you see both the high-level progress and the per-event detail. A 10-minute generation run no longer means staring at nothing until the end. ``` column 'topic' ████████████████████████████████████░░░░ 89% | 890/1000 | 148.3 rec/s | eta 1s | 0 failed @@ -189,13 +188,13 @@ Because rows complete out of order and row groups checkpoint independently, resu column 'analysis' ██████████████░░░░░░░░░░░░░░░░░░░░░░░░░░ 35% | 350/1000 | 87.5 rec/s | eta 7s | 1 failed ``` -When tracing is enabled (`DATA_DESIGNER_ASYNC_TRACE=1` or `RunConfig(async_trace=True)`), the scheduler also records a `TaskTrace` for every task: when it was dispatched, when it acquired a semaphore slot, when it completed, and its status. These traces are available on the result object after the run, so you can reconstruct the scheduler's timeline and understand where time was spent. +When tracing is enabled (`DATA_DESIGNER_ASYNC_TRACE=1` or `RunConfig(async_trace=True)`), the scheduler also records a `TaskTrace` for every task: when it was dispatched, when it acquired scheduler resources, when it completed, and its status. These traces are available on the result object after the run, so you can reconstruct the scheduler's timeline and understand where time was spent. ### **Fault tolerance** Failures in a long-running pipeline are not exceptional — they're expected. Model endpoints return 429s, connections time out, prompts produce unparseable output. The scheduler classifies errors into two buckets. -Retryable errors (rate limits, timeouts, transient server errors) are deferred rather than dropped. The task stays on the frontier so it can be re-attempted. If a row group stalls — all of its pending tasks are deferred and nothing is in flight — the scheduler detects the deadlock and runs *salvage rounds*: it re-dispatches the deferred tasks inline, up to a configurable maximum number of attempts. Tasks that still fail after salvage are dropped, and the row group is checkpointed with whatever succeeded. This prevents a stalled row group from holding its semaphore slot forever and blocking admission of new row groups. +Retryable errors (rate limits, timeouts, transient server errors) are deferred rather than dropped. The task stays on the frontier so it can be re-attempted. If a row group stalls — all of its pending tasks are deferred and nothing is in flight — the scheduler detects the deadlock and runs *salvage rounds*: it re-dispatches the deferred tasks inline, up to a configurable maximum number of attempts. Tasks that still fail after salvage are dropped, and the row group is checkpointed with whatever succeeded. This prevents a stalled row group from holding row-group admission capacity forever and blocking admission of new row groups. Non-retryable errors (malformed output, validation failures) drop the row immediately. The `CompletionTracker` knows which downstream tasks depended on that row and removes them from the frontier, so no work is wasted on a row that's already lost. @@ -203,7 +202,7 @@ In both cases, completed row groups are already on disk. The unit of loss is at ### **Multi-model concurrency** -Multi-model pipelines are where the architecture pays for itself. With independent throttle pools per model, there's no reason not to use the right model for each job: a reasoning model for generation, a smaller model for judging, an embedding model for deduplication, each running at its own optimal concurrency. The previous engine supported multi-model configs, but running them concurrently is what makes them practical at scale. +Multi-model pipelines are where the architecture pays for itself. With independent request resources per model, there's no reason not to use the right model for each job: a reasoning model for generation, a smaller model for judging, an embedding model for deduplication, each running at its own optimal concurrency. The previous engine supported multi-model configs, but running them concurrently is what makes them practical at scale. ### **Adoption** @@ -215,7 +214,7 @@ Adoption is opt-in. Set `DATA_DESIGNER_ASYNC_ENGINE=1` in your environment. Your This was a ground-up rebuild of the execution layer, delivered across six PRs over four weeks. -It started with the data structures: `ExecutionGraph`, `CompletionTracker`, and task models ([#356](https://github.com/NVIDIA-NeMo/DataDesigner/pull/356)). Next came the generator migration ([#378](https://github.com/NVIDIA-NeMo/DataDesigner/pull/378)), where we added symmetric `generate()`/`agenerate()` bridging so every generator works in both modes without rewriting. The core scheduler and buffer manager followed in [#404](https://github.com/NVIDIA-NeMo/DataDesigner/pull/404), then integration into `DatasetBuilder` with callbacks and trace export ([#429](https://github.com/NVIDIA-NeMo/DataDesigner/pull/429)). The `ThrottledModelClient` and dual-semaphore scheduler landed in [#449](https://github.com/NVIDIA-NeMo/DataDesigner/pull/449), wiring AIMD concurrency control into every outbound model request. A final polish pass ([#456](https://github.com/NVIDIA-NeMo/DataDesigner/pull/456)) added async preview, unified lifecycle callbacks, and sticky ANSI progress bars. +It started with the data structures: `ExecutionGraph`, `CompletionTracker`, and task models ([#356](https://github.com/NVIDIA-NeMo/DataDesigner/pull/356)). Next came the generator migration ([#378](https://github.com/NVIDIA-NeMo/DataDesigner/pull/378)), where we added symmetric `generate()`/`agenerate()` bridging so every generator works in both modes without rewriting. The core scheduler and buffer manager followed in [#404](https://github.com/NVIDIA-NeMo/DataDesigner/pull/404), then integration into `DatasetBuilder` with callbacks and trace export ([#429](https://github.com/NVIDIA-NeMo/DataDesigner/pull/429)). The historical predecessor to request admission and task-stage capacity control landed in [#449](https://github.com/NVIDIA-NeMo/DataDesigner/pull/449), wiring AIMD concurrency control into every outbound model request. A final polish pass ([#456](https://github.com/NVIDIA-NeMo/DataDesigner/pull/456)) added async preview, unified lifecycle callbacks, and sticky ANSI progress bars. The symmetric bridging was critical for adoption. Every `ColumnGenerator` has both a `generate()` and an `agenerate()` method. Implement one, and the base class synthesizes the other: @@ -278,7 +277,7 @@ Key Resources: 1. [NeMo Data Designer on GitHub](https://github.com/NVIDIA-NeMo/DataDesigner) 2. [Data Designer Documentation](https://nvidia-nemo.github.io/DataDesigner/) -3. [Owning the Model Stack: Adaptive Concurrency](owning-the-model-stack.md) — companion dev note on the native client layer and AIMD throttling +3. [Owning the Model Stack: Adaptive Concurrency](owning-the-model-stack.md) — companion dev note on the native client layer and AIMD request admission 4. [Async Engine Plan (#346)](https://github.com/NVIDIA-NeMo/DataDesigner/issues/346) — original issue and architecture plan *Want to learn more about NeMo Data Designer? Check out our [documentation](https://nvidia-nemo.github.io/DataDesigner/) and start building your own synthetic data pipelines today.* diff --git a/docs/devnotes/posts/owning-the-model-stack.md b/docs/devnotes/posts/owning-the-model-stack.md index 062c5cb35..7c3e51ee3 100644 --- a/docs/devnotes/posts/owning-the-model-stack.md +++ b/docs/devnotes/posts/owning-the-model-stack.md @@ -8,11 +8,11 @@ authors: Picture this: you're generating a million-record dataset. Thirty two concurrent requests per model, three models in the pipeline, two providers. Everything hums along for the first ten minutes — then one provider starts returning 429s, your retry logic kicks in, and suddenly you're in a feedback loop where retries *cause* more 429s. The run stalls. You restart with lower concurrency, waste throughput for hours, and wonder if there's a better way. -There is. This post is about the native model client layer we built with adaptive throttling (a system that discovers provider capacity at runtime) replacing our dependency on LiteLLM along the way. +There is. This post is about the native model client layer we built with adaptive request admission (a system that discovers provider capacity at runtime) replacing our dependency on LiteLLM along the way. -![From chaotic request flow to calibrated concurrency via adaptive throttling](assets/owning-the-model-stack/native-model-client-hero.png) +![From chaotic request flow to calibrated concurrency via adaptive request admission](assets/owning-the-model-stack/native-model-client-hero.png) ## **Why We Made the Move** @@ -38,9 +38,9 @@ From top to bottom: 1. **ModelFacade**: orchestrates correction loops, MCP tool-calling, and usage tracking. This is the public API. Column generators talk to this layer, and it was untouched during the migration. If you've written a Data Designer pipeline, nothing about your code changes. -2. **ThrottledModelClient**: the new layer. It's a decorator around `HttpModelClient` — same `ModelClient` protocol, but every outbound call is wrapped with a throttle permit: acquire a concurrency slot before the call, release it after, and feed the outcome (success, 429, or error) back to `ThrottleManager`. This is where adaptive throttling lives. +2. **ModelRequestExecutor**: the request execution layer. It maps every outbound model call to a provider/model/domain request resource, acquires a request-admission lease before provider execution, releases it on every terminal path, and feeds the outcome (success, 429, or error) back to request admission. -3. **ThrottleManager**: the Additive Increase / Multiplicative Decrease (AIMD) controller that `ThrottledModelClient` delegates to. A single instance is created at pipeline startup and shared across all model clients. It owns all the mutable concurrency state — per-domain AIMD counters, global caps, cascade dampening, and cooldown timers. +3. **AdaptiveRequestAdmissionController**: the Additive Increase / Multiplicative Decrease (AIMD) controller used by `ModelRequestExecutor`. A single shared controller is created at pipeline startup and shared across all model clients. It owns the mutable request-admission state — per-domain AIMD counters, global caps, cascade dampening, and cooldown timers. 4. **HttpModelClient**: an abstract base class that defines the interface for all provider adapters. It owns the shared `httpx` transport lifecycle — connection pooling, timeouts, and transport-level retries for transient failures (502, 503, 504). Boring but important. @@ -50,7 +50,7 @@ From top to bottom: The boundary between `ModelFacade` and the client layer is defined by canonical types. `ChatCompletionRequest`, `ChatCompletionResponse`, `EmbeddingRequest`, `EmbeddingResponse`, `ImageGenerationRequest`, `ImageGenerationResponse`, and `ProviderError`. These are plain dataclasses. No provider SDK objects cross this line. A `ModelClient` protocol defines the contract that all adapters implement, and that's the only interface the rest of the system sees. -## **Adaptive Throttling: The Centerpiece** +## **Adaptive Request Admission: The Centerpiece** With this client stack in place, we had the foundation to build something that wasn't possible before. Adaptive concurrency control. Let's start with the problem. @@ -95,23 +95,23 @@ Here's a subtlety that bit us during testing. When the system is running at capa Real pipelines aren't simple. A single provider+model combination might serve chat completions, embeddings, and image generation, potentially on different rate-limit budgets. And multiple [model aliases](../../concepts/models/model-configs.md) in your pipeline might point to the same underlying provider and model (say, one alias for generation and another for judging, both hitting the same NVIDIA endpoint). -The throttle manager handles this with two-level keying: +Request admission handles this with two-level keying:
    -![Two-level throttle keying: global cap per provider+model, independent domain states for chat, embedding, image](assets/owning-the-model-stack/throttle-keying.png){ style="max-width:75%; height:auto" } +![Two-level request-resource keying: global cap per provider+model, independent domain states for chat, embedding, image](assets/owning-the-model-stack/request-keying.png){ style="max-width:75%; height:auto" }
    - **Global cap**: keyed by `(provider_name, model_id)`. When multiple model aliases target the same provider and model, the effective max is `min()` of their configured `max_parallel_requests`. This enforces the most conservative limit for shared upstream capacity, because the provider doesn't care what you *call* the model, it sees the same API key. -- **Domain state**: keyed by `(provider_name, model_id, throttle_domain)`. Each domain (`chat`, `embedding`, `image`, `healthcheck`) maintains its own AIMD state: `current_limit`, `in_flight`, `blocked_until`, `success_streak`, and `rate_limit_ceiling`. Domains float independently but are always capped by the global max. +- **Domain state**: keyed by `(provider_name, model_id, request_domain)`. Each domain (`chat`, `embedding`, `image`, `healthcheck`) maintains its own AIMD state: `current_limit`, `in_flight`, `blocked_until`, `success_streak`, and `rate_limit_ceiling`. Domains float independently but are always capped by the global max. The practical effect is that a burst of 429s on the chat route doesn't starve embedding requests, and vice versa. Each route adapts to its own capacity independently while respecting the shared upstream limit. ## **The Retry Boundary** -There's a design choice here that isn't obvious until you think about it, and getting it wrong would break the entire throttling system. +There's a design choice here that isn't obvious until you think about it, and getting it wrong would break the entire adaptive request-admission system. The transport layer (via `httpx` with `RetryTransport`) handles transient server failures like 502, 503, 504, and connection errors. These are hiccups. The server is temporarily broken. Retry with exponential backoff and jitter, and move on. @@ -119,37 +119,25 @@ But **429 is explicitly excluded from transport retries**.
    -![Retry boundary: 502/503/504 retried at transport, 429 passed through to ThrottledModelClient for AIMD feedback](assets/owning-the-model-stack/retry-boundary.png){ style="max-width:75%; height:auto" } +![Retry boundary: 502/503/504 retried at transport, 429 passed through to ModelRequestExecutor for AIMD feedback](assets/owning-the-model-stack/retry-boundary.png){ style="max-width:75%; height:auto" }
    -Why? Because if the retry layer swallows 429s, the throttle manager never learns the provider is overloaded. The whole AIMD feedback loop depends on seeing raw rate-limit signals. A 429 must bubble up to `ThrottledModelClient` so it can call `release_rate_limited()`, cut the concurrency limit, apply the cooldown, and record the ceiling. The next attempt then re-enters the throttle acquire path, waiting for a permit, before making another HTTP call. +Why? Because if the retry layer swallows 429s, request admission never learns the provider is overloaded. The whole AIMD feedback loop depends on seeing raw rate-limit signals. A 429 must bubble up to `ModelRequestExecutor` so it can release the request lease as rate-limited, cut the concurrency limit, apply the cooldown, and record the ceiling. The next attempt then re-enters the request-admission path before making another HTTP call. -The split is clean and worth remembering. Transport retries handle *server problems*. Throttle adaptation handles *capacity problems*. The provider is working fine, you're just sending too many requests. Conflating the two is how you get retry storms. +The split is clean and worth remembering. Transport retries handle *server problems*. Request admission handles *capacity problems*. The provider is working fine, you're just sending too many requests. Conflating the two is how you get retry storms. -One caveat: this boundary behaves differently depending on the execution mode. In async mode (currently experimental, enabled with `DATA_DESIGNER_ASYNC_ENGINE=1`), 429s bypass transport retries entirely and flow straight to `ThrottledModelClient` for AIMD feedback — this is the full adaptive loop described above. In sync mode, 429s are retried at the transport layer since there's no salvage queue to re-attempt failed rows. AIMD is still wired up but only fires if all transport retries are exhausted. This is temporary — once the async engine graduates from experimental, it will become the default path and the sync codepath will be retired. See [Async All the Way Down](async-all-the-way-down.md) for the full story on the async engine. +One caveat: this boundary behaves differently depending on the execution mode. In async mode (currently experimental, enabled with `DATA_DESIGNER_ASYNC_ENGINE=1`), 429s bypass transport retries entirely and flow straight to `ModelRequestExecutor` for AIMD feedback — this is the full adaptive loop described above. In sync mode, 429s are retried at the transport layer since there's no salvage queue to re-attempt failed rows. AIMD is still wired up but only fires if all transport retries are exhausted. This is temporary — once the async engine graduates from experimental, it will become the default path and the sync codepath will be retired. See [Async All the Way Down](async-all-the-way-down.md) for the full story on the async engine. ## **Configuration** -The throttle system is designed to work well out of the box. The defaults are conservative and handle most workloads without tuning. The primary user-facing knob is still `max_parallel_requests` on your model's inference parameters, which sets the hard upper bound for concurrency. AIMD floats below it. - -For workloads where you want to fine-tune the adaptation behavior, `ThrottleConfig` is available on `RunConfig`: +Adaptive request admission is designed to work well out of the box. The defaults are conservative and handle most workloads without tuning. The primary user-facing knob is still `max_parallel_requests` on your model's inference parameters, which sets the hard upper bound for concurrency. AIMD floats below it. ```python import data_designer.config as dd from data_designer.interface import DataDesigner data_designer = DataDesigner() -data_designer.set_run_config( - dd.RunConfig( - throttle=dd.ThrottleConfig( - reduce_factor=0.75, - success_window=25, - cooldown_seconds=2.0, - ceiling_overshoot=0.10, - ) - ) -) config_builder = dd.DataDesignerConfigBuilder( model_configs=[ dd.ModelConfig( @@ -171,21 +159,11 @@ create_result = data_designer.create( ) ``` -| Parameter | Default | What it does | -|---|---|---| -| `reduce_factor` | 0.75 | Multiplicative decrease on 429 (0.75 = reduce by 25%) | -| `additive_increase` | 1 | How much to increase the limit after a success window | -| `success_window` | 25 | Consecutive successes before additive increase | -| `cooldown_seconds` | 2.0 | Default cooldown when no `Retry-After` header | -| `ceiling_overshoot` | 0.10 | How far above the observed ceiling to probe (10%) | - -In practice, the parameter most worth adjusting is `success_window`. A smaller window (say, 10) makes the system more aggressive about reclaiming throughput after a pullback, useful when you know the provider's capacity fluctuates quickly. A larger window (say, 50) makes it more conservative, better for providers with strict, stable rate limits where you'd rather not probe at all. - -Most users will never need to touch any of these. The system adapts automatically. +Most users will never need more than `max_parallel_requests`. The system adapts automatically, and capacity diagnostics are exposed through runtime logs and `AsyncCapacityPlan` rather than public controller tuning knobs. ## **What It Looks Like in the Logs** -`ThrottleManager` logs every state transition at `INFO` level, so the adaptation story is visible in your terminal as the run progresses. +Request admission logs every state transition at `INFO` level, so the adaptation story is visible in your terminal as the run progresses. ``` # When the system hits a 429 and cuts concurrency: @@ -208,9 +186,9 @@ Reading these lines in sequence tells you exactly what happened: where the syste ## **Where This Leaves Us** -This shipped in Data Designer v0.5.4. If you're using Data Designer today, nothing changes in your pipeline code. `ModelFacade` is the same API it's always been. What changes is what happens underneath. The system now discovers provider capacity at runtime, isolates throttle state per route, and separates retry logic from rate-limit adaptation. Adaptive throttling is enabled by default for all providers. You don't opt in or configure anything; it just starts learning. If you want to see this fully in action, turn on async mode — see [Async All the Way Down](async-all-the-way-down.md) for details. +This shipped in Data Designer v0.5.4. If you're using Data Designer today, nothing changes in your pipeline code. `ModelFacade` is the same API it's always been. What changes is what happens underneath. The system now discovers provider capacity at runtime, isolates request state per route, and separates retry logic from rate-limit adaptation. Adaptive request admission is enabled by default for all providers. You don't opt in or configure anything; it just starts learning. If you want to see this fully in action, turn on async mode — see [Async All the Way Down](async-all-the-way-down.md) for details. -For most workloads, the defaults are all you need. Set `max_parallel_requests` to a generous upper bound and let AIMD find the right level. If you're running against a stack that returns 429s, the system adapts to the available capacity without any tuning. If you want finer control, `ThrottleConfig` is there — but the goal is that you spend your time designing datasets, not tuning concurrency knobs. +For most workloads, the defaults are all you need. Set `max_parallel_requests` to a generous upper bound and let AIMD find the right level. If you're running against a stack that returns 429s, the system adapts to the available capacity without public controller tuning. Key Resources: diff --git a/fern/assets/async-all-the-way-down/architecture-layers.svg b/fern/assets/async-all-the-way-down/architecture-layers.svg index 122d3d95d..dec3601a6 100644 --- a/fern/assets/async-all-the-way-down/architecture-layers.svg +++ b/fern/assets/async-all-the-way-down/architecture-layers.svg @@ -39,21 +39,21 @@ Row-Group Admission & Buffer Management Memory-bounded execution with streaming checkpoints - • Semaphore-gated row-group admission + • Admission-gated row groups • Per-group buffer with cell-level writes • Checkpoint-to-parquet on completion - • Submission semaphore caps in-flight tasks + • Task admission caps in-flight work - + - ThrottleManager (AIMD Adaptive Concurrency) - Per-model, per-provider rate-limit adaptation + Request Admission (AIMD Adaptive Concurrency) + Provider/model/domain rate-limit adaptation • Additive increase on success streaks • Multiplicative decrease on 429s - • Independent pools per (provider, model) + • Independent request resources • Global cap across model aliases diff --git a/fern/assets/async-all-the-way-down/task-lifecycle.png b/fern/assets/async-all-the-way-down/task-lifecycle.png index 69262a3b50fd2264985d92d52df7e3196fd19583..1d0330513266760ecdab07c6ea13368b87a0de93 100644 GIT binary patch literal 47355 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
  • so+-O7eDyUK51T+1B_pu_2p{7j^0z4hca{ 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�&37XkD^=J!O_&bTk*a@{Ig#pN2vz|{bSXI9sJ_!?e!t_+(%~yz303BE z3v(WF`x<;ZjX!K*%O>07*y#06Ci#N_cu>~{YF91=_A}%o{%dbwUBh{a?=yWJF8tke z&x(a5W{}W%N^-`;Mr9T{A$XQN{)M$@`{_YjEwN1Sr|2M2yfL3tlf`rl`SnVTfzmis zHh0axp0uSi`~gQ?ofT?%eLA=D)8p=sOdCw_5BPS&pysT|(!z7$!eq6D=DE6zjEtaA zrcK&SW{#EQa_cXo$l5n&R4J@lTD`%m{`2^`jscoqZr2-ZxYU+L(bFY!dPRPimT*Zu zesboWm(gP%A)iUelLI=$A!d%p<{A$NyZADOPk}y>ThnsX0!Tgel~fDg;ARkaDDbg2 z&oWfydyCF7tqv(}85tRA#5XqLE&D>#TO+t)%!TL!9~flJgt#SY%U#jAtanP<{!TvV zZLSl?mi*N&u^R8vA_gtM9<;rXR;9ltB2rRV2tUAQ!&-*^t5b}qU0`+QNIB?S zT{jV>)L_5&-FM3*)z#;a{jsEN&u_)MIbIRA*fd|ol2KFwEc6=E;*M9o&IOFJX-8Gl z3MgGe`R!F>Nv>nRWsQ43xfvM^)6b@eER4^>Pbgh!H6-sawQX};j7Z^Mr(Bqtnrinm zrB3o$r$_n~nv-fWTl~WuUv0uBEg2-lw1>-fQf(<_aV2gqOKS7F?Eh*wyHtOQspLyR z!TYUA(cATw%QA>IDiJ7>t@<776Y{q!Ha}hUe*_^t_Nj45qz@(4K&~zcVPG%W`WbnnXjDQoDwa4rcp1(g{fb9L(<=MlB z52yJ4Mm?2k1@<-CfRwnV{xtt29Jg;-!1D}%y{Iipnu#_NvH_~^cB6_n_kNgbdW~#$ z(^ABalF!`~=640DSn27mmvf=nBWpFjmY3Nl6J*HH?3^UneQ#fs6p5$ca?+NW<%MTtR_zt+bPO z!^@Y4Lz&3j@g7S`;Rjz-(R$`)UZxh46;DCs(fGx11_tJ^H*aK|S2k0*_s2j0<=0zY zUd}B?Yl899@%fhG&k@Z@&vckmkQkKuGxbr|M`+`+zPlylTpb>+Vr_891#hv1ZRn^r z>_chk@e?YLSxW(I>>2o<4&!G!|(- z6)SAMdGjNs$dxA4l`6vwu8S#bXrq#-mMtzRKjCfpV*MI-vh9<*U-U~$(5W{x@%Rq8 z%aqa$nNzfsifNC%KsB5b@#)^k_{BGw&C5H#G`%R#e0xTAVq;^Mmy1JRv3|8~eL6&a z7I;jx(s5q8hG?rWmg7Bpe$bbAbDUXIys-lD_3PK+QYQ@)Z50=r_juE3|k%whY!sfbEQsY zYATnW%zYZN_8@c${P-Z8CoNE7SYYb~wEpIK1W-4V!xKGkIG(ef#{ic+!bAe{+LsyA zxt^t6oQM}5wDsR^*HO6b$B9*z$) z1hJT>KO$*z-qvTbk?cnv?u~G%a!P0wg`|fFBn~1=99AQW%O|ojH5-Cod}-CBn4RHQ zPrKcGM4+v;73C4#TV{?^$DnWeh&b~D5J!sY($5Wj(+M5@@nn{V6boX$I+~dvZw?V%$ zL`mh`EIQj?;=QV%qy*chl>2VBm=zw6PuB_4_1)QE3(c315Z6N)UqCM<#Mn&*o;@=2 z7MI(FtJ@o8@HamDX&da0o5xeO{{Eav*1uS@D>Gx+)%aX+7UBfyYA9oc&Aqu0g9#<3 zXxaMFB57xtUhM6WG6ea9LptGp?5Ls4!~?MaU4;X{KUWh;AMN8!5t9(V7dGwF`6?KS z|CK$ex&mV(DQ=1$sYDY5_`i@m6o=-va$G+q^)S)muHd%-2ws~+e({P%ByF7a?xf`>p!s8pY9f1zIBu-+une# zP+Ic+7Bk`~HSCz+SM&U(NTaE#$)my{z^EuHBx1DIsMg~^#F1-shg`mnO-f-%mo+{< zj5;R|l2>k18C@;wiHg2rm8waVntGJYmzF&a1I8vJ@d5@0nJy=SZ+9;yZLs5}L&`qI4kJmXvIw>Gg$_ zh&;JCRKy2J9lt2acCWV~g-Ob+t(QTr}*s&*RP zaLhI9YX1JcN_p}!!;}CKpZjK0-F0m>E;pVb_`+PL41{q3&mkN`NWEh_%E`I6;34#= zD}nDSILb~FFEsAOllkcyUdFUi^OKoR^#sT95bbEE%sg27kz-}&PeD@V26X3zE?&6c zEB>@apj|JF-F0?E$0zSDO8ZmSa*Fo?=|{b@rS$Q3a7^chGGQBcaVcbd6FHHs3u0k} zQm-uG@}HysL@9f{VKZ9?XFMjVF)03HQ3A9Btm?#h8fPvvi%2qhD$HM6E z?t$MqN;F)O$k{rX zM#b~z&sT>Y5d(6DdL7(~B0xrwTF>EiZVL*?qO?_$Z)y;~!tVB+;`hw6S(=;MeBcGC zD)h)e$)iV}o}QpRXm4+S_iHzsi@}UiBzcGE7EYRqXAW=i` z6D_iQ>mC(FvEE!1FsqsGsUBx$n8vSCE&^p z^o!Va+w3}GcO3$K9y!DvU?r&geiW|zHN0fK!SQ3Rt-CfwDoh#tAg05n7(bO&Tt}X9 zHUDEdcuH(nJ_LilO|ebC?e}txP|6-3za&35_piaC?69|2I}^w%`jSnex8nXo6cE&v2aPmY>4&sG7Q^?`Jei?E2vbqRNTCD!5J`nLL+MAJ>H`au z6M_I)$D?$JV#nTM#i6`?2-&VkrlSaTb;~ylTk$mifMpZ=(%}srgsuCU(|F#S566I<`^n zzHrma$L`U^>0~_8s#*c#ik1fa_RMWKFEzCsQ$bm8J;uh?&yRcjHV;dS2-pXjY4C+u zFn@qD6q=@+RO)h35k|NJ>hVu98Rhq`?Ap0`=ig&EONH=imtTefX3J^&{nv?uMrgP1 z9UZXMdaNzKd_cJ-V@3f64VcQj%KGS(c!lRuSItJ4GJgn7LXivH(!NWTTemYT$SK;MPJx|l$j95*B;M{@n7PKo4@=r4E+81 z!2*G6mt@y{MF>&+!po1pIIOCI(gV66-&V$FfKHFC>?&TucJrKg&VALydof)Q-y2Xd zLWGTi&+@Or6Zi1!6}YEpa>wUSd{#{O;zBk#_vqT{pd3u~=QHn{Q>-kM;Vl zn4Ti(dwn(637c1psVsL}=tkMDD^uov=%Tc(aZOxIT;k)oT^vcd81Fs_XW|{fTnkLu zQuQP<*NRBlKt17G)veW|YFS@h7Cj#tPds z#8Ukvhfn_7UH~14I+`wxpyk#LH|iV}zQ|x6{osi%I`BQCv|-zAyBd834-H z)KzLz>PWc0I-JibSx%XljRBj=4@{APfpWDjX_VRf7U+}2L5Hm+DydMpU@q^PDBFR0RD8_) z_gg@W4Gav@HhTzNZN^(wvUj!%-PegCuUL6qw!iaY2WbH!0XJ#37n5K9E}i3RJlY}n zX33m3%DA~c%@8zOjENY!zy}teZ6e5Lba)gyGQU2eM+A&evD33Eo}T5lPbDFOta36Y z#yQOOQG~QUHbEkNgCA{{5S*P|EVysXho(ehKQAw@W`%yiSm4<^cd{Ry1c~d&n+mBf ztZWMd`ri_`Wc)HpJ7TibdU6tCIKD!C?1|~`3BynwtDvB8TKYmzS-aAIdPr1L*b{qI zYbr{aVsL*-z|<(>r5D7)fY?d6I=*#?u@a=1>41MVh2~;e9dnD@6Z&Ry^!ck3S{FwZ z6%=X~|IXS=+2cF__@tIs(wX_Y*1*=pkt=J!SaYXwXQ?L99cDbt%v?K7>5BcDQcN-1 z`7p1|bU7w{s%JvzAZ%UKEhO@jR;Vh-d`F)|x-VUzYshS8(^Sl%J=oIHf}(>5f~7TZDS?9wyRqC+P%KT0rXq(NMJKn=IfcECcaNfun4J0;XC5BN*- z+mwT$2g1UNYIa&0JJR8)pHcnHp5sdT|$zvzhst)+XO8vBmnEVKm&x5F3Ax z@=)OKN*2n67zzCU;j($w{yViVMvI(0NO@8j3#&Ef)6CPdx<1(A`tG55K0*tzWO3xS zTXJCEOA^|!lxdk^Z>+rw_j%_EIU&#y`&p)UZT;(x#6Co75pa4yW4mH?>id@81^_i? zO;uuU+kJ?onjGH-HbH^Pjrm>jZiNSVv8AFAK)_3MR} zZ#QJFnzH`&SLC~QM?nO6Z6NAd&`wv9sA5Sp-rIf8Yj*6*@)v-}fD^nv+kbEU5Y1M} zc`hF@du)E~^N?VkzyFr>`OA4PuuD&<_Jgoh;8{AA#2YMS6)ttxAv}m z=_;n|T3DFRVt&mQ3E8GA0Mn`Q60A8m{uP%Edg-Lr&4TAA+e*zDMtV@+BOLz&8|}|` z{?+e+-v-D3Z37PK2>(R~7C!lNHK}z}f)4*$irMR_LoT;&y2sbBtM1?T5Alk6-XCvI zJsaBeJn4h1A+@hgs`~UkM4Jf6)go4?&|+$2B#8PREQD{b90PL&8DS2@&$~1TR%u{G z-DYrNKt$$h*j>)KO3m0J-DuW$?#HjQBF>*r56nM?s5?rvuaCv)WzQnoykFlhkjnQAfv9MsP-C1_aToZwIA~-F(Mkt{{t4YUlruFizcICIZADC6z1adUE`Tbh zif}zgk2uQ)i9m$QpGX&-M%wq}01bkk>Ks##KX)&iNWHIl@HiRa6rcK@XXv+Y{25&K&){Ji2!#XC(*x$gp9dk!);$elw|P*Z xAvpe@&I#(J|GT|TsNel>rq;jvGi~)0n)p}eBayGKzNVg|B(HiW@AiYh{{ZeiP|E-S literal 30470 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�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 RXDa{z002ovPDHLkV1j<|W32!H diff --git a/fern/assets/images/architecture-layers.svg b/fern/assets/images/architecture-layers.svg index 122d3d95d..dec3601a6 100644 --- a/fern/assets/images/architecture-layers.svg +++ b/fern/assets/images/architecture-layers.svg @@ -39,21 +39,21 @@ Row-Group Admission & Buffer Management Memory-bounded execution with streaming checkpoints - • Semaphore-gated row-group admission + • Admission-gated row groups • Per-group buffer with cell-level writes • Checkpoint-to-parquet on completion - • Submission semaphore caps in-flight tasks + • Task admission caps in-flight work - + - ThrottleManager (AIMD Adaptive Concurrency) - Per-model, per-provider rate-limit adaptation + Request Admission (AIMD Adaptive Concurrency) + Provider/model/domain rate-limit adaptation • Additive increase on success streaks • Multiplicative decrease on 429s - • Independent pools per (provider, model) + • Independent request resources • Global cap across model aliases diff --git a/fern/assets/images/native-model-client-layers.png b/fern/assets/images/native-model-client-layers.png index 4600519f6c37d92569904982c21095c2ac6aa120..591f8154853444981db297035c5bcc493d1a7c8e 100644 GIT binary patch literal 54814 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%0D?-9U1Pun>#M$+%R4M)dbwzkYq7B1uFu^}X0B zP($QdC}N-*f}+?OO@kLNhGln5U@QiNz%kdkmrm+0W75x^|02li3tYwu=^U+hKtL1l z3*=<@*n`cx;y}Bx$d;WOu#W{x)m!YCUI@`9I~$uTz7N$pXfD8ZLREyzEE;g9@DOV^ zts*Zk52zEQ*_<xDgt!;$i=K5o%>eD5SB1K0VyLCP+I5C<)A%fsA(deke-?f@~sW{AF_#i z_wUnrL)*+Zrkzbpg@BF}z{mCVv0EKKKRnh)s|tm60{3=EuX1mW=_xR71ce0-Y040# z2Eg}rs<-dn^#O*Zg*aiSfLVKSU+DcqO#~2b2|XKJsJ^~l)O^@VjDDJCADm6L$o8ia zr0~JtD636eYno@(QR)yPn2Rr6s7Z^bV>KX@+vKf*&LHso$&)92;$0yggSCJv#AJm8 zw9gCEfLGWCG~UUYn$M*>19;R4dD_JG3KYB;ze0!D5|cCf1)0(_A0D%DNIP*_!)Gb8 ztww8WYj7=06ut1B#XwWe&h-)?sidiHpkvN==lmiHf;zLk-6{ivg9Q+jSe;x49su(J zH(*C-|N8KOa|wKLDo9fYD9)sA$Iwd=!(xZ!Ilv&%eal*WUvZt57VQWso^KSDG#H9? z+be}f>tj+h=J!1$d6k-4SqWNKe)s^54S5KU1U~EUJl2Iz!grIC&E8N3Cnh{$7O=QF z8U+jqOaY2g>s9an31QB`=M>qsa43JPvHIOKBDe*XL!sGos>p|5}#^*}?9r(tMl zh;NR9wkaeZzsJTAOMn+aObrBMb3Gl&kcJKM~~C znNbR44e-NNNLbKq1mbsx9LV22E%5jFcvM7$0qC0y{eq>XB^PJsEgZ52>@T6wJgUH` zWo5y#k?5E73jqy6-AYJ06!7TK~M;2rFNgw1dJi-_ze3Bd5 zT5-+B#@D&I5fIeL%X>)}>aagv^l>Z%S&14A+Rkkl0kN=Hs$wTh;i3b^wQq2c#~SpiJiB~&j$SwV^Kc?eZ#b_mIl8%(MnzqOP+fL;R1}hW z!01!$*v;2Ay|RmJ`uSFTw2JV=?yj!8>{Ije(Gs?Cxk+!Zm?aKF`>mBvo&>Y6y5!0R z#cZSCqtSdfC#MD243yIELDKj2LHl|EP6dV%J&QB4uenO5FbnTvT90DV?cRoSHfWA4W8!RtOchxd;g; zIB^ac7YE#ZZWCjpcHD_gwx`P_7%yQDjSY?)1m;4gfgSPYwCXK4Tp>q`nmt*Nkp$!K z<>ggVQ-dXjLRrL&o<;3msfv9=K!$!HsH;*Rzz;ZAjs175|MKlyCgP{kJ}(dqpzKr& zOe)vZFQp+KHbfq4efw4+N)8$nNS+`9^4BEf%HW0|n`?!}y?a0A2|#iS8glPGh8YxM+Ju3)rUvYxjdI6X@va zm!Zduh>Qf|GswhErge@d^t-NefyG}0bTb_s99S$19fmYhDG)_DPW{sU{Q2zYd)Unh zmxZu}U@Q?*6zWHe1P(yL{xRPE(_0=zCKeWm7wED(Y(N%bxNg9aBM7=WHCF(8K|HoJlmyKpPU%W2b%m{La<>{QjMD zj#A~Rfu20-F3ycA+MCy*rGXj3sS!d#Z%iw{`|>}Z*VEF|6BCLHEKGcAY01gDa9}8Z z%OEC4h$c@p31URx%BRpnko5<~J?0O#Lle$c7f~Z29x(@PDXtRL^tAKF@D?on45BC+ zM9^!@r)QO0G$n26-FK3O7`1TDgm9}*304NCEojI3lnXgYe@4!H#0Dup+PQCHtmdS$ zvU=FzlYBQ{xy)KPQ;e8)@837sDQ|ur$bFj7j_`BUdT9_vKp+j`L@J%PD1Jrg^U`48| z2Z6y7ZjVD(%s5ZbI&k8?IXqI;@-R{a1R0In1O){H$D?_8c!)g~QPE&^2t}C%=@7WlNC9L4n98rlz5xfq1wQkYdaSsG}`)VQRU)x%o()sJ8F6 zl=FQ+q6xv6UHFAyP_Z->1QC*deqP?=hYuH^+^Dim1`LI;M;61mg*(okIC0l)`ZB-}v{He{ z1kbe%ZUtV2)k9jb}EuWK^0l5TkAU7PYX~gV6kn??r@Km0j z`eeNaNx^e@OngWKe2$&1Z7K!{Zrqr}z1v$pULE~54AplZ)T3`PDm~JYj)9~}OdDas zj^JrKJ3$H-!ZD4bCeCfyc~CwrqtL^#SnSz{#$;7ldj)lM8>m!}M_H3wqY%0wxB-3$ zJ`DP>=fj5s)q^`RdMl>~7JVZF`?brLZIP?6a6Y#hF%u24Qx3yfR{6KS)jz+Ze)l=Q zcG?O=wg6%?Gc(J5ej;`n$K_S*>|W=lxhVlrRZ_1c$X+FreM@`OF&oWE3wb{CgVm9t zAxQ~|w$4snjIxwUMw|R55BHhgI`0u8Y*!&l9F>T+M=@wjhK)%hDom>z9EbT%#r)&69+N8 z_GGu%;lnRrOy|$Hf##!9kigd8JWdJ|6%$*<1dE-)147d&VB^DO6C$L4Ky7~p=4ntF z^yHYSn@=RySZ5@#S)-o?v1*ZoeDk|^ai0A9Dw?62#*jeY&k`zyg{f+eM86)G7wBfU zT1g-mmFpvar+poUYM?{>3EmHbJz$U8VifL_O60M-?GId;e7_a@Uw=4leF~w}HJ%h; z#z1+Plw;bnXV1`9#tiJj0LQj%m(9)jOc&6t?ssn{K+iuFnVI8QD?k^{CkGhklg9q= zXE02nu5?hQxta>Zf_=tVe%Xy5-dY9N3Lmz{SJbMiszaL|N*+brK-oxvBYATYQ_(<{ z#=PgMG!Z!v!uLhJbQq+dQX%_^kbf{O(#D`Y#k+@GHDlpF47&xEExS4PA}ebGUjkg& z)zt;e$-`lIPw@!|4=*=82KjO-uOsyG%F4>@u3_JhEfdGEr60{c`w0}QbT-zQEi%&p z_j5NG71^1jGT3RJ!LSTLtYzikG=sub#1{u;#(pnY9Ojh~;|AvAa`b7;ccd(6SekEx z==Ia5PyM1+awl(EYNu*)+x|q%0zij2;}4W_E32zB)>>{#5Z0YVCbZQbrl8eG!K4B? z^1*0Syu^)~;`!)foKG)UkxMQB2^Wk*3(EKTDQ zm-+EGWU$DU6AhTwow_XscoV>nnO&~T%}j`^J9Zp6@S(aIlEOwn){h_g#`aT(g@~Ed zve@d!Y9M+4qn~)HX(WN0snVQGzO#~;JXSM!0)a<4il=1IHPuVni9 z`7xU@qjAA|o?uEA6^cccP`Y8uR4mthOVd_O<>7j!?xe>8xn%Z0Fm!`!(C*6#K3cUA1LPt=Y$rnVr|J1?j@JV(Dyh#m!9sb z!wX6OJ9?D(jP5$`s-Zh&b$(hUNAj5R zV!e|2*V}FZh+`3ni6)GgGczz}qD~>K zVS-;j|E1Hil%U`!!VzTNC>_PpD?MzJ5IFsSlty{Jl$I&RC{qyJbY;t3o zwm|AvVWV=v`~=@bh!M`MNZ54be#A&Wdl6?e=Yi)sW~C7RqLA+U`BTK8FedlnBYtia zf4)YKV3M?(H*4{-;Gl~?)6+~dAc=f>GutgJSU5LYft|SH_Kt$AOXMkQv%^>QWM9a1 zn>@gTDHO0G)@bj%{q*UyN6!8+raK5hWIpoGeWLp^$`bZtLWDRpz+<(esc8oDJd9>) zfYuk4l?M?hg6GxjHE0$^zUT4;4K#eo9XXk7IB}3BZ)r5A0UeDsg0*@a%J_aA)(EqP zekCQYNFw*Fq}-Qs`7I4Twzsw6I0drhQ_E}DP8Cec4zMS-3y`-uXx!tkk18VE#5K`q zP~KV+b@k4Uocw$>@r5=_e`dRKu(P`%ucG19_4aKnnlr#4tCK(Oz&1nc;kW3BFAZb% z2$j|dNQz3H@Xwg+UNL3n*>>W@3E1Bv%_{&)kXp>GW2|AJp`Rj;>2_u6<)!)fd;~!S zaN7a}Kk8C6^GqF-;83{y4x9VXb@)9M3dE%00&pNQ866$n^9GwVsAh8C8RZkfmZ-zc zJ_=#v9fS=ut!aUp7&X{;{63g7$)iVaVxY>n&n((~2f!c2I2Bm{4O2o>kD&(qg^v$0 z`l+Jw%yXUT1!FwGgDq_Nklw?BS~o;p-bhIdswl#atzF(YQ@>Z zo7UB|imKkSD_O`<>EUW@Z4J>(u#J75%hf1K91PID`v+g+w{Q8mx$MXhz_JM?S&)sl zA{Gvmy=8A!ko_!uy(&TNl2YTGw0*h>k_m{KLg6 zSY#ynhw7;Y7?Z-790VZ8|CZ|-dV?Zdn!H3{AX^4nSXu&FmlPMHa_+3DIi;$aj%R^h zeGHkhpZT?xnYFd>85$?h7D#m3A||K;zzn6p4sgN?f-c}uA<%YW9up+yFzFsttZ2}I zTY#t})|0Y^YDd@iQkrHT;uba@lY|CPp+m$p#ZibRq*Zru9)Ojkr3DMiUz*THk_5s1 z;th8whyevn{_Fq-vXwb%`@EvjunT*f`u+;yc8~X~*RP+OO5VSFmsciEa!gATI)|y? zdrqx22naPBFkb<+QzvE)7p76+LVU9NE8ND;fW~=33e6w$(}ivdR6cI82NpA|p1G|* z`NWc&|7_fe0Ij~u8#ZhpMolmqoxOn_p=f2%K6TCch_DO-9R|>J$!^pAA0fUkUmick z$89DgvU(c?Us9yiv`>AMb58$v=6yV8noj1UQ8C=Z6FE!XNBa)0kYn`##c}eP(dXo- zxIckSs2w+-;#Q9c;qTVOL`EK{z(>P`ZUZwnHRoKC$>KBqTD$g;K`OfPE0`FbGs&G# z*OC6Tw0qj-!AI7=M;r~PjI z=r6bc)Mt~pd}TkDcW9ho2L|S&u|iFTqmxbg9{|E&NT}afxz_J@{u(B?UC<0c9B5gf zyC8&esXNE)shdm%dqn(-&G{h(g7N}F0DgRuoSeM!gSP$p-02tGa0$sB>uU~$$Y>kR zUEMam&MS`4fXBR1B!%^=U+c(C#fck*dzhFG;{XB#GSJJ?o@;KHhVPqcs9e{8bjMtP zbD(&(v@p=phC(+4Fb}>OdK^OogT_72cq@huA%B570LxibRb>cr8Vn=gY6mzbuyL}s zN8*!`h=JzBLx~^*fJB3ygmp_DvFj=5vGZcV0z6hP+qc~gwbqLTXL7>n05A9wb4- z28@P;+-q*xh~T|^8cU>7TY9CMVaR6_iaVoxtFS+BhLPBjp=u{Sm=z5Ceb`s10~=8f z!B|r@crjIhfINqR4xmP4O@ec*x6LtY6qH;z!O6OfmZTwl5Mo(>bqLceEG+mvEo^^1 zRd0o^%if;tknvro0)oJ8{O;_7l^{Z2ULWQaP|pcCzEMkfZl=~5VAGuP4BY_iU!`_0 z(gSxd+m0PKhZ?!r*up^;dh}^ops4||fXKzt^KQ@py<48>4VqBe&`)&B(miD(xvZl{{=#<%O>C9l$5pbUAp)Q8Ht7fU=j zZk{)6DvU7}d)ZOa#W->fC$;PSC9L_6rmA2*(n!o;@yN_JEF*ka_wgf;rO)%B~ zOdNKKXl`Kg86^*BsIN^;Ioa6+mj+2+qb!p;Bc?qMz#*LA-6)A{ZEZ20XO3Zh=12W|yY?!}82zkdCK@_`twgAV(1u#1}N@#DCwUEp_F&Cbe zkG=w0u!~RNgK%~pYsfpnsa)uoZP7JC)9@Y2XSYSbwb7n3eYaB=8T6on{9hkPqQ}SZ z{Elfu=>@w7tG&Bt^V!kD?GbFN#Qc}Fu(9A@tdK%v8sh+x1^cSV?^L~to#%dVvCmNgo zK2On$0+A?2h!otqlny-2Jf(|`trV~2D0?P~xVe4nz^`AyC9MZ0o9#TN*5~?eJM_|Zs>R=*?6pSP$g5ymC!Fu{M7G??g#&cy#`JUoe)MLn7izRl6vN#h2pEoAJUMJ|Rbe-!& z+CZ}h0F{##Trx_y&9t~V_gpb;b0J;fgb1KfY7w85;fqBKR|Qegb=jY>uvBg|f)d5dL3vCJL+^%nt2XjmU6 zvP;_aV-XRo;N!-9ATT`u=VALOdQ7!s05xH_=(cu$k z0@WyVkIGXf1oNOu!TA_SmQ7#3J~Kl}jfipo51~8nb)WBsuN?MWk2LSYhGQH2mnhHC z=O3_l@7KYh5r+4G7k|b4IgOM4K1IpsZ{FZDo`3;v^k<%F9@*FZf>VSTQ$l2>o|ld7 z^Q7z^CrZgH*VbEg@%li7O@wO94QU>l-x!UKX~vwga(+zM-94v|9+ge zD2@JUN3J=TZ=5{2ZIFeKC zNQi`$EKck|s7@PH5x^^$P5BdYh^J7dI8IF+fXY2zQ7L}|N56)0r+2A@u2(c#s4^fu?9fJl0 zVP?jGLovBZUTtsxwuIo%LW$xSZHvEy5n+0jX!D`r zVc*q3#01Pe5l3nufG|}HUKLO;PG~2PYcLbcr@hqK-uB2cwyA%SI4LY~w%3gSc%LkV zKPxkeC+wo5*5@d~sH>at&@KctqKU*wi;RzHBjY%f2qJSO2S+}ip;+{D5xX0Q~f~vr@NeZC`$EY)`O(MEEFnJgHTe2NSR8cqDZ04 z36<3Eb7rmeuC?Cp_HMuTkGE}YYx6YR_jO;_c^>C+?8m-Z0mVD}Cr_9#rSHQgvP1LE-*S}OT5f>nOI&0{eEa@=1E?J=je`dTv*gyN zIIVT%w}yZ{E`W+ozJ$y<%8Armak!SvnOe;!?o?JIQbcc9sNdIXWZEnw(D5lLlo+y9Mh_f;iuO}Z6|EbZ9yNm$EAvj=y5H@ zee^~c-=qAOEd38?^w508E?ow+9c?>iMv-+J2)bJRu~VUp`&Opda%DH)T^Bi{KC~a8 zuFj5bWOcADu@RsLa0JQ~>?3@42qjS$>sMVGYgsVrMR9H3zIIdH!`wjxc75EvZCmh> zA62B+crV`=8-be%MOnz>cxNs*<2?+E_ z?5Wred4&NLC(U>QaGH@}ym{PLP5?bUy_Ncb_|Kxvvc9|b({;>0`%OPqiuv%?t&{Ou zs0|pkGHN}Kp^|6#}olFdQ`wC!%LAzn7aqfLPJ~q!Xh~#hg zjvd*a>i+Iw=VD?CQ@uO})#y{L(&DBam6Dno6mfz&;_n7M4Lk$*$}hk!B(vf-3I$kH zj~6aR8}}@&eY-4EO{GjrlS!qGx1zOmtY1vD9b5J{2m(aIL= z1mB48@TY&PAbU!(5+4kNh91rss$9TF*_bFN7VJ@6R8JM8(>@@RK8R~;$_x$UB+p4@ z(7EtA=${N7G)NSDYyyrSA(&?im{-4@UrBjQHSmLDh7z^@=V!fW&`y6Gb_+)-l=m4Y zK2bpZC^*!Yb2&s;4}myvkuY8M_$4MlW1AXQnJAu|et5~EMVC1Fpp)QgNPiDq(Gp_j zx=zxHGV>rO&?Bv2g^(5fA~H~lb8UF9dO$g_EFTwUSSjic@N`-Y@87=dqNH?;yN4w* zWh-DwbZYp#c2LsGsT~B{X~nB?c6N4966vksPD8uDILYnAYBR$V^&>`)UgVW=H97eQ zXRZKo!Gy4S6l(t~7o2&9C@MHu;r2k*A>9FPu(!7#IeIjEY(#31NuMs!P0!m&jFl=9 zPQ_k+RaD*dW|6dU@A5a_N<&`{`X2guYEfZf>xtn(Id&^=K3NkU8O|9g9JM$*0P3LwxVYRV+g~&^gJbK>It;Y-BhlyYv!!)oCaErLnO#PPY&|l{JC?3 zUsTDqY{}lg`{KozE~`3gQK)%&de+l}di+UVPOdBBMUG^WK5Ip5?JfUwO&q9Ix#NJBer^42Kfs-Q`}R#3Ple@C*qt?a^&CSb$Ae#ZVw4yA4BSE}@2CXxde|PlB697% z-8=^ku-GIzm1@Q8EA$2#EbzRw6KA@(l(WS!-H}h}V?1az7eRLx3PJzgy~G&vw0hWXlp^k+_>>3NGJJrGI#BmBIV_wJPWzVX7-6%@o{R} zLuT7m#gd1<2zTY%>9&y2LJu7hR&j=-#zsD%#-MzjMl!%n>p5bDT22ECSonq-RuEtK zcXqW<4=&3+F4zO;)*gRq+q(6BJ|+ZFq5@kYodkT)i_FXl8Yw_za1hIMHc}T+pb4iq ze0E4@xJG+!cJ;$aIo4*^h~0_ zpqS$oNY&^~_<{LVrpjG{3^jD;KyK-w_hV zq{YW9G;l6TA)n%JMvWd#j`0CAx3pDnr=Lq|S=|lFp(Jt+NpqZaoch?4-HiwC*tYG< z&!3pYoKTbNF>19p+Z2AmV1F}0;!zAJk19k$K~dZU?4sFe2fJG{8tWOB^aIF_&@Ji0 zsz4ARD%>*ONNyJ2s@4p=rT&6;4fu}JRqdYPss$(MJ)-78W4pu3K5qV^CW&-sQP1rZ( z<@rE)q#_>BAyRS;xTSOvu*hM>@vfW^vEH9zL%VnDh6eFD^-YR>EKZ<04#_(BCugR_ z%(0jq+vzM z6&NJsnWYFqGkAc1Lj4OcZz^&Il7hXyTAc4iq%USa+i=R-=!cXOpQbE#+UYJx| z#9XRw%LkZ|{A&74q@+$QTT8|K_-qDfry$_MmBh=6YZN?kihjI{gz}1)qPg)5t6P3b zh6PUbk^+b)dDkVP;UyUR1&f)70-ZvC#Y^Lrw(65ttX_>*WBQu+;c9YhF+o<0 zkH3Os$$JSdg?s>QQ){S6|Mn^|?mA?Fk30-rJ19Gaz@Iiy7UV336C)kRe0wNh|Jkc_Lqt%;Ir~KQL4)`!f4XaH=mlbP zw*tNZDN=tFV}^#$u^-GyiLnz~JB_{k$4v9{wO@jt$Ds&od(7Go&-m1D?;nf^D$uyZ z7Kf$1XxTDH0?*Zf=YpMAsujq}$ZR^5aOqOSDIafd?46eJ7u;q(3E+cWIX{U@*f~toHLF^n&BAoPa zT9>zXADV{^8*_&TJfPj?DXC_vZTsz79gHOqz4_jIovK4Q_qBUCF8RxRSLCr{xo7N$ z`1|{RjoHZ&s!OKI$qQKt0N4usXr&sg)I1+b#9R80PH}cM)8(b!y-2_$nSpuP35!h> zv4S{;_#R+?<=^KpCZ`Vc;8EfWO72Bo;CN-ymG8s%=B^w#=jyYlsU5L&GSofyMLd)q zr1Y#R)4ojrsO-jL0A1l4Gy9wv&I$HI94^EHsC7tA1v!8IcJ?8q zUux7i8WOmYp~)gg7#OS5Yp$l!02i8Q1_KA4BVf-jwX~w|!okZjiJ5aw%N22X^5WbZ z#l=1ttoAnzJ&ibnEdiDkUG_X*HA0*H;*TU4KSV*BByb0{_?+pWZU0o)K{h&UYA%a0 zXxlbH$GNnTy_QtQG2L`n`_IZ(=AIygxxeLpYT1r#&_u4Ah81_iQtl;n7mYxbQL7iLFHq$NVRiP{zB*x*&cn%*`Nch*flCHw9w+LP z{CvnSfi-Jt$a<+3*AST56&oqFoXyPM6Uu}-U=~^-Eq50`8LDG=0VHDtDL;tJ0)LIO zd2wxn4=hfr8J(O2=q+n}wMor#cAfe5%eEiNqnvIyRqmRcQvSMwwWgVB74jBu9wQ6# zR}5A2hnFw0-5WP%Oq!0_z4EO6pJ9pGaSy1hiw2zzx%d9$d=ocU`=k+(279e*R=w|5 z@wC)DrJDLKDBmshF^>DBZbYS!l&R`cKz6Bz} z5-JgnK2A8elk}iwx_xtG)(Z(HSgaF?9+Y-aPt~qnM|hS`S$Up4#0!x+91IP$;-uub zVZCuvt+_d3MWAZ8y<4#;+}7i9jYAQqKKr}1!Yj(T3xXd}Q-`G65_7A}hyGi`*! zjz0`p=Wp(~&*>AF?AD$S89GyMN?3x72{uS%HsR2I($kx0uZsE@6||92Itg)m)Dfcx z9N6gzoP`LegQ_a3t#!O3mmdL{9eqD1SVVjC`&Zqyj?8Vh1IToWSH(xi^yct0kXI2+ zlNWB6t~faMPA@Y)$0(Ewe;n>CQ?6a}!={u5<9GVL<|RT)!HEL@_#~%H5E9SqW)9El`+(Zr-s#ulOaT zaDU;V(#flXqyOWDS1B@%M3#=}NdD77K_Q6ejDPoytgO?B4vc=+?A0nAuwN+WATkjW z32_nJSuvTQn~lC(UO#Q^IL-{b^n~e2ZthALFJ;gFB9sY+1aC#uM1Xyi$pZ$Qk)nKB zw_@eoJ@msOoc%PfiDHw>RFSqY6!mH+eW)-LCMY!6DN(=cG-4gEB+#LzY6Vzd25_ZL z_A=+1ul z<9z0Pop7r@=;n>E`g4E z_10nblB09}JhmK{>!IsnZuwpFRlky_wl2C=(OuhIl;2a=zJIK4ostT{nL!)_E2GD2 zt!qg*TfIs?@R4pRVv+T+~exyl7iSY>`XjvIjKP+ARw{;xMlrJ1&M!>@K z_iv(Q10W_qjmjg5myPRTyP`FtOafHGMTsszg0-MJ!pLH$j@^sM*s3ECs~ zbwrs=F4$34ueU$8zdg-Rn35qsfBwWup$SqPjS;pSgKQCfBNv@!v_z}all?#v(qzf%;OX!b{Np-dHgoi5?PTXph%F;B46$#PaxTX z-z^HVIh>UgVL`=Q;WffFn{NPOgp*8$LEPqa?WH}pgJSjvSgqSsEtV}OMvlh}S9=@s z3bJZpu^p{^M4;JYT%CMdK4IZelMmwNL{~<@<7C-_-d1xoAgpmKZN#p;W!rA2Er(lo zo3&kQVo(cHnlZw7xw6By-_KxymVaU~w4468pr8P1W48^#MBq2t?Iacs0`cx-h~Fg~ z(!aY6jV00LQ2HaoB0M`^ToPvRa26DLq?_bxiAhPMH+9h7A(4?M&v9Jm4if@C^OhJ+ z;EUX$=(j!NEU_X_(Wik^96B$XsM$mNR0J{Xc3JEK{lb{wHJ5vIOfZ-p$WwgKDI2i2sr1!c<~B z#?2)`T2~U8wX*P=^P+nfqt8dSbaZmUIo#`GQUCAbWxn;u106(r(`=brcn4G)>@fjzqnP>si;{Q9yw{IL|RHBfAesY&MCfm^uf`d zvTBNwPP<1pEl4;ZZLzpn7alN*OOG@@J-8|TQKS2V7shZPmi#UMtx4hA&#p_+z<;&9 zTJT)j!U}Ev%$bfu+8D<-=nSF7za#zS%eiho_jjI`PZ}u6pT5?oadX`#`%k{@&)d(5 zTq70yc1+WahB1@4ANhd|1p|Vg26kLtu6N3-Hpph&UmEw)4;m?z-V8W!LHl{>0)d-f zw8&~2DjhJtX`1!bhwY4K)o%8ial)h$W?ae$%{{B(ElVfg>~No-BbHiS3cEx$2H2oEFEAIEp0KSQ&_M2SGIkg7r8H9+p=_l z*g$Knk{ZuSTR6si^V&1&=xB>W&y+7d91Q2k_(fCZ{0TT=);G>v<=ei+#0aN7zk7;~ zch$Lfjor66x~v`V&=`^~uV(ahdy8O?ea*cK$$yVg1T_Dz!HWNHzw?NevF5u`yooQs z^^)Z3)Ss>IC#LY<4L3EK@8ds4LFP|S{!}%Dj}tI|qi}`b>(8*yswtU1znYCEMl@ST z{PTJP4wSVs;?p;KNKEN9h?}=VWgLHYT5nVx|F10mt=3}#Mray-BKe7Y`mT!kDPxy%IUr#AX2k|S*7Qo=E{W??0<~zl*o4_Jg_KD_;&t(*tAL{LvI)plopA%l;kUj0Oip9Z~pOLbCL4ftzyTH z5m*Ob|7PYOGM)eY&L4Y+tf8RJOvO~bM7!K9Oe<{I3^40X@|!Oc+1)_+>Pk4Q|7CXI zT)A`q2TLcy62)6+2LMT|p5sEF0TMvW$eQ)$;n7kElD*q=k}M?sFZ)635)%N=wTC!Z z5ZfsPA`;t7!|CL~x8&aBmSCn74c<^D_z#*n988?17RJQ z0ZA37iB~hhgsZT69;W?I`vm1gg^s;?3Ft=HlJ)ODbvw=xK!wP1fHM8*uD}&>MRDHA zeckV$+?|qneYhn}BKv+8lk=30E^2O9)0x=Uh>0&BOVgc8nuJtg2q`1AiNa=wIZez7 z3-%K6+E^;}e~I@`_%d+xSXUv&8@kj6m0$Qs{2S8|od-HC6POrja>UI0Oo@TN0^}!e0j8(aR+K6QUX_*s=BI8PwlvXlJ8|6Bd?=ehqi6BW@-w{G?2 zcRN;wa?cJY4@G^MhhI0DIyqqejQ-_TyWV5aF&f+j8i1)LJ!fv2xap*|9yl+))?(hE zw+M6rju-r!{E*%Xb2peD3u^|(obUc;N@}HU*(7p4YU{@vUjI|H+m!P^h;~^MxvO`- z#z`Re+Yd5yF*XKGsf*CN=dGn=rJ@LRPsW-H899xwXsWrR)fNG&1%=4hnV2eE`)Nw-1zybT1b3@)`Wp4ra-K9c?9lO3;V3a?gjUmHu;{WW zYdkzY2LwncXp=tI|J$V1q0q9K<6AYv%qOhhfB_Hp4eG0|KFQY}be>y+)RA#h4QvrH z+V2}h6czJESS^8SNMk-ws*e(t!GEe;Nm-X`(tdvd;r+4`_rI54tx&nM@>y*if*}50 z2fHNN9bNYgUla49Ml?X1uGVO-fv@y5H+MfO)WpP95H;Yj5f1b|(NLj2DR}bae!~n| za>w0-W=Z)jgnVA_pWa7Ee(RRY6fL)iXHDig=tX9KnW5U`|Mo$T7>`oKjjKzQ6%~2Y z7L{`8O^rU>a)Gv=Jxc?q@YwiPD{alq?*Uz9e&jg@eU+n0W8gN}=f^VSiGU;6ZlTXH zd}05)dg^C-0d6P>*tR$>!W4*dRT!L7I&gr0)=}TW^s8UCuQ|dF0$G@5ZjSQ`2r-7I z_JhVSEA53wYpB-k#Np%l7a%V%V!0+;KO`AEGwf69tqMtbZ;4yy0F3K-WREu#{8OjM zAc(A=qPJQU{zf|M=m@p*`_$xM_=H#euUV?qqeg>~6oaDOPw>#`<$W|Xv|oAjjF`le zCl~UBD)hjhqa%Rg*V(V6>TDkOmn93(Wt|c+2Zq9`Rp01vfLc;Dg@$%w)L4?ovPY4B zJ)7xIyA38o)I|wCGST^$BC;YRQ=0X9f==~0jgd)+5Ed_8nvPM;9P8*ybSCfyo_6H; zzmHSx*uHh^_@tzJi_hmB_OII(;P`X@=ucr}@<0i){m>oG26 zf>84TIq_VV2zRd+j~-dHkz$21->&lg`&0M(9{u7EFarFzaIAu{+3cH#zF~KBO)m)|a)~Hj< zWps7@)TJalx~p@B2P@>IrR(ZepO1-&VS>%4?v$-sYrKGnbzUrg&`(C~+?R-9s%qPJ z?6BOSly#!L<=K9;3rsat#%xzRt1~%^!_&41N{`>98G``cvZ!`hV{fafQfQj={xvrK zLFK@0eC9#py>Z_5j~;Dml;ada2lMjf5$lX_Ww1;sUgqYuKi7nX0U7UBo%DQWY)+?% zK3FR!JG+WwzHBW`a5x#w^Ejgv1Ax`MwTt-~$I1NpQ>JVKe`?Tm^LRi{(=@R)OY-W~ ztD6qR0>9IU&yhh+9@<>&4WW){_UxKr^{R=9A0aECTWS2 zdTKv}nAH{UWKBi@I;MEtcx?JdV56cd!|)*PP}D~NBhC9upV74}I#ey&gxNxHNJyVF zMs@xP>0EabKjjwR}niaD$nIUGym!soz5JC{qL2h|boWDliU({aw)T#tvJUnVm zR0Jm*nMyeEjK3kC!Q64LoA1M^n*DWOgX0+nz%=*}(-oWP>rJuD*IPZr@v5d17zOBv z>ov3EF){lO9cpmUif*}P?b-*vos6NQz%}C78XzXR23$5jeDGi~ERkEknrO1tqV5W< zhT-_&;P8it8-3lDEi(k4qZeiEyRJ`|WkuMoN0@-nyarm`_WmvBnAx@ANVLZmont%W^~@4?;KSc5wItl}nV>gozDT3D04-W5nhfI!Ta0fuJy@8LF_*SQ zWluu$$m*%BOa-q22NC68Tv`OPY8MoRhvI8yKBd3!0q)%-t2%M-Rx}UYXj<|p@;c2z z(XqyThl~U4NT4iN%+NJ_g@uD6VlEw=vI}2$UAiZtGaP%SX8|l;w=q|FphU4nb>ZZx zq;RiULBwzQwrw|jd$W_2dFRe)JScL12L)-*I%$q}6T%O? z!6WWU;6z})DJ&eA6(TXawm~>y(Ysu_wD=ESBi3@pb|$hgw~ySUys~l~c?L>tk})bvf?vE*o~>b`$bniNtfRHB+|^{gU@ zwIHZ&n$+M1AZK6X5MO= z^zVp;V&F3gU8(Q4ogjUy8(1#1)-UrdYO&xBY}dtPW@Tj|?qPYl?@&h2ME0jEkNkvX z_>`O;IDfL@CJqKNP(j$gZ~2|M(Qq%xr}A=dbrT7i7#0kXd&P=(XqY*{qlYN3^Y(7j zeb~LbcVp0$5^zh=e;SStKc%^2=gt>c*^;9`6+`d2fNm?`r%0$wDgARk2 z7;GLF&rYR2gW7b4e*t#3my^qK|0OEak`k@770B* z+$1Ul;Y|lSh1|NRxY#*mwdRY95-Y=H;ZJa`v|U{BU>?t_5LBL>-q(HW)~#eg-{EsB zbk@mo@8}LIf=0-H&FI7ioFMGYKrgFW!8nj9IT_;C0)@gx!*9?>#^u<~bEDA+%a zA9V2THjnG=in&iQ*8}3reb?}RjV6OZ)=@)HESO=%K?R)|%6&vw@0hI`qNSnnjt0K< zR|AOKO^v^qjgE_w#x?UPQ!a-rfwV~r{N6hq^6gEAC-WC`G{U7x-S8{{6+z3f(o* zwqkl>Iu3om-SjhkO-iEM47XfDN(W(>B4;lQ9-4fI)#L<~N4JJL|GZuNIK@pAp$rSI z!AfHJj@5_wNF2joAQ1!mAJU%}2=@x9hVZBR)ML>6TQr3Ih&+582sU)*Mh_aalCzgd z+@_ao_IKi|hAsr1TKD4QY4GzoFVKYw4-vRG@CeE)DnuDUzcV8v1NC9uAO>(_$u4G@ z{Hm=rXYL^gdU5e+4)^E3c&U8{4)BD8WgcQY4tf$NXr_VrwpJAe*ibP@fte11Ir{OV z;B-?OFW8fo(uVM9!tKK+4LCiaF@L+qygoGa=jHUk>WDT4z zPo6vxcC^+)EzLe`sNWYE$%Zge<+f?!^2PIFb2ydw1>L z{XD%o_>S<5;H`0-d97J9&D0cFU`ldPIw?b-8WJY+Y|)%Sokec3y7b7|ydhUys5y8N zv`g(!8halisala3!*A*dup8t-N(EGKwh5 z8o{dVNT?-e5vd!-;rYlVk?Z0pKQe9w3-YmgBZLkdT&d^%S-eC%F(Tp9A;TH;Wh(S^ zb#*i6l{DRcIdmv=gjXLwjzRE-?%aw;4-1g2I+hM<)hU&3-3|l?e_>ji*2K1>)_%Cm zd~3HTWA#OQyvj2nwdl}_R1`$VKXXFskKIZ?N+EHWA8qaBN0&@9|p8>n{hYuZk|D8_tUsp%O zA7N2FV|NbdX_`+C$&C{vD|iXSLe^1I-lGmzX6QIojv(K*G@WrUWaCZ0_1`(0WNFDr zcEl2Fvz-|jY^u14tv*GQV{I&hq5%;{L&wT> zKK7jthZCl~7nPKj!uM(f7>4!5rt0V+t3Bq!n2u2znqq2tV6f|sKSraJUH(ni zD7(_qeltpR&qgh7o35tjRNwHZ)wxE|H9D|cnPdYKVIhG4AvOmIHnl$q>UdNgD^sdY z0#-O3C|sa!OgwZ)a92?C{9`tx+pJrMU;@oPV(J@n>=^CiP$AyQsTLEYVNP;ZoMkM5 znjEYBDk1}Db5L7Kj!#rj4w`=O4plZ9=&S3$#|8zN6{T@(E(I>pIwhPeG4p_p#Dqqr z>KfLw_89rGdmnd_VX(|K@QM<4WoVUvy6-JLo_#l)*kf8NBN8kMiT|8vIr4M}%16j( zJZ~|jS?A8^)0Qb(K#1Pt8c-}L&$K^gyL25F?it5Nb=eLu7H}i;_U(ndIf0tH3Z1g@ z~Z#Kjabf0=qP|Is5<=zrB1{?G}UUVu!HV7kE7 zH5xAcym>SKz=ELTvlKT03dQ=J%0-81`HA=T1!R+e%x%g(N@tAL0=k zlY)u+jQktXOg@DOcFEo8SgqyW$M^QbK7^Pf@(j{JQ-xk{5_!_V0AenDtYJ5`rYrv% z@t6bOL2ZeQL}Q9b#3U2%@-)#!h$Tl|;D{op0 z?|II7m`k&0R9 z36&uW^Lf^NjEYK2OYh$&rT##%NkvJ00%ZN0QpKug8SC!ud&5N7w_C938;MSB`?v~E}AUweWWD&ls@s3DN~5P zNf~$-+s_q0i4p&uz1{tGfLqz6))Ebc_OddP&?c$B`t zaO=%`JR09QV1i`s65B@SkunmBxZvK*hLdan+uN5}>z~vlWqhP7Q!*|5{x)d0ubW>O z-M@GIokqHlEv$c$QlV;^;W)dohKp&w=tmBnCF+Z>zba|@qVdCDciNh<`tOIOALyJqr-QtUjCose70o{xqoy!dWqG4~?dlNe z+Y^8FlDO;=AJQmG+Ro*m^O(WXZ#Mrhk_3qF9i1Z6HO*=H^Ibnr9=Z@bq#O58iPs4@ z!aG{?yD6>rNf+_W*5aGTf)#@29c&7Fr*1KCaa{|Eskqw#^JG7G7OYgrDM=k@r}3iw zF4tbYB$ApSUR|<&(!tVgTX!+IK(a(U5M$eCIL{_ujkn71KXKn9=AAlkx=CF8uEm|RJHLCqdrq9h&qj$SeowhY?R8a! zo+{uTO5!*6wdFTVR(IrIO5z?ro_Mg=n{Dp=WbZ`ridu_DTDUiG%#>dGnGSf3TPSQ1SlFe{bC5K<9wMW8%j;;#1s{`QYjNqh!rScjr60U045< z*e#iq@#uP6i7~HrFG1^k>FmMF{fynshiJ~-R@+iyVWKCI=%;I??y`0%YLL`)?^u(! zx?n+Q3rXl^E^nW!tW#Y5pcb`Kj|RP2Y*sw%>aLmXB#~kz&kbL*@_X0<{-{ll%}Lg~ zPESNNUn7>$KG*vW(F@HF_6o4~>S&Q@(t*CwWN~pJdZ}TXwT4PoZMWT|BYD)9S5XV9 zH(2f`d2>WbZI@KQCq7}o-9dYDuSjL&he%HtCV3>*ntp4;)9nL%gWt(W7Q_!K8qh+r z`sNdT$wJfg76+sy29xz9#y^ddx%4GDJdVQKri2s>c8?SI!VH`+vx+PH$~)B zQ_~bQU?erP`p7`5pE`K7RUL7G-cq2W6R!+gpOJ}Y$Z8F~i2-67odVTRlB@s_EyH{- zpYnd&V*m`=u}@uoMZ23$E;^E(@Z-ATuam#7w_3e>$9lbRa*MJFVCF(0He}S~O=?5s zOeCQ^26LyiYk#2i=%S)x@922O&}jJZ;SeksQc8MBVVO)bwS4~Mq)EM8|M`XuChg#ns3|$t&ypZ2DLcv9hrm#@7dbx*|M>=-t z60v8`tFp4=A5R{E#gEskpu655OyWvziQmR};S*2@S4EVwvft)SJ(c&N-B=w>t?nvTZMMt@cUkCK1okL$!aRhkEBz1IWQeJ;Iqeb z!6Aro@Qk$=fD}A=+9jE?q&;MmS}$}x>Jd+qef6163e?Cg#IPYyZPVt>us-L+{p!Z> z#M6#VOYuhHNuUg~0LuV!U={%wUmY#ZveZAAET?yU*h*7YAY9NPwmoK{tS2YKoaGL} zZ6H@fS8v`7tBtmN9|{$^7&vF3=|DnT%*%S#Wp)&+}QvX1;KN>!hZ$8e{D`d%9Y0J<*2q@O4 z5Bav}0MeB6ugRT^0=n!T4oxyGTWWbkp*Ny@>C;CTr*T7LVTlS9aqY)Z%+w9*{s864 zScuLmA&flX4hb0$%mwOg5E^vYL;l$IC zE}-uLXh*USIK^rcxGkx>koBFK(aS9!pWH34Z!B1*d)O+T@yQ=cf7y&tJ}PfQGSs$yT@Nq43

    ^UePj+k8kXkQe#PTkY^mGZH$)!)!3|aMy|jT*OI{WxMY;+5h*u8kf>nl zxrb3BxnG5p8IT>In%{NmaDM6bj%cQy)1R|q!glC<3{YRaT|`xu8T5qx&(3vTb%6DP zbQ1yL>!s(@Y&`3POo?9Pg$ovK78A-+^ON8`g+1dW+gaWbK3Se)lKS<}#6 zrz{keg3uWJ5Ryi(h;2@iCM&}bIOqw*% z?t<~UJE3f1JvBAs9Z&wXq*YW@@>a7dp6D<%_WPyu-_zFHFIgUga|b360`+GH@7Mtu zCgNNN)Zy@Zwm%j@4lw;zB@Y>fp$1q8H;^mtya*P?a<+Z+r!C`-Aw>}z@A&cKv<^gU zsXR;J+tA<}Rv}s-Eu)@!y~xgv1)a!y8WlJ1yqGQHR=;z2$)gpzl^d_&=}rjz>dM98 ze#!BV1%vj6rJKhM0xm*u9FekFI9A7T%4b8sIaEh;f-{OtC) zORBcpf^S!UJ>xLbI_;&uwq3?R3jxmd$DHl;{5=>s6wzV|c5oqR6+1j|xYKHXUoAc{ z5pTwr%ch*)=t$Jlo}lnRA(YG!0F&Sw%W0rZP~l&mNBhE(qcho7WpES%3DL8Ri(3j% z1XXVc@R;Sd$teyO=9-93w$0h94<8zGC-+KgYW$Vw04i#eelEGcX~e9Uv+~+Rn3@h^ zM_^EZ3j(~Sa-%*rY>e^D%57*;!N z(v@5v9Mvz3ueqF(g8BJ;W)uNNmJR;bp2;2)>|FR__7zLJsvAJP7V9hnswciC19PgV zibp`qLyVH8!v^!^RwY3$Y<5^uauw+7DYT~l`kUp!^gz)a-*=PV*(HOdPv%KzP8vs9&kmw07OhF%VgGWU3>LyzcPUk1$7 z=#*_cPUt5+Rl?RE%R-lRW+H|gtd5Wc1!2+oqleKIw|evJS!mCBnA56a(v;Rv6>S+| z$e|-vZjbe|_g70>?tUD?sf)Ej-Ou!RZ7-5y|$WV>ba=ZXG0g1X4@7?wGG<;=i`^p{dK;LPW0G56WBcK=IVqQv^23l zXlWuRt=8(foMfLy#pJ_IOu(7ubqDi9H{TIq%1@jv!q$7vc5twzk>;}CyiW95jVD(N zIjv0E{=%zkhiyq!%wWed0$5HruTh4E4Wy+A?SM&#@L4q<(8fHOWE^wzgLeB`=Y+=C zlk=Lghxw0uu*ZApd#bPj$xWQ1*NC%p32=$XC@8S4Qi#0M$@uQu9@`%F>^K0!-PkvY z*)xx?9vL<}=0aXOD?6)vk9eIsPpvGEuiqZut>x_mjYX|Y)7F{DQtha&cp|Molg0o> z5~1g;TefNi|KKEnODhQD;=0nN#!EHK>$2_^KeZ5(hHur?p>d{EAbAzj;(wk*6`0>U zk<=Ng#Fn~+=X+*MwWrTdA(C%9i9KFfR@UeHdldMM@NulpDS(>`L*n)1VKY`9_xoK> z3fu7%L=BA>tF)Odzc=<268M&Bd2x3~GDZ)Gv`m$@8k2ISq=o`~+sGRiyKJJZaxTX4 zEp7+N22YJ+oTm4y&}e>uR(5U$6)(q+t?8+}(^4locSdMs*9Ak{{O#%naf#kk)U+$9 zsc}v6BDQ6$X_GO5;xYYaiBDb*N90b9?SB0@^7|VZ8R_W>;WH^(Q|;^BVW|eVVw}sb zxA613R$cpce*c8>HSJ?sT_+8UzMfa}o+OPdsKY4&`u(WEQb}xYC8R_{9Xf zH1yIpfN}fu?F(;GL0+B_Ti0lLa39PR1YLz*NZD%2lc+i(sI^L*KQ&5TQgz6d$X6p% z=q<*?X%C-oogLsg%cOYF56(fMuGfAzvuD3_(zPnvfrb#UFpbyw zUOM?7VV@j2x)L#gW_s9>Bh1iwNyo3}NY4pXQzwhn45smTC>)N8$tT{Hm(w`8j`lDo zCyt9DuOM)wdalVXE>0ygbzQ!ksKyT%;bspsKx)MF;;2ivP7RN1^P{J#s;Y`g9XEsx z4^$UQ9O)GH=^Y6};)tmy~v9%I}dHQ>q9{jtdvQ@GT1Eh@R`Y;+pHNddamsd3R)p`=k4J z@7mK}@ir0GJ6Lywb+(Cd(RMaAgM^%&UC(_RS{lbP z>83@|8l&3a7A+=D?5G)@a>s6(^a6XN*4i%|;Wd5%U@1xUI!}E;`blC-=~Y6bmJlm4 zQ#a*tijtr^I|1Dj$O{KySjy!iBp!(2+Xi4>N^ zi~}4&=)_Ixbm>+$?$q7Bdu`~B9e=irKI(JPJg|vRPCkNaoZ~}geBKvTDwwGowzR)y zdp+^{>!W^Y1}c3Yo<2g+*gWGp`&oEFj=;I`Kh$1!D8+d9avkx@{0*rBcW$MP5~JB z7j=jFj3bU!J!x4W6>wvmr&EqJFGD6t#1UP^NEK}pG24UNTI z77b}ivFT=J9UZ(#o&*__svG$R=ufm?U$PE-%@)(+VKryAJ4(VvnydmF)N~^A=hpJN zFeHUE1ZDw|lh5bGnu9czhL!}%)68{?S6$h9)pAw5S^jzFbikt>k4c2csC_GbaL_{5 z84X*7G8K=+dWvem5mG{0-9MmJegCfe{&*n+3+rC*Hsa+CN&Lx|1WaNXy@S-0sD^Wo z)6gr*V^}uiic6shqA|c-SXiMk2t1E=E#|)@XNU2hT&AqiX$RwqVoEU1{)NelJHJm+ z&gVoaEK=evJ{4tU38bVP&HP0fl{W^SL=+q)tsjrIoq4T;^`}`e${WMizGy$TJmb;K z+zC5euPhKZeF+RHwu+dKMV$sKjUa`Y+>*Q~VNpdIYz+arkBroXxi)!nc>(uiWom;u z4q4QAv@zq&d#WMS9Ezt(*S|m8)bQ5mc1hpUWvbV=bsl(Vz;yE?hE5f_?c2A%ZfQ4X z*(Gn8NrfTJ_;U9@sPF#(_WmbO4E$>kn=>GjbIt}=%=n+uRV!${WyndCw+oP(uRj&VJOK7#@lK7PE4+N4aB zm^08)dw970MPcTB&449jd8rA+hR1~g1_rI^Wit+5ZXz5#U8&Ns?f`3HHYf%uIiOV` z;yA!$cIQv%!hvqjI2c&Y7_%MTvu9@Yi;&H&0@Tg>HSQbwJ+~4a%aJBq-WF#b7SRh< zFo=_xS%*84uA&jN{s*C-HubxN%@kUed*yhhL?b1g%}VJDaRxbm-h&a#tY`u$X@}*k zS?zm_GQhu;B9-BMa<|vM%#bosWb^_s;m$O@0NIeK`-X0Q2Vwls(W6I!>%g4wgNlld zR`Kg4W!wY2zUE$05lNS!re=(990rHfuRV}%kAPtCO&zuUoU_1j-B&2(uSt`f^mPwJXrj2KU5_F{5u>iaeY&k&B*{5ZTH9Bxa5-@8 z%^!3mp`zP0MkM|idT?Pvag$J1oy1 zKY9`s;SpHb=xAubEegWeg{(jr+o1^vb5|={i+@8p6L2wLTT_|miXksK;r)jXZ40dk z?WhJgN`y-qW8X{^fl}f=-;`v{9$EHK+yC`^Zxs*;fG*A?AyYy77}l#+yUS%x zL4o4Lz**r>oA5V|r``lh;eJL{?Rkd0;WPLU477^VKdLRFwB18|VgSy)Ij9*s2@=3xg^`Iu8C#*F}h(#dj zd8u`Eb&Nyiu}w!tt)T(cV>+xK7$Y-`en%y&WPt#WyuiYft_-al0|Q~%W@E1op?<)C zw;S7!#hVBw>T)oM>Bya4BnBwG-mRYg750%ZreneJtjHkY~uUN@tgA&C2Oa>3#2;F;Xo-Vw(GI8SNtr>I5op=rW2Y<+35Wo6gHc#fiFf(y>l zGH{fYv=Nc*cOu@M^77c(?I(4aH}6<-98N+A=6XVdJh1oR!R}qU6kuR`T^}46dy18a zm3aFpLo%1XSTZ|jRBY{eMjkC$600WXarNsYdj+x*fk)6vV3yhe;d06n6DFE{`pkz; zCWINVAQ^O5>po?QIB-cV7)ss&c`GR`@|k?b|FI@G6fH|?*$#9@e8Ho@pK+`wx70$| z7rl3)o!vej5`>)02m*%gz=0)~JdR%5Eu*${c4n_>ey_2ABb?s$Z~S(Yt#}(`V9S=2 zl$1s?A4`S0FoiSBw?2LP9RmztFvEr3hAj|x08|_YE{(QP$iS+o|4ELv`y`MLvuopO z%<^(d!ef1N!7@iM#0VN0^H4i{zHuS>WPRI=earr?uaxN60I3W3mK=`^0CM@%I5C=> zad@4&boq%j5t+F{;0g$q;FfKRZ;KWizZm*fqjZ2U?gjx3bId_`3-G`K?lICcYDCd0 z7ndl+H?-emZt7&Xn((mCAF9aIh+qZ@B?yr;gmR=rrOia;9OWVNWX*LR4PSb>R{p?kx?+V*A zB^43Eq=wD=&!5RwvnQVV5@G5d zMW>9df5KN<^x-9KT)858ZKCkyl}Xf+W?$m{XgHut?=jeAo0=R6AuMQ*XBUpWYPnTV z`jB5?rhltb2D=yUZ5kRax_57J`|ggW1LRvdSy|#UJbR!Q=6y7_S~|~KPk=<@#*c?C z+(+&PTQV~#Fe1YC?ld~V)^)C+aiPvn<7{VKU21!vug!r=*P;?)ScV)k76(7e8@F%1 zGu#arfD}Z;5Y(|O>_pN`WDh6EoXh5)cQmf%_{RK=J^Y+7$+{2&4!i#dR6`-i>D%!8 zvwxT3raoZC+=HnP-#!-0?|JUs>}Paz4bDxf-lr`F8C@WT&0V z2e>%90Mhh_s8KFi!K@3wa{q?cy}F&#ZtFUrT^JN&w`oT#-f;~T70OW1n!8QwA+>HS zk)3@wlG02&JMZt&qWMvoS3yd1mK0cBLFnzt!a0>J z%`Lvt(9~?y@S)>YbM2B=($47uRF{{xOdKGYJAop)Yw*^scesngmlxHLQirGRU4jqf z%$a*kJ_mQHtF4_tJ9NT?zk7@(*gQpiT>Lf8qdpz1wYY70bSgHi{w9iDJ1L&7tv&I?<2jx^AllBpUo!>w zpLt+%f!VWNbyonQ@S(7#Z3Kc~J9fj>7;Ifwx|YbPl^lHe>eWneI6< z&a%FXW&NkIHK^sWN`l2lD;hQer|T(>+@V9)K(|(d-h6$ zcL4@t><=>%Ils%48#xjN`F=<70s%x{UzmoHu!@ngM(6?2n!oq*uvR=QvFqwCBbmE` zXV()Jto9uTn|U4{rL=gz)~|}O-7++u$8a_rFWW~@stLD(#@u$+`DHm~T0^kr%B(u^ zCa3Gyr5sVhO%&IMCwh7@SARVi{h9RQW_Gsex`iAQ;pzRZC6OPrX#-ewtkx455XrYW zrWGSsoy?w1W4GI18`y8UeafTTlc8rOZh zKO6vG6w^TJBznM1g1a8^I&>OBc}`jgb(mai^H@%4v@6nqOIMw{8INpE;ULh9Lc-fy*k;i9B9-(ffDk#hf=IYs z&HySe@%fwv3P7fna`|%7^5V5*`el*pxd%!@-(JYgLi4}m=^4=t<3FI=+x^|$@+BFF zR^L%l7xZmh+osBAO*0NiA2Ddv!VB>~W%ZSTmng5%sJj&>pXEF2u@f;|IlsERQp>|W z??TY6wL!yaFB1jH$c*c9CHj*Gw>AyP&4ocKku03c9>bt=`>tINSk$;h&zJ$j_yvIz z+{+w(r@<{jg_Y>HAl)GL9QileZJzgNS;@jJ&BU&I0qN=KjI02pW+x;jCL+Eor1qsw z3>_6>B#E?wSKFZHt|F_}amlAE7q1q(Z~qujxz`%9Sx~%qhd<1(fD|hOiCxdaEh7s3 zR%YD#S}dd0LGasn)ZsU!jK`XOT(NZBzi4VOK`qu#+q20)qEfPAX$;@L8?uO3gdl05 zo*-e#%-gw9B3ODBUm?6jy4Nnwy|@3ms=6fH>Y|9GZ(}0 z>Iz%zUiob1yz)nlU6hJ-)pvC0r+d(s>z%hu>(dFzxAIr7Or|MKa%<2&Ke0y_Wn&xb zO0c*;`WaVw{{9p%^Im8wFS!S zqjq5vyQX|S|K#Zu8RNa(vf;r2~T+U5tfqht&uWT{mADmrc0$hcfN8j;paKq zFI%gAca+MAI=#sxu%~44=B?7w0gVogTjIiY9JEesU*?d%9jM5HMIh0y%xPRQcJlR8WO&wby|eP7pkp4WNZ1b)tlnb$tTzHjr~rjaU{x-M1HRkx%4(j~<@Zf$?V zz3r(}j1xwre5o?jQcKGCF|A+n-~Z}zXhHMDQ@>8=pYeEGfJ|x_bfHs*U0i)*Xluh; zo6_NtS(iMQYh<`Z^jpVgBFs#rI(j^A7Cc{I3k;^89;QuRM`RgrRH zx;m<|l(^uL zmgeT0kL4d%jnMOF7$3bmdqdB$qk8bp$X)s**-u+7*!MaHYqm4a-(_iLCmEFg16>GoHzs z$^%(7nUBs=WVP;7Eyy7Cg! z(iXh%Q>gFqm66GzzZ_yp6;c@Z3Jkv5q(K|v+Xt2 zwcxTCi}tDA9h9^2e`CAOL4?mhXW)Nk&o`4al)l{q5SJ90Mt!iTH|^{Ul@x^n;xLKV z)yGjl1~eb}BB^rm`dJ&p)MNKKgv>XC^Q3Y((w;uIe1fA|bDV$67vcvGMT%pII1l6< z`Ubs|6(J!Rx1HTP01irPC)Z1v;E!ZM29Z0B}#)6$~F5V{&ziqs+-kQU=JxWG7CW#suI5+YLq zile#7Jr*I6;{o4q^$Nn7JN(4xqPrjF6e`MxL>kgtxfh2rQU${7>qOOnp_(zm3pm>N zvv~+oB7qyhIsB;kvX4t$z508wavVoK;zwTJO6rU`6E{DwQ1k`ssiRX?B;mbL)7a=U zxF3R;+r-g$v7Y+vLf8vi$)onYMTa^`+y|K7O+Sxjc>|kHnfVb05IpK9a9~;siA7xB z5r-j%^7{25sBejqNi%_+F_~Ls(nX{u^cZs9Y*5MCf-fIWn;r)8v2|9*Y72Y4(Wnxk zQQ--|P8epuw1mXOafZ_D)9i10uVC18)k@Bv-*-@5RM0jwM9{*me)wflD~d_q0gjMJ z%tD4s#TOVv!XvO}Jbvj^zm)bQTpUCl;W*K;5Y#7Zq3`l*oFiZ=kO4I|HsVtUuA8qM z3|z$M7)QNXg)=pnD+$6<(n9lTU@I$`#0lmQfw8!utiKOGil- zCDB43!8NyIugqX3BmmWnWaave8?7eQQ5-exI0iY6+K(dYw&dxdk&MP*L*4Os_|v$d z;fNA|0!Prv#L4L#Lj_cVEG+EhJ-eodw7Y^%3H*5Xwch;)oF!E8VX)^k2IBsBYvt^hsM5I%HNMiwT2<@$Jzw{ zk7z_iWQ$mD!zjtuIkQ1^5gXLk-Iu<4{5W$?ia=m@=edPrZspMW_*anuv(B;5=?!o@ zW~cTH|Jv$5Iw4rJ5;@4Cz;W3D1WHs}rrGq$Q>ZgQV4r?+${vM`lI=oQU!QI`6Q-M3 zS-oWALM%u+T5I%g7&iHAxI7@6l7C2OL>&)t4mtK5ICc568;wBBq7A`Q__V>;gdfy< z$Ib(c6|nH*s19dRH&o-mXSHrLpD{FSeDPwz@u%wZib@p~LAnLAT5UWJfGkq?aGLu7 z*An{y&y23T3^YC=$#9Ur6W9*rGidLG`2|cg7z(xzP&v@_huNtRdo=M4WnZV8AKL#! zD>oBVmjv2|`hKe7F>?V2<;g%PA!Mw|e-ctpMh*Y_BEVRk*IT`gfHB0ychPpaz09fh zi%QWvQLTnk*~bP#WQBPv%378;Ma#{b5LJ2p1~X;_lLd%KP0_ubPLPX`Yqg#fju47{`AcUK!V10en3<^)v@0!T^THI|NK=$8t4C z&%(2Zo@k9PgM@%h6Fz=032sBUIw(7&#|*YNxvCUSit_s+|LFY(t>bFFr!+leLv$O$ zg|bh&LpSZ|u5Ru($b0|E>}ww~Chc*JF@Z~PGmhrK%ljsubUweT+d6O12A~IUMv%Us z4>zn?Em`xUVIJ|j^!ffdUK30LE5s$W?i1phkd|ios5Gn-?#+1FU3Kujg%755*m&wC z$n4LXU6l)C2m*D^N_eamC&pYy|)kCLsrmw)xXjfn{4V2Jy$jI$2W?P=s;fNtiY zqE?4MgI+7NYq{Dq*)xP{5h0HH8v%*SeaGIx>c%6^%G`X?5be>pQ+buQzHMp(wusxX z!Qi`P>~IIyuXhHD>=xPAuIk6pPu#x_nc?H(a=q60*JgwM{hQ)c>m5R#byR!Zp{^ra=LFH3-_9znY*0Oh(quny z4*Rm3i%aF=s&jMCBt#bG!%zb=y9uWnih-^yh z8O=|~q?cj4o>W1aT6~sM4wDYQ%?k5 z(nBNHOymnPSF=REUcNs$NLs!%k@Qvs4(Q-ZtQl}O87d6d6>Noknm93b>V4&jLk>*e-MfY8(+5;x zv-3artY5IkLo1uC3Zh(0V=99UbCwxwwLf)!VbjcyYu2b?uSKbx-!8WB)<2;0#JE5= zDBn`H0NTFtGOIZXIT*)Ep`b2aoO# zm&8z~>OWq)x*ZgBLtVuDu_t$kx+JBkM`D!G?5u@d>Ci1YwG@w5On+%>5+3=>eHac- zvL#eP9X{+bVZ!aeDq;Tv?}|5_9nwuuR6!%sg`RBZE05I7o5pFIAm)*H{=_j3gqwx4 z5A7G(e&B^N!|=6E?vXvUyHZ|krlQhTwlQVMYK!J@0!m}Hl%74W5e1fvv7$aVEt!f} zZkVQ2g}V3*)=o*XNY?DH=qexp@xi+pMJCR_ zq9}Mqlw6UQ`JGa?qIbtvfj0eU&)Ym*%r#zr9 z1!g?}+mQIM_;!J(49P8U{3YOKyZ*#Pb49mHx)tg@iqCyYwRl43tQ#(KPRI+e{wx1% z{6q&2!?_xY8nRXK`Xt$UvOZSTXo7N^uw1zAJkZV~O<($q%4%D;8(PD*8ObJ>+w^)8 zlNTI3%v9>OrACsyEsq#qKh7>TFQ5y-Seb4Of T*1vX(H(bV!cgh_zJLbOuvuxZq literal 196456 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

    dTSH*TU8 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�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


    ^6B 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 diff --git a/fern/assets/images/throttle-keying.png b/fern/assets/images/request-keying.png similarity index 100% rename from fern/assets/images/throttle-keying.png rename to fern/assets/images/request-keying.png diff --git a/fern/assets/images/retry-boundary.png b/fern/assets/images/retry-boundary.png index d01d8f7cd78f919a8bc74a3ac456dba80c7cbe91..e3918eee432b0638ee7381989e533e5d4ab344b2 100644 GIT binary patch literal 42573 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°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�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
    OFn80$4) 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 z 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
  • so+-O7eDyUK51T+1B_pu_2p{7j^0z4hca{ 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�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 literal 30470 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�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 RXDa{z002ovPDHLkV1j<|W32!H diff --git a/fern/assets/owning-the-model-stack/native-model-client-layers.png b/fern/assets/owning-the-model-stack/native-model-client-layers.png index 4600519f6c37d92569904982c21095c2ac6aa120..591f8154853444981db297035c5bcc493d1a7c8e 100644 GIT binary patch literal 54814 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%0D?-9U1Pun>#M$+%R4M)dbwzkYq7B1uFu^}X0B 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 T*1vX(H(bV!cgh_zJLbOuvuxZq literal 196456 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

    dTSH*TU8 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�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


    ^6B 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 diff --git a/fern/assets/owning-the-model-stack/throttle-keying.png b/fern/assets/owning-the-model-stack/request-keying.png similarity index 100% rename from fern/assets/owning-the-model-stack/throttle-keying.png rename to fern/assets/owning-the-model-stack/request-keying.png diff --git a/fern/assets/owning-the-model-stack/retry-boundary.png b/fern/assets/owning-the-model-stack/retry-boundary.png index d01d8f7cd78f919a8bc74a3ac456dba80c7cbe91..e3918eee432b0638ee7381989e533e5d4ab344b2 100644 GIT binary patch literal 42573 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°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�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
    OFn80$4) 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 z z@)q8*$SdJEk{0(*R47mAk0u;mjd}Xy z^|E;O(B41SPCUoxTrXd1CF#vb)D2G<++R}zBxmRFUk^97CR(rXGe7pvsL`Ju_B40? zGxC=Bw2s>#mh0z)-)=J9o~Grpw3ts#24w<4p}o5)^)Q*%c}?d;|M$OCk(g6ANGaKd zem^eUTy**|Pq&Hy=IEzcfEp!XouhBW*xS)k0JqG_Sa*{TPo6b-f*i8 zy{!-RT(UTuei58<4kZdY z$Hfx9iajzg3Af<{38qiCF_`nrP2t2$y|S;eR+zKjDsi*i7(Jd>1B5u{=8ufyZb!*U zcO7N7@tNpVRC!d(!UdS+&8-9L2x`TJLALj1S1j__IbH}{&!s)!-5U~f4)|-^=@jfP zS^W3wxWMjf4fwc6-hlU&TNiJTW)&{B&4dcDTY5|cTS-4$XfPE0b@5==V;%?UyJ7X= z>m_TuSMN)c)THF!RJGd|l_TO$!w78VU#hK-CoTLdFDXg#|1$1} diff --git a/fern/versions/v0.5.8/pages/concepts/architecture-and-performance.mdx b/fern/versions/v0.5.8/pages/concepts/architecture-and-performance.mdx index fc0704cda..cc9bd0638 100644 --- a/fern/versions/v0.5.8/pages/concepts/architecture-and-performance.mdx +++ b/fern/versions/v0.5.8/pages/concepts/architecture-and-performance.mdx @@ -51,7 +51,7 @@ This guide explains the architecture, execution model, and how to tune performan ## Execution Model - The default execution path is the **async engine**, which dispatches work at the cell level and overlaps independent columns — see [Async Engine](#async-engine) below for its semantics. The legacy **sync engine** is still available for one transitional release via `DATA_DESIGNER_ASYNC_ENGINE=0` and is what this section describes. The configuration knobs documented below (`buffer_size`, `max_parallel_requests`, AIMD throttle config, error handling) apply to both engines; the differences are flagged inline. + The default execution path is the **async engine**, which dispatches work at the cell level and overlaps independent columns — see [Async Engine](#async-engine) below for its semantics. The legacy **sync engine** is still available for one transitional release via `DATA_DESIGNER_ASYNC_ENGINE=0` and is what this section describes. The public configuration knobs documented below (`buffer_size`, `max_parallel_requests`, error handling) apply to both engines; the differences are flagged inline. The sync engine processes datasets in **batches**, with **parallel** operations within each batch. @@ -108,12 +108,12 @@ At any moment, the number of concurrent LLM requests is: ```python concurrent_requests = min( buffer_size, # Records in current batch - current_throttle_limit, # AIMD-managed limit (≤ max_parallel_requests) + current_request_limit, # AIMD-managed limit (≤ max_parallel_requests) remaining_cells_in_column # Cells left to generate ) ``` -`max_parallel_requests` sets the **ceiling**. The actual limit (`current_throttle_limit`) is managed at runtime by an AIMD (Additive Increase / Multiplicative Decrease) controller that reacts to rate-limit signals from the inference server: +`max_parallel_requests` sets the **ceiling**. The actual limit (`current_request_limit`) is managed at runtime by adaptive request admission that reacts to rate-limit signals from the inference server: - **On the first 429 in a burst**: the limit is reduced by a configurable factor (default: 25% reduction) and a cooldown is applied. Further 429s from already in-flight requests in the same burst do not reduce the limit again — they release their permits and hold the limit steady. - **After consecutive successes**: the limit increases by 1 (by default) until it reaches the ceiling or a stabilized rate-limit threshold. @@ -121,7 +121,7 @@ concurrent_requests = min( This means Data Designer automatically finds the right concurrency level for your server without manual tuning. - AIMD adaptive concurrency is fully active on the default **async engine**. The legacy **sync engine** is available for one transitional release via `DATA_DESIGNER_ASYNC_ENGINE=0`; on that path 429s are first retried at the HTTP transport layer and AIMD only engages as a fallback. See [Async engine](#async-engine) below. + Adaptive request admission is fully active on the default **async engine**. The legacy **sync engine** is available for one transitional release via `DATA_DESIGNER_ASYNC_ENGINE=0`; on that path 429s are first retried at the HTTP transport layer and AIMD only engages as a fallback. See [Async engine](#async-engine) below. **Example**: With `buffer_size=100` and `max_parallel_requests=32`, Data Designer starts sending up to 32 requests in parallel. If the server returns 429s, concurrency drops automatically (e.g., to 24, then 18) and recovers once the server catches up. @@ -198,7 +198,7 @@ Only resume datasets from trusted artifact directories. Resume reads local `meta ### `max_parallel_requests` (InferenceParams) -Sets the **maximum** concurrent LLM API calls **per model**. This is the ceiling that the AIMD throttle controller can ramp up to — the actual concurrency at runtime may be lower if the server signals rate limits. +Sets the **maximum** concurrent LLM API calls **per model**. This is the ceiling that adaptive request admission can ramp up to — the actual concurrency at runtime may be lower if the server signals rate limits. ```python import data_designer.config as dd @@ -215,7 +215,7 @@ model = dd.ModelConfig( **Default**: 4 -**When to increase**: Your inference backend has high throughput capacity, you're using a cloud API with generous rate limits, or you're running vLLM/TensorRT-LLM with multiple GPUs. With AIMD, setting an aggressively high value is safer than before — the system will self-correct downward if the server can't keep up. The salvage queue on the async engine (default) reclaims failed rows; on the sync engine the initial burst of 429s before AIMD stabilizes can drop rows, so start with a more conservative ceiling if you've opted into sync. +**When to increase**: Your inference backend has high throughput capacity, you're using a cloud API with generous rate limits, or you're running vLLM/TensorRT-LLM with multiple GPUs. With adaptive request admission, setting an aggressively high value is safer than before — the system will self-correct downward if the server can't keep up. The salvage queue on the async engine (default) reclaims failed rows; on the sync engine the initial burst of 429s before AIMD stabilizes can drop rows, so start with a more conservative ceiling if you've opted into sync. **When to decrease**: You want to cap resource usage to a known safe level, or you want more predictable/debuggable execution. @@ -223,7 +223,7 @@ model = dd.ModelConfig( Finding the optimal value The right value depends on your inference stack and model. Self-hosted vLLM servers can often handle values as high as 256, 512, or even 1024 depending on your hardware. -With AIMD, a practical approach is to set `max_parallel_requests` to the **upper bound** you're comfortable with and let the throttle controller find the sustainable level automatically. If you see frequent 429 → recovery cycles in the logs, your ceiling is above the server's true capacity but the system is handling it. If you never see any throttle activity, you may have room to increase the ceiling further. +With adaptive request admission, a practical approach is to set `max_parallel_requests` to the **upper bound** you're comfortable with and let the request controller find the sustainable level automatically. If you see frequent 429 → recovery cycles in the logs, your ceiling is above the server's true capacity but the system is handling it. If you never see any request-admission activity, you may have room to increase the ceiling further. **Benchmark approach**: Run a small dataset (e.g., 100 records) with increasing `max_parallel_requests` values (4 → 8 → 16 → 32 → ...) and measure generation time. Stop increasing when the runtime stops decreasing—that's when your inference server is saturated. @@ -245,39 +245,9 @@ designer.set_run_config(run_config) --- -### Adaptive Throttling (RunConfig) +### Adaptive Request Admission -Data Designer uses an AIMD (Additive Increase / Multiplicative Decrease) controller to automatically adjust concurrency per model based on rate-limit feedback from the inference server. The defaults work well for most workloads. Override them via `ThrottleConfig` only when you understand the trade-offs. - - - Adaptive throttling is fully active on the default **async engine**, where 429 responses propagate directly to the AIMD controller. On the legacy **sync engine** (`DATA_DESIGNER_ASYNC_ENGINE=0`), 429s are first retried at the HTTP transport layer; `ThrottleConfig` settings only take effect as a fallback if transport retries are exhausted. - - -```python -import data_designer.config as dd -from data_designer.interface import DataDesigner - -run_config = dd.RunConfig( - throttle=dd.ThrottleConfig( - reduce_factor=0.75, # Multiply limit by this on a 429 (default: 0.75) - additive_increase=1, # Add this many slots after success_window successes (default: 1) - success_window=25, # Consecutive successes before increasing (default: 25) - cooldown_seconds=2.0, # Pause after a 429 when no Retry-After header (default: 2.0) - ceiling_overshoot=0.10, # Probe 10% above observed server limit (default: 0.10) - ), -) - -designer = DataDesigner() -designer.set_run_config(run_config) -``` - -| Parameter | Default | Effect | -|-----------|---------|--------| -| `reduce_factor` | 0.75 | How aggressively to cut concurrency on a 429. Lower = more aggressive. | -| `additive_increase` | 1 | Slots added per recovery step. Higher = faster ramp-up, but riskier. | -| `success_window` | 25 | Consecutive successes required before each increase step. | -| `cooldown_seconds` | 2.0 | Pause duration after a 429 (used when the server doesn't send `Retry-After`). | -| `ceiling_overshoot` | 0.10 | Fraction above the observed rate-limit ceiling the controller is allowed to probe. | +Data Designer uses AIMD (Additive Increase / Multiplicative Decrease) request admission to automatically adjust concurrency per provider/model/domain based on rate-limit feedback from the inference server. This is an internal runtime controller, not a public `RunConfig` knob. Set `max_parallel_requests` as the user-facing ceiling and inspect `AsyncCapacityPlan`/logs to understand the effective runtime limits. How it works in practice @@ -313,11 +283,11 @@ designer.set_run_config(run_config) ## Async Engine -The async engine is the default execution path. It dispatches work at the cell level rather than the column level, so independent columns overlap in time and per-(provider, model) AIMD pools tune themselves independently. See the [Async All the Way Down](/dev-notes/async-all-the-way-down) dev note for the full architecture. +The async engine is the default execution path. It dispatches work at the cell level rather than the column level, so independent columns overlap in time and provider/model/domain request resources tune themselves independently. See the [Async All the Way Down](/dev-notes/async-all-the-way-down) dev note for the full architecture. ### Per-model timeouts drive every deadline -The `inference_parameters.timeout` field on a `ModelConfig` sets the per-request HTTP timeout. The same value also drives the sync→async bridge that custom columns use when they call `model.generate()`. There is no separate queue-wait deadline — waits scale with provider speed and AIMD's adaptive concurrency. Slow self-hosted endpoints (e.g. large models on a single GPU) only need this one knob raised: +The `inference_parameters.timeout` field on a `ModelConfig` sets the per-request HTTP timeout. The same value also drives the sync→async bridge that custom columns use when they call `model.generate()`. There is no separate queue-wait deadline — waits scale with provider speed and adaptive request admission. Slow self-hosted endpoints (e.g. large models on a single GPU) only need this one knob raised: ```python import data_designer.config as dd @@ -366,8 +336,8 @@ DATA_DESIGNER_ASYNC_ENGINE=0 python my_pipeline.py | Problem | Symptom | Solution | |---------|---------|----------| -| **Low throughput** | Low GPU utilization | Increase `max_parallel_requests` and/or `buffer_size`. If the throttle has self-reduced due to earlier 429s (check logs for "concurrency reduced" messages), the server may need more capacity or you can wait for AIMD recovery. | -| **Frequent 429 → recovery cycles** | Logs show repeated concurrency drops and ramp-ups | The `max_parallel_requests` ceiling is above the server's sustained capacity. This is handled automatically, but you can lower the ceiling to reduce the sawtooth or tune `reduce_factor` / `success_window`. | +| **Low throughput** | Low GPU utilization | Increase `max_parallel_requests` and/or `buffer_size`. If request admission has self-reduced due to earlier 429s (check logs for "concurrency reduced" messages), the server may need more capacity or you can wait for AIMD recovery. | +| **Frequent 429 → recovery cycles** | Logs show repeated concurrency drops and ramp-ups | The `max_parallel_requests` ceiling is above the server's sustained capacity. This is handled automatically, but you can lower the ceiling to reduce the sawtooth. | | **Long tail of slow generations** | Most records fast, few very slow | Reduce `max_conversation_restarts`, simplify schemas, improve prompts | | **Multi-model idle periods** | One model busy, others idle | Reduce `buffer_size` for faster cycling, or consolidate models | | **Memory errors** | OOM crashes | Reduce `buffer_size` and `max_parallel_requests` | @@ -380,7 +350,7 @@ DATA_DESIGNER_ASYNC_ENGINE=0 python my_pipeline.py 1. **Start with defaults** for initial development — AIMD handles rate-limit adaptation automatically 2. **Profile your workload**: How many LLM columns? How many records? What models? 3. **Identify bottleneck**: Low GPU util → increase `max_parallel_requests` (AIMD will self-correct if you overshoot). Memory issues → decrease `buffer_size`. Long tails → tune retry settings. -4. **Check throttle logs**: Look for "concurrency reduced" / "concurrency increased" messages to understand whether rate limits are the bottleneck +4. **Check request-admission logs**: Look for "concurrency reduced" / "concurrency increased" messages to understand whether rate limits are the bottleneck 5. **Iterate**: Make one change at a time, measure impact before next change --- diff --git a/fern/versions/v0.5.8/pages/devnotes/index.mdx b/fern/versions/v0.5.8/pages/devnotes/index.mdx index 2bab4a5fd..fa5545d2c 100644 --- a/fern/versions/v0.5.8/pages/devnotes/index.mdx +++ b/fern/versions/v0.5.8/pages/devnotes/index.mdx @@ -44,7 +44,7 @@ Welcome to NeMo Data Designer Dev Notes — in-depth guides, benchmark write-ups } diff --git a/fern/versions/v0.5.8/pages/devnotes/posts/async-all-the-way-down.mdx b/fern/versions/v0.5.8/pages/devnotes/posts/async-all-the-way-down.mdx index 631d1ab18..c81f1551d 100644 --- a/fern/versions/v0.5.8/pages/devnotes/posts/async-all-the-way-down.mdx +++ b/fern/versions/v0.5.8/pages/devnotes/posts/async-all-the-way-down.mdx @@ -58,7 +58,7 @@ Getting this right required solving three problems at different levels of the st
    -![Three layers: AsyncTaskScheduler for dependency dispatch, row-group admission for memory, ThrottleManager for rate limits](/assets/async-all-the-way-down/architecture-layers.svg) +![Three layers: AsyncTaskScheduler for dependency dispatch, row-group admission for memory, and request admission for provider capacity](/assets/async-all-the-way-down/architecture-layers.svg)
    @@ -66,43 +66,42 @@ Getting this right required solving three problems at different levels of the st At the top sits the `AsyncTaskScheduler`. It builds an `ExecutionGraph` from your column configs using [Kahn's algorithm](https://en.wikipedia.org/wiki/Topological_sorting#Kahn's_algorithm) for topological ordering, then tracks per-cell completion via a `CompletionTracker`. When a cell completes, the tracker determines which downstream cells are now ready and pushes them onto the dispatch queue. -The scheduler maintains a *frontier* — the set of tasks whose inputs are all satisfied. Dispatch is a loop: pull ready tasks from the frontier, acquire a [semaphore](https://en.wikipedia.org/wiki/Semaphore_(programming)) slot, spawn a worker. When the worker completes, mark the cell done, which may add new tasks to the frontier. The loop runs until every cell in every row group has completed or been dropped. +The scheduler maintains a *frontier* — the set of tasks whose inputs are all satisfied. Dispatch is a loop: enqueue ready tasks, ask `FairTaskQueue` to select the next eligible task, acquire a scheduler-resource lease from `TaskAdmissionController`, commit the queue selection, then spawn a worker. When the worker completes, mark the cell done, release the lease, and make any newly-ready downstream tasks visible. The loop runs until every cell in every row group has completed or been dropped. -There's a subtlety in how the scheduler manages its task slots, and getting it right required a delicate dance between two semaphores. A naïve approach would hold a submission slot for the entire lifetime of a task. That's fine for the outbound HTTP call — the slot is released before the request goes out. But the `ThrottleManager` can impose an internal timeout while waiting for a permit during AIMD cooldown, and *that* wait would hold the submission slot hostage. If enough tasks are blocked waiting for throttle permits, the scheduler can't dispatch new work even when the frontier has ready tasks. +There's a subtlety in how the scheduler manages task-stage pressure. Scheduler resources and provider request resources are separate. The scheduler decides which dependency-ready cell may become a running worker; `ModelRequestExecutor` and request admission decide when an individual provider call may execute. Keeping those ledgers separate prevents provider cooldown or request backpressure from masquerading as DAG readiness. -The fix is a one-way semaphore handoff. The scheduler maintains two pools: a *submission* semaphore that caps how many tasks can be dispatched, and an *LLM-wait* semaphore (sized larger) for tasks that are blocked on a model call. When a task is about to call the model, it acquires an LLM-wait slot and releases its submission slot in the same atomic operation — stepping from one pool to the other mid-flight. The dispatch loop immediately sees a free submission slot and can send another task. When the LLM responds, the LLM-wait slot is released. Non-LLM generators (samplers, Jinja expressions) skip the handoff and hold their submission slot for the full duration, which is fine because they complete quickly. +The durable scheduler contract is selection plus admission plus commit: ```py -if is_llm_bound: - await self._llm_wait_semaphore.acquire() - holds_llm_wait = True - self._submission_semaphore.release() - holds_submission = False +selection = queue.select_next(lambda item, view: admission.is_eligible(item, view)) +decision = admission.try_acquire(selection.item, selection.queue_view) +committed = queue.commit(selection) +spawn_worker(committed, decision) ``` -This keeps the dispatch loop saturated without unbounded coroutine growth — the submission semaphore controls how fast tasks enter, and the LLM-wait semaphore controls how many are waiting on the network. +This keeps ready-work ordering, scheduler-resource accounting, and request-capacity adaptation explicit. `SchedulingMetadata` describes static generator pressure, `TaskSchedulingResolver` turns it into scheduler inputs, `FairTaskQueue` handles ready ordering, and `TaskAdmissionController` owns leases for scheduler resources. ### **Layer 2: Row-group admission** -Below the scheduler, the 10,000 rows you requested aren't all in memory at once. They're partitioned into row groups that checkpoint to parquet independently. A semaphore limits how many row groups are in flight simultaneously, preventing memory from growing unboundedly on large runs. +Below the scheduler, the 10,000 rows you requested aren't all in memory at once. They're partitioned into row groups that checkpoint to parquet independently. Row-group admission limits how many groups are in flight simultaneously, preventing memory from growing unboundedly on large runs. When a row group completes — all columns generated for all its rows — the buffer manager flushes it to disk and releases the memory. Partial results appear on disk during generation. If something fails, you keep everything that already checkpointed. This is also the basis for fault tolerance, discussed later — the unit of loss is a row group, not the entire run. ### **Layer 3: Adaptive rate limiting** -At the bottom, each (provider, model) pair gets an independent concurrency pool with [additive-increase, multiplicative-decrease (AIMD)](https://en.wikipedia.org/wiki/Additive_increase/multiplicative_decrease) rate adaptation. When the provider returns a 429, the pool cuts its concurrency. On streaks of successful requests, it gradually increases. Because this happens per-model, a judge model running on one provider can saturate its endpoint while a generator on another provider is backing off. The [Owning the Model Stack](/dev-notes/owning-the-model-stack) dev note covers this layer in depth. +At the bottom, each provider/model/request-domain resource gets [additive-increase, multiplicative-decrease (AIMD)](https://en.wikipedia.org/wiki/Additive_increase/multiplicative_decrease) request admission. When the provider returns a 429, `AdaptiveRequestAdmissionController` reduces admitted concurrency for that request resource. On streaks of successful requests, it gradually increases. Because this happens per request resource, a judge model running on one provider can saturate its endpoint while a generator on another provider is backing off. The [Owning the Model Stack](/dev-notes/owning-the-model-stack) dev note covers this layer in depth. ### **How they compose** -The layers are independent. The scheduler decides *what* to run next. The row-group layer decides *how much* to keep in memory at once. The throttle layer discovers *how fast* each provider will accept requests. No layer needs to know about the others. +The layers are independent. The scheduler decides *what* to run next. The row-group layer decides *how much* to keep in memory at once. The request-admission layer discovers *how fast* each provider will accept requests. No layer needs to know about the others. A single task's lifecycle makes the composition concrete:
    - Task lifecycle: Frontier → Dispatch → Generator → Throttle → LLM Call → Complete, with downstream cells looping back to the frontier + Task lifecycle: Frontier to fair queue to task admission to generator to request admission to LLM call to complete, with downstream cells looping back to the frontier
    -A cell enters the frontier when its upstream dependencies are satisfied. The dispatch loop acquires a submission slot and hands it to a worker. The worker runs the generator, which acquires a throttle permit before making the LLM call. On completion, permits are released, the cell is marked done in the `CompletionTracker`, and any downstream cells whose dependencies are now satisfied enter the frontier. The cycle continues until every cell has completed or been dropped. +A cell enters the frontier when its upstream dependencies are satisfied. The scheduler enqueues it, selects it through `FairTaskQueue`, acquires a `TaskAdmissionLease`, commits the selection, and hands the task to a worker. The worker runs the generator; any model call goes through `ModelRequestExecutor`, which acquires and releases the request-admission lease around provider execution. On completion, leases are released, the cell is marked done in the `CompletionTracker`, and any downstream cells whose dependencies are now satisfied enter the frontier. The cycle continues until every cell has completed or been dropped. --- @@ -137,13 +136,13 @@ The pattern is clear: speedup scales with the amount of parallelism available in The **narrow** workload is a sequential chain with no cross-column parallelism. The async engine still ekes out a small gain from overlapping row-level dispatch, but there's no structural parallelism to exploit. This is expected: async can't speed up a fundamentally serial pipeline. -The **dual-model** workload is the most interesting case. Three generation columns use one model, and three judge columns use another. Each model gets its own ThrottleManager pool. The judge model starts processing rows as soon as the first generator finishes, running at full concurrency while the generator is still producing. In the sync engine, all generation has to finish before any judging starts. +The **dual-model** workload is the most interesting case. Three generation columns use one model, and three judge columns use another. Each model maps to its own request-admission resources. The judge model starts processing rows as soon as the first generator finishes, running at full concurrency while the generator is still producing. In the sync engine, all generation has to finish before any judging starts. ### **At higher record counts** -The benchmarks above use 10 records deliberately — small batches isolate the scheduling benefit from rate-limit effects. At higher record counts, the bottleneck shifts. The async engine dispatches requests more aggressively, which means it discovers the provider's rate limits sooner. When a 429 hits, the AIMD controller backs off, and the backoff can cascade through downstream columns that were waiting on the throttled model's output. +The benchmarks above use 10 records deliberately — small batches isolate the scheduling benefit from rate-limit effects. At higher record counts, the bottleneck shifts. The async engine dispatches requests more aggressively, which means it discovers the provider's rate limits sooner. When a 429 hits, adaptive request admission backs off, and the backoff can cascade through downstream columns that were waiting on the rate-limited model's output. -This is where the per-model throttle pools become important. Single-model pipelines are most susceptible to cascading backoff because all columns compete for the same pool. Multi-model pipelines hold up well because each model adapts independently — a 429 on the generator model doesn't slow down the judge. In our larger runs, dual-model and multi-provider workloads consistently showed the largest async gains. +This is where per-model request resources become important. Single-model pipelines are most susceptible to cascading backoff because all columns compete for the same provider capacity. Multi-model pipelines hold up well because each model adapts independently — a 429 on the generator model doesn't slow down the judge. In our larger runs, dual-model and multi-provider workloads consistently showed the largest async gains. The primary tuning lever is `max_parallel_requests` per model. Set it to a generous upper bound and let AIMD find the real ceiling. See the [Owning the Model Stack](/dev-notes/owning-the-model-stack) dev note for the full story on adaptive concurrency. @@ -179,7 +178,7 @@ The performance numbers are satisfying, but raw throughput is only part of the p ### **Progress you can see** -Because rows complete out of order and row groups checkpoint independently, results start appearing on disk within seconds. The new progress bars — sticky ANSI bars that redraw in-place at the bottom of the terminal — update on every task completion rather than waiting for a full column to finish. Log messages from the scheduler and throttle layer render above the bars, so you see both the high-level progress and the per-event detail. A 10-minute generation run no longer means staring at nothing until the end. +Because rows complete out of order and row groups checkpoint independently, results start appearing on disk within seconds. The new progress bars — sticky ANSI bars that redraw in-place at the bottom of the terminal — update on every task completion rather than waiting for a full column to finish. Log messages from the scheduler and request-admission layer render above the bars, so you see both the high-level progress and the per-event detail. A 10-minute generation run no longer means staring at nothing until the end. ``` column 'topic' ████████████████████████████████████░░░░ 89% | 890/1000 | 148.3 rec/s | eta 1s | 0 failed @@ -188,13 +187,13 @@ Because rows complete out of order and row groups checkpoint independently, resu column 'analysis' ██████████████░░░░░░░░░░░░░░░░░░░░░░░░░░ 35% | 350/1000 | 87.5 rec/s | eta 7s | 1 failed ``` -When tracing is enabled (`DATA_DESIGNER_ASYNC_TRACE=1` or `RunConfig(async_trace=True)`), the scheduler also records a `TaskTrace` for every task: when it was dispatched, when it acquired a semaphore slot, when it completed, and its status. These traces are available on the result object after the run, so you can reconstruct the scheduler's timeline and understand where time was spent. +When tracing is enabled (`DATA_DESIGNER_ASYNC_TRACE=1` or `RunConfig(async_trace=True)`), the scheduler also records a `TaskTrace` for every task: when it was dispatched, when it acquired scheduler resources, when it completed, and its status. These traces are available on the result object after the run, so you can reconstruct the scheduler's timeline and understand where time was spent. ### **Fault tolerance** Failures in a long-running pipeline are not exceptional — they're expected. Model endpoints return 429s, connections time out, prompts produce unparseable output. The scheduler classifies errors into two buckets. -Retryable errors (rate limits, timeouts, transient server errors) are deferred rather than dropped. The task stays on the frontier so it can be re-attempted. If a row group stalls — all of its pending tasks are deferred and nothing is in flight — the scheduler detects the deadlock and runs *salvage rounds*: it re-dispatches the deferred tasks inline, up to a configurable maximum number of attempts. Tasks that still fail after salvage are dropped, and the row group is checkpointed with whatever succeeded. This prevents a stalled row group from holding its semaphore slot forever and blocking admission of new row groups. +Retryable errors (rate limits, timeouts, transient server errors) are deferred rather than dropped. The task stays on the frontier so it can be re-attempted. If a row group stalls — all of its pending tasks are deferred and nothing is in flight — the scheduler detects the deadlock and runs *salvage rounds*: it re-dispatches the deferred tasks inline, up to a configurable maximum number of attempts. Tasks that still fail after salvage are dropped, and the row group is checkpointed with whatever succeeded. This prevents a stalled row group from holding row-group admission capacity forever and blocking admission of new row groups. Non-retryable errors (malformed output, validation failures) drop the row immediately. The `CompletionTracker` knows which downstream tasks depended on that row and removes them from the frontier, so no work is wasted on a row that's already lost. @@ -202,7 +201,7 @@ In both cases, completed row groups are already on disk. The unit of loss is at ### **Multi-model concurrency** -Multi-model pipelines are where the architecture pays for itself. With independent throttle pools per model, there's no reason not to use the right model for each job: a reasoning model for generation, a smaller model for judging, an embedding model for deduplication, each running at its own optimal concurrency. The previous engine supported multi-model configs, but running them concurrently is what makes them practical at scale. +Multi-model pipelines are where the architecture pays for itself. With independent request resources per model, there's no reason not to use the right model for each job: a reasoning model for generation, a smaller model for judging, an embedding model for deduplication, each running at its own optimal concurrency. The previous engine supported multi-model configs, but running them concurrently is what makes them practical at scale. ### **Adoption** @@ -214,7 +213,7 @@ Adoption is opt-in. Set `DATA_DESIGNER_ASYNC_ENGINE=1` in your environment. Your This was a ground-up rebuild of the execution layer, delivered across six PRs over four weeks. -It started with the data structures: `ExecutionGraph`, `CompletionTracker`, and task models ([#356](https://github.com/NVIDIA-NeMo/DataDesigner/pull/356)). Next came the generator migration ([#378](https://github.com/NVIDIA-NeMo/DataDesigner/pull/378)), where we added symmetric `generate()`/`agenerate()` bridging so every generator works in both modes without rewriting. The core scheduler and buffer manager followed in [#404](https://github.com/NVIDIA-NeMo/DataDesigner/pull/404), then integration into `DatasetBuilder` with callbacks and trace export ([#429](https://github.com/NVIDIA-NeMo/DataDesigner/pull/429)). The `ThrottledModelClient` and dual-semaphore scheduler landed in [#449](https://github.com/NVIDIA-NeMo/DataDesigner/pull/449), wiring AIMD concurrency control into every outbound model request. A final polish pass ([#456](https://github.com/NVIDIA-NeMo/DataDesigner/pull/456)) added async preview, unified lifecycle callbacks, and sticky ANSI progress bars. +It started with the data structures: `ExecutionGraph`, `CompletionTracker`, and task models ([#356](https://github.com/NVIDIA-NeMo/DataDesigner/pull/356)). Next came the generator migration ([#378](https://github.com/NVIDIA-NeMo/DataDesigner/pull/378)), where we added symmetric `generate()`/`agenerate()` bridging so every generator works in both modes without rewriting. The core scheduler and buffer manager followed in [#404](https://github.com/NVIDIA-NeMo/DataDesigner/pull/404), then integration into `DatasetBuilder` with callbacks and trace export ([#429](https://github.com/NVIDIA-NeMo/DataDesigner/pull/429)). The historical predecessor to request admission and task-stage capacity control landed in [#449](https://github.com/NVIDIA-NeMo/DataDesigner/pull/449), wiring AIMD concurrency control into every outbound model request. A final polish pass ([#456](https://github.com/NVIDIA-NeMo/DataDesigner/pull/456)) added async preview, unified lifecycle callbacks, and sticky ANSI progress bars. The symmetric bridging was critical for adoption. Every `ColumnGenerator` has both a `generate()` and an `agenerate()` method. Implement one, and the base class synthesizes the other: @@ -277,7 +276,7 @@ Key Resources: 1. [NeMo Data Designer on GitHub](https://github.com/NVIDIA-NeMo/DataDesigner) 2. [Data Designer Documentation](/getting-started/welcome) -3. [Owning the Model Stack: Adaptive Concurrency](/dev-notes/owning-the-model-stack) — companion dev note on the native client layer and AIMD throttling +3. [Owning the Model Stack: Adaptive Concurrency](/dev-notes/owning-the-model-stack) — companion dev note on the native client layer and AIMD request admission 4. [Async Engine Plan (#346)](https://github.com/NVIDIA-NeMo/DataDesigner/issues/346) — original issue and architecture plan *Want to learn more about NeMo Data Designer? Check out our [documentation](/getting-started/welcome) and start building your own synthetic data pipelines today.* diff --git a/fern/versions/v0.5.8/pages/devnotes/posts/owning-the-model-stack.mdx b/fern/versions/v0.5.8/pages/devnotes/posts/owning-the-model-stack.mdx index ad9136362..0eec884c5 100644 --- a/fern/versions/v0.5.8/pages/devnotes/posts/owning-the-model-stack.mdx +++ b/fern/versions/v0.5.8/pages/devnotes/posts/owning-the-model-stack.mdx @@ -10,11 +10,11 @@ import { Authors } from "@/components/Authors"; Picture this: you're generating a million-record dataset. Thirty two concurrent requests per model, three models in the pipeline, two providers. Everything hums along for the first ten minutes — then one provider starts returning 429s, your retry logic kicks in, and suddenly you're in a feedback loop where retries *cause* more 429s. The run stalls. You restart with lower concurrency, waste throughput for hours, and wonder if there's a better way. -There is. This post is about the native model client layer we built with adaptive throttling (a system that discovers provider capacity at runtime) replacing our dependency on LiteLLM along the way. +There is. This post is about the native model client layer we built with adaptive request admission (a system that discovers provider capacity at runtime) replacing our dependency on LiteLLM along the way. {/* more */} -![From chaotic request flow to calibrated concurrency via adaptive throttling](/assets/owning-the-model-stack/native-model-client-hero.png) +![From chaotic request flow to calibrated concurrency via adaptive request admission](/assets/owning-the-model-stack/native-model-client-hero.png) ## **Why We Made the Move** @@ -40,9 +40,9 @@ From top to bottom: 1. **ModelFacade**: orchestrates correction loops, MCP tool-calling, and usage tracking. This is the public API. Column generators talk to this layer, and it was untouched during the migration. If you've written a Data Designer pipeline, nothing about your code changes. -2. **ThrottledModelClient**: the new layer. It's a decorator around `HttpModelClient` — same `ModelClient` protocol, but every outbound call is wrapped with a throttle permit: acquire a concurrency slot before the call, release it after, and feed the outcome (success, 429, or error) back to `ThrottleManager`. This is where adaptive throttling lives. +2. **ModelRequestExecutor**: the request execution layer. It maps every outbound model call to a provider/model/domain request resource, acquires a request-admission lease before provider execution, releases it on every terminal path, and feeds the outcome (success, 429, or error) back to request admission. -3. **ThrottleManager**: the Additive Increase / Multiplicative Decrease (AIMD) controller that `ThrottledModelClient` delegates to. A single instance is created at pipeline startup and shared across all model clients. It owns all the mutable concurrency state — per-domain AIMD counters, global caps, cascade dampening, and cooldown timers. +3. **AdaptiveRequestAdmissionController**: the Additive Increase / Multiplicative Decrease (AIMD) controller used by `ModelRequestExecutor`. A single shared controller is created at pipeline startup and shared across all model clients. It owns the mutable request-admission state — per-domain AIMD counters, global caps, cascade dampening, and cooldown timers. 4. **HttpModelClient**: an abstract base class that defines the interface for all provider adapters. It owns the shared `httpx` transport lifecycle — connection pooling, timeouts, and transport-level retries for transient failures (502, 503, 504). Boring but important. @@ -52,7 +52,7 @@ From top to bottom: The boundary between `ModelFacade` and the client layer is defined by canonical types. `ChatCompletionRequest`, `ChatCompletionResponse`, `EmbeddingRequest`, `EmbeddingResponse`, `ImageGenerationRequest`, `ImageGenerationResponse`, and `ProviderError`. These are plain dataclasses. No provider SDK objects cross this line. A `ModelClient` protocol defines the contract that all adapters implement, and that's the only interface the rest of the system sees. -## **Adaptive Throttling: The Centerpiece** +## **Adaptive Request Admission: The Centerpiece** With this client stack in place, we had the foundation to build something that wasn't possible before. Adaptive concurrency control. Let's start with the problem. @@ -97,23 +97,23 @@ Here's a subtlety that bit us during testing. When the system is running at capa Real pipelines aren't simple. A single provider+model combination might serve chat completions, embeddings, and image generation, potentially on different rate-limit budgets. And multiple [model aliases](/concepts/models/model-configs) in your pipeline might point to the same underlying provider and model (say, one alias for generation and another for judging, both hitting the same NVIDIA endpoint). -The throttle manager handles this with two-level keying: +Request admission handles this with two-level keying:
    -![Two-level throttle keying: global cap per provider+model, independent domain states for chat, embedding, image](/assets/owning-the-model-stack/throttle-keying.png) +![Two-level request-resource keying: global cap per provider+model, independent domain states for chat, embedding, image](/assets/owning-the-model-stack/request-keying.png)
    - **Global cap**: keyed by `(provider_name, model_id)`. When multiple model aliases target the same provider and model, the effective max is `min()` of their configured `max_parallel_requests`. This enforces the most conservative limit for shared upstream capacity, because the provider doesn't care what you *call* the model, it sees the same API key. -- **Domain state**: keyed by `(provider_name, model_id, throttle_domain)`. Each domain (`chat`, `embedding`, `image`, `healthcheck`) maintains its own AIMD state: `current_limit`, `in_flight`, `blocked_until`, `success_streak`, and `rate_limit_ceiling`. Domains float independently but are always capped by the global max. +- **Domain state**: keyed by `(provider_name, model_id, request_domain)`. Each domain (`chat`, `embedding`, `image`, `healthcheck`) maintains its own AIMD state: `current_limit`, `in_flight`, `blocked_until`, `success_streak`, and `rate_limit_ceiling`. Domains float independently but are always capped by the global max. The practical effect is that a burst of 429s on the chat route doesn't starve embedding requests, and vice versa. Each route adapts to its own capacity independently while respecting the shared upstream limit. ## **The Retry Boundary** -There's a design choice here that isn't obvious until you think about it, and getting it wrong would break the entire throttling system. +There's a design choice here that isn't obvious until you think about it, and getting it wrong would break the entire adaptive request-admission system. The transport layer (via `httpx` with `RetryTransport`) handles transient server failures like 502, 503, 504, and connection errors. These are hiccups. The server is temporarily broken. Retry with exponential backoff and jitter, and move on. @@ -121,37 +121,25 @@ But **429 is explicitly excluded from transport retries**.
    -![Retry boundary: 502/503/504 retried at transport, 429 passed through to ThrottledModelClient for AIMD feedback](/assets/owning-the-model-stack/retry-boundary.png) +![Retry boundary: 502/503/504 retried at transport, 429 passed through to ModelRequestExecutor for AIMD feedback](/assets/owning-the-model-stack/retry-boundary.png)
    -Why? Because if the retry layer swallows 429s, the throttle manager never learns the provider is overloaded. The whole AIMD feedback loop depends on seeing raw rate-limit signals. A 429 must bubble up to `ThrottledModelClient` so it can call `release_rate_limited()`, cut the concurrency limit, apply the cooldown, and record the ceiling. The next attempt then re-enters the throttle acquire path, waiting for a permit, before making another HTTP call. +Why? Because if the retry layer swallows 429s, request admission never learns the provider is overloaded. The whole AIMD feedback loop depends on seeing raw rate-limit signals. A 429 must bubble up to `ModelRequestExecutor` so it can release the request lease as rate-limited, cut the concurrency limit, apply the cooldown, and record the ceiling. The next attempt then re-enters the request-admission path before making another HTTP call. -The split is clean and worth remembering. Transport retries handle *server problems*. Throttle adaptation handles *capacity problems*. The provider is working fine, you're just sending too many requests. Conflating the two is how you get retry storms. +The split is clean and worth remembering. Transport retries handle *server problems*. Request admission handles *capacity problems*. The provider is working fine, you're just sending too many requests. Conflating the two is how you get retry storms. -One caveat: this boundary behaves differently depending on the execution mode. In async mode (currently experimental, enabled with `DATA_DESIGNER_ASYNC_ENGINE=1`), 429s bypass transport retries entirely and flow straight to `ThrottledModelClient` for AIMD feedback — this is the full adaptive loop described above. In sync mode, 429s are retried at the transport layer since there's no salvage queue to re-attempt failed rows. AIMD is still wired up but only fires if all transport retries are exhausted. This is temporary — once the async engine graduates from experimental, it will become the default path and the sync codepath will be retired. See [Async All the Way Down](/dev-notes/async-all-the-way-down) for the full story on the async engine. +One caveat: this boundary behaves differently depending on the execution mode. In async mode (currently experimental, enabled with `DATA_DESIGNER_ASYNC_ENGINE=1`), 429s bypass transport retries entirely and flow straight to `ModelRequestExecutor` for AIMD feedback — this is the full adaptive loop described above. In sync mode, 429s are retried at the transport layer since there's no salvage queue to re-attempt failed rows. AIMD is still wired up but only fires if all transport retries are exhausted. This is temporary — once the async engine graduates from experimental, it will become the default path and the sync codepath will be retired. See [Async All the Way Down](/dev-notes/async-all-the-way-down) for the full story on the async engine. ## **Configuration** -The throttle system is designed to work well out of the box. The defaults are conservative and handle most workloads without tuning. The primary user-facing knob is still `max_parallel_requests` on your model's inference parameters, which sets the hard upper bound for concurrency. AIMD floats below it. - -For workloads where you want to fine-tune the adaptation behavior, `ThrottleConfig` is available on `RunConfig`: +Adaptive request admission is designed to work well out of the box. The defaults are conservative and handle most workloads without tuning. The primary user-facing knob is still `max_parallel_requests` on your model's inference parameters, which sets the hard upper bound for concurrency. AIMD floats below it. ```python import data_designer.config as dd from data_designer.interface import DataDesigner data_designer = DataDesigner() -data_designer.set_run_config( - dd.RunConfig( - throttle=dd.ThrottleConfig( - reduce_factor=0.75, - success_window=25, - cooldown_seconds=2.0, - ceiling_overshoot=0.10, - ) - ) -) config_builder = dd.DataDesignerConfigBuilder( model_configs=[ dd.ModelConfig( @@ -173,21 +161,11 @@ create_result = data_designer.create( ) ``` -| Parameter | Default | What it does | -|---|---|---| -| `reduce_factor` | 0.75 | Multiplicative decrease on 429 (0.75 = reduce by 25%) | -| `additive_increase` | 1 | How much to increase the limit after a success window | -| `success_window` | 25 | Consecutive successes before additive increase | -| `cooldown_seconds` | 2.0 | Default cooldown when no `Retry-After` header | -| `ceiling_overshoot` | 0.10 | How far above the observed ceiling to probe (10%) | - -In practice, the parameter most worth adjusting is `success_window`. A smaller window (say, 10) makes the system more aggressive about reclaiming throughput after a pullback, useful when you know the provider's capacity fluctuates quickly. A larger window (say, 50) makes it more conservative, better for providers with strict, stable rate limits where you'd rather not probe at all. - -Most users will never need to touch any of these. The system adapts automatically. +Most users will never need more than `max_parallel_requests`. The system adapts automatically, and capacity diagnostics are exposed through runtime logs and `AsyncCapacityPlan` rather than public controller tuning knobs. ## **What It Looks Like in the Logs** -`ThrottleManager` logs every state transition at `INFO` level, so the adaptation story is visible in your terminal as the run progresses. +Request admission logs every state transition at `INFO` level, so the adaptation story is visible in your terminal as the run progresses. ``` # When the system hits a 429 and cuts concurrency: @@ -210,9 +188,9 @@ Reading these lines in sequence tells you exactly what happened: where the syste ## **Where This Leaves Us** -This shipped in Data Designer v0.5.4. If you're using Data Designer today, nothing changes in your pipeline code. `ModelFacade` is the same API it's always been. What changes is what happens underneath. The system now discovers provider capacity at runtime, isolates throttle state per route, and separates retry logic from rate-limit adaptation. Adaptive throttling is enabled by default for all providers. You don't opt in or configure anything; it just starts learning. If you want to see this fully in action, turn on async mode — see [Async All the Way Down](/dev-notes/async-all-the-way-down) for details. +This shipped in Data Designer v0.5.4. If you're using Data Designer today, nothing changes in your pipeline code. `ModelFacade` is the same API it's always been. What changes is what happens underneath. The system now discovers provider capacity at runtime, isolates request state per route, and separates retry logic from rate-limit adaptation. Adaptive request admission is enabled by default for all providers. You don't opt in or configure anything; it just starts learning. If you want to see this fully in action, turn on async mode — see [Async All the Way Down](/dev-notes/async-all-the-way-down) for details. -For most workloads, the defaults are all you need. Set `max_parallel_requests` to a generous upper bound and let AIMD find the right level. If you're running against a stack that returns 429s, the system adapts to the available capacity without any tuning. If you want finer control, `ThrottleConfig` is there — but the goal is that you spend your time designing datasets, not tuning concurrency knobs. +For most workloads, the defaults are all you need. Set `max_parallel_requests` to a generous upper bound and let AIMD find the right level. If you're running against a stack that returns 429s, the system adapts to the available capacity without public controller tuning. Key Resources: diff --git a/fern/versions/v0.5.9/pages/devnotes/index.mdx b/fern/versions/v0.5.9/pages/devnotes/index.mdx index 1d5fe68da..504c4b6f7 100644 --- a/fern/versions/v0.5.9/pages/devnotes/index.mdx +++ b/fern/versions/v0.5.9/pages/devnotes/index.mdx @@ -44,7 +44,7 @@ Welcome to NeMo Data Designer Dev Notes — in-depth guides, benchmark write-ups } diff --git a/packages/data-designer-config/src/data_designer/config/__init__.py b/packages/data-designer-config/src/data_designer/config/__init__.py index eb385e15a..d3af55838 100644 --- a/packages/data-designer-config/src/data_designer/config/__init__.py +++ b/packages/data-designer-config/src/data_designer/config/__init__.py @@ -58,7 +58,7 @@ ProcessorType, SchemaTransformProcessorConfig, ) - from data_designer.config.run_config import JinjaRenderingEngine, RunConfig, ThrottleConfig # noqa: F401 + from data_designer.config.run_config import JinjaRenderingEngine, RunConfig # noqa: F401 from data_designer.config.sampler_constraints import ( # noqa: F401 ColumnInequalityConstraint, ConstraintType, @@ -82,6 +82,7 @@ UniformSamplerParams, UUIDSamplerParams, ) + from data_designer.config.scheduling import SchedulingMetadata, SchedulingMetadataError # noqa: F401 from data_designer.config.seed import ( # noqa: F401 IndexRange, PartitionBlock, @@ -177,7 +178,9 @@ # run_config "JinjaRenderingEngine": (f"{_MOD_BASE}.run_config", "JinjaRenderingEngine"), "RunConfig": (f"{_MOD_BASE}.run_config", "RunConfig"), - "ThrottleConfig": (f"{_MOD_BASE}.run_config", "ThrottleConfig"), + # scheduling metadata + "SchedulingMetadata": (f"{_MOD_BASE}.scheduling", "SchedulingMetadata"), + "SchedulingMetadataError": (f"{_MOD_BASE}.scheduling", "SchedulingMetadataError"), # sampler_constraints "ColumnInequalityConstraint": (_MOD_SAMPLER_CONSTRAINTS, "ColumnInequalityConstraint"), "ConstraintType": (_MOD_SAMPLER_CONSTRAINTS, "ConstraintType"), diff --git a/packages/data-designer-config/src/data_designer/config/run_config.py b/packages/data-designer-config/src/data_designer/config/run_config.py index d5f10c9e5..dc72bba37 100644 --- a/packages/data-designer-config/src/data_designer/config/run_config.py +++ b/packages/data-designer-config/src/data_designer/config/run_config.py @@ -3,8 +3,6 @@ from __future__ import annotations -from typing import ClassVar - from pydantic import Field, model_validator from typing_extensions import Self @@ -19,63 +17,6 @@ class JinjaRenderingEngine(StrEnum): SECURE = "secure" -class ThrottleConfig(ConfigBase): - """AIMD throttle tuning parameters for adaptive concurrency control. - - These knobs configure the ``ThrottleManager`` that wraps every outbound - model HTTP request. The defaults are conservative and suitable for most - workloads; override only when you understand the trade-offs. - - Attributes: - reduce_factor: Multiplicative decrease factor applied to the per-domain - concurrency limit on a 429 / rate-limit signal. Must be in (0, 1). - Default is 0.75 (reduce by 25% on rate-limit). - additive_increase: Additive increase step applied after every - ``success_window`` consecutive successes. Default is 1. - success_window: Number of consecutive successful releases before - the additive increase is applied. Default is 25. - cooldown_seconds: Default cooldown duration (seconds) applied after a - rate-limit when the provider does not include a ``Retry-After`` - header. Default is 2.0. - ceiling_overshoot: Fraction above the observed rate-limit ceiling - that additive increase is allowed to probe before capping. - Default is 0.10 (10% overshoot). - """ - - DEFAULT_REDUCE_FACTOR: ClassVar[float] = 0.75 - DEFAULT_ADDITIVE_INCREASE: ClassVar[int] = 1 - DEFAULT_SUCCESS_WINDOW: ClassVar[int] = 25 - DEFAULT_COOLDOWN_SECONDS: ClassVar[float] = 2.0 - DEFAULT_CEILING_OVERSHOOT: ClassVar[float] = 0.10 - - reduce_factor: float = Field( - default=DEFAULT_REDUCE_FACTOR, - gt=0.0, - lt=1.0, - description="Multiplicative decrease factor applied to the per-domain concurrency limit on a 429 signal.", - ) - additive_increase: int = Field( - default=DEFAULT_ADDITIVE_INCREASE, - ge=1, - description="Additive increase step applied after every `success_window` consecutive successes.", - ) - success_window: int = Field( - default=DEFAULT_SUCCESS_WINDOW, - ge=1, - description="Number of consecutive successful releases before the additive increase is applied.", - ) - cooldown_seconds: float = Field( - default=DEFAULT_COOLDOWN_SECONDS, - gt=0.0, - description="Default cooldown duration (seconds) after a rate-limit when no Retry-After header is present.", - ) - ceiling_overshoot: float = Field( - default=DEFAULT_CEILING_OVERSHOOT, - ge=0.0, - description="Fraction above the rate-limit ceiling that additive increase is allowed to probe.", - ) - - class RunConfig(ConfigBase): """Runtime configuration for dataset generation. @@ -112,7 +53,8 @@ class RunConfig(ConfigBase): fewer Data Designer-specific restrictions. ``secure`` uses Data Designer's hardened sandbox with additional AST, filter, and output guards. Default is ``secure``. - throttle: AIMD throttle tuning parameters. See ``ThrottleConfig`` for details. + Request admission is engine-internal in V1 and is not exposed as a + public run-config knob. """ disable_early_shutdown: bool = False @@ -132,7 +74,6 @@ class RunConfig(ConfigBase): "`native` uses Jinja2's built-in sandbox; `secure` uses Data Designer's hardened sandbox." ), ) - throttle: ThrottleConfig = Field(default_factory=ThrottleConfig) @model_validator(mode="after") def normalize_shutdown_settings(self) -> Self: diff --git a/packages/data-designer-config/src/data_designer/config/scheduling.py b/packages/data-designer-config/src/data_designer/config/scheduling.py new file mode 100644 index 000000000..84e36b3a0 --- /dev/null +++ b/packages/data-designer-config/src/data_designer/config/scheduling.py @@ -0,0 +1,118 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +from dataclasses import dataclass, field +from typing import Literal + +SchedulingMetadataKind = Literal["local", "model", "custom_model"] + + +@dataclass(frozen=True) +class SchedulingMetadata: + """Static generator-facing scheduling metadata. + + The metadata describes broad resource shape only. It intentionally does + not expose ready-queue state, task-admission state, request-admission + pressure, provider cooldowns, or adaptive request limits. + """ + + kind: SchedulingMetadataKind = "local" + identity: tuple[str, ...] = ("local", "default") + weight: int = 1 + diagnostics: dict[str, object] = field(default_factory=dict) + + @classmethod + def local(cls, resource_name: str = "default", *, weight: int = 1) -> SchedulingMetadata: + return cls(kind="local", identity=("local", resource_name), weight=weight) + + @classmethod + def model( + cls, + provider_name: str, + model_id: str, + generation_kind: str, + *, + weight: int, + diagnostics: dict[str, object] | None = None, + ) -> SchedulingMetadata: + return cls( + kind="model", + identity=("model", provider_name, model_id, generation_kind), + weight=weight, + diagnostics=diagnostics or {}, + ) + + @classmethod + def custom_model( + cls, + plugin_namespace: str, + resource_name: str, + version: str, + *, + weight: int = 1, + diagnostics: dict[str, object] | None = None, + ) -> SchedulingMetadata: + return cls( + kind="custom_model", + identity=("custom_model", plugin_namespace, resource_name, version), + weight=weight, + diagnostics=diagnostics or {}, + ) + + def __post_init__(self) -> None: + if self.kind not in {"local", "model", "custom_model"}: + raise SchedulingMetadataError( + code="invalid_kind", + message=f"Unknown scheduling metadata kind: {self.kind!r}", + diagnostics={"kind": self.kind}, + ) + if not isinstance(self.identity, tuple) or not self.identity: + raise SchedulingMetadataError( + code="invalid_identity", + message="Scheduling metadata identity must be a non-empty tuple of non-empty strings.", + diagnostics={"identity": self.identity}, + ) + if any(not isinstance(part, str) or not part for part in self.identity): + raise SchedulingMetadataError( + code="invalid_identity", + message="Scheduling metadata identity must contain only non-empty strings.", + diagnostics={"identity": self.identity}, + ) + expected_identity_lengths = {"local": 2, "model": 4, "custom_model": 4} + if self.identity[0] != self.kind or len(self.identity) != expected_identity_lengths[self.kind]: + raise SchedulingMetadataError( + code="invalid_identity", + message=f"Scheduling metadata identity for kind {self.kind!r} has an invalid shape.", + diagnostics={ + "kind": self.kind, + "identity": self.identity, + "expected_prefix": self.kind, + "expected_length": expected_identity_lengths[self.kind], + }, + ) + if isinstance(self.weight, bool) or not isinstance(self.weight, int) or self.weight <= 0: + raise SchedulingMetadataError( + code="invalid_weight", + message="Scheduling metadata weight must be a positive integer.", + diagnostics={"weight": self.weight}, + ) + + +class SchedulingMetadataError(ValueError): + """Typed scheduling metadata resolution error.""" + + def __init__( + self, + *, + code: str, + message: str, + fallback: SchedulingMetadata | None = None, + diagnostics: dict[str, object] | None = None, + ) -> None: + super().__init__(message) + self.code = code + self.message = message + self.fallback = fallback + self.diagnostics = diagnostics or {} diff --git a/packages/data-designer-config/tests/config/test_scheduling.py b/packages/data-designer-config/tests/config/test_scheduling.py new file mode 100644 index 000000000..e219daddd --- /dev/null +++ b/packages/data-designer-config/tests/config/test_scheduling.py @@ -0,0 +1,35 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +import pytest + +from data_designer.config.scheduling import SchedulingMetadata, SchedulingMetadataError + + +@pytest.mark.parametrize( + "metadata", + [ + SchedulingMetadata.local(), + SchedulingMetadata.model("nvidia", "nemotron", "chat", weight=2), + SchedulingMetadata.custom_model("plugin", "resource", "v1"), + ], +) +def test_scheduling_metadata_accepts_normative_shapes(metadata: SchedulingMetadata) -> None: + assert metadata.weight >= 1 + + +@pytest.mark.parametrize( + "kwargs", + [ + {"identity": ["local", "default"]}, + {"weight": True}, + {"kind": "model", "identity": ("local", "default")}, + {"kind": "local", "identity": ("local", "default", "extra")}, + {"kind": "custom_model", "identity": ("custom_model", "plugin")}, + ], +) +def test_scheduling_metadata_rejects_non_normative_direct_construction(kwargs: dict[str, object]) -> None: + with pytest.raises(SchedulingMetadataError): + SchedulingMetadata(**kwargs) # type: ignore[arg-type] diff --git a/packages/data-designer-engine/src/data_designer/engine/capacity.py b/packages/data-designer-engine/src/data_designer/engine/capacity.py new file mode 100644 index 000000000..89dc62bd1 --- /dev/null +++ b/packages/data-designer-engine/src/data_designer/engine/capacity.py @@ -0,0 +1,119 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +from collections.abc import Mapping, Sequence +from dataclasses import dataclass, field +from typing import Generic, Literal, TypeVar + +from data_designer.engine.dataset_builders.utils.task_scheduling import SchedulerResourceKey, TaskGroupKey +from data_designer.engine.models.clients.request_admission import ( + ProviderModelKey, + ProviderModelStaticCap, + RequestAdmissionConfig, + RequestResourceKey, +) + +_T = TypeVar("_T") + +CapacityValueSource = Literal[ + "default", + "run_config", + "dataset_builder", + "model_metadata", + "engine_internal_config", + "adapter_config", + "environment", + "runtime_snapshot", + "benchmark_override", +] + + +@dataclass(frozen=True) +class CapacityValue(Generic[_T]): + value: _T | None + source: CapacityValueSource + fallback_from: str | None = None + missing_reason: str | None = None + + +@dataclass(frozen=True) +class RowGroupAdmission: + row_group_concurrency: CapacityValue[int] + observed_in_flight: int | None = None + + +@dataclass(frozen=True) +class RequestAdmissionConfigSnapshot: + resources: Sequence[RequestResourceKey] + initial_limits: Mapping[RequestResourceKey, int] + max_limit_clamps: Mapping[RequestResourceKey, int | None] + cooldown_seconds: float + multiplicative_decrease_factor: float + additive_increase_step: int + increase_after_successes: int + default_queue_wait_timeout_seconds: float | None + + @classmethod + def from_config(cls, config: RequestAdmissionConfig) -> RequestAdmissionConfigSnapshot: + resources = tuple(sorted({*config.initial_limits, *config.max_limit_clamps})) + return cls( + resources=resources, + initial_limits=dict(config.initial_limits), + max_limit_clamps=dict(config.max_limit_clamps), + cooldown_seconds=config.cooldown_seconds, + multiplicative_decrease_factor=config.multiplicative_decrease_factor, + additive_increase_step=config.additive_increase_step, + increase_after_successes=config.increase_after_successes, + default_queue_wait_timeout_seconds=config.default_queue_wait_timeout_seconds, + ) + + +@dataclass(frozen=True) +class AsyncCapacityConfigured: + buffer_size: CapacityValue[int] + row_group_admission: RowGroupAdmission + submission_capacity: CapacityValue[int] + task_resource_limits: CapacityValue[Mapping[SchedulerResourceKey, int]] + request_resources: CapacityValue[Sequence[RequestResourceKey]] + provider_model_static_caps: CapacityValue[Mapping[ProviderModelKey, ProviderModelStaticCap]] + request_domain_initial_limits: CapacityValue[Mapping[RequestResourceKey, int]] + request_admission_config: CapacityValue[RequestAdmissionConfigSnapshot] + transport_pool_limits: CapacityValue[Mapping[ProviderModelKey, int]] + + +@dataclass(frozen=True) +class AsyncCapacityRuntimeSnapshot: + request_domain_current_limits: Mapping[RequestResourceKey, int] | None = None + request_domain_effective_max: Mapping[RequestResourceKey, int] | None = None + request_domain_blocked_until: Mapping[RequestResourceKey, float | None] | None = None + provider_model_aggregate_in_flight: Mapping[ProviderModelKey, int] | None = None + + +@dataclass(frozen=True) +class AsyncCapacityObservedMaxima: + row_groups_in_flight: int = 0 + queued_tasks_by_group: Mapping[TaskGroupKey | str, int] = field(default_factory=dict) + task_leases_by_resource: Mapping[SchedulerResourceKey, int] = field(default_factory=dict) + request_waiters_by_resource: Mapping[RequestResourceKey, int] = field(default_factory=dict) + request_in_flight_by_resource: Mapping[RequestResourceKey, int] = field(default_factory=dict) + provider_model_aggregate_in_flight: Mapping[ProviderModelKey, int] = field(default_factory=dict) + request_domain_current_limits: Mapping[RequestResourceKey, int] = field(default_factory=dict) + transport_pool_utilization: Mapping[ProviderModelKey, int] | None = None + + +@dataclass(frozen=True) +class AsyncCapacityPlan: + configured: AsyncCapacityConfigured + runtime_snapshot: AsyncCapacityRuntimeSnapshot + observed_maxima: AsyncCapacityObservedMaxima + + +def missing_capacity_value( + *, + source: CapacityValueSource, + missing_reason: str, + fallback_from: str | None = None, +) -> CapacityValue[object]: + return CapacityValue(value=None, source=source, fallback_from=fallback_from, missing_reason=missing_reason) diff --git a/packages/data-designer-engine/src/data_designer/engine/column_generators/generators/base.py b/packages/data-designer-engine/src/data_designer/engine/column_generators/generators/base.py index 2431c0eb6..39e8b67e8 100644 --- a/packages/data-designer-engine/src/data_designer/engine/column_generators/generators/base.py +++ b/packages/data-designer-engine/src/data_designer/engine/column_generators/generators/base.py @@ -11,13 +11,14 @@ from typing import TYPE_CHECKING, Any, Coroutine, TypeVar, overload from data_designer.config.column_configs import GenerationStrategy +from data_designer.config.scheduling import SchedulingMetadata, SchedulingMetadataError from data_designer.engine.configurable_task import ConfigurableTask, DataT, TaskConfigT from data_designer.logging import LOG_DOUBLE_INDENT, LOG_INDENT _T = TypeVar("_T") # Preserved deliberately. Two other 300s deadlines were retired in the -# async-default flip (PR #592): the throttle queue-wait and the +# async-default flip (PR #592): the request-admission queue wait and the # ``_AsyncBridgedModelFacade`` bridge in ``custom.py`` — both have # ``ModelFacade`` context and could derive a per-call deadline from # ``inference_parameters.timeout``. This generic ``ColumnGenerator.generate()`` @@ -65,10 +66,14 @@ class ColumnGenerator(ConfigurableTask[TaskConfigT], ABC): def can_generate_from_scratch(self) -> bool: return False - @property - def is_llm_bound(self) -> bool: - """Whether this generator makes model/API calls during generation.""" - return False + def get_scheduling_metadata(self) -> SchedulingMetadata: + """Return static scheduler metadata for this generator. + + Generators that do not declare model-backed behavior use the documented + local default. Model-aware base classes override this with provider/model + resource identity derived from registered model aliases. + """ + return SchedulingMetadata.local() @property def is_order_dependent(self) -> bool: @@ -143,10 +148,6 @@ async def agenerate_from_scratch(self, num_records: int) -> pd.DataFrame: class ColumnGeneratorWithModelRegistry(ColumnGenerator[TaskConfigT], ABC): - @property - def is_llm_bound(self) -> bool: - return True - @property def model_registry(self) -> ModelRegistry: return self.resource_provider.model_registry @@ -161,6 +162,74 @@ def get_model_provider_name(self, model_alias: str) -> str: provider = self.model_registry.get_model_provider(model_alias=model_alias) return provider.name + def get_scheduling_metadata(self) -> SchedulingMetadata: + aliases = self._get_scheduling_model_aliases() + if not aliases: + raise SchedulingMetadataError( + code="missing_model_alias", + message=f"{type(self).__name__} has no model aliases for scheduling metadata.", + fallback=SchedulingMetadata.local(), + diagnostics={"generator_type": type(self).__name__}, + ) + + endpoints: dict[tuple[str, str, str], dict[str, object]] = {} + for alias in aliases: + try: + model_config = self.get_model_config(model_alias=alias) + provider_name = self.get_model_provider_name(model_alias=alias) + except Exception as exc: + raise SchedulingMetadataError( + code="alias_resolution_failed", + message=f"Could not resolve model alias {alias!r} for scheduling metadata.", + diagnostics={"alias": alias, "generator_type": type(self).__name__}, + ) from exc + + endpoint = (provider_name, str(model_config.model), str(model_config.generation_type)) + max_parallel = getattr(model_config.inference_parameters, "max_parallel_requests", 1) + cap = max_parallel if isinstance(max_parallel, int) and max_parallel > 0 else 1 + bucket = endpoints.setdefault(endpoint, {"aliases": [], "caps": []}) + cast_aliases = bucket["aliases"] + cast_caps = bucket["caps"] + if isinstance(cast_aliases, list): + cast_aliases.append(alias) + if isinstance(cast_caps, list): + cast_caps.append(cap) + + if len(endpoints) != 1: + raise SchedulingMetadataError( + code="ambiguous_model_aliases", + message="Model scheduling metadata must resolve to one provider/model/generation endpoint.", + diagnostics={"endpoints": sorted(str(endpoint) for endpoint in endpoints)}, + ) + + endpoint, bucket = next(iter(endpoints.items())) + caps = bucket["caps"] if isinstance(bucket["caps"], list) else [1] + aliases_for_diagnostics = bucket["aliases"] if isinstance(bucket["aliases"], list) else aliases + provider_name, model_id, generation_kind = endpoint + effective_cap = max(1, min(int(cap) for cap in caps)) + return SchedulingMetadata.model( + provider_name, + model_id, + generation_kind, + weight=effective_cap, + diagnostics={ + "aliases": tuple(str(alias) for alias in aliases_for_diagnostics), + "raw_caps": tuple(int(cap) for cap in caps), + "merge_rule": "min_same_endpoint", + }, + ) + + def _get_scheduling_model_aliases(self) -> list[str]: + get_aliases = getattr(self.config, "get_model_aliases", None) + if callable(get_aliases): + aliases = get_aliases() + else: + aliases = [] + if (alias := getattr(self.config, "model_alias", None)) is not None: + aliases.append(alias) + aliases.extend(getattr(self.config, "model_aliases", []) or []) + return list(dict.fromkeys(str(alias) for alias in aliases if alias)) + class ColumnGeneratorWithModel(ColumnGeneratorWithModelRegistry[TaskConfigT], ABC): @functools.cached_property diff --git a/packages/data-designer-engine/src/data_designer/engine/column_generators/generators/custom.py b/packages/data-designer-engine/src/data_designer/engine/column_generators/generators/custom.py index b4c863542..08c78120b 100644 --- a/packages/data-designer-engine/src/data_designer/engine/column_generators/generators/custom.py +++ b/packages/data-designer-engine/src/data_designer/engine/column_generators/generators/custom.py @@ -13,6 +13,7 @@ import data_designer.lazy_heavy_imports as lazy from data_designer.config.column_configs import CustomColumnConfig, GenerationStrategy +from data_designer.config.scheduling import SchedulingMetadata from data_designer.engine.column_generators.generators.base import ColumnGenerator from data_designer.engine.column_generators.utils.errors import CustomColumnGenerationError from data_designer.engine.models.errors import RETRYABLE_MODEL_ERRORS, ModelTimeoutError @@ -105,7 +106,7 @@ def generate(self, *args: Any, **kwargs: Any) -> tuple[Any, list]: except concurrent.futures.TimeoutError as exc: future.cancel() # Demoted to debug: the raised ModelTimeoutError already surfaces - # the timeout at the scheduler with full context, and the throttled + # the timeout at the scheduler with full context, and the request-admission # degraded-provider WARN is the user-facing signal under sustained # bridge timeouts. Per-event WARN was noise on top of those. logger.debug("Async model bridge timed out after %.0fs; coroutine cancelled", bridge_timeout) @@ -137,10 +138,18 @@ class CustomColumnGenerator(ColumnGenerator[CustomColumnConfig]): The models dict provides direct access to ModelFacade instances keyed by alias. """ - @property - def is_llm_bound(self) -> bool: - """Custom generators with model_aliases make LLM calls and need the handoff.""" - return bool(self.config.model_aliases) + def get_scheduling_metadata(self) -> SchedulingMetadata: + """Return custom-model metadata when the custom column declares model aliases.""" + if not self.config.model_aliases: + return SchedulingMetadata.local() + identity = "-".join(sorted(str(alias) for alias in self.config.model_aliases)) + return SchedulingMetadata.custom_model( + "custom_column", + identity or self.config.name, + "v1", + weight=max(1, len(self.config.model_aliases)), + diagnostics={"aliases": tuple(sorted(str(alias) for alias in self.config.model_aliases))}, + ) def get_generation_strategy(self) -> GenerationStrategy: """Return strategy based on config.""" diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py index 778501da1..2a9718b19 100644 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py @@ -5,8 +5,10 @@ import asyncio import contextlib +import hashlib import logging import time +import uuid from collections import defaultdict, deque from collections.abc import Coroutine from dataclasses import dataclass @@ -14,6 +16,14 @@ import data_designer.lazy_heavy_imports as lazy from data_designer.config.column_configs import GenerationStrategy +from data_designer.engine.capacity import ( + AsyncCapacityConfigured, + AsyncCapacityObservedMaxima, + AsyncCapacityPlan, + AsyncCapacityRuntimeSnapshot, + CapacityValue, + RowGroupAdmission, +) from data_designer.engine.context import current_row_group from data_designer.engine.dataset_builders.errors import DatasetGenerationError from data_designer.engine.dataset_builders.multi_column_configs import MultiColumnConfig @@ -24,19 +34,33 @@ from data_designer.engine.dataset_builders.utils.completion_tracker import CompletionTracker, FrontierDelta from data_designer.engine.dataset_builders.utils.fair_task_queue import ( FairTaskQueue, - TaskGroupKey, - TaskGroupSpec, ) from data_designer.engine.dataset_builders.utils.progress_tracker import ProgressTracker -from data_designer.engine.dataset_builders.utils.scheduling_hints import SchedulingHint, SchedulingHintResolver from data_designer.engine.dataset_builders.utils.skip_evaluator import should_skip_column_for_record from data_designer.engine.dataset_builders.utils.skip_tracker import ( apply_skip_to_record, strip_skip_metadata_from_records, ) from data_designer.engine.dataset_builders.utils.sticky_progress_bar import StickyProgressBar +from data_designer.engine.dataset_builders.utils.task_admission import ( + TaskAdmissionConfig, + TaskAdmissionController, + TaskAdmissionDenied, + TaskAdmissionLease, +) from data_designer.engine.dataset_builders.utils.task_model import SliceRef, Task, TaskTrace +from data_designer.engine.dataset_builders.utils.task_scheduling import ( + SchedulableTask, + TaskSchedulingResolver, + stable_task_id, +) from data_designer.engine.models.errors import RETRYABLE_MODEL_ERRORS +from data_designer.engine.observability import ( + RuntimeCorrelation, + SchedulerAdmissionEvent, + SchedulerAdmissionEventSink, + runtime_correlation_provider, +) if TYPE_CHECKING: from data_designer.engine.column_generators.generators.base import ColumnGenerator @@ -46,10 +70,8 @@ logger = logging.getLogger(__name__) DEFAULT_TASK_POOL_SIZE: int = 256 -# Global LLM wait-pool headroom sizes the memory-safety semaphore above provider capacity. -GLOBAL_LLM_WAIT_POOL_HEADROOM_MULTIPLIER: int = 2 -# Per-group admission backlog caps how many ready LLM tasks one fair-queue group can hold. -LLM_GROUP_ADMISSION_BACKLOG_MULTIPLIER: int = 2 +MODEL_TASK_ADMISSION_HEADROOM_MULTIPLIER: int = 2 +MODEL_GROUP_ADMISSION_BACKLOG_MULTIPLIER: int = 2 # Degraded-provider WARN: emit at most one warning per interval when the # rolling fraction of retryable errors exceeds the threshold. Distinct from @@ -60,21 +82,6 @@ DEGRADED_WARN_INTERVAL_S: float = 60.0 -class TrackingSemaphore(asyncio.Semaphore): - """``asyncio.Semaphore`` subclass that exposes available permits publicly.""" - - @property - def available_permits(self) -> int: - return self._value # type: ignore[attr-defined] - - def try_acquire(self) -> bool: - """Non-blocking acquire. Returns ``True`` if a permit was taken.""" - if self._value > 0: # type: ignore[attr-defined] - self._value -= 1 # type: ignore[attr-defined] - return True - return False - - @dataclass class _RowGroupState: """Lifecycle state for a single admitted row group.""" @@ -90,8 +97,7 @@ class _DispatchOutcome: """Result of one fair-dispatch pass over the persistent ready queue.""" dispatched: bool = False - submission_full: bool = False - group_blocked: bool = False + admission_blocked: bool = False class AsyncTaskScheduler: @@ -111,7 +117,8 @@ def __init__( *, max_concurrent_row_groups: int = 3, max_submitted_tasks: int = DEFAULT_TASK_POOL_SIZE, - max_llm_wait_tasks: int = DEFAULT_TASK_POOL_SIZE, + max_model_task_admission: int = DEFAULT_TASK_POOL_SIZE, + task_admission_config: TaskAdmissionConfig | None = None, salvage_max_rounds: int = 2, on_finalize_row_group: Callable[[int], None] | None = None, on_seeds_complete: Callable[[int, int], FrontierDelta | None] | None = None, @@ -127,6 +134,8 @@ def __init__( buffer_size: int = 0, progress_interval: float | None = None, progress_bar: bool = False, + scheduler_event_sink: SchedulerAdmissionEventSink | None = None, + run_id: str | None = None, ) -> None: self._generators = generators self._graph = graph @@ -135,22 +144,29 @@ def __init__( self._buffer_manager = buffer_manager self._rg_semaphore = asyncio.Semaphore(max_concurrent_row_groups) - self._submission_semaphore = TrackingSemaphore(max_submitted_tasks) - self._llm_wait_semaphore = TrackingSemaphore(max_llm_wait_tasks) - self._max_llm_wait_tasks = max_llm_wait_tasks - self._llm_bound_lookup = build_llm_bound_lookup(generators) - self._scheduling_hints = SchedulingHintResolver(generators) + self._task_scheduling = TaskSchedulingResolver( + generators, + model_group_limit_multiplier=MODEL_GROUP_ADMISSION_BACKLOG_MULTIPLIER, + model_group_limit_cap=max_model_task_admission, + ) + admission_config = task_admission_config or TaskAdmissionConfig( + submission_capacity=max_submitted_tasks, + resource_limits={"llm_wait": max_model_task_admission, "local": max_submitted_tasks}, + ) + self._task_admission = TaskAdmissionController(admission_config) + self._task_admission_config = admission_config self._fair_queue = FairTaskQueue() self._pending_pre_batch_ready: defaultdict[int, list[Task]] = defaultdict(list) self._pending_pre_batch_ready_tasks: set[Task] = set() - # Task group specs are derived from per-generator scheduling hints and flow identity. - self._task_group_spec_cache: dict[int, TaskGroupSpec] = {} self._dispatched: set[Task] = set() self._in_flight: set[Task] = set() self._worker_tasks: set[asyncio.Task] = set() self._wake_event = asyncio.Event() + self._run_id = run_id or f"run-{uuid.uuid4().hex}" + self._scheduler_event_sink = scheduler_event_sink + self._scheduler_event_sequence = 0 self._salvage_max_rounds = salvage_max_rounds self._on_finalize_row_group = on_finalize_row_group self._on_seeds_complete = on_seeds_complete @@ -202,7 +218,7 @@ def __init__( self._all_rgs_admitted = False # Degraded-provider WARN: separate window tracking retryable-vs-not for - # every outcome (success or failure), throttled to one log per interval. + # every outcome (success or failure), rate-limited to one log per interval. self._degraded_warn_rate = degraded_warn_rate self._degraded_warn_window = degraded_warn_window self._degraded_warn_interval_s = degraded_warn_interval_s @@ -227,6 +243,14 @@ def __init__( # Pre-compute row-group sizes for O(1) lookup self._rg_size_map: dict[int, int] = dict(row_groups) + self._max_concurrent_row_groups = max_concurrent_row_groups + self._max_submitted_tasks = max_submitted_tasks + self._max_model_task_admission = max_model_task_admission + self._num_records = num_records + self._buffer_size = buffer_size + self._observed_max_row_groups_in_flight = 0 + self._observed_max_task_leases_by_resource: dict[str, int] = {} + self._observed_max_queued_by_group: dict[str, int] = {} # Pre-compute seed columns (graph is static) self._seed_cols: tuple[str, ...] = tuple(c for c in graph.columns if not graph.get_upstream_columns(c)) @@ -300,6 +324,64 @@ def _spawn_worker(self, coro: Coroutine[Any, Any, None]) -> asyncio.Task: task.add_done_callback(self._worker_tasks.discard) return task + def _emit_scheduler_event( + self, + event_kind: str, + *, + task: Task | None = None, + lease: TaskAdmissionLease | None = None, + task_execution_id: str | None = None, + scheduler_resource_key: str | None = None, + reason_or_result: str | None = None, + diagnostics: dict[str, object] | None = None, + ) -> None: + if self._scheduler_event_sink is None: + return + self._scheduler_event_sequence += 1 + correlation = None + if task is not None: + group = lease.item.group if lease is not None else self._schedulable_task(task).group + identity_hash = hashlib.sha1("\0".join(group.key.identity).encode()).hexdigest()[:16] + correlation = RuntimeCorrelation( + run_id=self._run_id, + row_group=task.row_group, + task_column=task.column, + task_type=task.task_type, + scheduling_group_kind=group.key.kind, + scheduling_group_identity_hash=identity_hash, + task_execution_id=task_execution_id, + ) + try: + self._scheduler_event_sink.emit_scheduler_event( + SchedulerAdmissionEvent.capture( + event_kind, # type: ignore[arg-type] + sequence=self._scheduler_event_sequence, + correlation=correlation, + task_id=stable_task_id(task) if task is not None else None, + task_execution_id=task_execution_id, + task_lease_id=lease.lease_id if lease is not None else None, + scheduler_resource_key=scheduler_resource_key, + reason_or_result=reason_or_result, + snapshot=self.task_admission_snapshot(), + diagnostics=diagnostics or {}, + ) + ) + except Exception: + return + + def _record_observed_task_state(self) -> None: + self._observed_max_row_groups_in_flight = max(self._observed_max_row_groups_in_flight, len(self._rg_states)) + view = self._task_admission.view() + for resource, count in view.leased_resources.items(): + self._observed_max_task_leases_by_resource[resource] = max( + self._observed_max_task_leases_by_resource.get(resource, 0), + count, + ) + queue_view = self._fair_queue.view() + for group, count in queue_view.queued_by_group.items(): + label = f"{group.kind}:{'/'.join(group.identity)}" + self._observed_max_queued_by_group[label] = max(self._observed_max_queued_by_group.get(label, 0), count) + async def _cancel_workers(self) -> None: """Cancel all tracked worker tasks and wait for them to finish.""" for t in self._worker_tasks: @@ -321,16 +403,23 @@ def _enqueue_ready_task(self, task: Task) -> None: return if not self._tracker.is_frontier_task(task): return + self._emit_scheduler_event("dependency_ready", task=task) state = self._rg_states[task.row_group] - if self._on_seeds_complete is not None and not state.pre_batch_done: + if self._on_seeds_complete is not None and not state.pre_batch_done and task.column not in self._seed_cols: if task not in self._pending_pre_batch_ready_tasks: self._pending_pre_batch_ready[task.row_group].append(task) self._pending_pre_batch_ready_tasks.add(task) return - self._fair_queue.enqueue(task, self._task_group_spec(task)) + schedulable = self._schedulable_task(task) + accepted = self._fair_queue.enqueue((schedulable,)) + if accepted: + self._tracker.mark_enqueued(accepted) + self._emit_scheduler_event("ready_enqueued", task=task) + self._record_observed_task_state() + self._wake_event.set() def _discard_ready_task(self, task: Task) -> None: - self._fair_queue.discard(task) + self._fair_queue.discard(stable_task_id(task)) self._pending_pre_batch_ready_tasks.discard(task) def _flush_pre_batch_ready(self, row_group: int) -> None: @@ -345,70 +434,91 @@ def _drop_pending_ready_for_row_group(self, row_group: int) -> None: pending = self._pending_pre_batch_ready.pop(row_group, []) for task in pending: self._pending_pre_batch_ready_tasks.discard(task) - self._fair_queue.discard_where(lambda task: task.row_group == row_group) + self._fair_queue.discard_where(lambda item: item.payload.row_group == row_group) def _dispatch_queued_tasks(self) -> _DispatchOutcome: dispatched = False while self._fair_queue.has_queued_tasks: - if not self._submission_semaphore.try_acquire(): - return _DispatchOutcome(dispatched=dispatched, submission_full=True) - - selection = self._fair_queue.admit_next() + selection = self._fair_queue.select_next(lambda item, view: self._task_admission.is_eligible(item, view)) if selection is None: - self._submission_semaphore.release() - return _DispatchOutcome(dispatched=dispatched, group_blocked=True) + summary = self._task_admission.explain_blocked(self._fair_queue.view()) + if "group_cap" in summary.dominant_denial_reasons: + event_kind = "group_capped" + elif summary.dominant_denial_reasons: + event_kind = "admission_blocked" + else: + event_kind = "queue_empty" + self._emit_scheduler_event( + event_kind, + diagnostics={ + "queued_count": summary.queued_count, + "reasons": dict(summary.dominant_denial_reasons), + }, + ) + return _DispatchOutcome(dispatched=dispatched, admission_blocked=True) + + self._emit_scheduler_event("selected", task=selection.item.payload) + decision = self._task_admission.try_acquire(selection.item, selection.queue_view) + if isinstance(decision, TaskAdmissionDenied): + self._emit_scheduler_event( + "admission_denied", + task=selection.item.payload, + reason_or_result=decision.reason, + diagnostics=dict(decision.diagnostics), + ) + return _DispatchOutcome(dispatched=dispatched, admission_blocked=True) + self._emit_scheduler_event("task_lease_acquired", task=selection.item.payload, lease=decision) + + committed = self._fair_queue.commit(selection) + if committed is None: + result = self._task_admission.release(decision) + self._emit_scheduler_event( + "stale_selection", + task=selection.item.payload, + lease=decision, + reason_or_result=result.reason, + ) + return _DispatchOutcome(dispatched=dispatched, admission_blocked=True) - self._dispatch_selected_task(selection.task) + self._dispatch_selected_task(committed, decision) dispatched = True + self._record_observed_task_state() + if dispatched: + self._emit_scheduler_event("queue_drained") return _DispatchOutcome(dispatched=dispatched) - def _dispatch_selected_task(self, task: Task) -> None: + def _dispatch_selected_task(self, item: SchedulableTask, lease: TaskAdmissionLease) -> None: + task = item.payload + task_execution_id = f"task-exec-{uuid.uuid4().hex}" self._dispatched.add(task) self._in_flight.add(task) if (s := self._rg_states.get(task.row_group)) is not None: s.in_flight_count += 1 - self._spawn_worker(self._execute_task(task)) - - def _task_group_spec(self, task: Task) -> TaskGroupSpec: - generator = self._generators[task.column] - generator_id = id(generator) - cached = self._task_group_spec_cache.get(generator_id) - if cached is not None: - return cached - - spec = self._task_group_spec_from_hint( - self._scheduling_hints.hint_for(generator), - self._task_flow_identity(task), - ) - self._task_group_spec_cache[generator_id] = spec - return spec - - def _task_group_spec_from_hint(self, hint: SchedulingHint, flow_identity: tuple[str, ...]) -> TaskGroupSpec: - if hint.group_kind == "local": - return TaskGroupSpec(key=TaskGroupKey(kind="local", identity=flow_identity)) - - if hint.group_kind == "custom_model": - identity = (*flow_identity, *hint.identity_suffix) - else: - identity = (*hint.identity_prefix, *flow_identity, *hint.identity_suffix) + try: + self._spawn_worker(self._execute_task(task, lease, task_execution_id)) + self._emit_scheduler_event("worker_spawned", task=task, lease=lease, task_execution_id=task_execution_id) + except Exception: + result = self._task_admission.release(lease) + self._emit_scheduler_event( + "worker_spawn_failed", + task=task, + lease=lease, + task_execution_id=task_execution_id, + reason_or_result=result.reason, + ) + self._in_flight.discard(task) + raise - weight = max(1, hint.weight) - return TaskGroupSpec( - key=TaskGroupKey(kind=hint.group_kind, identity=identity), - weight=float(weight), - admitted_limit=self._llm_group_admitted_limit(weight), - ) + def _schedulable_task(self, task: Task) -> SchedulableTask: + return self._task_scheduling.schedulable_task(task, self._task_flow_identity(task)) def _task_flow_identity(self, task: Task) -> tuple[str, ...]: generator = self._generators[task.column] output_columns = self._gen_instance_to_columns.get(id(generator), [task.column]) return tuple(output_columns) - def _llm_group_admitted_limit(self, weight: int) -> int: - return max(1, min(self._max_llm_wait_tasks, LLM_GROUP_ADMISSION_BACKLOG_MULTIPLIER * weight)) - async def _admit_row_groups(self) -> None: """Admit row groups as semaphore slots become available.""" for rg_id, rg_size in self._row_groups: @@ -508,15 +618,16 @@ async def _main_dispatch_loop( if all_done: break + pending_pre_batch = has_pre_batch and any( + state.seeds_dispatched and not state.pre_batch_done for state in self._rg_states.values() + ) if not self._fair_queue.has_queued_tasks and not self._in_flight: - if self._all_rgs_admitted: + if self._all_rgs_admitted and not pending_pre_batch: break + if pending_pre_batch: + continue - if ( - not self._fair_queue.has_queued_tasks - or dispatch_outcome.submission_full - or dispatch_outcome.group_blocked - ): + if not self._fair_queue.has_queued_tasks or dispatch_outcome.admission_blocked: await self._wake_event.wait() async def _salvage_rounds( @@ -549,34 +660,10 @@ async def _salvage_rounds( self._dispatched.discard( Task(column=sibling, row_group=task.row_group, row_index=None, task_type="batch") ) - # Acquire stateful lock (mirrors _dispatch_seeds) so - # _execute_seed_task can safely release it in finally. - if gid in self._stateful_locks: - await self._stateful_locks[gid].acquire() - await self._submission_semaphore.acquire() - self._dispatched.add(task) - # Re-register batch alias to mirror _dispatch_seeds and prevent - # duplicate dispatch if the frontier contains a stale batch task. - self._dispatched.add( - Task(column=task.column, row_group=task.row_group, row_index=None, task_type="batch") - ) - # Re-mark sibling columns as dispatched to mirror _dispatch_seeds - # and prevent _drain_frontier from re-dispatching them. - for sibling in self._gen_instance_to_columns.get(gid, []): - if sibling != task.column: - self._dispatched.add( - Task(column=sibling, row_group=task.row_group, row_index=None, task_type="from_scratch") - ) - self._dispatched.add( - Task(column=sibling, row_group=task.row_group, row_index=None, task_type="batch") - ) - self._in_flight.add(task) - if (s := self._rg_states.get(task.row_group)) is not None: - s.in_flight_count += 1 - self._spawn_worker(self._execute_seed_task(task, gid)) + self._apply_frontier_delta(self._tracker.add_ready_tasks((task,))) else: self._dispatched.discard(task) - self._enqueue_ready_task(task) + self._apply_frontier_delta(self._tracker.add_ready_tasks((task,))) # Drain: dispatch frontier tasks and any newly-ready downstream tasks # until nothing remains in-flight or in the frontier. await self._drain_frontier(seed_cols, has_pre_batch) @@ -803,7 +890,7 @@ def _check_error_rate(self, *, success: bool) -> None: self._early_shutdown = True def _record_retryable_outcome(self, *, retryable: bool) -> None: - """Track retryable-error rate and emit a throttled WARN under provider degradation. + """Track retryable-error rate and emit a rate-limited WARN under provider degradation. Distinct from ``_check_error_rate``: every LLM-bound task outcome (success or failure) feeds this window so the rate reflects the provider's overall @@ -832,7 +919,7 @@ def _record_retryable_outcome(self, *, retryable: bool) -> None: ) async def _dispatch_seeds(self, rg_id: int, rg_size: int) -> None: - """Dispatch from_scratch tasks for a row group.""" + """Make from-scratch/root tasks ready for a row group.""" self._rg_states[rg_id].seeds_dispatched = True seed_cols = self._seed_cols if not seed_cols: @@ -841,6 +928,7 @@ async def _dispatch_seeds(self, rg_id: int, rg_size: int) -> None: width = len(str(num_rgs)) logger.info(f"🚀 ({rg_id + 1:0{width}d}/{num_rgs}) Dispatching with {rg_size} records") seen_instances: set[int] = set() + root_columns: list[str] = [] for col in seed_cols: gen = self._generators[col] @@ -848,64 +936,38 @@ async def _dispatch_seeds(self, rg_id: int, rg_size: int) -> None: if gid in seen_instances: continue seen_instances.add(gid) + root_columns.append(col) - task = Task(column=col, row_group=rg_id, row_index=None, task_type="from_scratch") - # Also mark the "batch" variant as dispatched to prevent duplicate - # scheduling for this column. - batch_alias = Task(column=col, row_group=rg_id, row_index=None, task_type="batch") - if task in self._dispatched or batch_alias in self._dispatched: - continue + self._apply_frontier_delta(self._tracker.add_root_tasks(rg_id, rg_size, columns=tuple(root_columns))) - # Seeds bypass fair-queue admission while row groups are being admitted; - # direct dispatch preserves stateful lock ordering across row groups. - # Acquire stateful lock *before* submission semaphore to preserve - # row-group ordering. Held until generation completes (_execute_seed_task). - if gid in self._stateful_locks: - await self._stateful_locks[gid].acquire() - - await self._submission_semaphore.acquire() - self._dispatched.add(task) - self._dispatched.add(batch_alias) - # Also mark all sibling output columns as dispatched (multi-column dedup) - for sibling_col in self._gen_instance_to_columns.get(gid, []): - if sibling_col != col: - self._dispatched.add( - Task(column=sibling_col, row_group=rg_id, row_index=None, task_type="from_scratch") - ) - self._dispatched.add(Task(column=sibling_col, row_group=rg_id, row_index=None, task_type="batch")) - self._in_flight.add(task) - if (s := self._rg_states.get(task.row_group)) is not None: - s.in_flight_count += 1 - self._spawn_worker(self._execute_seed_task(task, gid)) - - async def _execute_seed_task(self, task: Task, generator_id: int) -> None: - """Execute a from_scratch task and release stateful lock if held.""" - try: - await self._execute_task_inner(task) - finally: - if generator_id in self._stateful_locks: - self._stateful_locks[generator_id].release() - - async def _execute_task(self, task: Task) -> None: + async def _execute_task(self, task: Task, lease: TaskAdmissionLease, task_execution_id: str) -> None: """Execute a single task (cell or batch).""" - await self._execute_task_inner(task) - - async def _execute_task_inner(self, task: Task) -> None: - """Core task execution logic. + await self._execute_task_inner(task, lease, task_execution_id) - For LLM-bound tasks, uses a one-way semaphore handoff: acquires the - LLM-wait slot while still holding the submission slot, then releases - the submission slot (never reacquired). This prevents cross-key - starvation while bounding live coroutines. - """ + async def _execute_task_inner(self, task: Task, lease: TaskAdmissionLease, task_execution_id: str) -> None: + """Core task execution logic.""" num_rgs = len(self._row_groups) token = current_row_group.set((task.row_group, num_rgs)) + group = lease.item.group + identity_hash = hashlib.sha1("\0".join(group.key.identity).encode()).hexdigest()[:16] + correlation_token = runtime_correlation_provider.set( + RuntimeCorrelation( + run_id=self._run_id, + row_group=task.row_group, + task_column=task.column, + task_type=task.task_type, + scheduling_group_kind=group.key.kind, + scheduling_group_identity_hash=identity_hash, + task_execution_id=task_execution_id, + ) + ) try: - await self._execute_task_inner_impl(task) + await self._execute_task_inner_impl(task, lease, task_execution_id) finally: + runtime_correlation_provider.reset(correlation_token) current_row_group.reset(token) - async def _execute_task_inner_impl(self, task: Task) -> None: + async def _execute_task_inner_impl(self, task: Task, lease: TaskAdmissionLease, task_execution_id: str) -> None: trace: TaskTrace | None = None if self._trace: trace = TaskTrace.from_task(task) @@ -914,12 +976,12 @@ async def _execute_task_inner_impl(self, task: Task) -> None: generator = self._generators[task.column] output_cols = self._gen_instance_to_columns.get(id(generator), [task.column]) retryable = False + cancelled = False # When True, skip removing from _dispatched so the task isn't re-dispatched # from the frontier (it was never completed, so it stays in the frontier). skipped = False - is_llm = self._llm_bound_lookup.get(task.column, False) - holds_submission = True - holds_llm_wait = False + uses_model_stage_resource = "llm_wait" in lease.resources + stateful_lock_acquired = False try: # Skip tasks whose row group was already checkpointed (can happen @@ -929,11 +991,9 @@ async def _execute_task_inner_impl(self, task: Task) -> None: skipped = True return - if is_llm: - await self._llm_wait_semaphore.acquire() - holds_llm_wait = True - self._submission_semaphore.release() - holds_submission = False + if task.task_type == "from_scratch" and id(generator) in self._stateful_locks: + await self._stateful_locks[id(generator)].acquire() + stateful_lock_acquired = True if self._trace and trace: trace.slot_acquired_at = time.perf_counter() @@ -962,7 +1022,7 @@ async def _execute_task_inner_impl(self, task: Task) -> None: # window from LLM-bound tasks so a healthy non-model task mix # (samplers, expressions, non-LLM customs) doesn't dilute the # rate and silence the WARN under genuine provider stress. - if is_llm: + if uses_model_stage_resource: self._record_retryable_outcome(retryable=False) if self._reporter: if cell_skipped: @@ -972,6 +1032,13 @@ async def _execute_task_inner_impl(self, task: Task) -> None: if self._trace and trace: trace.status = "ok" + except asyncio.CancelledError: + cancelled = True + if self._trace and trace: + trace.status = "cancelled" + self._emit_scheduler_event("cancelled", task=task, lease=lease, task_execution_id=task_execution_id) + raise + except Exception as exc: retryable = self._is_retryable(exc) # Only non-retryable errors (auth, schema, code bugs) count toward @@ -980,7 +1047,7 @@ async def _execute_task_inner_impl(self, task: Task) -> None: # and would otherwise trip the gate even when salvage could recover. if not retryable: self._check_error_rate(success=False) - if is_llm: + if uses_model_stage_resource: self._record_retryable_outcome(retryable=retryable) if not retryable and self._reporter: self._reporter.record_failure(task.column) @@ -990,6 +1057,9 @@ async def _execute_task_inner_impl(self, task: Task) -> None: if retryable: self._deferred.append(task) + self._emit_scheduler_event( + "retry_deferred", task=task, lease=lease, task_execution_id=task_execution_id + ) else: # Capture the first non-retryable error for the interface to surface # as the root cause when the run produces 0 records (e.g. deterministic @@ -1006,22 +1076,51 @@ async def _execute_task_inner_impl(self, task: Task) -> None: logger.warning( f"Non-retryable failure on {task.column}[rg={task.row_group}, row={task.row_index}]: {exc}" ) + self._emit_scheduler_event( + "non_retryable_dropped", + task=task, + lease=lease, + task_execution_id=task_execution_id, + diagnostics={"error_type": type(exc).__name__}, + ) finally: if self._trace and trace: trace.completed_at = time.perf_counter() self.traces.append(trace) - self._fair_queue.release(task) + self._tracker.mark_complete(task) + if not cancelled: + self._emit_scheduler_event( + "task_completed", + task=task, + lease=lease, + task_execution_id=task_execution_id, + ) self._in_flight.discard(task) if (s := self._rg_states.get(task.row_group)) is not None: s.in_flight_count = max(0, s.in_flight_count - 1) if not retryable and not skipped: self._dispatched.discard(task) - if holds_llm_wait: - self._llm_wait_semaphore.release() - if holds_submission: - self._submission_semaphore.release() + if stateful_lock_acquired: + self._stateful_locks[id(generator)].release() + release_result = self._task_admission.release(lease) + self._emit_scheduler_event( + "task_lease_released", + task=task, + lease=lease, + task_execution_id=task_execution_id, + reason_or_result=release_result.reason, + ) + if not release_result.released: + self._emit_scheduler_event( + "release_diagnostic", + task=task, + lease=lease, + task_execution_id=task_execution_id, + reason_or_result=release_result.reason, + ) + self._record_observed_task_state() self._wake_event.set() async def _run_from_scratch(self, task: Task, generator: ColumnGenerator) -> Any: @@ -1176,18 +1275,64 @@ def _get_rg_size(self, row_group: int) -> int: except KeyError: raise ValueError(f"Unknown row group: {row_group}") from None - def get_semaphore_permits(self) -> tuple[int, int]: - """Return ``(submission_available, llm_wait_available)`` for diagnostics.""" - return ( - self._submission_semaphore.available_permits, - self._llm_wait_semaphore.available_permits, + def task_admission_snapshot(self) -> object: + """Return the current scheduler task-admission snapshot for diagnostics.""" + return self._task_admission.view() + + def capacity_plan(self) -> AsyncCapacityPlan: + """Return the scheduler-side async capacity explanation for this run.""" + task_view = self._task_admission.view() + return AsyncCapacityPlan( + configured=AsyncCapacityConfigured( + buffer_size=CapacityValue(value=self._buffer_size, source="run_config"), + row_group_admission=RowGroupAdmission( + row_group_concurrency=CapacityValue( + value=self._max_concurrent_row_groups, + source="dataset_builder", + ), + observed_in_flight=len(self._rg_states), + ), + submission_capacity=CapacityValue(value=self._max_submitted_tasks, source="dataset_builder"), + task_resource_limits=CapacityValue( + value=dict(self._task_admission_config.resource_limits), + source="engine_internal_config", + ), + request_resources=CapacityValue( + value=(), + source="runtime_snapshot", + missing_reason="request admission resources are reported by the model registry request controller", + ), + provider_model_static_caps=CapacityValue( + value={}, + source="runtime_snapshot", + missing_reason="request admission caps are reported by the model registry request controller", + ), + request_domain_initial_limits=CapacityValue( + value={}, + source="runtime_snapshot", + missing_reason="request admission limits are reported by the model registry request controller", + ), + request_admission_config=CapacityValue( + value=None, + source="runtime_snapshot", + missing_reason="request admission config is owned by the model registry request controller", + ), + transport_pool_limits=CapacityValue( + value={}, + source="adapter_config", + missing_reason="transport pool utilization is adapter-specific", + ), + ), + runtime_snapshot=AsyncCapacityRuntimeSnapshot(), + observed_maxima=AsyncCapacityObservedMaxima( + row_groups_in_flight=self._observed_max_row_groups_in_flight, + queued_tasks_by_group=dict(self._observed_max_queued_by_group), + task_leases_by_resource=dict(self._observed_max_task_leases_by_resource or task_view.leased_resources), + transport_pool_utilization=None, + ), ) @staticmethod def _is_retryable(exc: Exception) -> bool: """Classify whether an exception is retryable.""" return isinstance(exc, RETRYABLE_MODEL_ERRORS) - - -def build_llm_bound_lookup(generators: dict[str, ColumnGenerator]) -> dict[str, bool]: - return {col: gen.is_llm_bound for col, gen in generators.items()} diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/dataset_builder.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/dataset_builder.py index b820c95aa..7a20818e6 100644 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/dataset_builder.py +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/dataset_builder.py @@ -85,7 +85,7 @@ from data_designer.engine.dataset_builders.async_scheduler import ( DEFAULT_TASK_POOL_SIZE, - GLOBAL_LLM_WAIT_POOL_HEADROOM_MULTIPLIER, + MODEL_TASK_ADMISSION_HEADROOM_MULTIPLIER, AsyncTaskScheduler, ) from data_designer.engine.dataset_builders.utils.async_concurrency import ( @@ -1015,9 +1015,9 @@ def on_before_checkpoint(rg_id: int, rg_size: int) -> None: df = self._processor_runner.run_post_batch(df, current_batch_number=rg_id, strict_row_count=True) buffer_manager.replace_dataframe(rg_id, df) - # Coarse upper bound: sums all registered aliases, not just those used - # in this build. Oversizing is harmless - ThrottleManager enforces - # the real per-key limit; the semaphore is a memory-safety cap. + # Coarse upper bound used only for scheduler task-stage model admission. + # Concrete provider/model request capacity is enforced by request admission + # at the model-call boundary. aggregate = self._resource_provider.model_registry.get_aggregate_max_parallel_requests() scheduler = AsyncTaskScheduler( @@ -1027,7 +1027,7 @@ def on_before_checkpoint(rg_id: int, rg_size: int) -> None: row_groups=row_groups, buffer_manager=buffer_manager, max_submitted_tasks=DEFAULT_TASK_POOL_SIZE, - max_llm_wait_tasks=max(DEFAULT_TASK_POOL_SIZE, GLOBAL_LLM_WAIT_POOL_HEADROOM_MULTIPLIER * aggregate), + max_model_task_admission=max(DEFAULT_TASK_POOL_SIZE, MODEL_TASK_ADMISSION_HEADROOM_MULTIPLIER * aggregate), on_finalize_row_group=on_finalize_row_group, on_seeds_complete=( on_seeds_complete if self._processor_runner.has_processors_for(ProcessorStage.PRE_BATCH) else None diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/completion_tracker.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/completion_tracker.py index 2d35ec0be..65a8b431c 100644 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/completion_tracker.py +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/completion_tracker.py @@ -147,14 +147,32 @@ def is_row_group_complete( return False return True - def get_ready_tasks(self, dispatched: set[Task], admitted_rgs: set[int] | None = None) -> list[Task]: - """Return all currently dispatchable tasks from the frontier. + def ready_frontier(self) -> tuple[Task, ...]: + """Return dependency-ready tasks not yet acknowledged as enqueued.""" + return tuple(self._frontier) - Excludes already-dispatched/in-flight tasks and tasks for row groups - not yet admitted (if ``admitted_rgs`` is provided). - """ + def mark_enqueued(self, task_ids: set[str] | list[str] | tuple[str, ...]) -> None: + """Acknowledge tasks accepted by the ready queue.""" + wanted = set(task_ids) + self._frontier = {task for task in self._frontier if _stable_task_id(task) not in wanted} + + def mark_complete(self, task: Task) -> None: + """Compatibility hook for scheduler terminal accounting.""" + + def add_ready_tasks(self, tasks: list[Task] | tuple[Task, ...]) -> FrontierDelta: + """Add ready tasks to the frontier idempotently.""" + added: list[Task] = [] + for task in tasks: + if self._add_frontier_task(task): + added.append(task) + return self._record_delta(added=added, removed=[]) + + def get_ready_tasks(self, dispatched: set[Task], admitted_rgs: set[int] | None = None) -> list[Task]: + """Return all currently dispatchable tasks from the frontier.""" return [ - t for t in self._frontier if t not in dispatched and (admitted_rgs is None or t.row_group in admitted_rgs) + t + for t in self.ready_frontier() + if t not in dispatched and (admitted_rgs is None or t.row_group in admitted_rgs) ] def is_frontier_task(self, task: Task) -> bool: @@ -171,13 +189,36 @@ def seed_frontier(self) -> None: if self._graph is None: raise RuntimeError("This method requires a graph to be set.") for col in self._graph.get_root_columns(): - strategy = self._graph.get_strategy(col) for rg_id, rg_size in self._row_group_sizes.items(): - if strategy == GenerationStrategy.CELL_BY_CELL: - for ri in range(rg_size): - self._frontier.add(Task(column=col, row_group=rg_id, row_index=ri, task_type="cell")) - else: - self._frontier.add(Task(column=col, row_group=rg_id, row_index=None, task_type="batch")) + self.add_root_tasks(rg_id, rg_size, columns=(col,)) + + def add_root_tasks( + self, + row_group: int, + row_group_size: int, + *, + columns: tuple[str, ...] | None = None, + ) -> FrontierDelta: + """Add root/from-scratch tasks for one admitted row group.""" + if self._graph is None: + raise RuntimeError("This method requires a graph to be set.") + expected = self._validate_row_group(row_group) + if expected is not None and expected != row_group_size: + raise ValueError(f"Row-group size mismatch for rg={row_group}: got {row_group_size}, expected {expected}") + root_columns = columns or tuple(self._graph.get_root_columns()) + added: list[Task] = [] + for col in root_columns: + strategy = self._graph.get_strategy(col) + if strategy == GenerationStrategy.CELL_BY_CELL: + for ri in range(row_group_size): + task = Task(column=col, row_group=row_group, row_index=ri, task_type="cell") + if self._add_frontier_task(task): + added.append(task) + else: + task = Task(column=col, row_group=row_group, row_index=None, task_type="from_scratch") + if self._add_frontier_task(task): + added.append(task) + return self._record_delta(added=added, removed=[]) def _record_delta(self, *, added: list[Task], removed: list[Task]) -> FrontierDelta: return FrontierDelta(added=tuple(added), removed=tuple(removed)) @@ -301,3 +342,10 @@ def _validate_row_group(self, row_group: int) -> int | None: known = sorted(self._row_group_sizes) raise ValueError(f"Unknown row_group {row_group}. Known row_groups: {known}") return expected + + +def _stable_task_id(task: Task) -> str: + raw = f"{task.column}\0{task.row_group}\0{task.row_index}\0{task.task_type}" + import hashlib + + return f"task-{hashlib.sha1(raw.encode()).hexdigest()[:16]}" diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/fair_task_queue.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/fair_task_queue.py index 32301b767..063b770e3 100644 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/fair_task_queue.py +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/fair_task_queue.py @@ -4,125 +4,170 @@ from __future__ import annotations import heapq -from collections import deque -from collections.abc import Callable +from collections import Counter, defaultdict, deque +from collections.abc import Callable, Iterable, Mapping from dataclasses import dataclass -from typing import Literal -from data_designer.engine.dataset_builders.utils.task_model import Task - - -@dataclass(frozen=True, order=True) -class TaskGroupKey: - """Stable identity for a stream of related scheduler tasks.""" - - kind: Literal["model", "custom_model", "local"] - identity: tuple[str, ...] +from data_designer.engine.dataset_builders.utils.task_scheduling import ( + SchedulableTask, + SchedulerResourceKey, + TaskGroupKey, + TaskGroupSpec, +) @dataclass(frozen=True) -class TaskGroupSpec: - """Scheduling metadata for a task group.""" +class QueueView: + """Read-only queue facts supplied to task admission policies.""" - key: TaskGroupKey - weight: float = 1.0 - admitted_limit: int | None = None + queued_total: int + queued_by_group: Mapping[TaskGroupKey, int] + queued_resource_demand_by_group: Mapping[TaskGroupKey, Mapping[SchedulerResourceKey, int]] + first_candidate_resources_by_group: Mapping[TaskGroupKey, Mapping[SchedulerResourceKey, int]] + first_candidate_group_specs_by_group: Mapping[TaskGroupKey, TaskGroupSpec] + queued_peer_demand_by_resource: Mapping[SchedulerResourceKey, int] @dataclass(frozen=True) -class TaskSelection: - """A task selected for dispatch with the group metadata used to choose it.""" +class QueueSelection: + """Non-mutating fair-queue selection returned to the scheduler.""" - task: Task - group: TaskGroupSpec + item: SchedulableTask + queue_view: QueueView + sequence_version: int class FairTaskQueue: - """Virtual-time fair queue with peer-sensitive per-group FIFO admission limits.""" + """Virtual-time fair queue that owns ready membership and ordering only.""" def __init__(self) -> None: - self._queues: dict[TaskGroupKey, deque[Task]] = {} - self._queued: set[Task] = set() - self._task_groups: dict[Task, TaskGroupKey] = {} + self._queues: dict[TaskGroupKey, deque[SchedulableTask]] = {} + self._queued: dict[str, SchedulableTask] = {} + self._task_groups: dict[str, TaskGroupKey] = {} self._group_specs: dict[TaskGroupKey, TaskGroupSpec] = {} self._group_finish: dict[TaskGroupKey, float] = {} - self._admitted_by_group: dict[TaskGroupKey, int] = {} - self._admitted_task_groups: dict[Task, TaskGroupKey] = {} self._heap: list[tuple[float, int, TaskGroupKey]] = [] self._active_heap_keys: set[TaskGroupKey] = set() + self._active_heap_entries: dict[TaskGroupKey, tuple[float, int]] = {} self._sequence = 0 + self._sequence_version = 0 self._virtual_time = 0.0 @property def has_queued_tasks(self) -> bool: return bool(self._queued) - def enqueue(self, task: Task, group: TaskGroupSpec) -> None: - """Add one ready task to its fair scheduling group.""" - self._group_specs[group.key] = group - if task in self._queued: - return - queue = self._queues.setdefault(group.key, deque()) - queue.append(task) - self._queued.add(task) - self._task_groups[task] = group.key - self._activate_group(group.key) - - def discard(self, task: Task) -> None: + def enqueue(self, items: Iterable[SchedulableTask]) -> tuple[str, ...]: + """Add ready tasks idempotently and return newly accepted task ids.""" + accepted: list[str] = [] + for item in items: + if item.task_id in self._queued: + continue + self._group_specs[item.group.key] = item.group + queue = self._queues.setdefault(item.group.key, deque()) + queue.append(item) + self._queued[item.task_id] = item + self._task_groups[item.task_id] = item.group.key + self._activate_group(item.group.key) + accepted.append(item.task_id) + if accepted: + self._sequence_version += 1 + return tuple(accepted) + + def discard(self, task_id: str) -> None: """Remove a queued task lazily if it is no longer dispatchable.""" - self._queued.discard(task) - self._task_groups.pop(task, None) + if task_id in self._queued: + self._sequence_version += 1 + self._queued.pop(task_id, None) + self._task_groups.pop(task_id, None) - def discard_where(self, predicate: Callable[[Task], bool]) -> None: + def discard_where(self, predicate: Callable[[SchedulableTask], bool]) -> None: """Remove queued tasks matching a predicate.""" - for task in tuple(self._queued): - if predicate(task): - self.discard(task) - - def admit_next(self) -> TaskSelection | None: - """Admit the next eligible task, or ``None`` if no queued group can run.""" - blocked: list[TaskGroupKey] = [] - try: - while self._heap: - finish, _, key = heapq.heappop(self._heap) - self._active_heap_keys.discard(key) - self._purge_queue_head(key) - queue = self._queues.get(key) - if not queue: - continue - if not self._can_admit_group(key): - blocked.append(key) - continue - - task = queue.popleft() - self._queued.discard(task) - self._task_groups.pop(task, None) - self._admitted_task_groups[task] = key - self._admitted_by_group[key] = self._admitted_by_group.get(key, 0) + 1 - - group = self._group_specs[key] - self._virtual_time = max(self._virtual_time, finish) - self._group_finish[key] = self._virtual_time + (1.0 / max(group.weight, 1.0)) - self._purge_queue_head(key) - if queue: - self._activate_group(key) - return TaskSelection(task=task, group=group) + for task_id, item in tuple(self._queued.items()): + if predicate(item): + self.discard(task_id) + + def select_next(self, is_eligible: Callable[[SchedulableTask, QueueView], bool]) -> QueueSelection | None: + """Return the next eligible task without mutating queue state.""" + view = self.view() + blocked: list[tuple[float, int, TaskGroupKey]] = [] + heap_copy = list(self._heap) + heapq.heapify(heap_copy) + active_seen: set[TaskGroupKey] = set() + while heap_copy: + finish, sequence, key = heapq.heappop(heap_copy) + if key in active_seen: + continue + if self._active_heap_entries.get(key) != (finish, sequence): + continue + active_seen.add(key) + item = self._first_valid_item(key) + if item is None: + continue + if not is_eligible(item, view): + blocked.append((finish, sequence, key)) + continue + return QueueSelection(item=item, queue_view=view, sequence_version=self._sequence_version) + return None + + def commit(self, selection: QueueSelection) -> SchedulableTask | None: + """Remove a previously selected task and advance fair-queue state.""" + if selection.sequence_version != self._sequence_version: return None - finally: - for key in blocked: - self._activate_group(key) - - def release(self, task: Task) -> None: - """Release one previously admitted task from its group limit.""" - key = self._admitted_task_groups.pop(task, None) - if key is None: - return - admitted = self._admitted_by_group.get(key, 0) - if admitted <= 1: - self._admitted_by_group.pop(key, None) - else: - self._admitted_by_group[key] = admitted - 1 - self._activate_group(key) + item = selection.item + key = self._task_groups.get(item.task_id) + if key is None or key != item.group.key: + return None + queue = self._queues.get(key) + if queue is None: + return None + self._purge_queue_head(key) + if not queue or queue[0].task_id != item.task_id: + return None + + queue.popleft() + self._queued.pop(item.task_id, None) + self._task_groups.pop(item.task_id, None) + self._active_heap_keys.discard(key) + self._active_heap_entries.pop(key, None) + group = self._group_specs[key] + finish = self._group_finish.get(key, self._virtual_time) + self._virtual_time = max(self._virtual_time, finish) + self._group_finish[key] = self._virtual_time + (1.0 / max(group.weight, 1.0)) + self._sequence_version += 1 + self._purge_queue_head(key) + if queue: + self._activate_group(key) + return item + + def view(self) -> QueueView: + queued_by_group: Counter[TaskGroupKey] = Counter() + demand_by_group: dict[TaskGroupKey, dict[SchedulerResourceKey, int]] = defaultdict(lambda: defaultdict(int)) + first_by_group: dict[TaskGroupKey, Mapping[SchedulerResourceKey, int]] = {} + first_group_specs: dict[TaskGroupKey, TaskGroupSpec] = {} + demand_by_resource: Counter[SchedulerResourceKey] = Counter() + + for item in self._queued.values(): + key = item.group.key + queued_by_group[key] += 1 + for resource, amount in item.resource_request.amounts.items(): + demand_by_group[key][resource] += amount + demand_by_resource[resource] += amount + + for key, queue in self._queues.items(): + first = self._first_valid_item(key) + if first is not None: + first_by_group[key] = dict(first.resource_request.amounts) + first_group_specs[key] = first.group + + return QueueView( + queued_total=len(self._queued), + queued_by_group=dict(queued_by_group), + queued_resource_demand_by_group={key: dict(value) for key, value in demand_by_group.items()}, + first_candidate_resources_by_group=first_by_group, + first_candidate_group_specs_by_group=first_group_specs, + queued_peer_demand_by_resource=dict(demand_by_resource), + ) def _activate_group(self, key: TaskGroupKey) -> None: self._purge_queue_head(key) @@ -133,24 +178,23 @@ def _activate_group(self, key: TaskGroupKey) -> None: finish = self._group_finish.get(key, self._virtual_time) heapq.heappush(self._heap, (finish, self._sequence, key)) self._active_heap_keys.add(key) + self._active_heap_entries[key] = (finish, self._sequence) + + def _first_valid_item(self, key: TaskGroupKey) -> SchedulableTask | None: + queue = self._queues.get(key) + if queue is None: + return None + for item in queue: + if item.task_id in self._queued and self._task_groups.get(item.task_id) == key: + return item + return None def _purge_queue_head(self, key: TaskGroupKey) -> None: queue = self._queues.get(key) if queue is None: return while queue: - task = queue[0] - if task in self._queued and self._task_groups.get(task) == key: + item = queue[0] + if item.task_id in self._queued and self._task_groups.get(item.task_id) == key: break queue.popleft() - - def _can_admit_group(self, key: TaskGroupKey) -> bool: - group = self._group_specs[key] - if group.admitted_limit is None: - return True - if self._admitted_by_group.get(key, 0) < group.admitted_limit: - return True - return not self._has_queued_peer_group(key) - - def _has_queued_peer_group(self, key: TaskGroupKey) -> bool: - return any(queued_key != key for queued_key in self._task_groups.values()) diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/scheduling_hints.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/scheduling_hints.py deleted file mode 100644 index dea66eeda..000000000 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/scheduling_hints.py +++ /dev/null @@ -1,123 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -from __future__ import annotations - -import logging -from dataclasses import dataclass -from typing import TYPE_CHECKING, Any, Literal - -if TYPE_CHECKING: - from data_designer.engine.column_generators.generators.base import ColumnGenerator - -logger = logging.getLogger(__name__) - -SchedulingGroupKind = Literal["local", "model", "custom_model"] - - -@dataclass(frozen=True) -class SchedulingHint: - """Resolved task-scheduling metadata independent of graph flow identity.""" - - group_kind: SchedulingGroupKind - identity_prefix: tuple[str, ...] = () - identity_suffix: tuple[str, ...] = () - weight: int = 1 - - -class SchedulingHintResolver: - """Resolve generator/config/model metadata once for a scheduler run.""" - - def __init__(self, generators: dict[str, ColumnGenerator]) -> None: - self._hints_by_generator_id: dict[int, SchedulingHint] = {} - for column, generator in generators.items(): - generator_id = id(generator) - if generator_id not in self._hints_by_generator_id: - self._hints_by_generator_id[generator_id] = self._resolve_hint(column, generator) - - def hint_for(self, generator: ColumnGenerator) -> SchedulingHint: - return self._hints_by_generator_id[id(generator)] - - def _resolve_hint(self, column: str, generator: ColumnGenerator) -> SchedulingHint: - if not generator.is_llm_bound: - return SchedulingHint(group_kind="local") - - aliases = _model_aliases_for_generator(generator) - if not aliases: - return SchedulingHint(group_kind="model", identity_prefix=("unknown",), weight=1) - - model_parts: list[str] = [] - total_parallel = 0 - primary_alias = getattr(generator.config, "model_alias", None) - for alias in aliases: - try: - model_config = _get_model_config_for_alias(generator, alias) - provider_name = _get_model_provider_name_for_alias(generator, alias) - except Exception: - logger.debug( - "Falling back to custom-model scheduling group for column %r after failing to resolve " - "model alias %r from aliases %r.", - column, - alias, - aliases, - exc_info=True, - ) - return SchedulingHint( - group_kind="custom_model", - identity_suffix=tuple(sorted(aliases)), - weight=max(1, total_parallel), - ) - - max_parallel = getattr(model_config.inference_parameters, "max_parallel_requests", 1) - if not isinstance(max_parallel, int): - max_parallel = 1 - model_parts.extend( - ( - provider_name, - str(model_config.model), - str(model_config.generation_type), - alias, - ) - ) - total_parallel += max_parallel - - weight = max(1, total_parallel) - if len(aliases) == 1 and primary_alias == aliases[0]: - return SchedulingHint( - group_kind="model", - identity_prefix=tuple(model_parts[:3]), - weight=weight, - ) - - return SchedulingHint( - group_kind="custom_model", - identity_suffix=tuple(sorted(aliases)), - weight=weight, - ) - - -def _get_model_config_for_alias(generator: ColumnGenerator, alias: str) -> Any: - get_model_config = getattr(generator, "get_model_config", None) - if callable(get_model_config): - return get_model_config(model_alias=alias) - return generator.resource_provider.model_registry.get_model_config(model_alias=alias) - - -def _get_model_provider_name_for_alias(generator: ColumnGenerator, alias: str) -> str: - get_provider_name = getattr(generator, "get_model_provider_name", None) - if callable(get_provider_name): - return str(get_provider_name(model_alias=alias)) - provider = generator.resource_provider.model_registry.get_model_provider(model_alias=alias) - return str(provider.name) - - -def _model_aliases_for_generator(generator: ColumnGenerator) -> list[str]: - get_aliases = getattr(generator.config, "get_model_aliases", None) - if callable(get_aliases): - aliases = get_aliases() - else: - aliases = [] - if (alias := getattr(generator.config, "model_alias", None)) is not None: - aliases.append(alias) - aliases.extend(getattr(generator.config, "model_aliases", []) or []) - return list(dict.fromkeys(alias for alias in aliases if alias)) diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/task_admission.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/task_admission.py new file mode 100644 index 000000000..8d7c8c702 --- /dev/null +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/task_admission.py @@ -0,0 +1,416 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +import time +import uuid +from collections import Counter, defaultdict +from collections.abc import Mapping +from dataclasses import dataclass, field +from typing import Literal, Protocol + +from data_designer.engine.dataset_builders.utils.fair_task_queue import QueueView +from data_designer.engine.dataset_builders.utils.task_model import Task +from data_designer.engine.dataset_builders.utils.task_scheduling import ( + SchedulableTask, + SchedulerResourceKey, + SchedulerResourceRequest, + TaskGroupKey, +) + +TaskAdmissionDenyReason = Literal[ + "no_capacity", + "group_cap", + "borrow_debt", + "shutdown", + "policy_denial", +] + +ReleaseReason = Literal[ + "released", + "duplicate", + "stale_lease", + "wrong_controller_generation", + "unknown_lease", +] + + +@dataclass(frozen=True) +class TaskAdmissionConfig: + """Engine-internal scheduler task-stage admission configuration.""" + + submission_capacity: int = 256 + resource_limits: Mapping[SchedulerResourceKey, int] = field(default_factory=dict) + bounded_borrow: BoundedBorrowTaskAdmissionPolicyConfig | None = None + + def __post_init__(self) -> None: + if self.submission_capacity <= 0: + raise ValueError("submission_capacity must be positive.") + merged = {"submission": self.submission_capacity, **self.resource_limits} + for resource, limit in merged.items(): + if limit <= 0: + raise ValueError(f"Task admission limit for {resource!r} must be positive.") + object.__setattr__(self, "resource_limits", merged) + + +@dataclass(frozen=True) +class BoundedBorrowTaskAdmissionPolicyConfig: + """Engine-internal bounded-borrow policy configuration.""" + + borrow_ceiling_by_group_resource: Mapping[tuple[TaskGroupKey, SchedulerResourceKey], int] = field( + default_factory=dict + ) + default_borrow_ceiling: int = 0 + strict_share_rounding: Literal["floor", "ceil"] = "floor" + repay_on_withheld_peer_pressure: bool = True + + +@dataclass(frozen=True) +class TaskAdmissionView: + resource_limits: Mapping[SchedulerResourceKey, int] + resources_available: Mapping[SchedulerResourceKey, int] + leased_resources: Mapping[SchedulerResourceKey, int] + leased_resources_by_group: Mapping[TaskGroupKey, Mapping[SchedulerResourceKey, int]] + running_counts_by_group: Mapping[TaskGroupKey, int] + policy_debt_by_group_resource: Mapping[tuple[TaskGroupKey, SchedulerResourceKey], int] + + +@dataclass(frozen=True) +class TaskAdmissionPolicyDecision: + allowed: bool + reason: TaskAdmissionDenyReason | None = None + available_after: float | None = None + diagnostics: Mapping[str, object] = field(default_factory=dict) + + +@dataclass(frozen=True) +class PolicyStateDelta: + debt_changes: Mapping[tuple[TaskGroupKey, SchedulerResourceKey], int] = field(default_factory=dict) + diagnostic_counters: Mapping[str, int] = field(default_factory=dict) + + +@dataclass(frozen=True) +class TaskAdmissionLease: + lease_id: str + item: SchedulableTask + resources: Mapping[SchedulerResourceKey, int] + acquired_at: float + controller_generation: str + + +@dataclass(frozen=True) +class TaskAdmissionDenied: + item: SchedulableTask + reason: TaskAdmissionDenyReason + available_after: float | None = None + snapshot: TaskAdmissionView | None = None + diagnostics: Mapping[str, object] = field(default_factory=dict) + + +TaskAdmissionDecision = TaskAdmissionLease | TaskAdmissionDenied + + +@dataclass(frozen=True) +class ReleaseResult: + released: bool + reason: ReleaseReason + diagnostics: Mapping[str, object] = field(default_factory=dict) + + +@dataclass(frozen=True) +class TaskAdmissionBlockSummary: + queued_count: int + dominant_denial_reasons: Mapping[TaskAdmissionDenyReason, int] + available_after: float | None = None + diagnostics: Mapping[str, object] = field(default_factory=dict) + + +class TaskAdmissionPolicy(Protocol): + def evaluate( + self, + item: SchedulableTask, + queue_view: QueueView, + admission_view: TaskAdmissionView, + ) -> TaskAdmissionPolicyDecision: ... + + def on_acquire( + self, + lease: TaskAdmissionLease, + decision: TaskAdmissionPolicyDecision, + ) -> PolicyStateDelta: ... + + def on_release(self, lease: TaskAdmissionLease) -> PolicyStateDelta: ... + + +class StrictFairTaskAdmissionPolicy: + """Behavior-preserving policy that enforces per-group admitted caps.""" + + def evaluate( + self, + item: SchedulableTask, + queue_view: QueueView, + admission_view: TaskAdmissionView, + ) -> TaskAdmissionPolicyDecision: + if item.group.admitted_limit is None: + return TaskAdmissionPolicyDecision(allowed=True) + leased_count = admission_view.running_counts_by_group.get(item.group.key, 0) + if leased_count < item.group.admitted_limit: + return TaskAdmissionPolicyDecision(allowed=True) + if not _has_queued_peer_group(item.group.key, queue_view): + return TaskAdmissionPolicyDecision(allowed=True) + return TaskAdmissionPolicyDecision( + allowed=False, + reason="group_cap", + diagnostics={"admitted_limit": item.group.admitted_limit, "leased_count": leased_count}, + ) + + def on_acquire( + self, + lease: TaskAdmissionLease, + decision: TaskAdmissionPolicyDecision, + ) -> PolicyStateDelta: + return PolicyStateDelta() + + def on_release(self, lease: TaskAdmissionLease) -> PolicyStateDelta: + return PolicyStateDelta() + + +class BoundedBorrowTaskAdmissionPolicy(StrictFairTaskAdmissionPolicy): + """Strict policy with optional bounded borrow debt over peer pressure.""" + + def __init__(self, config: BoundedBorrowTaskAdmissionPolicyConfig) -> None: + self._config = config + + def evaluate( + self, + item: SchedulableTask, + queue_view: QueueView, + admission_view: TaskAdmissionView, + ) -> TaskAdmissionPolicyDecision: + limit = item.group.admitted_limit + if limit is None: + return TaskAdmissionPolicyDecision(allowed=True) + + leased_count = admission_view.running_counts_by_group.get(item.group.key, 0) + if leased_count < limit: + return TaskAdmissionPolicyDecision(allowed=True) + + if _has_queued_peer_group(item.group.key, queue_view): + for resource in item.resource_request.amounts: + debt_key = (item.group.key, resource) + debt = admission_view.policy_debt_by_group_resource.get(debt_key, 0) + if debt > 0: + return TaskAdmissionPolicyDecision( + allowed=False, + reason="borrow_debt", + diagnostics={"resource": resource, "debt": debt}, + ) + return TaskAdmissionPolicyDecision( + allowed=False, + reason="group_cap", + diagnostics={"admitted_limit": limit, "leased_count": leased_count}, + ) + + borrow_resources: list[tuple[SchedulerResourceKey, int]] = [] + for resource, amount in item.resource_request.amounts.items(): + debt_key = (item.group.key, resource) + debt = admission_view.policy_debt_by_group_resource.get(debt_key, 0) + ceiling = self._config.borrow_ceiling_by_group_resource.get( + debt_key, + self._config.default_borrow_ceiling, + ) + if debt + amount > ceiling: + return TaskAdmissionPolicyDecision( + allowed=False, + reason="borrow_debt", + diagnostics={"resource": resource, "debt": debt, "requested": amount, "ceiling": ceiling}, + ) + borrow_resources.append((resource, amount)) + return TaskAdmissionPolicyDecision(allowed=True, diagnostics={"borrow_resources": tuple(borrow_resources)}) + + def on_acquire( + self, + lease: TaskAdmissionLease, + decision: TaskAdmissionPolicyDecision, + ) -> PolicyStateDelta: + borrow_resources = decision.diagnostics.get("borrow_resources") + if borrow_resources: + changes = { + (lease.item.group.key, resource): amount + for resource, amount in borrow_resources + if isinstance(resource, str) and isinstance(amount, int) + } + return PolicyStateDelta(debt_changes=changes) + return PolicyStateDelta() + + def on_release(self, lease: TaskAdmissionLease) -> PolicyStateDelta: + if not self._config.repay_on_withheld_peer_pressure: + return PolicyStateDelta() + return PolicyStateDelta( + debt_changes={(lease.item.group.key, resource): -amount for resource, amount in lease.resources.items()} + ) + + +class TaskAdmissionController: + """Owns scheduler-level task leases and resource accounting.""" + + def __init__( + self, + config: TaskAdmissionConfig | None = None, + policy: TaskAdmissionPolicy | None = None, + ) -> None: + self._config = config or TaskAdmissionConfig() + self._generation = uuid.uuid4().hex + self._leases: dict[str, TaskAdmissionLease] = {} + self._released: set[str] = set() + self._leased_by_resource: Counter[SchedulerResourceKey] = Counter() + self._leased_by_group: dict[TaskGroupKey, Counter[SchedulerResourceKey]] = defaultdict(Counter) + self._running_by_group: Counter[TaskGroupKey] = Counter() + self._policy_debt: Counter[tuple[TaskGroupKey, SchedulerResourceKey]] = Counter() + self._release_diagnostics: Counter[str] = Counter() + if policy is not None: + self._policy = policy + elif self._config.bounded_borrow is not None: + self._policy = BoundedBorrowTaskAdmissionPolicy(self._config.bounded_borrow) + else: + self._policy = StrictFairTaskAdmissionPolicy() + + def is_eligible(self, item: SchedulableTask, queue_view: QueueView) -> bool: + return not isinstance(self.try_evaluate(item, queue_view), TaskAdmissionDenied) + + def try_evaluate( + self, item: SchedulableTask, queue_view: QueueView + ) -> TaskAdmissionPolicyDecision | TaskAdmissionDenied: + view = self.view() + missing = self._missing_resources(item, view) + if missing: + return TaskAdmissionDenied( + item=item, + reason="no_capacity", + snapshot=view, + diagnostics={"missing_resources": missing}, + ) + decision = self._policy.evaluate(item, queue_view, view) + if not decision.allowed: + return TaskAdmissionDenied( + item=item, + reason=decision.reason or "policy_denial", + available_after=decision.available_after, + snapshot=view, + diagnostics=decision.diagnostics, + ) + return decision + + def try_acquire(self, item: SchedulableTask, queue_view: QueueView) -> TaskAdmissionDecision: + evaluated = self.try_evaluate(item, queue_view) + if isinstance(evaluated, TaskAdmissionDenied): + return evaluated + lease = TaskAdmissionLease( + lease_id=uuid.uuid4().hex, + item=item, + resources=dict(item.resource_request.amounts), + acquired_at=time.monotonic(), + controller_generation=self._generation, + ) + for resource, amount in lease.resources.items(): + self._leased_by_resource[resource] += amount + self._leased_by_group[item.group.key][resource] += amount + self._running_by_group[item.group.key] += 1 + self._apply_delta(self._policy.on_acquire(lease, evaluated)) + self._leases[lease.lease_id] = lease + return lease + + def release(self, lease: TaskAdmissionLease) -> ReleaseResult: + if lease.controller_generation != self._generation: + self._release_diagnostics["wrong_controller_generation"] += 1 + return ReleaseResult(released=False, reason="wrong_controller_generation") + active = self._leases.pop(lease.lease_id, None) + if active is None: + reason: ReleaseReason = "duplicate" if lease.lease_id in self._released else "unknown_lease" + self._release_diagnostics[reason] += 1 + return ReleaseResult(released=False, reason=reason) + if active.item.task_id != lease.item.task_id: + self._leases[lease.lease_id] = active + self._release_diagnostics["stale_lease"] += 1 + return ReleaseResult(released=False, reason="stale_lease") + + self._released.add(lease.lease_id) + for resource, amount in active.resources.items(): + self._leased_by_resource[resource] = max(0, self._leased_by_resource[resource] - amount) + self._leased_by_group[active.item.group.key][resource] = max( + 0, + self._leased_by_group[active.item.group.key][resource] - amount, + ) + self._running_by_group[active.item.group.key] = max(0, self._running_by_group[active.item.group.key] - 1) + self._apply_delta(self._policy.on_release(active)) + return ReleaseResult(released=True, reason="released") + + def view(self) -> TaskAdmissionView: + limits = dict(self._config.resource_limits) + leased = {resource: count for resource, count in self._leased_by_resource.items() if count > 0} + available = { + resource: max(0, limit - self._leased_by_resource.get(resource, 0)) for resource, limit in limits.items() + } + return TaskAdmissionView( + resource_limits=limits, + resources_available=available, + leased_resources=leased, + leased_resources_by_group={ + group: {resource: count for resource, count in counts.items() if count > 0} + for group, counts in self._leased_by_group.items() + }, + running_counts_by_group={group: count for group, count in self._running_by_group.items() if count > 0}, + policy_debt_by_group_resource={key: count for key, count in self._policy_debt.items() if count > 0}, + ) + + def explain_blocked(self, queue_view: QueueView) -> TaskAdmissionBlockSummary: + reasons: Counter[TaskAdmissionDenyReason] = Counter() + available_after_values: list[float] = [] + view = self.view() + for group_key, resources in queue_view.first_candidate_resources_by_group.items(): + for resource, amount in resources.items(): + if view.resources_available.get(resource, 0) < amount: + reasons["no_capacity"] += 1 + break + else: + group = queue_view.first_candidate_group_specs_by_group.get(group_key) + if group is None: + continue + task = SchedulableTask( + task_id=f"blocked-{group_key.kind}-{'-'.join(group_key.identity)}", + payload=Task(column="", row_group=-1, row_index=None, task_type="batch"), + group=group, + resource_request=SchedulerResourceRequest(dict(resources)), + ) + decision = self._policy.evaluate(task, queue_view, view) + if not decision.allowed: + reasons[decision.reason or "policy_denial"] += 1 + if decision.available_after is not None: + available_after_values.append(decision.available_after) + return TaskAdmissionBlockSummary( + queued_count=queue_view.queued_total, + dominant_denial_reasons=dict(reasons), + available_after=min(available_after_values) if available_after_values else None, + diagnostics={"snapshot": self.view()}, + ) + + def _missing_resources( + self, + item: SchedulableTask, + view: TaskAdmissionView, + ) -> dict[SchedulerResourceKey, dict[str, int]]: + missing: dict[SchedulerResourceKey, dict[str, int]] = {} + for resource, amount in item.resource_request.amounts.items(): + available = view.resources_available.get(resource, 0) + if available < amount: + missing[resource] = {"requested": amount, "available": available} + return missing + + def _apply_delta(self, delta: PolicyStateDelta) -> None: + for key, change in delta.debt_changes.items(): + self._policy_debt[key] = max(0, self._policy_debt[key] + change) + + +def _has_queued_peer_group(group_key: TaskGroupKey, queue_view: QueueView) -> bool: + return any(key != group_key and count > 0 for key, count in queue_view.queued_by_group.items()) diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/task_scheduling.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/task_scheduling.py new file mode 100644 index 000000000..a0bb61d95 --- /dev/null +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/task_scheduling.py @@ -0,0 +1,150 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +import hashlib +from collections.abc import Mapping +from dataclasses import dataclass, field +from typing import TYPE_CHECKING, Literal + +from data_designer.config.scheduling import SchedulingMetadata, SchedulingMetadataError +from data_designer.engine.dataset_builders.utils.task_model import Task + +if TYPE_CHECKING: + from data_designer.engine.column_generators.generators.base import ColumnGenerator + +SchedulerResourceKey = Literal["submission", "llm_wait", "local"] + + +@dataclass(frozen=True, order=True) +class TaskGroupKey: + """Stable identity for a stream of related scheduler tasks.""" + + kind: Literal["model", "custom_model", "local"] + identity: tuple[str, ...] + + +@dataclass(frozen=True) +class TaskGroupSpec: + """Scheduler-internal task group metadata.""" + + key: TaskGroupKey + weight: float = 1.0 + admitted_limit: int | None = None + + +@dataclass(frozen=True) +class SchedulerResourceRequest: + """Scheduler task-stage resource request.""" + + amounts: Mapping[SchedulerResourceKey, int] = field(default_factory=lambda: {"submission": 1}) + + def __post_init__(self) -> None: + for resource, amount in self.amounts.items(): + if resource not in {"submission", "llm_wait", "local"}: + raise ValueError(f"Unknown scheduler resource key: {resource!r}") + if not isinstance(amount, int) or amount <= 0: + raise ValueError(f"Scheduler resource amount for {resource!r} must be a positive integer.") + + +@dataclass(frozen=True) +class ResolvedTaskScheduling: + """Scheduler inputs resolved from generator-facing metadata.""" + + group: TaskGroupSpec + resource_request: SchedulerResourceRequest + + +@dataclass(frozen=True) +class SchedulableTask: + """Ready task plus scheduler-owned grouping and resource request.""" + + task_id: str + payload: Task + group: TaskGroupSpec + resource_request: SchedulerResourceRequest + + +class TaskSchedulingResolver: + """Resolve generator metadata into scheduler-internal task inputs.""" + + def __init__( + self, + generators: Mapping[str, ColumnGenerator], + *, + model_group_limit_multiplier: int = 2, + model_group_limit_cap: int = 256, + ) -> None: + self._generators = generators + self._model_group_limit_multiplier = model_group_limit_multiplier + self._model_group_limit_cap = model_group_limit_cap + self._metadata_by_generator_id: dict[int, SchedulingMetadata] = {} + self._diagnostics: list[dict[str, object]] = [] + for generator in dict.fromkeys(generators.values()): + self._metadata_by_generator_id[id(generator)] = self._resolve_metadata(generator) + + @property + def diagnostics(self) -> tuple[dict[str, object], ...]: + return tuple(self._diagnostics) + + def scheduling_for_task(self, task: Task, flow_identity: tuple[str, ...]) -> ResolvedTaskScheduling: + generator = self._generators[task.column] + metadata = self._metadata_by_generator_id[id(generator)] + return self._resolved_from_metadata(metadata, flow_identity) + + def schedulable_task(self, task: Task, flow_identity: tuple[str, ...]) -> SchedulableTask: + resolved = self.scheduling_for_task(task, flow_identity) + return SchedulableTask( + task_id=stable_task_id(task), + payload=task, + group=resolved.group, + resource_request=resolved.resource_request, + ) + + def _resolve_metadata(self, generator: ColumnGenerator) -> SchedulingMetadata: + try: + return generator.get_scheduling_metadata() + except SchedulingMetadataError as exc: + if exc.fallback is None: + raise + self._diagnostics.append( + { + "code": exc.code, + "message": exc.message, + "fallback": exc.fallback.identity, + "diagnostics": exc.diagnostics, + } + ) + return exc.fallback + + def _resolved_from_metadata( + self, + metadata: SchedulingMetadata, + flow_identity: tuple[str, ...], + ) -> ResolvedTaskScheduling: + weight = max(1, metadata.weight) + if metadata.kind == "local": + key = TaskGroupKey(kind="local", identity=(*metadata.identity, *flow_identity)) + return ResolvedTaskScheduling( + group=TaskGroupSpec(key=key, weight=float(weight)), + resource_request=SchedulerResourceRequest({"submission": 1}), + ) + + identity = (*metadata.identity, *flow_identity) + admitted_limit = max(1, min(self._model_group_limit_cap, self._model_group_limit_multiplier * weight)) + return ResolvedTaskScheduling( + group=TaskGroupSpec( + key=TaskGroupKey(kind=metadata.kind, identity=identity), + weight=float(weight), + admitted_limit=admitted_limit, + ), + resource_request=SchedulerResourceRequest({"submission": 1, "llm_wait": 1}), + ) + + +def stable_task_id(task: Task) -> str: + """Return a stable scheduler task id for queue/admission membership.""" + raw = f"{task.column}\0{task.row_group}\0{task.row_index}\0{task.task_type}".encode() + digest = hashlib.sha1(raw).hexdigest()[:16] + return f"task-{digest}" diff --git a/packages/data-designer-engine/src/data_designer/engine/models/clients/__init__.py b/packages/data-designer-engine/src/data_designer/engine/models/clients/__init__.py index df9afc48f..37be3514c 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/clients/__init__.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/clients/__init__.py @@ -12,9 +12,21 @@ map_http_status_to_provider_error_kind, ) from data_designer.engine.models.clients.factory import create_model_client +from data_designer.engine.models.clients.model_request_executor import ModelRequestExecutor +from data_designer.engine.models.clients.request_admission import ( + AdaptiveRequestAdmissionController, + RequestAdmissionConfig, + RequestAdmissionController, + RequestAdmissionError, + RequestAdmissionItem, + RequestAdmissionLease, + RequestDomain, + RequestFairQueue, + RequestReleaseOutcome, + RequestResourceKey, + RequestResourceResolver, +) from data_designer.engine.models.clients.retry import RetryConfig -from data_designer.engine.models.clients.throttle_manager import ThrottleDomain, ThrottleManager -from data_designer.engine.models.clients.throttled import ThrottledModelClient from data_designer.engine.models.clients.types import ( AssistantMessage, ChatCompletionRequest, @@ -39,14 +51,23 @@ "ImageGenerationRequest", "ImageGenerationResponse", "ImagePayload", + "AdaptiveRequestAdmissionController", "ModelClient", + "ModelRequestExecutor", "OpenAICompatibleClient", "ProviderError", "ProviderErrorKind", + "RequestAdmissionConfig", + "RequestAdmissionController", + "RequestAdmissionError", + "RequestAdmissionItem", + "RequestAdmissionLease", + "RequestDomain", + "RequestFairQueue", + "RequestReleaseOutcome", + "RequestResourceResolver", + "RequestResourceKey", "RetryConfig", - "ThrottleDomain", - "ThrottleManager", - "ThrottledModelClient", "ToolCall", "Usage", "create_model_client", diff --git a/packages/data-designer-engine/src/data_designer/engine/models/clients/adapters/anthropic.py b/packages/data-designer-engine/src/data_designer/engine/models/clients/adapters/anthropic.py index 2424d3f8c..b73acffb6 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/clients/adapters/anthropic.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/clients/adapters/anthropic.py @@ -31,8 +31,8 @@ class AnthropicClient(HttpModelClient): """Native HTTP adapter for the Anthropic Messages API. Uses ``httpx`` with ``httpx_retries.RetryTransport`` for resilient HTTP - calls. Concurrency / throttle policy is an orchestration concern and - is not managed here — see ``ThrottleManager`` and ``AsyncTaskScheduler``. + calls. Concurrency and request-admission policy are orchestration concerns + and are not managed here. """ _ROUTE_MESSAGES = "/messages" diff --git a/packages/data-designer-engine/src/data_designer/engine/models/clients/adapters/openai_compatible.py b/packages/data-designer-engine/src/data_designer/engine/models/clients/adapters/openai_compatible.py index 54f01961b..44ab1f1d5 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/clients/adapters/openai_compatible.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/clients/adapters/openai_compatible.py @@ -33,8 +33,8 @@ class OpenAICompatibleClient(HttpModelClient): """Native HTTP adapter for OpenAI-compatible provider APIs. Uses ``httpx`` with ``httpx_retries.RetryTransport`` for resilient HTTP - calls. Concurrency / throttle policy is an orchestration concern and - is not managed here — see ``ThrottleManager`` and ``AsyncTaskScheduler``. + calls. Concurrency and request-admission policy are orchestration concerns + and are not managed here. """ _ROUTE_CHAT = "/chat/completions" diff --git a/packages/data-designer-engine/src/data_designer/engine/models/clients/factory.py b/packages/data-designer-engine/src/data_designer/engine/models/clients/factory.py index 458ebfcad..b0255be77 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/clients/factory.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/clients/factory.py @@ -10,10 +10,11 @@ from data_designer.engine.models.clients.adapters.http_model_client import ClientConcurrencyMode from data_designer.engine.models.clients.adapters.openai_compatible import OpenAICompatibleClient from data_designer.engine.models.clients.base import ModelClient +from data_designer.engine.models.clients.model_request_executor import ModelRequestExecutor +from data_designer.engine.models.clients.request_admission import RequestAdmissionController from data_designer.engine.models.clients.retry import RetryConfig -from data_designer.engine.models.clients.throttle_manager import ThrottleManager -from data_designer.engine.models.clients.throttled import ThrottledModelClient from data_designer.engine.models.errors import FormattedLLMErrorMessage +from data_designer.engine.observability import RequestAdmissionEventSink from data_designer.engine.secret_resolver import SecretResolver _SUPPORTED_PROVIDER_TYPES = ("openai", "anthropic") @@ -26,7 +27,8 @@ def create_model_client( *, retry_config: RetryConfig | None = None, client_concurrency_mode: ClientConcurrencyMode = ClientConcurrencyMode.SYNC, - throttle_manager: ThrottleManager | None = None, + request_admission: RequestAdmissionController | None = None, + request_event_sink: RequestAdmissionEventSink | None = None, ) -> ModelClient: """Create a ``ModelClient`` for the given model configuration. @@ -40,12 +42,12 @@ def create_model_client( client_concurrency_mode: ``"sync"`` (default) for the sync engine path, ``"async"`` for the async engine path. Native HTTP adapters are constrained to a single concurrency mode. - throttle_manager: Optional throttle manager for per-request AIMD - concurrency control. When provided, the returned client is wrapped - with ``ThrottledModelClient``. + request_admission: Optional request-admission controller for per-request + provider/model/domain admission. When provided, the returned client + is wrapped with ``ModelRequestExecutor``. **Ordering invariant:** the ``(provider_name, model_id)`` pair must - be registered on the ``ThrottleManager`` via ``register()`` before + be registered on the request-admission controller via ``register()`` before the returned client makes its first request. In the standard flow, ``ModelRegistry._get_model()`` calls ``register()`` during model setup, which happens before any generation task invokes the client. @@ -102,12 +104,13 @@ def create_model_client( ) ) - if throttle_manager is not None: - client = ThrottledModelClient( + if request_admission is not None: + client = ModelRequestExecutor( inner=client, - throttle_manager=throttle_manager, + request_admission=request_admission, provider_name=provider.name, model_id=model_config.model, + event_sink=request_event_sink, ) return client diff --git a/packages/data-designer-engine/src/data_designer/engine/models/clients/model_request_executor.py b/packages/data-designer-engine/src/data_designer/engine/models/clients/model_request_executor.py new file mode 100644 index 000000000..5d28f560b --- /dev/null +++ b/packages/data-designer-engine/src/data_designer/engine/models/clients/model_request_executor.py @@ -0,0 +1,244 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +import asyncio +import uuid +from typing import TYPE_CHECKING, TypeVar + +from data_designer.engine.models.clients.base import ModelClient +from data_designer.engine.models.clients.errors import ProviderError, ProviderErrorKind +from data_designer.engine.models.clients.request_admission import ( + RequestAdmissionController, + RequestAdmissionError, + RequestAdmissionItem, + RequestAdmissionLease, + RequestDomain, + RequestEventContext, + RequestGroupSpec, + RequestReleaseOutcome, + RequestResourceResolver, +) +from data_designer.engine.models.clients.types import ( + ChatCompletionRequest, + ChatCompletionResponse, + EmbeddingRequest, + EmbeddingResponse, + ImageGenerationRequest, + ImageGenerationResponse, +) +from data_designer.engine.observability import ( + RequestAdmissionEvent, + RequestAdmissionEventSink, + runtime_correlation_provider, +) + +if TYPE_CHECKING: + from collections.abc import Awaitable, Callable + +_T = TypeVar("_T") + + +class ModelRequestExecutor(ModelClient): + """Model-call boundary that acquires/releases request-admission leases.""" + + def __init__( + self, + inner: ModelClient, + request_admission: RequestAdmissionController, + provider_name: str, + model_id: str, + event_sink: RequestAdmissionEventSink | None = None, + resource_resolver: RequestResourceResolver | None = None, + ) -> None: + self._inner = inner + self._request_admission = request_admission + self._provider_name = provider_name + self._model_id = model_id + self._event_sink = event_sink + self._resource_resolver = resource_resolver or RequestResourceResolver() + self._event_sequence = 0 + + @property + def provider_name(self) -> str: + return self._inner.provider_name + + def supports_chat_completion(self) -> bool: + return self._inner.supports_chat_completion() + + def supports_embeddings(self) -> bool: + return self._inner.supports_embeddings() + + def supports_image_generation(self) -> bool: + return self._inner.supports_image_generation() + + def close(self) -> None: + self._inner.close() + + async def aclose(self) -> None: + await self._inner.aclose() + + def completion(self, request: ChatCompletionRequest) -> ChatCompletionResponse: + return self._execute_sync(RequestDomain.CHAT, lambda: self._inner.completion(request)) + + async def acompletion(self, request: ChatCompletionRequest) -> ChatCompletionResponse: + return await self._execute_async(RequestDomain.CHAT, lambda: self._inner.acompletion(request)) + + def embeddings(self, request: EmbeddingRequest) -> EmbeddingResponse: + return self._execute_sync(RequestDomain.EMBEDDING, lambda: self._inner.embeddings(request)) + + async def aembeddings(self, request: EmbeddingRequest) -> EmbeddingResponse: + return await self._execute_async(RequestDomain.EMBEDDING, lambda: self._inner.aembeddings(request)) + + def generate_image(self, request: ImageGenerationRequest) -> ImageGenerationResponse: + return self._execute_sync(self._image_domain(request), lambda: self._inner.generate_image(request)) + + async def agenerate_image(self, request: ImageGenerationRequest) -> ImageGenerationResponse: + return await self._execute_async(self._image_domain(request), lambda: self._inner.agenerate_image(request)) + + def _execute_sync(self, domain: RequestDomain, call: Callable[[], _T]) -> _T: + item = self._item(domain) + try: + lease = self._request_admission.acquire_sync(item) + except RequestAdmissionError as exc: + raise ProviderError( + kind=ProviderErrorKind.TIMEOUT, + message=str(exc), + provider_name=self._provider_name, + model_name=self._model_id, + ) from exc + try: + self._emit_model_event("model_request_started", item=item, lease=lease) + result = call() + except ProviderError as exc: + self._release_provider_error(lease, exc) + self._emit_model_event( + "model_request_completed", item=item, lease=lease, diagnostics={"outcome": exc.kind.value} + ) + raise + except TimeoutError: + self._request_admission.release(lease, RequestReleaseOutcome(kind="provider_timeout")) + self._emit_model_event( + "model_request_completed", item=item, lease=lease, diagnostics={"outcome": "provider_timeout"} + ) + raise + except BaseException as exc: + outcome = "local_cancelled" if isinstance(exc, KeyboardInterrupt) else "unexpected_exception" + self._request_admission.release(lease, RequestReleaseOutcome(kind=outcome)) + self._emit_model_event("model_request_completed", item=item, lease=lease, diagnostics={"outcome": outcome}) + raise + else: + self._request_admission.release(lease, RequestReleaseOutcome(kind="success")) + self._emit_model_event( + "model_request_completed", item=item, lease=lease, diagnostics={"outcome": "success"} + ) + return result + + async def _execute_async(self, domain: RequestDomain, call: Callable[[], Awaitable[_T]]) -> _T: + item = self._item(domain) + try: + lease = await self._request_admission.acquire_async(item) + except RequestAdmissionError as exc: + raise ProviderError( + kind=ProviderErrorKind.TIMEOUT, + message=str(exc), + provider_name=self._provider_name, + model_name=self._model_id, + ) from exc + except asyncio.CancelledError: + raise + try: + self._emit_model_event("model_request_started", item=item, lease=lease) + result = await call() + except asyncio.CancelledError: + self._request_admission.release(lease, RequestReleaseOutcome(kind="local_cancelled")) + self._emit_model_event( + "model_request_completed", item=item, lease=lease, diagnostics={"outcome": "local_cancelled"} + ) + raise + except ProviderError as exc: + self._release_provider_error(lease, exc) + self._emit_model_event( + "model_request_completed", item=item, lease=lease, diagnostics={"outcome": exc.kind.value} + ) + raise + except TimeoutError: + self._request_admission.release(lease, RequestReleaseOutcome(kind="provider_timeout")) + self._emit_model_event( + "model_request_completed", item=item, lease=lease, diagnostics={"outcome": "provider_timeout"} + ) + raise + except BaseException: + self._request_admission.release(lease, RequestReleaseOutcome(kind="unexpected_exception")) + self._emit_model_event( + "model_request_completed", item=item, lease=lease, diagnostics={"outcome": "unexpected_exception"} + ) + raise + else: + self._request_admission.release(lease, RequestReleaseOutcome(kind="success")) + self._emit_model_event( + "model_request_completed", item=item, lease=lease, diagnostics={"outcome": "success"} + ) + return result + + def _release_provider_error(self, lease: RequestAdmissionLease, exc: ProviderError) -> None: + if exc.kind == ProviderErrorKind.RATE_LIMIT: + outcome = RequestReleaseOutcome(kind="rate_limited", retry_after_seconds=exc.retry_after) + elif exc.kind == ProviderErrorKind.TIMEOUT: + outcome = RequestReleaseOutcome(kind="provider_timeout") + else: + outcome = RequestReleaseOutcome(kind="provider_failure") + self._request_admission.release(lease, outcome) + + def _item(self, domain: RequestDomain) -> RequestAdmissionItem: + resolved = self._resource_resolver.resolve( + provider_name=self._provider_name, + model_id=self._model_id, + domain=domain, + ) + resource = resolved.resource + correlation = runtime_correlation_provider.current() + return RequestAdmissionItem( + resource=resource, + group=RequestGroupSpec(key=resource), + event_context=RequestEventContext( + captured_correlation=correlation, + task_execution_id=correlation.task_execution_id if correlation is not None else None, + request_attempt_id=f"request-{uuid.uuid4().hex}", + ), + ) + + @staticmethod + def _image_domain(request: ImageGenerationRequest) -> RequestDomain: + return RequestDomain.CHAT if request.messages is not None else RequestDomain.IMAGE + + def _emit_model_event( + self, + event_kind: str, + *, + item: RequestAdmissionItem, + lease: RequestAdmissionLease, + diagnostics: dict[str, object] | None = None, + ) -> None: + if self._event_sink is None: + return + self._event_sequence += 1 + context = item.event_context + try: + self._event_sink.emit_request_event( + RequestAdmissionEvent.capture( + event_kind, # type: ignore[arg-type] + sequence=self._event_sequence, + correlation=context.captured_correlation + if context is not None + else runtime_correlation_provider.current(), + request_attempt_id=context.request_attempt_id if context is not None else None, + request_lease_id=lease.lease_id, + request_resource_key=item.resource, + request_group_key=item.group.key, + diagnostics=diagnostics or {}, + ) + ) + except Exception: + return diff --git a/packages/data-designer-engine/src/data_designer/engine/models/clients/request_admission.py b/packages/data-designer-engine/src/data_designer/engine/models/clients/request_admission.py new file mode 100644 index 000000000..c04370f54 --- /dev/null +++ b/packages/data-designer-engine/src/data_designer/engine/models/clients/request_admission.py @@ -0,0 +1,968 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +import asyncio +import heapq +import math +import threading +import time +import uuid +from collections import Counter, deque +from collections.abc import Callable, Mapping +from dataclasses import dataclass, field +from enum import Enum +from typing import Literal, Protocol + +from data_designer.engine.observability import ( + RequestAdmissionEvent, + RequestAdmissionEventSink, + runtime_correlation_provider, +) + + +class RequestDomain(str, Enum): + CHAT = "chat" + EMBEDDING = "embedding" + IMAGE = "image" + HEALTHCHECK = "healthcheck" + + +@dataclass(frozen=True, order=True) +class ProviderModelKey: + provider_name: str + model_id: str + + +@dataclass(frozen=True, order=True) +class RequestResourceKey: + provider_name: str + model_id: str + domain: RequestDomain + + @property + def provider_model_key(self) -> ProviderModelKey: + return ProviderModelKey(self.provider_name, self.model_id) + + +@dataclass(frozen=True) +class ResolvedRequestResource: + provider_model: ProviderModelKey + resource: RequestResourceKey + aliases: tuple[str, ...] = () + generation_kind: str | None = None + + +class RequestResourceResolver: + """Canonical provider/model/domain request-resource identity factory.""" + + def resolve( + self, + *, + provider_name: str, + model_id: str, + domain: RequestDomain, + model_alias: str | None = None, + provider_alias: str | None = None, + generation_kind: str | None = None, + ) -> ResolvedRequestResource: + resource = RequestResourceKey(provider_name=provider_name, model_id=model_id, domain=domain) + aliases = tuple(alias for alias in (provider_alias, model_alias) if alias) + return ResolvedRequestResource( + provider_model=resource.provider_model_key, + resource=resource, + aliases=aliases, + generation_kind=generation_kind, + ) + + +@dataclass(frozen=True) +class RequestGroupSpec: + key: RequestResourceKey + weight: float = 1.0 + + +@dataclass(frozen=True) +class RequestEventContext: + captured_correlation: object | None = None + task_execution_id: str | None = None + request_attempt_id: str | None = None + + +@dataclass(frozen=True) +class RequestAdmissionItem: + resource: RequestResourceKey + group: RequestGroupSpec + queue_wait_timeout_seconds: float | None = None + event_context: RequestEventContext | None = None + + +RequestDenyReason = Literal[ + "no_capacity", + "cooldown", + "queue_timeout", + "queued_waiters_ahead", + "cancellation", + "shutdown", + "hard_policy_denial", +] + + +@dataclass(frozen=True) +class RequestAdmissionDenied: + item: RequestAdmissionItem + reason: RequestDenyReason + retry_after_seconds: float | None = None + available_after_monotonic: float | None = None + snapshot: object | None = None + diagnostics: Mapping[str, object] = field(default_factory=dict) + + +@dataclass(frozen=True) +class RequestAdmissionLease: + lease_id: str + item: RequestAdmissionItem + acquired_at: float + current_adaptive_limit: int + effective_max: int + controller_generation: str + + +RequestAdmissionDecision = RequestAdmissionLease | RequestAdmissionDenied + + +@dataclass(frozen=True) +class RequestReleaseOutcome: + kind: Literal[ + "success", + "rate_limited", + "provider_failure", + "provider_timeout", + "local_cancelled", + "local_timeout", + "unexpected_exception", + ] + retry_after_seconds: float | None = None + provider_status: int | None = None + diagnostics: Mapping[str, object] = field(default_factory=dict) + + +@dataclass(frozen=True) +class ReleaseResult: + released: bool + reason: Literal["released", "duplicate", "stale_lease", "wrong_controller_generation", "unknown_lease"] + diagnostics: Mapping[str, object] = field(default_factory=dict) + + +class RequestAdmissionError(RuntimeError): + """Raised by blocking acquire paths when no request lease is acquired.""" + + def __init__(self, decision: RequestAdmissionDenied) -> None: + super().__init__(f"Request admission failed: {decision.reason}") + self.decision = decision + + +@dataclass(frozen=True) +class RequestAdmissionConfig: + initial_limits: Mapping[RequestResourceKey, int] = field(default_factory=dict) + max_limit_clamps: Mapping[RequestResourceKey, int | None] = field(default_factory=dict) + cooldown_seconds: float = 2.0 + multiplicative_decrease_factor: float = 0.75 + additive_increase_step: int = 1 + increase_after_successes: int = 25 + default_queue_wait_timeout_seconds: float | None = None + + +@dataclass +class AdaptiveRequestLimitState: + current_limit: int + in_flight: int = 0 + blocked_until: float = 0.0 + success_streak: int = 0 + waiters: int = 0 + rate_limit_ceiling: int = 0 + consecutive_rate_limits: int = 0 + active_lease_count: int = 0 + last_outcome: str | None = None + + +@dataclass +class ProviderModelStaticCap: + cap: int + aliases: tuple[str, ...] + raw_caps: Mapping[str, int | None] + merge_rule: str = "min_same_endpoint" + + +@dataclass(frozen=True) +class RequestPressureSnapshot: + captured_at: float + sequence: int + resource: RequestResourceKey + effective_max: int + current_limit: int + in_flight_count: int + active_lease_count: int + waiters: int + blocked_until_monotonic: float | None + cooldown_remaining_seconds: float + rate_limit_ceiling: int + consecutive_rate_limits: int + last_outcome: str | None + leak_diagnostics: Mapping[str, int] + + +@dataclass(frozen=True) +class ProviderModelPressureSnapshot: + captured_at: float + sequence: int + provider_model: ProviderModelKey + static_cap: int + aggregate_in_flight: int + aggregate_active_lease_count: int + aliases: tuple[str, ...] + raw_caps: Mapping[str, int | None] + domains: Mapping[RequestDomain, int] + + +class RequestPressureSnapshotProvider(Protocol): + def snapshot(self, resource: RequestResourceKey) -> RequestPressureSnapshot | None: ... + + def snapshots(self) -> Mapping[RequestResourceKey, RequestPressureSnapshot]: ... + + def global_snapshot(self, provider: str, model: str) -> ProviderModelPressureSnapshot | None: ... + + def global_snapshots(self) -> Mapping[ProviderModelKey, ProviderModelPressureSnapshot]: ... + + +class RequestAdmissionController(Protocol): + def try_acquire(self, item: RequestAdmissionItem) -> RequestAdmissionDecision: ... + + def acquire_sync(self, item: RequestAdmissionItem) -> RequestAdmissionLease: ... + + async def acquire_async(self, item: RequestAdmissionItem) -> RequestAdmissionLease: ... + + def release(self, lease: RequestAdmissionLease, outcome: RequestReleaseOutcome) -> ReleaseResult: ... + + @property + def pressure(self) -> RequestPressureSnapshotProvider: ... + + +@dataclass +class RequestWaiter: + waiter_id: str + item: RequestAdmissionItem + enqueued_at: float + deadline_monotonic: float | None = None + assigned_lease: RequestAdmissionLease | None = None + + +@dataclass(frozen=True) +class RequestQueueView: + queued_total: int + queued_by_group: Mapping[RequestResourceKey, int] + queued_demand_by_resource: Mapping[RequestResourceKey, int] + aggregate_provider_model_waiters: Mapping[ProviderModelKey, int] + + +@dataclass(frozen=True) +class RequestQueueSelection: + waiter: RequestWaiter + item: RequestAdmissionItem + waiter_id: str + queue_view: RequestQueueView + sequence_version: int + + +class RequestFairQueue: + """Weighted fair waiter queue used by request admission.""" + + def __init__(self) -> None: + self._queues: dict[RequestResourceKey, deque[RequestWaiter]] = {} + self._queued: dict[str, RequestWaiter] = {} + self._waiter_groups: dict[str, RequestResourceKey] = {} + self._group_finish: dict[RequestResourceKey, float] = {} + self._heap: list[tuple[float, int, RequestResourceKey]] = [] + self._active_heap_entries: dict[RequestResourceKey, tuple[float, int]] = {} + self._sequence = 0 + self._sequence_version = 0 + self._virtual_time = 0.0 + + @property + def has_waiters(self) -> bool: + return bool(self._queued) + + def contains(self, waiter_id: str) -> bool: + return waiter_id in self._queued + + def enqueue(self, waiter: RequestWaiter) -> bool: + if waiter.waiter_id in self._queued: + return False + key = waiter.item.group.key + queue = self._queues.setdefault(key, deque()) + queue.append(waiter) + self._queued[waiter.waiter_id] = waiter + self._waiter_groups[waiter.waiter_id] = key + self._activate_group(key) + self._sequence_version += 1 + return True + + def remove(self, waiter_id: str) -> RequestWaiter | None: + waiter = self._queued.pop(waiter_id, None) + if waiter is None: + return None + self._waiter_groups.pop(waiter_id, None) + self._sequence_version += 1 + return waiter + + def select_next( + self, is_eligible: Callable[[RequestWaiter, RequestQueueView], bool] + ) -> RequestQueueSelection | None: + view = self.view() + heap_copy = list(self._heap) + heapq.heapify(heap_copy) + active_seen: set[RequestResourceKey] = set() + while heap_copy: + finish, sequence, key = heapq.heappop(heap_copy) + if key in active_seen: + continue + if self._active_heap_entries.get(key) != (finish, sequence): + continue + active_seen.add(key) + waiter = self._first_valid_waiter(key) + if waiter is None: + continue + if not is_eligible(waiter, view): + continue + return RequestQueueSelection( + waiter=waiter, + item=waiter.item, + waiter_id=waiter.waiter_id, + queue_view=view, + sequence_version=self._sequence_version, + ) + return None + + def commit(self, selection: RequestQueueSelection) -> RequestWaiter | None: + if selection.sequence_version != self._sequence_version: + return None + key = self._waiter_groups.get(selection.waiter_id) + if key is None or key != selection.item.group.key: + return None + queue = self._queues.get(key) + if queue is None: + return None + self._purge_queue_head(key) + if not queue or queue[0].waiter_id != selection.waiter_id: + return None + + waiter = queue.popleft() + self._queued.pop(waiter.waiter_id, None) + self._waiter_groups.pop(waiter.waiter_id, None) + self._active_heap_entries.pop(key, None) + weight = max(selection.item.group.weight, 1.0) + finish = self._group_finish.get(key, self._virtual_time) + self._virtual_time = max(self._virtual_time, finish) + self._group_finish[key] = self._virtual_time + (1.0 / weight) + self._sequence_version += 1 + self._purge_queue_head(key) + if queue: + self._activate_group(key) + return waiter + + def view(self) -> RequestQueueView: + queued_by_group: Counter[RequestResourceKey] = Counter() + demand_by_resource: Counter[RequestResourceKey] = Counter() + aggregate_waiters: Counter[ProviderModelKey] = Counter() + for waiter in self._queued.values(): + resource = waiter.item.resource + queued_by_group[waiter.item.group.key] += 1 + demand_by_resource[resource] += 1 + aggregate_waiters[resource.provider_model_key] += 1 + return RequestQueueView( + queued_total=len(self._queued), + queued_by_group=dict(queued_by_group), + queued_demand_by_resource=dict(demand_by_resource), + aggregate_provider_model_waiters=dict(aggregate_waiters), + ) + + def _activate_group(self, key: RequestResourceKey) -> None: + self._purge_queue_head(key) + queue = self._queues.get(key) + if not queue or key in self._active_heap_entries: + return + self._sequence += 1 + finish = self._group_finish.get(key, self._virtual_time) + heapq.heappush(self._heap, (finish, self._sequence, key)) + self._active_heap_entries[key] = (finish, self._sequence) + + def _first_valid_waiter(self, key: RequestResourceKey) -> RequestWaiter | None: + queue = self._queues.get(key) + if queue is None: + return None + for waiter in queue: + if waiter.waiter_id in self._queued and self._waiter_groups.get(waiter.waiter_id) == key: + return waiter + return None + + def _purge_queue_head(self, key: RequestResourceKey) -> None: + queue = self._queues.get(key) + if queue is None: + return + while queue: + waiter = queue[0] + if waiter.waiter_id in self._queued and self._waiter_groups.get(waiter.waiter_id) == key: + break + queue.popleft() + + +@dataclass +class _GlobalCapState: + limits_by_alias: dict[str, int] = field(default_factory=dict) + effective_max: int = 0 + + def register_alias(self, alias: str, max_parallel: int) -> None: + self.limits_by_alias[alias] = max(1, max_parallel) + self.effective_max = min(self.limits_by_alias.values()) + + +class AdaptiveRequestAdmissionController(RequestPressureSnapshotProvider): + """AIMD-backed request admission controller with exact request leases.""" + + def __init__( + self, + config: RequestAdmissionConfig | None = None, + *, + event_sink: RequestAdmissionEventSink | None = None, + ) -> None: + self._config = config or RequestAdmissionConfig() + self._lock = threading.Lock() + self._condition = threading.Condition(self._lock) + self._generation = uuid.uuid4().hex + self._global_caps: dict[ProviderModelKey, _GlobalCapState] = {} + self._domains: dict[RequestResourceKey, AdaptiveRequestLimitState] = {} + self._active_leases: dict[str, RequestAdmissionLease] = {} + self._released: set[str] = set() + self._aggregate_in_flight: Counter[ProviderModelKey] = Counter() + self._aggregate_active_leases: Counter[ProviderModelKey] = Counter() + self._sequence = 0 + self._release_diagnostics: Counter[str] = Counter() + self._queue = RequestFairQueue() + self._event_sink = event_sink + + @property + def pressure(self) -> RequestPressureSnapshotProvider: + return self + + @property + def config(self) -> RequestAdmissionConfig: + return self._config + + def register( + self, + *, + provider_name: str, + model_id: str, + alias: str, + max_parallel_requests: int, + ) -> None: + events: list[RequestAdmissionEvent] = [] + with self._lock: + key = ProviderModelKey(provider_name, model_id) + cap = self._global_caps.setdefault(key, _GlobalCapState()) + before = cap.effective_max + cap.register_alias(alias, max_parallel_requests) + self._sequence += 1 + for resource, state in self._domains.items(): + if resource.provider_model_key == key: + effective_max = self._effective_max_for_resource(resource) + state.current_limit = min(state.current_limit, effective_max) + events.append( + self._request_event_locked( + "request_resource_registered", + request_resource_key=RequestResourceKey(provider_name, model_id, RequestDomain.CHAT), + diagnostics={"alias": alias, "provider_model": key, "max_parallel_requests": max_parallel_requests}, + ) + ) + if before != cap.effective_max: + events.append( + self._request_event_locked( + "request_effective_cap_changed", + request_resource_key=RequestResourceKey(provider_name, model_id, RequestDomain.CHAT), + diagnostics={"provider_model": key, "previous": before, "current": cap.effective_max}, + ) + ) + self._condition.notify_all() + self._emit_events(events) + + def try_acquire(self, item: RequestAdmissionItem) -> RequestAdmissionDecision: + now = time.monotonic() + events: list[RequestAdmissionEvent] = [] + decision: RequestAdmissionDecision + with self._lock: + events.append(self._request_event_locked("request_wait_started", item=item)) + if self._queued_waiter_ahead_locked(item, now): + decision = RequestAdmissionDenied( + item=item, + reason="queued_waiters_ahead", + snapshot=self._snapshot_locked(item.resource, now), + ) + events.append(self._request_event_locked("request_acquire_denied", item=item, decision=decision)) + else: + denied = self._denial_for(item, now) + if denied is not None: + decision = denied + events.append(self._request_event_locked("request_acquire_denied", item=item, decision=decision)) + else: + decision = self._acquire_locked(item, now) + events.append(self._request_event_locked("request_wait_completed", item=item, lease=decision)) + events.append(self._request_event_locked("request_lease_acquired", item=item, lease=decision)) + self._emit_events(events) + return decision + + def acquire_sync(self, item: RequestAdmissionItem) -> RequestAdmissionLease: + timeout = ( + item.queue_wait_timeout_seconds + if item.queue_wait_timeout_seconds is not None + else self._config.default_queue_wait_timeout_seconds + ) + now = time.monotonic() + deadline = now + timeout if timeout is not None else None + waiter = RequestWaiter(waiter_id=uuid.uuid4().hex, item=item, enqueued_at=now, deadline_monotonic=deadline) + events: list[RequestAdmissionEvent] = [] + try: + while True: + with self._lock: + if not self._queue.contains(waiter.waiter_id) and waiter.assigned_lease is None: + self._enqueue_waiter_locked(waiter, events) + self._admit_waiters_locked(events) + if waiter.assigned_lease is not None: + return waiter.assigned_lease + now = time.monotonic() + if deadline is not None and now >= deadline: + self._remove_waiter_locked(waiter) + denied = RequestAdmissionDenied( + item=item, + reason="queue_timeout", + snapshot=self._snapshot_locked(item.resource, now), + ) + events.append(self._request_event_locked("request_wait_timeout", item=item, decision=denied)) + raise RequestAdmissionError(denied) + wait = self._wait_seconds_locked(item, now, deadline) + self._condition.wait(timeout=wait) + finally: + self._emit_events(events) + + async def acquire_async(self, item: RequestAdmissionItem) -> RequestAdmissionLease: + timeout = ( + item.queue_wait_timeout_seconds + if item.queue_wait_timeout_seconds is not None + else self._config.default_queue_wait_timeout_seconds + ) + now = time.monotonic() + deadline = now + timeout if timeout is not None else None + waiter = RequestWaiter(waiter_id=uuid.uuid4().hex, item=item, enqueued_at=now, deadline_monotonic=deadline) + events: list[RequestAdmissionEvent] = [] + try: + while True: + with self._lock: + if not self._queue.contains(waiter.waiter_id) and waiter.assigned_lease is None: + self._enqueue_waiter_locked(waiter, events) + self._admit_waiters_locked(events) + if waiter.assigned_lease is not None: + return waiter.assigned_lease + now = time.monotonic() + if deadline is not None and now >= deadline: + self._remove_waiter_locked(waiter) + denied = RequestAdmissionDenied( + item=item, + reason="queue_timeout", + snapshot=self._snapshot_locked(item.resource, now), + ) + events.append(self._request_event_locked("request_wait_timeout", item=item, decision=denied)) + raise RequestAdmissionError(denied) + wait = self._wait_seconds_locked(item, now, deadline) + await asyncio.sleep(wait) + except asyncio.CancelledError: + lease_to_release: RequestAdmissionLease | None = None + with self._lock: + lease_to_release = waiter.assigned_lease + if lease_to_release is None: + self._remove_waiter_locked(waiter) + denied = RequestAdmissionDenied(item=item, reason="cancellation") + events.append( + self._request_event_locked( + "request_wait_cancelled", + item=item, + lease=lease_to_release, + decision=denied, + ) + ) + self._condition.notify_all() + if lease_to_release is not None: + self._emit_events(events) + events.clear() + self.release(lease_to_release, RequestReleaseOutcome(kind="local_cancelled")) + raise + finally: + self._emit_events(events) + + def release(self, lease: RequestAdmissionLease, outcome: RequestReleaseOutcome) -> ReleaseResult: + now = time.monotonic() + events: list[RequestAdmissionEvent] = [] + result: ReleaseResult + with self._lock: + if lease.controller_generation != self._generation: + self._release_diagnostics["wrong_controller_generation"] += 1 + result = ReleaseResult(released=False, reason="wrong_controller_generation") + events.append( + self._request_event_locked( + "request_release_diagnostic", item=lease.item, lease=lease, result=result + ) + ) + elif (active := self._active_leases.pop(lease.lease_id, None)) is None: + reason = "duplicate" if lease.lease_id in self._released else "unknown_lease" + self._release_diagnostics[reason] += 1 + result = ReleaseResult(released=False, reason=reason) + events.append( + self._request_event_locked( + "request_release_diagnostic", item=lease.item, lease=lease, result=result + ) + ) + elif active.item.resource != lease.item.resource: + self._active_leases[lease.lease_id] = active + self._release_diagnostics["stale_lease"] += 1 + result = ReleaseResult(released=False, reason="stale_lease") + events.append( + self._request_event_locked( + "request_release_diagnostic", item=lease.item, lease=lease, result=result + ) + ) + else: + self._released.add(lease.lease_id) + resource = active.item.resource + provider_model = resource.provider_model_key + state = self._get_or_create_state(resource) + state.in_flight = max(0, state.in_flight - 1) + state.active_lease_count = max(0, state.active_lease_count - 1) + state.last_outcome = outcome.kind + self._aggregate_in_flight[provider_model] = max(0, self._aggregate_in_flight[provider_model] - 1) + self._aggregate_active_leases[provider_model] = max( + 0, + self._aggregate_active_leases[provider_model] - 1, + ) + self._apply_outcome(state, resource, outcome, now, events) + self._sequence += 1 + result = ReleaseResult(released=True, reason="released") + if outcome.kind == "rate_limited": + events.append(self._request_event_locked("request_rate_limited", item=lease.item, lease=lease)) + events.append( + self._request_event_locked("request_lease_released", item=lease.item, lease=lease, result=result) + ) + self._admit_waiters_locked(events) + self._condition.notify_all() + self._emit_events(events) + return result + + def snapshot(self, resource: RequestResourceKey) -> RequestPressureSnapshot | None: + with self._lock: + if resource not in self._domains: + return None + return self._snapshot_locked(resource, time.monotonic()) + + def snapshots(self) -> Mapping[RequestResourceKey, RequestPressureSnapshot]: + with self._lock: + now = time.monotonic() + return {resource: self._snapshot_locked(resource, now) for resource in self._domains} + + def global_snapshot(self, provider: str, model: str) -> ProviderModelPressureSnapshot | None: + with self._lock: + key = ProviderModelKey(provider, model) + if key not in self._global_caps: + return None + return self._global_snapshot_locked(key, time.monotonic()) + + def global_snapshots(self) -> Mapping[ProviderModelKey, ProviderModelPressureSnapshot]: + with self._lock: + now = time.monotonic() + return {key: self._global_snapshot_locked(key, now) for key in self._global_caps} + + def _queued_waiter_ahead_locked(self, item: RequestAdmissionItem, now: float) -> bool: + if not self._queue.has_waiters: + return False + selection = self._queue.select_next(lambda waiter, _view: self._denial_for(waiter.item, now) is None) + if selection is None: + return False + selected_key = selection.item.resource.provider_model_key + return selected_key == item.resource.provider_model_key or selection.item.resource == item.resource + + def _enqueue_waiter_locked(self, waiter: RequestWaiter, events: list[RequestAdmissionEvent]) -> None: + if self._queue.enqueue(waiter): + self._get_or_create_state(waiter.item.resource).waiters += 1 + self._sequence += 1 + if self._queue.view().queued_total == 1: + events.append(self._request_event_locked("request_queue_formed", item=waiter.item)) + events.append(self._request_event_locked("request_wait_started", item=waiter.item)) + + def _remove_waiter_locked(self, waiter: RequestWaiter) -> None: + removed = self._queue.remove(waiter.waiter_id) + if removed is None: + return + state = self._get_or_create_state(waiter.item.resource) + state.waiters = max(0, state.waiters - 1) + self._sequence += 1 + + def _admit_waiters_locked(self, events: list[RequestAdmissionEvent]) -> None: + while self._queue.has_waiters: + now = time.monotonic() + selection = self._queue.select_next(lambda waiter, _view: self._denial_for(waiter.item, now) is None) + if selection is None: + return + waiter = self._queue.commit(selection) + if waiter is None: + return + state = self._get_or_create_state(waiter.item.resource) + state.waiters = max(0, state.waiters - 1) + lease = self._acquire_locked(waiter.item, now) + waiter.assigned_lease = lease + events.append(self._request_event_locked("request_wait_completed", item=waiter.item, lease=lease)) + events.append(self._request_event_locked("request_lease_acquired", item=waiter.item, lease=lease)) + if not self._queue.has_waiters: + events.append(self._request_event_locked("request_queue_drained", item=waiter.item)) + + def _wait_seconds_locked( + self, + item: RequestAdmissionItem, + now: float, + deadline: float | None, + ) -> float: + candidates = [0.05] + if deadline is not None: + candidates.append(max(0.0, deadline - now)) + state = self._domains.get(item.resource) + if state is not None and state.blocked_until > now: + candidates.append(max(0.0, state.blocked_until - now)) + return max(0.0, min(candidates)) + + def _denial_for(self, item: RequestAdmissionItem, now: float) -> RequestAdmissionDenied | None: + resource = item.resource + provider_model = resource.provider_model_key + if provider_model not in self._global_caps: + return RequestAdmissionDenied(item=item, reason="hard_policy_denial", diagnostics={"unregistered": True}) + state = self._get_or_create_state(resource) + if now < state.blocked_until: + return RequestAdmissionDenied( + item=item, + reason="cooldown", + retry_after_seconds=state.blocked_until - now, + available_after_monotonic=state.blocked_until, + snapshot=self._snapshot_locked(resource, now), + ) + effective_max = self._effective_max_for_resource(resource) + aggregate_cap = self._global_caps[provider_model].effective_max + if state.in_flight >= min(state.current_limit, effective_max): + return RequestAdmissionDenied( + item=item, reason="no_capacity", snapshot=self._snapshot_locked(resource, now) + ) + if self._aggregate_in_flight[provider_model] >= aggregate_cap: + return RequestAdmissionDenied( + item=item, reason="no_capacity", snapshot=self._snapshot_locked(resource, now) + ) + return None + + def _acquire_locked(self, item: RequestAdmissionItem, now: float) -> RequestAdmissionLease: + resource = item.resource + provider_model = resource.provider_model_key + state = self._get_or_create_state(resource) + state.in_flight += 1 + state.active_lease_count += 1 + self._aggregate_in_flight[provider_model] += 1 + self._aggregate_active_leases[provider_model] += 1 + lease = RequestAdmissionLease( + lease_id=uuid.uuid4().hex, + item=item, + acquired_at=now, + current_adaptive_limit=state.current_limit, + effective_max=self._effective_max_for_resource(resource), + controller_generation=self._generation, + ) + self._active_leases[lease.lease_id] = lease + self._sequence += 1 + return lease + + def _apply_outcome( + self, + state: AdaptiveRequestLimitState, + resource: RequestResourceKey, + outcome: RequestReleaseOutcome, + now: float, + events: list[RequestAdmissionEvent], + ) -> None: + effective_max = self._effective_max_for_resource(resource) + if outcome.kind == "rate_limited": + prev_limit = state.current_limit + first_in_cascade = state.consecutive_rate_limits == 0 + state.consecutive_rate_limits += 1 + cooldown = ( + outcome.retry_after_seconds + if outcome.retry_after_seconds is not None and outcome.retry_after_seconds > 0 + else self._config.cooldown_seconds + ) + state.blocked_until = now + cooldown + state.success_streak = 0 + if first_in_cascade: + state.current_limit = max( + 1, math.floor(state.current_limit * self._config.multiplicative_decrease_factor) + ) + state.rate_limit_ceiling = ( + prev_limit if state.rate_limit_ceiling == 0 else min(state.rate_limit_ceiling, prev_limit) + ) + if state.current_limit != prev_limit: + events.append( + self._request_event_locked( + "request_limit_decreased", + request_resource_key=resource, + diagnostics={"previous": prev_limit, "current": state.current_limit}, + ) + ) + return + if outcome.kind == "success" and now >= state.blocked_until: + prev_limit = state.current_limit + state.consecutive_rate_limits = 0 + state.success_streak += 1 + if state.success_streak >= self._config.increase_after_successes: + state.current_limit = min(effective_max, state.current_limit + self._config.additive_increase_step) + state.success_streak = 0 + if state.current_limit != prev_limit: + events.append( + self._request_event_locked( + "request_limit_increased", + request_resource_key=resource, + diagnostics={"previous": prev_limit, "current": state.current_limit}, + ) + ) + if state.rate_limit_ceiling and state.current_limit > state.rate_limit_ceiling: + events.append( + self._request_event_locked( + "request_soft_ceiling_recovered", + request_resource_key=resource, + diagnostics={"rate_limit_ceiling": state.rate_limit_ceiling}, + ) + ) + if state.current_limit == effective_max and state.blocked_until <= now: + events.append( + self._request_event_locked("request_fully_recovered", request_resource_key=resource) + ) + return + if state.in_flight == 0 and outcome.kind not in {"local_cancelled", "local_timeout"}: + state.consecutive_rate_limits = 0 + + def _increment_waiter(self, item: RequestAdmissionItem) -> None: + with self._lock: + self._get_or_create_state(item.resource).waiters += 1 + self._sequence += 1 + + def _decrement_waiter(self, item: RequestAdmissionItem) -> None: + with self._lock: + state = self._get_or_create_state(item.resource) + state.waiters = max(0, state.waiters - 1) + self._sequence += 1 + + def _get_or_create_state(self, resource: RequestResourceKey) -> AdaptiveRequestLimitState: + state = self._domains.get(resource) + if state is None: + effective_max = self._effective_max_for_resource(resource) + initial = self._config.initial_limits.get(resource, effective_max) + state = AdaptiveRequestLimitState(current_limit=max(1, min(initial, effective_max))) + self._domains[resource] = state + return state + + def _effective_max_for_resource(self, resource: RequestResourceKey) -> int: + provider_model_cap = self._global_caps.get(resource.provider_model_key) + static_cap = provider_model_cap.effective_max if provider_model_cap is not None else 1 + clamp = self._config.max_limit_clamps.get(resource) + return max(1, min(static_cap, clamp if clamp is not None else static_cap)) + + def _snapshot_locked(self, resource: RequestResourceKey, now: float) -> RequestPressureSnapshot: + state = self._get_or_create_state(resource) + blocked_until = state.blocked_until if state.blocked_until > now else None + return RequestPressureSnapshot( + captured_at=now, + sequence=self._sequence, + resource=resource, + effective_max=self._effective_max_for_resource(resource), + current_limit=state.current_limit, + in_flight_count=state.in_flight, + active_lease_count=state.active_lease_count, + waiters=state.waiters, + blocked_until_monotonic=blocked_until, + cooldown_remaining_seconds=max(0.0, state.blocked_until - now), + rate_limit_ceiling=state.rate_limit_ceiling, + consecutive_rate_limits=state.consecutive_rate_limits, + last_outcome=state.last_outcome, + leak_diagnostics=dict(self._release_diagnostics), + ) + + def _global_snapshot_locked(self, key: ProviderModelKey, now: float) -> ProviderModelPressureSnapshot: + cap = self._global_caps[key] + domains = { + resource.domain: state.current_limit + for resource, state in self._domains.items() + if resource.provider_model_key == key + } + return ProviderModelPressureSnapshot( + captured_at=now, + sequence=self._sequence, + provider_model=key, + static_cap=cap.effective_max, + aggregate_in_flight=self._aggregate_in_flight[key], + aggregate_active_lease_count=self._aggregate_active_leases[key], + aliases=tuple(sorted(cap.limits_by_alias)), + raw_caps=dict(cap.limits_by_alias), + domains=domains, + ) + + def _request_event_locked( + self, + event_kind: str, + *, + item: RequestAdmissionItem | None = None, + lease: RequestAdmissionLease | None = None, + decision: RequestAdmissionDenied | None = None, + result: ReleaseResult | None = None, + request_resource_key: RequestResourceKey | None = None, + diagnostics: Mapping[str, object] | None = None, + ) -> RequestAdmissionEvent: + self._sequence += 1 + event_context = item.event_context if item is not None else None + resource = request_resource_key or (item.resource if item is not None else None) + group_key = item.group.key if item is not None else None + reason_or_outcome = None + if decision is not None: + reason_or_outcome = decision.reason + elif result is not None: + reason_or_outcome = result.reason + return RequestAdmissionEvent.capture( + event_kind, # type: ignore[arg-type] + sequence=self._sequence, + correlation=event_context.captured_correlation + if event_context is not None + else runtime_correlation_provider.current(), + request_attempt_id=event_context.request_attempt_id if event_context is not None else None, + request_lease_id=lease.lease_id if lease is not None else None, + request_resource_key=resource, + request_group_key=group_key, + reason_or_outcome=reason_or_outcome, + pressure_snapshot=self._snapshot_locked(resource, time.monotonic()) if resource is not None else None, + diagnostics=dict(diagnostics or {}), + ) + + def _emit_events(self, events: list[RequestAdmissionEvent]) -> None: + if self._event_sink is None: + return + for event in events: + try: + self._event_sink.emit_request_event(event) + except Exception: + continue diff --git a/packages/data-designer-engine/src/data_designer/engine/models/clients/retry.py b/packages/data-designer-engine/src/data_designer/engine/models/clients/retry.py index 56aa1eec4..9f51a48b2 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/clients/retry.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/clients/retry.py @@ -14,8 +14,8 @@ logger = logging.getLogger(__name__) -# 429 must not be retried at the transport layer so that rate-limit signals -# propagate to ThrottledModelClient for AIMD backoff. +# 429 must not be retried at the transport layer so rate-limit signals +# propagate to ModelRequestExecutor and request admission for AIMD backoff. _RESERVED_STATUS_CODES: frozenset[int] = frozenset({429}) @@ -25,7 +25,7 @@ class RetryConfig: Retries non-rate-limit transient failures (``502``, ``503``, ``504``) and connection/transport errors. ``429`` is intentionally excluded so that - rate-limit signals reach the ``ThrottledModelClient`` wrapper for AIMD + rate-limit signals reach the ``ModelRequestExecutor`` boundary for AIMD backoff. If a caller includes ``429`` in ``retryable_status_codes``, ``create_retry_transport`` will strip it and log a warning. """ @@ -52,10 +52,8 @@ def create_retry_transport( config: Retry policy. Uses ``RetryConfig()`` defaults when ``None``. strip_rate_limit_codes: When ``True`` (default, used by the async engine), status codes in ``_RESERVED_STATUS_CODES`` (currently ``{429}``) are - stripped so that rate-limit responses reach the ``ThrottledModelClient`` - AIMD feedback loop. When ``False`` (used by the sync engine, which has - no salvage queue), 429 is kept in the retry list so the transport layer - retries it transparently. + stripped so that rate-limit responses reach the request-admission + AIMD feedback loop. transport: Optional pre-configured transport to pass directly to ``RetryTransport``. Pass ``httpx.HTTPTransport`` for sync clients or ``httpx.AsyncHTTPTransport`` for async clients — typically with a custom @@ -70,7 +68,7 @@ def create_retry_transport( if reserved_overlap: logger.warning( "Stripping reserved status codes %s from retryable_status_codes; " - "these must reach ThrottledModelClient for AIMD backoff.", + "these must reach ModelRequestExecutor/request admission for AIMD backoff.", sorted(reserved_overlap), ) status_codes = status_codes - _RESERVED_STATUS_CODES diff --git a/packages/data-designer-engine/src/data_designer/engine/models/clients/throttle_manager.py b/packages/data-designer-engine/src/data_designer/engine/models/clients/throttle_manager.py deleted file mode 100644 index fb57c32ab..000000000 --- a/packages/data-designer-engine/src/data_designer/engine/models/clients/throttle_manager.py +++ /dev/null @@ -1,505 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -from __future__ import annotations - -import asyncio -import logging -import math -import threading -import time -from dataclasses import dataclass, field -from enum import Enum - -from data_designer.config.run_config import ThrottleConfig - -logger = logging.getLogger(__name__) - - -class ThrottleDomain(str, Enum): - CHAT = "chat" - EMBEDDING = "embedding" - IMAGE = "image" - HEALTHCHECK = "healthcheck" - - -# --------------------------------------------------------------------------- -# Constants -# --------------------------------------------------------------------------- - -DEFAULT_MIN_LIMIT: int = 1 -CAPACITY_POLL_INTERVAL: float = 0.05 - - -# --------------------------------------------------------------------------- -# Internal state containers -# --------------------------------------------------------------------------- - - -@dataclass -class DomainThrottleState: - """Per-domain AIMD concurrency state. - - All mutations must be performed while holding the owning - ``ThrottleManager._lock``. - """ - - current_limit: int - in_flight: int = 0 - blocked_until: float = 0.0 - success_streak: int = 0 - waiters: int = 0 - rate_limit_ceiling: int = 0 - consecutive_429s: int = 0 - - -@dataclass -class GlobalCapState: - """Tracks the effective hard cap across aliases sharing a provider+model.""" - - limits_by_alias: dict[str, int] = field(default_factory=dict) - effective_max: int = 0 - - def register_alias(self, alias: str, max_parallel: int) -> None: - self.limits_by_alias[alias] = max_parallel - self.effective_max = min(self.limits_by_alias.values()) - - -# --------------------------------------------------------------------------- -# ThrottleManager -# --------------------------------------------------------------------------- - - -class ThrottleManager: - """Adaptive concurrency manager using AIMD (Additive Increase / - Multiplicative Decrease). - - Keyed at two levels: - - - **Global cap**: ``(provider_name, model_id)`` — shared hard ceiling. - - **Domain**: ``(provider_name, model_id, throttle_domain)`` — per-route - AIMD state that floats between 1 and the global effective max. - - **AIMD behaviour**: - - - *Decrease* — on a 429 / rate-limit signal the domain's concurrency limit - is multiplied by ``reduce_factor`` (default 0.75, i.e. reduced by 25%) - and a cooldown block is applied for ``retry_after`` seconds (or - ``default_cooldown_seconds``). - - *Increase* — after every ``success_window`` consecutive successful - releases the limit grows by ``additive_increase`` (default 1), up to - the *rate-limit ceiling* (or the global effective max if no 429 has - been observed yet). - - *Stabilization* — each 429 records the pre-halving limit as - ``rate_limit_ceiling``. Subsequent additive increases stop at - ``ceiling * (1 + ceiling_overshoot)`` (default 10%) instead of - climbing all the way to ``effective_max``. The overshoot band lets - the system probe whether the endpoint can now handle more traffic - (e.g. after load drops) while dampening the sawtooth. If the probe - succeeds, the ceiling ratchets up; if it triggers another 429, the - ceiling lowers. - - Thread-safe: all state mutations are guarded by a single lock so that - sync and async callers co-throttle correctly. - """ - - def __init__( - self, - config: ThrottleConfig | None = None, - ) -> None: - tc = config or ThrottleConfig() - self._reduce_factor = tc.reduce_factor - self._additive_increase = tc.additive_increase - self._success_window = tc.success_window - self._default_cooldown_seconds = tc.cooldown_seconds - self._ceiling_overshoot = tc.ceiling_overshoot - self._lock = threading.Lock() - self._global_caps: dict[tuple[str, str], GlobalCapState] = {} - self._domains: dict[tuple[str, str, str], DomainThrottleState] = {} - - # ------------------------------------------------------------------- - # Registration - # ------------------------------------------------------------------- - - def register( - self, - *, - provider_name: str, - model_id: str, - alias: str, - max_parallel_requests: int, - ) -> None: - """Register a model alias and its concurrency limit. - - If multiple aliases share the same ``(provider_name, model_id)`` the - effective max is ``min()`` of all registered limits. Existing domain - states are clamped to the new effective max. - - **Ordering invariant:** ``register()`` must be called for a - ``(provider_name, model_id)`` pair *before* any ``try_acquire()`` for - the same key. If ``try_acquire()`` runs first it creates a domain at - ``DEFAULT_MIN_LIMIT`` and ``_clamp_domains`` only *decreases* limits, - so a later ``register()`` will not raise the domain to the intended - capacity. - """ - with self._lock: - global_key = (provider_name, model_id) - cap = self._global_caps.setdefault(global_key, GlobalCapState()) - cap.register_alias(alias, max_parallel_requests) - self._clamp_domains(global_key, cap.effective_max) - logger.debug( - "Throttle registered alias=%r for %s/%s (max_parallel=%d, effective_max=%d)", - alias, - provider_name, - model_id, - max_parallel_requests, - cap.effective_max, - ) - - # ------------------------------------------------------------------- - # Core non-blocking primitives - # ------------------------------------------------------------------- - - def is_registered(self, provider_name: str, model_id: str) -> bool: - """Return ``True`` if ``register()`` has been called for this key.""" - with self._lock: - return (provider_name, model_id) in self._global_caps - - def try_acquire( - self, - *, - provider_name: str, - model_id: str, - domain: ThrottleDomain, - now: float | None = None, - ) -> float: - """Attempt to acquire a concurrency slot. - - Returns ``0.0`` if the slot was acquired, otherwise the number of - seconds the caller should wait before retrying. - - Raises ``RuntimeError`` if the ``(provider_name, model_id)`` pair - has not been registered via ``register()``. - """ - now = now if now is not None else time.monotonic() - with self._lock: - if (provider_name, model_id) not in self._global_caps: - raise RuntimeError( - f"ThrottleManager.try_acquire() called before register() " - f"for ({provider_name!r}, {model_id!r}). " - f"Call register() first to set the concurrency limit." - ) - state = self._get_or_create_domain(provider_name, model_id, domain) - if now < state.blocked_until: - return state.blocked_until - now - if state.in_flight >= state.current_limit: - return CAPACITY_POLL_INTERVAL - state.in_flight += 1 - return 0.0 - - def release_success( - self, - *, - provider_name: str, - model_id: str, - domain: ThrottleDomain, - now: float | None = None, - ) -> None: - with self._lock: - state = self._get_or_create_domain(provider_name, model_id, domain) - state.in_flight = max(0, state.in_flight - 1) - state.consecutive_429s = 0 - state.success_streak += 1 - if state.success_streak >= self._success_window: - effective_max = self._effective_max_for(provider_name, model_id) - cap = self._compute_soft_ceiling(state, effective_max) - if state.current_limit < cap: - prev = state.current_limit - state.current_limit = min(state.current_limit + self._additive_increase, cap) - if state.current_limit >= cap: - if cap < effective_max: - logger.info( - "🔋✅ '%s' [%s] concurrency recovered to %d parallel requests", - model_id, - domain.value, - state.current_limit, - ) - else: - logger.info( - "🔋✅ '%s' [%s] concurrency fully recovered (%d parallel requests)", - model_id, - domain.value, - state.current_limit, - ) - else: - logger.info( - "🪫📈🔥 '%s' [%s] concurrency increased from %d → %d", - model_id, - domain.value, - prev, - state.current_limit, - ) - state.success_streak = 0 - - def release_rate_limited( - self, - *, - provider_name: str, - model_id: str, - domain: ThrottleDomain, - retry_after: float | None = None, - now: float | None = None, - ) -> None: - now = now if now is not None else time.monotonic() - with self._lock: - state = self._get_or_create_domain(provider_name, model_id, domain) - state.in_flight = max(0, state.in_flight - 1) - prev_limit = state.current_limit - is_first_in_cascade = state.consecutive_429s == 0 - state.consecutive_429s += 1 - cooldown_duration = ( - retry_after if retry_after is not None and retry_after > 0 else self._default_cooldown_seconds - ) - state.blocked_until = now + cooldown_duration - state.success_streak = 0 - - if is_first_in_cascade: - state.current_limit = max(DEFAULT_MIN_LIMIT, math.floor(state.current_limit * self._reduce_factor)) - if state.current_limit < prev_limit: - if state.rate_limit_ceiling == 0: - state.rate_limit_ceiling = prev_limit - else: - state.rate_limit_ceiling = min(state.rate_limit_ceiling, prev_limit) - if state.rate_limit_ceiling < prev_limit: - logger.info( - "🪫📉 '%s' [%s] server rate-limited at %d (server limit ~%d) — concurrency reduced to %d (retrying in %.0fs)", - model_id, - domain.value, - prev_limit, - state.rate_limit_ceiling, - state.current_limit, - cooldown_duration, - ) - else: - logger.info( - "🪫📉 '%s' [%s] server rate-limited — concurrency reduced from %d → %d (retrying in %.0fs)", - model_id, - domain.value, - prev_limit, - state.current_limit, - cooldown_duration, - ) - else: - logger.debug( - "Throttle %s [%s] cascade 429 #%d (limit held at %d)", - model_id, - domain.value, - state.consecutive_429s, - state.current_limit, - ) - - def release_failure( - self, - *, - provider_name: str, - model_id: str, - domain: ThrottleDomain, - now: float | None = None, - ) -> None: - with self._lock: - state = self._get_or_create_domain(provider_name, model_id, domain) - state.in_flight = max(0, state.in_flight - 1) - # Non-rate-limit failure breaks the 429 cascade: a sequence like - # 429 → 500 → 429 should treat the second 429 as the start of a - # new cascade. But only after the prior burst has fully drained - # (in_flight == 0) - otherwise mixed responses from a single - # in-flight wave (429 → 500 → 429 with concurrent slots) would - # double-reduce the limit even though the provider hasn't - # recovered between the two 429s. - if state.in_flight == 0: - state.consecutive_429s = 0 - - # ------------------------------------------------------------------- - # Sync / async wrappers - # ------------------------------------------------------------------- - - def acquire_sync( - self, - *, - provider_name: str, - model_id: str, - domain: ThrottleDomain, - timeout: float | None = None, - ) -> None: - """Block until a permit is available. - - ``timeout=None`` (the default) waits indefinitely; the per-request HTTP - timeout (``inference_parameters.timeout``) is the only deadline that bounds - actual work, and queue waits scale naturally with provider speed and - AIMD's adaptive concurrency. Pass an explicit float for tests or for - support cases where a queue-wait deadline is genuinely desired. - """ - deadline = (time.monotonic() + timeout) if timeout is not None else None - wait = self.try_acquire(provider_name=provider_name, model_id=model_id, domain=domain) - if wait == 0.0: - return - with self._lock: - # state is captured once and reused in the finally block; safe - # because DomainThrottleState objects are never replaced after creation. - state = self._get_or_create_domain(provider_name, model_id, domain) - state.waiters += 1 - if state.waiters == 1: - logger.debug( - "Throttle %s/%s [%s] queue forming (in_flight=%d/%d)", - provider_name, - model_id, - domain.value, - state.in_flight, - state.current_limit, - ) - try: - while True: - if deadline is not None: - remaining = deadline - time.monotonic() - if remaining <= 0 or wait > remaining: - raise TimeoutError( - f"Throttle acquire timed out after {timeout:.0f}s " - f"for {provider_name}/{model_id} [{domain.value}]" - ) - sleep_for = min(wait, remaining) - else: - sleep_for = wait - time.sleep(sleep_for) - wait = self.try_acquire(provider_name=provider_name, model_id=model_id, domain=domain) - if wait == 0.0: - return - finally: - with self._lock: - state.waiters -= 1 - if state.waiters == 0: - logger.debug( - "Throttle %s/%s [%s] queue drained", - provider_name, - model_id, - domain.value, - ) - - async def acquire_async( - self, - *, - provider_name: str, - model_id: str, - domain: ThrottleDomain, - timeout: float | None = None, - ) -> None: - """Block until a permit is available. - - ``timeout=None`` (the default) waits indefinitely; the per-request HTTP - timeout (``inference_parameters.timeout``) is the only deadline that bounds - actual work, and queue waits scale naturally with provider speed and - AIMD's adaptive concurrency. Pass an explicit float for tests or for - support cases where a queue-wait deadline is genuinely desired. - """ - deadline = (time.monotonic() + timeout) if timeout is not None else None - wait = self.try_acquire(provider_name=provider_name, model_id=model_id, domain=domain) - if wait == 0.0: - return - with self._lock: - # state is captured once and reused in the finally block; safe - # because DomainThrottleState objects are never replaced after creation. - state = self._get_or_create_domain(provider_name, model_id, domain) - state.waiters += 1 - if state.waiters == 1: - logger.debug( - "Throttle %s/%s [%s] queue forming (in_flight=%d/%d)", - provider_name, - model_id, - domain.value, - state.in_flight, - state.current_limit, - ) - try: - while True: - if deadline is not None: - remaining = deadline - time.monotonic() - if remaining <= 0 or wait > remaining: - raise TimeoutError( - f"Throttle acquire timed out after {timeout:.0f}s " - f"for {provider_name}/{model_id} [{domain.value}]" - ) - sleep_for = min(wait, remaining) - else: - sleep_for = wait - await asyncio.sleep(sleep_for) - wait = self.try_acquire(provider_name=provider_name, model_id=model_id, domain=domain) - if wait == 0.0: - return - finally: - with self._lock: - state.waiters -= 1 - if state.waiters == 0: - logger.debug( - "Throttle %s/%s [%s] queue drained", - provider_name, - model_id, - domain.value, - ) - - # ------------------------------------------------------------------- - # Introspection (useful for tests and telemetry) - # ------------------------------------------------------------------- - - def get_domain_state( - self, - provider_name: str, - model_id: str, - domain: ThrottleDomain, - ) -> DomainThrottleState | None: - with self._lock: - return self._domains.get((provider_name, model_id, domain.value)) - - def get_effective_max(self, provider_name: str, model_id: str) -> int: - with self._lock: - return self._effective_max_for(provider_name, model_id) - - # ------------------------------------------------------------------- - # Private helpers - # ------------------------------------------------------------------- - - def _compute_soft_ceiling(self, state: DomainThrottleState, effective_max: int) -> int: - """Return the upper bound for additive increase. - - If a rate-limit ceiling has been recorded, allow probing up to - ``ceiling * (1 + overshoot)`` (clamped to ``effective_max``). - Otherwise fall back to ``effective_max``. - """ - if state.rate_limit_ceiling <= 0: - return effective_max - soft = state.rate_limit_ceiling + max(1, math.floor(state.rate_limit_ceiling * self._ceiling_overshoot)) - return min(soft, effective_max) - - def _get_or_create_domain( - self, - provider_name: str, - model_id: str, - domain: ThrottleDomain, - ) -> DomainThrottleState: - key = (provider_name, model_id, domain.value) - state = self._domains.get(key) - if state is None: - effective_max = self._effective_max_for(provider_name, model_id) - state = DomainThrottleState(current_limit=effective_max) - self._domains[key] = state - return state - - def _effective_max_for(self, provider_name: str, model_id: str) -> int: - cap = self._global_caps.get((provider_name, model_id)) - if cap is None or cap.effective_max <= 0: - return DEFAULT_MIN_LIMIT - return cap.effective_max - - def _clamp_domains(self, global_key: tuple[str, str], effective_max: int) -> None: - provider_name, model_id = global_key - for (pn, mid, _dom), state in self._domains.items(): - if pn == provider_name and mid == model_id and state.current_limit > effective_max: - state.current_limit = effective_max diff --git a/packages/data-designer-engine/src/data_designer/engine/models/clients/throttled.py b/packages/data-designer-engine/src/data_designer/engine/models/clients/throttled.py deleted file mode 100644 index 797452c69..000000000 --- a/packages/data-designer-engine/src/data_designer/engine/models/clients/throttled.py +++ /dev/null @@ -1,222 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -from __future__ import annotations - -import contextlib -import logging -from typing import TYPE_CHECKING - -from data_designer.engine.models.clients.base import ModelClient -from data_designer.engine.models.clients.errors import ProviderError, ProviderErrorKind -from data_designer.engine.models.clients.throttle_manager import ThrottleDomain -from data_designer.engine.models.clients.types import ( - ChatCompletionRequest, - ChatCompletionResponse, - EmbeddingRequest, - EmbeddingResponse, - ImageGenerationRequest, - ImageGenerationResponse, -) - -if TYPE_CHECKING: - from collections.abc import AsyncIterator, Iterator - - from data_designer.engine.models.clients.throttle_manager import ThrottleManager - - -logger = logging.getLogger(__name__) - - -class ThrottledModelClient(ModelClient): - """Wraps a ``ModelClient`` with per-request throttle acquire/release. - - Inherits from ``ModelClient`` (a ``Protocol``) so that static type - checkers verify conformance and flag missing methods if the protocol - evolves. - - Every outbound HTTP call acquires a throttle permit from the - ``ThrottleManager`` and releases it on success, rate-limit, or failure. - The ``ThrottleDomain`` is determined by the method: - - - ``completion`` / ``acompletion`` -> ``CHAT`` - - ``embeddings`` / ``aembeddings`` -> ``EMBEDDING`` - - ``generate_image`` / ``agenerate_image`` -> ``IMAGE`` when - ``request.messages is None`` (diffusion), ``CHAT`` when messages are set - """ - - def __init__( - self, - inner: ModelClient, - throttle_manager: ThrottleManager, - provider_name: str, - model_id: str, - ) -> None: - self._inner = inner - self._tm = throttle_manager - self._provider_name = provider_name - self._model_id = model_id - - # --- ModelClient protocol delegation --- - - @property - def provider_name(self) -> str: - return self._inner.provider_name - - def supports_chat_completion(self) -> bool: - return self._inner.supports_chat_completion() - - def supports_embeddings(self) -> bool: - return self._inner.supports_embeddings() - - def supports_image_generation(self) -> bool: - return self._inner.supports_image_generation() - - def close(self) -> None: - self._inner.close() - - async def aclose(self) -> None: - await self._inner.aclose() - - # --- Throttled methods --- - - def completion(self, request: ChatCompletionRequest) -> ChatCompletionResponse: - with self._throttled_sync(ThrottleDomain.CHAT): - return self._inner.completion(request) - - async def acompletion(self, request: ChatCompletionRequest) -> ChatCompletionResponse: - async with self._athrottled(ThrottleDomain.CHAT): - return await self._inner.acompletion(request) - - def embeddings(self, request: EmbeddingRequest) -> EmbeddingResponse: - with self._throttled_sync(ThrottleDomain.EMBEDDING): - return self._inner.embeddings(request) - - async def aembeddings(self, request: EmbeddingRequest) -> EmbeddingResponse: - async with self._athrottled(ThrottleDomain.EMBEDDING): - return await self._inner.aembeddings(request) - - def generate_image(self, request: ImageGenerationRequest) -> ImageGenerationResponse: - domain = self._image_domain(request) - with self._throttled_sync(domain): - return self._inner.generate_image(request) - - async def agenerate_image(self, request: ImageGenerationRequest) -> ImageGenerationResponse: - domain = self._image_domain(request) - async with self._athrottled(domain): - return await self._inner.agenerate_image(request) - - # --- Context managers --- - - @contextlib.contextmanager - def _throttled_sync(self, domain: ThrottleDomain) -> Iterator[None]: - try: - self._tm.acquire_sync( - provider_name=self._provider_name, - model_id=self._model_id, - domain=domain, - ) - except TimeoutError as exc: - raise ProviderError( - kind=ProviderErrorKind.TIMEOUT, - message=str(exc), - provider_name=self._provider_name, - model_name=self._model_id, - ) from exc - exc_to_reraise: BaseException | None = None - try: - yield - except ProviderError as exc: - exc_to_reraise = exc - try: - self._release_on_provider_error(domain, exc) - except Exception: - logger.exception("ThrottleManager release failed; permit may leak") - except BaseException as exc: - exc_to_reraise = exc - try: - self._tm.release_failure( - provider_name=self._provider_name, - model_id=self._model_id, - domain=domain, - ) - except Exception: - logger.exception("ThrottleManager release failed; permit may leak") - else: - try: - self._tm.release_success( - provider_name=self._provider_name, - model_id=self._model_id, - domain=domain, - ) - except Exception: - logger.exception("ThrottleManager release_success failed") - if exc_to_reraise is not None: - raise exc_to_reraise - - @contextlib.asynccontextmanager - async def _athrottled(self, domain: ThrottleDomain) -> AsyncIterator[None]: - try: - await self._tm.acquire_async( - provider_name=self._provider_name, - model_id=self._model_id, - domain=domain, - ) - except TimeoutError as exc: - raise ProviderError( - kind=ProviderErrorKind.TIMEOUT, - message=str(exc), - provider_name=self._provider_name, - model_name=self._model_id, - ) from exc - exc_to_reraise: BaseException | None = None - try: - yield - except ProviderError as exc: - exc_to_reraise = exc - try: - self._release_on_provider_error(domain, exc) - except Exception: - logger.exception("ThrottleManager release failed; permit may leak") - except BaseException as exc: - exc_to_reraise = exc - try: - self._tm.release_failure( - provider_name=self._provider_name, - model_id=self._model_id, - domain=domain, - ) - except Exception: - logger.exception("ThrottleManager release failed; permit may leak") - else: - try: - self._tm.release_success( - provider_name=self._provider_name, - model_id=self._model_id, - domain=domain, - ) - except Exception: - logger.exception("ThrottleManager release_success failed") - if exc_to_reraise is not None: - raise exc_to_reraise - - # --- Private helpers --- - - def _release_on_provider_error(self, domain: ThrottleDomain, exc: ProviderError) -> None: - if exc.kind == ProviderErrorKind.RATE_LIMIT: - self._tm.release_rate_limited( - provider_name=self._provider_name, - model_id=self._model_id, - domain=domain, - retry_after=exc.retry_after, - ) - else: - self._tm.release_failure( - provider_name=self._provider_name, - model_id=self._model_id, - domain=domain, - ) - - @staticmethod - def _image_domain(request: ImageGenerationRequest) -> ThrottleDomain: - return ThrottleDomain.CHAT if request.messages is not None else ThrottleDomain.IMAGE diff --git a/packages/data-designer-engine/src/data_designer/engine/models/factory.py b/packages/data-designer-engine/src/data_designer/engine/models/factory.py index 6ef2b2727..27dd13dc6 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/factory.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/factory.py @@ -40,21 +40,21 @@ def create_model_registry( client_concurrency_mode: ``"sync"`` (default) or ``"async"``. Forwarded to native HTTP adapters so each client is constrained to a single concurrency mode. - run_config: Optional runtime configuration. The nested - ``run_config.throttle`` (a ``ThrottleConfig``) is forwarded to the - ``ThrottleManager`` constructor. + run_config: Optional runtime configuration. Request admission uses + engine-internal defaults in V1; no public run-config knob is exposed. Returns: A configured ModelRegistry instance. """ from data_designer.config.run_config import RunConfig from data_designer.engine.models.clients.factory import create_model_client + from data_designer.engine.models.clients.request_admission import AdaptiveRequestAdmissionController from data_designer.engine.models.clients.retry import RetryConfig - from data_designer.engine.models.clients.throttle_manager import ThrottleManager from data_designer.engine.models.facade import ModelFacade from data_designer.engine.models.registry import ModelRegistry - throttle_manager = ThrottleManager((run_config or RunConfig()).throttle) + _ = run_config or RunConfig() + request_admission = AdaptiveRequestAdmissionController() def model_facade_factory( model_config: ModelConfig, @@ -68,7 +68,7 @@ def model_facade_factory( model_provider_registry, retry_config=retry_config, client_concurrency_mode=client_concurrency_mode, - throttle_manager=throttle_manager, + request_admission=request_admission, ) return ModelFacade( model_config, @@ -82,6 +82,6 @@ def model_facade_factory( secret_resolver=secret_resolver, model_provider_registry=model_provider_registry, model_facade_factory=model_facade_factory, - throttle_manager=throttle_manager, + request_admission=request_admission, retry_config=RetryConfig(), ) diff --git a/packages/data-designer-engine/src/data_designer/engine/models/registry.py b/packages/data-designer-engine/src/data_designer/engine/models/registry.py index a6103ffc3..04e2f4fd1 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/registry.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/registry.py @@ -15,8 +15,8 @@ if TYPE_CHECKING: from collections.abc import Callable + from data_designer.engine.models.clients.request_admission import AdaptiveRequestAdmissionController from data_designer.engine.models.clients.retry import RetryConfig - from data_designer.engine.models.clients.throttle_manager import ThrottleManager from data_designer.engine.models.facade import ModelFacade ModelFacadeFactory = Callable[ @@ -35,13 +35,13 @@ def __init__( model_provider_registry: ModelProviderRegistry, model_configs: list[ModelConfig] | None = None, model_facade_factory: ModelFacadeFactory | None = None, - throttle_manager: ThrottleManager | None = None, + request_admission: AdaptiveRequestAdmissionController | None = None, retry_config: RetryConfig | None = None, ) -> None: self._secret_resolver = secret_resolver self._model_provider_registry = model_provider_registry self._model_facade_factory = model_facade_factory - self._throttle_manager = throttle_manager + self._request_admission = request_admission self._retry_config = retry_config self._model_configs: dict[str, ModelConfig] = {} self._models: dict[str, ModelFacade] = {} @@ -56,8 +56,8 @@ def models(self) -> dict[str, ModelFacade]: return self._models @property - def throttle_manager(self) -> ThrottleManager | None: - return self._throttle_manager + def request_admission(self) -> AdaptiveRequestAdmissionController | None: + return self._request_admission @property def retry_config(self) -> RetryConfig | None: @@ -178,10 +178,9 @@ def get_aggregate_max_parallel_requests(self) -> int: This is a coarse upper bound: it sums over *all* registered aliases, including those not referenced by the current generator set, and does not deduplicate aliases sharing a ``(provider_name, model_id)`` key. - The result is used to size the scheduler's LLM-wait semaphore, which - is a memory-safety cap — oversizing wastes a few coroutine slots but - does not affect correctness because the ``ThrottleManager`` enforces - the real per-key limit. + The result is used to size scheduler task-stage model admission, which + is a memory-safety cap. Concrete provider/model request capacity is + enforced by request admission at model-call time. """ return sum(mc.inference_parameters.max_parallel_requests for mc in self._model_configs.values()) @@ -314,8 +313,8 @@ def _get_model(self, model_config: ModelConfig) -> ModelFacade: self._model_provider_registry, self._retry_config, ) - if self._throttle_manager is not None: - self._throttle_manager.register( + if self._request_admission is not None: + self._request_admission.register( provider_name=facade.model_provider_name, model_id=model_config.model, alias=model_config.alias, diff --git a/packages/data-designer-engine/src/data_designer/engine/observability.py b/packages/data-designer-engine/src/data_designer/engine/observability.py new file mode 100644 index 000000000..bcb938d4e --- /dev/null +++ b/packages/data-designer-engine/src/data_designer/engine/observability.py @@ -0,0 +1,187 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +import contextvars +import time +from dataclasses import dataclass, field +from typing import Literal, Protocol + + +@dataclass(frozen=True) +class RuntimeCorrelation: + run_id: str + row_group: int | None + task_column: str | None + task_type: str | None + scheduling_group_kind: str | None + scheduling_group_identity_hash: str | None + task_execution_id: str | None + + +class RuntimeCorrelationProvider: + """Context-variable backed runtime correlation provider.""" + + def __init__(self) -> None: + self._current: contextvars.ContextVar[RuntimeCorrelation | None] = contextvars.ContextVar( + "data_designer_runtime_correlation", + default=None, + ) + + def current(self) -> RuntimeCorrelation | None: + return self._current.get() + + def set(self, correlation: RuntimeCorrelation | None) -> contextvars.Token: + return self._current.set(correlation) + + def reset(self, token: contextvars.Token) -> None: + self._current.reset(token) + + +runtime_correlation_provider = RuntimeCorrelationProvider() + +SchedulerAdmissionEventKind = Literal[ + "dependency_ready", + "ready_enqueued", + "selected", + "queue_empty", + "admission_blocked", + "group_capped", + "task_lease_acquired", + "admission_denied", + "worker_spawned", + "worker_spawn_failed", + "stale_selection", + "retry_deferred", + "non_retryable_dropped", + "cancelled", + "salvage_redispatched", + "queue_drained", + "task_completed", + "task_lease_released", + "release_diagnostic", +] + +RequestAdmissionEventKind = Literal[ + "request_resource_registered", + "request_effective_cap_changed", + "request_queue_formed", + "request_wait_started", + "request_wait_completed", + "request_wait_timeout", + "request_wait_cancelled", + "request_acquire_denied", + "request_lease_acquired", + "model_request_started", + "model_request_completed", + "request_queue_drained", + "request_rate_limited", + "request_limit_decreased", + "request_limit_increased", + "request_soft_ceiling_recovered", + "request_fully_recovered", + "request_lease_released", + "request_release_diagnostic", +] + + +@dataclass(frozen=True) +class SchedulerAdmissionEvent: + event_kind: SchedulerAdmissionEventKind + captured_at_monotonic: float + sequence: int + captured_correlation: RuntimeCorrelation | None = None + task_id: str | None = None + task_execution_id: str | None = None + task_lease_id: str | None = None + scheduler_resource_key: str | None = None + reason_or_result: str | None = None + snapshot: object | None = None + diagnostics: dict[str, object] = field(default_factory=dict) + + @classmethod + def capture( + cls, + event_kind: SchedulerAdmissionEventKind, + *, + sequence: int, + correlation: RuntimeCorrelation | None = None, + **kwargs: object, + ) -> SchedulerAdmissionEvent: + return cls( + event_kind=event_kind, + captured_at_monotonic=time.monotonic(), + sequence=sequence, + captured_correlation=correlation, + **kwargs, + ) + + +@dataclass(frozen=True) +class RequestAdmissionEvent: + event_kind: RequestAdmissionEventKind + captured_at_monotonic: float + sequence: int + captured_correlation: RuntimeCorrelation | None = None + request_attempt_id: str | None = None + request_lease_id: str | None = None + request_resource_key: object | None = None + request_group_key: object | None = None + reason_or_outcome: str | None = None + pressure_snapshot: object | None = None + diagnostics: dict[str, object] = field(default_factory=dict) + + @classmethod + def capture( + cls, + event_kind: RequestAdmissionEventKind, + *, + sequence: int, + correlation: RuntimeCorrelation | None = None, + **kwargs: object, + ) -> RequestAdmissionEvent: + return cls( + event_kind=event_kind, + captured_at_monotonic=time.monotonic(), + sequence=sequence, + captured_correlation=correlation, + **kwargs, + ) + + +class SchedulerAdmissionEventSink(Protocol): + def emit_scheduler_event(self, event: SchedulerAdmissionEvent) -> None: ... + + +class RequestAdmissionEventSink(Protocol): + def emit_request_event(self, event: RequestAdmissionEvent) -> None: ... + + +class InMemoryAdmissionEventSink: + """Small sink used by tests, diagnostics, and benchmark smoke runs.""" + + def __init__(self) -> None: + self.scheduler_events: list[SchedulerAdmissionEvent] = [] + self.request_events: list[RequestAdmissionEvent] = [] + + def emit_scheduler_event(self, event: SchedulerAdmissionEvent) -> None: + self.scheduler_events.append(event) + + def emit_request_event(self, event: RequestAdmissionEvent) -> None: + self.request_events.append(event) + + +@dataclass(frozen=True) +class CorrelatedRuntimeView: + scheduler_events: tuple[SchedulerAdmissionEvent, ...] + request_events: tuple[RequestAdmissionEvent, ...] + + @property + def timeline(self) -> tuple[SchedulerAdmissionEvent | RequestAdmissionEvent, ...]: + return tuple( + sorted( + (*self.scheduler_events, *self.request_events), + key=lambda event: (event.captured_at_monotonic, event.sequence), + ) + ) diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py b/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py index 6097232ef..26ab918ea 100644 --- a/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py +++ b/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py @@ -23,17 +23,20 @@ from data_designer.config.custom_column import custom_column_generator from data_designer.config.models import ChatCompletionInferenceParams, ModelConfig from data_designer.config.sampler_params import SamplerType +from data_designer.config.scheduling import SchedulingMetadata from data_designer.engine.column_generators.generators.base import ( ColumnGenerator, ColumnGeneratorFullColumn, + ColumnGeneratorWithModelRegistry, FromScratchColumnGenerator, ) from data_designer.engine.column_generators.generators.custom import CustomColumnGenerator -from data_designer.engine.dataset_builders.async_scheduler import AsyncTaskScheduler, build_llm_bound_lookup +from data_designer.engine.dataset_builders.async_scheduler import AsyncTaskScheduler from data_designer.engine.dataset_builders.errors import DatasetGenerationError from data_designer.engine.dataset_builders.utils.completion_tracker import CompletionTracker, FrontierDelta from data_designer.engine.dataset_builders.utils.execution_graph import ExecutionGraph from data_designer.engine.dataset_builders.utils.row_group_buffer import RowGroupBufferManager +from data_designer.engine.dataset_builders.utils.task_admission import TaskAdmissionConfig, TaskAdmissionLease from data_designer.engine.dataset_builders.utils.task_model import Task from data_designer.engine.models.errors import ( RETRYABLE_MODEL_ERRORS, @@ -41,6 +44,7 @@ ModelRateLimitError, ModelTimeoutError, ) +from data_designer.engine.observability import InMemoryAdmissionEventSink from data_designer.engine.resources.resource_provider import ResourceProvider MODEL_ALIAS = "stub" @@ -83,6 +87,25 @@ def generate(self, data: dict) -> dict: return data +class MockRootCellGenerator(ColumnGenerator[ExpressionColumnConfig]): + """Root cell generator that records the shape it receives.""" + + def __init__(self, *args: Any, **kwargs: Any) -> None: + super().__init__(*args, **kwargs) + self.call_types: list[str] = [] + + @staticmethod + def get_generation_strategy() -> GenerationStrategy: + return GenerationStrategy.CELL_BY_CELL + + def generate(self, data: dict) -> dict: + self.call_types.append(type(data).__name__) + if not isinstance(data, dict): + raise TypeError(f"expected dict, got {type(data).__name__}") + data[self.config.name] = f"root_{len(self.call_types)}" + return data + + class MockFullColumnGenerator(ColumnGeneratorFullColumn[ExpressionColumnConfig]): """Mock full-column generator.""" @@ -228,8 +251,8 @@ def generate(self, data: dict) -> dict: class MockRetryableErrorGenerator(ColumnGenerator[ExpressionColumnConfig]): """Generator that raises a parametrizable retryable error then succeeds. - Declares ``is_llm_bound=True`` because it mimics model-call behavior; - the scheduler's degraded-provider WARN window only counts LLM-bound tasks. + Declares model scheduling metadata because it mimics model-call behavior; + the scheduler's degraded-provider WARN window counts model-stage tasks. """ def __init__( @@ -248,9 +271,8 @@ def __init__( def get_generation_strategy() -> GenerationStrategy: return GenerationStrategy.CELL_BY_CELL - @property - def is_llm_bound(self) -> bool: - return True + def get_scheduling_metadata(self) -> SchedulingMetadata: + return SchedulingMetadata.custom_model("test", self.config.name, "v1") def generate(self, data: dict) -> dict: self._calls += 1 @@ -377,6 +399,31 @@ async def test_scheduler_dispatches_seeds_first() -> None: assert seed_traces[0].dispatched_at < cell_traces[0].dispatched_at +@pytest.mark.asyncio(loop_scope="session") +async def test_scheduler_dispatches_root_cell_by_cell_columns_per_row() -> None: + provider = _mock_provider() + generator = MockRootCellGenerator(config=_expr_config("root_cell"), resource_provider=provider) + configs = [SamplerColumnConfig(name="root_cell", sampler_type=SamplerType.CATEGORY, params={"values": ["A"]})] + strategies = {"root_cell": GenerationStrategy.CELL_BY_CELL} + graph = ExecutionGraph.create(configs, strategies) + row_groups = [(0, 3)] + tracker = CompletionTracker.with_graph(graph, row_groups) + scheduler = AsyncTaskScheduler( + generators={"root_cell": generator}, + graph=graph, + tracker=tracker, + row_groups=row_groups, + trace=True, + ) + + await scheduler.run() + + assert generator.call_types == ["dict", "dict", "dict"] + assert [trace.task_type for trace in scheduler.traces] == ["cell", "cell", "cell"] + assert not any(tracker.is_dropped(0, row_index) for row_index in range(3)) + assert tracker.is_row_group_complete(0, 3, ["root_cell"]) + + @pytest.mark.asyncio(loop_scope="session") async def test_scheduler_with_buffer_manager() -> None: """Scheduler writes results to buffer manager and checkpoints.""" @@ -1084,10 +1131,10 @@ def _count_degraded_msgs(caplog: pytest.LogCaptureFixture) -> int: @pytest.mark.parametrize( "retryable_failures,num_records,window,interval_s,expected_count", [ - # Above-threshold + zero throttle: at least one WARN should fire. + # Above-threshold + no log interval: at least one WARN should fire. pytest.param(6, 10, 8, 0.0, "at_least_one", id="fires_above_threshold"), - # Above-threshold + 1h throttle: only one WARN despite sustained degradation. - pytest.param(8, 12, 4, 3600.0, 1, id="throttled_to_one"), + # Above-threshold + 1h log interval: only one WARN despite sustained degradation. + pytest.param(8, 12, 4, 3600.0, 1, id="rate_limited_to_one"), ], ) @pytest.mark.asyncio(loop_scope="session") @@ -1397,15 +1444,14 @@ async def test_scheduler_out_of_order_row_group_completion() -> None: assert checkpoint_order.index(1) < checkpoint_order.index(0) -# -- Dual-semaphore / LLM-bound tests ----------------------------------------- +# -- Task-admission / model-stage tests --------------------------------------- class MockLLMBoundCellGenerator(ColumnGenerator[ExpressionColumnConfig]): - """Mock cell-by-cell generator that reports is_llm_bound=True.""" + """Mock cell-by-cell generator that reports model-stage scheduling metadata.""" - @property - def is_llm_bound(self) -> bool: - return True + def get_scheduling_metadata(self) -> SchedulingMetadata: + return SchedulingMetadata.custom_model("test", self.config.name, "v1") @staticmethod def get_generation_strategy() -> GenerationStrategy: @@ -1416,13 +1462,9 @@ def generate(self, data: dict) -> dict: return data -class MockConfiguredModelCellGenerator(ColumnGenerator[LLMTextColumnConfig]): +class MockConfiguredModelCellGenerator(ColumnGeneratorWithModelRegistry[LLMTextColumnConfig]): """Mock cell generator with model-registry helpers.""" - @property - def is_llm_bound(self) -> bool: - return True - @staticmethod def get_generation_strategy() -> GenerationStrategy: return GenerationStrategy.CELL_BY_CELL @@ -1447,9 +1489,8 @@ def __init__(self, *args: Any, rate_limit_failures: int = 0, **kwargs: Any) -> N self._rate_limit_failures = rate_limit_failures self._calls = 0 - @property - def is_llm_bound(self) -> bool: - return True + def get_scheduling_metadata(self) -> SchedulingMetadata: + return SchedulingMetadata.custom_model("test", self.config.name, "v1") @staticmethod def get_generation_strategy() -> GenerationStrategy: @@ -1492,19 +1533,15 @@ async def test_scheduler_llm_bound_one_way_handoff() -> None: tracker=tracker, row_groups=row_groups, max_submitted_tasks=max_submitted, - max_llm_wait_tasks=max_llm_wait, + max_model_task_admission=max_llm_wait, ) await scheduler.run() assert tracker.is_row_group_complete(0, 3, ["seed", "llm_col"]) - sub_available, llm_available = scheduler.get_semaphore_permits() - assert sub_available == max_submitted, ( - f"Submission semaphore leaked after LLM handoff: available={sub_available}, expected={max_submitted}" - ) - assert llm_available == max_llm_wait, ( - f"LLM-wait semaphore leaked after LLM handoff: available={llm_available}, expected={max_llm_wait}" - ) + snapshot = scheduler.task_admission_snapshot() + assert snapshot.resources_available["submission"] == max_submitted + assert snapshot.resources_available["llm_wait"] == max_llm_wait @pytest.mark.asyncio(loop_scope="session") @@ -1535,21 +1572,19 @@ async def test_scheduler_non_llm_holds_submission_slot() -> None: tracker=tracker, row_groups=row_groups, max_submitted_tasks=2, - max_llm_wait_tasks=max_llm_wait, + max_model_task_admission=max_llm_wait, ) await scheduler.run() assert tracker.is_row_group_complete(0, 3, ["seed", "cell_out"]) - _, llm_available = scheduler.get_semaphore_permits() - assert llm_available == max_llm_wait, ( - f"LLM-wait semaphore was consumed by non-LLM task: available={llm_available}, expected={max_llm_wait}" - ) + snapshot = scheduler.task_admission_snapshot() + assert snapshot.resources_available["llm_wait"] == max_llm_wait @pytest.mark.asyncio(loop_scope="session") async def test_scheduler_deadlock_regression() -> None: - """max_submitted_tasks=1, max_llm_wait_tasks=1, two ready LLM tasks completes without deadlock.""" + """max_submitted_tasks=1, max_model_task_admission=1, two ready LLM tasks completes without deadlock.""" provider = _mock_provider() configs = [ SamplerColumnConfig(name="seed", sampler_type=SamplerType.CATEGORY, params={"values": ["A"]}), @@ -1574,7 +1609,7 @@ async def test_scheduler_deadlock_regression() -> None: tracker=tracker, row_groups=row_groups, max_submitted_tasks=1, - max_llm_wait_tasks=1, + max_model_task_admission=1, ) await asyncio.wait_for(scheduler.run(), timeout=10.0) @@ -1613,9 +1648,12 @@ async def test_drain_frontier_raises_when_ready_but_no_capacity_or_inflight() -> graph=graph, tracker=tracker, row_groups=row_groups, - max_submitted_tasks=0, + task_admission_config=TaskAdmissionConfig(submission_capacity=1), ) scheduler._rg_states[0] = MagicMock(size=1) + blocker = scheduler._schedulable_task(Task(column="cell_out", row_group=0, row_index=99, task_type="cell")) + lease = scheduler._task_admission.try_acquire(blocker, scheduler._fair_queue.view()) + assert isinstance(lease, TaskAdmissionLease) scheduler._apply_frontier_delta(seed_delta) with pytest.raises(RuntimeError, match="Ready frontier is admission-blocked"): @@ -1695,22 +1733,8 @@ def drop_middle_row(row_group: int, row_group_size: int) -> FrontierDelta: assert tracker.is_row_group_complete(0, 3, ["seed", "cell_out"]) -@pytest.mark.asyncio(loop_scope="session") -async def test_scheduler_is_llm_bound_property_drives_lookup() -> None: - """is_llm_bound property on generators drives the lookup, not isinstance.""" - provider = _mock_provider() - llm_gen = MockLLMBoundCellGenerator(config=_expr_config("llm_col"), resource_provider=provider) - non_llm_gen = MockCellGenerator(config=_expr_config("cell_out"), resource_provider=provider) - - assert llm_gen.is_llm_bound is True - assert non_llm_gen.is_llm_bound is False - - lookup = build_llm_bound_lookup({"llm_col": llm_gen, "cell_out": non_llm_gen}) - assert lookup == {"llm_col": True, "cell_out": False} - - -def test_custom_generator_with_model_aliases_is_llm_bound() -> None: - """CustomColumnGenerator with model_aliases reports is_llm_bound=True.""" +def test_custom_generator_with_model_aliases_reports_custom_model_metadata() -> None: + """CustomColumnGenerator with model_aliases reports custom-model metadata.""" @custom_column_generator(model_aliases=["my_model"]) def gen_with_models(row: dict, generator_params: None, models: dict) -> dict: @@ -1729,11 +1753,8 @@ def gen_no_models(row: dict) -> dict: llm_gen = CustomColumnGenerator(config=llm_config, resource_provider=provider) plain_gen = CustomColumnGenerator(config=plain_config, resource_provider=provider) - assert llm_gen.is_llm_bound is True - assert plain_gen.is_llm_bound is False - - lookup = build_llm_bound_lookup({"custom_llm": llm_gen, "custom_plain": plain_gen}) - assert lookup == {"custom_llm": True, "custom_plain": False} + assert llm_gen.get_scheduling_metadata().kind == "custom_model" + assert plain_gen.get_scheduling_metadata().kind == "local" def _provider_with_model_configs(configs: dict[str, ModelConfig]) -> MagicMock: @@ -1762,13 +1783,13 @@ def test_scheduler_model_task_group_spec_uses_model_resource_and_flow() -> None: graph=graph, tracker=tracker, row_groups=[(0, 1)], - max_llm_wait_tasks=5, + max_model_task_admission=5, ) - spec = scheduler._task_group_spec(Task(column="answer", row_group=0, row_index=0, task_type="cell")) + spec = scheduler._schedulable_task(Task(column="answer", row_group=0, row_index=0, task_type="cell")).group assert spec.key.kind == "model" - assert spec.key.identity[:2] == ("mock-provider", "model-text") + assert spec.key.identity[:3] == ("model", "mock-provider", "model-text") assert spec.key.identity[-1] == "answer" assert spec.weight == 3.0 assert spec.admitted_limit == 5 @@ -1792,21 +1813,19 @@ def test_scheduler_task_group_spec_is_cached_per_generator() -> None: graph=graph, tracker=tracker, row_groups=[(0, 2)], - max_llm_wait_tasks=5, + max_model_task_admission=5, ) - spec_a = scheduler._task_group_spec(Task(column="answer", row_group=0, row_index=0, task_type="cell")) - spec_b = scheduler._task_group_spec(Task(column="answer", row_group=0, row_index=1, task_type="cell")) + spec_a = scheduler._schedulable_task(Task(column="answer", row_group=0, row_index=0, task_type="cell")).group + spec_b = scheduler._schedulable_task(Task(column="answer", row_group=0, row_index=1, task_type="cell")).group - assert spec_a is spec_b + assert spec_a == spec_b assert provider.model_registry.get_model_config.call_count == 1 assert provider.model_registry.get_model_provider.call_count == 1 -def test_scheduler_task_group_spec_logs_debug_on_model_resolution_fallback( - caplog: pytest.LogCaptureFixture, -) -> None: - """Direct spec resolution isolates fallback logging without timing-based scheduler traces.""" +def test_scheduler_task_group_spec_raises_on_model_resolution_failure() -> None: + """Model metadata resolution failures are fatal without an explicit fallback.""" provider = MagicMock() provider.model_registry = MagicMock() provider.model_registry.get_model_config.side_effect = RuntimeError("registry unavailable") @@ -1816,29 +1835,14 @@ def test_scheduler_task_group_spec_logs_debug_on_model_resolution_fallback( graph = ExecutionGraph.create([column_config], {"answer": GenerationStrategy.CELL_BY_CELL}) tracker = CompletionTracker.with_graph(graph, [(0, 2)]) - with caplog.at_level("DEBUG", logger="data_designer.engine.dataset_builders.utils.scheduling_hints"): - scheduler = AsyncTaskScheduler( + with pytest.raises(Exception): + AsyncTaskScheduler( generators={"answer": generator}, graph=graph, tracker=tracker, row_groups=[(0, 2)], - max_llm_wait_tasks=5, + max_model_task_admission=5, ) - spec_a = scheduler._task_group_spec(Task(column="answer", row_group=0, row_index=0, task_type="cell")) - spec_b = scheduler._task_group_spec(Task(column="answer", row_group=0, row_index=1, task_type="cell")) - - assert spec_a is spec_b - assert spec_a.key.kind == "custom_model" - assert spec_a.key.identity == ("answer", MODEL_ALIAS) - assert spec_a.weight == 1.0 - assert provider.model_registry.get_model_config.call_count == 1 - fallback_records = [ - record for record in caplog.records if "Falling back to custom-model scheduling group" in record.getMessage() - ] - assert len(fallback_records) == 1 - assert "answer" in fallback_records[0].getMessage() - assert MODEL_ALIAS in fallback_records[0].getMessage() - assert fallback_records[0].exc_info is not None def test_scheduler_custom_model_task_group_spec_uses_alias_set_weight() -> None: @@ -1874,15 +1878,15 @@ def gen_with_models(row: dict, generator_params: None, models: dict) -> dict: graph=graph, tracker=tracker, row_groups=[(0, 1)], - max_llm_wait_tasks=10, + max_model_task_admission=10, ) - spec = scheduler._task_group_spec(Task(column="custom_llm", row_group=0, row_index=0, task_type="cell")) + spec = scheduler._schedulable_task(Task(column="custom_llm", row_group=0, row_index=0, task_type="cell")).group assert spec.key.kind == "custom_model" - assert spec.key.identity == ("custom_llm", "draft", "judge") - assert spec.weight == 5.0 - assert spec.admitted_limit == 10 + assert spec.key.identity[:3] == ("custom_model", "custom_column", "draft-judge") + assert spec.weight == 2.0 + assert spec.admitted_limit == 4 @pytest.mark.asyncio(loop_scope="session") @@ -1927,33 +1931,28 @@ async def test_scheduler_llm_bound_429_retried_in_salvage() -> None: row_groups=row_groups, buffer_manager=buffer_mgr, max_submitted_tasks=max_submitted, - max_llm_wait_tasks=max_llm_wait, + max_model_task_admission=max_llm_wait, ) await scheduler.run() assert tracker.is_row_group_complete(0, num_records, ["seed", "llm_col"]) - sub_available, llm_available = scheduler.get_semaphore_permits() - assert sub_available == max_submitted, ( - f"Submission semaphore leaked after salvage retry: available={sub_available}, expected={max_submitted}" - ) - assert llm_available == max_llm_wait, ( - f"LLM-wait semaphore leaked after salvage retry: available={llm_available}, expected={max_llm_wait}" - ) + snapshot = scheduler.task_admission_snapshot() + assert snapshot.resources_available["submission"] == max_submitted + assert snapshot.resources_available["llm_wait"] == max_llm_wait @pytest.mark.asyncio(loop_scope="session") -async def test_scheduler_cancellation_releases_semaphores() -> None: - """Cancelling the scheduler while LLM-bound tasks are in-flight releases all semaphore slots.""" +async def test_scheduler_cancellation_releases_task_admission_leases() -> None: + """Cancelling the scheduler while model-stage tasks are in-flight releases task leases.""" provider = _mock_provider() blocked = asyncio.Event() proceed = asyncio.Event() class BlockingLLMGenerator(ColumnGenerator[ExpressionColumnConfig]): - @property - def is_llm_bound(self) -> bool: - return True + def get_scheduling_metadata(self) -> SchedulingMetadata: + return SchedulingMetadata.custom_model("test", self.config.name, "v1") @staticmethod def get_generation_strategy() -> GenerationStrategy: @@ -1987,13 +1986,15 @@ async def agenerate(self, data: dict) -> dict: max_submitted = 4 max_llm_wait = 2 + sink = InMemoryAdmissionEventSink() scheduler = AsyncTaskScheduler( generators=generators, graph=graph, tracker=tracker, row_groups=row_groups, max_submitted_tasks=max_submitted, - max_llm_wait_tasks=max_llm_wait, + max_model_task_admission=max_llm_wait, + scheduler_event_sink=sink, ) run_task = asyncio.create_task(scheduler.run()) @@ -2003,13 +2004,10 @@ async def agenerate(self, data: dict) -> dict: with pytest.raises(asyncio.CancelledError): await run_task - sub_available, llm_available = scheduler.get_semaphore_permits() - assert sub_available == max_submitted, ( - f"Submission semaphore leaked: available={sub_available}, expected={max_submitted}" - ) - assert llm_available == max_llm_wait, ( - f"LLM-wait semaphore leaked: available={llm_available}, expected={max_llm_wait}" - ) + snapshot = scheduler.task_admission_snapshot() + assert snapshot.resources_available["submission"] == max_submitted + assert snapshot.resources_available["llm_wait"] == max_llm_wait + assert "cancelled" in [event.event_kind for event in sink.scheduler_events] @pytest.mark.asyncio(loop_scope="session") @@ -2017,7 +2015,7 @@ async def test_scheduler_rg_semaphore_deadlock_with_transient_failures() -> None """Row groups stalled by transient failures don't block admission of new row groups. Regression test: with max_concurrent_row_groups=1 and 2 row groups, if all - tasks in RG0 fail transiently, the semaphore must still be released so RG1 + tasks in RG0 fail transiently, row-group capacity must still be released so RG1 can be admitted. The scheduler salvages RG0 inline and continues. """ provider = _mock_provider() @@ -2098,31 +2096,6 @@ def test_side_effect_columns_separated_from_completion_tracking() -> None: assert "side_b" in write_cols -# -- TrackingSemaphore tests --------------------------------------------------- - - -def test_tracking_semaphore_try_acquire() -> None: - """try_acquire returns True when permits are available, False when exhausted.""" - from data_designer.engine.dataset_builders.async_scheduler import TrackingSemaphore - - sem = TrackingSemaphore(2) - assert sem.available_permits == 2 - - assert sem.try_acquire() is True - assert sem.available_permits == 1 - - assert sem.try_acquire() is True - assert sem.available_permits == 0 - - assert sem.try_acquire() is False - assert sem.available_permits == 0 - - sem.release() - assert sem.available_permits == 1 - assert sem.try_acquire() is True - assert sem.available_permits == 0 - - # -- Pipeline parallelism (stale dispatch fix, issue #504) --------------------- @@ -2147,11 +2120,10 @@ async def agenerate(self, data: dict) -> dict: class SlowLLMBoundCellGenerator(SlowCellGenerator): - """Slow cell generator that participates in LLM-wait scheduling.""" + """Slow cell generator that participates in model-stage scheduling.""" - @property - def is_llm_bound(self) -> bool: - return True + def get_scheduling_metadata(self) -> SchedulingMetadata: + return SchedulingMetadata.custom_model("test", self.config.name, "v1") @pytest.mark.asyncio(loop_scope="session") @@ -2304,7 +2276,7 @@ async def test_scheduler_fair_llm_group_cap_preserves_peer_admission() -> None: tracker=tracker, row_groups=row_groups, max_submitted_tasks=4, - max_llm_wait_tasks=4, + max_model_task_admission=4, trace=True, ) @@ -2318,7 +2290,9 @@ async def test_scheduler_fair_llm_group_cap_preserves_peer_admission() -> None: assert first_window.count("hot") == 2 assert first_window.count("peer") == 2 assert tracker.is_row_group_complete(0, 8, ["topic", *gen_names]) - assert scheduler.get_semaphore_permits() == (4, 4) + snapshot = scheduler.task_admission_snapshot() + assert snapshot.resources_available["submission"] == 4 + assert snapshot.resources_available["llm_wait"] == 4 @pytest.mark.asyncio(loop_scope="session") @@ -2332,9 +2306,9 @@ async def test_scheduler_downstream_interleaves_with_upstream() -> None: ├── gen_b (slow, 50ms) → judge_b (instant) └── gen_c (slow, 50ms) → judge_c (instant) - With a small semaphore (4) and 10 records, the 30 gen tasks (3 cols x 10 rows) - saturate the semaphore. The dispatch loop must re-query the frontier when the - semaphore is full so that judge tasks from completed gen rows are picked up + With small task admission capacity (4) and 10 records, the 30 gen tasks + saturate admission. The dispatch loop must re-query the frontier when capacity + is full so that judge tasks from completed gen rows are picked up before all gen tasks finish. """ provider = _mock_provider() diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_completion_tracker.py b/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_completion_tracker.py index 2ec7b4cd3..da98bd871 100644 --- a/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_completion_tracker.py +++ b/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_completion_tracker.py @@ -189,7 +189,7 @@ def test_get_ready_tasks_seed_frontier(ready_ctx: ReadyTasksFixture) -> None: assert len(ready) == 1 assert ready[0].column == "topic" - assert ready[0].task_type == "batch" + assert ready[0].task_type == "from_scratch" def test_get_ready_tasks_after_seed_complete(ready_ctx: ReadyTasksFixture) -> None: diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_fair_task_queue.py b/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_fair_task_queue.py index b929bce4f..bbc900998 100644 --- a/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_fair_task_queue.py +++ b/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_fair_task_queue.py @@ -5,12 +5,15 @@ from collections import Counter -from data_designer.engine.dataset_builders.utils.fair_task_queue import ( - FairTaskQueue, +from data_designer.engine.dataset_builders.utils.fair_task_queue import FairTaskQueue, QueueView +from data_designer.engine.dataset_builders.utils.task_model import Task +from data_designer.engine.dataset_builders.utils.task_scheduling import ( + SchedulableTask, + SchedulerResourceRequest, TaskGroupKey, TaskGroupSpec, + stable_task_id, ) -from data_designer.engine.dataset_builders.utils.task_model import Task def _task(column: str, row_index: int) -> Task: @@ -25,195 +28,132 @@ def _group(name: str, *, weight: float = 1.0, admitted_limit: int | None = None) ) -def _enqueue(queue: FairTaskQueue, items: list[tuple[Task, TaskGroupSpec]]) -> None: - for task, group in items: - queue.enqueue(task, group) - - -def test_fair_task_queue_equal_groups_round_robins() -> None: - queue = FairTaskQueue() - _enqueue( - queue, - [ - (task, _group(task.column)) - for task in [ - _task("a", 0), - _task("a", 1), - _task("b", 0), - _task("b", 1), - _task("c", 0), - _task("c", 1), - ] - ], +def _item(column: str, row_index: int, group: TaskGroupSpec | None = None) -> SchedulableTask: + task = _task(column, row_index) + group = group or _group(column) + return SchedulableTask( + task_id=stable_task_id(task), + payload=task, + group=group, + resource_request=SchedulerResourceRequest({"submission": 1}), ) - selected = [queue.admit_next() for _ in range(6)] - assert [selection.task.column for selection in selected if selection is not None] == ["a", "b", "c", "a", "b", "c"] +def _select_and_commit(queue: FairTaskQueue) -> SchedulableTask | None: + selection = queue.select_next(lambda _item, _view: True) + if selection is None: + return None + return queue.commit(selection) -def test_fair_task_queue_weighted_groups() -> None: +def test_fair_task_queue_equal_groups_round_robins() -> None: queue = FairTaskQueue() - _enqueue( - queue, + queue.enqueue( [ - (task, _group(task.column, weight=2 if task.column == "a" else 1)) - for task in [_task("a", i) for i in range(6)] + _item("a", 0), + _item("a", 1), + _item("b", 0), + _item("b", 1), + _item("c", 0), + _item("c", 1), ] - + [(_task("b", i), _group("b", weight=1)) for i in range(6)], ) - selected = [queue.admit_next() for _ in range(6)] - counts = Counter(selection.task.column for selection in selected if selection is not None) - - assert counts == {"a": 4, "b": 2} - - -def test_fair_task_queue_discards_queued_tasks() -> None: - queue = FairTaskQueue() - stale = _task("a", 0) - fresh = _task("a", 1) - - _enqueue(queue, [(stale, _group("a")), (fresh, _group("a"))]) - queue.discard(stale) + selected = [_select_and_commit(queue) for _ in range(6)] - selected = queue.admit_next() + assert [item.payload.column for item in selected if item is not None] == ["a", "b", "c", "a", "b", "c"] - assert selected is not None - assert selected.task == fresh - assert queue.admit_next() is None - -def test_fair_task_queue_admitted_cap_skips_saturated_group_with_waiting_peer() -> None: +def test_fair_task_queue_weighted_groups() -> None: queue = FairTaskQueue() - capped = _group("a", admitted_limit=1, weight=1_000) - peer = _group("b") - _enqueue( - queue, - [ - (_task("a", 0), capped), - (_task("a", 1), capped), - (_task("b", 0), peer), - (_task("b", 1), peer), - ], + queue.enqueue( + [_item("a", i, _group("a", weight=2)) for i in range(6)] + + [_item("b", i, _group("b", weight=1)) for i in range(6)] ) - first = queue.admit_next() - peer_first = queue.admit_next() - selected = queue.admit_next() + selected = [_select_and_commit(queue) for _ in range(6)] + counts = Counter(item.payload.column for item in selected if item is not None) - assert first is not None - assert first.task.column == "a" - assert peer_first is not None - assert peer_first.task.column == "b" - assert selected is not None - assert selected.task.column == "b" + assert counts == {"a": 4, "b": 2} -def test_fair_task_queue_solo_group_can_exceed_admitted_cap() -> None: +def test_select_next_is_non_mutating_until_commit() -> None: queue = FairTaskQueue() - group = _group("a", admitted_limit=1) - first_task = _task("a", 0) - second_task = _task("a", 1) - queue.enqueue(first_task, group) - queue.enqueue(second_task, group) + first = _item("a", 0) + second = _item("b", 0) + queue.enqueue([first, second]) - first = queue.admit_next() + selection = queue.select_next(lambda _item, _view: True) - assert first is not None - assert first.task == first_task - second = queue.admit_next() - assert second is not None - assert second.task == second_task - assert queue.has_queued_tasks is False + assert selection is not None + assert queue.view().queued_total == 2 + committed = queue.commit(selection) + assert committed == first + assert queue.view().queued_total == 1 -def test_fair_task_queue_over_cap_group_yields_to_queued_peer() -> None: +def test_commit_rejects_stale_selection() -> None: queue = FairTaskQueue() - capped = _group("a", admitted_limit=1) - peer = _group("b") - _enqueue(queue, [(_task("a", i), capped) for i in range(5)]) + first = _item("a", 0) + queue.enqueue([first]) - solo_selected = [queue.admit_next() for _ in range(3)] - _enqueue(queue, [(_task("b", i), peer) for i in range(2)]) - peer_selected = [queue.admit_next() for _ in range(2)] + selection = queue.select_next(lambda _item, _view: True) + assert selection is not None + queue.enqueue([_item("b", 0)]) - assert [selection.task.column for selection in solo_selected if selection is not None] == ["a", "a", "a"] - assert [selection.task.column for selection in peer_selected if selection is not None] == ["b", "b"] + assert queue.commit(selection) is None + assert queue.view().queued_total == 2 -def test_fair_task_queue_returns_none_when_all_competing_groups_capped() -> None: +def test_select_next_uses_scheduler_eligibility_callback() -> None: queue = FairTaskQueue() - group_a = _group("a", admitted_limit=1) - group_b = _group("b", admitted_limit=1) - _enqueue( - queue, - [ - (_task("a", 0), group_a), - (_task("a", 1), group_a), - (_task("b", 0), group_b), - (_task("b", 1), group_b), - ], - ) + queue.enqueue([_item("a", 0), _item("b", 0)]) - selected = [queue.admit_next() for _ in range(2)] + selection = queue.select_next(lambda item, _view: item.payload.column == "b") - assert [selection.task.column for selection in selected if selection is not None] == ["a", "b"] - assert queue.admit_next() is None - assert queue.has_queued_tasks is True + assert selection is not None + assert selection.item.payload.column == "b" + assert queue.commit(selection) == selection.item -def test_fair_task_queue_release_reopens_saturated_group() -> None: +def test_enqueue_is_idempotent_by_task_id() -> None: queue = FairTaskQueue() - group_a = _group("a", admitted_limit=1) - group_b = _group("b", admitted_limit=1) - _enqueue( - queue, - [ - (_task("a", 0), group_a), - (_task("a", 1), group_a), - (_task("b", 0), group_b), - (_task("b", 1), group_b), - ], - ) - first = queue.admit_next() - second = queue.admit_next() + item = _item("a", 0) - assert first is not None - assert first.task.column == "a" - assert second is not None - assert second.task.column == "b" - assert queue.admit_next() is None + first = queue.enqueue([item]) + second = queue.enqueue([item]) - queue.release(first.task) - reopened = queue.admit_next() + assert first == (item.task_id,) + assert second == () + assert queue.view().queued_total == 1 - assert reopened is not None - assert reopened.task == _task("a", 1) - -def test_fair_task_queue_no_duplicate_on_repeated_enqueue() -> None: +def test_discard_where_removes_matching_tasks() -> None: queue = FairTaskQueue() - task = _task("a", 0) + queue.enqueue([_item(column, i) for column in ["a", "b"] for i in range(2)]) - queue.enqueue(task, _group("a")) - queue.enqueue(task, _group("a")) - first = queue.admit_next() + queue.discard_where(lambda item: item.payload.column == "a") + selected = [_select_and_commit(queue) for _ in range(2)] - assert first is not None - assert first.task == task - assert queue.admit_next() is None + assert [item.payload.column for item in selected if item is not None] == ["b", "b"] + assert _select_and_commit(queue) is None -def test_fair_task_queue_discard_where_removes_matching_tasks() -> None: +def test_queue_view_exposes_group_and_resource_demand() -> None: queue = FairTaskQueue() - _enqueue( - queue, - [(_task(column, i), _group(column)) for column in ["a", "b"] for i in range(2)], + group = _group("a") + task = _task("a", 0) + item = SchedulableTask( + task_id=stable_task_id(task), + payload=task, + group=group, + resource_request=SchedulerResourceRequest({"submission": 1, "llm_wait": 1}), ) - queue.discard_where(lambda task: task.column == "a") - selected = [queue.admit_next() for _ in range(2)] + queue.enqueue([item]) + view: QueueView = queue.view() - assert [selection.task.column for selection in selected if selection is not None] == ["b", "b"] - assert queue.admit_next() is None + assert view.queued_total == 1 + assert view.queued_by_group[group.key] == 1 + assert view.queued_resource_demand_by_group[group.key]["llm_wait"] == 1 + assert view.first_candidate_resources_by_group[group.key]["submission"] == 1 diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_scheduling_hints.py b/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_scheduling_hints.py deleted file mode 100644 index 4e46c07b0..000000000 --- a/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_scheduling_hints.py +++ /dev/null @@ -1,150 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -from __future__ import annotations - -from types import SimpleNamespace -from unittest.mock import MagicMock - -import pytest - -from data_designer.config.column_configs import ( - CustomColumnConfig, - ExpressionColumnConfig, - GenerationStrategy, - LLMTextColumnConfig, -) -from data_designer.config.custom_column import custom_column_generator -from data_designer.config.models import ChatCompletionInferenceParams, ModelConfig -from data_designer.engine.column_generators.generators.base import ColumnGenerator -from data_designer.engine.column_generators.generators.custom import CustomColumnGenerator -from data_designer.engine.dataset_builders.utils.scheduling_hints import SchedulingHint, SchedulingHintResolver -from data_designer.engine.resources.resource_provider import ResourceProvider - -MODEL_ALIAS = "stub" - - -def _expr_config(name: str = "test") -> ExpressionColumnConfig: - return ExpressionColumnConfig(name=name, expr="{{ x }}", dtype="str") - - -def _provider_with_model_configs(configs: dict[str, ModelConfig]) -> MagicMock: - provider = MagicMock(spec=ResourceProvider) - provider.model_registry = MagicMock() - provider.model_registry.get_model_config.side_effect = lambda model_alias: configs[model_alias] - provider.model_registry.get_model_provider.return_value = SimpleNamespace(name="mock-provider") - return provider - - -class LocalCellGenerator(ColumnGenerator[ExpressionColumnConfig]): - @staticmethod - def get_generation_strategy() -> GenerationStrategy: - return GenerationStrategy.CELL_BY_CELL - - def generate(self, data: dict) -> dict: - data[self.config.name] = "local" - return data - - -class ModelCellGenerator(ColumnGenerator[LLMTextColumnConfig]): - @property - def is_llm_bound(self) -> bool: - return True - - @staticmethod - def get_generation_strategy() -> GenerationStrategy: - return GenerationStrategy.CELL_BY_CELL - - def generate(self, data: dict) -> dict: - data[self.config.name] = "model" - return data - - def get_model_config(self, model_alias: str) -> ModelConfig: - return self.resource_provider.model_registry.get_model_config(model_alias=model_alias) - - def get_model_provider_name(self, model_alias: str) -> str: - provider = self.resource_provider.model_registry.get_model_provider(model_alias=model_alias) - return str(provider.name) - - -def test_scheduling_hint_resolver_local_hint_does_not_touch_model_registry() -> None: - provider = MagicMock(spec=ResourceProvider) - provider.model_registry = MagicMock() - generator = LocalCellGenerator(config=_expr_config("local_col"), resource_provider=provider) - - resolver = SchedulingHintResolver({"local_col": generator}) - - assert resolver.hint_for(generator) == SchedulingHint(group_kind="local") - provider.model_registry.get_model_config.assert_not_called() - provider.model_registry.get_model_provider.assert_not_called() - - -def test_scheduling_hint_resolver_resolves_primary_model_once_per_generator() -> None: - model_config = ModelConfig( - alias=MODEL_ALIAS, - model="model-text", - inference_parameters=ChatCompletionInferenceParams(max_parallel_requests=3), - provider="mock-provider", - ) - provider = _provider_with_model_configs({MODEL_ALIAS: model_config}) - column_config = LLMTextColumnConfig(name="answer", prompt="hello", model_alias=MODEL_ALIAS) - generator = ModelCellGenerator(config=column_config, resource_provider=provider) - - resolver = SchedulingHintResolver({"answer": generator, "answer_again": generator}) - hint = resolver.hint_for(generator) - - assert hint.group_kind == "model" - assert hint.identity_prefix[:2] == ("mock-provider", "model-text") - assert hint.weight == 3 - assert provider.model_registry.get_model_config.call_count == 1 - assert provider.model_registry.get_model_provider.call_count == 1 - - -def test_scheduling_hint_resolver_falls_back_to_custom_model_hint_with_debug( - caplog: pytest.LogCaptureFixture, -) -> None: - provider = MagicMock(spec=ResourceProvider) - provider.model_registry = MagicMock() - provider.model_registry.get_model_config.side_effect = RuntimeError("registry unavailable") - provider.model_registry.get_model_provider.return_value = SimpleNamespace(name="mock-provider") - column_config = LLMTextColumnConfig(name="answer", prompt="hello", model_alias=MODEL_ALIAS) - generator = ModelCellGenerator(config=column_config, resource_provider=provider) - - with caplog.at_level("DEBUG", logger="data_designer.engine.dataset_builders.utils.scheduling_hints"): - resolver = SchedulingHintResolver({"answer": generator}) - - hint = resolver.hint_for(generator) - - assert hint == SchedulingHint(group_kind="custom_model", identity_suffix=(MODEL_ALIAS,), weight=1) - fallback_records = [ - record for record in caplog.records if "Falling back to custom-model scheduling group" in record.getMessage() - ] - assert len(fallback_records) == 1 - assert "answer" in fallback_records[0].getMessage() - assert MODEL_ALIAS in fallback_records[0].getMessage() - assert fallback_records[0].exc_info is not None - - -def test_scheduling_hint_resolver_partial_alias_fallback_preserves_resolved_weight() -> None: - @custom_column_generator(model_aliases=["resolved", "missing"]) - def gen_with_models(row: dict, generator_params: None, models: dict) -> dict: - row["custom_llm"] = "value" - return row - - provider = _provider_with_model_configs( - { - "resolved": ModelConfig( - alias="resolved", - model="model-resolved", - inference_parameters=ChatCompletionInferenceParams(max_parallel_requests=7), - provider="mock-provider", - ) - } - ) - config = CustomColumnConfig(name="custom_llm", generator_function=gen_with_models) - generator = CustomColumnGenerator(config=config, resource_provider=provider) - - resolver = SchedulingHintResolver({"custom_llm": generator}) - hint = resolver.hint_for(generator) - - assert hint == SchedulingHint(group_kind="custom_model", identity_suffix=("missing", "resolved"), weight=7) diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_task_admission.py b/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_task_admission.py new file mode 100644 index 000000000..fd7642763 --- /dev/null +++ b/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_task_admission.py @@ -0,0 +1,176 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +from data_designer.engine.dataset_builders.utils.fair_task_queue import FairTaskQueue +from data_designer.engine.dataset_builders.utils.task_admission import ( + BoundedBorrowTaskAdmissionPolicyConfig, + TaskAdmissionConfig, + TaskAdmissionController, + TaskAdmissionDenied, + TaskAdmissionLease, +) +from data_designer.engine.dataset_builders.utils.task_model import Task +from data_designer.engine.dataset_builders.utils.task_scheduling import ( + SchedulableTask, + SchedulerResourceRequest, + TaskGroupKey, + TaskGroupSpec, + stable_task_id, +) + + +def _item(column: str, row: int = 0, *, group: TaskGroupSpec | None = None) -> SchedulableTask: + task = Task(column=column, row_group=0, row_index=row, task_type="cell") + group = group or TaskGroupSpec(TaskGroupKey(kind="local", identity=(column,))) + return SchedulableTask( + task_id=stable_task_id(task), + payload=task, + group=group, + resource_request=SchedulerResourceRequest({"submission": 1}), + ) + + +def _queue_view(*items: SchedulableTask): + queue = FairTaskQueue() + queue.enqueue(items) + return queue.view() + + +def test_task_admission_acquires_and_releases_exact_lease() -> None: + controller = TaskAdmissionController(TaskAdmissionConfig(submission_capacity=1)) + item = _item("a") + + decision = controller.try_acquire(item, _queue_view(item)) + + assert isinstance(decision, TaskAdmissionLease) + assert controller.view().resources_available["submission"] == 0 + result = controller.release(decision) + assert result.released is True + assert controller.view().resources_available["submission"] == 1 + + +def test_task_admission_denies_when_resource_full() -> None: + controller = TaskAdmissionController(TaskAdmissionConfig(submission_capacity=1)) + first = _item("a") + second = _item("b") + lease = controller.try_acquire(first, _queue_view(first, second)) + + assert isinstance(lease, TaskAdmissionLease) + decision = controller.try_acquire(second, _queue_view(second)) + + assert isinstance(decision, TaskAdmissionDenied) + assert decision.reason == "no_capacity" + + +def test_task_admission_duplicate_release_does_not_increase_capacity() -> None: + controller = TaskAdmissionController(TaskAdmissionConfig(submission_capacity=1)) + item = _item("a") + lease = controller.try_acquire(item, _queue_view(item)) + assert isinstance(lease, TaskAdmissionLease) + + first = controller.release(lease) + second = controller.release(lease) + + assert first.released is True + assert second.released is False + assert second.reason == "duplicate" + assert controller.view().resources_available["submission"] == 1 + + +def test_task_admission_group_cap_yields_to_peer_pressure() -> None: + group = TaskGroupSpec(TaskGroupKey(kind="model", identity=("provider", "model")), admitted_limit=1) + controller = TaskAdmissionController(TaskAdmissionConfig(submission_capacity=2)) + first = _item("a", 0, group=group) + second = _item("a", 1, group=group) + peer = _item("b") + lease = controller.try_acquire(first, _queue_view(first, second, peer)) + assert isinstance(lease, TaskAdmissionLease) + + decision = controller.try_acquire(second, _queue_view(second, peer)) + + assert isinstance(decision, TaskAdmissionDenied) + assert decision.reason == "group_cap" + + +def test_explain_blocked_reports_group_cap_denials() -> None: + first_group = TaskGroupSpec(TaskGroupKey(kind="model", identity=("provider", "first")), admitted_limit=1) + second_group = TaskGroupSpec(TaskGroupKey(kind="model", identity=("provider", "second")), admitted_limit=1) + controller = TaskAdmissionController(TaskAdmissionConfig(submission_capacity=4)) + first_active = _item("a", 0, group=first_group) + second_active = _item("b", 0, group=second_group) + first_queued = _item("a", 1, group=first_group) + second_queued = _item("b", 1, group=second_group) + first_lease = controller.try_acquire(first_active, _queue_view(first_active, second_active)) + second_lease = controller.try_acquire(second_active, _queue_view(second_active, first_queued)) + assert isinstance(first_lease, TaskAdmissionLease) + assert isinstance(second_lease, TaskAdmissionLease) + queue = FairTaskQueue() + queue.enqueue((first_queued, second_queued)) + + assert queue.select_next(controller.is_eligible) is None + summary = controller.explain_blocked(queue.view()) + + assert summary.dominant_denial_reasons == {"group_cap": 2} + + +def test_task_admission_group_cap_does_not_block_solo_group() -> None: + group = TaskGroupSpec(TaskGroupKey(kind="model", identity=("provider", "model")), admitted_limit=1) + controller = TaskAdmissionController(TaskAdmissionConfig(submission_capacity=2)) + first = _item("a", 0, group=group) + second = _item("a", 1, group=group) + lease = controller.try_acquire(first, _queue_view(first, second)) + assert isinstance(lease, TaskAdmissionLease) + + decision = controller.try_acquire(second, _queue_view(second)) + + assert isinstance(decision, TaskAdmissionLease) + + +def test_bounded_borrow_limits_solo_group_borrow_debt() -> None: + group = TaskGroupSpec(TaskGroupKey(kind="model", identity=("provider", "model")), admitted_limit=1) + controller = TaskAdmissionController( + TaskAdmissionConfig( + submission_capacity=3, + bounded_borrow=BoundedBorrowTaskAdmissionPolicyConfig(default_borrow_ceiling=1), + ) + ) + first = _item("a", 0, group=group) + second = _item("a", 1, group=group) + third = _item("a", 2, group=group) + first_lease = controller.try_acquire(first, _queue_view(first, second, third)) + assert isinstance(first_lease, TaskAdmissionLease) + borrowed = controller.try_acquire(second, _queue_view(second, third)) + assert isinstance(borrowed, TaskAdmissionLease) + + denied = controller.try_acquire(third, _queue_view(third)) + + assert isinstance(denied, TaskAdmissionDenied) + assert denied.reason == "borrow_debt" + assert controller.view().policy_debt_by_group_resource[(group.key, "submission")] == 1 + + +def test_bounded_borrow_debt_blocks_under_peer_pressure_and_releases() -> None: + group = TaskGroupSpec(TaskGroupKey(kind="model", identity=("provider", "model")), admitted_limit=1) + controller = TaskAdmissionController( + TaskAdmissionConfig( + submission_capacity=3, + bounded_borrow=BoundedBorrowTaskAdmissionPolicyConfig(default_borrow_ceiling=1), + ) + ) + first = _item("a", 0, group=group) + borrowed_item = _item("a", 1, group=group) + blocked_item = _item("a", 2, group=group) + peer = _item("b") + first_lease = controller.try_acquire(first, _queue_view(first, borrowed_item)) + borrowed = controller.try_acquire(borrowed_item, _queue_view(borrowed_item)) + assert isinstance(first_lease, TaskAdmissionLease) + assert isinstance(borrowed, TaskAdmissionLease) + + denied = controller.try_acquire(blocked_item, _queue_view(blocked_item, peer)) + + assert isinstance(denied, TaskAdmissionDenied) + assert denied.reason == "borrow_debt" + controller.release(borrowed) + assert (group.key, "submission") not in controller.view().policy_debt_by_group_resource diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_task_scheduling.py b/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_task_scheduling.py new file mode 100644 index 000000000..81fa0e2ee --- /dev/null +++ b/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_task_scheduling.py @@ -0,0 +1,121 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +from types import SimpleNamespace +from unittest.mock import MagicMock + +import pytest + +from data_designer.config.column_configs import ExpressionColumnConfig +from data_designer.config.scheduling import SchedulingMetadata, SchedulingMetadataError +from data_designer.engine.dataset_builders.utils.task_model import Task +from data_designer.engine.dataset_builders.utils.task_scheduling import TaskSchedulingResolver + + +class _LocalGenerator: + def get_scheduling_metadata(self) -> SchedulingMetadata: + return SchedulingMetadata.local() + + +class _ModelGenerator: + def __init__(self, metadata: SchedulingMetadata) -> None: + self._metadata = metadata + + def get_scheduling_metadata(self) -> SchedulingMetadata: + return self._metadata + + +class _FallbackGenerator: + def get_scheduling_metadata(self) -> SchedulingMetadata: + raise SchedulingMetadataError( + code="partial", + message="using fallback", + fallback=SchedulingMetadata.local("fallback"), + diagnostics={"reason": "test"}, + ) + + +class _FatalGenerator: + def get_scheduling_metadata(self) -> SchedulingMetadata: + raise SchedulingMetadataError(code="fatal", message="fatal") + + +def _task(column: str = "answer") -> Task: + return Task(column=column, row_group=0, row_index=0, task_type="cell") + + +def test_task_scheduling_resolver_uses_local_default_metadata() -> None: + resolver = TaskSchedulingResolver({"answer": _LocalGenerator()}) # type: ignore[arg-type] + + schedulable = resolver.schedulable_task(_task(), ("answer",)) + + assert schedulable.group.key.kind == "local" + assert schedulable.resource_request.amounts == {"submission": 1} + + +def test_task_scheduling_resolver_maps_model_metadata_to_model_resource() -> None: + metadata = SchedulingMetadata.model("nvidia", "nemotron", "chat", weight=3) + resolver = TaskSchedulingResolver({"answer": _ModelGenerator(metadata)}) # type: ignore[arg-type] + + schedulable = resolver.schedulable_task(_task(), ("answer",)) + + assert schedulable.group.key.kind == "model" + assert schedulable.group.weight == 3.0 + assert schedulable.group.admitted_limit == 6 + assert schedulable.resource_request.amounts == {"submission": 1, "llm_wait": 1} + + +def test_task_scheduling_resolver_records_safe_fallback_diagnostics() -> None: + resolver = TaskSchedulingResolver({"answer": _FallbackGenerator()}) # type: ignore[arg-type] + + schedulable = resolver.schedulable_task(_task(), ("answer",)) + + assert schedulable.group.key.identity[:2] == ("local", "fallback") + assert resolver.diagnostics[0]["code"] == "partial" + + +def test_task_scheduling_resolver_raises_fatal_metadata_error() -> None: + with pytest.raises(SchedulingMetadataError): + TaskSchedulingResolver({"answer": _FatalGenerator()}) # type: ignore[arg-type] + + +def test_model_registry_generator_metadata_deduplicates_same_endpoint_aliases() -> None: + from data_designer.engine.column_generators.generators.base import ColumnGeneratorWithModelRegistry + + class _RegistryGenerator(ColumnGeneratorWithModelRegistry[ExpressionColumnConfig]): + @staticmethod + def get_generation_strategy() -> object: + return object() + + def generate(self, data: object) -> object: + return data + + config = ExpressionColumnConfig(name="answer", expr="{{ x }}", dtype="str") + generator = _RegistryGenerator(config=config, resource_provider=MagicMock()) + generator._get_scheduling_model_aliases = lambda: ["primary", "secondary"] # type: ignore[method-assign] + configs = { + "primary": SimpleNamespace( + model="endpoint", + generation_type="chat", + inference_parameters=SimpleNamespace(max_parallel_requests=4), + ), + "secondary": SimpleNamespace( + model="endpoint", + generation_type="chat", + inference_parameters=SimpleNamespace(max_parallel_requests=2), + ), + } + providers = { + "primary": SimpleNamespace(name="nvidia"), + "secondary": SimpleNamespace(name="nvidia"), + } + generator.get_model_config = lambda model_alias: configs[model_alias] # type: ignore[method-assign] + generator.get_model_provider_name = lambda model_alias: providers[model_alias].name # type: ignore[method-assign] + + metadata = generator.get_scheduling_metadata() + + assert metadata.identity == ("model", "nvidia", "endpoint", "chat") + assert metadata.weight == 2 + assert metadata.diagnostics["merge_rule"] == "min_same_endpoint" diff --git a/packages/data-designer-engine/tests/engine/models/clients/test_factory.py b/packages/data-designer-engine/tests/engine/models/clients/test_factory.py index ffdad291f..d365f9683 100644 --- a/packages/data-designer-engine/tests/engine/models/clients/test_factory.py +++ b/packages/data-designer-engine/tests/engine/models/clients/test_factory.py @@ -18,9 +18,9 @@ from data_designer.engine.models.clients.adapters.http_model_client import ClientConcurrencyMode from data_designer.engine.models.clients.adapters.openai_compatible import OpenAICompatibleClient from data_designer.engine.models.clients.factory import create_model_client +from data_designer.engine.models.clients.model_request_executor import ModelRequestExecutor +from data_designer.engine.models.clients.request_admission import AdaptiveRequestAdmissionController from data_designer.engine.models.clients.retry import RetryConfig -from data_designer.engine.models.clients.throttle_manager import ThrottleManager -from data_designer.engine.models.clients.throttled import ThrottledModelClient from data_designer.engine.secret_resolver import SecretResolver @@ -178,40 +178,48 @@ def test_concurrency_mode_defaults_to_sync( assert client.concurrency_mode == ClientConcurrencyMode.SYNC -# --- Throttle manager wrapping --- +# --- Request admission wrapping --- -def test_throttle_manager_wraps_openai_client( +def test_request_admission_wraps_openai_client( openai_model_config: ModelConfig, secret_resolver: SecretResolver, openai_registry: ModelProviderRegistry, ) -> None: - tm = ThrottleManager() + controller = AdaptiveRequestAdmissionController() client = create_model_client( - openai_model_config, secret_resolver, openai_registry, retry_config=RetryConfig(), throttle_manager=tm + openai_model_config, + secret_resolver, + openai_registry, + retry_config=RetryConfig(), + request_admission=controller, ) - assert isinstance(client, ThrottledModelClient) + assert isinstance(client, ModelRequestExecutor) assert isinstance(client._inner, OpenAICompatibleClient) -def test_throttle_manager_wraps_anthropic_client( +def test_request_admission_wraps_anthropic_client( anthropic_model_config: ModelConfig, secret_resolver: SecretResolver, anthropic_registry: ModelProviderRegistry, ) -> None: - tm = ThrottleManager() + controller = AdaptiveRequestAdmissionController() client = create_model_client( - anthropic_model_config, secret_resolver, anthropic_registry, retry_config=RetryConfig(), throttle_manager=tm + anthropic_model_config, + secret_resolver, + anthropic_registry, + retry_config=RetryConfig(), + request_admission=controller, ) - assert isinstance(client, ThrottledModelClient) + assert isinstance(client, ModelRequestExecutor) assert isinstance(client._inner, AnthropicClient) -def test_no_throttle_manager_returns_inner_client_directly( +def test_no_request_admission_returns_inner_client_directly( openai_model_config: ModelConfig, secret_resolver: SecretResolver, openai_registry: ModelProviderRegistry, ) -> None: client = create_model_client(openai_model_config, secret_resolver, openai_registry) assert isinstance(client, OpenAICompatibleClient) - assert not isinstance(client, ThrottledModelClient) + assert not isinstance(client, ModelRequestExecutor) diff --git a/packages/data-designer-engine/tests/engine/models/clients/test_model_request_executor.py b/packages/data-designer-engine/tests/engine/models/clients/test_model_request_executor.py new file mode 100644 index 000000000..6c1cbea4a --- /dev/null +++ b/packages/data-designer-engine/tests/engine/models/clients/test_model_request_executor.py @@ -0,0 +1,155 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +import asyncio + +import pytest + +from data_designer.engine.models.clients.errors import ProviderError, ProviderErrorKind +from data_designer.engine.models.clients.model_request_executor import ModelRequestExecutor +from data_designer.engine.models.clients.request_admission import AdaptiveRequestAdmissionController, RequestDomain +from data_designer.engine.models.clients.types import ( + AssistantMessage, + ChatCompletionRequest, + ChatCompletionResponse, + EmbeddingRequest, + EmbeddingResponse, + ImageGenerationRequest, + ImageGenerationResponse, + ImagePayload, +) +from data_designer.engine.observability import InMemoryAdmissionEventSink + + +class _Client: + provider_name = "nvidia" + + def __init__(self) -> None: + self.error: Exception | None = None + + def supports_chat_completion(self) -> bool: + return True + + def supports_embeddings(self) -> bool: + return True + + def supports_image_generation(self) -> bool: + return True + + def close(self) -> None: + return None + + async def aclose(self) -> None: + return None + + def completion(self, request: ChatCompletionRequest) -> ChatCompletionResponse: + if self.error is not None: + raise self.error + return ChatCompletionResponse(AssistantMessage(content="ok")) + + async def acompletion(self, request: ChatCompletionRequest) -> ChatCompletionResponse: + if self.error is not None: + raise self.error + return ChatCompletionResponse(AssistantMessage(content="ok")) + + def embeddings(self, request: EmbeddingRequest) -> EmbeddingResponse: + return EmbeddingResponse(vectors=[[1.0]]) + + async def aembeddings(self, request: EmbeddingRequest) -> EmbeddingResponse: + return EmbeddingResponse(vectors=[[1.0]]) + + def generate_image(self, request: ImageGenerationRequest) -> ImageGenerationResponse: + return ImageGenerationResponse(images=[ImagePayload("abc")]) + + async def agenerate_image(self, request: ImageGenerationRequest) -> ImageGenerationResponse: + return ImageGenerationResponse(images=[ImagePayload("abc")]) + + +def _executor() -> tuple[ModelRequestExecutor, AdaptiveRequestAdmissionController, _Client]: + controller = AdaptiveRequestAdmissionController() + controller.register(provider_name="nvidia", model_id="nemotron", alias="default", max_parallel_requests=1) + client = _Client() + return ModelRequestExecutor(client, controller, "nvidia", "nemotron"), controller, client + + +def test_model_request_executor_releases_successful_request() -> None: + executor, controller, _client = _executor() + + response = executor.completion(ChatCompletionRequest(model="nemotron", messages=[])) + + assert response.message.content == "ok" + snapshot = controller.pressure.snapshot(next(iter(controller.pressure.snapshots()))) + assert snapshot is not None + assert snapshot.active_lease_count == 0 + assert snapshot.last_outcome == "success" + + +def test_model_request_executor_classifies_rate_limit() -> None: + executor, controller, client = _executor() + client.error = ProviderError( + kind=ProviderErrorKind.RATE_LIMIT, + message="rate limited", + provider_name="nvidia", + model_name="nemotron", + retry_after=1.0, + ) + + with pytest.raises(ProviderError): + executor.completion(ChatCompletionRequest(model="nemotron", messages=[])) + + snapshot = controller.pressure.snapshot(next(iter(controller.pressure.snapshots()))) + assert snapshot is not None + assert snapshot.last_outcome == "rate_limited" + assert snapshot.cooldown_remaining_seconds > 0 + + +@pytest.mark.asyncio(loop_scope="session") +async def test_model_request_executor_releases_async_cancellation() -> None: + class _SlowClient(_Client): + async def acompletion(self, request: ChatCompletionRequest) -> ChatCompletionResponse: + await asyncio.sleep(30) + return ChatCompletionResponse(AssistantMessage(content="late")) + + controller = AdaptiveRequestAdmissionController() + controller.register(provider_name="nvidia", model_id="nemotron", alias="default", max_parallel_requests=1) + executor = ModelRequestExecutor(_SlowClient(), controller, "nvidia", "nemotron") + + task = asyncio.create_task(executor.acompletion(ChatCompletionRequest(model="nemotron", messages=[]))) + await asyncio.sleep(0) + task.cancel() + with pytest.raises(asyncio.CancelledError): + await task + + snapshot = controller.pressure.snapshot(next(iter(controller.pressure.snapshots()))) + assert snapshot is not None + assert snapshot.active_lease_count == 0 + assert snapshot.last_outcome == "local_cancelled" + + +def test_model_request_executor_maps_image_chat_domain() -> None: + executor, controller, _client = _executor() + + executor.generate_image(ImageGenerationRequest(model="nemotron", prompt="p", messages=[])) + + resources = controller.pressure.snapshots() + assert any(resource.domain == RequestDomain.CHAT for resource in resources) + + +def test_model_request_executor_emits_attempt_events_with_correlation_fields() -> None: + sink = InMemoryAdmissionEventSink() + controller = AdaptiveRequestAdmissionController(event_sink=sink) + controller.register(provider_name="nvidia", model_id="nemotron", alias="default", max_parallel_requests=1) + executor = ModelRequestExecutor(_Client(), controller, "nvidia", "nemotron", event_sink=sink) + + executor.completion(ChatCompletionRequest(model="nemotron", messages=[])) + + kinds = [event.event_kind for event in sink.request_events] + assert "request_wait_started" in kinds + assert "request_lease_acquired" in kinds + assert "model_request_started" in kinds + assert "model_request_completed" in kinds + assert "request_lease_released" in kinds + attempts = {event.request_attempt_id for event in sink.request_events if event.request_attempt_id is not None} + assert len(attempts) == 1 diff --git a/packages/data-designer-engine/tests/engine/models/clients/test_request_admission.py b/packages/data-designer-engine/tests/engine/models/clients/test_request_admission.py new file mode 100644 index 000000000..c7d01cec9 --- /dev/null +++ b/packages/data-designer-engine/tests/engine/models/clients/test_request_admission.py @@ -0,0 +1,209 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +import asyncio + +import pytest + +from data_designer.engine.models.clients.request_admission import ( + AdaptiveRequestAdmissionController, + RequestAdmissionConfig, + RequestAdmissionDenied, + RequestAdmissionError, + RequestAdmissionItem, + RequestAdmissionLease, + RequestDomain, + RequestGroupSpec, + RequestReleaseOutcome, + RequestResourceKey, +) + + +def _item(domain: RequestDomain = RequestDomain.CHAT, timeout: float | None = None) -> RequestAdmissionItem: + resource = RequestResourceKey("nvidia", "nemotron", domain) + return RequestAdmissionItem( + resource=resource, + group=RequestGroupSpec(resource), + queue_wait_timeout_seconds=timeout, + ) + + +def _controller(cap: int = 2, config: RequestAdmissionConfig | None = None) -> AdaptiveRequestAdmissionController: + controller = AdaptiveRequestAdmissionController(config) + controller.register(provider_name="nvidia", model_id="nemotron", alias="default", max_parallel_requests=cap) + return controller + + +def test_request_admission_acquires_and_releases_lease() -> None: + controller = _controller(cap=1) + item = _item() + + decision = controller.try_acquire(item) + + assert isinstance(decision, RequestAdmissionLease) + assert controller.pressure.snapshot(item.resource).in_flight_count == 1 # type: ignore[union-attr] + result = controller.release(decision, RequestReleaseOutcome(kind="success")) + assert result.released is True + assert controller.pressure.snapshot(item.resource).in_flight_count == 0 # type: ignore[union-attr] + + +def test_request_admission_enforces_provider_model_aggregate_cap() -> None: + controller = _controller(cap=1) + chat = _item(RequestDomain.CHAT) + embedding = _item(RequestDomain.EMBEDDING) + lease = controller.try_acquire(chat) + assert isinstance(lease, RequestAdmissionLease) + + denied = controller.try_acquire(embedding) + + assert isinstance(denied, RequestAdmissionDenied) + assert denied.reason == "no_capacity" + + +def test_request_admission_duplicate_release_does_not_corrupt_counts() -> None: + controller = _controller(cap=1) + item = _item() + lease = controller.try_acquire(item) + assert isinstance(lease, RequestAdmissionLease) + + first = controller.release(lease, RequestReleaseOutcome(kind="success")) + second = controller.release(lease, RequestReleaseOutcome(kind="success")) + + assert first.released is True + assert second.released is False + assert second.reason == "duplicate" + assert controller.pressure.snapshot(item.resource).active_lease_count == 0 # type: ignore[union-attr] + + +def test_request_admission_rate_limit_decreases_and_sets_cooldown() -> None: + controller = _controller( + cap=4, + config=RequestAdmissionConfig( + multiplicative_decrease_factor=0.5, + cooldown_seconds=10, + ), + ) + item = _item() + lease = controller.try_acquire(item) + assert isinstance(lease, RequestAdmissionLease) + + controller.release(lease, RequestReleaseOutcome(kind="rate_limited", retry_after_seconds=1.0)) + denied = controller.try_acquire(item) + snapshot = controller.pressure.snapshot(item.resource) + + assert isinstance(denied, RequestAdmissionDenied) + assert denied.reason == "cooldown" + assert snapshot is not None + assert snapshot.current_limit == 2 + assert snapshot.cooldown_remaining_seconds > 0 + + +def test_request_admission_additive_recovery_after_successes() -> None: + item = _item() + controller = _controller( + cap=3, + config=RequestAdmissionConfig( + initial_limits={item.resource: 1}, + increase_after_successes=1, + additive_increase_step=1, + ), + ) + + lease = controller.try_acquire(item) + assert isinstance(lease, RequestAdmissionLease) + controller.release(lease, RequestReleaseOutcome(kind="success")) + + assert controller.pressure.snapshot(item.resource).current_limit == 2 # type: ignore[union-attr] + + +def test_request_admission_blocking_timeout_raises_typed_error() -> None: + controller = _controller(cap=1) + first = _item() + second = _item(timeout=0.01) + lease = controller.try_acquire(first) + assert isinstance(lease, RequestAdmissionLease) + + with pytest.raises(RequestAdmissionError) as exc_info: + controller.acquire_sync(second) + + assert exc_info.value.decision.reason == "queue_timeout" + + +def test_request_admission_zero_sync_timeout_is_immediate() -> None: + controller = _controller(cap=1) + lease = controller.try_acquire(_item()) + assert isinstance(lease, RequestAdmissionLease) + + with pytest.raises(RequestAdmissionError) as exc_info: + controller.acquire_sync(_item(RequestDomain.EMBEDDING, timeout=0.0)) + + assert exc_info.value.decision.reason == "queue_timeout" + snapshot = controller.pressure.snapshot(RequestResourceKey("nvidia", "nemotron", RequestDomain.EMBEDDING)) + assert snapshot is not None + assert snapshot.waiters == 0 + controller.release(lease, RequestReleaseOutcome(kind="success")) + + +@pytest.mark.asyncio(loop_scope="session") +async def test_try_acquire_does_not_bypass_queued_waiter_for_same_provider_model() -> None: + controller = _controller(cap=1) + first = _item(RequestDomain.CHAT) + queued = _item(RequestDomain.EMBEDDING, timeout=2) + incoming = _item(RequestDomain.IMAGE) + lease = controller.try_acquire(first) + assert isinstance(lease, RequestAdmissionLease) + + queued_task = asyncio.create_task(controller.acquire_async(queued)) + await asyncio.sleep(0) + + denied = controller.try_acquire(incoming) + + assert isinstance(denied, RequestAdmissionDenied) + assert denied.reason == "no_capacity" + snapshot = controller.pressure.snapshot(queued.resource) + assert snapshot is not None + assert snapshot.waiters == 1 + controller.release(lease, RequestReleaseOutcome(kind="success")) + queued_lease = await queued_task + controller.release(queued_lease, RequestReleaseOutcome(kind="success")) + + +@pytest.mark.asyncio(loop_scope="session") +async def test_request_admission_zero_async_timeout_is_immediate() -> None: + controller = _controller(cap=1) + lease = controller.try_acquire(_item()) + assert isinstance(lease, RequestAdmissionLease) + + with pytest.raises(RequestAdmissionError) as exc_info: + await controller.acquire_async(_item(RequestDomain.EMBEDDING, timeout=0.0)) + + assert exc_info.value.decision.reason == "queue_timeout" + snapshot = controller.pressure.snapshot(RequestResourceKey("nvidia", "nemotron", RequestDomain.EMBEDDING)) + assert snapshot is not None + assert snapshot.waiters == 0 + controller.release(lease, RequestReleaseOutcome(kind="success")) + + +@pytest.mark.asyncio(loop_scope="session") +async def test_async_cancellation_after_waiter_assignment_releases_lease() -> None: + controller = _controller(cap=1) + first = _item(RequestDomain.CHAT) + queued = _item(RequestDomain.EMBEDDING, timeout=1.0) + lease = controller.try_acquire(first) + assert isinstance(lease, RequestAdmissionLease) + + queued_task = asyncio.create_task(controller.acquire_async(queued)) + await asyncio.sleep(0) + controller.release(lease, RequestReleaseOutcome(kind="success")) + queued_task.cancel() + + with pytest.raises(asyncio.CancelledError): + await queued_task + + snapshot = controller.pressure.snapshot(queued.resource) + assert snapshot is not None + assert snapshot.active_lease_count == 0 + assert snapshot.in_flight_count == 0 + assert snapshot.waiters == 0 diff --git a/packages/data-designer-engine/tests/engine/models/clients/test_throttle_manager.py b/packages/data-designer-engine/tests/engine/models/clients/test_throttle_manager.py deleted file mode 100644 index 11a24edb7..000000000 --- a/packages/data-designer-engine/tests/engine/models/clients/test_throttle_manager.py +++ /dev/null @@ -1,579 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -from __future__ import annotations - -import asyncio -import threading -import time - -import pytest - -from data_designer.config.run_config import ThrottleConfig -from data_designer.engine.models.clients.throttle_manager import ( - CAPACITY_POLL_INTERVAL, - ThrottleDomain, - ThrottleManager, -) - -PROVIDER = "test-provider" -MODEL = "gpt-test" -DOMAIN = ThrottleDomain.CHAT - - -@pytest.fixture -def manager() -> ThrottleManager: - tm = ThrottleManager() - tm.register(provider_name=PROVIDER, model_id=MODEL, alias="a1", max_parallel_requests=4) - return tm - - -# --- try_acquire --- - - -def test_acquire_under_limit_returns_zero(manager: ThrottleManager) -> None: - wait = manager.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - assert wait == 0.0 - - -def test_acquire_at_capacity_returns_short_poll_interval(manager: ThrottleManager) -> None: - for _ in range(4): - manager.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - wait = manager.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - assert wait == pytest.approx(CAPACITY_POLL_INTERVAL) - - -def test_acquire_respects_blocked_until(manager: ThrottleManager) -> None: - """Rate-limit cooldown returns remaining block duration (not the short capacity poll).""" - manager.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - manager.release_rate_limited(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, retry_after=5.0, now=1.0) - wait = manager.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=2.0) - assert wait == pytest.approx(4.0, abs=0.01) - - -def test_acquire_without_registration_raises() -> None: - tm = ThrottleManager() - with pytest.raises(RuntimeError, match="register"): - tm.try_acquire(provider_name="unknown", model_id="m", domain=DOMAIN, now=0.0) - - -# --- release_success --- - - -def test_release_success_frees_slot(manager: ThrottleManager) -> None: - for _ in range(4): - manager.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - manager.release_success(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - wait = manager.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - assert wait == 0.0 - - -def test_additive_increase_after_success_window() -> None: - tm = ThrottleManager(ThrottleConfig(success_window=5)) - tm.register(provider_name=PROVIDER, model_id=MODEL, alias="a1", max_parallel_requests=10) - tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - tm.release_rate_limited(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - state = tm.get_domain_state(PROVIDER, MODEL, DOMAIN) - assert state is not None - limit_after_drop = state.current_limit - - for i in range(5): - tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=float(i)) - tm.release_success(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=float(i)) - - assert state.current_limit == limit_after_drop + 1 - - -def test_additive_increase_uses_configured_step() -> None: - tm = ThrottleManager(ThrottleConfig(success_window=1, additive_increase=3)) - tm.register(provider_name=PROVIDER, model_id=MODEL, alias="a1", max_parallel_requests=20) - tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - tm.release_rate_limited(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - state = tm.get_domain_state(PROVIDER, MODEL, DOMAIN) - assert state is not None - limit_after_drop = state.current_limit - - tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=1.0) - tm.release_success(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=1.0) - - assert state.current_limit == limit_after_drop + 3 - - -def test_current_limit_never_exceeds_effective_max() -> None: - tm = ThrottleManager(ThrottleConfig(success_window=1)) - tm.register(provider_name=PROVIDER, model_id=MODEL, alias="a1", max_parallel_requests=2) - for i in range(20): - tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=float(i)) - tm.release_success(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=float(i)) - state = tm.get_domain_state(PROVIDER, MODEL, DOMAIN) - assert state is not None - assert state.current_limit <= 2 - - -def test_additive_increase_clamped_to_effective_max() -> None: - tm = ThrottleManager(ThrottleConfig(success_window=1, additive_increase=100)) - tm.register(provider_name=PROVIDER, model_id=MODEL, alias="a1", max_parallel_requests=5) - tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - tm.release_rate_limited(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - - tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=1.0) - tm.release_success(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=1.0) - - state = tm.get_domain_state(PROVIDER, MODEL, DOMAIN) - assert state is not None - assert state.current_limit == 5 - - -# --- release_rate_limited --- - - -def test_rate_limited_reduces_current_limit(manager: ThrottleManager) -> None: - manager.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - manager.release_rate_limited(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - state = manager.get_domain_state(PROVIDER, MODEL, DOMAIN) - assert state is not None - assert state.current_limit == 3 # floor(4 * 0.75) - - -def test_rate_limited_never_drops_below_one() -> None: - tm = ThrottleManager() - tm.register(provider_name=PROVIDER, model_id=MODEL, alias="a1", max_parallel_requests=1) - tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - tm.release_rate_limited(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - state = tm.get_domain_state(PROVIDER, MODEL, DOMAIN) - assert state is not None - assert state.current_limit >= 1 - - -def test_rate_limited_resets_success_streak(manager: ThrottleManager) -> None: - manager.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - manager.release_success(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - manager.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - manager.release_rate_limited(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - state = manager.get_domain_state(PROVIDER, MODEL, DOMAIN) - assert state is not None - assert state.success_streak == 0 - - -def test_rate_limited_uses_retry_after_for_blocked_until(manager: ThrottleManager) -> None: - manager.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=10.0) - manager.release_rate_limited(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, retry_after=7.0, now=10.0) - state = manager.get_domain_state(PROVIDER, MODEL, DOMAIN) - assert state is not None - assert state.blocked_until == pytest.approx(17.0, abs=0.01) - - -def test_rate_limited_uses_default_block_when_no_retry_after(manager: ThrottleManager) -> None: - manager.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=10.0) - manager.release_rate_limited(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=10.0) - state = manager.get_domain_state(PROVIDER, MODEL, DOMAIN) - assert state is not None - assert state.blocked_until == pytest.approx(10.0 + ThrottleConfig.DEFAULT_COOLDOWN_SECONDS, abs=0.01) - - -# --- release_failure --- - - -def test_failure_releases_slot_without_limit_change(manager: ThrottleManager) -> None: - manager.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - state = manager.get_domain_state(PROVIDER, MODEL, DOMAIN) - assert state is not None - limit_before = state.current_limit - manager.release_failure(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - assert state.current_limit == limit_before - assert state.in_flight == 0 - - -def test_failure_does_not_reset_cascade_while_burst_in_flight(manager: ThrottleManager) -> None: - """Mixed-response burst (429 → 500 → 429 with multiple slots in-flight) must reduce only once. - - With a real burst of in-flight requests, an interleaved non-rate-limit - failure should NOT break the cascade - otherwise the next 429 from the - same wave would be treated as a new cascade and double-reduce the limit - even though the provider hasn't recovered between the two 429s. - """ - # Saturate to limit (4 concurrent slots). - for _ in range(4): - manager.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - state = manager.get_domain_state(PROVIDER, MODEL, DOMAIN) - assert state is not None - assert state.in_flight == 4 - limit_before = state.current_limit - - # First 429 from the burst: limit reduced once. - manager.release_rate_limited(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - limit_after_first_429 = state.current_limit - assert limit_after_first_429 < limit_before - assert state.consecutive_429s == 1 - assert state.in_flight == 3 - - # Second response from the same burst: 500. With the regression, this - # would reset the cascade to 0; with the fix, in_flight > 0 keeps it at 1. - manager.release_failure(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - assert state.consecutive_429s == 1, "cascade must not reset while the prior burst is still in-flight" - assert state.in_flight == 2 - - # Third response from the same burst: another 429. With the regression - # this would be treated as a new cascade and reduce the limit again. - manager.release_rate_limited(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - assert state.current_limit == limit_after_first_429, "limit must not double-reduce within the same burst" - assert state.in_flight == 1 - - -def test_failure_resets_cascade_after_burst_drains(manager: ThrottleManager) -> None: - """Once the burst fully drains (in_flight == 0), the next non-RL failure breaks the cascade. - - This preserves the original PR intent for the sequential 429 → 500 → 429 - case: provider rate-limited, settled, then rate-limited again. - """ - # Saturate, then drain: one 429 then one 500 with no concurrency. - manager.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - manager.release_rate_limited(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - state = manager.get_domain_state(PROVIDER, MODEL, DOMAIN) - assert state is not None - assert state.consecutive_429s == 1 - assert state.in_flight == 0 - - # New request after the burst drained. release_failure sees in_flight 1 → 0. - manager.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - manager.release_failure(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - assert state.consecutive_429s == 0 - assert state.in_flight == 0 - - -# --- Global cap --- - - -def test_two_aliases_effective_max_is_minimum() -> None: - tm = ThrottleManager() - tm.register(provider_name=PROVIDER, model_id=MODEL, alias="a1", max_parallel_requests=10) - tm.register(provider_name=PROVIDER, model_id=MODEL, alias="a2", max_parallel_requests=3) - assert tm.get_effective_max(PROVIDER, MODEL) == 3 - - -def test_domain_clamped_when_new_alias_lowers_cap() -> None: - tm = ThrottleManager() - tm.register(provider_name=PROVIDER, model_id=MODEL, alias="a1", max_parallel_requests=10) - tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - state = tm.get_domain_state(PROVIDER, MODEL, DOMAIN) - assert state is not None - assert state.current_limit == 10 - - tm.register(provider_name=PROVIDER, model_id=MODEL, alias="a2", max_parallel_requests=3) - assert state.current_limit == 3 - - -# --- Domain isolation --- - - -def test_chat_and_embedding_throttle_independently() -> None: - tm = ThrottleManager() - tm.register(provider_name=PROVIDER, model_id=MODEL, alias="a1", max_parallel_requests=2) - - for _ in range(2): - tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=ThrottleDomain.CHAT, now=0.0) - wait_chat = tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=ThrottleDomain.CHAT, now=0.0) - assert wait_chat > 0.0 - - wait_emb = tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=ThrottleDomain.EMBEDDING, now=0.0) - assert wait_emb == 0.0 - - -# --- 429 lifecycle scenario --- - - -def test_rate_limit_lifecycle_acquire_backoff_recover() -> None: - """End-to-end AIMD lifecycle: steady-state → 429 → backoff → cooldown → recovery. - - Uses the ``now`` parameter to simulate time without real sleeps. - Config: success_window=3, additive_increase=1, max_parallel=4, reduce_factor=0.75. - """ - tm = ThrottleManager(ThrottleConfig(success_window=3, additive_increase=1)) - tm.register(provider_name=PROVIDER, model_id=MODEL, alias="a1", max_parallel_requests=4) - t = 0.0 - - # Phase 1 — Steady state (t=0): all 4 slots acquired and released successfully. - for _ in range(4): - assert tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=t) == 0.0 - for _ in range(4): - tm.release_success(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=t) - - state = tm.get_domain_state(PROVIDER, MODEL, DOMAIN) - assert state is not None - assert state.current_limit == 4 - - # Phase 2 — 429 hits (t=10): reduce_factor=0.75 → floor(4*0.75)=3. - # Domain is blocked until t=10+5=15. - t = 10.0 - assert tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=t) == 0.0 - tm.release_rate_limited(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, retry_after=5.0, now=t) - assert state.current_limit == 3 - assert state.blocked_until == 15.0 - - # Phase 3 — During cooldown (t=12): acquire returns positive wait since 12 < 15. - wait = tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=12.0) - assert wait > 0.0 - - # Phase 4 — Cooldown expires (t=16): acquire succeeds, start accumulating successes. - # Need 3 successes (success_window=3) to bump limit 3 → 4. - t = 16.0 - for _ in range(3): - assert tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=t) == 0.0 - tm.release_success(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=t) - t += 1.0 - - assert state.current_limit == 4 - - -# --- Ceiling stabilization --- - - -def test_ceiling_stabilization_with_overshoot() -> None: - """After a 429, AIMD increase stops at ceiling + overshoot instead of effective_max. - - Config: effective_max=1000, success_window=1, ceiling_overshoot=0.10. - Scenario: 429 at limit 40 → floor(40*0.75)=30 → ceiling=40 → soft cap = 40 + 4 = 44. - Recovery should stop at 44, not climb to 1000. - """ - tm = ThrottleManager(ThrottleConfig(success_window=1, additive_increase=1)) - tm.register(provider_name=PROVIDER, model_id=MODEL, alias="a1", max_parallel_requests=1000) - state = tm.get_domain_state(PROVIDER, MODEL, DOMAIN) - - tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - state = tm.get_domain_state(PROVIDER, MODEL, DOMAIN) - assert state is not None - state.current_limit = 40 - - # 429 at limit 40 → floor(40*0.75)=30, ceiling recorded as 40. - tm.release_rate_limited(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=10.0) - assert state.current_limit == 30 - assert state.rate_limit_ceiling == 40 - - # Pump success windows to climb back up. soft_cap = 40 + floor(40*0.1) = 44. - t = 20.0 - for _ in range(20): - t += 1.0 - assert tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=t) == 0.0 - tm.release_success(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=t) - - assert state.current_limit == 44, f"Expected stabilization at 44, got {state.current_limit}" - - # Further successes should not increase beyond the soft ceiling. - for _ in range(10): - t += 1.0 - assert tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=t) == 0.0 - tm.release_success(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=t) - - assert state.current_limit == 44, f"Limit crept past soft ceiling: {state.current_limit}" - - -def test_ceiling_lowers_on_repeated_429_after_recovery() -> None: - """A 429 after partial recovery lowers the ceiling, tightening the soft cap. - - Scenario: first 429 at 40 → floor(40*0.75)=30, ceiling=40. - Recovery: set limit to 30, one success bumps to 31 (success_window=1). - Second 429 at 31 → floor(31*0.75)=23, ceiling = min(40, 31) = 31. - Soft cap = 31 + max(1, floor(31*0.1)) = 31 + 3 = 34. - """ - tm = ThrottleManager(ThrottleConfig(success_window=1, additive_increase=1)) - tm.register(provider_name=PROVIDER, model_id=MODEL, alias="a1", max_parallel_requests=1000) - - tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - state = tm.get_domain_state(PROVIDER, MODEL, DOMAIN) - assert state is not None - state.current_limit = 40 - - # First 429 at 40 → floor(40*0.75)=30, ceiling=40. - tm.release_rate_limited(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=10.0) - assert state.rate_limit_ceiling == 40 - assert state.current_limit == 30 - - # Recovery: one success bumps 30 → 31. - t = 20.0 - tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=t) - tm.release_success(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=t) - assert state.current_limit == 31 - - # Second 429 at 31 → floor(31*0.75)=23, ceiling = min(40, 31) = 31. - tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=t + 1) - tm.release_rate_limited(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=t + 1) - assert state.rate_limit_ceiling == 31 - assert state.current_limit == 23 - - # Soft cap = 31 + max(1, floor(31*0.1)) = 34. Climb should stop there. - t = 40.0 - for _ in range(15): - t += 1.0 - assert tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=t) == 0.0 - tm.release_success(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=t) - - assert state.current_limit == 34, f"Expected soft cap at 34, got {state.current_limit}" - - -def test_cascade_only_first_429_reduces_limit() -> None: - """Only the first 429 in a cascade reduces the limit; subsequent ones just release permits.""" - tm = ThrottleManager(ThrottleConfig(success_window=1, additive_increase=1)) - tm.register(provider_name=PROVIDER, model_id=MODEL, alias="a1", max_parallel_requests=100) - - for _ in range(4): - tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - - state = tm.get_domain_state(PROVIDER, MODEL, DOMAIN) - assert state is not None - assert state.in_flight == 4 - - # First 429: limit 100 → 75, ceiling set to 100. - tm.release_rate_limited(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=1.0) - assert state.current_limit == 75 - assert state.rate_limit_ceiling == 100 - assert state.in_flight == 3 - - # Subsequent cascade 429s: limit stays at 75, only in_flight decrements. - tm.release_rate_limited(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=1.0) - assert state.current_limit == 75 - assert state.rate_limit_ceiling == 100 - assert state.in_flight == 2 - - tm.release_rate_limited(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=1.0) - assert state.current_limit == 75 - assert state.in_flight == 1 - - tm.release_rate_limited(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=1.0) - assert state.current_limit == 75 - assert state.in_flight == 0 - - -def test_ceiling_does_not_restrict_when_at_effective_max() -> None: - """When effective_max is small (e.g. 4), the ceiling + overshoot should not - prevent recovery to effective_max. - """ - tm = ThrottleManager(ThrottleConfig(success_window=1, additive_increase=1)) - tm.register(provider_name=PROVIDER, model_id=MODEL, alias="a1", max_parallel_requests=4) - - tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=0.0) - tm.release_rate_limited(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=10.0) - - state = tm.get_domain_state(PROVIDER, MODEL, DOMAIN) - assert state is not None - # floor(4 * 0.75) = 3; ceiling=4, soft_cap = min(4 + max(1, floor(4*0.1)), 4) = 4 - assert state.current_limit == 3 - - t = 20.0 - for _ in range(5): - t += 1.0 - assert tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=t) == 0.0 - tm.release_success(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, now=t) - - assert state.current_limit == 4, f"Should recover to effective_max=4, got {state.current_limit}" - - -# --- Acquire timeout --- - - -def test_acquire_sync_raises_timeout_when_at_capacity() -> None: - tm = ThrottleManager() - tm.register(provider_name=PROVIDER, model_id=MODEL, alias="a1", max_parallel_requests=1) - # Saturate the single slot so try_acquire returns a positive wait. - tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN) - - with pytest.raises(TimeoutError, match="timed out"): - tm.acquire_sync(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, timeout=0.0) - - -def test_acquire_sync_does_not_overshoot_timeout() -> None: - """When wait > remaining budget, raise immediately instead of sleeping the full wait.""" - tm = ThrottleManager(ThrottleConfig(cooldown_seconds=5.0)) - tm.register(provider_name=PROVIDER, model_id=MODEL, alias="a1", max_parallel_requests=1) - tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN) - - # Timeout of 0.5s is less than the 5s block wait — should raise fast, not sleep 5s. - start = time.monotonic() - with pytest.raises(TimeoutError, match="timed out"): - tm.acquire_sync(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, timeout=0.5) - elapsed = time.monotonic() - start - assert elapsed < 2.0, f"acquire_sync overshot timeout: elapsed {elapsed:.1f}s (expected <2s)" - - -@pytest.mark.asyncio -async def test_acquire_async_raises_timeout_when_at_capacity() -> None: - tm = ThrottleManager() - tm.register(provider_name=PROVIDER, model_id=MODEL, alias="a1", max_parallel_requests=1) - tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN) - - with pytest.raises(TimeoutError, match="timed out"): - await tm.acquire_async(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN, timeout=0.0) - - -@pytest.mark.asyncio -async def test_acquire_async_default_no_deadline_waits_for_release() -> None: - """``timeout=None`` (the default) waits for the permit instead of raising. - - Issue #551: the previous 300s default produced spurious ``ModelTimeoutError`` - cascades on slow endpoints with deep queues; now queue waits scale with - provider speed and only the HTTP timeout deadlines actual work. The - ``timeout=0.0`` case is covered by ``test_acquire_async_raises_timeout_when_at_capacity``. - """ - tm = ThrottleManager() - tm.register(provider_name=PROVIDER, model_id=MODEL, alias="a1", max_parallel_requests=1) - tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN) - - async def release_after(delay: float) -> None: - await asyncio.sleep(delay) - tm.release_success(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN) - - # Hold a strong reference to the task so the loop's weak-ref bookkeeping - # can't GC it before the inner await observes the release. - release_task = asyncio.create_task(release_after(0.05)) - try: - # asyncio.wait_for caps the test runtime; the inner acquire_async passes None. - await asyncio.wait_for( - tm.acquire_async(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN), - timeout=2.0, - ) - finally: - await release_task - - -def test_acquire_sync_default_no_deadline_waits_for_release() -> None: - """Sync counterpart: ``timeout=None`` default blocks until release.""" - tm = ThrottleManager() - tm.register(provider_name=PROVIDER, model_id=MODEL, alias="a1", max_parallel_requests=1) - tm.try_acquire(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN) - - def release_after(delay: float) -> None: - time.sleep(delay) - tm.release_success(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN) - - threading.Thread(target=release_after, args=(0.05,), daemon=True).start() - start = time.monotonic() - tm.acquire_sync(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN) - elapsed = time.monotonic() - start - assert 0.04 < elapsed < 2.0, f"expected ~0.05s wait, got {elapsed:.3f}s" - - -# --- Thread safety --- - - -def test_concurrent_acquire_release_no_errors() -> None: - tm = ThrottleManager() - tm.register(provider_name=PROVIDER, model_id=MODEL, alias="a1", max_parallel_requests=4) - errors: list[Exception] = [] - - def worker() -> None: - try: - for _ in range(50): - tm.acquire_sync(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN) - tm.release_success(provider_name=PROVIDER, model_id=MODEL, domain=DOMAIN) - except Exception as exc: - errors.append(exc) - - threads = [threading.Thread(target=worker) for _ in range(8)] - for t in threads: - t.start() - for t in threads: - t.join(timeout=10) - assert not errors, f"Thread errors: {errors}" - - state = tm.get_domain_state(PROVIDER, MODEL, DOMAIN) - assert state is not None - assert state.in_flight == 0 diff --git a/packages/data-designer-engine/tests/engine/models/clients/test_throttled_model_client.py b/packages/data-designer-engine/tests/engine/models/clients/test_throttled_model_client.py deleted file mode 100644 index 0bec7231b..000000000 --- a/packages/data-designer-engine/tests/engine/models/clients/test_throttled_model_client.py +++ /dev/null @@ -1,469 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -from __future__ import annotations - -import asyncio -from unittest.mock import AsyncMock, MagicMock, patch - -import pytest - -from data_designer.config.run_config import ThrottleConfig -from data_designer.engine.models.clients.errors import ProviderError, ProviderErrorKind -from data_designer.engine.models.clients.throttle_manager import DomainThrottleState, ThrottleDomain, ThrottleManager -from data_designer.engine.models.clients.throttled import ThrottledModelClient -from data_designer.engine.models.clients.types import ( - AssistantMessage, - ChatCompletionRequest, - ChatCompletionResponse, - EmbeddingRequest, - EmbeddingResponse, - ImageGenerationRequest, - ImageGenerationResponse, - Usage, -) - -PROVIDER = "test-provider" -MODEL_ID = "test-model" - - -@pytest.fixture -def throttle_manager() -> ThrottleManager: - tm = ThrottleManager() - tm.register(provider_name=PROVIDER, model_id=MODEL_ID, alias="alias", max_parallel_requests=10) - return tm - - -@pytest.fixture -def inner_client() -> MagicMock: - client = MagicMock() - client.provider_name = PROVIDER - client.supports_chat_completion.return_value = True - client.supports_embeddings.return_value = True - client.supports_image_generation.return_value = True - client.completion.return_value = ChatCompletionResponse(message=AssistantMessage(content="ok"), usage=Usage()) - client.acompletion = AsyncMock( - return_value=ChatCompletionResponse(message=AssistantMessage(content="ok"), usage=Usage()) - ) - client.embeddings.return_value = EmbeddingResponse(vectors=[[0.1]], usage=Usage()) - client.aembeddings = AsyncMock(return_value=EmbeddingResponse(vectors=[[0.1]], usage=Usage())) - client.generate_image.return_value = ImageGenerationResponse(images=[]) - client.agenerate_image = AsyncMock(return_value=ImageGenerationResponse(images=[])) - client.close.return_value = None - client.aclose = AsyncMock() - return client - - -@pytest.fixture -def throttled_client(inner_client: MagicMock, throttle_manager: ThrottleManager) -> ThrottledModelClient: - return ThrottledModelClient( - inner=inner_client, - throttle_manager=throttle_manager, - provider_name=PROVIDER, - model_id=MODEL_ID, - ) - - -# --- Protocol delegation --- - - -def test_provider_name_delegates(throttled_client: ThrottledModelClient) -> None: - assert throttled_client.provider_name == PROVIDER - - -def test_supports_methods_delegate(throttled_client: ThrottledModelClient) -> None: - assert throttled_client.supports_chat_completion() is True - assert throttled_client.supports_embeddings() is True - assert throttled_client.supports_image_generation() is True - - -def test_close_delegates(throttled_client: ThrottledModelClient, inner_client: MagicMock) -> None: - throttled_client.close() - inner_client.close.assert_called_once() - - -@pytest.mark.asyncio(loop_scope="session") -async def test_aclose_delegates(throttled_client: ThrottledModelClient, inner_client: MagicMock) -> None: - await throttled_client.aclose() - inner_client.aclose.assert_awaited_once() - - -# --- Sync: acquire/release on success --- - - -def test_completion_success_releases_success( - throttled_client: ThrottledModelClient, throttle_manager: ThrottleManager -) -> None: - request = ChatCompletionRequest(model=MODEL_ID, messages=[]) - result = throttled_client.completion(request) - assert result.message.content == "ok" - state = throttle_manager.get_domain_state(PROVIDER, MODEL_ID, ThrottleDomain.CHAT) - assert state is not None - assert state.in_flight == 0 - assert state.success_streak == 1 - - -def test_embeddings_success_releases_success( - throttled_client: ThrottledModelClient, throttle_manager: ThrottleManager -) -> None: - request = EmbeddingRequest(model=MODEL_ID, inputs=["hello"]) - result = throttled_client.embeddings(request) - assert result.vectors == [[0.1]] - state = throttle_manager.get_domain_state(PROVIDER, MODEL_ID, ThrottleDomain.EMBEDDING) - assert state is not None - assert state.in_flight == 0 - assert state.success_streak == 1 - - -def test_generate_image_diffusion_uses_image_domain( - throttled_client: ThrottledModelClient, throttle_manager: ThrottleManager -) -> None: - request = ImageGenerationRequest(model=MODEL_ID, prompt="a cat", messages=None) - throttled_client.generate_image(request) - state = throttle_manager.get_domain_state(PROVIDER, MODEL_ID, ThrottleDomain.IMAGE) - assert state is not None - assert state.success_streak == 1 - - -def test_generate_image_chat_backed_uses_chat_domain( - throttled_client: ThrottledModelClient, throttle_manager: ThrottleManager -) -> None: - request = ImageGenerationRequest(model=MODEL_ID, prompt="a cat", messages=[{"role": "user", "content": "draw"}]) - throttled_client.generate_image(request) - state = throttle_manager.get_domain_state(PROVIDER, MODEL_ID, ThrottleDomain.CHAT) - assert state is not None - assert state.success_streak == 1 - - -# --- Async: acquire/release on success --- - - -@pytest.mark.asyncio(loop_scope="session") -async def test_acompletion_success_releases_success( - throttled_client: ThrottledModelClient, throttle_manager: ThrottleManager -) -> None: - request = ChatCompletionRequest(model=MODEL_ID, messages=[]) - result = await throttled_client.acompletion(request) - assert result.message.content == "ok" - state = throttle_manager.get_domain_state(PROVIDER, MODEL_ID, ThrottleDomain.CHAT) - assert state is not None - assert state.in_flight == 0 - assert state.success_streak == 1 - - -@pytest.mark.asyncio(loop_scope="session") -async def test_aembeddings_success_releases_success( - throttled_client: ThrottledModelClient, throttle_manager: ThrottleManager -) -> None: - request = EmbeddingRequest(model=MODEL_ID, inputs=["hello"]) - result = await throttled_client.aembeddings(request) - assert result.vectors == [[0.1]] - state = throttle_manager.get_domain_state(PROVIDER, MODEL_ID, ThrottleDomain.EMBEDDING) - assert state is not None - assert state.in_flight == 0 - assert state.success_streak == 1 - - -@pytest.mark.asyncio(loop_scope="session") -async def test_agenerate_image_diffusion_uses_image_domain( - throttled_client: ThrottledModelClient, throttle_manager: ThrottleManager -) -> None: - request = ImageGenerationRequest(model=MODEL_ID, prompt="a cat", messages=None) - await throttled_client.agenerate_image(request) - state = throttle_manager.get_domain_state(PROVIDER, MODEL_ID, ThrottleDomain.IMAGE) - assert state is not None - assert state.success_streak == 1 - - -@pytest.mark.asyncio(loop_scope="session") -async def test_agenerate_image_chat_backed_uses_chat_domain( - throttled_client: ThrottledModelClient, throttle_manager: ThrottleManager -) -> None: - request = ImageGenerationRequest(model=MODEL_ID, prompt="a cat", messages=[{"role": "user", "content": "draw"}]) - await throttled_client.agenerate_image(request) - state = throttle_manager.get_domain_state(PROVIDER, MODEL_ID, ThrottleDomain.CHAT) - assert state is not None - assert state.success_streak == 1 - - -# --- Rate-limit error: release_rate_limited with retry_after --- - - -def test_completion_rate_limit_calls_release_rate_limited( - throttled_client: ThrottledModelClient, throttle_manager: ThrottleManager -) -> None: - throttled_client._inner.completion.side_effect = ProviderError( - kind=ProviderErrorKind.RATE_LIMIT, - message="429", - status_code=429, - retry_after=5.0, - ) - with pytest.raises(ProviderError, match="429"): - throttled_client.completion(ChatCompletionRequest(model=MODEL_ID, messages=[])) - - state = throttle_manager.get_domain_state(PROVIDER, MODEL_ID, ThrottleDomain.CHAT) - assert state is not None - assert state.in_flight == 0 - assert state.blocked_until > 0 - - -@pytest.mark.asyncio(loop_scope="session") -async def test_acompletion_rate_limit_calls_release_rate_limited( - throttled_client: ThrottledModelClient, throttle_manager: ThrottleManager -) -> None: - throttled_client._inner.acompletion = AsyncMock( - side_effect=ProviderError( - kind=ProviderErrorKind.RATE_LIMIT, - message="429", - status_code=429, - retry_after=3.0, - ) - ) - with pytest.raises(ProviderError, match="429"): - await throttled_client.acompletion(ChatCompletionRequest(model=MODEL_ID, messages=[])) - - state = throttle_manager.get_domain_state(PROVIDER, MODEL_ID, ThrottleDomain.CHAT) - assert state is not None - assert state.in_flight == 0 - assert state.blocked_until > 0 - - -# --- Non-rate-limit ProviderError: release_failure --- - - -def test_completion_non_rate_limit_error_calls_release_failure( - throttled_client: ThrottledModelClient, throttle_manager: ThrottleManager -) -> None: - throttled_client._inner.completion.side_effect = ProviderError( - kind=ProviderErrorKind.INTERNAL_SERVER, - message="500", - status_code=500, - ) - with pytest.raises(ProviderError, match="500"): - throttled_client.completion(ChatCompletionRequest(model=MODEL_ID, messages=[])) - - state = throttle_manager.get_domain_state(PROVIDER, MODEL_ID, ThrottleDomain.CHAT) - assert state is not None - assert state.in_flight == 0 - assert state.success_streak == 0 - - -# --- Non-ProviderError exception: release_failure --- - - -def test_completion_generic_exception_calls_release_failure( - throttled_client: ThrottledModelClient, throttle_manager: ThrottleManager -) -> None: - throttled_client._inner.completion.side_effect = RuntimeError("boom") - with pytest.raises(RuntimeError, match="boom"): - throttled_client.completion(ChatCompletionRequest(model=MODEL_ID, messages=[])) - - state = throttle_manager.get_domain_state(PROVIDER, MODEL_ID, ThrottleDomain.CHAT) - assert state is not None - assert state.in_flight == 0 - - -@pytest.mark.asyncio(loop_scope="session") -async def test_acompletion_generic_exception_calls_release_failure( - throttled_client: ThrottledModelClient, throttle_manager: ThrottleManager -) -> None: - throttled_client._inner.acompletion = AsyncMock(side_effect=RuntimeError("boom")) - with pytest.raises(RuntimeError, match="boom"): - await throttled_client.acompletion(ChatCompletionRequest(model=MODEL_ID, messages=[])) - - state = throttle_manager.get_domain_state(PROVIDER, MODEL_ID, ThrottleDomain.CHAT) - assert state is not None - assert state.in_flight == 0 - - -# --- Acquire timeout: normalized to ProviderError(kind=TIMEOUT), no release --- - - -def test_sync_acquire_timeout_normalized_to_provider_error(inner_client: MagicMock) -> None: - tm = ThrottleManager() - tm.register(provider_name=PROVIDER, model_id=MODEL_ID, alias="alias", max_parallel_requests=1) - client = ThrottledModelClient(inner=inner_client, throttle_manager=tm, provider_name=PROVIDER, model_id=MODEL_ID) - - with patch.object(tm, "acquire_sync", side_effect=TimeoutError("timed out")): - with pytest.raises(ProviderError) as exc_info: - client.completion(ChatCompletionRequest(model=MODEL_ID, messages=[])) - assert exc_info.value.kind == ProviderErrorKind.TIMEOUT - - inner_client.completion.assert_not_called() - - -@pytest.mark.asyncio(loop_scope="session") -async def test_async_acquire_timeout_normalized_to_provider_error(inner_client: MagicMock) -> None: - tm = ThrottleManager() - tm.register(provider_name=PROVIDER, model_id=MODEL_ID, alias="alias", max_parallel_requests=1) - client = ThrottledModelClient(inner=inner_client, throttle_manager=tm, provider_name=PROVIDER, model_id=MODEL_ID) - - with patch.object(tm, "acquire_async", side_effect=TimeoutError("timed out")): - with pytest.raises(ProviderError) as exc_info: - await client.acompletion(ChatCompletionRequest(model=MODEL_ID, messages=[])) - assert exc_info.value.kind == ProviderErrorKind.TIMEOUT - - inner_client.acompletion.assert_not_awaited() - - -# --- Cancellation: release_failure on CancelledError --- - - -@pytest.mark.asyncio(loop_scope="session") -async def test_acompletion_cancelled_releases_permit(throttle_manager: ThrottleManager) -> None: - """CancelledError during an in-flight async request releases the throttle permit.""" - blocked = asyncio.Event() - - async def slow_acompletion(_request: ChatCompletionRequest) -> ChatCompletionResponse: - blocked.set() - await asyncio.sleep(60) - return ChatCompletionResponse(message=AssistantMessage(content="ok"), usage=Usage()) - - inner = MagicMock() - inner.provider_name = PROVIDER - inner.acompletion = slow_acompletion - - client = ThrottledModelClient( - inner=inner, throttle_manager=throttle_manager, provider_name=PROVIDER, model_id=MODEL_ID - ) - request = ChatCompletionRequest(model=MODEL_ID, messages=[]) - - task = asyncio.create_task(client.acompletion(request)) - await blocked.wait() - - state = throttle_manager.get_domain_state(PROVIDER, MODEL_ID, ThrottleDomain.CHAT) - assert state is not None - assert state.in_flight == 1 - - task.cancel() - with pytest.raises(asyncio.CancelledError): - await task - - assert state.in_flight == 0 - - -# --- E2E: full AIMD feedback loop --- - - -@pytest.mark.asyncio(loop_scope="session") -async def test_aimd_feedback_loop_rate_limit_reduces_then_successes_recover() -> None: - """Verify the full AIMD cycle: success -> rate-limit halves limit -> successes recover. - - Uses a real ThrottleManager with aggressive tuning (success_window=2, - additive_increase=1) so the test can drive a full decrease+increase cycle - with a small number of calls. - - Sequence: - 1. Register model with max_parallel_requests=4. - 2. Make 1 successful async completion -> limit stays 4, streak=1. - 3. Hit a 429 with retry_after=0.01s -> limit halves to 2, cooldown applied. - 4. Wait for cooldown to expire. - 5. Make 2 more successes -> streak reaches success_window=2, limit increases to 3. - 6. Make 2 more successes -> limit increases to 4 (full recovery). - """ - tm = ThrottleManager( - ThrottleConfig( - reduce_factor=0.5, - additive_increase=1, - success_window=2, - cooldown_seconds=0.01, - ) - ) - tm.register(provider_name=PROVIDER, model_id=MODEL_ID, alias="a", max_parallel_requests=4) - - call_count = 0 - rate_limit_on_call = 2 - - async def mock_acompletion(request: ChatCompletionRequest) -> ChatCompletionResponse: - nonlocal call_count - call_count += 1 - if call_count == rate_limit_on_call: - raise ProviderError( - kind=ProviderErrorKind.RATE_LIMIT, - message="429 Too Many Requests", - status_code=429, - retry_after=0.01, - ) - return ChatCompletionResponse(message=AssistantMessage(content="ok"), usage=Usage()) - - inner = MagicMock() - inner.provider_name = PROVIDER - inner.acompletion = mock_acompletion - - client = ThrottledModelClient(inner=inner, throttle_manager=tm, provider_name=PROVIDER, model_id=MODEL_ID) - request = ChatCompletionRequest(model=MODEL_ID, messages=[]) - - def get_state() -> DomainThrottleState: - s = tm.get_domain_state(PROVIDER, MODEL_ID, ThrottleDomain.CHAT) - assert s is not None - return s - - # Step 1: first success - await client.acompletion(request) - assert get_state().current_limit == 4 - assert get_state().success_streak == 1 - - # Step 2: 429 -> AIMD decrease - with pytest.raises(ProviderError): - await client.acompletion(request) - assert get_state().current_limit == 2 - assert get_state().success_streak == 0 - assert get_state().in_flight == 0 - - # Step 3: wait for cooldown - await asyncio.sleep(0.02) - - # Step 4: two successes -> additive increase (limit 2 -> 3) - await client.acompletion(request) - assert get_state().success_streak == 1 - await client.acompletion(request) - assert get_state().current_limit == 3 - assert get_state().success_streak == 0 - - # Step 5: two more successes -> additive increase (limit 3 -> 4, full recovery) - await client.acompletion(request) - await client.acompletion(request) - assert get_state().current_limit == 4 - assert get_state().success_streak == 0 - - -@pytest.mark.asyncio(loop_scope="session") -async def test_concurrent_requests_bounded_by_throttle_limit() -> None: - """Concurrent async requests are bounded by the throttle limit. - - Registers a model with max_parallel_requests=2, fires 5 concurrent - acompletion calls that each sleep briefly, and verifies that the - ThrottleManager never had more than 2 in-flight at once. - """ - tm = ThrottleManager() - tm.register(provider_name=PROVIDER, model_id=MODEL_ID, alias="a", max_parallel_requests=2) - - peak_in_flight = 0 - lock = asyncio.Lock() - - async def mock_acompletion(request: ChatCompletionRequest) -> ChatCompletionResponse: - nonlocal peak_in_flight - state = tm.get_domain_state(PROVIDER, MODEL_ID, ThrottleDomain.CHAT) - if state is not None: - async with lock: - peak_in_flight = max(peak_in_flight, state.in_flight) - await asyncio.sleep(0.02) - return ChatCompletionResponse(message=AssistantMessage(content="ok"), usage=Usage()) - - inner = MagicMock() - inner.provider_name = PROVIDER - inner.acompletion = mock_acompletion - - client = ThrottledModelClient(inner=inner, throttle_manager=tm, provider_name=PROVIDER, model_id=MODEL_ID) - request = ChatCompletionRequest(model=MODEL_ID, messages=[]) - - tasks = [asyncio.create_task(client.acompletion(request)) for _ in range(5)] - results = await asyncio.gather(*tasks, return_exceptions=True) - - successes = [r for r in results if not isinstance(r, Exception)] - assert len(successes) == 5 - assert peak_in_flight <= 2 - - state = tm.get_domain_state(PROVIDER, MODEL_ID, ThrottleDomain.CHAT) - assert state is not None - assert state.in_flight == 0 diff --git a/packages/data-designer-engine/tests/engine/test_capacity.py b/packages/data-designer-engine/tests/engine/test_capacity.py new file mode 100644 index 000000000..fe9c71a16 --- /dev/null +++ b/packages/data-designer-engine/tests/engine/test_capacity.py @@ -0,0 +1,73 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +from data_designer.engine.capacity import ( + AsyncCapacityConfigured, + AsyncCapacityObservedMaxima, + AsyncCapacityPlan, + AsyncCapacityRuntimeSnapshot, + CapacityValue, + RequestAdmissionConfigSnapshot, + RowGroupAdmission, +) +from data_designer.engine.models.clients.request_admission import ( + ProviderModelKey, + ProviderModelStaticCap, + RequestAdmissionConfig, + RequestDomain, + RequestResourceKey, +) + + +def test_request_admission_config_snapshot_records_resources() -> None: + resource = RequestResourceKey("nvidia", "nemotron", RequestDomain.CHAT) + config = RequestAdmissionConfig(initial_limits={resource: 2}, max_limit_clamps={resource: 4}) + + snapshot = RequestAdmissionConfigSnapshot.from_config(config) + + assert snapshot.resources == (resource,) + assert snapshot.initial_limits[resource] == 2 + assert snapshot.max_limit_clamps[resource] == 4 + + +def test_async_capacity_plan_records_configured_runtime_and_maxima() -> None: + resource = RequestResourceKey("nvidia", "nemotron", RequestDomain.CHAT) + provider_model = ProviderModelKey("nvidia", "nemotron") + static_cap = ProviderModelStaticCap(cap=4, aliases=("default",), raw_caps={"default": 4}) + + plan = AsyncCapacityPlan( + configured=AsyncCapacityConfigured( + buffer_size=CapacityValue(value=16, source="run_config"), + row_group_admission=RowGroupAdmission( + row_group_concurrency=CapacityValue(value=2, source="dataset_builder"), + observed_in_flight=1, + ), + submission_capacity=CapacityValue(value=8, source="engine_internal_config"), + task_resource_limits=CapacityValue(value={"submission": 8, "llm_wait": 4}, source="engine_internal_config"), + request_resources=CapacityValue(value=(resource,), source="runtime_snapshot"), + provider_model_static_caps=CapacityValue(value={provider_model: static_cap}, source="model_metadata"), + request_domain_initial_limits=CapacityValue(value={resource: 2}, source="engine_internal_config"), + request_admission_config=CapacityValue( + value=RequestAdmissionConfigSnapshot.from_config(RequestAdmissionConfig(initial_limits={resource: 2})), + source="engine_internal_config", + ), + transport_pool_limits=CapacityValue(value={provider_model: 8}, source="adapter_config"), + ), + runtime_snapshot=AsyncCapacityRuntimeSnapshot( + request_domain_current_limits={resource: 2}, + request_domain_effective_max={resource: 4}, + request_domain_blocked_until={resource: None}, + provider_model_aggregate_in_flight={provider_model: 0}, + ), + observed_maxima=AsyncCapacityObservedMaxima( + row_groups_in_flight=1, + request_in_flight_by_resource={resource: 2}, + provider_model_aggregate_in_flight={provider_model: 2}, + ), + ) + + assert plan.configured.provider_model_static_caps.value[provider_model].merge_rule == "min_same_endpoint" + assert plan.runtime_snapshot.request_domain_current_limits[resource] == 2 + assert plan.observed_maxima.provider_model_aggregate_in_flight[provider_model] == 2 diff --git a/plans/645/capacity-model.md b/plans/645/capacity-model.md index 4ac49db2c..d39c44a52 100644 --- a/plans/645/capacity-model.md +++ b/plans/645/capacity-model.md @@ -85,9 +85,9 @@ Preview, resume, and checkpoint behavior use the existing dataset-builder partit ## Transitional Values -Any current hidden LLM-wait task-stage capacity concept is transitional. At epic completion those names must either be gone or replaced by explicit scheduler-resource terminology in `TaskAdmissionConfig` and `AsyncCapacityPlan`. +Any hidden task-stage capacity concept left from the pre-epic design is transitional. At epic completion those names must be gone or represented by explicit scheduler-resource terminology in `TaskAdmissionConfig` and `AsyncCapacityPlan`. -If a distinct task-stage LLM backpressure resource remains, it must be derived from actually used resolved scheduling metadata, not every registered model alias. It must be described as scheduler task-stage pressure, not provider request concurrency. +If a distinct task-stage backpressure resource remains for model-producing work, it must be derived from actually used resolved `SchedulingMetadata`, not every registered model alias. It must be described as scheduler task-stage pressure, not provider request concurrency. ## Alias And Provider Semantics diff --git a/plans/645/contracts.md b/plans/645/contracts.md index fc4991939..92873eee4 100644 --- a/plans/645/contracts.md +++ b/plans/645/contracts.md @@ -81,9 +81,9 @@ If `fallback` is present, the resolver may continue and must emit diagnostics. I amounts: Mapping[SchedulerResourceKey, int] ``` -`SchedulerResourceKey` identifies a scheduler-owned task-stage resource such as `submission`, `llm_wait`, `local`, or a future internal resource-vector key. It is not a provider request-domain key. +`SchedulerResourceKey` identifies a scheduler-owned task-stage resource such as `submission`, `local`, or a future internal resource-vector key. It is not a provider request-domain key. -The first implementation can model submission and LLM-wait style resources. Future resource-vector work may add provider/model, local, GPU, or other scheduler resources, but those remain scheduler-internal unless a later design explicitly changes the public contract. +The first implementation models scheduler task-stage pressure with explicit scheduler resources. Concrete provider/model/domain request pressure belongs to `RequestResourceKey` and request admission. Future resource-vector work may add local, GPU, or other scheduler resources, but those remain scheduler-internal unless a later design explicitly changes the public contract. `SchedulableTask` contains: diff --git a/plans/645/migration-and-cleanup.md b/plans/645/migration-and-cleanup.md index e02e7375a..666dcd613 100644 --- a/plans/645/migration-and-cleanup.md +++ b/plans/645/migration-and-cleanup.md @@ -4,18 +4,18 @@ The epic is not complete until replaced names and compatibility paths are remove ## Scheduling Metadata Cleanup -Remove or collapse the legacy `SchedulingHintResolver` path after `SchedulingMetadata` and `TaskSchedulingResolver` are stable. +Remove or collapse the legacy scheduling resolver path after `SchedulingMetadata` and `TaskSchedulingResolver` are stable. Accepted end states: -- delete `SchedulingHintResolver`, or +- delete the legacy resolver types, or - refactor/rename it into a metadata-oriented adapter where all model/provider inference lives behind `ColumnGenerator.get_scheduling_metadata()` and typed `SchedulingMetadataError` fallback behavior. Unacceptable end state: - a parallel fallback that independently introspects generators, configs, model registries, aliases, or admitted policy data under the old resolver contract. -Final search gate should have no production/current-doc matches for: +Final legacy-name search gate should have no production/current-doc matches for these historical strings: ```text SchedulingHintResolver @@ -23,7 +23,7 @@ SchedulingHint _model_aliases_for_generator ``` -Independent scheduler-side `is_llm_bound` fallback is also migration-only and should be folded behind metadata/resource requests by epic completion. +Independent scheduler-side model-bound fallback logic is also migration-only and should be folded behind metadata/resource requests by epic completion. ## Request Admission Cleanup @@ -35,7 +35,7 @@ The durable request-admission names are: - `RequestAdmissionConfig` - `RequestDomain` -Final search gate should have no production/current-doc matches for: +Final legacy-name search gate should have no production/current-doc matches for these historical strings: ```text ThrottleManager @@ -96,7 +96,7 @@ User/operator docs should expose public run config fields, `AsyncCapacityPlan`, Current architecture docs, diagrams, generated assets, and plan files must be checked as part of final cleanup. Existing historical dev notes may retain old names only when the text clearly says the name is historical and no longer current API. -Current user/operator architecture docs must also remove or mark as historical semaphore/throttling descriptions that imply the pre-epic architecture. This includes old model-client throttling names and semaphore-based scheduling explanations. +Current user/operator architecture docs must also remove or mark as historical capacity-control descriptions that imply the pre-epic architecture. This includes old model-client request-capacity names and scheduler-slot handoff explanations. ## Validation Commands @@ -108,6 +108,7 @@ rg "ThrottleManager|ThrottleDomain|ThrottleConfig|RunConfig\\.throttle|throttle_ rg "_submission_semaphore|_llm_wait_semaphore|get_semaphore_permits|TrackingSemaphore" packages docs fern architecture plans/645 rg "throttl(e|ed|ing)|semaphore" docs fern architecture plans/645 rg "needs_llm_wait|held_llm_wait|max_llm_wait_tasks" packages docs fern architecture plans/645 +rg "SchedulingMetadata|TaskSchedulingResolver|FairTaskQueue|TaskAdmissionController|TaskAdmissionLease|ModelRequestExecutor|RequestAdmissionController|AdaptiveRequestAdmissionController|AsyncCapacityPlan|SchedulerResourceRequest|RequestResourceKey" docs fern architecture plans/645 ``` -Any remaining hit must be intentionally historical, not a current implementation or docs path. Allowed plan hits are limited to explicit cleanup/search-gate sections that name the legacy strings so reviewers know what to remove. The task-stage semaphore-specific search distinguishes obsolete submission/LLM-wait scheduling semaphores from unrelated internal synchronization primitives that may remain after review. +Any remaining hit must be intentionally historical, not a current implementation or docs path. Allowed plan hits are limited to explicit cleanup/search-gate sections that name the legacy strings so reviewers know what to remove. The task-stage wait-specific search distinguishes obsolete scheduler-slot handoff primitives from unrelated internal synchronization primitives that may remain after review. diff --git a/plans/645/task-admission.md b/plans/645/task-admission.md index f26684d1a..944d84048 100644 --- a/plans/645/task-admission.md +++ b/plans/645/task-admission.md @@ -95,7 +95,7 @@ The first task-admission implementation is lease-only and behavior-preserving. I V1 includes: - submission capacity for scheduler-spawned work -- task-stage LLM-wait style resource if a distinct scheduler-stage resource remains +- explicit scheduler-resource leases for any task-stage backpressure that remains after request admission is separated - current per-group admitted/running cap behavior - typed `TaskAdmissionDecision` denial reasons for telemetry, tests, and benchmarks - unique task lease identities so duplicate, stale, or wrong-controller releases are rejected or diagnosed @@ -178,7 +178,7 @@ Policy constraints: ## Resource-Vector Direction -Future policy work may use `SchedulerResourceKey` and `SchedulerResourceRequest` for multi-resource admission. Candidate resources include submission, LLM-wait, provider/model task-stage hints, local resources, and GPU slots if reliable metadata exists. +Future policy work may use `SchedulerResourceKey` and `SchedulerResourceRequest` for multi-resource admission. Candidate resources include submission, local resources, GPU slots if reliable metadata exists, or scheduler-owned task-stage resources derived from `SchedulingMetadata`. Provider/model/domain request resources remain owned by request admission. Resource-vector policy must: diff --git a/reports/async-scheduling-epic-benchmark-report.html b/reports/async-scheduling-epic-benchmark-report.html new file mode 100644 index 000000000..433f8a021 --- /dev/null +++ b/reports/async-scheduling-epic-benchmark-report.html @@ -0,0 +1,791 @@ + + + + + + Async Scheduling Epic QA and Benchmark Report + + + +
    +

    Async Scheduling Epic QA and Benchmark Report

    +

    + Status report for issue 645 on branch scheduling-yolo: implementation shape, + verification gates, and live benchmark evidence gathered from the GPT-5.5 and GPT-5 Nano + traffic runs. +

    +
    + Generated: 2026-05-14 + Workspace: /Users/etramel/src/DataDesigner + Primary spec: plans/645/README.md + Live artifacts: artifacts/645-live-bench* +
    +
    + +
    + +
    + Report generated from local benchmark artifacts and the issue 645 plan. It does not include prompts, + completions, row values, secrets, or raw provider payloads. +
    + + diff --git a/scripts/benchmarks/benchmark_async_scheduling.py b/scripts/benchmarks/benchmark_async_scheduling.py new file mode 100644 index 000000000..0d9edd963 --- /dev/null +++ b/scripts/benchmarks/benchmark_async_scheduling.py @@ -0,0 +1,441 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Deterministic async scheduling benchmark smoke harness.""" + +from __future__ import annotations + +import argparse +import csv +import hashlib +import json +import platform +import statistics +import subprocess +import sys +import time +from collections.abc import Mapping +from dataclasses import dataclass, fields, is_dataclass +from enum import Enum +from pathlib import Path +from typing import Any + +from data_designer.engine.capacity import ( + AsyncCapacityConfigured, + AsyncCapacityObservedMaxima, + AsyncCapacityPlan, + AsyncCapacityRuntimeSnapshot, + CapacityValue, + RequestAdmissionConfigSnapshot, + RowGroupAdmission, +) +from data_designer.engine.dataset_builders.utils.fair_task_queue import FairTaskQueue +from data_designer.engine.dataset_builders.utils.task_admission import TaskAdmissionConfig, TaskAdmissionController +from data_designer.engine.dataset_builders.utils.task_model import Task +from data_designer.engine.dataset_builders.utils.task_scheduling import ( + SchedulableTask, + SchedulerResourceRequest, + TaskGroupKey, + TaskGroupSpec, +) +from data_designer.engine.models.clients.request_admission import ( + AdaptiveRequestAdmissionController, + ProviderModelKey, + ProviderModelStaticCap, + RequestAdmissionConfig, + RequestAdmissionItem, + RequestDomain, + RequestGroupSpec, + RequestReleaseOutcome, + RequestResourceKey, +) +from data_designer.engine.observability import InMemoryAdmissionEventSink, SchedulerAdmissionEvent + +ARTIFACT_SCHEMA_VERSION = "async-scheduling-benchmark-v1" +HARNESS_VERSION = "1.0" + + +@dataclass(frozen=True) +class BenchmarkInputs: + baseline_ref: str + candidate_ref: str + scenario: str + record_count: int + buffer_size: int + row_group_concurrency: int + task_admission_capacity: int + request_latency_seconds: float + warmups: int + iterations: int + seed: int + scenario_version: str + harness_version: str + + +def main() -> None: + args = _parse_args() + output_dir = Path(args.output_dir) + output_dir.mkdir(parents=True, exist_ok=True) + + inputs = BenchmarkInputs( + baseline_ref=args.baseline_ref, + candidate_ref=args.candidate_ref, + scenario=args.scenario, + record_count=args.record_count, + buffer_size=args.buffer_size, + row_group_concurrency=args.row_group_concurrency, + task_admission_capacity=args.task_admission_capacity, + request_latency_seconds=args.request_latency_seconds, + warmups=args.warmups, + iterations=args.iterations, + seed=args.seed, + scenario_version=args.scenario_version, + harness_version=args.harness_version, + ) + + for _ in range(args.warmups): + _run_iteration(inputs, measured=False) + + iterations = [_run_iteration(inputs, measured=True) for _ in range(args.iterations)] + artifact = _artifact(inputs, iterations) + json_path = output_dir / "async_scheduling_benchmark.json" + csv_path = output_dir / "async_scheduling_benchmark.csv" + md_path = output_dir / "async_scheduling_benchmark.md" + json_path.write_text(json.dumps(_to_jsonable(artifact), indent=2, sort_keys=True) + "\n", encoding="utf-8") + _write_csv(csv_path, artifact) + _write_markdown(md_path, artifact) + print(f"Wrote {json_path}") + print(f"Wrote {csv_path}") + print(f"Wrote {md_path}") + + +def _parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--baseline-ref", default="origin/main") + parser.add_argument("--candidate-ref", default="HEAD") + parser.add_argument("--scenario", default="queue-admission-smoke") + parser.add_argument("--record-count", type=int, default=128) + parser.add_argument("--buffer-size", type=int, default=64) + parser.add_argument("--row-group-concurrency", type=int, default=2) + parser.add_argument("--task-admission-capacity", type=int, default=8) + parser.add_argument("--request-latency-seconds", type=float, default=0.0) + parser.add_argument("--warmups", type=int, default=1) + parser.add_argument("--iterations", type=int, default=5) + parser.add_argument("--output-dir", required=True) + parser.add_argument("--seed", type=int, default=645) + parser.add_argument("--scenario-version", default="1") + parser.add_argument("--harness-version", default=HARNESS_VERSION) + return parser.parse_args() + + +def _run_iteration(inputs: BenchmarkInputs, *, measured: bool) -> dict[str, Any]: + sink = InMemoryAdmissionEventSink() + task_config = TaskAdmissionConfig( + submission_capacity=inputs.task_admission_capacity, + resource_limits={ + "llm_wait": max(1, inputs.task_admission_capacity // 2), + "local": inputs.task_admission_capacity, + }, + ) + task_controller = TaskAdmissionController(task_config) + queue = FairTaskQueue() + request_config = RequestAdmissionConfig(increase_after_successes=1) + request_controller = AdaptiveRequestAdmissionController(request_config, event_sink=sink) + request_controller.register( + provider_name="mock-provider", + model_id="mock-model", + alias="mock-alias", + max_parallel_requests=max(1, inputs.task_admission_capacity // 2), + ) + + groups = ( + TaskGroupSpec( + TaskGroupKey("model", ("model", "mock-provider", "mock-model", "chat", "root")), + weight=2.0, + admitted_limit=4, + ), + TaskGroupSpec(TaskGroupKey("local", ("local", "default", "downstream")), weight=1.0), + ) + tasks = _schedulable_tasks(inputs.record_count, groups) + accepted = queue.enqueue(tasks) + selected: list[str] = [] + request_resource = RequestResourceKey("mock-provider", "mock-model", RequestDomain.CHAT) + request_item = RequestAdmissionItem(request_resource, RequestGroupSpec(request_resource)) + started = time.monotonic() + sequence = 0 + + while queue.has_queued_tasks: + selection = queue.select_next(lambda item, view: task_controller.is_eligible(item, view)) + if selection is None: + break + sequence += 1 + sink.emit_scheduler_event( + SchedulerAdmissionEvent.capture( + "selected", + sequence=sequence, + task_id=selection.item.task_id, + snapshot=task_controller.view(), + ) + ) + decision = task_controller.try_acquire(selection.item, selection.queue_view) + if not hasattr(decision, "lease_id"): + break + lease = decision + committed = queue.commit(selection) + if committed is None: + task_controller.release(lease) + continue + sequence += 1 + sink.emit_scheduler_event( + SchedulerAdmissionEvent.capture( + "task_lease_acquired", + sequence=sequence, + task_id=committed.task_id, + task_lease_id=lease.lease_id, + snapshot=task_controller.view(), + ) + ) + request_lease = request_controller.acquire_sync(request_item) + if inputs.request_latency_seconds: + time.sleep(inputs.request_latency_seconds) + request_controller.release(request_lease, RequestReleaseOutcome(kind="success")) + task_controller.release(lease) + selected.append(committed.task_id) + + wall_time = time.monotonic() - started + task_snapshot = task_controller.view() + request_snapshots = request_controller.pressure.snapshots() + global_snapshots = request_controller.pressure.global_snapshots() + output_hash = hashlib.sha256("\n".join(selected).encode()).hexdigest() + timeline = [{"stream": "scheduler", **_event_payload(event)} for event in sink.scheduler_events] + [ + {"stream": "request", **_event_payload(event)} for event in sink.request_events + ] + timeline.sort(key=lambda event: (event["captured_at_monotonic"], event["sequence"])) + return { + "measured": measured, + "wall_time_seconds": wall_time, + "timeline": timeline, + "final_task_snapshot": task_snapshot, + "final_request_snapshot": { + "domains": request_snapshots, + "provider_models": global_snapshots, + "zero_active_request_leases": all( + snapshot.active_lease_count == 0 for snapshot in request_snapshots.values() + ), + "zero_request_waiters": all(snapshot.waiters == 0 for snapshot in request_snapshots.values()), + }, + "output_hashes": {"selected_task_ids": output_hash}, + "per_layer_observed_maxima": { + "selected_tasks": len(selected), + "active_task_leases_at_end": sum(task_snapshot.leased_resources.values()), + "active_request_leases_at_end": sum(snapshot.active_lease_count for snapshot in request_snapshots.values()), + }, + "accepted_task_count": len(accepted), + } + + +def _schedulable_tasks(record_count: int, groups: tuple[TaskGroupSpec, TaskGroupSpec]) -> tuple[SchedulableTask, ...]: + tasks: list[SchedulableTask] = [] + for index in range(record_count): + group = groups[index % len(groups)] + resource_request = ( + SchedulerResourceRequest({"submission": 1, "llm_wait": 1}) + if group.key.kind == "model" + else SchedulerResourceRequest({"submission": 1, "local": 1}) + ) + task = Task( + column=f"col_{index % 4}", + row_group=index // 16, + row_index=index % 16, + task_type="cell", + ) + digest = hashlib.sha1(f"{task.column}:{task.row_group}:{task.row_index}:{task.task_type}".encode()).hexdigest()[ + :16 + ] + tasks.append(SchedulableTask(f"task-{digest}", task, group, resource_request)) + return tuple(tasks) + + +def _artifact(inputs: BenchmarkInputs, iterations: list[dict[str, Any]]) -> dict[str, Any]: + resource = RequestResourceKey("mock-provider", "mock-model", RequestDomain.CHAT) + provider_model = ProviderModelKey("mock-provider", "mock-model") + task_capacity = inputs.task_admission_capacity + capacity_plan = AsyncCapacityPlan( + configured=AsyncCapacityConfigured( + buffer_size=CapacityValue(value=inputs.buffer_size, source="run_config"), + row_group_admission=RowGroupAdmission( + row_group_concurrency=CapacityValue(value=inputs.row_group_concurrency, source="benchmark_override"), + observed_in_flight=0, + ), + submission_capacity=CapacityValue(value=task_capacity, source="benchmark_override"), + task_resource_limits=CapacityValue( + value={"submission": task_capacity, "llm_wait": max(1, task_capacity // 2), "local": task_capacity}, + source="benchmark_override", + ), + request_resources=CapacityValue(value=(resource,), source="benchmark_override"), + provider_model_static_caps=CapacityValue( + value={ + provider_model: ProviderModelStaticCap( + cap=max(1, task_capacity // 2), + aliases=("mock-alias",), + raw_caps={"mock-alias": max(1, task_capacity // 2)}, + ) + }, + source="model_metadata", + ), + request_domain_initial_limits=CapacityValue( + value={resource: max(1, task_capacity // 2)}, source="benchmark_override" + ), + request_admission_config=CapacityValue( + value=RequestAdmissionConfigSnapshot.from_config(RequestAdmissionConfig()), + source="engine_internal_config", + ), + transport_pool_limits=CapacityValue(value={provider_model: task_capacity}, source="adapter_config"), + ), + runtime_snapshot=AsyncCapacityRuntimeSnapshot( + request_domain_current_limits={resource: max(1, task_capacity // 2)}, + request_domain_effective_max={resource: max(1, task_capacity // 2)}, + request_domain_blocked_until={resource: None}, + provider_model_aggregate_in_flight={provider_model: 0}, + ), + observed_maxima=AsyncCapacityObservedMaxima( + row_groups_in_flight=inputs.row_group_concurrency, + request_waiters_by_resource={resource: 0}, + request_in_flight_by_resource={resource: max(1, task_capacity // 2)}, + provider_model_aggregate_in_flight={provider_model: max(1, task_capacity // 2)}, + request_domain_current_limits={resource: max(1, task_capacity // 2)}, + transport_pool_utilization={provider_model: 0}, + ), + ) + wall_times = [iteration["wall_time_seconds"] for iteration in iterations] + return { + "scenario_id": inputs.scenario, + "artifact_schema_version": ARTIFACT_SCHEMA_VERSION, + "scenario_version": inputs.scenario_version, + "harness_version": inputs.harness_version, + "baseline_sha": _git_rev_parse(inputs.baseline_ref), + "candidate_sha": _git_rev_parse(inputs.candidate_ref), + "worktree_dirty": _worktree_dirty(), + "command_line": sys.argv, + "machine": { + "platform": platform.platform(), + "python": platform.python_version(), + "processor": platform.processor(), + }, + "inputs": inputs, + "provider_script": {"provider": "mock-provider", "model": "mock-model", "domains": ["chat"]}, + "clock_script": {"time_source": "time.monotonic", "deterministic_replay": False}, + "capacity_plan": capacity_plan, + "iterations": iterations, + "derived_metrics": { + "mean_wall_time_seconds": statistics.fmean(wall_times) if wall_times else 0.0, + "p50_wall_time_seconds": statistics.median(wall_times) if wall_times else 0.0, + "p95_wall_time_seconds": _percentile(wall_times, 0.95), + "min_wall_time_seconds": min(wall_times) if wall_times else 0.0, + "max_wall_time_seconds": max(wall_times) if wall_times else 0.0, + "stdev_wall_time_seconds": statistics.stdev(wall_times) if len(wall_times) > 1 else 0.0, + "max_hidden_scheduler_resource_waiters": 0, + "final_zero_task_leases": all( + sum(iteration["final_task_snapshot"].leased_resources.values()) == 0 for iteration in iterations + ), + "final_zero_request_leases": all( + iteration["final_request_snapshot"]["zero_active_request_leases"] for iteration in iterations + ), + "final_zero_request_waiters": all( + iteration["final_request_snapshot"]["zero_request_waiters"] for iteration in iterations + ), + }, + } + + +def _event_payload(event: Any) -> dict[str, Any]: + return { + "event_kind": event.event_kind, + "captured_at_monotonic": event.captured_at_monotonic, + "sequence": event.sequence, + "captured_correlation": event.captured_correlation, + "task_id": getattr(event, "task_id", None), + "task_execution_id": getattr(event, "task_execution_id", None), + "task_lease_id": getattr(event, "task_lease_id", None), + "request_attempt_id": getattr(event, "request_attempt_id", None), + "request_lease_id": getattr(event, "request_lease_id", None), + "scheduler_resource_key": getattr(event, "scheduler_resource_key", None), + "request_resource_key": getattr(event, "request_resource_key", None), + "reason_or_outcome": getattr(event, "reason_or_outcome", None) or getattr(event, "reason_or_result", None), + } + + +def _write_csv(path: Path, artifact: Mapping[str, Any]) -> None: + with path.open("w", newline="", encoding="utf-8") as handle: + writer = csv.DictWriter( + handle, fieldnames=["iteration", "wall_time_seconds", "accepted_task_count", "output_hash"] + ) + writer.writeheader() + for index, iteration in enumerate(artifact["iterations"]): + writer.writerow( + { + "iteration": index, + "wall_time_seconds": iteration["wall_time_seconds"], + "accepted_task_count": iteration["accepted_task_count"], + "output_hash": iteration["output_hashes"]["selected_task_ids"], + } + ) + + +def _write_markdown(path: Path, artifact: Mapping[str, Any]) -> None: + metrics = artifact["derived_metrics"] + lines = [ + "# Async Scheduling Benchmark Smoke", + "", + f"- scenario: `{artifact['scenario_id']}`", + f"- baseline_sha: `{artifact['baseline_sha']}`", + f"- candidate_sha: `{artifact['candidate_sha']}`", + f"- iterations: `{len(artifact['iterations'])}`", + f"- mean_wall_time_seconds: `{metrics['mean_wall_time_seconds']:.6f}`", + f"- p95_wall_time_seconds: `{metrics['p95_wall_time_seconds']:.6f}`", + f"- max_hidden_scheduler_resource_waiters: `{metrics['max_hidden_scheduler_resource_waiters']}`", + f"- final_zero_task_leases: `{metrics['final_zero_task_leases']}`", + f"- final_zero_request_leases: `{metrics['final_zero_request_leases']}`", + f"- final_zero_request_waiters: `{metrics['final_zero_request_waiters']}`", + "", + ] + path.write_text("\n".join(lines), encoding="utf-8") + + +def _git_rev_parse(ref: str) -> str: + try: + return subprocess.check_output(["git", "rev-parse", ref], text=True).strip() + except Exception: + return f"unresolved:{ref}" + + +def _worktree_dirty() -> bool: + try: + result = subprocess.run(["git", "status", "--short"], check=False, capture_output=True, text=True) + except Exception: + return True + return bool(result.stdout.strip()) + + +def _percentile(values: list[float], pct: float) -> float: + if not values: + return 0.0 + ordered = sorted(values) + index = min(len(ordered) - 1, max(0, int(round((len(ordered) - 1) * pct)))) + return ordered[index] + + +def _to_jsonable(value: Any) -> Any: + if is_dataclass(value): + return {field.name: _to_jsonable(getattr(value, field.name)) for field in fields(value)} + if isinstance(value, Enum): + return value.value + if isinstance(value, Mapping): + return {str(_to_jsonable(key)): _to_jsonable(item) for key, item in value.items()} + if isinstance(value, tuple | list | set): + return [_to_jsonable(item) for item in value] + return value + + +if __name__ == "__main__": + main() From 8d1f2e1d80e23fcfb2935afa472d54097a349e16 Mon Sep 17 00:00:00 2001 From: "Eric W. Tramel" Date: Mon, 18 May 2026 12:35:25 -0400 Subject: [PATCH 11/33] refactor async scheduling module ownership Signed-off-by: Eric W. Tramel --- .../src/data_designer/engine/capacity.py | 11 +- .../dataset_builders/async_scheduler.py | 32 +- .../dataset_builders/dataset_builder.py | 4 +- .../completion.py} | 2 +- .../queue.py} | 2 +- .../resolver.py} | 64 +--- .../dataset_builders/scheduling/resources.py | 61 +++ .../{utils => scheduling}/task_admission.py | 181 +-------- .../{utils => scheduling}/task_model.py | 0 .../scheduling/task_policies.py | 185 +++++++++ .../dataset_builders/utils/execution_graph.py | 2 +- .../engine/models/clients/__init__.py | 24 -- .../engine/models/clients/factory.py | 2 +- .../models/clients/model_request_executor.py | 24 +- .../data_designer/engine/models/factory.py | 2 +- .../data_designer/engine/models/registry.py | 2 +- .../engine/models/request_admission/config.py | 20 + .../controller.py} | 362 +----------------- .../engine/models/request_admission/limits.py | 19 + .../models/request_admission/outcomes.py | 31 ++ .../models/request_admission/pressure.py | 52 +++ .../engine/models/request_admission/queue.py | 184 +++++++++ .../models/request_admission/resolver.py | 40 ++ .../models/request_admission/resources.py | 48 +++ .../data_designer/engine/models/resources.py | 21 + .../test_completion.py} | 4 +- .../test_queue.py} | 6 +- .../test_resolver.py} | 4 +- .../scheduling/test_resources.py | 62 +++ .../test_task_admission.py | 20 +- .../{utils => scheduling}/test_task_model.py | 2 +- .../scheduling/test_task_policies.py | 120 ++++++ .../test_async_builder_integration.py | 2 +- .../dataset_builders/test_async_scheduler.py | 6 +- .../utils/test_execution_graph.py | 2 +- .../engine/models/clients/test_factory.py | 2 +- .../clients/test_model_request_executor.py | 3 +- .../test_controller.py} | 10 +- .../tests/engine/test_capacity.py | 10 +- .../tests/engine/test_observability.py | 96 +++++ .../src/data_designer/interface/results.py | 2 +- plans/645/README.md | 5 +- plans/645/architecture.md | 22 +- plans/645/contracts.md | 6 +- plans/645/issue-map.md | 14 +- plans/645/migration-and-cleanup.md | 44 ++- plans/645/module-ownership.md | 216 +++++++++++ .../benchmarks/benchmark_async_scheduling.py | 19 +- 48 files changed, 1352 insertions(+), 700 deletions(-) rename packages/data-designer-engine/src/data_designer/engine/dataset_builders/{utils/completion_tracker.py => scheduling/completion.py} (99%) rename packages/data-designer-engine/src/data_designer/engine/dataset_builders/{utils/fair_task_queue.py => scheduling/queue.py} (99%) rename packages/data-designer-engine/src/data_designer/engine/dataset_builders/{utils/task_scheduling.py => scheduling/resolver.py} (68%) create mode 100644 packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/resources.py rename packages/data-designer-engine/src/data_designer/engine/dataset_builders/{utils => scheduling}/task_admission.py (62%) rename packages/data-designer-engine/src/data_designer/engine/dataset_builders/{utils => scheduling}/task_model.py (100%) create mode 100644 packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/task_policies.py create mode 100644 packages/data-designer-engine/src/data_designer/engine/models/request_admission/config.py rename packages/data-designer-engine/src/data_designer/engine/models/{clients/request_admission.py => request_admission/controller.py} (72%) create mode 100644 packages/data-designer-engine/src/data_designer/engine/models/request_admission/limits.py create mode 100644 packages/data-designer-engine/src/data_designer/engine/models/request_admission/outcomes.py create mode 100644 packages/data-designer-engine/src/data_designer/engine/models/request_admission/pressure.py create mode 100644 packages/data-designer-engine/src/data_designer/engine/models/request_admission/queue.py create mode 100644 packages/data-designer-engine/src/data_designer/engine/models/request_admission/resolver.py create mode 100644 packages/data-designer-engine/src/data_designer/engine/models/request_admission/resources.py create mode 100644 packages/data-designer-engine/src/data_designer/engine/models/resources.py rename packages/data-designer-engine/tests/engine/dataset_builders/{utils/test_completion_tracker.py => scheduling/test_completion.py} (98%) rename packages/data-designer-engine/tests/engine/dataset_builders/{utils/test_fair_task_queue.py => scheduling/test_queue.py} (95%) rename packages/data-designer-engine/tests/engine/dataset_builders/{utils/test_task_scheduling.py => scheduling/test_resolver.py} (96%) create mode 100644 packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_resources.py rename packages/data-designer-engine/tests/engine/dataset_builders/{utils => scheduling}/test_task_admission.py (94%) rename packages/data-designer-engine/tests/engine/dataset_builders/{utils => scheduling}/test_task_model.py (96%) create mode 100644 packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_task_policies.py rename packages/data-designer-engine/tests/engine/models/{clients/test_request_admission.py => request_admission/test_controller.py} (95%) create mode 100644 packages/data-designer-engine/tests/engine/test_observability.py create mode 100644 plans/645/module-ownership.md diff --git a/packages/data-designer-engine/src/data_designer/engine/capacity.py b/packages/data-designer-engine/src/data_designer/engine/capacity.py index 89dc62bd1..e2e368186 100644 --- a/packages/data-designer-engine/src/data_designer/engine/capacity.py +++ b/packages/data-designer-engine/src/data_designer/engine/capacity.py @@ -7,13 +7,10 @@ from dataclasses import dataclass, field from typing import Generic, Literal, TypeVar -from data_designer.engine.dataset_builders.utils.task_scheduling import SchedulerResourceKey, TaskGroupKey -from data_designer.engine.models.clients.request_admission import ( - ProviderModelKey, - ProviderModelStaticCap, - RequestAdmissionConfig, - RequestResourceKey, -) +from data_designer.engine.dataset_builders.scheduling.resources import SchedulerResourceKey, TaskGroupKey +from data_designer.engine.models.request_admission.config import RequestAdmissionConfig +from data_designer.engine.models.request_admission.resources import RequestResourceKey +from data_designer.engine.models.resources import ProviderModelKey, ProviderModelStaticCap _T = TypeVar("_T") diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py index 2a9718b19..b4f0b81be 100644 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py @@ -27,14 +27,26 @@ from data_designer.engine.context import current_row_group from data_designer.engine.dataset_builders.errors import DatasetGenerationError from data_designer.engine.dataset_builders.multi_column_configs import MultiColumnConfig +from data_designer.engine.dataset_builders.scheduling.completion import CompletionTracker, FrontierDelta +from data_designer.engine.dataset_builders.scheduling.queue import ( + FairTaskQueue, +) +from data_designer.engine.dataset_builders.scheduling.resolver import TaskSchedulingResolver +from data_designer.engine.dataset_builders.scheduling.resources import ( + SchedulableTask, + stable_task_id, +) +from data_designer.engine.dataset_builders.scheduling.task_admission import ( + TaskAdmissionConfig, + TaskAdmissionController, + TaskAdmissionDenied, + TaskAdmissionLease, +) +from data_designer.engine.dataset_builders.scheduling.task_model import SliceRef, Task, TaskTrace from data_designer.engine.dataset_builders.utils.async_progress_reporter import ( DEFAULT_REPORT_INTERVAL, AsyncProgressReporter, ) -from data_designer.engine.dataset_builders.utils.completion_tracker import CompletionTracker, FrontierDelta -from data_designer.engine.dataset_builders.utils.fair_task_queue import ( - FairTaskQueue, -) from data_designer.engine.dataset_builders.utils.progress_tracker import ProgressTracker from data_designer.engine.dataset_builders.utils.skip_evaluator import should_skip_column_for_record from data_designer.engine.dataset_builders.utils.skip_tracker import ( @@ -42,18 +54,6 @@ strip_skip_metadata_from_records, ) from data_designer.engine.dataset_builders.utils.sticky_progress_bar import StickyProgressBar -from data_designer.engine.dataset_builders.utils.task_admission import ( - TaskAdmissionConfig, - TaskAdmissionController, - TaskAdmissionDenied, - TaskAdmissionLease, -) -from data_designer.engine.dataset_builders.utils.task_model import SliceRef, Task, TaskTrace -from data_designer.engine.dataset_builders.utils.task_scheduling import ( - SchedulableTask, - TaskSchedulingResolver, - stable_task_id, -) from data_designer.engine.models.errors import RETRYABLE_MODEL_ERRORS from data_designer.engine.observability import ( RuntimeCorrelation, diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/dataset_builder.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/dataset_builder.py index 7a20818e6..73737629e 100644 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/dataset_builder.py +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/dataset_builder.py @@ -70,7 +70,7 @@ from data_designer.config.run_config import RunConfig from data_designer.engine.column_generators.generators.base import ColumnGeneratorWithModelRegistry - from data_designer.engine.dataset_builders.utils.task_model import TaskTrace + from data_designer.engine.dataset_builders.scheduling.task_model import TaskTrace from data_designer.engine.models.usage import ModelUsageStats logger = logging.getLogger(__name__) @@ -88,11 +88,11 @@ MODEL_TASK_ADMISSION_HEADROOM_MULTIPLIER, AsyncTaskScheduler, ) + from data_designer.engine.dataset_builders.scheduling.completion import CompletionTracker, FrontierDelta from data_designer.engine.dataset_builders.utils.async_concurrency import ( AsyncConcurrentExecutor, ensure_async_engine_loop, ) - from data_designer.engine.dataset_builders.utils.completion_tracker import CompletionTracker, FrontierDelta from data_designer.engine.dataset_builders.utils.row_group_buffer import RowGroupBufferManager diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/completion_tracker.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/completion.py similarity index 99% rename from packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/completion_tracker.py rename to packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/completion.py index 65a8b431c..23166f329 100644 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/completion_tracker.py +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/completion.py @@ -8,7 +8,7 @@ from typing import TYPE_CHECKING from data_designer.config.column_configs import GenerationStrategy -from data_designer.engine.dataset_builders.utils.task_model import SliceRef, Task +from data_designer.engine.dataset_builders.scheduling.task_model import SliceRef, Task if TYPE_CHECKING: from data_designer.engine.dataset_builders.utils.execution_graph import ExecutionGraph diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/fair_task_queue.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/queue.py similarity index 99% rename from packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/fair_task_queue.py rename to packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/queue.py index 063b770e3..424cb46f4 100644 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/fair_task_queue.py +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/queue.py @@ -8,7 +8,7 @@ from collections.abc import Callable, Iterable, Mapping from dataclasses import dataclass -from data_designer.engine.dataset_builders.utils.task_scheduling import ( +from data_designer.engine.dataset_builders.scheduling.resources import ( SchedulableTask, SchedulerResourceKey, TaskGroupKey, diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/task_scheduling.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/resolver.py similarity index 68% rename from packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/task_scheduling.py rename to packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/resolver.py index a0bb61d95..924a278ee 100644 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/task_scheduling.py +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/resolver.py @@ -3,50 +3,23 @@ from __future__ import annotations -import hashlib from collections.abc import Mapping -from dataclasses import dataclass, field -from typing import TYPE_CHECKING, Literal +from dataclasses import dataclass +from typing import TYPE_CHECKING from data_designer.config.scheduling import SchedulingMetadata, SchedulingMetadataError -from data_designer.engine.dataset_builders.utils.task_model import Task +from data_designer.engine.dataset_builders.scheduling.resources import ( + SchedulableTask, + SchedulerResourceRequest, + TaskGroupKey, + TaskGroupSpec, + stable_task_id, +) +from data_designer.engine.dataset_builders.scheduling.task_model import Task if TYPE_CHECKING: from data_designer.engine.column_generators.generators.base import ColumnGenerator -SchedulerResourceKey = Literal["submission", "llm_wait", "local"] - - -@dataclass(frozen=True, order=True) -class TaskGroupKey: - """Stable identity for a stream of related scheduler tasks.""" - - kind: Literal["model", "custom_model", "local"] - identity: tuple[str, ...] - - -@dataclass(frozen=True) -class TaskGroupSpec: - """Scheduler-internal task group metadata.""" - - key: TaskGroupKey - weight: float = 1.0 - admitted_limit: int | None = None - - -@dataclass(frozen=True) -class SchedulerResourceRequest: - """Scheduler task-stage resource request.""" - - amounts: Mapping[SchedulerResourceKey, int] = field(default_factory=lambda: {"submission": 1}) - - def __post_init__(self) -> None: - for resource, amount in self.amounts.items(): - if resource not in {"submission", "llm_wait", "local"}: - raise ValueError(f"Unknown scheduler resource key: {resource!r}") - if not isinstance(amount, int) or amount <= 0: - raise ValueError(f"Scheduler resource amount for {resource!r} must be a positive integer.") - @dataclass(frozen=True) class ResolvedTaskScheduling: @@ -56,16 +29,6 @@ class ResolvedTaskScheduling: resource_request: SchedulerResourceRequest -@dataclass(frozen=True) -class SchedulableTask: - """Ready task plus scheduler-owned grouping and resource request.""" - - task_id: str - payload: Task - group: TaskGroupSpec - resource_request: SchedulerResourceRequest - - class TaskSchedulingResolver: """Resolve generator metadata into scheduler-internal task inputs.""" @@ -141,10 +104,3 @@ def _resolved_from_metadata( ), resource_request=SchedulerResourceRequest({"submission": 1, "llm_wait": 1}), ) - - -def stable_task_id(task: Task) -> str: - """Return a stable scheduler task id for queue/admission membership.""" - raw = f"{task.column}\0{task.row_group}\0{task.row_index}\0{task.task_type}".encode() - digest = hashlib.sha1(raw).hexdigest()[:16] - return f"task-{digest}" diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/resources.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/resources.py new file mode 100644 index 000000000..3c002d37f --- /dev/null +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/resources.py @@ -0,0 +1,61 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +import hashlib +from collections.abc import Mapping +from dataclasses import dataclass, field +from typing import Literal + +from data_designer.engine.dataset_builders.scheduling.task_model import Task + +SchedulerResourceKey = Literal["submission", "llm_wait", "local"] + + +@dataclass(frozen=True, order=True) +class TaskGroupKey: + """Stable identity for a stream of related scheduler tasks.""" + + kind: Literal["model", "custom_model", "local"] + identity: tuple[str, ...] + + +@dataclass(frozen=True) +class TaskGroupSpec: + """Scheduler-internal task group metadata.""" + + key: TaskGroupKey + weight: float = 1.0 + admitted_limit: int | None = None + + +@dataclass(frozen=True) +class SchedulerResourceRequest: + """Scheduler task-stage resource request.""" + + amounts: Mapping[SchedulerResourceKey, int] = field(default_factory=lambda: {"submission": 1}) + + def __post_init__(self) -> None: + for resource, amount in self.amounts.items(): + if resource not in {"submission", "llm_wait", "local"}: + raise ValueError(f"Unknown scheduler resource key: {resource!r}") + if not isinstance(amount, int) or amount <= 0: + raise ValueError(f"Scheduler resource amount for {resource!r} must be a positive integer.") + + +@dataclass(frozen=True) +class SchedulableTask: + """Ready task plus scheduler-owned grouping and resource request.""" + + task_id: str + payload: Task + group: TaskGroupSpec + resource_request: SchedulerResourceRequest + + +def stable_task_id(task: Task) -> str: + """Return a stable scheduler task id for queue/admission membership.""" + raw = f"{task.column}\0{task.row_group}\0{task.row_index}\0{task.task_type}".encode() + digest = hashlib.sha1(raw).hexdigest()[:16] + return f"task-{digest}" diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/task_admission.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/task_admission.py similarity index 62% rename from packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/task_admission.py rename to packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/task_admission.py index 8d7c8c702..4dffb47f7 100644 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/task_admission.py +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/task_admission.py @@ -8,24 +8,25 @@ from collections import Counter, defaultdict from collections.abc import Mapping from dataclasses import dataclass, field -from typing import Literal, Protocol +from typing import Literal -from data_designer.engine.dataset_builders.utils.fair_task_queue import QueueView -from data_designer.engine.dataset_builders.utils.task_model import Task -from data_designer.engine.dataset_builders.utils.task_scheduling import ( +from data_designer.engine.dataset_builders.scheduling.queue import QueueView +from data_designer.engine.dataset_builders.scheduling.resources import ( SchedulableTask, SchedulerResourceKey, SchedulerResourceRequest, TaskGroupKey, ) - -TaskAdmissionDenyReason = Literal[ - "no_capacity", - "group_cap", - "borrow_debt", - "shutdown", - "policy_denial", -] +from data_designer.engine.dataset_builders.scheduling.task_model import Task +from data_designer.engine.dataset_builders.scheduling.task_policies import ( + BoundedBorrowTaskAdmissionPolicy, + BoundedBorrowTaskAdmissionPolicyConfig, + PolicyStateDelta, + StrictFairTaskAdmissionPolicy, + TaskAdmissionDenyReason, + TaskAdmissionPolicy, + TaskAdmissionPolicyDecision, +) ReleaseReason = Literal[ "released", @@ -54,18 +55,6 @@ def __post_init__(self) -> None: object.__setattr__(self, "resource_limits", merged) -@dataclass(frozen=True) -class BoundedBorrowTaskAdmissionPolicyConfig: - """Engine-internal bounded-borrow policy configuration.""" - - borrow_ceiling_by_group_resource: Mapping[tuple[TaskGroupKey, SchedulerResourceKey], int] = field( - default_factory=dict - ) - default_borrow_ceiling: int = 0 - strict_share_rounding: Literal["floor", "ceil"] = "floor" - repay_on_withheld_peer_pressure: bool = True - - @dataclass(frozen=True) class TaskAdmissionView: resource_limits: Mapping[SchedulerResourceKey, int] @@ -76,20 +65,6 @@ class TaskAdmissionView: policy_debt_by_group_resource: Mapping[tuple[TaskGroupKey, SchedulerResourceKey], int] -@dataclass(frozen=True) -class TaskAdmissionPolicyDecision: - allowed: bool - reason: TaskAdmissionDenyReason | None = None - available_after: float | None = None - diagnostics: Mapping[str, object] = field(default_factory=dict) - - -@dataclass(frozen=True) -class PolicyStateDelta: - debt_changes: Mapping[tuple[TaskGroupKey, SchedulerResourceKey], int] = field(default_factory=dict) - diagnostic_counters: Mapping[str, int] = field(default_factory=dict) - - @dataclass(frozen=True) class TaskAdmissionLease: lease_id: str @@ -126,132 +101,6 @@ class TaskAdmissionBlockSummary: diagnostics: Mapping[str, object] = field(default_factory=dict) -class TaskAdmissionPolicy(Protocol): - def evaluate( - self, - item: SchedulableTask, - queue_view: QueueView, - admission_view: TaskAdmissionView, - ) -> TaskAdmissionPolicyDecision: ... - - def on_acquire( - self, - lease: TaskAdmissionLease, - decision: TaskAdmissionPolicyDecision, - ) -> PolicyStateDelta: ... - - def on_release(self, lease: TaskAdmissionLease) -> PolicyStateDelta: ... - - -class StrictFairTaskAdmissionPolicy: - """Behavior-preserving policy that enforces per-group admitted caps.""" - - def evaluate( - self, - item: SchedulableTask, - queue_view: QueueView, - admission_view: TaskAdmissionView, - ) -> TaskAdmissionPolicyDecision: - if item.group.admitted_limit is None: - return TaskAdmissionPolicyDecision(allowed=True) - leased_count = admission_view.running_counts_by_group.get(item.group.key, 0) - if leased_count < item.group.admitted_limit: - return TaskAdmissionPolicyDecision(allowed=True) - if not _has_queued_peer_group(item.group.key, queue_view): - return TaskAdmissionPolicyDecision(allowed=True) - return TaskAdmissionPolicyDecision( - allowed=False, - reason="group_cap", - diagnostics={"admitted_limit": item.group.admitted_limit, "leased_count": leased_count}, - ) - - def on_acquire( - self, - lease: TaskAdmissionLease, - decision: TaskAdmissionPolicyDecision, - ) -> PolicyStateDelta: - return PolicyStateDelta() - - def on_release(self, lease: TaskAdmissionLease) -> PolicyStateDelta: - return PolicyStateDelta() - - -class BoundedBorrowTaskAdmissionPolicy(StrictFairTaskAdmissionPolicy): - """Strict policy with optional bounded borrow debt over peer pressure.""" - - def __init__(self, config: BoundedBorrowTaskAdmissionPolicyConfig) -> None: - self._config = config - - def evaluate( - self, - item: SchedulableTask, - queue_view: QueueView, - admission_view: TaskAdmissionView, - ) -> TaskAdmissionPolicyDecision: - limit = item.group.admitted_limit - if limit is None: - return TaskAdmissionPolicyDecision(allowed=True) - - leased_count = admission_view.running_counts_by_group.get(item.group.key, 0) - if leased_count < limit: - return TaskAdmissionPolicyDecision(allowed=True) - - if _has_queued_peer_group(item.group.key, queue_view): - for resource in item.resource_request.amounts: - debt_key = (item.group.key, resource) - debt = admission_view.policy_debt_by_group_resource.get(debt_key, 0) - if debt > 0: - return TaskAdmissionPolicyDecision( - allowed=False, - reason="borrow_debt", - diagnostics={"resource": resource, "debt": debt}, - ) - return TaskAdmissionPolicyDecision( - allowed=False, - reason="group_cap", - diagnostics={"admitted_limit": limit, "leased_count": leased_count}, - ) - - borrow_resources: list[tuple[SchedulerResourceKey, int]] = [] - for resource, amount in item.resource_request.amounts.items(): - debt_key = (item.group.key, resource) - debt = admission_view.policy_debt_by_group_resource.get(debt_key, 0) - ceiling = self._config.borrow_ceiling_by_group_resource.get( - debt_key, - self._config.default_borrow_ceiling, - ) - if debt + amount > ceiling: - return TaskAdmissionPolicyDecision( - allowed=False, - reason="borrow_debt", - diagnostics={"resource": resource, "debt": debt, "requested": amount, "ceiling": ceiling}, - ) - borrow_resources.append((resource, amount)) - return TaskAdmissionPolicyDecision(allowed=True, diagnostics={"borrow_resources": tuple(borrow_resources)}) - - def on_acquire( - self, - lease: TaskAdmissionLease, - decision: TaskAdmissionPolicyDecision, - ) -> PolicyStateDelta: - borrow_resources = decision.diagnostics.get("borrow_resources") - if borrow_resources: - changes = { - (lease.item.group.key, resource): amount - for resource, amount in borrow_resources - if isinstance(resource, str) and isinstance(amount, int) - } - return PolicyStateDelta(debt_changes=changes) - return PolicyStateDelta() - - def on_release(self, lease: TaskAdmissionLease) -> PolicyStateDelta: - if not self._config.repay_on_withheld_peer_pressure: - return PolicyStateDelta() - return PolicyStateDelta( - debt_changes={(lease.item.group.key, resource): -amount for resource, amount in lease.resources.items()} - ) - - class TaskAdmissionController: """Owns scheduler-level task leases and resource accounting.""" @@ -410,7 +259,3 @@ def _missing_resources( def _apply_delta(self, delta: PolicyStateDelta) -> None: for key, change in delta.debt_changes.items(): self._policy_debt[key] = max(0, self._policy_debt[key] + change) - - -def _has_queued_peer_group(group_key: TaskGroupKey, queue_view: QueueView) -> bool: - return any(key != group_key and count > 0 for key, count in queue_view.queued_by_group.items()) diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/task_model.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/task_model.py similarity index 100% rename from packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/task_model.py rename to packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/task_model.py diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/task_policies.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/task_policies.py new file mode 100644 index 000000000..14ecd89e9 --- /dev/null +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/task_policies.py @@ -0,0 +1,185 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +from collections.abc import Mapping +from dataclasses import dataclass, field +from typing import TYPE_CHECKING, Literal, Protocol + +from data_designer.engine.dataset_builders.scheduling.queue import QueueView +from data_designer.engine.dataset_builders.scheduling.resources import ( + SchedulableTask, + SchedulerResourceKey, + TaskGroupKey, +) + +if TYPE_CHECKING: + from data_designer.engine.dataset_builders.scheduling.task_admission import ( + TaskAdmissionLease, + TaskAdmissionView, + ) + +TaskAdmissionDenyReason = Literal[ + "no_capacity", + "group_cap", + "borrow_debt", + "shutdown", + "policy_denial", +] + + +@dataclass(frozen=True) +class BoundedBorrowTaskAdmissionPolicyConfig: + """Engine-internal bounded-borrow policy configuration.""" + + borrow_ceiling_by_group_resource: Mapping[tuple[TaskGroupKey, SchedulerResourceKey], int] = field( + default_factory=dict + ) + default_borrow_ceiling: int = 0 + strict_share_rounding: Literal["floor", "ceil"] = "floor" + repay_on_withheld_peer_pressure: bool = True + + +@dataclass(frozen=True) +class TaskAdmissionPolicyDecision: + allowed: bool + reason: TaskAdmissionDenyReason | None = None + available_after: float | None = None + diagnostics: Mapping[str, object] = field(default_factory=dict) + + +@dataclass(frozen=True) +class PolicyStateDelta: + debt_changes: Mapping[tuple[TaskGroupKey, SchedulerResourceKey], int] = field(default_factory=dict) + diagnostic_counters: Mapping[str, int] = field(default_factory=dict) + + +class TaskAdmissionPolicy(Protocol): + def evaluate( + self, + item: SchedulableTask, + queue_view: QueueView, + admission_view: TaskAdmissionView, + ) -> TaskAdmissionPolicyDecision: ... + + def on_acquire( + self, + lease: TaskAdmissionLease, + decision: TaskAdmissionPolicyDecision, + ) -> PolicyStateDelta: ... + + def on_release(self, lease: TaskAdmissionLease) -> PolicyStateDelta: ... + + +class StrictFairTaskAdmissionPolicy: + """Behavior-preserving policy that enforces per-group admitted caps.""" + + def evaluate( + self, + item: SchedulableTask, + queue_view: QueueView, + admission_view: TaskAdmissionView, + ) -> TaskAdmissionPolicyDecision: + if item.group.admitted_limit is None: + return TaskAdmissionPolicyDecision(allowed=True) + leased_count = admission_view.running_counts_by_group.get(item.group.key, 0) + if leased_count < item.group.admitted_limit: + return TaskAdmissionPolicyDecision(allowed=True) + if not _has_queued_peer_group(item.group.key, queue_view): + return TaskAdmissionPolicyDecision(allowed=True) + return TaskAdmissionPolicyDecision( + allowed=False, + reason="group_cap", + diagnostics={"admitted_limit": item.group.admitted_limit, "leased_count": leased_count}, + ) + + def on_acquire( + self, + lease: TaskAdmissionLease, + decision: TaskAdmissionPolicyDecision, + ) -> PolicyStateDelta: + return PolicyStateDelta() + + def on_release(self, lease: TaskAdmissionLease) -> PolicyStateDelta: + return PolicyStateDelta() + + +class BoundedBorrowTaskAdmissionPolicy(StrictFairTaskAdmissionPolicy): + """Strict policy with optional bounded borrow debt over peer pressure.""" + + def __init__(self, config: BoundedBorrowTaskAdmissionPolicyConfig) -> None: + self._config = config + + def evaluate( + self, + item: SchedulableTask, + queue_view: QueueView, + admission_view: TaskAdmissionView, + ) -> TaskAdmissionPolicyDecision: + limit = item.group.admitted_limit + if limit is None: + return TaskAdmissionPolicyDecision(allowed=True) + + leased_count = admission_view.running_counts_by_group.get(item.group.key, 0) + if leased_count < limit: + return TaskAdmissionPolicyDecision(allowed=True) + + if _has_queued_peer_group(item.group.key, queue_view): + for resource in item.resource_request.amounts: + debt_key = (item.group.key, resource) + debt = admission_view.policy_debt_by_group_resource.get(debt_key, 0) + if debt > 0: + return TaskAdmissionPolicyDecision( + allowed=False, + reason="borrow_debt", + diagnostics={"resource": resource, "debt": debt}, + ) + return TaskAdmissionPolicyDecision( + allowed=False, + reason="group_cap", + diagnostics={"admitted_limit": limit, "leased_count": leased_count}, + ) + + borrow_resources: list[tuple[SchedulerResourceKey, int]] = [] + for resource, amount in item.resource_request.amounts.items(): + debt_key = (item.group.key, resource) + debt = admission_view.policy_debt_by_group_resource.get(debt_key, 0) + ceiling = self._config.borrow_ceiling_by_group_resource.get( + debt_key, + self._config.default_borrow_ceiling, + ) + if debt + amount > ceiling: + return TaskAdmissionPolicyDecision( + allowed=False, + reason="borrow_debt", + diagnostics={"resource": resource, "debt": debt, "requested": amount, "ceiling": ceiling}, + ) + borrow_resources.append((resource, amount)) + return TaskAdmissionPolicyDecision(allowed=True, diagnostics={"borrow_resources": tuple(borrow_resources)}) + + def on_acquire( + self, + lease: TaskAdmissionLease, + decision: TaskAdmissionPolicyDecision, + ) -> PolicyStateDelta: + borrow_resources = decision.diagnostics.get("borrow_resources") + if borrow_resources: + changes = { + (lease.item.group.key, resource): amount + for resource, amount in borrow_resources + if isinstance(resource, str) and isinstance(amount, int) + } + return PolicyStateDelta(debt_changes=changes) + return PolicyStateDelta() + + def on_release(self, lease: TaskAdmissionLease) -> PolicyStateDelta: + if not self._config.repay_on_withheld_peer_pressure: + return PolicyStateDelta() + return PolicyStateDelta( + debt_changes={(lease.item.group.key, resource): -amount for resource, amount in lease.resources.items()} + ) + + +def _has_queued_peer_group(group_key: TaskGroupKey, queue_view: QueueView) -> bool: + return any(key != group_key and count > 0 for key, count in queue_view.queued_by_group.items()) diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/execution_graph.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/execution_graph.py index b090cf63d..29b7d99bc 100644 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/execution_graph.py +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/utils/execution_graph.py @@ -15,8 +15,8 @@ DatasetBuilderColumnConfigT, MultiColumnConfig, ) +from data_designer.engine.dataset_builders.scheduling.task_model import SliceRef from data_designer.engine.dataset_builders.utils.errors import ConfigCompilationError, DAGCircularDependencyError -from data_designer.engine.dataset_builders.utils.task_model import SliceRef from data_designer.logging import LOG_INDENT logger = logging.getLogger(__name__) diff --git a/packages/data-designer-engine/src/data_designer/engine/models/clients/__init__.py b/packages/data-designer-engine/src/data_designer/engine/models/clients/__init__.py index 37be3514c..afdd7f616 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/clients/__init__.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/clients/__init__.py @@ -13,19 +13,6 @@ ) from data_designer.engine.models.clients.factory import create_model_client from data_designer.engine.models.clients.model_request_executor import ModelRequestExecutor -from data_designer.engine.models.clients.request_admission import ( - AdaptiveRequestAdmissionController, - RequestAdmissionConfig, - RequestAdmissionController, - RequestAdmissionError, - RequestAdmissionItem, - RequestAdmissionLease, - RequestDomain, - RequestFairQueue, - RequestReleaseOutcome, - RequestResourceKey, - RequestResourceResolver, -) from data_designer.engine.models.clients.retry import RetryConfig from data_designer.engine.models.clients.types import ( AssistantMessage, @@ -51,22 +38,11 @@ "ImageGenerationRequest", "ImageGenerationResponse", "ImagePayload", - "AdaptiveRequestAdmissionController", "ModelClient", "ModelRequestExecutor", "OpenAICompatibleClient", "ProviderError", "ProviderErrorKind", - "RequestAdmissionConfig", - "RequestAdmissionController", - "RequestAdmissionError", - "RequestAdmissionItem", - "RequestAdmissionLease", - "RequestDomain", - "RequestFairQueue", - "RequestReleaseOutcome", - "RequestResourceResolver", - "RequestResourceKey", "RetryConfig", "ToolCall", "Usage", diff --git a/packages/data-designer-engine/src/data_designer/engine/models/clients/factory.py b/packages/data-designer-engine/src/data_designer/engine/models/clients/factory.py index b0255be77..57483ec01 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/clients/factory.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/clients/factory.py @@ -11,9 +11,9 @@ from data_designer.engine.models.clients.adapters.openai_compatible import OpenAICompatibleClient from data_designer.engine.models.clients.base import ModelClient from data_designer.engine.models.clients.model_request_executor import ModelRequestExecutor -from data_designer.engine.models.clients.request_admission import RequestAdmissionController from data_designer.engine.models.clients.retry import RetryConfig from data_designer.engine.models.errors import FormattedLLMErrorMessage +from data_designer.engine.models.request_admission.controller import RequestAdmissionController from data_designer.engine.observability import RequestAdmissionEventSink from data_designer.engine.secret_resolver import SecretResolver diff --git a/packages/data-designer-engine/src/data_designer/engine/models/clients/model_request_executor.py b/packages/data-designer-engine/src/data_designer/engine/models/clients/model_request_executor.py index 5d28f560b..c79f8bfab 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/clients/model_request_executor.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/clients/model_request_executor.py @@ -9,17 +9,6 @@ from data_designer.engine.models.clients.base import ModelClient from data_designer.engine.models.clients.errors import ProviderError, ProviderErrorKind -from data_designer.engine.models.clients.request_admission import ( - RequestAdmissionController, - RequestAdmissionError, - RequestAdmissionItem, - RequestAdmissionLease, - RequestDomain, - RequestEventContext, - RequestGroupSpec, - RequestReleaseOutcome, - RequestResourceResolver, -) from data_designer.engine.models.clients.types import ( ChatCompletionRequest, ChatCompletionResponse, @@ -28,6 +17,19 @@ ImageGenerationRequest, ImageGenerationResponse, ) +from data_designer.engine.models.request_admission.controller import ( + RequestAdmissionController, + RequestAdmissionError, + RequestAdmissionLease, +) +from data_designer.engine.models.request_admission.outcomes import RequestReleaseOutcome +from data_designer.engine.models.request_admission.resolver import RequestResourceResolver +from data_designer.engine.models.request_admission.resources import ( + RequestAdmissionItem, + RequestDomain, + RequestEventContext, + RequestGroupSpec, +) from data_designer.engine.observability import ( RequestAdmissionEvent, RequestAdmissionEventSink, diff --git a/packages/data-designer-engine/src/data_designer/engine/models/factory.py b/packages/data-designer-engine/src/data_designer/engine/models/factory.py index 27dd13dc6..6531d1dbd 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/factory.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/factory.py @@ -48,10 +48,10 @@ def create_model_registry( """ from data_designer.config.run_config import RunConfig from data_designer.engine.models.clients.factory import create_model_client - from data_designer.engine.models.clients.request_admission import AdaptiveRequestAdmissionController from data_designer.engine.models.clients.retry import RetryConfig from data_designer.engine.models.facade import ModelFacade from data_designer.engine.models.registry import ModelRegistry + from data_designer.engine.models.request_admission.controller import AdaptiveRequestAdmissionController _ = run_config or RunConfig() request_admission = AdaptiveRequestAdmissionController() diff --git a/packages/data-designer-engine/src/data_designer/engine/models/registry.py b/packages/data-designer-engine/src/data_designer/engine/models/registry.py index 04e2f4fd1..5b81bb504 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/registry.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/registry.py @@ -15,9 +15,9 @@ if TYPE_CHECKING: from collections.abc import Callable - from data_designer.engine.models.clients.request_admission import AdaptiveRequestAdmissionController from data_designer.engine.models.clients.retry import RetryConfig from data_designer.engine.models.facade import ModelFacade + from data_designer.engine.models.request_admission.controller import AdaptiveRequestAdmissionController ModelFacadeFactory = Callable[ [ModelConfig, SecretResolver, ModelProviderRegistry, RetryConfig | None], diff --git a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/config.py b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/config.py new file mode 100644 index 000000000..2796698c5 --- /dev/null +++ b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/config.py @@ -0,0 +1,20 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +from collections.abc import Mapping +from dataclasses import dataclass, field + +from data_designer.engine.models.request_admission.resources import RequestResourceKey + + +@dataclass(frozen=True) +class RequestAdmissionConfig: + initial_limits: Mapping[RequestResourceKey, int] = field(default_factory=dict) + max_limit_clamps: Mapping[RequestResourceKey, int | None] = field(default_factory=dict) + cooldown_seconds: float = 2.0 + multiplicative_decrease_factor: float = 0.75 + additive_increase_step: int = 1 + increase_after_successes: int = 25 + default_queue_wait_timeout_seconds: float | None = None diff --git a/packages/data-designer-engine/src/data_designer/engine/models/clients/request_admission.py b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py similarity index 72% rename from packages/data-designer-engine/src/data_designer/engine/models/clients/request_admission.py rename to packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py index c04370f54..72abd4dda 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/clients/request_admission.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py @@ -4,100 +4,36 @@ from __future__ import annotations import asyncio -import heapq import math import threading import time import uuid -from collections import Counter, deque -from collections.abc import Callable, Mapping +from collections import Counter +from collections.abc import Mapping from dataclasses import dataclass, field -from enum import Enum from typing import Literal, Protocol +from data_designer.engine.models.request_admission.config import RequestAdmissionConfig +from data_designer.engine.models.request_admission.limits import AdaptiveRequestLimitState +from data_designer.engine.models.request_admission.outcomes import ReleaseResult, RequestReleaseOutcome +from data_designer.engine.models.request_admission.pressure import ( + ProviderModelPressureSnapshot, + RequestPressureSnapshot, + RequestPressureSnapshotProvider, +) +from data_designer.engine.models.request_admission.queue import RequestFairQueue, RequestWaiter +from data_designer.engine.models.request_admission.resources import ( + RequestAdmissionItem, + RequestDomain, + RequestResourceKey, +) +from data_designer.engine.models.resources import ProviderModelKey from data_designer.engine.observability import ( RequestAdmissionEvent, RequestAdmissionEventSink, runtime_correlation_provider, ) - -class RequestDomain(str, Enum): - CHAT = "chat" - EMBEDDING = "embedding" - IMAGE = "image" - HEALTHCHECK = "healthcheck" - - -@dataclass(frozen=True, order=True) -class ProviderModelKey: - provider_name: str - model_id: str - - -@dataclass(frozen=True, order=True) -class RequestResourceKey: - provider_name: str - model_id: str - domain: RequestDomain - - @property - def provider_model_key(self) -> ProviderModelKey: - return ProviderModelKey(self.provider_name, self.model_id) - - -@dataclass(frozen=True) -class ResolvedRequestResource: - provider_model: ProviderModelKey - resource: RequestResourceKey - aliases: tuple[str, ...] = () - generation_kind: str | None = None - - -class RequestResourceResolver: - """Canonical provider/model/domain request-resource identity factory.""" - - def resolve( - self, - *, - provider_name: str, - model_id: str, - domain: RequestDomain, - model_alias: str | None = None, - provider_alias: str | None = None, - generation_kind: str | None = None, - ) -> ResolvedRequestResource: - resource = RequestResourceKey(provider_name=provider_name, model_id=model_id, domain=domain) - aliases = tuple(alias for alias in (provider_alias, model_alias) if alias) - return ResolvedRequestResource( - provider_model=resource.provider_model_key, - resource=resource, - aliases=aliases, - generation_kind=generation_kind, - ) - - -@dataclass(frozen=True) -class RequestGroupSpec: - key: RequestResourceKey - weight: float = 1.0 - - -@dataclass(frozen=True) -class RequestEventContext: - captured_correlation: object | None = None - task_execution_id: str | None = None - request_attempt_id: str | None = None - - -@dataclass(frozen=True) -class RequestAdmissionItem: - resource: RequestResourceKey - group: RequestGroupSpec - queue_wait_timeout_seconds: float | None = None - event_context: RequestEventContext | None = None - - RequestDenyReason = Literal[ "no_capacity", "cooldown", @@ -132,29 +68,6 @@ class RequestAdmissionLease: RequestAdmissionDecision = RequestAdmissionLease | RequestAdmissionDenied -@dataclass(frozen=True) -class RequestReleaseOutcome: - kind: Literal[ - "success", - "rate_limited", - "provider_failure", - "provider_timeout", - "local_cancelled", - "local_timeout", - "unexpected_exception", - ] - retry_after_seconds: float | None = None - provider_status: int | None = None - diagnostics: Mapping[str, object] = field(default_factory=dict) - - -@dataclass(frozen=True) -class ReleaseResult: - released: bool - reason: Literal["released", "duplicate", "stale_lease", "wrong_controller_generation", "unknown_lease"] - diagnostics: Mapping[str, object] = field(default_factory=dict) - - class RequestAdmissionError(RuntimeError): """Raised by blocking acquire paths when no request lease is acquired.""" @@ -163,79 +76,6 @@ def __init__(self, decision: RequestAdmissionDenied) -> None: self.decision = decision -@dataclass(frozen=True) -class RequestAdmissionConfig: - initial_limits: Mapping[RequestResourceKey, int] = field(default_factory=dict) - max_limit_clamps: Mapping[RequestResourceKey, int | None] = field(default_factory=dict) - cooldown_seconds: float = 2.0 - multiplicative_decrease_factor: float = 0.75 - additive_increase_step: int = 1 - increase_after_successes: int = 25 - default_queue_wait_timeout_seconds: float | None = None - - -@dataclass -class AdaptiveRequestLimitState: - current_limit: int - in_flight: int = 0 - blocked_until: float = 0.0 - success_streak: int = 0 - waiters: int = 0 - rate_limit_ceiling: int = 0 - consecutive_rate_limits: int = 0 - active_lease_count: int = 0 - last_outcome: str | None = None - - -@dataclass -class ProviderModelStaticCap: - cap: int - aliases: tuple[str, ...] - raw_caps: Mapping[str, int | None] - merge_rule: str = "min_same_endpoint" - - -@dataclass(frozen=True) -class RequestPressureSnapshot: - captured_at: float - sequence: int - resource: RequestResourceKey - effective_max: int - current_limit: int - in_flight_count: int - active_lease_count: int - waiters: int - blocked_until_monotonic: float | None - cooldown_remaining_seconds: float - rate_limit_ceiling: int - consecutive_rate_limits: int - last_outcome: str | None - leak_diagnostics: Mapping[str, int] - - -@dataclass(frozen=True) -class ProviderModelPressureSnapshot: - captured_at: float - sequence: int - provider_model: ProviderModelKey - static_cap: int - aggregate_in_flight: int - aggregate_active_lease_count: int - aliases: tuple[str, ...] - raw_caps: Mapping[str, int | None] - domains: Mapping[RequestDomain, int] - - -class RequestPressureSnapshotProvider(Protocol): - def snapshot(self, resource: RequestResourceKey) -> RequestPressureSnapshot | None: ... - - def snapshots(self) -> Mapping[RequestResourceKey, RequestPressureSnapshot]: ... - - def global_snapshot(self, provider: str, model: str) -> ProviderModelPressureSnapshot | None: ... - - def global_snapshots(self) -> Mapping[ProviderModelKey, ProviderModelPressureSnapshot]: ... - - class RequestAdmissionController(Protocol): def try_acquire(self, item: RequestAdmissionItem) -> RequestAdmissionDecision: ... @@ -249,174 +89,6 @@ def release(self, lease: RequestAdmissionLease, outcome: RequestReleaseOutcome) def pressure(self) -> RequestPressureSnapshotProvider: ... -@dataclass -class RequestWaiter: - waiter_id: str - item: RequestAdmissionItem - enqueued_at: float - deadline_monotonic: float | None = None - assigned_lease: RequestAdmissionLease | None = None - - -@dataclass(frozen=True) -class RequestQueueView: - queued_total: int - queued_by_group: Mapping[RequestResourceKey, int] - queued_demand_by_resource: Mapping[RequestResourceKey, int] - aggregate_provider_model_waiters: Mapping[ProviderModelKey, int] - - -@dataclass(frozen=True) -class RequestQueueSelection: - waiter: RequestWaiter - item: RequestAdmissionItem - waiter_id: str - queue_view: RequestQueueView - sequence_version: int - - -class RequestFairQueue: - """Weighted fair waiter queue used by request admission.""" - - def __init__(self) -> None: - self._queues: dict[RequestResourceKey, deque[RequestWaiter]] = {} - self._queued: dict[str, RequestWaiter] = {} - self._waiter_groups: dict[str, RequestResourceKey] = {} - self._group_finish: dict[RequestResourceKey, float] = {} - self._heap: list[tuple[float, int, RequestResourceKey]] = [] - self._active_heap_entries: dict[RequestResourceKey, tuple[float, int]] = {} - self._sequence = 0 - self._sequence_version = 0 - self._virtual_time = 0.0 - - @property - def has_waiters(self) -> bool: - return bool(self._queued) - - def contains(self, waiter_id: str) -> bool: - return waiter_id in self._queued - - def enqueue(self, waiter: RequestWaiter) -> bool: - if waiter.waiter_id in self._queued: - return False - key = waiter.item.group.key - queue = self._queues.setdefault(key, deque()) - queue.append(waiter) - self._queued[waiter.waiter_id] = waiter - self._waiter_groups[waiter.waiter_id] = key - self._activate_group(key) - self._sequence_version += 1 - return True - - def remove(self, waiter_id: str) -> RequestWaiter | None: - waiter = self._queued.pop(waiter_id, None) - if waiter is None: - return None - self._waiter_groups.pop(waiter_id, None) - self._sequence_version += 1 - return waiter - - def select_next( - self, is_eligible: Callable[[RequestWaiter, RequestQueueView], bool] - ) -> RequestQueueSelection | None: - view = self.view() - heap_copy = list(self._heap) - heapq.heapify(heap_copy) - active_seen: set[RequestResourceKey] = set() - while heap_copy: - finish, sequence, key = heapq.heappop(heap_copy) - if key in active_seen: - continue - if self._active_heap_entries.get(key) != (finish, sequence): - continue - active_seen.add(key) - waiter = self._first_valid_waiter(key) - if waiter is None: - continue - if not is_eligible(waiter, view): - continue - return RequestQueueSelection( - waiter=waiter, - item=waiter.item, - waiter_id=waiter.waiter_id, - queue_view=view, - sequence_version=self._sequence_version, - ) - return None - - def commit(self, selection: RequestQueueSelection) -> RequestWaiter | None: - if selection.sequence_version != self._sequence_version: - return None - key = self._waiter_groups.get(selection.waiter_id) - if key is None or key != selection.item.group.key: - return None - queue = self._queues.get(key) - if queue is None: - return None - self._purge_queue_head(key) - if not queue or queue[0].waiter_id != selection.waiter_id: - return None - - waiter = queue.popleft() - self._queued.pop(waiter.waiter_id, None) - self._waiter_groups.pop(waiter.waiter_id, None) - self._active_heap_entries.pop(key, None) - weight = max(selection.item.group.weight, 1.0) - finish = self._group_finish.get(key, self._virtual_time) - self._virtual_time = max(self._virtual_time, finish) - self._group_finish[key] = self._virtual_time + (1.0 / weight) - self._sequence_version += 1 - self._purge_queue_head(key) - if queue: - self._activate_group(key) - return waiter - - def view(self) -> RequestQueueView: - queued_by_group: Counter[RequestResourceKey] = Counter() - demand_by_resource: Counter[RequestResourceKey] = Counter() - aggregate_waiters: Counter[ProviderModelKey] = Counter() - for waiter in self._queued.values(): - resource = waiter.item.resource - queued_by_group[waiter.item.group.key] += 1 - demand_by_resource[resource] += 1 - aggregate_waiters[resource.provider_model_key] += 1 - return RequestQueueView( - queued_total=len(self._queued), - queued_by_group=dict(queued_by_group), - queued_demand_by_resource=dict(demand_by_resource), - aggregate_provider_model_waiters=dict(aggregate_waiters), - ) - - def _activate_group(self, key: RequestResourceKey) -> None: - self._purge_queue_head(key) - queue = self._queues.get(key) - if not queue or key in self._active_heap_entries: - return - self._sequence += 1 - finish = self._group_finish.get(key, self._virtual_time) - heapq.heappush(self._heap, (finish, self._sequence, key)) - self._active_heap_entries[key] = (finish, self._sequence) - - def _first_valid_waiter(self, key: RequestResourceKey) -> RequestWaiter | None: - queue = self._queues.get(key) - if queue is None: - return None - for waiter in queue: - if waiter.waiter_id in self._queued and self._waiter_groups.get(waiter.waiter_id) == key: - return waiter - return None - - def _purge_queue_head(self, key: RequestResourceKey) -> None: - queue = self._queues.get(key) - if queue is None: - return - while queue: - waiter = queue[0] - if waiter.waiter_id in self._queued and self._waiter_groups.get(waiter.waiter_id) == key: - break - queue.popleft() - - @dataclass class _GlobalCapState: limits_by_alias: dict[str, int] = field(default_factory=dict) diff --git a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/limits.py b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/limits.py new file mode 100644 index 000000000..ad6f779d7 --- /dev/null +++ b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/limits.py @@ -0,0 +1,19 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +from dataclasses import dataclass + + +@dataclass +class AdaptiveRequestLimitState: + current_limit: int + in_flight: int = 0 + blocked_until: float = 0.0 + success_streak: int = 0 + waiters: int = 0 + rate_limit_ceiling: int = 0 + consecutive_rate_limits: int = 0 + active_lease_count: int = 0 + last_outcome: str | None = None diff --git a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/outcomes.py b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/outcomes.py new file mode 100644 index 000000000..3399b07f4 --- /dev/null +++ b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/outcomes.py @@ -0,0 +1,31 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +from collections.abc import Mapping +from dataclasses import dataclass, field +from typing import Literal + + +@dataclass(frozen=True) +class RequestReleaseOutcome: + kind: Literal[ + "success", + "rate_limited", + "provider_failure", + "provider_timeout", + "local_cancelled", + "local_timeout", + "unexpected_exception", + ] + retry_after_seconds: float | None = None + provider_status: int | None = None + diagnostics: Mapping[str, object] = field(default_factory=dict) + + +@dataclass(frozen=True) +class ReleaseResult: + released: bool + reason: Literal["released", "duplicate", "stale_lease", "wrong_controller_generation", "unknown_lease"] + diagnostics: Mapping[str, object] = field(default_factory=dict) diff --git a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/pressure.py b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/pressure.py new file mode 100644 index 000000000..9f0386dc7 --- /dev/null +++ b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/pressure.py @@ -0,0 +1,52 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +from collections.abc import Mapping +from dataclasses import dataclass +from typing import Protocol + +from data_designer.engine.models.request_admission.resources import RequestDomain, RequestResourceKey +from data_designer.engine.models.resources import ProviderModelKey + + +@dataclass(frozen=True) +class RequestPressureSnapshot: + captured_at: float + sequence: int + resource: RequestResourceKey + effective_max: int + current_limit: int + in_flight_count: int + active_lease_count: int + waiters: int + blocked_until_monotonic: float | None + cooldown_remaining_seconds: float + rate_limit_ceiling: int + consecutive_rate_limits: int + last_outcome: str | None + leak_diagnostics: Mapping[str, int] + + +@dataclass(frozen=True) +class ProviderModelPressureSnapshot: + captured_at: float + sequence: int + provider_model: ProviderModelKey + static_cap: int + aggregate_in_flight: int + aggregate_active_lease_count: int + aliases: tuple[str, ...] + raw_caps: Mapping[str, int | None] + domains: Mapping[RequestDomain, int] + + +class RequestPressureSnapshotProvider(Protocol): + def snapshot(self, resource: RequestResourceKey) -> RequestPressureSnapshot | None: ... + + def snapshots(self) -> Mapping[RequestResourceKey, RequestPressureSnapshot]: ... + + def global_snapshot(self, provider: str, model: str) -> ProviderModelPressureSnapshot | None: ... + + def global_snapshots(self) -> Mapping[ProviderModelKey, ProviderModelPressureSnapshot]: ... diff --git a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/queue.py b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/queue.py new file mode 100644 index 000000000..626fd3426 --- /dev/null +++ b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/queue.py @@ -0,0 +1,184 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +import heapq +from collections import Counter, deque +from collections.abc import Callable, Mapping +from dataclasses import dataclass +from typing import TYPE_CHECKING + +from data_designer.engine.models.request_admission.resources import RequestAdmissionItem, RequestResourceKey +from data_designer.engine.models.resources import ProviderModelKey + +if TYPE_CHECKING: + from data_designer.engine.models.request_admission.controller import RequestAdmissionLease + + +@dataclass +class RequestWaiter: + waiter_id: str + item: RequestAdmissionItem + enqueued_at: float + deadline_monotonic: float | None = None + assigned_lease: RequestAdmissionLease | None = None + + +@dataclass(frozen=True) +class RequestQueueView: + queued_total: int + queued_by_group: Mapping[RequestResourceKey, int] + queued_demand_by_resource: Mapping[RequestResourceKey, int] + aggregate_provider_model_waiters: Mapping[ProviderModelKey, int] + + +@dataclass(frozen=True) +class RequestQueueSelection: + waiter: RequestWaiter + item: RequestAdmissionItem + waiter_id: str + queue_view: RequestQueueView + sequence_version: int + + +class RequestFairQueue: + """Weighted fair waiter queue used by request admission.""" + + def __init__(self) -> None: + self._queues: dict[RequestResourceKey, deque[RequestWaiter]] = {} + self._queued: dict[str, RequestWaiter] = {} + self._waiter_groups: dict[str, RequestResourceKey] = {} + self._group_finish: dict[RequestResourceKey, float] = {} + self._heap: list[tuple[float, int, RequestResourceKey]] = [] + self._active_heap_entries: dict[RequestResourceKey, tuple[float, int]] = {} + self._sequence = 0 + self._sequence_version = 0 + self._virtual_time = 0.0 + + @property + def has_waiters(self) -> bool: + return bool(self._queued) + + def contains(self, waiter_id: str) -> bool: + return waiter_id in self._queued + + def enqueue(self, waiter: RequestWaiter) -> bool: + if waiter.waiter_id in self._queued: + return False + key = waiter.item.group.key + queue = self._queues.setdefault(key, deque()) + queue.append(waiter) + self._queued[waiter.waiter_id] = waiter + self._waiter_groups[waiter.waiter_id] = key + self._activate_group(key) + self._sequence_version += 1 + return True + + def remove(self, waiter_id: str) -> RequestWaiter | None: + waiter = self._queued.pop(waiter_id, None) + if waiter is None: + return None + self._waiter_groups.pop(waiter_id, None) + self._sequence_version += 1 + return waiter + + def select_next( + self, is_eligible: Callable[[RequestWaiter, RequestQueueView], bool] + ) -> RequestQueueSelection | None: + view = self.view() + heap_copy = list(self._heap) + heapq.heapify(heap_copy) + active_seen: set[RequestResourceKey] = set() + while heap_copy: + finish, sequence, key = heapq.heappop(heap_copy) + if key in active_seen: + continue + if self._active_heap_entries.get(key) != (finish, sequence): + continue + active_seen.add(key) + waiter = self._first_valid_waiter(key) + if waiter is None: + continue + if not is_eligible(waiter, view): + continue + return RequestQueueSelection( + waiter=waiter, + item=waiter.item, + waiter_id=waiter.waiter_id, + queue_view=view, + sequence_version=self._sequence_version, + ) + return None + + def commit(self, selection: RequestQueueSelection) -> RequestWaiter | None: + if selection.sequence_version != self._sequence_version: + return None + key = self._waiter_groups.get(selection.waiter_id) + if key is None or key != selection.item.group.key: + return None + queue = self._queues.get(key) + if queue is None: + return None + self._purge_queue_head(key) + if not queue or queue[0].waiter_id != selection.waiter_id: + return None + + waiter = queue.popleft() + self._queued.pop(waiter.waiter_id, None) + self._waiter_groups.pop(waiter.waiter_id, None) + self._active_heap_entries.pop(key, None) + weight = max(selection.item.group.weight, 1.0) + finish = self._group_finish.get(key, self._virtual_time) + self._virtual_time = max(self._virtual_time, finish) + self._group_finish[key] = self._virtual_time + (1.0 / weight) + self._sequence_version += 1 + self._purge_queue_head(key) + if queue: + self._activate_group(key) + return waiter + + def view(self) -> RequestQueueView: + queued_by_group: Counter[RequestResourceKey] = Counter() + demand_by_resource: Counter[RequestResourceKey] = Counter() + aggregate_waiters: Counter[ProviderModelKey] = Counter() + for waiter in self._queued.values(): + resource = waiter.item.resource + queued_by_group[waiter.item.group.key] += 1 + demand_by_resource[resource] += 1 + aggregate_waiters[resource.provider_model_key] += 1 + return RequestQueueView( + queued_total=len(self._queued), + queued_by_group=dict(queued_by_group), + queued_demand_by_resource=dict(demand_by_resource), + aggregate_provider_model_waiters=dict(aggregate_waiters), + ) + + def _activate_group(self, key: RequestResourceKey) -> None: + self._purge_queue_head(key) + queue = self._queues.get(key) + if not queue or key in self._active_heap_entries: + return + self._sequence += 1 + finish = self._group_finish.get(key, self._virtual_time) + heapq.heappush(self._heap, (finish, self._sequence, key)) + self._active_heap_entries[key] = (finish, self._sequence) + + def _first_valid_waiter(self, key: RequestResourceKey) -> RequestWaiter | None: + queue = self._queues.get(key) + if queue is None: + return None + for waiter in queue: + if waiter.waiter_id in self._queued and self._waiter_groups.get(waiter.waiter_id) == key: + return waiter + return None + + def _purge_queue_head(self, key: RequestResourceKey) -> None: + queue = self._queues.get(key) + if queue is None: + return + while queue: + waiter = queue[0] + if waiter.waiter_id in self._queued and self._waiter_groups.get(waiter.waiter_id) == key: + break + queue.popleft() diff --git a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/resolver.py b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/resolver.py new file mode 100644 index 000000000..462e77427 --- /dev/null +++ b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/resolver.py @@ -0,0 +1,40 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +from dataclasses import dataclass + +from data_designer.engine.models.request_admission.resources import RequestDomain, RequestResourceKey +from data_designer.engine.models.resources import ProviderModelKey + + +@dataclass(frozen=True) +class ResolvedRequestResource: + provider_model: ProviderModelKey + resource: RequestResourceKey + aliases: tuple[str, ...] = () + generation_kind: str | None = None + + +class RequestResourceResolver: + """Canonical provider/model/domain request-resource identity factory.""" + + def resolve( + self, + *, + provider_name: str, + model_id: str, + domain: RequestDomain, + model_alias: str | None = None, + provider_alias: str | None = None, + generation_kind: str | None = None, + ) -> ResolvedRequestResource: + resource = RequestResourceKey(provider_name=provider_name, model_id=model_id, domain=domain) + aliases = tuple(alias for alias in (provider_alias, model_alias) if alias) + return ResolvedRequestResource( + provider_model=resource.provider_model_key, + resource=resource, + aliases=aliases, + generation_kind=generation_kind, + ) diff --git a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/resources.py b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/resources.py new file mode 100644 index 000000000..b7b4bd2cd --- /dev/null +++ b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/resources.py @@ -0,0 +1,48 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +from dataclasses import dataclass +from enum import Enum + +from data_designer.engine.models.resources import ProviderModelKey + + +class RequestDomain(str, Enum): + CHAT = "chat" + EMBEDDING = "embedding" + IMAGE = "image" + HEALTHCHECK = "healthcheck" + + +@dataclass(frozen=True, order=True) +class RequestResourceKey: + provider_name: str + model_id: str + domain: RequestDomain + + @property + def provider_model_key(self) -> ProviderModelKey: + return ProviderModelKey(self.provider_name, self.model_id) + + +@dataclass(frozen=True) +class RequestGroupSpec: + key: RequestResourceKey + weight: float = 1.0 + + +@dataclass(frozen=True) +class RequestEventContext: + captured_correlation: object | None = None + task_execution_id: str | None = None + request_attempt_id: str | None = None + + +@dataclass(frozen=True) +class RequestAdmissionItem: + resource: RequestResourceKey + group: RequestGroupSpec + queue_wait_timeout_seconds: float | None = None + event_context: RequestEventContext | None = None diff --git a/packages/data-designer-engine/src/data_designer/engine/models/resources.py b/packages/data-designer-engine/src/data_designer/engine/models/resources.py new file mode 100644 index 000000000..091e2936b --- /dev/null +++ b/packages/data-designer-engine/src/data_designer/engine/models/resources.py @@ -0,0 +1,21 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +from collections.abc import Mapping +from dataclasses import dataclass + + +@dataclass(frozen=True, order=True) +class ProviderModelKey: + provider_name: str + model_id: str + + +@dataclass +class ProviderModelStaticCap: + cap: int + aliases: tuple[str, ...] + raw_caps: Mapping[str, int | None] + merge_rule: str = "min_same_endpoint" diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_completion_tracker.py b/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_completion.py similarity index 98% rename from packages/data-designer-engine/tests/engine/dataset_builders/utils/test_completion_tracker.py rename to packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_completion.py index da98bd871..d03cbeabf 100644 --- a/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_completion_tracker.py +++ b/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_completion.py @@ -14,9 +14,9 @@ SamplerColumnConfig, ) from data_designer.config.sampler_params import SamplerType -from data_designer.engine.dataset_builders.utils.completion_tracker import CompletionTracker +from data_designer.engine.dataset_builders.scheduling.completion import CompletionTracker +from data_designer.engine.dataset_builders.scheduling.task_model import SliceRef, Task from data_designer.engine.dataset_builders.utils.execution_graph import ExecutionGraph -from data_designer.engine.dataset_builders.utils.task_model import SliceRef, Task MODEL_ALIAS = "stub" diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_fair_task_queue.py b/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_queue.py similarity index 95% rename from packages/data-designer-engine/tests/engine/dataset_builders/utils/test_fair_task_queue.py rename to packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_queue.py index bbc900998..e2a9179f0 100644 --- a/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_fair_task_queue.py +++ b/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_queue.py @@ -5,15 +5,15 @@ from collections import Counter -from data_designer.engine.dataset_builders.utils.fair_task_queue import FairTaskQueue, QueueView -from data_designer.engine.dataset_builders.utils.task_model import Task -from data_designer.engine.dataset_builders.utils.task_scheduling import ( +from data_designer.engine.dataset_builders.scheduling.queue import FairTaskQueue, QueueView +from data_designer.engine.dataset_builders.scheduling.resources import ( SchedulableTask, SchedulerResourceRequest, TaskGroupKey, TaskGroupSpec, stable_task_id, ) +from data_designer.engine.dataset_builders.scheduling.task_model import Task def _task(column: str, row_index: int) -> Task: diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_task_scheduling.py b/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_resolver.py similarity index 96% rename from packages/data-designer-engine/tests/engine/dataset_builders/utils/test_task_scheduling.py rename to packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_resolver.py index 81fa0e2ee..ab8ce0a2c 100644 --- a/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_task_scheduling.py +++ b/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_resolver.py @@ -10,8 +10,8 @@ from data_designer.config.column_configs import ExpressionColumnConfig from data_designer.config.scheduling import SchedulingMetadata, SchedulingMetadataError -from data_designer.engine.dataset_builders.utils.task_model import Task -from data_designer.engine.dataset_builders.utils.task_scheduling import TaskSchedulingResolver +from data_designer.engine.dataset_builders.scheduling.resolver import TaskSchedulingResolver +from data_designer.engine.dataset_builders.scheduling.task_model import Task class _LocalGenerator: diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_resources.py b/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_resources.py new file mode 100644 index 000000000..935f2c074 --- /dev/null +++ b/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_resources.py @@ -0,0 +1,62 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +import pytest + +from data_designer.engine.dataset_builders.scheduling.resources import ( + SchedulableTask, + SchedulerResourceRequest, + TaskGroupKey, + TaskGroupSpec, + stable_task_id, +) +from data_designer.engine.dataset_builders.scheduling.task_model import Task + + +def test_scheduler_resource_request_defaults_to_submission() -> None: + request = SchedulerResourceRequest() + + assert request.amounts == {"submission": 1} + + +def test_scheduler_resource_request_rejects_unknown_resource() -> None: + with pytest.raises(ValueError, match="Unknown scheduler resource key"): + SchedulerResourceRequest({"gpu": 1}) # type: ignore[arg-type] + + +def test_scheduler_resource_request_rejects_non_positive_amounts() -> None: + with pytest.raises(ValueError, match="must be a positive integer"): + SchedulerResourceRequest({"submission": 0}) + + +def test_stable_task_id_is_stable_for_task_identity() -> None: + task = Task(column="answer", row_group=3, row_index=8, task_type="cell") + + assert stable_task_id(task) == stable_task_id(task) + assert stable_task_id(task).startswith("task-") + + +def test_stable_task_id_distinguishes_task_identity_fields() -> None: + first = Task(column="answer", row_group=3, row_index=8, task_type="cell") + second = Task(column="answer", row_group=3, row_index=9, task_type="cell") + + assert stable_task_id(first) != stable_task_id(second) + + +def test_schedulable_task_binds_payload_group_and_resource_request() -> None: + task = Task(column="answer", row_group=0, row_index=1, task_type="cell") + group = TaskGroupSpec(TaskGroupKey(kind="model", identity=("nvidia", "nemotron")), admitted_limit=2) + request = SchedulerResourceRequest({"submission": 1, "llm_wait": 1}) + + item = SchedulableTask( + task_id=stable_task_id(task), + payload=task, + group=group, + resource_request=request, + ) + + assert item.payload == task + assert item.group == group + assert item.resource_request.amounts["llm_wait"] == 1 diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_task_admission.py b/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_task_admission.py similarity index 94% rename from packages/data-designer-engine/tests/engine/dataset_builders/utils/test_task_admission.py rename to packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_task_admission.py index fd7642763..b8c6acfb1 100644 --- a/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_task_admission.py +++ b/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_task_admission.py @@ -3,22 +3,22 @@ from __future__ import annotations -from data_designer.engine.dataset_builders.utils.fair_task_queue import FairTaskQueue -from data_designer.engine.dataset_builders.utils.task_admission import ( - BoundedBorrowTaskAdmissionPolicyConfig, - TaskAdmissionConfig, - TaskAdmissionController, - TaskAdmissionDenied, - TaskAdmissionLease, -) -from data_designer.engine.dataset_builders.utils.task_model import Task -from data_designer.engine.dataset_builders.utils.task_scheduling import ( +from data_designer.engine.dataset_builders.scheduling.queue import FairTaskQueue +from data_designer.engine.dataset_builders.scheduling.resources import ( SchedulableTask, SchedulerResourceRequest, TaskGroupKey, TaskGroupSpec, stable_task_id, ) +from data_designer.engine.dataset_builders.scheduling.task_admission import ( + TaskAdmissionConfig, + TaskAdmissionController, + TaskAdmissionDenied, + TaskAdmissionLease, +) +from data_designer.engine.dataset_builders.scheduling.task_model import Task +from data_designer.engine.dataset_builders.scheduling.task_policies import BoundedBorrowTaskAdmissionPolicyConfig def _item(column: str, row: int = 0, *, group: TaskGroupSpec | None = None) -> SchedulableTask: diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_task_model.py b/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_task_model.py similarity index 96% rename from packages/data-designer-engine/tests/engine/dataset_builders/utils/test_task_model.py rename to packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_task_model.py index 5d5716213..cdc5e6c6a 100644 --- a/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_task_model.py +++ b/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_task_model.py @@ -5,7 +5,7 @@ import pytest -from data_designer.engine.dataset_builders.utils.task_model import Task, TaskResult, TaskTrace +from data_designer.engine.dataset_builders.scheduling.task_model import Task, TaskResult, TaskTrace def test_task_is_frozen() -> None: diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_task_policies.py b/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_task_policies.py new file mode 100644 index 000000000..286fdee96 --- /dev/null +++ b/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_task_policies.py @@ -0,0 +1,120 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +from data_designer.engine.dataset_builders.scheduling.queue import FairTaskQueue, QueueView +from data_designer.engine.dataset_builders.scheduling.resources import ( + SchedulableTask, + SchedulerResourceRequest, + TaskGroupKey, + TaskGroupSpec, + stable_task_id, +) +from data_designer.engine.dataset_builders.scheduling.task_admission import TaskAdmissionLease, TaskAdmissionView +from data_designer.engine.dataset_builders.scheduling.task_model import Task +from data_designer.engine.dataset_builders.scheduling.task_policies import ( + BoundedBorrowTaskAdmissionPolicy, + BoundedBorrowTaskAdmissionPolicyConfig, + StrictFairTaskAdmissionPolicy, +) + + +def _item(column: str, group: TaskGroupSpec) -> SchedulableTask: + task = Task(column=column, row_group=0, row_index=0, task_type="cell") + return SchedulableTask( + task_id=stable_task_id(task), + payload=task, + group=group, + resource_request=SchedulerResourceRequest({"submission": 1}), + ) + + +def _queue_view(*items: SchedulableTask) -> QueueView: + queue = FairTaskQueue() + queue.enqueue(items) + return queue.view() + + +def _admission_view( + *, + running_group: TaskGroupKey, + running_count: int = 1, + debt: int = 0, +) -> TaskAdmissionView: + return TaskAdmissionView( + resource_limits={"submission": 4}, + resources_available={"submission": 3}, + leased_resources={"submission": running_count}, + leased_resources_by_group={running_group: {"submission": running_count}}, + running_counts_by_group={running_group: running_count}, + policy_debt_by_group_resource={(running_group, "submission"): debt} if debt else {}, + ) + + +def _lease(item: SchedulableTask) -> TaskAdmissionLease: + return TaskAdmissionLease( + lease_id="lease", + item=item, + resources={"submission": 1}, + acquired_at=0.0, + controller_generation="generation", + ) + + +def test_strict_fair_policy_allows_group_without_peer_pressure() -> None: + group = TaskGroupSpec(TaskGroupKey(kind="model", identity=("provider", "model")), admitted_limit=1) + item = _item("a", group) + policy = StrictFairTaskAdmissionPolicy() + + decision = policy.evaluate(item, _queue_view(item), _admission_view(running_group=group.key)) + + assert decision.allowed is True + + +def test_strict_fair_policy_denies_capped_group_with_peer_pressure() -> None: + group = TaskGroupSpec(TaskGroupKey(kind="model", identity=("provider", "model")), admitted_limit=1) + peer_group = TaskGroupSpec(TaskGroupKey(kind="local", identity=("peer",))) + item = _item("a", group) + peer = _item("b", peer_group) + policy = StrictFairTaskAdmissionPolicy() + + decision = policy.evaluate(item, _queue_view(item, peer), _admission_view(running_group=group.key)) + + assert decision.allowed is False + assert decision.reason == "group_cap" + + +def test_bounded_borrow_policy_records_borrow_without_peer_pressure() -> None: + group = TaskGroupSpec(TaskGroupKey(kind="model", identity=("provider", "model")), admitted_limit=1) + item = _item("a", group) + policy = BoundedBorrowTaskAdmissionPolicy(BoundedBorrowTaskAdmissionPolicyConfig(default_borrow_ceiling=1)) + + decision = policy.evaluate(item, _queue_view(item), _admission_view(running_group=group.key)) + delta = policy.on_acquire(_lease(item), decision) + + assert decision.allowed is True + assert delta.debt_changes == {(group.key, "submission"): 1} + + +def test_bounded_borrow_policy_denies_existing_debt_under_peer_pressure() -> None: + group = TaskGroupSpec(TaskGroupKey(kind="model", identity=("provider", "model")), admitted_limit=1) + peer_group = TaskGroupSpec(TaskGroupKey(kind="local", identity=("peer",))) + item = _item("a", group) + peer = _item("b", peer_group) + policy = BoundedBorrowTaskAdmissionPolicy(BoundedBorrowTaskAdmissionPolicyConfig(default_borrow_ceiling=1)) + + decision = policy.evaluate(item, _queue_view(item, peer), _admission_view(running_group=group.key, debt=1)) + + assert decision.allowed is False + assert decision.reason == "borrow_debt" + + +def test_bounded_borrow_policy_releases_debt() -> None: + group = TaskGroupSpec(TaskGroupKey(kind="model", identity=("provider", "model")), admitted_limit=1) + item = _item("a", group) + policy = BoundedBorrowTaskAdmissionPolicy(BoundedBorrowTaskAdmissionPolicyConfig(default_borrow_ceiling=1)) + + delta = policy.on_release(_lease(item)) + + assert delta.debt_changes == {(group.key, "submission"): -1} diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/test_async_builder_integration.py b/packages/data-designer-engine/tests/engine/dataset_builders/test_async_builder_integration.py index 684c009ba..8f75877f4 100644 --- a/packages/data-designer-engine/tests/engine/dataset_builders/test_async_builder_integration.py +++ b/packages/data-designer-engine/tests/engine/dataset_builders/test_async_builder_integration.py @@ -24,7 +24,7 @@ ) from data_designer.engine.dataset_builders.async_scheduler import AsyncTaskScheduler from data_designer.engine.dataset_builders.dataset_builder import DatasetBuilder -from data_designer.engine.dataset_builders.utils.completion_tracker import CompletionTracker, FrontierDelta +from data_designer.engine.dataset_builders.scheduling.completion import CompletionTracker, FrontierDelta from data_designer.engine.dataset_builders.utils.execution_graph import ExecutionGraph from data_designer.engine.dataset_builders.utils.row_group_buffer import RowGroupBufferManager from data_designer.engine.resources.resource_provider import ResourceProvider diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py b/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py index 26ab918ea..ebc1b0d4f 100644 --- a/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py +++ b/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py @@ -33,11 +33,11 @@ from data_designer.engine.column_generators.generators.custom import CustomColumnGenerator from data_designer.engine.dataset_builders.async_scheduler import AsyncTaskScheduler from data_designer.engine.dataset_builders.errors import DatasetGenerationError -from data_designer.engine.dataset_builders.utils.completion_tracker import CompletionTracker, FrontierDelta +from data_designer.engine.dataset_builders.scheduling.completion import CompletionTracker, FrontierDelta +from data_designer.engine.dataset_builders.scheduling.task_admission import TaskAdmissionConfig, TaskAdmissionLease +from data_designer.engine.dataset_builders.scheduling.task_model import Task from data_designer.engine.dataset_builders.utils.execution_graph import ExecutionGraph from data_designer.engine.dataset_builders.utils.row_group_buffer import RowGroupBufferManager -from data_designer.engine.dataset_builders.utils.task_admission import TaskAdmissionConfig, TaskAdmissionLease -from data_designer.engine.dataset_builders.utils.task_model import Task from data_designer.engine.models.errors import ( RETRYABLE_MODEL_ERRORS, ModelInternalServerError, diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_execution_graph.py b/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_execution_graph.py index dfd219fd5..6a5b31a51 100644 --- a/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_execution_graph.py +++ b/packages/data-designer-engine/tests/engine/dataset_builders/utils/test_execution_graph.py @@ -20,9 +20,9 @@ from data_designer.config.utils.code_lang import CodeLang from data_designer.config.validator_params import CodeValidatorParams from data_designer.engine.dataset_builders.multi_column_configs import SamplerMultiColumnConfig +from data_designer.engine.dataset_builders.scheduling.task_model import SliceRef from data_designer.engine.dataset_builders.utils.errors import ConfigCompilationError, DAGCircularDependencyError from data_designer.engine.dataset_builders.utils.execution_graph import ExecutionGraph -from data_designer.engine.dataset_builders.utils.task_model import SliceRef MODEL_ALIAS = "stub-model-alias" diff --git a/packages/data-designer-engine/tests/engine/models/clients/test_factory.py b/packages/data-designer-engine/tests/engine/models/clients/test_factory.py index d365f9683..df86e12d8 100644 --- a/packages/data-designer-engine/tests/engine/models/clients/test_factory.py +++ b/packages/data-designer-engine/tests/engine/models/clients/test_factory.py @@ -19,8 +19,8 @@ from data_designer.engine.models.clients.adapters.openai_compatible import OpenAICompatibleClient from data_designer.engine.models.clients.factory import create_model_client from data_designer.engine.models.clients.model_request_executor import ModelRequestExecutor -from data_designer.engine.models.clients.request_admission import AdaptiveRequestAdmissionController from data_designer.engine.models.clients.retry import RetryConfig +from data_designer.engine.models.request_admission.controller import AdaptiveRequestAdmissionController from data_designer.engine.secret_resolver import SecretResolver diff --git a/packages/data-designer-engine/tests/engine/models/clients/test_model_request_executor.py b/packages/data-designer-engine/tests/engine/models/clients/test_model_request_executor.py index 6c1cbea4a..67325b7b0 100644 --- a/packages/data-designer-engine/tests/engine/models/clients/test_model_request_executor.py +++ b/packages/data-designer-engine/tests/engine/models/clients/test_model_request_executor.py @@ -9,7 +9,6 @@ from data_designer.engine.models.clients.errors import ProviderError, ProviderErrorKind from data_designer.engine.models.clients.model_request_executor import ModelRequestExecutor -from data_designer.engine.models.clients.request_admission import AdaptiveRequestAdmissionController, RequestDomain from data_designer.engine.models.clients.types import ( AssistantMessage, ChatCompletionRequest, @@ -20,6 +19,8 @@ ImageGenerationResponse, ImagePayload, ) +from data_designer.engine.models.request_admission.controller import AdaptiveRequestAdmissionController +from data_designer.engine.models.request_admission.resources import RequestDomain from data_designer.engine.observability import InMemoryAdmissionEventSink diff --git a/packages/data-designer-engine/tests/engine/models/clients/test_request_admission.py b/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py similarity index 95% rename from packages/data-designer-engine/tests/engine/models/clients/test_request_admission.py rename to packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py index c7d01cec9..9a743f457 100644 --- a/packages/data-designer-engine/tests/engine/models/clients/test_request_admission.py +++ b/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py @@ -7,16 +7,18 @@ import pytest -from data_designer.engine.models.clients.request_admission import ( +from data_designer.engine.models.request_admission.config import RequestAdmissionConfig +from data_designer.engine.models.request_admission.controller import ( AdaptiveRequestAdmissionController, - RequestAdmissionConfig, RequestAdmissionDenied, RequestAdmissionError, - RequestAdmissionItem, RequestAdmissionLease, +) +from data_designer.engine.models.request_admission.outcomes import RequestReleaseOutcome +from data_designer.engine.models.request_admission.resources import ( + RequestAdmissionItem, RequestDomain, RequestGroupSpec, - RequestReleaseOutcome, RequestResourceKey, ) diff --git a/packages/data-designer-engine/tests/engine/test_capacity.py b/packages/data-designer-engine/tests/engine/test_capacity.py index fe9c71a16..6fd4daa33 100644 --- a/packages/data-designer-engine/tests/engine/test_capacity.py +++ b/packages/data-designer-engine/tests/engine/test_capacity.py @@ -12,13 +12,9 @@ RequestAdmissionConfigSnapshot, RowGroupAdmission, ) -from data_designer.engine.models.clients.request_admission import ( - ProviderModelKey, - ProviderModelStaticCap, - RequestAdmissionConfig, - RequestDomain, - RequestResourceKey, -) +from data_designer.engine.models.request_admission.config import RequestAdmissionConfig +from data_designer.engine.models.request_admission.resources import RequestDomain, RequestResourceKey +from data_designer.engine.models.resources import ProviderModelKey, ProviderModelStaticCap def test_request_admission_config_snapshot_records_resources() -> None: diff --git a/packages/data-designer-engine/tests/engine/test_observability.py b/packages/data-designer-engine/tests/engine/test_observability.py new file mode 100644 index 000000000..55a2896b1 --- /dev/null +++ b/packages/data-designer-engine/tests/engine/test_observability.py @@ -0,0 +1,96 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +from data_designer.engine.observability import ( + CorrelatedRuntimeView, + InMemoryAdmissionEventSink, + RequestAdmissionEvent, + RuntimeCorrelation, + RuntimeCorrelationProvider, + SchedulerAdmissionEvent, +) + + +def _correlation() -> RuntimeCorrelation: + return RuntimeCorrelation( + run_id="run", + row_group=1, + task_column="answer", + task_type="cell", + scheduling_group_kind="model", + scheduling_group_identity_hash="hash", + task_execution_id="task-exec", + ) + + +def test_runtime_correlation_provider_sets_and_resets_context() -> None: + provider = RuntimeCorrelationProvider() + correlation = _correlation() + + token = provider.set(correlation) + assert provider.current() == correlation + + provider.reset(token) + assert provider.current() is None + + +def test_admission_events_capture_correlation_and_diagnostics() -> None: + correlation = _correlation() + + scheduler_event = SchedulerAdmissionEvent.capture( + "task_lease_acquired", + sequence=1, + correlation=correlation, + task_id="task-1", + task_lease_id="lease-1", + diagnostics={"resource": "submission"}, + ) + request_event = RequestAdmissionEvent.capture( + "request_lease_acquired", + sequence=2, + correlation=correlation, + request_attempt_id="request-1", + request_lease_id="lease-2", + diagnostics={"resource": "chat"}, + ) + + assert scheduler_event.captured_correlation == correlation + assert scheduler_event.task_id == "task-1" + assert scheduler_event.diagnostics == {"resource": "submission"} + assert request_event.captured_correlation == correlation + assert request_event.request_attempt_id == "request-1" + assert request_event.diagnostics == {"resource": "chat"} + + +def test_in_memory_admission_event_sink_collects_scheduler_and_request_events() -> None: + sink = InMemoryAdmissionEventSink() + scheduler_event = SchedulerAdmissionEvent.capture("selected", sequence=1) + request_event = RequestAdmissionEvent.capture("request_wait_started", sequence=2) + + sink.emit_scheduler_event(scheduler_event) + sink.emit_request_event(request_event) + + assert sink.scheduler_events == [scheduler_event] + assert sink.request_events == [request_event] + + +def test_correlated_runtime_view_timeline_sorts_events() -> None: + scheduler_event = SchedulerAdmissionEvent(event_kind="selected", captured_at_monotonic=2.0, sequence=1) + first_request_event = RequestAdmissionEvent( + event_kind="request_wait_started", + captured_at_monotonic=1.0, + sequence=3, + ) + second_request_event = RequestAdmissionEvent( + event_kind="request_lease_acquired", + captured_at_monotonic=2.0, + sequence=0, + ) + view = CorrelatedRuntimeView( + scheduler_events=(scheduler_event,), + request_events=(first_request_event, second_request_event), + ) + + assert view.timeline == (first_request_event, second_request_event, scheduler_event) diff --git a/packages/data-designer/src/data_designer/interface/results.py b/packages/data-designer/src/data_designer/interface/results.py index 29f222279..c90070c58 100644 --- a/packages/data-designer/src/data_designer/interface/results.py +++ b/packages/data-designer/src/data_designer/interface/results.py @@ -19,7 +19,7 @@ if TYPE_CHECKING: import pandas as pd - from data_designer.engine.dataset_builders.utils.task_model import TaskTrace + from data_designer.engine.dataset_builders.scheduling.task_model import TaskTrace ExportFormat = Literal["jsonl", "csv", "parquet"] SUPPORTED_EXPORT_FORMATS: tuple[str, ...] = get_args(ExportFormat) diff --git a/plans/645/README.md b/plans/645/README.md index 56d55fd7d..0d95081fb 100644 --- a/plans/645/README.md +++ b/plans/645/README.md @@ -10,6 +10,7 @@ This directory is the maintainer source of truth while the epic is active. Issue - [Architecture](architecture.md): target system shape, ownership boundaries, invariants, and non-goals. - [Contracts](contracts.md): durable DTO, protocol, event, and config names. +- [Module ownership](module-ownership.md): final repository/module homes, import rules, audience boundaries, tests, and benchmark ownership. - [Capacity model](capacity-model.md): layered capacity vocabulary and ownership. - [Task admission](task-admission.md): scheduler-owned ready selection, task leases, policy hooks, bounded borrowing, and resource-vector direction. - [Request admission](request-admission.md): model-call admission, AIMD controller shape, dynamic request semantics, and replacement of pre-epic request-control names. @@ -22,7 +23,7 @@ This directory is the maintainer source of truth while the epic is active. Issue Recommended reading paths: -- Implementers: [Architecture](architecture.md), [Contracts](contracts.md), then the topic file for the issue being implemented. +- Implementers: [Architecture](architecture.md), [Contracts](contracts.md), [Module ownership](module-ownership.md), then the topic file for the issue being implemented. - Plugin documentation authors: [Contracts](contracts.md#metadata-contracts), [Architecture](architecture.md#audience-and-api-boundaries), and [Migration and cleanup](migration-and-cleanup.md#documentation-cleanup). - Operators and performance reviewers: [Capacity model](capacity-model.md), [Observability](observability.md), and [Benchmark plan](benchmark-plan.md). - Issue owners: [Issue map](issue-map.md), then the linked source sections for the issue. @@ -76,7 +77,7 @@ AsyncTaskScheduler -> CompletionTracker.ready_frontier() -> FairTaskQueue.enqueue(...) -> FairTaskQueue.select_next(scheduler-owned eligibility callback) - -> TaskAdmissionController.try_acquire(...) + -> TaskAdmissionController.try_acquire(selection.item, selection.queue_view) -> FairTaskQueue.commit(...) -> execute admitted task/generator code diff --git a/plans/645/architecture.md b/plans/645/architecture.md index 6ebfdf362..da2838002 100644 --- a/plans/645/architecture.md +++ b/plans/645/architecture.md @@ -28,7 +28,7 @@ AsyncTaskScheduler -> CompletionTracker.ready_frontier() -> FairTaskQueue.enqueue(...) -> FairTaskQueue.select_next(scheduler-owned eligibility callback) - -> TaskAdmissionController.try_acquire(selection.item, queue_view) + -> TaskAdmissionController.try_acquire(selection.item, selection.queue_view) -> FairTaskQueue.commit(selection) -> execute admitted task/generator code @@ -68,6 +68,8 @@ This is not a passive pipeline where `CompletionTracker`, `FairTaskQueue`, or `T The plan uses several contract categories. Keeping them separate prevents internal scheduling mechanics from becoming accidental plugin API. +Durable engine vocabulary is maintainer-facing unless this plan explicitly marks it plugin-facing or operator-facing. See [Module ownership](module-ownership.md) for final module homes, import rules, and test/benchmark ownership. + | Audience | Durable surface | Must not expose | | --- | --- | --- | | Plugin authors | `ColumnGenerator.get_scheduling_metadata()` and `SchedulingMetadata` | queue state, task leases, request domains, AIMD state, runtime pressure | @@ -85,6 +87,24 @@ Package ownership follows Data Designer's structural layering: When a contract is shared across packages, the lower package owns the data definition and the higher package owns presentation or orchestration. Engine code may import config contracts; config code must not import engine runtime protocols. +Target repository ownership is part of the architecture, not an implementation detail. The epic does not include compatibility aliases, shim modules, transitional reexports, or duplicate old/new paths for scheduler or request-admission names. + +## Module Ownership + +The final target module layout is defined in [Module ownership](module-ownership.md). In summary: + +- generator-facing metadata lives in `data_designer.config.scheduling` +- scheduler task models, readiness, queues, task admission, and task policies live under `data_designer.engine.dataset_builders.scheduling` +- `AsyncTaskScheduler` remains in `data_designer.engine.dataset_builders.async_scheduler` as the runtime coordinator only +- shared provider/model identity lives in `data_designer.engine.models.resources` +- concrete request admission lives under `data_designer.engine.models.request_admission` +- `ModelRequestExecutor` stays under `data_designer.engine.models.clients` because it wraps model clients at the acquire/call/release boundary +- capacity diagnostics live in `data_designer.engine.capacity` +- runtime admission events and correlation live in `data_designer.engine.observability` +- product/provider usage telemetry remains separate in `data_designer.engine.models.telemetry` + +Implementation PRs should use these final homes directly and must not leave production compatibility names, compatibility modules, old-path reexports, or durable tests for replaced names. + ## Two-Stage Admission Task admission controls when ready dataset work may become a running worker. Request admission controls concrete provider/model/domain calls at the moment they are made. diff --git a/plans/645/contracts.md b/plans/645/contracts.md index 92873eee4..eb3510646 100644 --- a/plans/645/contracts.md +++ b/plans/645/contracts.md @@ -1,6 +1,8 @@ # Contracts -This file records the durable names and semantics used by the async scheduling architecture. The exact implementation can evolve, but these names are the normative spec vocabulary for the epic. Topic files may explain behavior, but should not redefine fields or return shapes in ways that conflict with this file. +This file records the durable names and semantics used by the async scheduling architecture. Implementation details inside the owning target modules can evolve, but these names are the normative spec vocabulary for the epic. Topic files may explain behavior, but should not redefine fields or return shapes in ways that conflict with this file. + +Durable names in this file are not public API by default. Publicness and final module homes are defined in [Module ownership](module-ownership.md). ## Package Ownership @@ -12,6 +14,8 @@ This file records the durable names and semantics used by the async scheduling a Config-layer contracts must not import engine runtime protocols. Engine contracts may consume config-layer DTOs. +The final repository layout is specified in [Module ownership](module-ownership.md). Runtime contracts must live in their owning target modules; do not preserve old module paths through aliases, shim files, or broad package reexports. + ## Config Surface Status | Contract | V1 status | Owner | diff --git a/plans/645/issue-map.md b/plans/645/issue-map.md index 4e0415948..f114fac19 100644 --- a/plans/645/issue-map.md +++ b/plans/645/issue-map.md @@ -19,18 +19,18 @@ Use GitHub issues for: | Issue | Implementation Focus | Source Sections | | --- | --- | --- | -| #641 | Add `SchedulingMetadata` and generator override contract | [architecture.md](architecture.md), [contracts.md](contracts.md), [task-admission.md](task-admission.md) | -| #646 | Ingest metadata into scheduler grouping through `TaskSchedulingResolver` | [architecture.md](architecture.md), [contracts.md](contracts.md), [task-admission.md](task-admission.md) | -| #653 | Remove legacy hint resolver path | [migration-and-cleanup.md](migration-and-cleanup.md), [contracts.md](contracts.md) | +| #641 | Add `SchedulingMetadata` and generator override contract | [architecture.md](architecture.md), [contracts.md](contracts.md), [module-ownership.md](module-ownership.md), [task-admission.md](task-admission.md) | +| #646 | Ingest metadata into scheduler grouping through `TaskSchedulingResolver` | [architecture.md](architecture.md), [contracts.md](contracts.md), [module-ownership.md](module-ownership.md), [task-admission.md](task-admission.md) | +| #653 | Remove legacy hint resolver path | [migration-and-cleanup.md](migration-and-cleanup.md), [module-ownership.md](module-ownership.md), [contracts.md](contracts.md) | | #652 | Document plugin-facing metadata behavior | [architecture.md](architecture.md), [contracts.md](contracts.md), [migration-and-cleanup.md](migration-and-cleanup.md) | -| #644 | Implement task admission lease boundary | [task-admission.md](task-admission.md), [contracts.md](contracts.md), [benchmark-plan.md](benchmark-plan.md) | +| #644 | Implement task admission lease boundary | [task-admission.md](task-admission.md), [contracts.md](contracts.md), [module-ownership.md](module-ownership.md), [benchmark-plan.md](benchmark-plan.md) | | #654 | Implement and document capacity vocabulary and snapshots | [capacity-model.md](capacity-model.md), [observability.md](observability.md), [benchmark-plan.md](benchmark-plan.md) | -| #657 | Refactor model-call request control into request admission | [request-admission.md](request-admission.md), [contracts.md](contracts.md), [migration-and-cleanup.md](migration-and-cleanup.md), [benchmark-plan.md](benchmark-plan.md) | +| #657 | Refactor model-call request control into request admission | [request-admission.md](request-admission.md), [contracts.md](contracts.md), [module-ownership.md](module-ownership.md), [migration-and-cleanup.md](migration-and-cleanup.md), [benchmark-plan.md](benchmark-plan.md) | | #635 | Instrument request admission state | [observability.md](observability.md), [request-admission.md](request-admission.md), [contracts.md](contracts.md), [benchmark-plan.md](benchmark-plan.md) | | #647 | Instrument scheduler admission state | [observability.md](observability.md), [task-admission.md](task-admission.md), [contracts.md](contracts.md), [benchmark-plan.md](benchmark-plan.md) | | #648 | Correlate scheduler and request observability | [observability.md](observability.md), [architecture.md](architecture.md), [benchmark-plan.md](benchmark-plan.md) | | #649 | Build reusable benchmark harness and normalize provisional evidence | [benchmark-plan.md](benchmark-plan.md), [capacity-model.md](capacity-model.md), [observability.md](observability.md), [task-admission.md](task-admission.md), [request-admission.md](request-admission.md) | -| #660 | Produce final user/operator docs | [architecture.md](architecture.md), [contracts.md](contracts.md), [request-admission.md](request-admission.md), [capacity-model.md](capacity-model.md), [observability.md](observability.md), [benchmark-plan.md](benchmark-plan.md), [migration-and-cleanup.md](migration-and-cleanup.md) | +| #660 | Produce final user/operator docs | [architecture.md](architecture.md), [contracts.md](contracts.md), [module-ownership.md](module-ownership.md), [request-admission.md](request-admission.md), [capacity-model.md](capacity-model.md), [observability.md](observability.md), [benchmark-plan.md](benchmark-plan.md), [migration-and-cleanup.md](migration-and-cleanup.md) | | #650 | Implement bounded-borrow task policy | [task-admission.md](task-admission.md), [benchmark-plan.md](benchmark-plan.md), [capacity-model.md](capacity-model.md) | | #651 | Design resource-vector/provider-aware policy | [task-admission.md](task-admission.md), [request-admission.md](request-admission.md), [capacity-model.md](capacity-model.md), [observability.md](observability.md), [benchmark-plan.md](benchmark-plan.md) | @@ -43,7 +43,7 @@ The implementation order remains: -> #635 -> #647 -> #648 -> #649 -> #660 -> #650 -> #651 ``` -#644 may be prototyped before the metadata chain fully lands only if it remains behind an interim adapter and cannot close until #646/#652 preserve the accepted contract. The accepted end state is `SchedulingMetadata` feeding task admission through `TaskSchedulingResolver`. +#644 cannot close until task admission uses the final scheduler module homes and the accepted metadata contract. The accepted end state is `SchedulingMetadata` feeding task admission through `TaskSchedulingResolver`; old resolver paths, compatibility adapters, and duplicate module homes are not part of the target architecture. #660 promotes the stabilized V1 admission/capacity/telemetry docs. #650 and #651 are follow-on policy/design issues; if they change behavior or public/operator guidance, they must update this source-of-truth plan and any promoted docs as part of their own acceptance gates. #651 is design-first unless its issue body explicitly promotes an implementation slice. diff --git a/plans/645/migration-and-cleanup.md b/plans/645/migration-and-cleanup.md index 666dcd613..046ad5349 100644 --- a/plans/645/migration-and-cleanup.md +++ b/plans/645/migration-and-cleanup.md @@ -1,19 +1,23 @@ # Migration And Cleanup -The epic is not complete until replaced names and compatibility paths are removed from production code, current docs, and this source-of-truth plan. +The epic is not complete until replaced names, old module paths, and compatibility paths are removed from production code, current docs, and this source-of-truth plan. The target architecture is defined by [Module ownership](module-ownership.md); implementation PRs should move directly to those final homes. ## Scheduling Metadata Cleanup -Remove or collapse the legacy scheduling resolver path after `SchedulingMetadata` and `TaskSchedulingResolver` are stable. +The durable scheduling metadata path is: -Accepted end states: +```text +ColumnGenerator.get_scheduling_metadata() +-> SchedulingMetadata +-> TaskSchedulingResolver +``` -- delete the legacy resolver types, or -- refactor/rename it into a metadata-oriented adapter where all model/provider inference lives behind `ColumnGenerator.get_scheduling_metadata()` and typed `SchedulingMetadataError` fallback behavior. +Remove the legacy resolver types and any independent scheduler-side model/provider introspection path. All model/provider inference must live behind `ColumnGenerator.get_scheduling_metadata()`, `SchedulingMetadata`, and typed `SchedulingMetadataError` fallback behavior. -Unacceptable end state: +Unacceptable end states: -- a parallel fallback that independently introspects generators, configs, model registries, aliases, or admitted policy data under the old resolver contract. +- a parallel fallback that independently introspects generators, configs, model registries, aliases, or admitted policy data under the old resolver contract +- a compatibility adapter, alias, or reexport that preserves the old resolver vocabulary as a durable production path Final legacy-name search gate should have no production/current-doc matches for these historical strings: @@ -61,11 +65,31 @@ max_llm_wait_tasks If a scheduler-level resource remains for LLM-bound work, it must be represented through `SchedulerResourceRequest`, `TaskAdmissionConfig`, and `AsyncCapacityPlan`, with names that describe scheduler task-stage pressure rather than request concurrency. +## Module Ownership Cleanup + +The target scheduler package is: + +```text +data_designer.engine.dataset_builders.scheduling +``` + +The durable architecture does not keep scheduler-owned task models, readiness tracking, queues, task admission, or task policies in `dataset_builders.utils`. + +The target request-admission package is: + +```text +data_designer.engine.models.request_admission +``` + +The durable architecture does not keep request-admission controllers, queues, waiters, AIMD state, pressure snapshots, or request leases in `models.clients.request_admission`. + +`ModelRequestExecutor` remains under `models.clients` because it wraps concrete model clients. Request admission itself must not be reexported from `models.clients.__init__`. + ## Compatibility Shim Rule Do not leave production compatibility aliases, subclasses, adapters, reexports, docs paths, or durable tests for replaced names at epic completion. -Temporary names may exist inside a PR only if the same PR removes them before merge. +Do not introduce shim modules or deprecation adapters under replaced names. Historical names may appear only in explicit cleanup/search-gate sections like this one or in clearly marked historical changelog/dev-note text. ## Gate Semantics @@ -75,7 +99,7 @@ By #653 close, legacy scheduling-hint production paths are gone and tests have m By #657 close, request-admission code has no production `Throttle*` aliases, exports, modules, or durable tests. -By #645 close, public/current docs and `plans/645` use only the durable architecture vocabulary except for this cleanup file's explicit legacy-name search lists. Historical changelog or dev-note text can remain only when explicitly marked historical. +By #645 close, production code lives in the target modules from [Module ownership](module-ownership.md), package `__init__.py` files do not reexport internal queues/controllers/leases, and public/current docs plus `plans/645` use only the durable architecture vocabulary except for this cleanup file's explicit legacy-name search lists. Historical changelog or dev-note text can remain only when explicitly marked historical. ## Documentation Cleanup @@ -108,6 +132,8 @@ rg "ThrottleManager|ThrottleDomain|ThrottleConfig|RunConfig\\.throttle|throttle_ rg "_submission_semaphore|_llm_wait_semaphore|get_semaphore_permits|TrackingSemaphore" packages docs fern architecture plans/645 rg "throttl(e|ed|ing)|semaphore" docs fern architecture plans/645 rg "needs_llm_wait|held_llm_wait|max_llm_wait_tasks" packages docs fern architecture plans/645 +rg "dataset_builders\\.utils\\.(task_model|completion_tracker|task_scheduling|fair_task_queue|task_admission)" packages docs fern architecture plans/645 +rg "models\\.clients\\.request_admission|from data_designer\\.engine\\.models\\.clients import .*Request" packages docs fern architecture plans/645 rg "SchedulingMetadata|TaskSchedulingResolver|FairTaskQueue|TaskAdmissionController|TaskAdmissionLease|ModelRequestExecutor|RequestAdmissionController|AdaptiveRequestAdmissionController|AsyncCapacityPlan|SchedulerResourceRequest|RequestResourceKey" docs fern architecture plans/645 ``` diff --git a/plans/645/module-ownership.md b/plans/645/module-ownership.md new file mode 100644 index 000000000..affa88d0a --- /dev/null +++ b/plans/645/module-ownership.md @@ -0,0 +1,216 @@ +# Module Ownership + +This page defines the target repository and module ownership for the async scheduling epic. It is an end-state design, not a migration plan. Implementation PRs should move directly toward these homes and must not introduce compatibility aliases, shim modules, transitional reexports, or duplicate old/new module paths. + +Durable engine names in this plan are maintainer contracts. They are not public import promises unless this page explicitly marks them plugin-facing or operator-facing. + +## Package Ownership + +| Package | Owns | Must not own | +| --- | --- | --- | +| `data-designer-config` | public configuration DTOs and generator-facing metadata | engine runtime protocols, queues, admission leases, request domains, AIMD state, runtime pressure | +| `data-designer-engine` | scheduler runtime, task admission, request admission, capacity diagnostics, runtime observability, benchmark internals | public interface orchestration, user-facing docs presentation | +| `data-designer` | public `DataDesigner` interface wiring, CLI presentation, integrations | scheduler internals, plugin-facing scheduling metadata definitions | + +Config code must not import engine runtime code. Engine code may import config DTOs. + +## Target Module Layout + +```text +packages/data-designer-config/src/data_designer/config/ + scheduling.py + SchedulingMetadata + SchedulingMetadataError + +packages/data-designer-engine/src/data_designer/engine/ + dataset_builders/ + async_scheduler.py + AsyncTaskScheduler + + scheduling/ + task_model.py + Task + SliceRef + TaskTrace + + completion.py + CompletionTracker + FrontierDelta + + resources.py + TaskGroupKey + TaskGroupSpec + SchedulerResourceKey + SchedulerResourceRequest + SchedulableTask + stable_task_id + + resolver.py + TaskSchedulingResolver + ResolvedTaskScheduling + + queue.py + FairTaskQueue + QueueView + QueueSelection + + task_admission.py + TaskAdmissionController + TaskAdmissionConfig + TaskAdmissionLease + TaskAdmissionDenied + TaskAdmissionDecision + TaskAdmissionView + TaskAdmissionBlockSummary + ReleaseResult + + task_policies.py + TaskAdmissionPolicy + TaskAdmissionPolicyDecision + PolicyStateDelta + StrictFairTaskAdmissionPolicy + BoundedBorrowTaskAdmissionPolicy + BoundedBorrowTaskAdmissionPolicyConfig + + models/ + resources.py + ProviderModelKey + ProviderModelStaticCap + provider/model alias canonicalization helpers + + clients/ + model_request_executor.py + ModelRequestExecutor + + request_admission/ + resources.py + RequestDomain + RequestResourceKey + RequestGroupSpec + RequestEventContext + RequestAdmissionItem + + resolver.py + RequestResourceResolver + ResolvedRequestResource + + config.py + RequestAdmissionConfig + + queue.py + RequestFairQueue + RequestWaiter + RequestQueueView + RequestQueueSelection + + limits.py + AdaptiveRequestLimitState + provider/model aggregate limit state + + pressure.py + RequestPressureSnapshotProvider + RequestPressureSnapshot + ProviderModelPressureSnapshot + + outcomes.py + RequestReleaseOutcome + ReleaseResult + + controller.py + RequestAdmissionController + AdaptiveRequestAdmissionController + RequestAdmissionLease + RequestAdmissionDenied + RequestAdmissionDecision + RequestAdmissionError + + capacity.py + CapacityValue + AsyncCapacityPlan + AsyncCapacityConfigured + AsyncCapacityRuntimeSnapshot + AsyncCapacityObservedMaxima + RequestAdmissionConfigSnapshot + + observability.py + RuntimeCorrelation + RuntimeCorrelationProvider + runtime_correlation_provider + SchedulerAdmissionEvent + SchedulerAdmissionEventSink + RequestAdmissionEvent + RequestAdmissionEventSink + InMemoryAdmissionEventSink + CorrelatedRuntimeView + + models/telemetry.py + product/provider usage telemetry only +``` + +`AsyncTaskScheduler` is the runtime coordinator only. It owns ready-frontier polling, queue selection, task-lease acquire/release orchestration, worker lifecycle, salvage/retry coordination, shutdown, and row-group lifecycle integration. It does not own queue policy, task admission ledgers, request admission, provider cooldown, AIMD behavior, or model-client wrapping. + +`ModelRequestExecutor` remains under `models/clients` because it implements the model-client boundary and wraps concrete provider clients. Request admission itself lives under `models/request_admission` and must not import `ModelClient` or provider adapter classes. + +`models/resources.py` owns provider/model identity that is shared across metadata resolution, request admission, and capacity diagnostics. Request admission owns request-domain resources. Capacity consumes both as read-only diagnostic inputs; it does not own admission policy or controller state transitions. + +`observability.py` is the cross-layer runtime-observability home. It owns scheduler and request admission event DTOs, primitive runtime correlation, in-memory test/diagnostic sinks, and correlated runtime views. Product/provider usage telemetry remains separate in `models/telemetry.py`. + +## Current Module Targets + +| Current or legacy module/concept | Target direction | +| --- | --- | +| `dataset_builders/async_scheduler.py` | keep as coordinator; remove durable queue, task-policy, and request-admission ownership | +| `dataset_builders/utils/task_model.py` | move scheduler task DTOs to `dataset_builders/scheduling/task_model.py` | +| `dataset_builders/utils/completion_tracker.py` | move readiness tracking to `dataset_builders/scheduling/completion.py` | +| `dataset_builders/utils/task_scheduling.py` | split scheduler resources into `scheduling/resources.py` and metadata resolution into `scheduling/resolver.py` | +| `dataset_builders/utils/fair_task_queue.py` | move to `dataset_builders/scheduling/queue.py`; keep ready ordering only | +| `dataset_builders/utils/task_admission.py` | split controller/lease DTOs into `scheduling/task_admission.py` and policies into `scheduling/task_policies.py` | +| `models/clients/model_request_executor.py` | keep as the concrete model-client acquire/call/release wrapper | +| `models/clients/request_admission.py` | split into the `models/request_admission/` package | +| `models/clients/__init__.py` request-admission reexports | remove; request-admission internals are imported from their owning modules only | +| `models/telemetry.py` | keep product/provider usage telemetry separate from admission event DTOs | +| `capacity.py` | keep as cross-cutting capacity diagnostic/reporting code that consumes read-only scheduler/request DTOs and snapshots | +| `SchedulingHintResolver`, `SchedulingHint`, and scheduler-side model-bound fallbacks | remove; `SchedulingMetadata` plus `TaskSchedulingResolver` are the only durable path | +| `ThrottleManager`, `ThrottleDomain`, `ThrottleConfig`, `ThrottledModelClient`, and `throttled_model_client` | remove; request admission and `ModelRequestExecutor` are the only durable request-control path | + +## Import Rules + +- `data_designer.config.*` must not import `data_designer.engine.*` or `data_designer.interface.*`. +- Engine modules may import `SchedulingMetadata` and `SchedulingMetadataError` from config. +- `dataset_builders/scheduling/*` may import config scheduling metadata, dataset-builder task/readiness concepts, primitive runtime observability, and neutral provider/model identity helpers from `engine.models.resources`. +- `dataset_builders/scheduling/*` must not import model clients, request-admission controllers, request queues, AIMD state, provider adapters, or request leases. +- `models/request_admission/*` may import neutral provider/model identity helpers and primitive observability, but must not import dataset-builder scheduler types or `ModelClient`. +- `models/clients/model_request_executor.py` is the production bridge that imports both model-client types and request-admission protocols. It is the only model-client layer that acquires and releases request leases. +- `capacity.py` may import read-only resource DTOs, config snapshots, pressure snapshots, and event snapshots. It must not call controller mutation APIs or become a controller registry. +- `observability.py` must not import concrete controllers, queues, model clients, provider adapters, or dataset-builder schedulers. +- `data-designer` interface and CLI code may consume engine diagnostics for presentation, but must not reexport scheduler/request internals as plugin API. +- Package `__init__.py` files must not reexport internal queues, policies, leases, waiters, or controllers as broad public-looking APIs. + +## Audience Boundaries + +| Audience | Exposed surface | Not exposed | +| --- | --- | --- | +| Plugin authors | `ColumnGenerator.get_scheduling_metadata()`, `SchedulingMetadata`, `SchedulingMetadataError` | queues, task groups, scheduler resources, task leases, request domains, pressure snapshots, AIMD state | +| Users/operators | documented public run/model config fields, `AsyncCapacityPlan`, benchmark artifacts, telemetry/event artifacts, correlated runtime views | controller mutation APIs, queues, policies, leases, waiters, internal config objects | +| Engine maintainers | scheduler/request admission modules, DTOs, protocols, policies, snapshots, events, capacity diagnostics | config-layer reverse imports, compatibility aliases, duplicate old/new module paths | +| Tests and benchmarks | local fakes, deterministic model clients, event sinks, benchmark override config | production `engine.testing` helpers, test-module imports from benchmark code, benchmark-module imports from unit tests | + +`TaskAdmissionConfig` and `RequestAdmissionConfig` are engine-internal in V1. They may appear inside capacity and benchmark artifacts as explanatory snapshots, but they are not public `RunConfig` knobs unless a later design explicitly promotes them. + +## Tests And Benchmarks + +Tests mirror target module ownership: + +| Area | Target test home | +| --- | --- | +| config metadata | `packages/data-designer-config/tests/config/test_scheduling.py` | +| scheduler task resources/resolver | `packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_resources.py` and `test_resolver.py` | +| fair task queue | `packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_queue.py` | +| task admission and policies | `packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_task_admission.py` and `test_task_policies.py` | +| scheduler integration | `packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py` | +| request admission | `packages/data-designer-engine/tests/engine/models/request_admission/` | +| model request executor | `packages/data-designer-engine/tests/engine/models/clients/test_model_request_executor.py` | +| capacity diagnostics | `packages/data-designer-engine/tests/engine/test_capacity.py` | +| runtime observability | `packages/data-designer-engine/tests/engine/test_observability.py` | + +Test fakes live under tests near their consumers. Benchmark fakes and reusable scenarios live under `scripts/benchmarks/async_scheduling/`, with `scripts/benchmarks/benchmark_async_scheduling.py` as the runnable entrypoint. Production `data_designer.engine.testing` helpers are not part of the target architecture. diff --git a/scripts/benchmarks/benchmark_async_scheduling.py b/scripts/benchmarks/benchmark_async_scheduling.py index 0d9edd963..964ec5fdb 100644 --- a/scripts/benchmarks/benchmark_async_scheduling.py +++ b/scripts/benchmarks/benchmark_async_scheduling.py @@ -29,26 +29,25 @@ RequestAdmissionConfigSnapshot, RowGroupAdmission, ) -from data_designer.engine.dataset_builders.utils.fair_task_queue import FairTaskQueue -from data_designer.engine.dataset_builders.utils.task_admission import TaskAdmissionConfig, TaskAdmissionController -from data_designer.engine.dataset_builders.utils.task_model import Task -from data_designer.engine.dataset_builders.utils.task_scheduling import ( +from data_designer.engine.dataset_builders.scheduling.queue import FairTaskQueue +from data_designer.engine.dataset_builders.scheduling.resources import ( SchedulableTask, SchedulerResourceRequest, TaskGroupKey, TaskGroupSpec, ) -from data_designer.engine.models.clients.request_admission import ( - AdaptiveRequestAdmissionController, - ProviderModelKey, - ProviderModelStaticCap, - RequestAdmissionConfig, +from data_designer.engine.dataset_builders.scheduling.task_admission import TaskAdmissionConfig, TaskAdmissionController +from data_designer.engine.dataset_builders.scheduling.task_model import Task +from data_designer.engine.models.request_admission.config import RequestAdmissionConfig +from data_designer.engine.models.request_admission.controller import AdaptiveRequestAdmissionController +from data_designer.engine.models.request_admission.outcomes import RequestReleaseOutcome +from data_designer.engine.models.request_admission.resources import ( RequestAdmissionItem, RequestDomain, RequestGroupSpec, - RequestReleaseOutcome, RequestResourceKey, ) +from data_designer.engine.models.resources import ProviderModelKey, ProviderModelStaticCap from data_designer.engine.observability import InMemoryAdmissionEventSink, SchedulerAdmissionEvent ARTIFACT_SCHEMA_VERSION = "async-scheduling-benchmark-v1" From ea3d4a06cfe9a29e1414975643e845247468054f Mon Sep 17 00:00:00 2001 From: "Eric W. Tramel" Date: Tue, 19 May 2026 12:58:20 -0400 Subject: [PATCH 12/33] improve async scheduler idle observability - add adaptive row-group admission and request-pressure advisory telemetry - add idle regression suite, HTML reports, and Perfetto export tooling - add combined adaptive/request-pressure benchmark guardrails - expand scheduler, request admission, and benchmark tests --- .../src/data_designer/config/run_config.py | 16 +- .../tests/config/test_run_config.py | 8 + .../src/data_designer/engine/capacity.py | 5 + .../column_generators/generators/base.py | 28 +- .../dataset_builders/async_scheduler.py | 556 +++++- .../dataset_builders/scheduling/completion.py | 12 +- .../dataset_builders/scheduling/queue.py | 6 +- .../dataset_builders/scheduling/resolver.py | 16 + .../dataset_builders/scheduling/resources.py | 2 + .../scheduling/task_policies.py | 55 +- .../models/clients/model_request_executor.py | 5 + .../models/request_admission/controller.py | 34 +- .../engine/models/request_admission/queue.py | 1 + .../src/data_designer/engine/observability.py | 8 + .../scheduling/test_completion.py | 57 + .../scheduling/test_task_admission.py | 85 +- .../dataset_builders/test_async_scheduler.py | 562 ++++++ .../clients/test_model_request_executor.py | 96 + .../request_admission/test_controller.py | 67 + .../engine/test_async_scheduling_benchmark.py | 621 ++++++ reports/async-scheduling-idle-analysis.html | 97 + reports/async-scheduling-idle-regression.html | 125 ++ .../benchmarks/benchmark_async_scheduling.py | 1372 ++++++++++++- .../export_async_scheduling_perfetto.py | 431 ++++ .../generate_async_scheduling_idle_report.py | 1765 +++++++++++++++++ .../run_async_scheduling_idle_regression.py | 653 ++++++ 26 files changed, 6611 insertions(+), 72 deletions(-) create mode 100644 packages/data-designer-engine/tests/engine/test_async_scheduling_benchmark.py create mode 100644 reports/async-scheduling-idle-analysis.html create mode 100644 reports/async-scheduling-idle-regression.html create mode 100644 scripts/benchmarks/export_async_scheduling_perfetto.py create mode 100644 scripts/benchmarks/generate_async_scheduling_idle_report.py create mode 100644 scripts/benchmarks/run_async_scheduling_idle_regression.py diff --git a/packages/data-designer-config/src/data_designer/config/run_config.py b/packages/data-designer-config/src/data_designer/config/run_config.py index dc72bba37..a67740aed 100644 --- a/packages/data-designer-config/src/data_designer/config/run_config.py +++ b/packages/data-designer-config/src/data_designer/config/run_config.py @@ -3,6 +3,8 @@ from __future__ import annotations +from typing import Any + from pydantic import Field, model_validator from typing_extensions import Self @@ -53,8 +55,10 @@ class RunConfig(ConfigBase): fewer Data Designer-specific restrictions. ``secure`` uses Data Designer's hardened sandbox with additional AST, filter, and output guards. Default is ``secure``. + + Notes: Request admission is engine-internal in V1 and is not exposed as a - public run-config knob. + public run-config knob. """ disable_early_shutdown: bool = False @@ -75,6 +79,16 @@ class RunConfig(ConfigBase): ), ) + @model_validator(mode="before") + @classmethod + def reject_removed_throttle_config(cls, data: Any) -> Any: + if isinstance(data, dict) and "throttle" in data: + raise ValueError( + "RunConfig.throttle was removed. Request admission is now managed internally by the async " + "scheduling engine; remove the throttle field from your run config." + ) + return data + @model_validator(mode="after") def normalize_shutdown_settings(self) -> Self: """Normalize shutdown settings for compatibility.""" diff --git a/packages/data-designer-config/tests/config/test_run_config.py b/packages/data-designer-config/tests/config/test_run_config.py index 98c819b38..a90a2d57a 100644 --- a/packages/data-designer-config/tests/config/test_run_config.py +++ b/packages/data-designer-config/tests/config/test_run_config.py @@ -3,6 +3,9 @@ from __future__ import annotations +import pytest +from pydantic import ValidationError + from data_designer.config.run_config import JinjaRenderingEngine, RunConfig @@ -13,3 +16,8 @@ def test_run_config_defaults_to_secure_jinja_renderer() -> None: def test_run_config_accepts_native_renderer() -> None: run_config = RunConfig(jinja_rendering_engine=JinjaRenderingEngine.NATIVE) assert JinjaRenderingEngine(run_config.jinja_rendering_engine) == JinjaRenderingEngine.NATIVE + + +def test_run_config_rejects_removed_throttle_with_targeted_message() -> None: + with pytest.raises(ValidationError, match="RunConfig.throttle was removed"): + RunConfig(throttle={"max_concurrent_requests": 1}) diff --git a/packages/data-designer-engine/src/data_designer/engine/capacity.py b/packages/data-designer-engine/src/data_designer/engine/capacity.py index e2e368186..4dc1abb0b 100644 --- a/packages/data-designer-engine/src/data_designer/engine/capacity.py +++ b/packages/data-designer-engine/src/data_designer/engine/capacity.py @@ -39,6 +39,11 @@ class CapacityValue(Generic[_T]): class RowGroupAdmission: row_group_concurrency: CapacityValue[int] observed_in_flight: int | None = None + mode: Literal["fixed", "adaptive"] = "fixed" + target_in_flight: int | None = None + observed_max_target: int | None = None + max_admitted_rows: int | None = None + blocked_reasons: Mapping[str, int] = field(default_factory=dict) @dataclass(frozen=True) diff --git a/packages/data-designer-engine/src/data_designer/engine/column_generators/generators/base.py b/packages/data-designer-engine/src/data_designer/engine/column_generators/generators/base.py index 39e8b67e8..66d902a46 100644 --- a/packages/data-designer-engine/src/data_designer/engine/column_generators/generators/base.py +++ b/packages/data-designer-engine/src/data_designer/engine/column_generators/generators/base.py @@ -8,6 +8,7 @@ import functools import logging from abc import ABC, abstractmethod +from dataclasses import dataclass, field from typing import TYPE_CHECKING, Any, Coroutine, TypeVar, overload from data_designer.config.column_configs import GenerationStrategy @@ -27,6 +28,13 @@ # tracked as a structural follow-up. SYNC_BRIDGE_TIMEOUT = 300 + +@dataclass +class _EndpointBucket: + aliases: list[str] = field(default_factory=list) + caps: list[int] = field(default_factory=list) + + if TYPE_CHECKING: import pandas as pd @@ -172,7 +180,7 @@ def get_scheduling_metadata(self) -> SchedulingMetadata: diagnostics={"generator_type": type(self).__name__}, ) - endpoints: dict[tuple[str, str, str], dict[str, object]] = {} + endpoints: dict[tuple[str, str, str], _EndpointBucket] = {} for alias in aliases: try: model_config = self.get_model_config(model_alias=alias) @@ -187,13 +195,9 @@ def get_scheduling_metadata(self) -> SchedulingMetadata: endpoint = (provider_name, str(model_config.model), str(model_config.generation_type)) max_parallel = getattr(model_config.inference_parameters, "max_parallel_requests", 1) cap = max_parallel if isinstance(max_parallel, int) and max_parallel > 0 else 1 - bucket = endpoints.setdefault(endpoint, {"aliases": [], "caps": []}) - cast_aliases = bucket["aliases"] - cast_caps = bucket["caps"] - if isinstance(cast_aliases, list): - cast_aliases.append(alias) - if isinstance(cast_caps, list): - cast_caps.append(cap) + bucket = endpoints.setdefault(endpoint, _EndpointBucket()) + bucket.aliases.append(alias) + bucket.caps.append(cap) if len(endpoints) != 1: raise SchedulingMetadataError( @@ -203,18 +207,16 @@ def get_scheduling_metadata(self) -> SchedulingMetadata: ) endpoint, bucket = next(iter(endpoints.items())) - caps = bucket["caps"] if isinstance(bucket["caps"], list) else [1] - aliases_for_diagnostics = bucket["aliases"] if isinstance(bucket["aliases"], list) else aliases provider_name, model_id, generation_kind = endpoint - effective_cap = max(1, min(int(cap) for cap in caps)) + effective_cap = max(1, min(bucket.caps)) return SchedulingMetadata.model( provider_name, model_id, generation_kind, weight=effective_cap, diagnostics={ - "aliases": tuple(str(alias) for alias in aliases_for_diagnostics), - "raw_caps": tuple(int(cap) for cap in caps), + "aliases": tuple(bucket.aliases), + "raw_caps": tuple(bucket.caps), "merge_rule": "min_same_endpoint", }, ) diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py index b4f0b81be..231aec159 100644 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py @@ -9,8 +9,8 @@ import logging import time import uuid -from collections import defaultdict, deque -from collections.abc import Coroutine +from collections import Counter, defaultdict, deque +from collections.abc import Coroutine, Mapping from dataclasses import dataclass from typing import TYPE_CHECKING, Any, Callable @@ -54,7 +54,9 @@ strip_skip_metadata_from_records, ) from data_designer.engine.dataset_builders.utils.sticky_progress_bar import StickyProgressBar -from data_designer.engine.models.errors import RETRYABLE_MODEL_ERRORS +from data_designer.engine.errors import DataDesignerError +from data_designer.engine.models.clients.errors import ProviderError +from data_designer.engine.models.errors import RETRYABLE_MODEL_ERRORS, GenerationValidationFailureError from data_designer.engine.observability import ( RuntimeCorrelation, SchedulerAdmissionEvent, @@ -66,6 +68,7 @@ from data_designer.engine.column_generators.generators.base import ColumnGenerator from data_designer.engine.dataset_builders.utils.execution_graph import ExecutionGraph from data_designer.engine.dataset_builders.utils.row_group_buffer import RowGroupBufferManager + from data_designer.engine.models.request_admission.pressure import RequestPressureSnapshotProvider logger = logging.getLogger(__name__) @@ -80,6 +83,27 @@ DEGRADED_WARN_RATE: float = 0.5 DEGRADED_WARN_WINDOW: int = 20 DEGRADED_WARN_INTERVAL_S: float = 60.0 +INTERNAL_BUG_EXCEPTIONS = (KeyError, TypeError, AttributeError, AssertionError) + + +def _identity_hash(identity: tuple[str, ...]) -> str: + return hashlib.sha1("\0".join(identity).encode()).hexdigest()[:16] + + +def _request_resource_label(resource: object | None) -> str | None: + if resource is None: + return None + provider = getattr(resource, "provider_name", None) + model = getattr(resource, "model_id", None) + domain = getattr(resource, "domain", None) + domain_value = getattr(domain, "value", domain) + if provider is None or model is None or domain_value is None: + return str(resource) + return f"{provider}/{model}/{domain_value}" + + +def _string_keyed_counts(values: Mapping[object, int]) -> dict[str, int]: + return {str(key): int(value) for key, value in values.items()} @dataclass @@ -136,6 +160,10 @@ def __init__( progress_bar: bool = False, scheduler_event_sink: SchedulerAdmissionEventSink | None = None, run_id: str | None = None, + adaptive_row_group_admission: bool = False, + adaptive_row_group_initial_target: int = 1, + request_pressure_provider: RequestPressureSnapshotProvider | None = None, + request_pressure_advisory: bool = False, ) -> None: self._generators = generators self._graph = graph @@ -240,6 +268,7 @@ def __init__( # context naturally because the from_scratch task raised; the async # engine drops rows and continues, losing the cause unless we capture it. self._first_non_retryable_error: Exception | None = None + self._fatal_worker_error: BaseException | None = None # Pre-compute row-group sizes for O(1) lookup self._rg_size_map: dict[int, int] = dict(row_groups) @@ -251,6 +280,22 @@ def __init__( self._observed_max_row_groups_in_flight = 0 self._observed_max_task_leases_by_resource: dict[str, int] = {} self._observed_max_queued_by_group: dict[str, int] = {} + self._adaptive_row_group_admission = adaptive_row_group_admission + self._row_group_admission_hard_cap = max(1, max_concurrent_row_groups) + self._row_group_admission_target = ( + max(1, min(self._row_group_admission_hard_cap, adaptive_row_group_initial_target)) + if adaptive_row_group_admission + else self._row_group_admission_hard_cap + ) + self._observed_max_row_group_admission_target = self._row_group_admission_target + self._row_group_admission_event = asyncio.Event() + self._row_group_admission_event.set() + self._row_group_admission_pressure_ticks = 0 + self._row_group_admission_blocked_reasons: Counter[str] = Counter() + self._adaptive_max_admitted_rows = self._max_admitted_rows_guardrail() + self._request_pressure_provider = request_pressure_provider + self._request_pressure_advisory = request_pressure_advisory and request_pressure_provider is not None + self._request_pressure_advisory_skips = 0 # Pre-compute seed columns (graph is static) self._seed_cols: tuple[str, ...] = tuple(c for c in graph.columns if not graph.get_upstream_columns(c)) @@ -317,6 +362,13 @@ def first_non_retryable_error(self) -> Exception | None: """ return self._first_non_retryable_error + def _raise_if_fatal_worker_error(self) -> None: + if self._fatal_worker_error is None: + return + raise DatasetGenerationError( + "Unexpected internal task failure in async scheduler." + ) from self._fatal_worker_error + def _spawn_worker(self, coro: Coroutine[Any, Any, None]) -> asyncio.Task: """Create a tracked worker task that auto-removes itself on completion.""" task = asyncio.create_task(coro) @@ -339,9 +391,13 @@ def _emit_scheduler_event( return self._scheduler_event_sequence += 1 correlation = None + event_diagnostics = dict(diagnostics or {}) if task is not None: - group = lease.item.group if lease is not None else self._schedulable_task(task).group - identity_hash = hashlib.sha1("\0".join(group.key.identity).encode()).hexdigest()[:16] + schedulable = lease.item if lease is not None else self._schedulable_task(task) + group = schedulable.group + identity_hash = _identity_hash(group.key.identity) + event_diagnostics.setdefault("task_group_key", group.key) + event_diagnostics.setdefault("resource_request", dict(schedulable.resource_request.amounts)) correlation = RuntimeCorrelation( run_id=self._run_id, row_group=task.row_group, @@ -363,10 +419,11 @@ def _emit_scheduler_event( scheduler_resource_key=scheduler_resource_key, reason_or_result=reason_or_result, snapshot=self.task_admission_snapshot(), - diagnostics=diagnostics or {}, + diagnostics=event_diagnostics, ) ) except Exception: + logger.warning("Scheduler admission event sink raised; dropping event.", exc_info=True) return def _record_observed_task_state(self) -> None: @@ -382,6 +439,147 @@ def _record_observed_task_state(self) -> None: label = f"{group.kind}:{'/'.join(group.identity)}" self._observed_max_queued_by_group[label] = max(self._observed_max_queued_by_group.get(label, 0), count) + def _emit_scheduler_health_snapshot(self, reason: str) -> None: + self._emit_scheduler_event( + "scheduler_health_snapshot", + diagnostics=self._scheduler_health_diagnostics(reason=reason), + ) + + def _scheduler_health_diagnostics(self, *, reason: str) -> dict[str, object]: + queue_view = self._fair_queue.view() + task_view = self._task_admission.view() + return { + "reason": reason, + "active_row_groups": len(self._rg_states), + "target_row_groups": self._row_group_admission_target, + "hard_cap_row_groups": self._row_group_admission_hard_cap, + "active_admitted_rows": self._active_admitted_row_count(), + "max_admitted_rows": self._adaptive_max_admitted_rows, + "all_row_groups_admitted": self._all_rgs_admitted, + "queued_total": queue_view.queued_total, + "queued_by_group": _string_keyed_counts(queue_view.queued_by_group), + "queued_demand_by_resource": dict(queue_view.queued_peer_demand_by_resource), + "leased_resources": dict(task_view.leased_resources), + "resource_limits": dict(task_view.resource_limits), + "resources_available": dict(task_view.resources_available), + "in_flight_tasks": len(self._in_flight), + "active_workers": self.active_worker_count, + "deferred_tasks": len(self._deferred), + "pending_pre_batch_tasks": len(self._pending_pre_batch_ready_tasks), + "dispatched_tasks": len(self._dispatched), + "request_pressure_advisory_enabled": self._request_pressure_advisory, + "request_pressure_advisory_skips": self._request_pressure_advisory_skips, + "row_group_admission_blocked_reasons": dict(self._row_group_admission_blocked_reasons), + "request_pressure": self._request_pressure_diagnostics(), + } + + def _scheduler_job_diagnostics(self) -> dict[str, object]: + row_group_sizes = [size for _rg_id, size in self._row_groups] + strategies = {column: self._graph.get_strategy(column).value for column in self._graph.columns} + task_count_by_strategy = Counter(strategies.values()) + return { + "run_id": self._run_id, + "num_records": self._num_records, + "buffer_size": self._buffer_size, + "row_group_count": len(self._row_groups), + "row_group_total_rows": sum(row_group_sizes), + "row_group_min_size": min(row_group_sizes, default=0), + "row_group_max_size": max(row_group_sizes, default=0), + "graph_column_count": len(self._graph.columns), + "graph_root_columns": tuple(self._graph.get_root_columns()), + "graph_depth": len(self._graph.get_longest_dependency_chain()), + "task_count_by_strategy": dict(task_count_by_strategy), + "column_scheduling": self._column_scheduling_diagnostics(strategies), + "resource_limits": dict(self._task_admission_config.resource_limits), + "submission_capacity": self._task_admission_config.submission_capacity, + "adaptive_row_group_admission": self._adaptive_row_group_admission, + "row_group_initial_target": self._row_group_admission_target, + "row_group_hard_cap": self._row_group_admission_hard_cap, + "max_admitted_rows": self._adaptive_max_admitted_rows, + "request_pressure_advisory_enabled": self._request_pressure_advisory, + } + + def _column_scheduling_diagnostics(self, strategies: dict[str, str]) -> tuple[dict[str, object], ...]: + diagnostics = [] + for column in self._graph.columns: + task_type = "batch" if self._graph.get_strategy(column) != GenerationStrategy.CELL_BY_CELL else "cell" + row_index = None if task_type == "batch" else 0 + task = Task(column=column, row_group=0, row_index=row_index, task_type=task_type) + resolved = self._task_scheduling.scheduling_for_task(task, self._task_flow_identity(task)) + diagnostics.append( + { + "column": column, + "strategy": strategies[column], + "group_kind": resolved.group.key.kind, + "group_identity_hash": _identity_hash(resolved.group.key.identity), + "group_weight": resolved.group.weight, + "group_admitted_limit": resolved.group.admitted_limit, + "resource_request": dict(resolved.resource_request.amounts), + "request_resource": _request_resource_label(resolved.request_resource_key), + } + ) + return tuple(diagnostics) + + def _request_pressure_diagnostics(self) -> dict[str, object]: + if self._request_pressure_provider is None: + return {"enabled": False} + return { + "enabled": True, + "resources": { + _request_resource_label(resource): { + "effective_max": snapshot.effective_max, + "current_limit": snapshot.current_limit, + "in_flight_count": snapshot.in_flight_count, + "active_lease_count": snapshot.active_lease_count, + "waiters": snapshot.waiters, + "blocked": snapshot.blocked_until_monotonic is not None, + "cooldown_remaining_seconds": snapshot.cooldown_remaining_seconds, + "last_outcome": snapshot.last_outcome, + } + for resource, snapshot in self._request_pressure_provider.snapshots().items() + }, + "provider_models": { + f"{provider_model.provider_name}/{provider_model.model_id}": { + "static_cap": snapshot.static_cap, + "aggregate_in_flight": snapshot.aggregate_in_flight, + "aggregate_active_lease_count": snapshot.aggregate_active_lease_count, + "domains": {domain.value: count for domain, count in snapshot.domains.items()}, + } + for provider_model, snapshot in self._request_pressure_provider.global_snapshots().items() + }, + } + + def _request_pressure_item_diagnostics(self, item: SchedulableTask) -> dict[str, object]: + if item.request_resource_key is None or self._request_pressure_provider is None: + return {"request_resource": None} + snapshot = self._request_pressure_provider.snapshot(item.request_resource_key) + global_snapshot = self._request_pressure_provider.global_snapshot( + item.request_resource_key.provider_name, + item.request_resource_key.model_id, + ) + diagnostics: dict[str, object] = { + "request_resource": _request_resource_label(item.request_resource_key), + "pressure_reason": self._request_pressure_reason(item), + "resource_snapshot": None, + "provider_model_snapshot": None, + } + if snapshot is not None: + diagnostics["resource_snapshot"] = { + "effective_max": snapshot.effective_max, + "current_limit": snapshot.current_limit, + "in_flight_count": snapshot.in_flight_count, + "waiters": snapshot.waiters, + "blocked": snapshot.blocked_until_monotonic is not None, + "cooldown_remaining_seconds": snapshot.cooldown_remaining_seconds, + } + if global_snapshot is not None: + diagnostics["provider_model_snapshot"] = { + "static_cap": global_snapshot.static_cap, + "aggregate_in_flight": global_snapshot.aggregate_in_flight, + "aggregate_active_lease_count": global_snapshot.aggregate_active_lease_count, + } + return diagnostics + async def _cancel_workers(self) -> None: """Cancel all tracked worker tasks and wait for them to finish.""" for t in self._worker_tasks: @@ -395,26 +593,37 @@ def _apply_frontier_delta(self, delta: FrontierDelta) -> None: return for task in delta.removed: self._discard_ready_task(task) - for task in delta.added: - self._enqueue_ready_task(task) + self._enqueue_ready_tasks(delta.added) def _enqueue_ready_task(self, task: Task) -> None: - if task in self._dispatched or task.row_group not in self._rg_states: - return - if not self._tracker.is_frontier_task(task): - return - self._emit_scheduler_event("dependency_ready", task=task) - state = self._rg_states[task.row_group] - if self._on_seeds_complete is not None and not state.pre_batch_done and task.column not in self._seed_cols: - if task not in self._pending_pre_batch_ready_tasks: - self._pending_pre_batch_ready[task.row_group].append(task) - self._pending_pre_batch_ready_tasks.add(task) + self._enqueue_ready_tasks((task,)) + + def _enqueue_ready_tasks(self, tasks: tuple[Task, ...]) -> None: + schedulables: list[SchedulableTask] = [] + accepted_tasks_by_id: dict[str, Task] = {} + for task in tasks: + if task in self._dispatched or task.row_group not in self._rg_states: + continue + if not self._tracker.is_frontier_task(task): + continue + self._emit_scheduler_event("dependency_ready", task=task) + state = self._rg_states[task.row_group] + if self._on_seeds_complete is not None and not state.pre_batch_done and task.column not in self._seed_cols: + if task not in self._pending_pre_batch_ready_tasks: + self._pending_pre_batch_ready[task.row_group].append(task) + self._pending_pre_batch_ready_tasks.add(task) + continue + schedulable = self._schedulable_task(task) + schedulables.append(schedulable) + accepted_tasks_by_id[schedulable.task_id] = task + + if not schedulables: return - schedulable = self._schedulable_task(task) - accepted = self._fair_queue.enqueue((schedulable,)) + accepted = self._fair_queue.enqueue(schedulables) if accepted: self._tracker.mark_enqueued(accepted) - self._emit_scheduler_event("ready_enqueued", task=task) + for task_id in accepted: + self._emit_scheduler_event("ready_enqueued", task=accepted_tasks_by_id[task_id]) self._record_observed_task_state() self._wake_event.set() @@ -424,11 +633,13 @@ def _discard_ready_task(self, task: Task) -> None: def _flush_pre_batch_ready(self, row_group: int) -> None: pending = self._pending_pre_batch_ready.pop(row_group, []) + ready = [] for task in pending: if task not in self._pending_pre_batch_ready_tasks: continue self._pending_pre_batch_ready_tasks.discard(task) - self._enqueue_ready_task(task) + ready.append(task) + self._enqueue_ready_tasks(tuple(ready)) def _drop_pending_ready_for_row_group(self, row_group: int) -> None: pending = self._pending_pre_batch_ready.pop(row_group, []) @@ -440,7 +651,7 @@ def _dispatch_queued_tasks(self) -> _DispatchOutcome: dispatched = False while self._fair_queue.has_queued_tasks: - selection = self._fair_queue.select_next(lambda item, view: self._task_admission.is_eligible(item, view)) + selection = self._fair_queue.select_next(self._is_dispatch_eligible) if selection is None: summary = self._task_admission.explain_blocked(self._fair_queue.view()) if "group_cap" in summary.dominant_denial_reasons: @@ -456,6 +667,7 @@ def _dispatch_queued_tasks(self) -> _DispatchOutcome: "reasons": dict(summary.dominant_denial_reasons), }, ) + self._emit_scheduler_health_snapshot(event_kind) return _DispatchOutcome(dispatched=dispatched, admission_blocked=True) self._emit_scheduler_event("selected", task=selection.item.payload) @@ -487,8 +699,73 @@ def _dispatch_queued_tasks(self) -> _DispatchOutcome: if dispatched: self._emit_scheduler_event("queue_drained") + self._emit_scheduler_health_snapshot("queue_drained") return _DispatchOutcome(dispatched=dispatched) + def _is_dispatch_eligible(self, item: SchedulableTask, view: Any) -> bool: + if not self._task_admission.is_eligible(item, view): + return False + if not self._request_pressure_advisory: + return True + if not self._is_request_pressure_limited(item): + return True + open_peer = self._request_pressure_open_peer(item, view) + if open_peer is not None: + self._request_pressure_advisory_skips += 1 + self._emit_scheduler_event( + "request_pressure_advisory_skipped", + task=item.payload, + diagnostics=self._request_pressure_item_diagnostics(item) + | { + "open_peer_task_id": open_peer.task_id, + "open_peer_column": open_peer.payload.column, + "open_peer_request_resource": _request_resource_label(open_peer.request_resource_key), + "skip_count": self._request_pressure_advisory_skips, + }, + ) + return False + return True + + def _is_request_pressure_limited(self, item: SchedulableTask) -> bool: + return self._request_pressure_reason(item) is not None + + def _request_pressure_reason(self, item: SchedulableTask) -> str | None: + if item.request_resource_key is None or self._request_pressure_provider is None: + return None + snapshot = self._request_pressure_provider.snapshot(item.request_resource_key) + global_snapshot = self._request_pressure_provider.global_snapshot( + item.request_resource_key.provider_name, + item.request_resource_key.model_id, + ) + if ( + global_snapshot is not None + and global_snapshot.static_cap > 0 + and global_snapshot.aggregate_in_flight >= global_snapshot.static_cap + ): + return "provider_model_aggregate_cap" + if snapshot is None: + return None + if snapshot.cooldown_remaining_seconds > 0.0 or snapshot.blocked_until_monotonic is not None: + return "cooldown" + if snapshot.waiters > 0: + return "waiters" + if snapshot.current_limit > 0 and snapshot.in_flight_count >= snapshot.current_limit: + return "resource_limit" + return None + + def _has_request_pressure_open_peer(self, item: SchedulableTask, view: Any) -> bool: + return self._request_pressure_open_peer(item, view) is not None + + def _request_pressure_open_peer(self, item: SchedulableTask, view: Any) -> SchedulableTask | None: + for peer in view.first_candidate_tasks_by_group.values(): + if peer.task_id == item.task_id: + continue + if not self._task_admission.is_eligible(peer, view): + continue + if not self._is_request_pressure_limited(peer): + return peer + return None + def _dispatch_selected_task(self, item: SchedulableTask, lease: TaskAdmissionLease) -> None: task = item.payload task_execution_id = f"task-exec-{uuid.uuid4().hex}" @@ -519,18 +796,167 @@ def _task_flow_identity(self, task: Task) -> tuple[str, ...]: output_columns = self._gen_instance_to_columns.get(id(generator), [task.column]) return tuple(output_columns) + def _max_admitted_rows_guardrail(self) -> int: + if self._num_records > 0 and self._buffer_size > 0: + return min(self._num_records, max(3 * self._buffer_size, 8192)) + total_rows = sum(size for _rg_id, size in self._row_groups) + return max(1, total_rows) + + async def _wait_for_row_group_admission_capacity(self, row_group_size: int) -> None: + while True: + target_blocked = len(self._rg_states) >= self._row_group_admission_target + row_guard_blocked = not self._row_group_row_guard_allows(row_group_size) + if not target_blocked and not row_guard_blocked: + return + self._row_group_admission_event.clear() + target_blocked = len(self._rg_states) >= self._row_group_admission_target + row_guard_blocked = not self._row_group_row_guard_allows(row_group_size) + if not target_blocked and not row_guard_blocked: + return + if row_guard_blocked: + self._row_group_admission_blocked_reasons["max_admitted_rows"] += 1 + self._emit_scheduler_event( + "row_group_admission_blocked", + diagnostics=self._row_group_admission_diagnostics(reason="max_admitted_rows"), + ) + self._emit_scheduler_health_snapshot("row_group_admission_blocked") + await self._row_group_admission_event.wait() + self._raise_if_fatal_worker_error() + + def _row_group_row_guard_allows(self, row_group_size: int) -> bool: + if not self._adaptive_row_group_admission: + return True + admitted_rows = self._active_admitted_row_count() + return admitted_rows == 0 or admitted_rows + row_group_size <= self._adaptive_max_admitted_rows + + def _active_admitted_row_count(self) -> int: + return sum(state.size for state in self._rg_states.values()) + + def _maybe_update_adaptive_row_group_target(self) -> None: + if not self._adaptive_row_group_admission: + return + if self._all_rgs_admitted or self._early_shutdown or self._fatal_worker_error is not None: + return + if len(self._rg_states) >= self._row_group_admission_hard_cap: + self._row_group_admission_pressure_ticks = 0 + return + reason = self._adaptive_row_group_block_reason() + if reason is not None: + self._row_group_admission_blocked_reasons[reason] += 1 + self._row_group_admission_pressure_ticks = 0 + self._emit_scheduler_event( + "row_group_admission_blocked", + diagnostics=self._row_group_admission_diagnostics(reason=reason), + ) + self._emit_scheduler_health_snapshot("row_group_admission_blocked") + return + + self._row_group_admission_pressure_ticks += 1 + if self._fair_queue.view().queued_total > 0 and self._row_group_admission_pressure_ticks < 2: + return + old_target = self._row_group_admission_target + self._row_group_admission_target = min(self._row_group_admission_hard_cap, old_target + 1) + self._observed_max_row_group_admission_target = max( + self._observed_max_row_group_admission_target, + self._row_group_admission_target, + ) + self._row_group_admission_pressure_ticks = 0 + if self._row_group_admission_target != old_target: + self._emit_scheduler_event( + "row_group_admission_target_changed", + diagnostics=self._row_group_admission_diagnostics(reason="horizon_limited") + | {"old_target": old_target, "new_target": self._row_group_admission_target}, + ) + self._emit_scheduler_health_snapshot("row_group_admission_target_changed") + self._row_group_admission_event.set() + + def _adaptive_row_group_block_reason(self) -> str | None: + if self._deferred: + return "deferred_tasks" + next_size = self._next_unadmitted_row_group_size() + if next_size is None: + return "no_pending_row_groups" + if not self._row_group_row_guard_allows(next_size): + return "max_admitted_rows" + queue_view = self._fair_queue.view() + queue_guard = max(self._max_submitted_tasks * 4, self._max_model_task_admission * 2) + if queue_view.queued_total >= queue_guard: + return "queued_task_guardrail" + task_view = self._task_admission.view() + llm_limit = task_view.resource_limits.get("llm_wait", 0) + if llm_limit <= 0: + return "no_llm_wait_resource" + llm_available = task_view.resources_available.get("llm_wait", 0) + queued_llm = queue_view.queued_peer_demand_by_resource.get("llm_wait", 0) + if llm_available <= queued_llm and queue_view.queued_total > 0: + return "queued_llm_demand" + if llm_available <= 0: + return "llm_wait_saturated" + return None + + def _next_unadmitted_row_group_size(self) -> int | None: + for rg_id, rg_size in self._row_groups: + if rg_id not in self._rg_states and not self._tracker.is_row_group_complete( + rg_id, rg_size, self._graph.columns + ): + return rg_size + return None + + def _row_group_admission_diagnostics(self, *, reason: str) -> dict[str, object]: + queue_view = self._fair_queue.view() + task_view = self._task_admission.view() + admitted_rows = self._active_admitted_row_count() + return { + "mode": "adaptive" if self._adaptive_row_group_admission else "fixed", + "reason": reason, + "active_row_groups": len(self._rg_states), + "target_row_groups": self._row_group_admission_target, + "hard_cap": self._row_group_admission_hard_cap, + "admitted_rows": admitted_rows, + "max_admitted_rows": self._adaptive_max_admitted_rows, + "queued_total": queue_view.queued_total, + "queued_llm_wait_demand": queue_view.queued_peer_demand_by_resource.get("llm_wait", 0), + "llm_wait_limit": task_view.resource_limits.get("llm_wait", 0), + "llm_wait_leased": task_view.leased_resources.get("llm_wait", 0), + "llm_wait_available": task_view.resources_available.get("llm_wait", 0), + "blocked_reasons": dict(self._row_group_admission_blocked_reasons), + } + async def _admit_row_groups(self) -> None: """Admit row groups as semaphore slots become available.""" + all_admitted = True for rg_id, rg_size in self._row_groups: + await self._wait_for_row_group_admission_capacity(rg_size) + if self._early_shutdown or self._fatal_worker_error is not None: + all_admitted = False + break await self._rg_semaphore.acquire() + if self._early_shutdown or self._fatal_worker_error is not None: + self._rg_semaphore.release() + all_admitted = False + break + if not self._row_group_row_guard_allows(rg_size): + self._rg_semaphore.release() + await self._wait_for_row_group_admission_capacity(rg_size) + await self._rg_semaphore.acquire() + if self._early_shutdown or self._fatal_worker_error is not None: + self._rg_semaphore.release() + all_admitted = False + break self._rg_states[rg_id] = _RowGroupState(size=rg_size) if self._buffer_manager is not None: self._buffer_manager.init_row_group(rg_id, rg_size) await self._dispatch_seeds(rg_id, rg_size) + self._emit_scheduler_event( + "row_group_admitted", + diagnostics=self._row_group_admission_diagnostics(reason="admitted") + | {"row_group": rg_id, "row_group_size": rg_size}, + ) + self._emit_scheduler_health_snapshot("row_group_admitted") self._wake_event.set() - self._all_rgs_admitted = True + self._all_rgs_admitted = all_admitted self._wake_event.set() async def run(self) -> None: @@ -550,6 +976,9 @@ async def run(self) -> None: if self._reporter: self._reporter.log_start(num_row_groups=num_rgs) + self._emit_scheduler_event("scheduler_job_started", diagnostics=self._scheduler_job_diagnostics()) + self._emit_scheduler_health_snapshot("start") + # Launch admission as a background task so it interleaves with dispatch. admission_task = asyncio.create_task(self._admit_row_groups()) @@ -576,6 +1005,11 @@ async def run(self) -> None: if self._reporter: self._reporter.log_final() + self._emit_scheduler_health_snapshot("completed") + self._emit_scheduler_event( + "scheduler_job_completed", diagnostics=self._scheduler_health_diagnostics(reason="completed") + ) + if self._rg_states: incomplete = list(self._rg_states) logger.error( @@ -591,6 +1025,7 @@ async def _main_dispatch_loop( ) -> None: """Core dispatch loop extracted from ``run()``.""" while True: + self._raise_if_fatal_worker_error() if self._early_shutdown: logger.warning("Early shutdown triggered - non-retryable error rate exceeded threshold") if self._deferred: @@ -606,12 +1041,14 @@ async def _main_dispatch_loop( dispatch_outcome = self._dispatch_queued_tasks() self._checkpoint_completed_row_groups(all_columns) + self._maybe_update_adaptive_row_group_target() # Eagerly salvage any row groups that have only deferred tasks, # even if other row groups are still in-flight. This frees # semaphore slots so admission doesn't lose capacity. if self._deferred: await self._salvage_stalled_row_groups(seed_cols, has_pre_batch, all_columns) + self._maybe_update_adaptive_row_group_target() # Are we done? all_done = self._all_rgs_admitted and not self._rg_states and not self._in_flight @@ -628,7 +1065,12 @@ async def _main_dispatch_loop( continue if not self._fair_queue.has_queued_tasks or dispatch_outcome.admission_blocked: + if self._fair_queue.has_queued_tasks and not dispatch_outcome.dispatched and not self._in_flight: + raise RuntimeError( + "Ready frontier is admission-blocked with no in-flight task to release scheduler capacity." + ) await self._wake_event.wait() + self._raise_if_fatal_worker_error() async def _salvage_rounds( self, @@ -672,6 +1114,7 @@ async def _salvage_rounds( async def _drain_frontier(self, seed_cols: tuple[str, ...], has_pre_batch: bool) -> None: """Dispatch all frontier tasks and their downstream until quiescent.""" while True: + self._raise_if_fatal_worker_error() if has_pre_batch: self._run_seeds_complete_check(seed_cols) dispatch_outcome = self._dispatch_queued_tasks() @@ -686,6 +1129,7 @@ async def _drain_frontier(self, seed_cols: tuple[str, ...], has_pre_batch: bool) continue self._wake_event.clear() await self._wake_event.wait() + self._raise_if_fatal_worker_error() async def _salvage_stalled_row_groups( self, @@ -744,6 +1188,9 @@ def _checkpoint_completed_row_groups(self, all_columns: list[str]) -> None: if self._tracker.is_row_group_complete(rg_id, state.size, all_columns) ] for rg_id, rg_size in completed: + dropped_rows = sum(1 for ri in range(rg_size) if self._tracker.is_dropped(rg_id, ri)) + checkpointed = False + checkpoint_result = "unknown" try: if self._on_before_checkpoint: try: @@ -757,17 +1204,36 @@ def _checkpoint_completed_row_groups(self, all_columns: list[str]) -> None: # Remove from tracking only after the callback succeeds. del self._rg_states[rg_id] # If all rows were dropped (e.g. seed failure), free instead of finalizing - if all(self._tracker.is_dropped(rg_id, ri) for ri in range(rg_size)): + if dropped_rows == rg_size: if self._buffer_manager: self._buffer_manager.free_row_group(rg_id) + checkpoint_result = "all_rows_dropped" elif self._on_finalize_row_group is not None: self._on_finalize_row_group(rg_id) + checkpoint_result = "finalized" + else: + checkpoint_result = "completed" + checkpointed = True except DatasetGenerationError: raise except Exception: logger.error(f"Failed to checkpoint row group {rg_id}.", exc_info=True) finally: self._rg_semaphore.release() + self._row_group_admission_event.set() + if checkpointed: + self._emit_scheduler_event( + "row_group_checkpointed", + diagnostics={ + "row_group": rg_id, + "row_group_size": rg_size, + "dropped_rows": dropped_rows, + "surviving_rows": rg_size - dropped_rows, + "result": checkpoint_result, + "active_row_groups": len(self._rg_states), + }, + ) + self._emit_scheduler_health_snapshot("row_group_checkpointed") # Clean up deferred tasks for checkpointed row groups if completed: @@ -1066,16 +1532,26 @@ async def _execute_task_inner_impl(self, task: Task, lease: TaskAdmissionLease, # seed failures). Subsequent failures are still logged below. if self._first_non_retryable_error is None: self._first_non_retryable_error = exc - # Non-retryable: drop the affected row(s) + log_message = ( + f"Non-retryable failure on {task.column}[rg={task.row_group}, row={task.row_index}]: {exc}" + ) + if self._is_expected_non_retryable(exc): + logger.warning(log_message) + elif self._is_internal_bug(exc): + logger.error("Unexpected fatal %s", log_message, exc_info=True) + self._fatal_worker_error = exc + self._wake_event.set() + raise + else: + logger.error("Unexpected %s", log_message, exc_info=True) + # Non-retryable data/user/provider failures drop the affected row(s); + # internal bug-shaped failures above abort the run instead. if task.row_index is not None: self._drop_row(task.row_group, task.row_index, exclude_columns={task.column}) else: # Batch/from_scratch failure: drop all rows in the row group rg_size = self._get_rg_size(task.row_group) self._drop_row_group(task.row_group, rg_size, exclude_columns={task.column}) - logger.warning( - f"Non-retryable failure on {task.column}[rg={task.row_group}, row={task.row_index}]: {exc}" - ) self._emit_scheduler_event( "non_retryable_dropped", task=task, @@ -1291,6 +1767,11 @@ def capacity_plan(self) -> AsyncCapacityPlan: source="dataset_builder", ), observed_in_flight=len(self._rg_states), + mode="adaptive" if self._adaptive_row_group_admission else "fixed", + target_in_flight=self._row_group_admission_target, + observed_max_target=self._observed_max_row_group_admission_target, + max_admitted_rows=self._adaptive_max_admitted_rows, + blocked_reasons=dict(self._row_group_admission_blocked_reasons), ), submission_capacity=CapacityValue(value=self._max_submitted_tasks, source="dataset_builder"), task_resource_limits=CapacityValue( @@ -1333,6 +1814,21 @@ def capacity_plan(self) -> AsyncCapacityPlan: ) @staticmethod - def _is_retryable(exc: Exception) -> bool: + def _is_retryable(exc: BaseException) -> bool: """Classify whether an exception is retryable.""" return isinstance(exc, RETRYABLE_MODEL_ERRORS) + + @staticmethod + def _is_expected_non_retryable(exc: BaseException) -> bool: + return isinstance( + exc, + ( + DataDesignerError, + DatasetGenerationError, + GenerationValidationFailureError, + ProviderError, + ), + ) + + def _is_internal_bug(self, exc: BaseException) -> bool: + return isinstance(exc, INTERNAL_BUG_EXCEPTIONS) and not self._is_expected_non_retryable(exc) diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/completion.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/completion.py index 23166f329..b34ffe69a 100644 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/completion.py +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/completion.py @@ -8,6 +8,7 @@ from typing import TYPE_CHECKING from data_designer.config.column_configs import GenerationStrategy +from data_designer.engine.dataset_builders.scheduling.resources import stable_task_id from data_designer.engine.dataset_builders.scheduling.task_model import SliceRef, Task if TYPE_CHECKING: @@ -154,7 +155,7 @@ def ready_frontier(self) -> tuple[Task, ...]: def mark_enqueued(self, task_ids: set[str] | list[str] | tuple[str, ...]) -> None: """Acknowledge tasks accepted by the ready queue.""" wanted = set(task_ids) - self._frontier = {task for task in self._frontier if _stable_task_id(task) not in wanted} + self._frontier = {task for task in self._frontier if stable_task_id(task) not in wanted} def mark_complete(self, task: Task) -> None: """Compatibility hook for scheduler terminal accounting.""" @@ -245,7 +246,7 @@ def _enqueue_downstream(self, column: str, row_group: int, row_index: int | None rg_batch_complete = self._batch_complete.get(row_group, set()) rg_size = self._row_group_sizes[row_group] - for down in self._graph.get_downstream_columns(column): + for down in sorted(self._graph.get_downstream_columns(column)): batch_ups, cell_ups = self._graph.split_upstream_by_strategy(down) if any(up not in rg_batch_complete for up in batch_ups): @@ -342,10 +343,3 @@ def _validate_row_group(self, row_group: int) -> int | None: known = sorted(self._row_group_sizes) raise ValueError(f"Unknown row_group {row_group}. Known row_groups: {known}") return expected - - -def _stable_task_id(task: Task) -> str: - raw = f"{task.column}\0{task.row_group}\0{task.row_index}\0{task.task_type}" - import hashlib - - return f"task-{hashlib.sha1(raw.encode()).hexdigest()[:16]}" diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/queue.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/queue.py index 424cb46f4..2cdd99b36 100644 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/queue.py +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/queue.py @@ -24,6 +24,7 @@ class QueueView: queued_by_group: Mapping[TaskGroupKey, int] queued_resource_demand_by_group: Mapping[TaskGroupKey, Mapping[SchedulerResourceKey, int]] first_candidate_resources_by_group: Mapping[TaskGroupKey, Mapping[SchedulerResourceKey, int]] + first_candidate_tasks_by_group: Mapping[TaskGroupKey, SchedulableTask] first_candidate_group_specs_by_group: Mapping[TaskGroupKey, TaskGroupSpec] queued_peer_demand_by_resource: Mapping[SchedulerResourceKey, int] @@ -90,7 +91,6 @@ def discard_where(self, predicate: Callable[[SchedulableTask], bool]) -> None: def select_next(self, is_eligible: Callable[[SchedulableTask, QueueView], bool]) -> QueueSelection | None: """Return the next eligible task without mutating queue state.""" view = self.view() - blocked: list[tuple[float, int, TaskGroupKey]] = [] heap_copy = list(self._heap) heapq.heapify(heap_copy) active_seen: set[TaskGroupKey] = set() @@ -105,7 +105,6 @@ def select_next(self, is_eligible: Callable[[SchedulableTask, QueueView], bool]) if item is None: continue if not is_eligible(item, view): - blocked.append((finish, sequence, key)) continue return QueueSelection(item=item, queue_view=view, sequence_version=self._sequence_version) return None @@ -144,6 +143,7 @@ def view(self) -> QueueView: queued_by_group: Counter[TaskGroupKey] = Counter() demand_by_group: dict[TaskGroupKey, dict[SchedulerResourceKey, int]] = defaultdict(lambda: defaultdict(int)) first_by_group: dict[TaskGroupKey, Mapping[SchedulerResourceKey, int]] = {} + first_tasks_by_group: dict[TaskGroupKey, SchedulableTask] = {} first_group_specs: dict[TaskGroupKey, TaskGroupSpec] = {} demand_by_resource: Counter[SchedulerResourceKey] = Counter() @@ -158,6 +158,7 @@ def view(self) -> QueueView: first = self._first_valid_item(key) if first is not None: first_by_group[key] = dict(first.resource_request.amounts) + first_tasks_by_group[key] = first first_group_specs[key] = first.group return QueueView( @@ -165,6 +166,7 @@ def view(self) -> QueueView: queued_by_group=dict(queued_by_group), queued_resource_demand_by_group={key: dict(value) for key, value in demand_by_group.items()}, first_candidate_resources_by_group=first_by_group, + first_candidate_tasks_by_group=first_tasks_by_group, first_candidate_group_specs_by_group=first_group_specs, queued_peer_demand_by_resource=dict(demand_by_resource), ) diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/resolver.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/resolver.py index 924a278ee..c2f61e1e1 100644 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/resolver.py +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/resolver.py @@ -16,6 +16,7 @@ stable_task_id, ) from data_designer.engine.dataset_builders.scheduling.task_model import Task +from data_designer.engine.models.request_admission.resources import RequestDomain, RequestResourceKey if TYPE_CHECKING: from data_designer.engine.column_generators.generators.base import ColumnGenerator @@ -27,6 +28,7 @@ class ResolvedTaskScheduling: group: TaskGroupSpec resource_request: SchedulerResourceRequest + request_resource_key: RequestResourceKey | None = None class TaskSchedulingResolver: @@ -63,6 +65,7 @@ def schedulable_task(self, task: Task, flow_identity: tuple[str, ...]) -> Schedu payload=task, group=resolved.group, resource_request=resolved.resource_request, + request_resource_key=resolved.request_resource_key, ) def _resolve_metadata(self, generator: ColumnGenerator) -> SchedulingMetadata: @@ -96,6 +99,7 @@ def _resolved_from_metadata( identity = (*metadata.identity, *flow_identity) admitted_limit = max(1, min(self._model_group_limit_cap, self._model_group_limit_multiplier * weight)) + request_resource_key = _request_resource_key(metadata) return ResolvedTaskScheduling( group=TaskGroupSpec( key=TaskGroupKey(kind=metadata.kind, identity=identity), @@ -103,4 +107,16 @@ def _resolved_from_metadata( admitted_limit=admitted_limit, ), resource_request=SchedulerResourceRequest({"submission": 1, "llm_wait": 1}), + request_resource_key=request_resource_key, ) + + +def _request_resource_key(metadata: SchedulingMetadata) -> RequestResourceKey | None: + if metadata.kind != "model": + return None + _kind, provider_name, model_id, generation_kind = metadata.identity + try: + domain = RequestDomain(generation_kind) + except ValueError: + return None + return RequestResourceKey(provider_name=provider_name, model_id=model_id, domain=domain) diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/resources.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/resources.py index 3c002d37f..35a0ec18f 100644 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/resources.py +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/resources.py @@ -9,6 +9,7 @@ from typing import Literal from data_designer.engine.dataset_builders.scheduling.task_model import Task +from data_designer.engine.models.request_admission.resources import RequestResourceKey SchedulerResourceKey = Literal["submission", "llm_wait", "local"] @@ -52,6 +53,7 @@ class SchedulableTask: payload: Task group: TaskGroupSpec resource_request: SchedulerResourceRequest + request_resource_key: RequestResourceKey | None = None def stable_task_id(task: Task) -> str: diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/task_policies.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/task_policies.py index 14ecd89e9..72d8b46f5 100644 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/task_policies.py +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/task_policies.py @@ -86,12 +86,17 @@ def evaluate( leased_count = admission_view.running_counts_by_group.get(item.group.key, 0) if leased_count < item.group.admitted_limit: return TaskAdmissionPolicyDecision(allowed=True) - if not _has_queued_peer_group(item.group.key, queue_view): + pressure_resources = _queued_peer_pressure_resources(item, queue_view, admission_view) + if not pressure_resources: return TaskAdmissionPolicyDecision(allowed=True) return TaskAdmissionPolicyDecision( allowed=False, reason="group_cap", - diagnostics={"admitted_limit": item.group.admitted_limit, "leased_count": leased_count}, + diagnostics={ + "admitted_limit": item.group.admitted_limit, + "leased_count": leased_count, + "pressure_resources": pressure_resources, + }, ) def on_acquire( @@ -125,8 +130,9 @@ def evaluate( if leased_count < limit: return TaskAdmissionPolicyDecision(allowed=True) - if _has_queued_peer_group(item.group.key, queue_view): - for resource in item.resource_request.amounts: + pressure_resources = _queued_peer_pressure_resources(item, queue_view, admission_view) + if pressure_resources: + for resource in pressure_resources: debt_key = (item.group.key, resource) debt = admission_view.policy_debt_by_group_resource.get(debt_key, 0) if debt > 0: @@ -138,7 +144,11 @@ def evaluate( return TaskAdmissionPolicyDecision( allowed=False, reason="group_cap", - diagnostics={"admitted_limit": limit, "leased_count": leased_count}, + diagnostics={ + "admitted_limit": limit, + "leased_count": leased_count, + "pressure_resources": pressure_resources, + }, ) borrow_resources: list[tuple[SchedulerResourceKey, int]] = [] @@ -176,10 +186,41 @@ def on_acquire( def on_release(self, lease: TaskAdmissionLease) -> PolicyStateDelta: if not self._config.repay_on_withheld_peer_pressure: return PolicyStateDelta() + # Borrow debt is group-level: any completed lease in the group repays it, clamped to zero by the controller. return PolicyStateDelta( debt_changes={(lease.item.group.key, resource): -amount for resource, amount in lease.resources.items()} ) -def _has_queued_peer_group(group_key: TaskGroupKey, queue_view: QueueView) -> bool: - return any(key != group_key and count > 0 for key, count in queue_view.queued_by_group.items()) +def _queued_peer_pressure_resources( + item: SchedulableTask, + queue_view: QueueView, + admission_view: TaskAdmissionView, +) -> tuple[SchedulerResourceKey, ...]: + candidate_resources = _fair_pressure_resources(item.resource_request.amounts) + pressure_resources: list[SchedulerResourceKey] = [] + for group_key, peer_resources in queue_view.first_candidate_resources_by_group.items(): + if group_key == item.group.key: + continue + if not _is_hard_resource_eligible(peer_resources, admission_view): + continue + for resource in candidate_resources: + if peer_resources.get(resource, 0) > 0 and resource not in pressure_resources: + pressure_resources.append(resource) + return tuple(pressure_resources) + + +def _fair_pressure_resources( + resources: Mapping[SchedulerResourceKey, int], +) -> tuple[SchedulerResourceKey, ...]: + typed_resources = tuple(resource for resource in resources if resource != "submission") + if typed_resources: + return typed_resources + return tuple(resources) + + +def _is_hard_resource_eligible( + resources: Mapping[SchedulerResourceKey, int], + admission_view: TaskAdmissionView, +) -> bool: + return all(admission_view.resources_available.get(resource, 0) >= amount for resource, amount in resources.items()) diff --git a/packages/data-designer-engine/src/data_designer/engine/models/clients/model_request_executor.py b/packages/data-designer-engine/src/data_designer/engine/models/clients/model_request_executor.py index c79f8bfab..01f917585 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/clients/model_request_executor.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/clients/model_request_executor.py @@ -4,6 +4,7 @@ from __future__ import annotations import asyncio +import logging import uuid from typing import TYPE_CHECKING, TypeVar @@ -41,6 +42,8 @@ _T = TypeVar("_T") +logger = logging.getLogger(__name__) + class ModelRequestExecutor(ModelClient): """Model-call boundary that acquires/releases request-admission leases.""" @@ -239,8 +242,10 @@ def _emit_model_event( request_lease_id=lease.lease_id, request_resource_key=item.resource, request_group_key=item.group.key, + pressure_snapshot=self._request_admission.pressure.snapshot(item.resource), diagnostics=diagnostics or {}, ) ) except Exception: + logger.warning("Model request event sink raised; dropping event.", exc_info=True) return diff --git a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py index 72abd4dda..9d63858fe 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py @@ -4,6 +4,7 @@ from __future__ import annotations import asyncio +import logging import math import threading import time @@ -34,6 +35,8 @@ runtime_correlation_provider, ) +logger = logging.getLogger(__name__) + RequestDenyReason = Literal[ "no_capacity", "cooldown", @@ -165,6 +168,7 @@ def register( diagnostics={"provider_model": key, "previous": before, "current": cap.effective_max}, ) ) + self._admit_waiters_locked(events) self._condition.notify_all() self._emit_events(events) @@ -194,6 +198,13 @@ def try_acquire(self, item: RequestAdmissionItem) -> RequestAdmissionDecision: return decision def acquire_sync(self, item: RequestAdmissionItem) -> RequestAdmissionLease: + try: + asyncio.get_running_loop() + except RuntimeError: + pass + else: + raise RuntimeError("acquire_sync would block the running event loop; use acquire_async instead.") + timeout = ( item.queue_wait_timeout_seconds if item.queue_wait_timeout_seconds is not None @@ -227,6 +238,8 @@ def acquire_sync(self, item: RequestAdmissionItem) -> RequestAdmissionLease: self._emit_events(events) async def acquire_async(self, item: RequestAdmissionItem) -> RequestAdmissionLease: + loop = asyncio.get_running_loop() + wakeup = asyncio.Event() timeout = ( item.queue_wait_timeout_seconds if item.queue_wait_timeout_seconds is not None @@ -234,7 +247,13 @@ async def acquire_async(self, item: RequestAdmissionItem) -> RequestAdmissionLea ) now = time.monotonic() deadline = now + timeout if timeout is not None else None - waiter = RequestWaiter(waiter_id=uuid.uuid4().hex, item=item, enqueued_at=now, deadline_monotonic=deadline) + waiter = RequestWaiter( + waiter_id=uuid.uuid4().hex, + item=item, + enqueued_at=now, + deadline_monotonic=deadline, + wakeup=lambda: loop.call_soon_threadsafe(wakeup.set), + ) events: list[RequestAdmissionEvent] = [] try: while True: @@ -255,7 +274,11 @@ async def acquire_async(self, item: RequestAdmissionItem) -> RequestAdmissionLea events.append(self._request_event_locked("request_wait_timeout", item=item, decision=denied)) raise RequestAdmissionError(denied) wait = self._wait_seconds_locked(item, now, deadline) - await asyncio.sleep(wait) + try: + await asyncio.wait_for(wakeup.wait(), timeout=wait) + except asyncio.TimeoutError: + pass + wakeup.clear() except asyncio.CancelledError: lease_to_release: RequestAdmissionLease | None = None with self._lock: @@ -398,11 +421,17 @@ def _admit_waiters_locked(self, events: list[RequestAdmissionEvent]) -> None: state.waiters = max(0, state.waiters - 1) lease = self._acquire_locked(waiter.item, now) waiter.assigned_lease = lease + self._wake_waiter_locked(waiter) events.append(self._request_event_locked("request_wait_completed", item=waiter.item, lease=lease)) events.append(self._request_event_locked("request_lease_acquired", item=waiter.item, lease=lease)) if not self._queue.has_waiters: events.append(self._request_event_locked("request_queue_drained", item=waiter.item)) + def _wake_waiter_locked(self, waiter: RequestWaiter) -> None: + if waiter.wakeup is None: + return + waiter.wakeup() + def _wait_seconds_locked( self, item: RequestAdmissionItem, @@ -637,4 +666,5 @@ def _emit_events(self, events: list[RequestAdmissionEvent]) -> None: try: self._event_sink.emit_request_event(event) except Exception: + logger.warning("Request admission event sink raised; dropping event.", exc_info=True) continue diff --git a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/queue.py b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/queue.py index 626fd3426..98610e5ee 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/queue.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/queue.py @@ -23,6 +23,7 @@ class RequestWaiter: enqueued_at: float deadline_monotonic: float | None = None assigned_lease: RequestAdmissionLease | None = None + wakeup: Callable[[], None] | None = None @dataclass(frozen=True) diff --git a/packages/data-designer-engine/src/data_designer/engine/observability.py b/packages/data-designer-engine/src/data_designer/engine/observability.py index bcb938d4e..aa04e4a4e 100644 --- a/packages/data-designer-engine/src/data_designer/engine/observability.py +++ b/packages/data-designer-engine/src/data_designer/engine/observability.py @@ -42,12 +42,20 @@ def reset(self, token: contextvars.Token) -> None: runtime_correlation_provider = RuntimeCorrelationProvider() SchedulerAdmissionEventKind = Literal[ + "scheduler_job_started", + "scheduler_job_completed", + "scheduler_health_snapshot", "dependency_ready", "ready_enqueued", + "row_group_admitted", + "row_group_admission_blocked", + "row_group_admission_target_changed", + "row_group_checkpointed", "selected", "queue_empty", "admission_blocked", "group_capped", + "request_pressure_advisory_skipped", "task_lease_acquired", "admission_denied", "worker_spawned", diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_completion.py b/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_completion.py index d03cbeabf..e647d4ac6 100644 --- a/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_completion.py +++ b/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_completion.py @@ -15,6 +15,7 @@ ) from data_designer.config.sampler_params import SamplerType from data_designer.engine.dataset_builders.scheduling.completion import CompletionTracker +from data_designer.engine.dataset_builders.scheduling.resources import stable_task_id from data_designer.engine.dataset_builders.scheduling.task_model import SliceRef, Task from data_designer.engine.dataset_builders.utils.execution_graph import ExecutionGraph @@ -192,6 +193,15 @@ def test_get_ready_tasks_seed_frontier(ready_ctx: ReadyTasksFixture) -> None: assert ready[0].task_type == "from_scratch" +def test_mark_enqueued_uses_scheduler_stable_task_id(ready_ctx: ReadyTasksFixture) -> None: + ready_ctx.tracker.seed_frontier() + task = ready_ctx.tracker.ready_frontier()[0] + + ready_ctx.tracker.mark_enqueued({stable_task_id(task)}) + + assert ready_ctx.tracker.ready_frontier() == () + + def test_get_ready_tasks_after_seed_complete(ready_ctx: ReadyTasksFixture) -> None: delta = ready_ctx.tracker.mark_row_range_complete("topic", 0, 3) @@ -205,6 +215,53 @@ def test_get_ready_tasks_after_seed_complete(ready_ctx: ReadyTasksFixture) -> No assert delta.removed == () +def test_fan_out_cell_completion_readies_all_children_for_same_row() -> None: + configs = [ + SamplerColumnConfig(name="topic", sampler_type=SamplerType.CATEGORY, params={"values": ["A"]}), + LLMTextColumnConfig(name="heavy", prompt="{{ topic }}", model_alias=MODEL_ALIAS), + LLMTextColumnConfig(name="child_a", prompt="{{ heavy }}", model_alias=MODEL_ALIAS), + LLMTextColumnConfig(name="child_b", prompt="{{ heavy }}", model_alias=MODEL_ALIAS), + LLMTextColumnConfig(name="child_c", prompt="{{ heavy }}", model_alias=MODEL_ALIAS), + ] + strategies = {config.name: GenerationStrategy.CELL_BY_CELL for config in configs[1:]} + strategies["topic"] = GenerationStrategy.FULL_COLUMN + graph = ExecutionGraph.create(configs, strategies) + tracker = CompletionTracker.with_graph(graph, [(0, 2)]) + tracker.mark_row_range_complete("topic", 0, 2) + + delta = tracker.mark_cell_complete("heavy", 0, 0) + + assert {task.column for task in delta.added} == {"child_a", "child_b", "child_c"} + assert {task.row_index for task in delta.added} == {0} + ready = tracker.get_ready_tasks(set()) + assert not any(task.column.startswith("child_") and task.row_index == 1 for task in ready) + + +def test_fan_in_cell_downstream_waits_for_all_same_row_upstreams() -> None: + configs = [ + SamplerColumnConfig(name="topic", sampler_type=SamplerType.CATEGORY, params={"values": ["A"]}), + LLMTextColumnConfig(name="up_a", prompt="{{ topic }}", model_alias=MODEL_ALIAS), + LLMTextColumnConfig(name="up_b", prompt="{{ topic }}", model_alias=MODEL_ALIAS), + LLMTextColumnConfig(name="up_c", prompt="{{ topic }}", model_alias=MODEL_ALIAS), + LLMTextColumnConfig(name="judge", prompt="{{ up_a }} {{ up_b }} {{ up_c }}", model_alias=MODEL_ALIAS), + ] + strategies = {config.name: GenerationStrategy.CELL_BY_CELL for config in configs[1:]} + strategies["topic"] = GenerationStrategy.FULL_COLUMN + graph = ExecutionGraph.create(configs, strategies) + tracker = CompletionTracker.with_graph(graph, [(0, 2)]) + tracker.mark_row_range_complete("topic", 0, 2) + + first_delta = tracker.mark_cell_complete("up_a", 0, 0) + second_delta = tracker.mark_cell_complete("up_b", 0, 0) + final_delta = tracker.mark_cell_complete("up_c", 0, 0) + + assert not any(task.column == "judge" for task in first_delta.added) + assert not any(task.column == "judge" for task in second_delta.added) + assert final_delta.added == (Task(column="judge", row_group=0, row_index=0, task_type="cell"),) + ready = tracker.get_ready_tasks(set()) + assert not any(task.column == "judge" and task.row_index == 1 for task in ready) + + def test_get_ready_tasks_skips_dispatched(ready_ctx: ReadyTasksFixture) -> None: ready_ctx.tracker.mark_row_range_complete("topic", 0, 3) diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_task_admission.py b/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_task_admission.py index b8c6acfb1..e1b6382a4 100644 --- a/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_task_admission.py +++ b/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_task_admission.py @@ -21,14 +21,20 @@ from data_designer.engine.dataset_builders.scheduling.task_policies import BoundedBorrowTaskAdmissionPolicyConfig -def _item(column: str, row: int = 0, *, group: TaskGroupSpec | None = None) -> SchedulableTask: +def _item( + column: str, + row: int = 0, + *, + group: TaskGroupSpec | None = None, + resources: dict[str, int] | None = None, +) -> SchedulableTask: task = Task(column=column, row_group=0, row_index=row, task_type="cell") group = group or TaskGroupSpec(TaskGroupKey(kind="local", identity=(column,))) return SchedulableTask( task_id=stable_task_id(task), payload=task, group=group, - resource_request=SchedulerResourceRequest({"submission": 1}), + resource_request=SchedulerResourceRequest(resources or {"submission": 1}), ) @@ -94,6 +100,59 @@ def test_task_admission_group_cap_yields_to_peer_pressure() -> None: assert decision.reason == "group_cap" +def test_task_admission_group_cap_ignores_non_overlapping_typed_peer_resource() -> None: + group = TaskGroupSpec(TaskGroupKey(kind="model", identity=("provider", "model")), admitted_limit=1) + controller = TaskAdmissionController( + TaskAdmissionConfig(submission_capacity=3, resource_limits={"llm_wait": 3, "local": 3}) + ) + first = _item("a", 0, group=group, resources={"submission": 1, "llm_wait": 1}) + second = _item("a", 1, group=group, resources={"submission": 1, "llm_wait": 1}) + local_peer = _item("b", resources={"submission": 1, "local": 1}) + lease = controller.try_acquire(first, _queue_view(first, second, local_peer)) + assert isinstance(lease, TaskAdmissionLease) + + decision = controller.try_acquire(second, _queue_view(second, local_peer)) + + assert isinstance(decision, TaskAdmissionLease) + + +def test_task_admission_group_cap_applies_to_overlapping_typed_peer_resource() -> None: + group = TaskGroupSpec(TaskGroupKey(kind="model", identity=("provider", "model")), admitted_limit=1) + peer_group = TaskGroupSpec(TaskGroupKey(kind="model", identity=("provider", "peer")), admitted_limit=1) + controller = TaskAdmissionController(TaskAdmissionConfig(submission_capacity=3, resource_limits={"llm_wait": 3})) + first = _item("a", 0, group=group, resources={"submission": 1, "llm_wait": 1}) + second = _item("a", 1, group=group, resources={"submission": 1, "llm_wait": 1}) + peer = _item("b", group=peer_group, resources={"submission": 1, "llm_wait": 1}) + lease = controller.try_acquire(first, _queue_view(first, second, peer)) + assert isinstance(lease, TaskAdmissionLease) + + decision = controller.try_acquire(second, _queue_view(second, peer)) + + assert isinstance(decision, TaskAdmissionDenied) + assert decision.reason == "group_cap" + assert decision.diagnostics["pressure_resources"] == ("llm_wait",) + + +def test_task_admission_group_cap_ignores_peer_blocked_by_hard_resource_capacity() -> None: + group = TaskGroupSpec(TaskGroupKey(kind="model", identity=("provider", "model")), admitted_limit=1) + peer_group = TaskGroupSpec(TaskGroupKey(kind="model", identity=("provider", "peer")), admitted_limit=1) + controller = TaskAdmissionController( + TaskAdmissionConfig(submission_capacity=4, resource_limits={"llm_wait": 3, "local": 1}) + ) + first = _item("a", 0, group=group, resources={"submission": 1, "llm_wait": 1}) + second = _item("a", 1, group=group, resources={"submission": 1, "llm_wait": 1}) + local_holder = _item("local-holder", resources={"submission": 1, "local": 1}) + blocked_peer = _item("b", group=peer_group, resources={"submission": 1, "llm_wait": 1, "local": 1}) + first_lease = controller.try_acquire(first, _queue_view(first, second, blocked_peer)) + local_lease = controller.try_acquire(local_holder, _queue_view(local_holder, blocked_peer)) + assert isinstance(first_lease, TaskAdmissionLease) + assert isinstance(local_lease, TaskAdmissionLease) + + decision = controller.try_acquire(second, _queue_view(second, blocked_peer)) + + assert isinstance(decision, TaskAdmissionLease) + + def test_explain_blocked_reports_group_cap_denials() -> None: first_group = TaskGroupSpec(TaskGroupKey(kind="model", identity=("provider", "first")), admitted_limit=1) second_group = TaskGroupSpec(TaskGroupKey(kind="model", identity=("provider", "second")), admitted_limit=1) @@ -174,3 +233,25 @@ def test_bounded_borrow_debt_blocks_under_peer_pressure_and_releases() -> None: assert denied.reason == "borrow_debt" controller.release(borrowed) assert (group.key, "submission") not in controller.view().policy_debt_by_group_resource + + +def test_bounded_borrow_release_repayment_is_group_level() -> None: + group = TaskGroupSpec(TaskGroupKey(kind="model", identity=("provider", "model")), admitted_limit=1) + controller = TaskAdmissionController( + TaskAdmissionConfig( + submission_capacity=3, + bounded_borrow=BoundedBorrowTaskAdmissionPolicyConfig(default_borrow_ceiling=1), + ) + ) + first = _item("a", 0, group=group) + borrowed_item = _item("a", 1, group=group) + first_lease = controller.try_acquire(first, _queue_view(first, borrowed_item)) + borrowed = controller.try_acquire(borrowed_item, _queue_view(borrowed_item)) + assert isinstance(first_lease, TaskAdmissionLease) + assert isinstance(borrowed, TaskAdmissionLease) + assert controller.view().policy_debt_by_group_resource[(group.key, "submission")] == 1 + + controller.release(first_lease) + + assert (group.key, "submission") not in controller.view().policy_debt_by_group_resource + controller.release(borrowed) diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py b/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py index ebc1b0d4f..a3fe5f902 100644 --- a/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py +++ b/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py @@ -4,6 +4,8 @@ from __future__ import annotations import asyncio +import logging +import time from collections.abc import Callable from types import SimpleNamespace from typing import Any @@ -44,6 +46,9 @@ ModelRateLimitError, ModelTimeoutError, ) +from data_designer.engine.models.request_admission.pressure import RequestPressureSnapshot +from data_designer.engine.models.request_admission.resources import RequestDomain, RequestResourceKey +from data_designer.engine.models.resources import ProviderModelKey from data_designer.engine.observability import InMemoryAdmissionEventSink from data_designer.engine.resources.resource_provider import ResourceProvider @@ -175,6 +180,17 @@ def generate(self, data: dict) -> dict: return data +class MockBuggyGenerator(ColumnGenerator[ExpressionColumnConfig]): + """Generator that simulates an internal scheduler/generator bug.""" + + @staticmethod + def get_generation_strategy() -> GenerationStrategy: + return GenerationStrategy.CELL_BY_CELL + + def generate(self, _data: dict) -> dict: + raise KeyError("missing internal key") + + class MockRateLimitGenerator(ColumnGenerator[ExpressionColumnConfig]): """Generator that fails with rate-limit errors before succeeding. @@ -282,6 +298,11 @@ def generate(self, data: dict) -> dict: return data +class _BrokenSchedulerSink: + def emit_scheduler_event(self, _event: object) -> None: + raise RuntimeError("sink boom") + + # -- Helper to build graph + scheduler ---------------------------------------- @@ -292,6 +313,7 @@ def _build_simple_pipeline( generators: dict[str, ColumnGenerator] | None = None, configs: list[SamplerColumnConfig | LLMTextColumnConfig | ExpressionColumnConfig] | None = None, strategies: dict[str, GenerationStrategy] | None = None, + scheduler_event_sink: Any | None = None, ) -> tuple[AsyncTaskScheduler, CompletionTracker]: """Build a simple seed → cell pipeline for testing.""" if configs is None: @@ -330,6 +352,7 @@ def _build_simple_pipeline( tracker=tracker, row_groups=row_groups, trace=trace, + scheduler_event_sink=scheduler_event_sink, ) return scheduler, tracker @@ -522,6 +545,56 @@ async def test_scheduler_non_retryable_failure_drops_row() -> None: assert tracker.is_row_group_complete(0, 2, ["seed", "fail_col"]) +@pytest.mark.asyncio(loop_scope="session") +async def test_scheduler_internal_bug_failure_aborts_instead_of_dropping_row( + caplog: pytest.LogCaptureFixture, +) -> None: + provider = _mock_provider() + configs = [ + SamplerColumnConfig(name="seed", sampler_type=SamplerType.CATEGORY, params={"values": ["A"]}), + LLMTextColumnConfig(name="buggy_col", prompt="{{ seed }}", model_alias=MODEL_ALIAS), + ] + strategies = { + "seed": GenerationStrategy.FULL_COLUMN, + "buggy_col": GenerationStrategy.CELL_BY_CELL, + } + generators = { + "seed": MockSeedGenerator(config=_expr_config("seed"), resource_provider=provider), + "buggy_col": MockBuggyGenerator(config=_expr_config("buggy_col"), resource_provider=provider), + } + graph = ExecutionGraph.create(configs, strategies) + tracker = CompletionTracker.with_graph(graph, [(0, 1)]) + scheduler = AsyncTaskScheduler( + generators=generators, + graph=graph, + tracker=tracker, + row_groups=[(0, 1)], + ) + + with caplog.at_level(logging.ERROR, logger="data_designer.engine.dataset_builders.async_scheduler"): + with pytest.raises(DatasetGenerationError, match="Unexpected internal task failure") as exc_info: + await scheduler.run() + + assert isinstance(exc_info.value.__cause__, KeyError) + assert not tracker.is_dropped(0, 0) + error_records = [ + record for record in caplog.records if "Unexpected fatal Non-retryable failure" in record.getMessage() + ] + assert error_records + assert error_records[0].exc_info is not None + + +@pytest.mark.asyncio(loop_scope="session") +async def test_scheduler_logs_sink_failures(caplog: pytest.LogCaptureFixture) -> None: + caplog.set_level(logging.WARNING, logger="data_designer.engine.dataset_builders.async_scheduler") + scheduler, tracker = _build_simple_pipeline(num_records=1, scheduler_event_sink=_BrokenSchedulerSink()) + + await scheduler.run() + + assert tracker.is_row_group_complete(0, 1, ["seed", "cell_out"]) + assert "Scheduler admission event sink raised; dropping event." in caplog.text + + @pytest.mark.asyncio(loop_scope="session") async def test_scheduler_stateful_generator_serializes() -> None: """Stateful generators serialize across row groups.""" @@ -1733,6 +1806,97 @@ def drop_middle_row(row_group: int, row_group_size: int) -> FrontierDelta: assert tracker.is_row_group_complete(0, 3, ["seed", "cell_out"]) +def test_apply_frontier_delta_enqueues_ready_tasks_in_one_queue_operation(monkeypatch: pytest.MonkeyPatch) -> None: + provider = _mock_provider() + configs = [ + LLMTextColumnConfig(name="root", prompt="root", model_alias=MODEL_ALIAS), + ] + strategies = { + "root": GenerationStrategy.CELL_BY_CELL, + } + generators = { + "root": MockCellGenerator(config=_expr_config("root"), resource_provider=provider), + } + graph = ExecutionGraph.create(configs, strategies) + row_groups = [(0, 5)] + tracker = CompletionTracker.with_graph(graph, row_groups) + scheduler = AsyncTaskScheduler( + generators=generators, + graph=graph, + tracker=tracker, + row_groups=row_groups, + ) + scheduler._rg_states[0] = SimpleNamespace(size=5, pre_batch_done=True) + + enqueue_sizes: list[int] = [] + original_enqueue = scheduler._fair_queue.enqueue + + def spy_enqueue(items: Any) -> tuple[str, ...]: + materialized = tuple(items) + enqueue_sizes.append(len(materialized)) + return original_enqueue(materialized) + + monkeypatch.setattr(scheduler._fair_queue, "enqueue", spy_enqueue) + + scheduler._apply_frontier_delta(tracker.add_root_tasks(0, 5)) + + assert enqueue_sizes == [5] + assert tracker.ready_frontier() == () + assert scheduler._fair_queue.view().queued_total == 5 + + +def test_pre_batch_flush_batches_pending_ready_and_skips_dropped_rows(monkeypatch: pytest.MonkeyPatch) -> None: + provider = _mock_provider() + configs = [ + SamplerColumnConfig(name="seed", sampler_type=SamplerType.CATEGORY, params={"values": ["A"]}), + LLMTextColumnConfig(name="cell_out", prompt="{{ seed }}", model_alias=MODEL_ALIAS), + ] + strategies = { + "seed": GenerationStrategy.FULL_COLUMN, + "cell_out": GenerationStrategy.CELL_BY_CELL, + } + generators = { + "seed": MockSeedGenerator(config=_expr_config("seed"), resource_provider=provider), + "cell_out": MockCellGenerator(config=_expr_config("cell_out"), resource_provider=provider), + } + graph = ExecutionGraph.create(configs, strategies) + row_groups = [(0, 3)] + tracker = CompletionTracker.with_graph(graph, row_groups) + sink = InMemoryAdmissionEventSink() + scheduler = AsyncTaskScheduler( + generators=generators, + graph=graph, + tracker=tracker, + row_groups=row_groups, + on_seeds_complete=lambda row_group, row_group_size: None, + scheduler_event_sink=sink, + ) + state = SimpleNamespace(size=3, pre_batch_done=False) + scheduler._rg_states[0] = state + + enqueue_sizes: list[int] = [] + original_enqueue = scheduler._fair_queue.enqueue + + def spy_enqueue(items: Any) -> tuple[str, ...]: + materialized = tuple(items) + enqueue_sizes.append(len(materialized)) + return original_enqueue(materialized) + + monkeypatch.setattr(scheduler._fair_queue, "enqueue", spy_enqueue) + + scheduler._apply_frontier_delta(tracker.mark_row_range_complete("seed", 0, 3)) + scheduler._apply_frontier_delta(tracker.drop_row(0, 1)) + state.pre_batch_done = True + scheduler._flush_pre_batch_ready(0) + + assert enqueue_sizes == [2] + assert scheduler._fair_queue.view().queued_total == 2 + assert {item.payload.row_index for item in scheduler._fair_queue._queued.values()} == {0, 2} + assert tracker.is_dropped(0, 1) + assert sum(event.event_kind == "ready_enqueued" for event in sink.scheduler_events) == 2 + assert sum(event.event_kind == "dependency_ready" for event in sink.scheduler_events) == 5 + + def test_custom_generator_with_model_aliases_reports_custom_model_metadata() -> None: """CustomColumnGenerator with model_aliases reports custom-model metadata.""" @@ -2008,6 +2172,10 @@ async def agenerate(self, data: dict) -> dict: assert snapshot.resources_available["submission"] == max_submitted assert snapshot.resources_available["llm_wait"] == max_llm_wait assert "cancelled" in [event.event_kind for event in sink.scheduler_events] + assert all(event.snapshot is not None for event in sink.scheduler_events) + task_events = [event for event in sink.scheduler_events if event.task_id is not None] + assert all("resource_request" in event.diagnostics for event in task_events) + assert any("llm_wait" in event.diagnostics["resource_request"] for event in task_events) @pytest.mark.asyncio(loop_scope="session") @@ -2126,6 +2294,72 @@ def get_scheduling_metadata(self) -> SchedulingMetadata: return SchedulingMetadata.custom_model("test", self.config.name, "v1") +class SlowModelBoundCellGenerator(SlowCellGenerator): + """Slow cell generator with concrete request-pressure identity.""" + + def __init__( + self, + *args: Any, + provider_name: str = "provider", + model_id: str = "model", + **kwargs: Any, + ) -> None: + super().__init__(*args, **kwargs) + self._provider_name = provider_name + self._model_id = model_id + + def get_scheduling_metadata(self) -> SchedulingMetadata: + return SchedulingMetadata.model( + self._provider_name, + self._model_id, + "chat", + weight=1, + ) + + +class _StaticRequestPressureProvider: + def __init__(self, snapshots: dict[RequestResourceKey, RequestPressureSnapshot]) -> None: + self._snapshots = snapshots + + def snapshot(self, resource: RequestResourceKey) -> RequestPressureSnapshot | None: + return self._snapshots.get(resource) + + def snapshots(self) -> dict[RequestResourceKey, RequestPressureSnapshot]: + return dict(self._snapshots) + + def global_snapshot(self, provider: str, model: str) -> None: + return None + + def global_snapshots(self) -> dict[ProviderModelKey, object]: + return {} + + +def _pressure_snapshot( + resource: RequestResourceKey, + *, + current_limit: int = 1, + in_flight: int = 0, + waiters: int = 0, + cooldown: float = 0.0, +) -> RequestPressureSnapshot: + return RequestPressureSnapshot( + captured_at=time.monotonic(), + sequence=1, + resource=resource, + effective_max=max(1, current_limit), + current_limit=current_limit, + in_flight_count=in_flight, + active_lease_count=in_flight, + waiters=waiters, + blocked_until_monotonic=time.monotonic() + cooldown if cooldown > 0.0 else None, + cooldown_remaining_seconds=cooldown, + rate_limit_ceiling=max(1, current_limit), + consecutive_rate_limits=0, + last_outcome=None, + leak_diagnostics={}, + ) + + @pytest.mark.asyncio(loop_scope="session") async def test_scheduler_fair_admission_across_ready_columns() -> None: """A large ready frontier is admitted across columns instead of one column at a time.""" @@ -2368,6 +2602,334 @@ async def test_scheduler_downstream_interleaves_with_upstream() -> None: ) +@pytest.mark.asyncio(loop_scope="session") +async def test_scheduler_capacity_plan_observes_buffer_backpressure() -> None: + provider = _mock_provider() + gen_names = ["gen_a", "gen_b", "gen_c"] + configs = [ + SamplerColumnConfig(name="topic", sampler_type=SamplerType.CATEGORY, params={"values": ["A"]}), + *[LLMTextColumnConfig(name=g, prompt="{{ topic }}", model_alias=MODEL_ALIAS) for g in gen_names], + ] + strategies: dict[str, GenerationStrategy] = {"topic": GenerationStrategy.FULL_COLUMN} + strategies.update({column: GenerationStrategy.CELL_BY_CELL for column in gen_names}) + generators: dict[str, ColumnGenerator] = { + "topic": MockSeedGenerator(config=_expr_config("topic"), resource_provider=provider), + **{ + name: SlowCellGenerator(config=_expr_config(name), resource_provider=provider, delay=0.02) + for name in gen_names + }, + } + graph = ExecutionGraph.create(configs, strategies) + row_groups = [(0, 3), (1, 3), (2, 3), (3, 3)] + tracker = CompletionTracker.with_graph(graph, row_groups) + scheduler = AsyncTaskScheduler( + generators=generators, + graph=graph, + tracker=tracker, + row_groups=row_groups, + max_concurrent_row_groups=2, + max_submitted_tasks=2, + trace=True, + num_records=12, + buffer_size=3, + ) + + await asyncio.wait_for(scheduler.run(), timeout=10.0) + + plan = scheduler.capacity_plan() + for row_group_index, row_count in row_groups: + assert tracker.is_row_group_complete(row_group_index, row_count, ["topic", *gen_names]) + assert plan.configured.row_group_admission.observed_in_flight == 0 + assert plan.observed_maxima.row_groups_in_flight == 2 + assert plan.observed_maxima.queued_tasks_by_group + assert max(plan.observed_maxima.task_leases_by_resource.values()) <= 2 + + +@pytest.mark.asyncio(loop_scope="session") +async def test_scheduler_emits_job_health_and_row_group_telemetry() -> None: + provider = _mock_provider() + configs = [ + SamplerColumnConfig(name="topic", sampler_type=SamplerType.CATEGORY, params={"values": ["A"]}), + LLMTextColumnConfig(name="model_col", prompt="{{ topic }}", model_alias=MODEL_ALIAS), + ] + strategies = { + "topic": GenerationStrategy.FULL_COLUMN, + "model_col": GenerationStrategy.CELL_BY_CELL, + } + row_groups = [(0, 2)] + graph = ExecutionGraph.create(configs, strategies) + tracker = CompletionTracker.with_graph(graph, row_groups) + sink = InMemoryAdmissionEventSink() + scheduler = AsyncTaskScheduler( + generators={ + "topic": MockSeedGenerator(config=_expr_config("topic"), resource_provider=provider), + "model_col": SlowLLMBoundCellGenerator( + config=_expr_config("model_col"), + resource_provider=provider, + delay=0.0, + ), + }, + graph=graph, + tracker=tracker, + row_groups=row_groups, + max_concurrent_row_groups=1, + max_submitted_tasks=2, + max_model_task_admission=1, + scheduler_event_sink=sink, + num_records=2, + buffer_size=2, + ) + + await asyncio.wait_for(scheduler.run(), timeout=10.0) + + kinds = [event.event_kind for event in sink.scheduler_events] + assert "scheduler_job_started" in kinds + assert "scheduler_health_snapshot" in kinds + assert "row_group_checkpointed" in kinds + assert "scheduler_job_completed" in kinds + + started = next(event for event in sink.scheduler_events if event.event_kind == "scheduler_job_started") + assert started.diagnostics["num_records"] == 2 + assert started.diagnostics["buffer_size"] == 2 + assert started.diagnostics["row_group_count"] == 1 + assert started.diagnostics["graph_depth"] == 2 + column_scheduling = started.diagnostics["column_scheduling"] + assert isinstance(column_scheduling, tuple) + model_column = next(item for item in column_scheduling if item["column"] == "model_col") + assert model_column["group_kind"] == "custom_model" + assert model_column["resource_request"] == {"submission": 1, "llm_wait": 1} + + health = next(event for event in sink.scheduler_events if event.event_kind == "scheduler_health_snapshot") + assert "queued_total" in health.diagnostics + assert "leased_resources" in health.diagnostics + assert "request_pressure" in health.diagnostics + + checkpointed = next(event for event in sink.scheduler_events if event.event_kind == "row_group_checkpointed") + assert checkpointed.diagnostics["row_group"] == 0 + assert checkpointed.diagnostics["row_group_size"] == 2 + assert checkpointed.diagnostics["surviving_rows"] == 2 + + +@pytest.mark.asyncio(loop_scope="session") +async def test_scheduler_adaptive_row_group_admission_expands_target_for_horizon_idle() -> None: + provider = _mock_provider() + configs = [ + SamplerColumnConfig(name="topic", sampler_type=SamplerType.CATEGORY, params={"values": ["A"]}), + LLMTextColumnConfig(name="model_col", prompt="{{ topic }}", model_alias=MODEL_ALIAS), + ] + strategies = { + "topic": GenerationStrategy.FULL_COLUMN, + "model_col": GenerationStrategy.CELL_BY_CELL, + } + row_groups = [(0, 1), (1, 1), (2, 1), (3, 1)] + generators: dict[str, ColumnGenerator] = { + "topic": MockSeedGenerator(config=_expr_config("topic"), resource_provider=provider), + "model_col": SlowLLMBoundCellGenerator( + config=_expr_config("model_col"), + resource_provider=provider, + delay=0.04, + ), + } + graph = ExecutionGraph.create(configs, strategies) + tracker = CompletionTracker.with_graph(graph, row_groups) + sink = InMemoryAdmissionEventSink() + scheduler = AsyncTaskScheduler( + generators=generators, + graph=graph, + tracker=tracker, + row_groups=row_groups, + max_concurrent_row_groups=4, + max_submitted_tasks=4, + max_model_task_admission=4, + adaptive_row_group_admission=True, + adaptive_row_group_initial_target=1, + scheduler_event_sink=sink, + trace=True, + num_records=4, + buffer_size=1, + ) + + await asyncio.wait_for(scheduler.run(), timeout=10.0) + + plan = scheduler.capacity_plan() + assert tracker.is_row_group_complete(0, 1, ["topic", "model_col"]) + assert plan.configured.row_group_admission.mode == "adaptive" + assert plan.configured.row_group_admission.observed_max_target is not None + assert plan.configured.row_group_admission.observed_max_target > 1 + assert plan.observed_maxima.row_groups_in_flight > 1 + assert any(event.event_kind == "row_group_admission_target_changed" for event in sink.scheduler_events) + + +def test_scheduler_adaptive_row_group_row_guard_blocks_extra_large_groups() -> None: + provider = _mock_provider() + configs = [ + SamplerColumnConfig(name="topic", sampler_type=SamplerType.CATEGORY, params={"values": ["A"]}), + LLMTextColumnConfig(name="model_col", prompt="{{ topic }}", model_alias=MODEL_ALIAS), + ] + strategies = { + "topic": GenerationStrategy.FULL_COLUMN, + "model_col": GenerationStrategy.CELL_BY_CELL, + } + row_groups = [(0, 5_000), (1, 5_000)] + graph = ExecutionGraph.create(configs, strategies) + scheduler = AsyncTaskScheduler( + generators={ + "topic": MockSeedGenerator(config=_expr_config("topic"), resource_provider=provider), + "model_col": SlowLLMBoundCellGenerator( + config=_expr_config("model_col"), + resource_provider=provider, + delay=0.0, + ), + }, + graph=graph, + tracker=CompletionTracker.with_graph(graph, row_groups), + row_groups=row_groups, + max_concurrent_row_groups=4, + adaptive_row_group_admission=True, + adaptive_row_group_initial_target=4, + num_records=10_000, + buffer_size=1, + ) + + scheduler._rg_states[0] = SimpleNamespace(size=5_000) + + assert scheduler._adaptive_max_admitted_rows == 8_192 + assert not scheduler._row_group_row_guard_allows(5_000) + assert scheduler._row_group_row_guard_allows(1_000) + scheduler._rg_states.clear() + assert scheduler._row_group_row_guard_allows(9_000) + + +@pytest.mark.asyncio(loop_scope="session") +async def test_scheduler_raises_when_ready_frontier_blocked_without_in_flight() -> None: + provider = _mock_provider() + configs = [ + SamplerColumnConfig(name="topic", sampler_type=SamplerType.CATEGORY, params={"values": ["A"]}), + LLMTextColumnConfig(name="model_col", prompt="{{ topic }}", model_alias=MODEL_ALIAS), + ] + strategies = { + "topic": GenerationStrategy.FULL_COLUMN, + "model_col": GenerationStrategy.CELL_BY_CELL, + } + row_groups = [(0, 1)] + graph = ExecutionGraph.create(configs, strategies) + scheduler = AsyncTaskScheduler( + generators={ + "topic": MockSeedGenerator(config=_expr_config("topic"), resource_provider=provider), + "model_col": SlowLLMBoundCellGenerator( + config=_expr_config("model_col"), + resource_provider=provider, + delay=0.0, + ), + }, + graph=graph, + tracker=CompletionTracker.with_graph(graph, row_groups), + row_groups=row_groups, + task_admission_config=TaskAdmissionConfig( + submission_capacity=1, + resource_limits={"submission": 1, "local": 1}, + ), + ) + + with pytest.raises(RuntimeError, match="Ready frontier is admission-blocked"): + await asyncio.wait_for(scheduler.run(), timeout=2.0) + + +def test_scheduler_request_pressure_advisory_prefers_pressure_open_peer() -> None: + provider = _mock_provider() + configs = [ + LLMTextColumnConfig(name="pressured", prompt="A", model_alias=MODEL_ALIAS), + LLMTextColumnConfig(name="open", prompt="B", model_alias=MODEL_ALIAS), + ] + strategies = { + "pressured": GenerationStrategy.CELL_BY_CELL, + "open": GenerationStrategy.CELL_BY_CELL, + } + generators: dict[str, ColumnGenerator] = { + "pressured": SlowModelBoundCellGenerator( + config=_expr_config("pressured"), + resource_provider=provider, + provider_name="provider-a", + model_id="model-a", + ), + "open": SlowModelBoundCellGenerator( + config=_expr_config("open"), + resource_provider=provider, + provider_name="provider-b", + model_id="model-b", + ), + } + graph = ExecutionGraph.create(configs, strategies) + tracker = CompletionTracker.with_graph(graph, [(0, 1)]) + pressured_key = RequestResourceKey("provider-a", "model-a", RequestDomain.CHAT) + open_key = RequestResourceKey("provider-b", "model-b", RequestDomain.CHAT) + pressure = _StaticRequestPressureProvider( + { + pressured_key: _pressure_snapshot(pressured_key, current_limit=1, in_flight=1, waiters=1), + open_key: _pressure_snapshot(open_key, current_limit=1, in_flight=0, waiters=0), + } + ) + scheduler = AsyncTaskScheduler( + generators=generators, + graph=graph, + tracker=tracker, + row_groups=[(0, 1)], + request_pressure_provider=pressure, + request_pressure_advisory=True, + scheduler_event_sink=(sink := InMemoryAdmissionEventSink()), + ) + scheduler._rg_states[0] = SimpleNamespace(size=1, pre_batch_done=True) + pressured = scheduler._schedulable_task(Task(column="pressured", row_group=0, row_index=0, task_type="cell")) + open_task = scheduler._schedulable_task(Task(column="open", row_group=0, row_index=0, task_type="cell")) + scheduler._fair_queue.enqueue((pressured, open_task)) + + selection = scheduler._fair_queue.select_next(scheduler._is_dispatch_eligible) + + assert selection is not None + assert selection.item.payload.column == "open" + skip = next(event for event in sink.scheduler_events if event.event_kind == "request_pressure_advisory_skipped") + assert skip.diagnostics["request_resource"] == "provider-a/model-a/chat" + assert skip.diagnostics["pressure_reason"] == "waiters" + assert skip.diagnostics["open_peer_column"] == "open" + assert skip.diagnostics["open_peer_request_resource"] == "provider-b/model-b/chat" + + +def test_scheduler_request_pressure_advisory_preserves_liveness_when_all_candidates_pressured() -> None: + provider = _mock_provider() + configs = [LLMTextColumnConfig(name="pressured", prompt="A", model_alias=MODEL_ALIAS)] + strategies = {"pressured": GenerationStrategy.CELL_BY_CELL} + generators: dict[str, ColumnGenerator] = { + "pressured": SlowModelBoundCellGenerator( + config=_expr_config("pressured"), + resource_provider=provider, + provider_name="provider-a", + model_id="model-a", + ), + } + graph = ExecutionGraph.create(configs, strategies) + tracker = CompletionTracker.with_graph(graph, [(0, 1)]) + pressured_key = RequestResourceKey("provider-a", "model-a", RequestDomain.CHAT) + pressure = _StaticRequestPressureProvider( + {pressured_key: _pressure_snapshot(pressured_key, current_limit=1, in_flight=1, waiters=1)} + ) + scheduler = AsyncTaskScheduler( + generators=generators, + graph=graph, + tracker=tracker, + row_groups=[(0, 1)], + request_pressure_provider=pressure, + request_pressure_advisory=True, + ) + scheduler._rg_states[0] = SimpleNamespace(size=1, pre_batch_done=True) + pressured = scheduler._schedulable_task(Task(column="pressured", row_group=0, row_index=0, task_type="cell")) + scheduler._fair_queue.enqueue((pressured,)) + + selection = scheduler._fair_queue.select_next(scheduler._is_dispatch_eligible) + + assert selection is not None + assert selection.item.payload.column == "pressured" + + # -- Skip / conditional generation tests (async engine) ----------------------- diff --git a/packages/data-designer-engine/tests/engine/models/clients/test_model_request_executor.py b/packages/data-designer-engine/tests/engine/models/clients/test_model_request_executor.py index 67325b7b0..9eb310edd 100644 --- a/packages/data-designer-engine/tests/engine/models/clients/test_model_request_executor.py +++ b/packages/data-designer-engine/tests/engine/models/clients/test_model_request_executor.py @@ -4,6 +4,7 @@ from __future__ import annotations import asyncio +import logging import pytest @@ -68,6 +69,37 @@ async def agenerate_image(self, request: ImageGenerationRequest) -> ImageGenerat return ImageGenerationResponse(images=[ImagePayload("abc")]) +class _BrokenSink: + def emit_request_event(self, _event: object) -> None: + raise RuntimeError("sink boom") + + +class _GatedAsyncClient(_Client): + def __init__(self) -> None: + super().__init__() + self.chat_started = asyncio.Event() + self.embedding_started = asyncio.Event() + self.image_started = asyncio.Event() + self.release_chat = asyncio.Event() + self.release_embedding = asyncio.Event() + self.release_image = asyncio.Event() + + async def acompletion(self, request: ChatCompletionRequest) -> ChatCompletionResponse: + self.chat_started.set() + await self.release_chat.wait() + return ChatCompletionResponse(AssistantMessage(content="chat")) + + async def aembeddings(self, request: EmbeddingRequest) -> EmbeddingResponse: + self.embedding_started.set() + await self.release_embedding.wait() + return EmbeddingResponse(vectors=[[1.0]]) + + async def agenerate_image(self, request: ImageGenerationRequest) -> ImageGenerationResponse: + self.image_started.set() + await self.release_image.wait() + return ImageGenerationResponse(images=[ImagePayload("image")]) + + def _executor() -> tuple[ModelRequestExecutor, AdaptiveRequestAdmissionController, _Client]: controller = AdaptiveRequestAdmissionController() controller.register(provider_name="nvidia", model_id="nemotron", alias="default", max_parallel_requests=1) @@ -138,6 +170,53 @@ def test_model_request_executor_maps_image_chat_domain() -> None: assert any(resource.domain == RequestDomain.CHAT for resource in resources) +@pytest.mark.asyncio(loop_scope="session") +async def test_model_request_executor_shares_provider_model_cap_across_async_domains() -> None: + controller = AdaptiveRequestAdmissionController() + controller.register(provider_name="nvidia", model_id="nemotron", alias="default", max_parallel_requests=1) + client = _GatedAsyncClient() + executor = ModelRequestExecutor(client, controller, "nvidia", "nemotron") + + chat_task = asyncio.create_task(executor.acompletion(ChatCompletionRequest(model="nemotron", messages=[]))) + await asyncio.wait_for(client.chat_started.wait(), timeout=1.0) + embedding_task = asyncio.create_task(executor.aembeddings(EmbeddingRequest(model="nemotron", inputs=["x"]))) + image_task = asyncio.create_task(executor.agenerate_image(ImageGenerationRequest(model="nemotron", prompt="image"))) + await _wait_for_request_waiters(controller, expected=2) + + global_snapshot = controller.pressure.global_snapshot("nvidia", "nemotron") + assert global_snapshot is not None + assert global_snapshot.aggregate_in_flight == 1 + assert not client.embedding_started.is_set() + assert not client.image_started.is_set() + + client.release_chat.set() + await asyncio.wait_for(client.embedding_started.wait(), timeout=1.0) + assert not client.image_started.is_set() + assert (await chat_task).message.content == "chat" + + global_snapshot = controller.pressure.global_snapshot("nvidia", "nemotron") + assert global_snapshot is not None + assert global_snapshot.aggregate_in_flight == 1 + client.release_embedding.set() + await asyncio.wait_for(client.image_started.wait(), timeout=1.0) + assert (await embedding_task).vectors == [[1.0]] + + client.release_image.set() + assert (await image_task).images[0].b64_data == "image" + global_snapshot = controller.pressure.global_snapshot("nvidia", "nemotron") + assert global_snapshot is not None + assert global_snapshot.aggregate_in_flight == 0 + + +async def _wait_for_request_waiters(controller: AdaptiveRequestAdmissionController, *, expected: int) -> None: + for _ in range(50): + waiters = sum(snapshot.waiters for snapshot in controller.pressure.snapshots().values()) + if waiters == expected: + return + await asyncio.sleep(0) + raise AssertionError(f"expected {expected} request waiters") + + def test_model_request_executor_emits_attempt_events_with_correlation_fields() -> None: sink = InMemoryAdmissionEventSink() controller = AdaptiveRequestAdmissionController(event_sink=sink) @@ -154,3 +233,20 @@ def test_model_request_executor_emits_attempt_events_with_correlation_fields() - assert "request_lease_released" in kinds attempts = {event.request_attempt_id for event in sink.request_events if event.request_attempt_id is not None} assert len(attempts) == 1 + assert all(event.request_resource_key is not None for event in sink.request_events) + assert all(event.pressure_snapshot is not None for event in sink.request_events) + attempt_events = [event for event in sink.request_events if event.request_attempt_id is not None] + assert attempt_events + assert all(event.request_group_key is not None for event in attempt_events) + assert all(event.pressure_snapshot.resource == event.request_resource_key for event in attempt_events) + + +def test_model_request_executor_logs_sink_failures(caplog: pytest.LogCaptureFixture) -> None: + caplog.set_level(logging.WARNING, logger="data_designer.engine.models.clients.model_request_executor") + controller = AdaptiveRequestAdmissionController() + controller.register(provider_name="nvidia", model_id="nemotron", alias="default", max_parallel_requests=1) + executor = ModelRequestExecutor(_Client(), controller, "nvidia", "nemotron", event_sink=_BrokenSink()) + + executor.completion(ChatCompletionRequest(model="nemotron", messages=[])) + + assert "Model request event sink raised; dropping event." in caplog.text diff --git a/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py b/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py index 9a743f457..b62237a48 100644 --- a/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py +++ b/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py @@ -4,6 +4,7 @@ from __future__ import annotations import asyncio +import logging import pytest @@ -38,6 +39,11 @@ def _controller(cap: int = 2, config: RequestAdmissionConfig | None = None) -> A return controller +class _BrokenRequestSink: + def emit_request_event(self, _event: object) -> None: + raise RuntimeError("sink boom") + + def test_request_admission_acquires_and_releases_lease() -> None: controller = _controller(cap=1) item = _item() @@ -148,6 +154,23 @@ def test_request_admission_zero_sync_timeout_is_immediate() -> None: controller.release(lease, RequestReleaseOutcome(kind="success")) +def test_request_admission_logs_sink_failures(caplog: pytest.LogCaptureFixture) -> None: + caplog.set_level(logging.WARNING, logger="data_designer.engine.models.request_admission.controller") + controller = AdaptiveRequestAdmissionController(event_sink=_BrokenRequestSink()) + + controller.register(provider_name="nvidia", model_id="nemotron", alias="default", max_parallel_requests=1) + + assert "Request admission event sink raised; dropping event." in caplog.text + + +@pytest.mark.asyncio(loop_scope="session") +async def test_acquire_sync_rejects_running_event_loop() -> None: + controller = _controller(cap=1) + + with pytest.raises(RuntimeError, match="would block the running event loop"): + controller.acquire_sync(_item()) + + @pytest.mark.asyncio(loop_scope="session") async def test_try_acquire_does_not_bypass_queued_waiter_for_same_provider_model() -> None: controller = _controller(cap=1) @@ -188,6 +211,50 @@ async def test_request_admission_zero_async_timeout_is_immediate() -> None: controller.release(lease, RequestReleaseOutcome(kind="success")) +@pytest.mark.asyncio(loop_scope="session") +async def test_acquire_async_wakes_when_release_assigns_lease(monkeypatch: pytest.MonkeyPatch) -> None: + controller = _controller(cap=1) + monkeypatch.setattr(controller, "_wait_seconds_locked", lambda _item, _now, _deadline: 10.0) + lease = controller.try_acquire(_item(RequestDomain.CHAT)) + assert isinstance(lease, RequestAdmissionLease) + queued = _item(RequestDomain.EMBEDDING, timeout=30.0) + + queued_task = asyncio.create_task(controller.acquire_async(queued)) + for _ in range(20): + snapshot = controller.pressure.snapshot(queued.resource) + if snapshot is not None and snapshot.waiters == 1: + break + await asyncio.sleep(0) + else: + raise AssertionError("async waiter did not enqueue") + + controller.release(lease, RequestReleaseOutcome(kind="success")) + queued_lease = await asyncio.wait_for(queued_task, timeout=0.5) + + controller.release(queued_lease, RequestReleaseOutcome(kind="success")) + + +@pytest.mark.asyncio(loop_scope="session") +async def test_register_wakes_unregistered_async_waiter(monkeypatch: pytest.MonkeyPatch) -> None: + controller = AdaptiveRequestAdmissionController() + monkeypatch.setattr(controller, "_wait_seconds_locked", lambda _item, _now, _deadline: 10.0) + queued = _item(RequestDomain.CHAT, timeout=30.0) + + queued_task = asyncio.create_task(controller.acquire_async(queued)) + for _ in range(20): + snapshot = controller.pressure.snapshot(queued.resource) + if snapshot is not None and snapshot.waiters == 1: + break + await asyncio.sleep(0) + else: + raise AssertionError("async waiter did not enqueue") + + controller.register(provider_name="nvidia", model_id="nemotron", alias="default", max_parallel_requests=1) + queued_lease = await asyncio.wait_for(queued_task, timeout=0.5) + + controller.release(queued_lease, RequestReleaseOutcome(kind="success")) + + @pytest.mark.asyncio(loop_scope="session") async def test_async_cancellation_after_waiter_assignment_releases_lease() -> None: controller = _controller(cap=1) diff --git a/packages/data-designer-engine/tests/engine/test_async_scheduling_benchmark.py b/packages/data-designer-engine/tests/engine/test_async_scheduling_benchmark.py new file mode 100644 index 000000000..595977464 --- /dev/null +++ b/packages/data-designer-engine/tests/engine/test_async_scheduling_benchmark.py @@ -0,0 +1,621 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +import importlib.util +import sys +from pathlib import Path +from types import ModuleType, SimpleNamespace +from typing import Any + +import pytest + + +def _load_benchmark_module() -> ModuleType: + benchmark_path = Path(__file__).resolve().parents[4] / "scripts" / "benchmarks" / "benchmark_async_scheduling.py" + spec = importlib.util.spec_from_file_location("benchmark_async_scheduling", benchmark_path) + assert spec is not None + assert spec.loader is not None + module = importlib.util.module_from_spec(spec) + sys.modules[spec.name] = module + spec.loader.exec_module(module) + return module + + +def _load_idle_regression_module() -> ModuleType: + benchmark_dir = Path(__file__).resolve().parents[4] / "scripts" / "benchmarks" + module_name = "run_async_scheduling_idle_regression" + spec = importlib.util.spec_from_file_location(module_name, benchmark_dir / f"{module_name}.py") + assert spec is not None + assert spec.loader is not None + sys.path.insert(0, str(benchmark_dir)) + try: + module = importlib.util.module_from_spec(spec) + sys.modules[spec.name] = module + spec.loader.exec_module(module) + finally: + sys.path.remove(str(benchmark_dir)) + return module + + +def _capacity_plan() -> SimpleNamespace: + return SimpleNamespace( + observed_maxima=SimpleNamespace( + row_groups_in_flight=1, + queued_tasks_by_group={}, + ) + ) + + +def _valid_artifact(iteration: dict[str, Any]) -> dict[str, Any]: + iteration.setdefault( + "utilization_metrics", + { + "scheduler_resources": { + "submission": { + "capacity_seconds": 1.0, + "busy_capacity_seconds": 0.0, + "idle_capacity_seconds": 1.0, + "starved_idle_seconds": 0.0, + "utilization_ratio": 0.0, + } + }, + "request_resources": {}, + }, + ) + return { + "inputs": SimpleNamespace(task_admission_capacity=2), + "derived_metrics": { + "final_zero_task_leases": True, + "final_zero_request_leases": True, + "final_zero_request_waiters": True, + "p95_async_request_wakeup_seconds": 0.0, + }, + "iterations": [iteration], + } + + +def test_pipeline_metrics_fails_when_downstream_traces_are_missing() -> None: + benchmark = _load_benchmark_module() + traces = [ + { + "column": "heavy_0", + "row_group": 0, + "row_index": 0, + "dispatched_at": 1.0, + "completed_at": 2.0, + } + ] + + metrics = benchmark._pipeline_metrics( + traces, + [], + upstream_cols=["heavy_0"], + downstream_cols=["fast_0"], + submission_capacity=1, + llm_wait_capacity=1, + row_group_concurrency=1, + capacity_plan=_capacity_plan(), + expected_task_count=1, + ) + + assert metrics["upstream_task_count"] == 1 + assert metrics["downstream_task_count"] == 0 + assert metrics["downstream_ready_gap_count"] == 0 + assert not metrics["validation"]["expected_downstream_task_count"] + assert not metrics["validation"]["expected_downstream_ready_gap_count"] + assert not metrics["validation_passed"] + + +def test_benchmark_validation_rejects_early_queue_exit() -> None: + benchmark = _load_benchmark_module() + artifact = _valid_artifact( + { + "accepted_task_count": 2, + "selected_task_count": 1, + "per_layer_observed_maxima": { + "task_leases_by_resource": {}, + "request_in_flight_by_resource": {}, + }, + } + ) + + with pytest.raises(RuntimeError, match="queue drained early"): + benchmark._validate_artifact(artifact) + + +def test_benchmark_validation_rejects_cap_violations() -> None: + benchmark = _load_benchmark_module() + artifact = _valid_artifact( + { + "accepted_task_count": 2, + "selected_task_count": 2, + "per_layer_observed_maxima": { + "task_leases_by_resource": {"submission": 3}, + "request_in_flight_by_resource": {"mock": 2}, + }, + } + ) + + with pytest.raises(RuntimeError, match="exceeded submission task cap"): + benchmark._validate_artifact(artifact) + + +def test_scheduler_utilization_metrics_record_idle_and_starved_capacity() -> None: + benchmark = _load_benchmark_module() + events = [ + _scheduler_event( + "ready_enqueued", + timestamp=0.0, + sequence=1, + task_id="task-a", + leased_resources={}, + resource_request={"submission": 1}, + ), + _scheduler_event( + "task_lease_acquired", + timestamp=1.0, + sequence=2, + task_id="task-a", + leased_resources={"submission": 1}, + resource_request={"submission": 1}, + ), + _scheduler_event( + "task_lease_released", + timestamp=3.0, + sequence=3, + task_id="task-a", + leased_resources={}, + resource_request={"submission": 1}, + ), + ] + + metrics = benchmark._scheduler_utilization_metrics(events)["submission"] + + assert metrics["capacity"] == 2 + assert metrics["busy_capacity_seconds"] == pytest.approx(2.0) + assert metrics["idle_capacity_seconds"] == pytest.approx(4.0) + assert metrics["starved_idle_seconds"] == pytest.approx(2.0) + assert metrics["dependency_horizon_idle_seconds"] == pytest.approx(2.0) + assert metrics["frontier_dependency_horizon_idle_ratio"] == pytest.approx(1 / 3) + assert metrics["utilization_ratio"] == pytest.approx(1 / 3) + assert metrics["scheduler_queue_age_max_seconds"] == pytest.approx(1.0) + assert metrics["ready_to_dispatch_gap_max_seconds"] == pytest.approx(1.0) + assert metrics["ready_to_dispatch_sample_count"] == 1 + + +def test_request_utilization_metrics_record_waiter_starved_idle() -> None: + benchmark = _load_benchmark_module() + events = [ + _request_event("request_wait_started", timestamp=0.0, sequence=1, in_flight=0, waiters=1), + _request_event("request_wait_completed", timestamp=1.0, sequence=2, in_flight=1, waiters=0), + _request_event("request_lease_released", timestamp=3.0, sequence=3, in_flight=0, waiters=0), + ] + + metrics = benchmark._request_utilization_metrics(events)["mock-resource"] + + assert metrics["capacity"] == 2 + assert metrics["busy_capacity_seconds"] == pytest.approx(2.0) + assert metrics["idle_capacity_seconds"] == pytest.approx(4.0) + assert metrics["starved_idle_seconds"] == pytest.approx(2.0) + assert metrics["dependency_horizon_idle_seconds"] == pytest.approx(2.0) + assert metrics["scheduler_queue_age_max_seconds"] == pytest.approx(1.0) + assert metrics["ready_to_dispatch_gap_max_seconds"] == pytest.approx(1.0) + + +def test_benchmark_validation_requires_scheduler_utilization_metrics() -> None: + benchmark = _load_benchmark_module() + artifact = _valid_artifact( + { + "accepted_task_count": 1, + "selected_task_count": 1, + "per_layer_observed_maxima": { + "task_leases_by_resource": {}, + "request_in_flight_by_resource": {}, + }, + "utilization_metrics": {"scheduler_resources": {}, "request_resources": {}}, + } + ) + + with pytest.raises(RuntimeError, match="did not record scheduler utilization metrics"): + benchmark._validate_artifact(artifact) + + +def test_idle_regression_guardrails_pass_for_expected_summary() -> None: + regression = _load_idle_regression_module() + summary = _idle_regression_summary() + + checks = regression.evaluate_idle_regression_summary(summary) + + assert all(check.passed for check in checks if check.severity == "error") + + +def test_idle_regression_detects_validation_failure() -> None: + regression = _load_idle_regression_module() + summary = _idle_regression_summary() + summary["cases"]["row-scale/rows-64"]["validation_passed"] = False + + checks = regression.evaluate_idle_regression_summary(summary) + + assert any(not check.passed and check.name == "row-scale/rows-64 validation" for check in checks) + + +def test_idle_regression_detects_baseline_utilization_drop() -> None: + regression = _load_idle_regression_module() + baseline = _idle_regression_summary(utilization=0.80) + current = _idle_regression_summary(utilization=0.70) + + checks = regression.evaluate_idle_regression_summary(current, baseline_summary=baseline) + + assert any( + not check.passed and check.category == "baseline" and check.name.endswith("utilization regression") + for check in checks + ) + + +def test_idle_regression_detects_bad_idle_partition() -> None: + regression = _load_idle_regression_module() + summary = _idle_regression_summary() + summary["cases"]["row-scale/rows-64"]["llm_wait_frontier_dependency_horizon_idle_ratio"] = 0.99 + + checks = regression.evaluate_idle_regression_summary(summary) + + assert any(not check.passed and check.name == "row-scale/rows-64 idle partition" for check in checks) + + +def test_idle_regression_requires_adaptation_controls() -> None: + regression = _load_idle_regression_module() + summary = _idle_regression_summary() + del summary["cases"]["adaptations/adaptive-row-groups-fixed-high"] + + checks = regression.evaluate_idle_regression_summary(summary) + + assert any( + not check.passed and check.name == "required case adaptations/adaptive-row-groups-fixed-high" + for check in checks + ) + + +def test_idle_regression_detects_bad_adaptive_row_group_response() -> None: + regression = _load_idle_regression_module() + summary = _idle_regression_summary() + adaptive = summary["cases"]["adaptations/adaptive-row-groups-adaptive"] + adaptive["llm_wait_utilization_ratio"] = 0.45 + adaptive["llm_wait_idle_ratio"] = 0.55 + adaptive["llm_wait_starved_idle_ratio"] = 0.10 + adaptive["llm_wait_frontier_dependency_horizon_idle_ratio"] = 0.45 + + checks = regression.evaluate_idle_regression_summary(summary) + + assert any(not check.passed and check.name == "adaptive row-group utilization response" for check in checks) + assert any(not check.passed and check.name == "adaptive row-group fixed-high isolation" for check in checks) + + +def test_idle_regression_detects_request_pressure_control_not_pressured() -> None: + regression = _load_idle_regression_module() + summary = _idle_regression_summary() + control = summary["cases"]["adaptations/request-pressure-control"] + control["first_model_dispatch_column"] = "z_open" + control["request_wait_seconds_while_task_leased_mean"] = 0.0 + + checks = regression.evaluate_idle_regression_summary(summary) + + assert any(not check.passed and check.name == "request-pressure control dispatch choice" for check in checks) + assert any(not check.passed and check.name == "request-pressure control leased wait present" for check in checks) + + +def test_idle_regression_detects_request_pressure_advisory_regression() -> None: + regression = _load_idle_regression_module() + summary = _idle_regression_summary() + summary["cases"]["adaptations/request-pressure-advisory"]["request_wait_seconds_while_task_leased_mean"] = 0.05 + + checks = regression.evaluate_idle_regression_summary(summary) + + assert any(not check.passed and check.name == "request-pressure advisory leased-wait response" for check in checks) + + +def test_idle_regression_detects_combined_adaptive_request_pressure_regression() -> None: + regression = _load_idle_regression_module() + summary = _idle_regression_summary() + combined = summary["cases"]["adaptations/adaptive-request-pressure-combined"] + combined["row_group_admission_observed_max_target"] = 1 + combined["request_pressure_advisory_skip_count"] = 0 + combined["request_idle_ratio"] = 0.70 + + checks = regression.evaluate_idle_regression_summary(summary) + + assert any(not check.passed and check.name == "combined adaptive/request target grew" for check in checks) + assert any( + not check.passed and check.name == "combined adaptive/request advisory skipped pressured work" + for check in checks + ) + assert any(not check.passed and check.name == "combined adaptive/request request-idle response" for check in checks) + + +def test_idle_regression_detects_request_cleanup_failure() -> None: + regression = _load_idle_regression_module() + summary = _idle_regression_summary() + summary["cases"]["adaptations/request-pressure-advisory"]["final_zero_request_waiters"] = False + + checks = regression.evaluate_idle_regression_summary(summary) + + assert any( + not check.passed and check.name == "adaptations/request-pressure-advisory final_zero_request_waiters" + for check in checks + ) + + +def test_benchmark_validation_uses_scenario_task_resource_limits() -> None: + benchmark = _load_benchmark_module() + artifact = _valid_artifact( + { + "accepted_task_count": 2, + "selected_task_count": 2, + "capacity_plan": SimpleNamespace( + configured=SimpleNamespace( + task_resource_limits=SimpleNamespace( + value={"submission": 2, "llm_wait": 2, "local": 2}, + ) + ) + ), + "final_request_snapshot": { + "zero_active_request_leases": True, + "zero_request_waiters": True, + "domains": { + "pressured": SimpleNamespace(effective_max=1, current_limit=1), + }, + }, + "per_layer_observed_maxima": { + "task_leases_by_resource": {"submission": 2, "llm_wait": 2}, + "request_in_flight_by_resource": {"pressured": 1}, + }, + } + ) + + benchmark._validate_artifact(artifact) + + +def _scheduler_event( + event_kind: str, + *, + timestamp: float, + sequence: int, + task_id: str, + leased_resources: dict[str, int], + resource_request: dict[str, int], +) -> SimpleNamespace: + return SimpleNamespace( + event_kind=event_kind, + captured_at_monotonic=timestamp, + sequence=sequence, + task_id=task_id, + diagnostics={"resource_request": resource_request}, + snapshot=SimpleNamespace( + resource_limits={"submission": 2}, + leased_resources=leased_resources, + ), + ) + + +def _idle_regression_summary(*, utilization: float = 0.80) -> dict[str, Any]: + cases = { + "row-scale/rows-64": _idle_regression_case(utilization=utilization, record_count=64, generation_count=512), + "row-scale/rows-256": _idle_regression_case( + utilization=utilization, + record_count=256, + generation_count=2048, + ), + "row-group-concurrency/row-groups-1": _idle_regression_case( + utilization=0.50, + idle=0.50, + starved=0.20, + row_group_concurrency=1, + generation_count=1024, + ), + "row-group-concurrency/row-groups-4": _idle_regression_case( + utilization=utilization, + idle=1.0 - utilization, + starved=0.10, + row_group_concurrency=4, + generation_count=1024, + ), + "buffer-size/buffer-1": _idle_regression_case( + utilization=utilization, + idle=1.0 - utilization, + starved=0.10, + buffer_size=1, + generation_count=4096, + ), + "stress-shape/narrow-frontier-high-cap": _idle_regression_case( + utilization=0.30, + idle=0.70, + starved=0.20, + record_count=1024, + generation_count=2048, + ), + "stress-shape/wide-frontier-high-cap": _idle_regression_case( + utilization=utilization, + idle=1.0 - utilization, + starved=0.10, + record_count=1024, + generation_count=8192, + ), + "custom-model-weight/weight-model-capacity": _idle_regression_case( + utilization=utilization, + idle=1.0 - utilization, + starved=0.10, + generation_count=4096, + ), + "adaptations/adaptive-row-groups-fixed-low": _idle_regression_case( + utilization=0.40, + idle=0.60, + starved=0.10, + record_count=512, + row_group_concurrency=1, + generation_count=1024, + ), + "adaptations/adaptive-row-groups-adaptive": _idle_regression_case( + utilization=0.75, + idle=0.25, + starved=0.08, + record_count=512, + row_group_concurrency=8, + generation_count=1024, + row_group_admission_observed_max_target=4, + ), + "adaptations/adaptive-row-groups-fixed-high": _idle_regression_case( + utilization=0.78, + idle=0.22, + starved=0.08, + record_count=512, + row_group_concurrency=8, + generation_count=1024, + ), + "adaptations/request-pressure-control": _idle_regression_case( + utilization=0.70, + idle=0.30, + starved=0.10, + generation_count=64, + request_utilization=0.50, + request_idle=0.50, + request_starved=0.30, + request_wait_seconds_while_task_leased_mean=0.05, + first_model_dispatch_column="a_pressured", + ), + "adaptations/request-pressure-advisory": _idle_regression_case( + utilization=0.70, + idle=0.30, + starved=0.10, + generation_count=64, + request_utilization=0.60, + request_idle=0.40, + request_starved=0.20, + request_wait_seconds_while_task_leased_mean=0.0, + request_pressure_advisory_enabled=True, + request_pressure_advisory_skip_count=4, + first_model_dispatch_column="z_open", + ), + "adaptations/adaptive-request-pressure-control": _idle_regression_case( + utilization=0.65, + idle=0.35, + starved=0.12, + record_count=512, + row_group_concurrency=8, + generation_count=1024, + request_utilization=0.50, + request_idle=0.50, + request_starved=0.30, + request_wait_seconds_while_task_leased_mean=0.20, + first_model_dispatch_column="a_pressured", + row_group_admission_observed_max_target=4, + ), + "adaptations/adaptive-request-pressure-combined": _idle_regression_case( + utilization=0.70, + idle=0.30, + starved=0.10, + record_count=512, + row_group_concurrency=8, + generation_count=1024, + request_utilization=0.65, + request_idle=0.35, + request_starved=0.20, + request_wait_seconds_while_task_leased_mean=0.05, + request_pressure_advisory_enabled=True, + request_pressure_advisory_skip_count=8, + first_model_dispatch_column="z_open", + row_group_admission_observed_max_target=4, + ), + } + for index in range(3): + cases[f"filler/filler-{index}"] = _idle_regression_case( + utilization=utilization, + idle=1.0 - utilization, + starved=0.10, + ) + return { + "suite_id": "async-scheduling-idle-regression", + "suite_version": "1.1", + "mode": "quick", + "largest_generation_count": 8192, + "cases": cases, + } + + +def _idle_regression_case( + *, + utilization: float, + idle: float | None = None, + starved: float = 0.10, + record_count: int = 512, + generation_count: int = 1024, + row_group_concurrency: int = 4, + buffer_size: int = 64, + request_utilization: float = 0.0, + request_idle: float = 0.0, + request_starved: float = 0.0, + request_wait_seconds_while_task_leased_mean: float = 0.0, + request_pressure_advisory_enabled: bool = False, + request_pressure_advisory_skip_count: int = 0, + first_model_dispatch_column: str | None = None, + row_group_admission_observed_max_target: int | None = None, +) -> dict[str, Any]: + resolved_idle = 1.0 - utilization if idle is None else idle + return { + "case": { + "name": "case", + "sweep": "sweep", + "record_count": record_count, + "buffer_size": buffer_size, + "row_group_concurrency": row_group_concurrency, + "task_admission_capacity": 8, + "fanout_width": 1, + "upstream_latency_seconds": 0.003, + "downstream_latency_seconds": 0.0003, + "scenario": "real-pipeline-overlap", + "request_latency_seconds": 0.0, + "model_stage_weight": 0, + "adaptive_row_group_admission": False, + "request_pressure_advisory": False, + "iterations": 1, + "warmups": 0, + }, + "generation_count": generation_count, + "llm_wait_utilization_ratio": utilization, + "llm_wait_idle_ratio": resolved_idle, + "llm_wait_starved_idle_ratio": starved, + "llm_wait_frontier_dependency_horizon_idle_ratio": max(0.0, resolved_idle - starved), + "llm_wait_scheduler_queue_age_p95_seconds": 0.001, + "request_utilization_ratio": request_utilization, + "request_idle_ratio": request_idle, + "request_starved_idle_ratio": request_starved, + "request_frontier_dependency_horizon_idle_ratio": max(0.0, request_idle - request_starved), + "request_wait_seconds_while_task_leased_mean": request_wait_seconds_while_task_leased_mean, + "request_wait_seconds_while_task_leased_max": request_wait_seconds_while_task_leased_mean, + "request_pressure_advisory_enabled": request_pressure_advisory_enabled, + "request_pressure_advisory_skip_count": request_pressure_advisory_skip_count, + "first_model_dispatch_column": first_model_dispatch_column, + "row_group_admission_observed_max_target": row_group_admission_observed_max_target, + "throughput_generations_per_second": 100.0, + "validation_passed": True, + "final_zero_task_leases": True, + "final_zero_request_leases": True, + "final_zero_request_waiters": True, + } + + +def _request_event( + event_kind: str, *, timestamp: float, sequence: int, in_flight: int, waiters: int +) -> SimpleNamespace: + return SimpleNamespace( + event_kind=event_kind, + captured_at_monotonic=timestamp, + sequence=sequence, + request_attempt_id="request-a", + pressure_snapshot=SimpleNamespace( + resource="mock-resource", + effective_max=2, + in_flight_count=in_flight, + waiters=waiters, + ), + ) diff --git a/reports/async-scheduling-idle-analysis.html b/reports/async-scheduling-idle-analysis.html new file mode 100644 index 000000000..13107060e --- /dev/null +++ b/reports/async-scheduling-idle-analysis.html @@ -0,0 +1,97 @@ + + + + + +Async Scheduling Idle-Time Analysis + + + + + +
    +
    +

    DataDesigner async scheduler

    +

    Idle-Time Analysis

    +

    This report measures where model-capacity idle time appears, which knobs change it, and which remaining idle looks avoidable by scheduler or admission-control changes.

    +
    Benchmark cases21
    Largest synthetic generation count8,192
    Median llm_wait utilization70.5%
    Worst total llm_wait idle91.9%
    Worst starved llm_wait idle40.0%
    Best llm_wait utilization89.4%
    Validationpass
    +
    +
    +

    What Counts As Idle

    +

    General idle is unused configured capacity. It includes expected idle when dependencies are not ready. Starved idle is the actionable subset: a resource has idle slots while the scheduler already has queued work that requests that resource. For this refactor, the most important resource is llm_wait, because it maps to model-serving capacity that should stay busy when runnable model work exists.

    +
    +
    +

    Findings

    +
    • Scale helps once enough runnable work exists. The row-scale sweep moved from 75.2% to 82.0% llm_wait utilization (+6.8 pp). Larger runs amortize startup and drain phases.
    • Runnable frontier width is the main controllable idle source. In the row-group sweep, utilization moved from 16.7% to 89.4% (+72.7 pp), while starved llm_wait idle improved by 8.0% between the narrowest case and the best observed case.
    • Total idle and starved idle diagnose different causes. narrow-frontier-high-cap had 91.9% total llm_wait idle but only 21.1% starved idle. The remaining idle is dependency-horizon idle: the scheduler often had no ready model work because the admitted frontier was too small.
    • Capacity increases expose underfeeding. In the capacity sweep, modeled llm_wait cap 2 reached 85.1% utilization, while cap 8 reached 33.4% with the same small row frontier.
    • Custom model scheduling metadata changes traffic shape. With synthetic custom_model weight forced to 1, llm_wait utilization was 81.9%; with the harness defaulting the weight to modeled model capacity it was 68.6%. This run did not show weight=1 underfeeding because each synthetic column is its own group, but it does show that group identity and weight are first-order benchmark inputs.
    • High capacity magnifies traffic-shape effects. The stress case with one large row group and high cap reached 8.1% utilization; the wide-frontier shape reached 70.5%. This is the vLLM-server-idle failure mode the scheduler needs to expose and track over time.
    • Worst observed actionable idle: rows-256 had 40.0% starved llm_wait idle and 5.57 s max ready-to-dispatch gap.
    +
    +
    +

    Figures

    +
    Scale: more rows smooth the model-resource flowsynthetic model generationsratio0maxllm_wait utilization: 0.7520llm_wait utilization: 0.6753llm_wait utilization: 0.6000llm_wait utilization: 0.7101llm_wait utilization: 0.8196llm_wait utilizationstarved llm_wait idle: 0.2431starved llm_wait idle: 0.3241starved llm_wait idle: 0.3997starved llm_wait idle: 0.2898starved llm_wait idle: 0.1804starved llm_wait idle5121.0k2.0k4.1k8.2k
    +
    Frontier width: row-group concurrency changes starvationrow-group concurrencyratio / seconds0maxllm_wait utilization: 0.1673llm_wait utilization: 0.3001llm_wait utilization: 0.5992llm_wait utilization: 0.8941llm_wait utilizationstarved llm_wait idle: 0.1825starved llm_wait idle: 0.2467starved llm_wait idle: 0.2291starved llm_wait idle: 0.1029starved llm_wait idledownstream ready p95: 0.0012downstream ready p95: 0.0015downstream ready p95: 0.0017downstream ready p95: 0.0056downstream ready p951248
    +
    Buffer size: row-group shape affects traffic wavesbuffer sizeratio / seconds0maxllm_wait utilization: 0.8200llm_wait utilization: 0.7904llm_wait utilization: 0.7766llm_wait utilization: 0.7497llm_wait utilization: 0.7024llm_wait utilizationstarved llm_wait idle: 0.1799starved llm_wait idle: 0.2095starved llm_wait idle: 0.2232starved llm_wait idle: 0.2502starved llm_wait idle: 0.2975starved llm_wait idlellm ready gap p95: 0.0742llm ready gap p95: 0.3464llm ready gap p95: 1.5943llm ready gap p95: 8.9931llm ready gap p95: 21.7638llm ready gap p95141664256
    +
    Capacity scaling: underfeeding becomes visible as cap risesmodeled llm_wait capacityratio / kgen/s0maxllm_wait utilization: 0.8510llm_wait utilization: 0.5724llm_wait utilization: 0.3341llm_wait utilizationstarved llm_wait idle: 0.1476starved llm_wait idle: 0.2481starved llm_wait idle: 0.3016starved llm_wait idlethroughput / 1000: 0.6451throughput / 1000: 0.6935throughput / 1000: 1.0527throughput / 1000248
    +
    Custom-model metadata changes per-stage fairnesscaseratio0maxllm_wait utilization: 0.6855starved llm_wait idle: 0.3144model capllm_wait utilization: 0.8187starved llm_wait idle: 0.1812weight 1llm_wait utilizationstarved llm_wait idle
    +
    Stress shapes: narrow vs wide runnable horizoncaseratio0maxllm_wait utilization: 0.0806total llm_wait idle: 0.9194starved llm_wait idle: 0.2108burstiness / 2: 0.3709narrow frontier high capllm_wait utilization: 0.7049total llm_wait idle: 0.2951starved llm_wait idle: 0.2951burstiness / 2: 0.1964wide frontier high capllm_wait utilizationtotal llm_wait idlestarved llm_wait idleburstiness / 2
    +
    +
    +

    Benchmark Matrix

    +
    casesweepgenerationsrowsbufferrg concllm caputilidlestarved idleready p95overlapthroughputartifact
    buffer-1buffer-size4,09651214482.0%18.0%18.0%74.2 ms100.0%342/sjson
    buffer-16buffer-size4,096512164477.7%22.3%22.3%1.59 s99.9%385/sjson
    buffer-256buffer-size4,0965122564470.2%29.8%29.8%21.76 s99.9%163/sjson
    buffer-4buffer-size4,09651244479.0%21.0%20.9%346.4 ms99.9%450/sjson
    buffer-64buffer-size4,096512644475.0%25.0%25.0%8.99 s99.9%223/sjson
    weight-custom-model-1custom-model-weight4,096512644481.9%18.1%18.1%11.79 s99.9%185/sjson
    weight-model-capacitycustom-model-weight4,096512644468.6%31.4%31.4%8.65 s99.9%236/sjson
    capacity-16llm-capacity1,02451214833.4%66.6%30.2%1.0 ms99.6%1,053/sjson
    capacity-4llm-capacity1,02451214285.1%14.9%14.8%4.6 ms99.8%645/sjson
    capacity-8llm-capacity1,02451214457.2%42.8%24.8%2.5 ms99.7%693/sjson
    row-groups-1row-group-concurrency1,02451211416.7%83.3%18.2%1.1 ms99.9%319/sjson
    row-groups-2row-group-concurrency1,02451212430.0%70.0%24.7%1.4 ms99.8%518/sjson
    row-groups-4row-group-concurrency1,02451214459.9%40.1%22.9%1.4 ms99.6%919/sjson
    row-groups-8row-group-concurrency1,02451218489.4%10.6%10.3%4.5 ms99.6%913/sjson
    rows-1024row-scale8,1921,024644482.0%18.0%18.0%15.99 s100.0%144/sjson
    rows-128row-scale1,024128644467.5%32.5%32.4%1.58 s99.3%567/sjson
    rows-256row-scale2,048256644460.0%40.0%40.0%5.16 s99.7%346/sjson
    rows-512row-scale4,096512644471.0%29.0%29.0%8.58 s99.9%234/sjson
    rows-64row-scale51264644475.2%24.8%24.3%598.8 ms98.8%763/sjson
    narrow-frontier-high-capstress-shape2,0481,0241188.1%91.9%21.1%2.8 ms99.9%169/sjson
    wide-frontier-high-capstress-shape8,1921,0246416870.5%29.5%29.5%70.81 s99.8%98/sjson
    +

    Raw artifacts are under artifacts/async-scheduling-idle-analysis.

    +
    +
    +

    Potential Changes

    +
    1. Add an adaptive row-group admission controller. A subclass or policy layer can watch bottleneck-resource starved idle and admit another row group when model capacity is idle while queued or pending model work remains, bounded by buffer and memory limits. When total idle is high but starved idle is low, the controller should treat that as a frontier problem and prefetch more row groups rather than tuning request AIMD.
    2. Keep resource-aware idle in the standard benchmark output. The new llm_wait utilization, starved idle, burstiness, and ready-gap metrics identify whether a vLLM-like resource is genuinely idle or merely waiting for dependencies.
    3. Document custom-model group identity and weight. SchedulingMetadata.custom_model(...) controls fairness and per-group admission. Plugins that share one external model should use a shared model identity and a weight that reflects real serving capacity; plugins that represent distinct resources should keep distinct identities.
    4. Use the report as a regression suite. The worst case here is rows-256; future scheduler or admission changes should improve that case without increasing ready gaps or violating final zero-lease checks.
    +
    +
    + + diff --git a/reports/async-scheduling-idle-regression.html b/reports/async-scheduling-idle-regression.html new file mode 100644 index 000000000..7fa8cc862 --- /dev/null +++ b/reports/async-scheduling-idle-regression.html @@ -0,0 +1,125 @@ + + + + + +Async Scheduling Idle-Time Analysis + + + + + +
    +
    +

    DataDesigner async scheduler

    +

    Idle-Time Analysis

    +

    This report measures where model-capacity idle time appears, which knobs change it, and which remaining idle looks avoidable by scheduler or admission-control changes.

    +
    Benchmark cases22
    Largest synthetic generation count8,192
    Median llm_wait utilization79.2%
    Worst total llm_wait idle91.1%
    Worst starved llm_wait idle33.7%
    Best llm_wait utilization93.0%
    Validationpass
    +
    +
    +

    What Counts As Idle

    +

    General idle is unused configured capacity. It includes expected idle when dependencies are not ready. Starved idle is the actionable subset: a resource has idle slots while the scheduler already has queued work that requests that resource. Frontier/dependency-horizon idle is total idle minus starved idle: capacity is unused because dependency work has not yet exposed a ready scheduler task. Scheduler queue age measures ready-enqueued to lease-acquired time; downstream ready gap measures dependency-complete to downstream-dispatch time. For this refactor, the most important resource is llm_wait, because it maps to model-serving capacity that should stay busy when runnable model work exists.

    +
    +
    +

    Implementation Improvements

    +
    Classification now explicit5 frontier, 16 queued
    Quick-suite proof gates22 cases, zero validation failures
    Largest refreshed case8,192 generations
    Narrow frontier idle identified75.1%
    Row-groups=1 frontier idle67.8%
    Wide queued starvation age86.97 s

    Idle partition metrics

    Implemented

    The report now splits total idle into queued-work starvation and frontier/dependency-horizon idle. This prevents the narrow high-capacity case from being mistaken for a request-admission problem.

    Evidence: narrow-frontier-high-cap: 75.1% frontier idle, 16.0% starved idle.

    source

    Queue age vs downstream delay

    Implemented

    Ready-to-lease queue age is now shown separately from dependency-complete-to-dispatch delay. This distinguishes scheduler backlog from slow dependency propagation.

    Evidence: rows-256: 5.71 s scheduler queue p95, 13.7 ms downstream p95.

    source

    Batched frontier enqueue

    Implemented

    A frontier delta with many ready tasks now enters the fair queue in one enqueue operation, while pre-batch parking, dropped rows, and per-task observability are preserved.

    Evidence: Focused scheduler tests prove one queue operation for a 5-task frontier and one operation for a pre-batch flush after a dropped row.

    source

    Resource-overlap peer pressure

    Implemented

    Task admission now applies group-cap peer pressure only for queued peers that can use the same typed resource and are hard-resource eligible. Local/submission-only peers no longer create false pressure on idle model capacity.

    Evidence: Unit tests cover non-overlapping peers, overlapping llm_wait peers, and peers blocked by another hard resource.

    source

    Adaptive row-group admission

    Implemented + benchmarked

    The scheduler can now start with one admitted row group, raise the row-group target when model capacity is idle and queued model demand is low, and remain bounded by the configured hard cap.

    Evidence: adaptive-row-groups-fixed-low to adaptive-row-groups-adaptive: utilization +57.2 pp, frontier idle reduction 66.6%, observed target 8.

    source

    Request-pressure advisory

    Implemented + benchmarked

    Task selection can now use request pressure snapshots to prefer an open same-frontier peer before spawning work that would immediately wait on request capacity. It does not yield and reacquire leases inside running generators.

    Evidence: Leased request wait moved from 49.8 ms to 3.2 ms; first dispatch moved from a_pressured to z_open.

    source
    +
    +
    +

    Findings

    +
    • Scale helps once enough runnable work exists. The row-scale sweep moved from 79.6% to 66.2% llm_wait utilization (-13.4 pp). Larger runs amortize startup and drain phases.
    • Runnable frontier width is the main controllable idle source. In the row-group sweep, utilization moved from 17.8% to 58.8% (+41.0 pp), while starved llm_wait idle improved by 0.0% between the narrowest case and the best observed case.
    • Total idle and starved idle diagnose different causes. narrow-frontier-high-cap had 91.1% total llm_wait idle but only 16.0% starved idle. The remaining 75.1% was frontier/dependency-horizon idle: the scheduler often had no ready model work because the admitted frontier was too small.
    • Capacity increases expose underfeeding. In the capacity sweep, modeled llm_wait cap 2 reached 86.8% utilization, while cap 4 reached 54.5% with the same small row frontier.
    • Custom model scheduling metadata changes traffic shape. With synthetic custom_model weight forced to 1, llm_wait utilization was 75.8%; with the harness defaulting the weight to modeled model capacity it was 83.9%. This run did not show weight=1 underfeeding because each synthetic column is its own group, but it does show that group identity and weight are first-order benchmark inputs.
    • High capacity magnifies traffic-shape effects. The stress case with one large row group and high cap reached 8.9% utilization; the wide-frontier shape reached 79.4%. This is the vLLM-server-idle failure mode the scheduler needs to expose and track over time.
    • Worst observed actionable idle: rows-256 had 33.7% starved llm_wait idle and 6.11 s max scheduler queue age.
    +
    +
    +

    Idle Classification Board

    +

    This board is the main analysis surface for optimization work. Frontier/dependency-horizon cases need row-group or scheduling-shard changes; queued-work starvation cases need queue/admission/resource selection changes; request-pressure cases need request-backed evidence before scheduler policy changes.

    casedominant idle classutilstarved idlefrontier idlequeue age p95downstream p95next lever
    stress-shape/narrow-frontier-high-capfrontier/dependency-horizon8.9%16.0%75.1%1.7 ms1.9 msadaptive row-group admission with memory and queue guardrails
    adaptations/adaptive-row-groups-fixed-lowfrontier/dependency-horizon10.5%8.2%81.3%630 us718 usadaptive row-group admission with memory and queue guardrails
    row-group-concurrency/row-groups-1frontier/dependency-horizon17.8%14.5%67.8%747 us867 usadaptive row-group admission with memory and queue guardrails
    row-group-concurrency/row-groups-2frontier/dependency-horizon31.4%23.0%45.6%1.1 ms1.7 msadaptive row-group admission with memory and queue guardrails
    adaptations/adaptive-row-groups-fixed-highfrontier/dependency-horizon62.4%17.3%20.4%2.1 ms2.7 msadaptive row-group admission with memory and queue guardrails
    llm-capacity/capacity-8queued-work starvation54.5%24.6%20.9%2.0 ms3.0 mstask admission/fairness policy and eligible-starved-idle metrics
    row-group-concurrency/row-groups-4queued-work starvation58.8%22.8%18.4%1.4 ms2.0 mstask admission/fairness policy and eligible-starved-idle metrics
    row-scale/rows-256queued-work starvation66.2%33.7%0.1%5.71 s13.7 msresource-aware task admission, candidate selection, or smaller scheduling shards
    adaptations/adaptive-row-groups-adaptivequeued-work starvation67.7%17.6%14.7%1.7 ms3.0 mstask admission/fairness policy and eligible-starved-idle metrics
    custom-model-weight/weight-custom-model-1queued-work starvation75.8%24.2%0.0%10.77 s16.9 msresource-aware task admission, candidate selection, or smaller scheduling shards
    buffer-size/buffer-64queued-work starvation79.0%20.9%0.0%10.66 s12.9 msresource-aware task admission, candidate selection, or smaller scheduling shards
    stress-shape/wide-frontier-high-capqueued-work starvation79.4%20.6%0.0%86.97 s113.8 msresource-aware task admission, candidate selection, or smaller scheduling shards
    row-scale/rows-128queued-work starvation79.5%20.3%0.3%1.60 s9.9 msresource-aware task admission, candidate selection, or smaller scheduling shards
    row-scale/rows-64queued-work starvation79.6%19.4%1.1%541.6 ms7.6 mstask admission/fairness policy and eligible-starved-idle metrics
    buffer-size/buffer-16queued-work starvation80.5%19.4%0.0%3.68 s52.4 msresource-aware task admission, candidate selection, or smaller scheduling shards
    adaptations/adaptive-request-pressure-controlqueued-work starvation82.4%15.7%1.7%3.5 ms0 ustask admission/fairness policy and eligible-starved-idle metrics
    buffer-size/buffer-1queued-work starvation82.6%17.4%0.0%47.4 ms44.7 mstask admission/fairness policy and eligible-starved-idle metrics
    custom-model-weight/weight-model-capacityqueued-work starvation83.9%16.1%0.0%11.60 s13.8 msresource-aware task admission, candidate selection, or smaller scheduling shards
    adaptations/adaptive-request-pressure-combinedqueued-work starvation84.4%14.5%1.1%10.4 ms0 ustask admission/fairness policy and eligible-starved-idle metrics
    adaptations/request-pressure-advisoryqueued-work starvation85.3%13.2%1.4%124.8 ms0 ustask admission/fairness policy and eligible-starved-idle metrics
    llm-capacity/capacity-4queued-work starvation86.8%13.0%0.2%5.5 ms4.6 mstask admission/fairness policy and eligible-starved-idle metrics
    adaptations/request-pressure-controlhealthy/control93.0%5.6%1.4%143.7 ms0 uskeep as control case and watch for regressions
    +
    +
    +

    Adaptation Benchmarks

    +
    Adaptive utilization delta+57.2 pp
    Adaptive frontier-idle reduction66.6%
    Adaptive vs fixed-high+5.3 pp
    Adaptive observed target8
    Request leased-wait reduction46.6 ms
    Advisory first dispatchz_open
    Request queue-age p95 reduction18.9 ms
    Combined leased-wait delta-26.8 ms
    Combined request-idle delta+3.7 pp

    The row-group adaptation is judged against a fixed-low frontier because that is the failure shape where capacity is idle before enough dependency work exists. It should reduce frontier idle or raise utilization while staying below the hard row-group cap. The fixed-high control isolates how close the adaptive policy gets to simply admitting the full hard-cap frontier up front. The fixed-high ceiling reached 62.4% utilization with 20.4% frontier idle.

    The request-pressure adaptation is judged by whether it avoids dispatching the pressured model first and reduces request-wait time while a scheduler task lease is already held. The combined case keeps adaptive row-group admission enabled while request pressure is present, so it measures whether the scheduler can widen the frontier and still avoid sending the first available leases into a saturated model.

    adaptationcaseutilfrontier idleobserved targetleased request waitfirst model dispatch
    adaptive fixed-low controladaptive-row-groups-fixed-low10.5%81.3%1--
    adaptive enabledadaptive-row-groups-adaptive67.7%14.7%8--
    adaptive fixed-high controladaptive-row-groups-fixed-high62.4%20.4%8--
    request controlrequest-pressure-control93.0%1.4%-49.8 msa_pressured
    request advisoryrequest-pressure-advisory85.3%1.4%-3.2 msz_open
    combined controladaptive-request-pressure-control82.4%1.7%5488.3 msa_pressured
    combined enabledadaptive-request-pressure-combined84.4%1.1%5515.1 msz_open
    +
    +
    +

    Figures

    +
    Scale: more rows smooth the model-resource flowsynthetic model generationsratio0maxllm_wait utilization: 0.7955llm_wait utilization: 0.7946llm_wait utilization: 0.6617llm_wait utilizationstarved llm_wait idle: 0.1940starved llm_wait idle: 0.2026starved llm_wait idle: 0.3374starved llm_wait idle5121.0k2.0k
    +
    Frontier width: row-group concurrency changes starvationrow-group concurrencyratio / seconds0maxllm_wait utilization: 0.1776llm_wait utilization: 0.3142llm_wait utilization: 0.5878llm_wait utilizationstarved llm_wait idle: 0.1447starved llm_wait idle: 0.2299starved llm_wait idle: 0.2280starved llm_wait idledownstream ready p95: 0.0009downstream ready p95: 0.0017downstream ready p95: 0.0020downstream ready p95124
    +
    Buffer size: row-group shape affects traffic wavesbuffer sizeratio / seconds0maxllm_wait utilization: 0.8259llm_wait utilization: 0.8054llm_wait utilization: 0.7904llm_wait utilizationstarved llm_wait idle: 0.1738starved llm_wait idle: 0.1944starved llm_wait idle: 0.2094starved llm_wait idlescheduler queue age p95: 0.0474scheduler queue age p95: 3.6832scheduler queue age p95: 10.6643scheduler queue age p9511664
    +
    Capacity scaling: underfeeding becomes visible as cap risesmodeled llm_wait capacityratio / kgen/s0maxllm_wait utilization: 0.8679llm_wait utilization: 0.5448llm_wait utilizationstarved llm_wait idle: 0.1297starved llm_wait idle: 0.2462starved llm_wait idlethroughput / 1000: 0.5960throughput / 1000: 0.7681throughput / 100024
    +
    Custom-model metadata changes per-stage fairnesscaseratio0maxllm_wait utilization: 0.8385starved llm_wait idle: 0.1613model capllm_wait utilization: 0.7579starved llm_wait idle: 0.2419weight 1llm_wait utilizationstarved llm_wait idle
    +
    Stress shapes: narrow vs wide runnable horizoncaseratio0maxllm_wait utilization: 0.0890total llm_wait idle: 0.9110starved llm_wait idle: 0.1598frontier/dependency idle: 0.7511burstiness / 2: 0.3177narrow frontier high capllm_wait utilization: 0.7943total llm_wait idle: 0.2057starved llm_wait idle: 0.2056frontier/dependency idle: 0.0001burstiness / 2: 0.1091wide frontier high capllm_wait utilizationtotal llm_wait idlestarved llm_wait idlefrontier/dependency idleburstiness / 2
    +
    Adaptation: adaptive row groups target frontier idlecaseratio0maxllm_wait utilization: 0.6768frontier/dependency idle: 0.1473starved llm_wait idle: 0.1759adaptivellm_wait utilization: 0.6236frontier/dependency idle: 0.2038starved llm_wait idle: 0.1725fixed-highllm_wait utilization: 0.1047frontier/dependency idle: 0.8134starved llm_wait idle: 0.0820fixed-lowllm_wait utilizationfrontier/dependency idlestarved llm_wait idle
    +
    Adaptation: request-pressure advisory avoids leased request waitcaseratio0maxrequest wait while leased: 0.0032scheduler queue age p95: 0.1248wall seconds / 10: 0.0134advisoryrequest wait while leased: 0.0498scheduler queue age p95: 0.1437wall seconds / 10: 0.0152controlrequest wait while leasedscheduler queue age p95wall seconds / 10
    +
    Adaptation: combined adaptive frontier and request pressurecaseratio0maxllm_wait utilization: 0.8438request utilization: 0.8924request starved idle: 0.0211frontier/dependency idle: 0.0110combinedllm_wait utilization: 0.8245request utilization: 0.8563request starved idle: 0.0217frontier/dependency idle: 0.0174controlllm_wait utilizationrequest utilizationrequest starved idlefrontier/dependency idle
    +
    +
    +

    Benchmark Matrix

    +
    casesweepscenariogenerationsrowsbufferrg concllm caputilidlestarved idlefrontier idlequeue age p95downstream gap p95leased request waitrequest utilrequest starved idleadvisory skipsfirst modeloverlapthroughputartifact
    adaptive-request-pressure-combinedadaptationsadaptive-request-pressure25612818284.4%15.6%14.5%1.1%10.4 ms0 us515.1 ms89.2%2.1%193z_open0.0%689/sjson
    adaptive-request-pressure-controladaptationsadaptive-request-pressure25612818282.4%17.4%15.7%1.7%3.5 ms0 us488.3 ms85.6%2.2%0a_pressured0.0%723/sjson
    adaptive-row-groups-adaptiveadaptationsreal-pipeline-overlap1,02451218867.7%32.3%17.6%14.7%1.7 ms3.0 ms0 us0.0%0.0%0-99.3%1,108/sjson
    adaptive-row-groups-fixed-highadaptationsreal-pipeline-overlap1,02451218862.4%37.6%17.3%20.4%2.1 ms2.7 ms0 us0.0%0.0%0-99.2%1,062/sjson
    adaptive-row-groups-fixed-lowadaptationsreal-pipeline-overlap1,02451211810.5%89.5%8.2%81.3%630 us718 us0 us0.0%0.0%0-99.8%229/sjson
    request-pressure-advisoryadaptationsrequest-pressure-advisory6432321185.3%14.7%13.2%1.4%124.8 ms0 us3.2 ms49.0%1.3%29z_open0.0%478/sjson
    request-pressure-controladaptationsrequest-pressure-advisory6432321193.0%7.0%5.6%1.4%143.7 ms0 us49.8 ms41.6%0.7%0a_pressured0.0%422/sjson
    buffer-1buffer-sizereal-pipeline-overlap4,09651214482.6%17.4%17.4%0.0%47.4 ms44.7 ms0 us0.0%0.0%0-100.0%379/sjson
    buffer-16buffer-sizereal-pipeline-overlap4,096512164480.5%19.5%19.4%0.0%3.68 s52.4 ms0 us0.0%0.0%0-100.0%204/sjson
    buffer-64buffer-sizereal-pipeline-overlap4,096512644479.0%21.0%20.9%0.0%10.66 s12.9 ms0 us0.0%0.0%0-99.9%195/sjson
    weight-custom-model-1custom-model-weightreal-pipeline-overlap4,096512644475.8%24.2%24.2%0.0%10.77 s16.9 ms0 us0.0%0.0%0-99.9%192/sjson
    weight-model-capacitycustom-model-weightreal-pipeline-overlap4,096512644483.9%16.1%16.1%0.0%11.60 s13.8 ms0 us0.0%0.0%0-99.9%185/sjson
    capacity-4llm-capacityreal-pipeline-overlap1,02451214286.8%13.2%13.0%0.2%5.5 ms4.6 ms0 us0.0%0.0%0-99.7%596/sjson
    capacity-8llm-capacityreal-pipeline-overlap1,02451214454.5%45.5%24.6%20.9%2.0 ms3.0 ms0 us0.0%0.0%0-99.7%768/sjson
    row-groups-1row-group-concurrencyreal-pipeline-overlap1,02451211417.8%82.2%14.5%67.8%747 us867 us0 us0.0%0.0%0-99.9%356/sjson
    row-groups-2row-group-concurrencyreal-pipeline-overlap1,02451212431.4%68.6%23.0%45.6%1.1 ms1.7 ms0 us0.0%0.0%0-99.8%525/sjson
    row-groups-4row-group-concurrencyreal-pipeline-overlap1,02451214458.8%41.2%22.8%18.4%1.4 ms2.0 ms0 us0.0%0.0%0-99.7%867/sjson
    rows-128row-scalereal-pipeline-overlap1,024128644479.5%20.5%20.3%0.3%1.60 s9.9 ms0 us0.0%0.0%0-99.3%578/sjson
    rows-256row-scalereal-pipeline-overlap2,048256644466.2%33.8%33.7%0.1%5.71 s13.7 ms0 us0.0%0.0%0-99.7%332/sjson
    rows-64row-scalereal-pipeline-overlap51264644479.6%20.4%19.4%1.1%541.6 ms7.6 ms0 us0.0%0.0%0-98.6%859/sjson
    narrow-frontier-high-capstress-shapereal-pipeline-overlap2,0481,0241188.9%91.1%16.0%75.1%1.7 ms1.9 ms0 us0.0%0.0%0-99.9%193/sjson
    wide-frontier-high-capstress-shapereal-pipeline-overlap8,1921,0246416879.4%20.6%20.6%0.0%86.97 s113.8 ms0 us0.0%0.0%0-99.9%88/sjson
    +

    Raw artifacts are under artifacts/async-scheduling-idle-regression.

    +
    +
    +

    Potential Changes

    +
    1. Add an adaptive row-group admission controller. A subclass or policy layer can watch bottleneck-resource starved idle and admit another row group when model capacity is idle while queued or pending model work remains, bounded by buffer and memory limits. When total idle is high but starved idle is low, the controller should treat that as a frontier problem and prefetch more row groups rather than tuning request AIMD.
    2. Keep resource-aware idle in the standard benchmark output. The new llm_wait utilization, starved idle, frontier/dependency-horizon idle, scheduler queue-age, downstream ready-gap, and burstiness metrics identify whether a vLLM-like resource is genuinely idle or merely waiting for dependencies.
    3. Document custom-model group identity and weight. SchedulingMetadata.custom_model(...) controls fairness and per-group admission. Plugins that share one external model should use a shared model identity and a weight that reflects real serving capacity; plugins that represent distinct resources should keep distinct identities.
    4. Use the report as a regression suite. The worst case here is rows-256; future scheduler or admission changes should improve that case without increasing ready gaps or violating final zero-lease checks.
    +
    +
    + + diff --git a/scripts/benchmarks/benchmark_async_scheduling.py b/scripts/benchmarks/benchmark_async_scheduling.py index 964ec5fdb..25f265395 100644 --- a/scripts/benchmarks/benchmark_async_scheduling.py +++ b/scripts/benchmarks/benchmark_async_scheduling.py @@ -6,6 +6,7 @@ from __future__ import annotations import argparse +import asyncio import csv import hashlib import json @@ -14,12 +15,22 @@ import subprocess import sys import time +import uuid from collections.abc import Mapping from dataclasses import dataclass, fields, is_dataclass from enum import Enum from pathlib import Path from typing import Any +import data_designer.lazy_heavy_imports as lazy +from data_designer.config.column_configs import ( + ExpressionColumnConfig, + GenerationStrategy, + LLMTextColumnConfig, + SamplerColumnConfig, +) +from data_designer.config.sampler_params import SamplerType +from data_designer.config.scheduling import SchedulingMetadata from data_designer.engine.capacity import ( AsyncCapacityConfigured, AsyncCapacityObservedMaxima, @@ -29,6 +40,9 @@ RequestAdmissionConfigSnapshot, RowGroupAdmission, ) +from data_designer.engine.column_generators.generators.base import ColumnGenerator, FromScratchColumnGenerator +from data_designer.engine.dataset_builders.async_scheduler import AsyncTaskScheduler +from data_designer.engine.dataset_builders.scheduling.completion import CompletionTracker from data_designer.engine.dataset_builders.scheduling.queue import FairTaskQueue from data_designer.engine.dataset_builders.scheduling.resources import ( SchedulableTask, @@ -38,20 +52,31 @@ ) from data_designer.engine.dataset_builders.scheduling.task_admission import TaskAdmissionConfig, TaskAdmissionController from data_designer.engine.dataset_builders.scheduling.task_model import Task +from data_designer.engine.dataset_builders.utils.execution_graph import ExecutionGraph +from data_designer.engine.dataset_builders.utils.row_group_buffer import RowGroupBufferManager from data_designer.engine.models.request_admission.config import RequestAdmissionConfig -from data_designer.engine.models.request_admission.controller import AdaptiveRequestAdmissionController +from data_designer.engine.models.request_admission.controller import ( + AdaptiveRequestAdmissionController, + RequestAdmissionLease, +) from data_designer.engine.models.request_admission.outcomes import RequestReleaseOutcome from data_designer.engine.models.request_admission.resources import ( RequestAdmissionItem, RequestDomain, + RequestEventContext, RequestGroupSpec, RequestResourceKey, ) from data_designer.engine.models.resources import ProviderModelKey, ProviderModelStaticCap -from data_designer.engine.observability import InMemoryAdmissionEventSink, SchedulerAdmissionEvent +from data_designer.engine.observability import ( + InMemoryAdmissionEventSink, + SchedulerAdmissionEvent, + runtime_correlation_provider, +) ARTIFACT_SCHEMA_VERSION = "async-scheduling-benchmark-v1" -HARNESS_VERSION = "1.0" +HARNESS_VERSION = "1.1" +ASYNC_WAKEUP_GATE_SECONDS = 0.025 @dataclass(frozen=True) @@ -64,6 +89,12 @@ class BenchmarkInputs: row_group_concurrency: int task_admission_capacity: int request_latency_seconds: float + upstream_latency_seconds: float + downstream_latency_seconds: float + fanout_width: int + model_stage_weight: int + adaptive_row_group_admission: bool + request_pressure_advisory: bool warmups: int iterations: int seed: int @@ -71,6 +102,123 @@ class BenchmarkInputs: harness_version: str +class _BenchmarkStorage: + dataset_name = "async-scheduling-benchmark" + + def __init__(self) -> None: + self.write_count = 0 + + def get_file_paths(self) -> dict[str, str]: + return {} + + def write_batch_to_parquet_file(self, **kwargs: object) -> str: + self.write_count += 1 + return f"/tmp/async-scheduling-benchmark/partial-{self.write_count}.parquet" + + def move_partial_result_to_final_file_path(self, batch_number: int) -> str: + return f"/tmp/async-scheduling-benchmark/final-{batch_number}.parquet" + + +class _BenchmarkSeedGenerator(FromScratchColumnGenerator[ExpressionColumnConfig]): + @staticmethod + def get_generation_strategy() -> GenerationStrategy: + return GenerationStrategy.FULL_COLUMN + + def generate(self, data: lazy.pd.DataFrame) -> lazy.pd.DataFrame: + return data + + def generate_from_scratch(self, num_records: int) -> lazy.pd.DataFrame: + return lazy.pd.DataFrame({self.config.name: list(range(num_records))}) + + +class _BenchmarkTimedCellGenerator(ColumnGenerator[ExpressionColumnConfig]): + def __init__( + self, + *args: object, + delay_seconds: float, + model_stage: bool = False, + model_stage_weight: int = 1, + **kwargs: object, + ) -> None: + super().__init__(*args, **kwargs) + self._delay_seconds = delay_seconds + self._model_stage = model_stage + self._model_stage_weight = model_stage_weight + + @staticmethod + def get_generation_strategy() -> GenerationStrategy: + return GenerationStrategy.CELL_BY_CELL + + def get_scheduling_metadata(self) -> SchedulingMetadata: + if self._model_stage: + return SchedulingMetadata.custom_model( + "benchmark-provider", + self.config.name, + "chat", + weight=self._model_stage_weight, + ) + return super().get_scheduling_metadata() + + def generate(self, data: dict) -> dict: + data[self.config.name] = f"{self.config.name}_{data.get('seed', '?')}" + return data + + async def agenerate(self, data: dict) -> dict: + if self._delay_seconds: + await asyncio.sleep(self._delay_seconds) + return self.generate(data) + + +class _BenchmarkRequestPressureCellGenerator(ColumnGenerator[ExpressionColumnConfig]): + def __init__( + self, + *args: object, + request_admission: AdaptiveRequestAdmissionController, + provider_name: str, + model_id: str, + delay_seconds: float, + **kwargs: object, + ) -> None: + super().__init__(*args, **kwargs) + self._request_admission = request_admission + self._resource = RequestResourceKey(provider_name, model_id, RequestDomain.CHAT) + self._delay_seconds = delay_seconds + + @staticmethod + def get_generation_strategy() -> GenerationStrategy: + return GenerationStrategy.CELL_BY_CELL + + def get_scheduling_metadata(self) -> SchedulingMetadata: + return SchedulingMetadata.model( + self._resource.provider_name, + self._resource.model_id, + self._resource.domain.value, + weight=1, + ) + + def generate(self, data: dict) -> dict: + data[self.config.name] = f"{self.config.name}_{data.get('seed', '?')}" + return data + + async def agenerate(self, data: dict) -> dict: + item = RequestAdmissionItem( + self._resource, + RequestGroupSpec(self._resource), + queue_wait_timeout_seconds=30.0, + event_context=RequestEventContext( + captured_correlation=runtime_correlation_provider.current(), + request_attempt_id=f"benchmark-request-{uuid.uuid4().hex}", + ), + ) + lease = await self._request_admission.acquire_async(item) + try: + if self._delay_seconds: + await asyncio.sleep(self._delay_seconds) + return self.generate(data) + finally: + self._request_admission.release(lease, RequestReleaseOutcome(kind="success")) + + def main() -> None: args = _parse_args() output_dir = Path(args.output_dir) @@ -85,6 +233,12 @@ def main() -> None: row_group_concurrency=args.row_group_concurrency, task_admission_capacity=args.task_admission_capacity, request_latency_seconds=args.request_latency_seconds, + upstream_latency_seconds=args.upstream_latency_seconds, + downstream_latency_seconds=args.downstream_latency_seconds, + fanout_width=args.fanout_width, + model_stage_weight=args.model_stage_weight or max(1, args.task_admission_capacity // 2), + adaptive_row_group_admission=args.adaptive_row_group_admission, + request_pressure_advisory=args.request_pressure_advisory, warmups=args.warmups, iterations=args.iterations, seed=args.seed, @@ -97,6 +251,7 @@ def main() -> None: iterations = [_run_iteration(inputs, measured=True) for _ in range(args.iterations)] artifact = _artifact(inputs, iterations) + _validate_artifact(artifact) json_path = output_dir / "async_scheduling_benchmark.json" csv_path = output_dir / "async_scheduling_benchmark.csv" md_path = output_dir / "async_scheduling_benchmark.md" @@ -118,6 +273,17 @@ def _parse_args() -> argparse.Namespace: parser.add_argument("--row-group-concurrency", type=int, default=2) parser.add_argument("--task-admission-capacity", type=int, default=8) parser.add_argument("--request-latency-seconds", type=float, default=0.0) + parser.add_argument("--upstream-latency-seconds", type=float, default=0.01) + parser.add_argument("--downstream-latency-seconds", type=float, default=0.0) + parser.add_argument("--fanout-width", type=int, default=3) + parser.add_argument( + "--model-stage-weight", + type=int, + default=0, + help="Synthetic custom-model scheduling weight. Defaults to the modeled llm_wait capacity.", + ) + parser.add_argument("--adaptive-row-group-admission", action="store_true") + parser.add_argument("--request-pressure-advisory", action="store_true") parser.add_argument("--warmups", type=int, default=1) parser.add_argument("--iterations", type=int, default=5) parser.add_argument("--output-dir", required=True) @@ -128,6 +294,16 @@ def _parse_args() -> argparse.Namespace: def _run_iteration(inputs: BenchmarkInputs, *, measured: bool) -> dict[str, Any]: + if inputs.scenario == "adaptive-request-pressure": + return _run_adaptive_request_pressure_iteration(inputs, measured=measured) + if inputs.scenario == "request-pressure-advisory": + return _run_request_pressure_iteration(inputs, measured=measured) + if inputs.scenario == "real-pipeline-overlap": + return _run_real_pipeline_iteration(inputs, measured=measured) + return _run_queue_admission_iteration(inputs, measured=measured) + + +def _run_queue_admission_iteration(inputs: BenchmarkInputs, *, measured: bool) -> dict[str, Any]: sink = InMemoryAdmissionEventSink() task_config = TaskAdmissionConfig( submission_capacity=inputs.task_admission_capacity, @@ -162,6 +338,19 @@ def _run_iteration(inputs: BenchmarkInputs, *, measured: bool) -> dict[str, Any] request_item = RequestAdmissionItem(request_resource, RequestGroupSpec(request_resource)) started = time.monotonic() sequence = 0 + accepted_by_id = {task.task_id: task for task in tasks if task.task_id in accepted} + for task_id in accepted: + sequence += 1 + task = accepted_by_id[task_id] + sink.emit_scheduler_event( + SchedulerAdmissionEvent.capture( + "ready_enqueued", + sequence=sequence, + task_id=task.task_id, + snapshot=task_controller.view(), + diagnostics={"resource_request": dict(task.resource_request.amounts)}, + ) + ) while queue.has_queued_tasks: selection = queue.select_next(lambda item, view: task_controller.is_eligible(item, view)) @@ -174,6 +363,7 @@ def _run_iteration(inputs: BenchmarkInputs, *, measured: bool) -> dict[str, Any] sequence=sequence, task_id=selection.item.task_id, snapshot=task_controller.view(), + diagnostics={"resource_request": dict(selection.item.resource_request.amounts)}, ) ) decision = task_controller.try_acquire(selection.item, selection.queue_view) @@ -192,6 +382,7 @@ def _run_iteration(inputs: BenchmarkInputs, *, measured: bool) -> dict[str, Any] task_id=committed.task_id, task_lease_id=lease.lease_id, snapshot=task_controller.view(), + diagnostics={"resource_request": dict(committed.resource_request.amounts)}, ) ) request_lease = request_controller.acquire_sync(request_item) @@ -202,10 +393,17 @@ def _run_iteration(inputs: BenchmarkInputs, *, measured: bool) -> dict[str, Any] selected.append(committed.task_id) wall_time = time.monotonic() - started + async_request_wakeup_seconds = asyncio.run(_measure_async_request_wakeup_seconds()) task_snapshot = task_controller.view() request_snapshots = request_controller.pressure.snapshots() global_snapshots = request_controller.pressure.global_snapshots() output_hash = hashlib.sha256("\n".join(selected).encode()).hexdigest() + max_task_leases = _max_task_leases_by_resource(sink.scheduler_events) + max_request_in_flight = _max_request_in_flight_by_resource(sink.request_events) + utilization_metrics = { + "scheduler_resources": _scheduler_utilization_metrics(sink.scheduler_events), + "request_resources": _request_utilization_metrics(sink.request_events), + } timeline = [{"stream": "scheduler", **_event_payload(event)} for event in sink.scheduler_events] + [ {"stream": "request", **_event_payload(event)} for event in sink.request_events ] @@ -213,7 +411,9 @@ def _run_iteration(inputs: BenchmarkInputs, *, measured: bool) -> dict[str, Any] return { "measured": measured, "wall_time_seconds": wall_time, + "async_request_wakeup_seconds": async_request_wakeup_seconds, "timeline": timeline, + "utilization_metrics": utilization_metrics, "final_task_snapshot": task_snapshot, "final_request_snapshot": { "domains": request_snapshots, @@ -226,10 +426,312 @@ def _run_iteration(inputs: BenchmarkInputs, *, measured: bool) -> dict[str, Any] "output_hashes": {"selected_task_ids": output_hash}, "per_layer_observed_maxima": { "selected_tasks": len(selected), + "accepted_tasks": len(accepted), + "task_leases_by_resource": max_task_leases, + "request_in_flight_by_resource": max_request_in_flight, "active_task_leases_at_end": sum(task_snapshot.leased_resources.values()), "active_request_leases_at_end": sum(snapshot.active_lease_count for snapshot in request_snapshots.values()), }, "accepted_task_count": len(accepted), + "selected_task_count": len(selected), + } + + +def _run_real_pipeline_iteration(inputs: BenchmarkInputs, *, measured: bool) -> dict[str, Any]: + return asyncio.run(_run_real_pipeline_iteration_async(inputs, measured=measured)) + + +async def _run_real_pipeline_iteration_async(inputs: BenchmarkInputs, *, measured: bool) -> dict[str, Any]: + sink = InMemoryAdmissionEventSink() + fanout_width = max(1, inputs.fanout_width) + upstream_cols = [f"heavy_{index}" for index in range(fanout_width)] + downstream_cols = [f"fast_{index}" for index in range(fanout_width)] + configs = [ + SamplerColumnConfig(name="seed", sampler_type=SamplerType.CATEGORY, params={"values": ["A"]}), + *[LLMTextColumnConfig(name=col, prompt="{{ seed }}", model_alias="benchmark") for col in upstream_cols], + *[ + LLMTextColumnConfig(name=downstream, prompt=f"{{{{ {upstream} }}}}", model_alias="benchmark") + for upstream, downstream in zip(upstream_cols, downstream_cols) + ], + ] + strategies: dict[str, GenerationStrategy] = {"seed": GenerationStrategy.FULL_COLUMN} + strategies.update({col: GenerationStrategy.CELL_BY_CELL for col in (*upstream_cols, *downstream_cols)}) + provider = object() + generators: dict[str, ColumnGenerator] = { + "seed": _BenchmarkSeedGenerator( + config=ExpressionColumnConfig(name="seed", expr="{{ x }}"), resource_provider=provider + ), + **{ + col: _BenchmarkTimedCellGenerator( + config=ExpressionColumnConfig(name=col, expr="{{ x }}"), + resource_provider=provider, + delay_seconds=inputs.upstream_latency_seconds, + model_stage=True, + model_stage_weight=inputs.model_stage_weight, + ) + for col in upstream_cols + }, + **{ + col: _BenchmarkTimedCellGenerator( + config=ExpressionColumnConfig(name=col, expr="{{ x }}"), + resource_provider=provider, + delay_seconds=inputs.downstream_latency_seconds, + model_stage=True, + model_stage_weight=inputs.model_stage_weight, + ) + for col in downstream_cols + }, + } + row_groups = _row_groups(inputs.record_count, inputs.buffer_size) + graph = ExecutionGraph.create(configs, strategies) + tracker = CompletionTracker.with_graph(graph, row_groups) + storage = _BenchmarkStorage() + buffer_manager = RowGroupBufferManager(storage) + scheduler = AsyncTaskScheduler( + generators=generators, + graph=graph, + tracker=tracker, + row_groups=row_groups, + buffer_manager=buffer_manager, + max_concurrent_row_groups=inputs.row_group_concurrency, + max_submitted_tasks=inputs.task_admission_capacity, + max_model_task_admission=max(1, inputs.task_admission_capacity // 2), + scheduler_event_sink=sink, + trace=True, + num_records=inputs.record_count, + buffer_size=inputs.buffer_size, + adaptive_row_group_admission=inputs.adaptive_row_group_admission, + ) + + started = time.monotonic() + await scheduler.run() + wall_time = time.monotonic() - started + async_request_wakeup_seconds = await _measure_async_request_wakeup_seconds() + traces = [_trace_payload(trace) for trace in scheduler.traces] + pipeline_metrics = _pipeline_metrics( + traces, + sink.scheduler_events, + upstream_cols=upstream_cols, + downstream_cols=downstream_cols, + submission_capacity=inputs.task_admission_capacity, + llm_wait_capacity=max(1, inputs.task_admission_capacity // 2), + row_group_concurrency=inputs.row_group_concurrency, + capacity_plan=scheduler.capacity_plan(), + expected_task_count=inputs.record_count * fanout_width, + ) + utilization_metrics = { + "scheduler_resources": _scheduler_utilization_metrics(sink.scheduler_events), + "request_resources": {}, + } + timeline = [{"stream": "scheduler", **_event_payload(event)} for event in sink.scheduler_events] + timeline.sort(key=lambda event: (event["captured_at_monotonic"], event["sequence"])) + task_snapshot = scheduler.task_admission_snapshot() + return { + "measured": measured, + "wall_time_seconds": wall_time, + "async_request_wakeup_seconds": async_request_wakeup_seconds, + "timeline": timeline, + "traces": traces, + "pipeline_metrics": pipeline_metrics, + "utilization_metrics": utilization_metrics, + "capacity_plan": scheduler.capacity_plan(), + "final_task_snapshot": task_snapshot, + "final_request_snapshot": { + "domains": {}, + "provider_models": {}, + "zero_active_request_leases": True, + "zero_request_waiters": True, + }, + "output_hashes": { + "completed_task_trace": hashlib.sha256( + "\n".join(f"{trace['column']}:{trace['row_group']}:{trace['row_index']}" for trace in traces).encode() + ).hexdigest() + }, + "per_layer_observed_maxima": { + "selected_tasks": len(traces), + "active_task_leases_at_end": sum(task_snapshot.leased_resources.values()), + "active_request_leases_at_end": 0, + **pipeline_metrics["observed_maxima"], + }, + "accepted_task_count": len(traces), + "selected_task_count": len(traces), + } + + +def _run_request_pressure_iteration(inputs: BenchmarkInputs, *, measured: bool) -> dict[str, Any]: + return asyncio.run( + _run_request_pressure_iteration_async( + inputs, + measured=measured, + row_groups=[(0, inputs.record_count)], + max_concurrent_row_groups=1, + adaptive_row_group_admission=False, + ) + ) + + +def _run_adaptive_request_pressure_iteration(inputs: BenchmarkInputs, *, measured: bool) -> dict[str, Any]: + return asyncio.run( + _run_request_pressure_iteration_async( + inputs, + measured=measured, + row_groups=_row_groups(inputs.record_count, inputs.buffer_size), + max_concurrent_row_groups=inputs.row_group_concurrency, + adaptive_row_group_admission=inputs.adaptive_row_group_admission, + ) + ) + + +async def _run_request_pressure_iteration_async( + inputs: BenchmarkInputs, + *, + measured: bool, + row_groups: list[tuple[int, int]], + max_concurrent_row_groups: int, + adaptive_row_group_admission: bool, +) -> dict[str, Any]: + sink = InMemoryAdmissionEventSink() + request_controller = AdaptiveRequestAdmissionController( + RequestAdmissionConfig(default_queue_wait_timeout_seconds=30.0), + event_sink=sink, + ) + request_controller.register( + provider_name="aa-pressured-provider", + model_id="pressured-model", + alias="pressured", + max_parallel_requests=1, + ) + request_controller.register( + provider_name="zz-open-provider", + model_id="open-model", + alias="open", + max_parallel_requests=1, + ) + pressured_resource = RequestResourceKey("aa-pressured-provider", "pressured-model", RequestDomain.CHAT) + holder_item = RequestAdmissionItem(pressured_resource, RequestGroupSpec(pressured_resource)) + holder_lease = request_controller.try_acquire(holder_item) + if not isinstance(holder_lease, RequestAdmissionLease): + raise RuntimeError(f"Expected pressure holder request lease, got {holder_lease.reason}") + + async def release_holder() -> None: + await asyncio.sleep(max(inputs.request_latency_seconds, inputs.upstream_latency_seconds)) + request_controller.release(holder_lease, RequestReleaseOutcome(kind="success")) + + release_task = asyncio.create_task(release_holder()) + configs = [ + SamplerColumnConfig(name="seed", sampler_type=SamplerType.CATEGORY, params={"values": ["A"]}), + LLMTextColumnConfig(name="a_pressured", prompt="{{ seed }}", model_alias="pressured"), + LLMTextColumnConfig(name="z_open", prompt="{{ seed }}", model_alias="open"), + ] + strategies = { + "seed": GenerationStrategy.FULL_COLUMN, + "a_pressured": GenerationStrategy.CELL_BY_CELL, + "z_open": GenerationStrategy.CELL_BY_CELL, + } + provider = object() + generators: dict[str, ColumnGenerator] = { + "seed": _BenchmarkSeedGenerator( + config=ExpressionColumnConfig(name="seed", expr="{{ x }}"), resource_provider=provider + ), + "a_pressured": _BenchmarkRequestPressureCellGenerator( + config=ExpressionColumnConfig(name="a_pressured", expr="{{ x }}"), + resource_provider=provider, + request_admission=request_controller, + provider_name="aa-pressured-provider", + model_id="pressured-model", + delay_seconds=inputs.downstream_latency_seconds, + ), + "z_open": _BenchmarkRequestPressureCellGenerator( + config=ExpressionColumnConfig(name="z_open", expr="{{ x }}"), + resource_provider=provider, + request_admission=request_controller, + provider_name="zz-open-provider", + model_id="open-model", + delay_seconds=inputs.downstream_latency_seconds, + ), + } + graph = ExecutionGraph.create(configs, strategies) + tracker = CompletionTracker.with_graph(graph, row_groups) + storage = _BenchmarkStorage() + buffer_manager = RowGroupBufferManager(storage) + scheduler = AsyncTaskScheduler( + generators=generators, + graph=graph, + tracker=tracker, + row_groups=row_groups, + buffer_manager=buffer_manager, + max_concurrent_row_groups=max_concurrent_row_groups, + max_submitted_tasks=max(1, inputs.task_admission_capacity), + max_model_task_admission=max(1, inputs.task_admission_capacity), + scheduler_event_sink=sink, + trace=True, + num_records=inputs.record_count, + buffer_size=inputs.buffer_size, + adaptive_row_group_admission=adaptive_row_group_admission, + request_pressure_provider=request_controller.pressure, + request_pressure_advisory=inputs.request_pressure_advisory, + ) + + started = time.monotonic() + try: + await scheduler.run() + finally: + await release_task + wall_time = time.monotonic() - started + async_request_wakeup_seconds = await _measure_async_request_wakeup_seconds() + traces = [_trace_payload(trace) for trace in scheduler.traces] + utilization_metrics = { + "scheduler_resources": _scheduler_utilization_metrics(sink.scheduler_events), + "request_resources": _request_utilization_metrics(sink.request_events), + } + task_snapshot = scheduler.task_admission_snapshot() + request_snapshots = request_controller.pressure.snapshots() + global_snapshots = request_controller.pressure.global_snapshots() + request_wait_while_leased = _request_wait_while_task_leased_seconds(sink.scheduler_events, sink.request_events) + timeline = [{"stream": "scheduler", **_event_payload(event)} for event in sink.scheduler_events] + [ + {"stream": "request", **_event_payload(event)} for event in sink.request_events + ] + timeline.sort(key=lambda event: (event["captured_at_monotonic"], event["sequence"])) + return { + "measured": measured, + "wall_time_seconds": wall_time, + "async_request_wakeup_seconds": async_request_wakeup_seconds, + "timeline": timeline, + "traces": traces, + "request_pressure_metrics": { + "request_wait_seconds_while_task_leased": request_wait_while_leased, + "request_pressure_advisory_enabled": inputs.request_pressure_advisory, + "request_pressure_advisory_skip_count": sum( + 1 for event in sink.scheduler_events if event.event_kind == "request_pressure_advisory_skipped" + ), + "first_model_dispatch_column": _first_model_dispatch_column(traces), + }, + "utilization_metrics": utilization_metrics, + "capacity_plan": scheduler.capacity_plan(), + "final_task_snapshot": task_snapshot, + "final_request_snapshot": { + "domains": request_snapshots, + "provider_models": global_snapshots, + "zero_active_request_leases": all( + snapshot.active_lease_count == 0 for snapshot in request_snapshots.values() + ), + "zero_request_waiters": all(snapshot.waiters == 0 for snapshot in request_snapshots.values()), + }, + "output_hashes": { + "completed_task_trace": hashlib.sha256( + "\n".join(f"{trace['column']}:{trace['row_group']}:{trace['row_index']}" for trace in traces).encode() + ).hexdigest() + }, + "per_layer_observed_maxima": { + "selected_tasks": len(traces), + "accepted_tasks": len(traces), + "task_leases_by_resource": _max_task_leases_by_resource(sink.scheduler_events), + "request_in_flight_by_resource": _max_request_in_flight_by_resource(sink.request_events), + "active_task_leases_at_end": sum(task_snapshot.leased_resources.values()), + "active_request_leases_at_end": sum(snapshot.active_lease_count for snapshot in request_snapshots.values()), + }, + "accepted_task_count": len(traces), + "selected_task_count": len(traces), } @@ -255,6 +757,605 @@ def _schedulable_tasks(record_count: int, groups: tuple[TaskGroupSpec, TaskGroup return tuple(tasks) +def _row_groups(record_count: int, buffer_size: int) -> list[tuple[int, int]]: + row_groups: list[tuple[int, int]] = [] + remaining = record_count + row_group = 0 + while remaining > 0: + size = min(buffer_size, remaining) + row_groups.append((row_group, size)) + row_group += 1 + remaining -= size + return row_groups + + +def _trace_payload(trace: Any) -> dict[str, Any]: + return { + "column": trace.column, + "row_group": trace.row_group, + "row_index": trace.row_index, + "task_type": trace.task_type, + "dispatched_at": trace.dispatched_at, + "completed_at": trace.completed_at, + "status": trace.status, + "error": trace.error, + } + + +def _first_model_dispatch_column(traces: list[dict[str, Any]]) -> str | None: + model_traces = [trace for trace in traces if trace["column"] in {"a_pressured", "z_open"}] + if not model_traces: + return None + return min(model_traces, key=lambda trace: trace["dispatched_at"])["column"] + + +def _request_wait_while_task_leased_seconds( + scheduler_events: list[SchedulerAdmissionEvent], + request_events: list[Any], +) -> float: + lease_starts_by_lease: dict[str, float] = {} + lease_intervals: dict[str, tuple[float, float]] = {} + for event in _ordered_events(scheduler_events): + lease_id = getattr(event, "task_lease_id", None) + if lease_id is None: + continue + if event.event_kind == "task_lease_acquired": + lease_starts_by_lease[lease_id] = float(event.captured_at_monotonic) + elif event.event_kind == "task_lease_released": + task_execution_id = getattr(event, "task_execution_id", None) + started = lease_starts_by_lease.pop(lease_id, None) + if started is not None and task_execution_id is not None: + lease_intervals[task_execution_id] = (started, float(event.captured_at_monotonic)) + + wait_starts: dict[tuple[str, str | None], float] = {} + total = 0.0 + for event in _ordered_events(request_events): + correlation = getattr(event, "captured_correlation", None) + task_execution_id = getattr(correlation, "task_execution_id", None) + if task_execution_id is None: + continue + attempt_key = (task_execution_id, getattr(event, "request_attempt_id", None)) + if event.event_kind == "request_wait_started": + wait_starts[attempt_key] = float(event.captured_at_monotonic) + elif event.event_kind in { + "request_wait_completed", + "request_wait_timeout", + "request_wait_cancelled", + "request_acquire_denied", + }: + wait_started = wait_starts.pop(attempt_key, None) + lease_interval = lease_intervals.get(task_execution_id) + if wait_started is None or lease_interval is None: + continue + wait_ended = float(event.captured_at_monotonic) + lease_started, lease_ended = lease_interval + total += max(0.0, min(wait_ended, lease_ended) - max(wait_started, lease_started)) + return total + + +def _pipeline_metrics( + traces: list[dict[str, Any]], + scheduler_events: list[SchedulerAdmissionEvent], + *, + upstream_cols: list[str], + downstream_cols: list[str], + submission_capacity: int, + llm_wait_capacity: int, + row_group_concurrency: int, + capacity_plan: AsyncCapacityPlan, + expected_task_count: int, +) -> dict[str, Any]: + upstream = [trace for trace in traces if trace["column"] in upstream_cols] + downstream = [trace for trace in traces if trace["column"] in downstream_cols] + first_upstream_dispatch = min((trace["dispatched_at"] for trace in upstream), default=None) + last_upstream_dispatch = max((trace["dispatched_at"] for trace in upstream), default=None) + last_upstream_complete = max((trace["completed_at"] for trace in upstream), default=None) + first_downstream_dispatch = min((trace["dispatched_at"] for trace in downstream), default=None) + ready_gaps = _downstream_ready_gaps(upstream, downstream, upstream_cols, downstream_cols) + max_task_leases = _max_task_leases_by_resource(scheduler_events) + observed_row_groups = capacity_plan.observed_maxima.row_groups_in_flight + observed_queued = dict(capacity_plan.observed_maxima.queued_tasks_by_group) + has_overlap_points = ( + first_downstream_dispatch is not None + and last_upstream_dispatch is not None + and last_upstream_complete is not None + and first_upstream_dispatch is not None + ) + overlap_seconds = max(0.0, last_upstream_complete - first_downstream_dispatch) if has_overlap_points else 0.0 + upstream_duration = max(0.0, last_upstream_complete - first_upstream_dispatch) if has_overlap_points else 0.0 + validation = { + "expected_upstream_task_count": len(upstream) == expected_task_count, + "expected_downstream_task_count": len(downstream) == expected_task_count, + "expected_downstream_ready_gap_count": len(ready_gaps) == expected_task_count, + "submission_cap_respected": max_task_leases.get("submission", 0) <= submission_capacity, + "llm_wait_cap_respected": max_task_leases.get("llm_wait", 0) <= llm_wait_capacity, + "row_group_cap_respected": observed_row_groups <= row_group_concurrency, + "downstream_interleaved_before_all_upstream_dispatched": has_overlap_points + and first_downstream_dispatch < last_upstream_dispatch, + "downstream_interleaved_before_all_upstream_completed": has_overlap_points + and first_downstream_dispatch < last_upstream_complete, + } + return { + "upstream_columns": tuple(upstream_cols), + "downstream_columns": tuple(downstream_cols), + "expected_task_count": expected_task_count, + "upstream_task_count": len(upstream), + "downstream_task_count": len(downstream), + "downstream_ready_gap_count": len(ready_gaps), + "first_downstream_dispatch_delay_seconds": ( + max(0.0, first_downstream_dispatch - first_upstream_dispatch) if has_overlap_points else 0.0 + ), + "downstream_ready_gap_mean_seconds": statistics.fmean(ready_gaps) if ready_gaps else 0.0, + "downstream_ready_gap_p95_seconds": _percentile(ready_gaps, 0.95), + "downstream_ready_gap_max_seconds": max(ready_gaps) if ready_gaps else 0.0, + "upstream_downstream_overlap_seconds": overlap_seconds, + "upstream_downstream_overlap_ratio": _safe_ratio(overlap_seconds, upstream_duration), + "observed_maxima": { + "row_groups_in_flight": observed_row_groups, + "task_leases_by_resource": max_task_leases, + "queued_tasks_by_group": observed_queued, + }, + "validation": validation, + "validation_passed": all(validation.values()), + } + + +def _downstream_ready_gaps( + upstream: list[dict[str, Any]], + downstream: list[dict[str, Any]], + upstream_cols: list[str], + downstream_cols: list[str], +) -> list[float]: + upstream_by_key = {(trace["column"], trace["row_group"], trace["row_index"]): trace for trace in upstream} + gaps: list[float] = [] + for upstream_col, downstream_col in zip(upstream_cols, downstream_cols): + for downstream_trace in downstream: + if downstream_trace["column"] != downstream_col: + continue + upstream_trace = upstream_by_key.get( + (upstream_col, downstream_trace["row_group"], downstream_trace["row_index"]) + ) + if upstream_trace is None: + continue + gaps.append(max(0.0, downstream_trace["dispatched_at"] - upstream_trace["completed_at"])) + return gaps + + +def _max_task_leases_by_resource(events: list[SchedulerAdmissionEvent]) -> dict[str, int]: + maxima: dict[str, int] = {} + for event in events: + snapshot = event.snapshot + leased = getattr(snapshot, "leased_resources", {}) + for resource, count in leased.items(): + maxima[str(resource)] = max(maxima.get(str(resource), 0), int(count)) + return maxima + + +def _max_request_in_flight_by_resource(events: list[Any]) -> dict[str, int]: + maxima: dict[str, int] = {} + for event in events: + snapshot = getattr(event, "pressure_snapshot", None) + if snapshot is None: + continue + resource = getattr(snapshot, "resource", None) or getattr(event, "request_resource_key", None) + if resource is None: + continue + count = int(getattr(snapshot, "in_flight_count", 0)) + maxima[str(resource)] = max(maxima.get(str(resource), 0), count) + return maxima + + +def _scheduler_utilization_metrics(events: list[Any]) -> dict[str, dict[str, float | int]]: + ordered = _ordered_events(events) + if len(ordered) < 2: + return {} + + resource_limits: dict[str, int] = {} + active_by_resource: dict[str, int] = {} + queued_by_task: dict[str, dict[str, int]] = {} + queued_at: dict[str, float] = {} + queue_ages: dict[str, list[float]] = {} + totals = _empty_utilization_totals() + + for index, event in enumerate(ordered): + now = float(event.captured_at_monotonic) + snapshot = getattr(event, "snapshot", None) + if snapshot is not None: + for resource, limit in _int_mapping(getattr(snapshot, "resource_limits", {})).items(): + resource_limits[resource] = max(resource_limits.get(resource, 0), limit) + active_by_resource = _int_mapping(getattr(snapshot, "leased_resources", {})) + + task_id = getattr(event, "task_id", None) + resource_request = _event_resource_request(event) + if event.event_kind == "ready_enqueued" and task_id is not None: + queued_by_task[task_id] = resource_request + queued_at[task_id] = now + elif event.event_kind == "task_lease_acquired" and task_id is not None: + task_resources = queued_by_task.pop(task_id, resource_request) + started = queued_at.pop(task_id, None) + if started is not None: + age = max(0.0, now - started) + for resource, amount in task_resources.items(): + if amount > 0: + queue_ages.setdefault(resource, []).append(age) + + if index == len(ordered) - 1: + continue + next_time = float(ordered[index + 1].captured_at_monotonic) + interval_seconds = max(0.0, next_time - now) + queued_demand = _queued_resource_demand(queued_by_task) + _record_utilization_interval( + totals, + resource_limits=resource_limits, + active_by_resource=active_by_resource, + queued_or_waiting_by_resource=queued_demand, + interval_seconds=interval_seconds, + ) + + return _finalize_utilization_metrics(totals, queue_ages) + + +def _request_utilization_metrics(events: list[Any]) -> dict[str, dict[str, float | int]]: + ordered = [event for event in _ordered_events(events) if getattr(event, "pressure_snapshot", None) is not None] + if len(ordered) < 2: + return {} + + capacities: dict[str, int] = {} + active_by_resource: dict[str, int] = {} + waiters_by_resource: dict[str, int] = {} + wait_started: dict[str, float] = {} + wait_ages: dict[str, list[float]] = {} + totals = _empty_utilization_totals() + + for index, event in enumerate(ordered): + now = float(event.captured_at_monotonic) + snapshot = event.pressure_snapshot + resource = str(snapshot.resource) + capacity = max(1, int(getattr(snapshot, "effective_max", 1))) + capacities[resource] = max(capacities.get(resource, 0), capacity) + active_by_resource[resource] = int(getattr(snapshot, "in_flight_count", 0)) + waiters_by_resource[resource] = int(getattr(snapshot, "waiters", 0)) + + attempt_id = getattr(event, "request_attempt_id", None) + if attempt_id is not None and event.event_kind == "request_wait_started": + wait_started[attempt_id] = now + elif attempt_id is not None and event.event_kind in { + "request_wait_completed", + "request_wait_timeout", + "request_wait_cancelled", + "request_acquire_denied", + }: + started = wait_started.pop(attempt_id, None) + if started is not None: + wait_ages.setdefault(resource, []).append(max(0.0, now - started)) + + if index == len(ordered) - 1: + continue + next_time = float(ordered[index + 1].captured_at_monotonic) + interval_seconds = max(0.0, next_time - now) + _record_utilization_interval( + totals, + resource_limits=capacities, + active_by_resource=active_by_resource, + queued_or_waiting_by_resource=waiters_by_resource, + interval_seconds=interval_seconds, + ) + + return _finalize_utilization_metrics(totals, wait_ages) + + +def _ordered_events(events: list[Any]) -> list[Any]: + return sorted(events, key=lambda event: (event.captured_at_monotonic, event.sequence)) + + +def _empty_utilization_totals() -> dict[str, dict[str, Any]]: + return {} + + +def _record_utilization_interval( + totals: dict[str, dict[str, Any]], + *, + resource_limits: dict[str, int], + active_by_resource: dict[str, int], + queued_or_waiting_by_resource: dict[str, int], + interval_seconds: float, +) -> None: + if interval_seconds <= 0.0: + return + resources = {*resource_limits, *active_by_resource, *queued_or_waiting_by_resource} + for resource in resources: + active = max(0, active_by_resource.get(resource, 0)) + capacity = max(1, resource_limits.get(resource, max(active, queued_or_waiting_by_resource.get(resource, 0)))) + idle_slots = max(0, capacity - active) + queued_or_waiting = queued_or_waiting_by_resource.get(resource, 0) + resource_totals = totals.setdefault( + resource, + { + "capacity": capacity, + "active_window_seconds": 0.0, + "capacity_seconds": 0.0, + "busy_capacity_seconds": 0.0, + "idle_capacity_seconds": 0.0, + "starved_idle_seconds": 0.0, + "max_in_flight": 0, + "max_idle_slots": 0, + "samples": [], + }, + ) + resource_totals["capacity"] = max(int(resource_totals["capacity"]), capacity) + resource_totals["active_window_seconds"] += interval_seconds + resource_totals["capacity_seconds"] += capacity * interval_seconds + resource_totals["busy_capacity_seconds"] += active * interval_seconds + resource_totals["idle_capacity_seconds"] += idle_slots * interval_seconds + if queued_or_waiting > 0 and idle_slots > 0: + resource_totals["starved_idle_seconds"] += idle_slots * interval_seconds + resource_totals["max_in_flight"] = max(int(resource_totals["max_in_flight"]), active) + resource_totals["max_idle_slots"] = max(int(resource_totals["max_idle_slots"]), idle_slots) + resource_totals["samples"].append((interval_seconds, active)) + + +def _finalize_utilization_metrics( + totals: dict[str, dict[str, Any]], + queue_ages: dict[str, list[float]], +) -> dict[str, dict[str, float | int]]: + metrics: dict[str, dict[str, float | int]] = {} + for resource, resource_totals in totals.items(): + capacity_seconds = float(resource_totals["capacity_seconds"]) + active_window_seconds = float(resource_totals["active_window_seconds"]) + busy_capacity_seconds = float(resource_totals["busy_capacity_seconds"]) + idle_capacity_seconds = float(resource_totals["idle_capacity_seconds"]) + starved_idle_seconds = float(resource_totals["starved_idle_seconds"]) + dependency_horizon_idle_seconds = max(0.0, idle_capacity_seconds - starved_idle_seconds) + ages = queue_ages.get(resource, []) + if busy_capacity_seconds == 0.0 and starved_idle_seconds == 0.0 and not ages: + continue + active_count_mean = _safe_ratio(busy_capacity_seconds, active_window_seconds) + active_count_stdev = _weighted_stdev(resource_totals["samples"]) + queue_age_mean_seconds = statistics.fmean(ages) if ages else 0.0 + queue_age_p50_seconds = _percentile(ages, 0.50) + queue_age_p95_seconds = _percentile(ages, 0.95) + queue_age_max_seconds = max(ages) if ages else 0.0 + metrics[resource] = { + "capacity": int(resource_totals["capacity"]), + "active_window_seconds": active_window_seconds, + "capacity_seconds": capacity_seconds, + "busy_capacity_seconds": busy_capacity_seconds, + "idle_capacity_seconds": idle_capacity_seconds, + "starved_idle_seconds": starved_idle_seconds, + "dependency_horizon_idle_seconds": dependency_horizon_idle_seconds, + "frontier_dependency_horizon_idle_seconds": dependency_horizon_idle_seconds, + "utilization_ratio": _safe_ratio(busy_capacity_seconds, capacity_seconds), + "idle_ratio": _safe_ratio(idle_capacity_seconds, capacity_seconds), + "starved_idle_ratio": _safe_ratio(starved_idle_seconds, capacity_seconds), + "dependency_horizon_idle_ratio": _safe_ratio(dependency_horizon_idle_seconds, capacity_seconds), + "frontier_dependency_horizon_idle_ratio": _safe_ratio( + dependency_horizon_idle_seconds, + capacity_seconds, + ), + "active_count_mean": active_count_mean, + "active_count_stdev": active_count_stdev, + "burstiness_coefficient": _safe_ratio(active_count_stdev, active_count_mean), + "max_in_flight": int(resource_totals["max_in_flight"]), + "max_idle_slots": int(resource_totals["max_idle_slots"]), + "scheduler_queue_age_mean_seconds": queue_age_mean_seconds, + "scheduler_queue_age_p50_seconds": queue_age_p50_seconds, + "scheduler_queue_age_p95_seconds": queue_age_p95_seconds, + "scheduler_queue_age_max_seconds": queue_age_max_seconds, + "scheduler_queue_age_sample_count": len(ages), + "ready_to_dispatch_gap_mean_seconds": queue_age_mean_seconds, + "ready_to_dispatch_gap_p50_seconds": queue_age_p50_seconds, + "ready_to_dispatch_gap_p95_seconds": queue_age_p95_seconds, + "ready_to_dispatch_gap_max_seconds": queue_age_max_seconds, + "ready_to_dispatch_sample_count": len(ages), + } + return metrics + + +def _event_resource_request(event: Any) -> dict[str, int]: + diagnostics = getattr(event, "diagnostics", {}) or {} + return _int_mapping(diagnostics.get("resource_request", {})) + + +def _queued_resource_demand(queued_by_task: Mapping[str, Mapping[str, int]]) -> dict[str, int]: + demand: dict[str, int] = {} + for resources in queued_by_task.values(): + for resource, amount in resources.items(): + demand[resource] = demand.get(resource, 0) + amount + return demand + + +def _int_mapping(value: Any) -> dict[str, int]: + if not isinstance(value, Mapping): + return {} + return {str(resource): int(amount) for resource, amount in value.items()} + + +def _weighted_stdev(samples: list[tuple[float, int]]) -> float: + total_weight = sum(weight for weight, _value in samples) + if total_weight <= 0.0: + return 0.0 + mean = sum(weight * value for weight, value in samples) / total_weight + variance = sum(weight * ((value - mean) ** 2) for weight, value in samples) / total_weight + return variance**0.5 + + +def _safe_ratio(numerator: float, denominator: float) -> float: + if denominator <= 0: + return 0.0 + return numerator / denominator + + +def _pipeline_derived_metrics(metrics: list[dict[str, Any]]) -> dict[str, Any]: + if not metrics: + return {} + ready_gap_p95s = [metric["downstream_ready_gap_p95_seconds"] for metric in metrics] + ready_gap_maxes = [metric["downstream_ready_gap_max_seconds"] for metric in metrics] + overlap_ratios = [metric["upstream_downstream_overlap_ratio"] for metric in metrics] + return { + "pipeline_validation_passed": all(metric["validation_passed"] for metric in metrics), + "pipeline_mean_overlap_ratio": statistics.fmean(overlap_ratios) if overlap_ratios else 0.0, + "pipeline_max_downstream_ready_gap_seconds": max(ready_gap_maxes) if ready_gap_maxes else 0.0, + "pipeline_p95_downstream_ready_gap_seconds": _percentile(ready_gap_p95s, 0.95), + "pipeline_downstream_interleaved_before_all_upstream_completed": all( + metric["validation"]["downstream_interleaved_before_all_upstream_completed"] for metric in metrics + ), + } + + +def _request_pressure_derived_metrics(iterations: list[dict[str, Any]]) -> dict[str, Any]: + metrics = [iteration.get("request_pressure_metrics", {}) for iteration in iterations] + if not any(metrics): + return {} + wait_seconds = [float(metric.get("request_wait_seconds_while_task_leased", 0.0)) for metric in metrics] + first_dispatches = [metric.get("first_model_dispatch_column") for metric in metrics] + skip_counts = [int(metric.get("request_pressure_advisory_skip_count", 0) or 0) for metric in metrics] + return { + "request_pressure_advisory_enabled": any( + bool(metric.get("request_pressure_advisory_enabled", False)) for metric in metrics + ), + "request_pressure_advisory_skip_count": sum(skip_counts), + "request_wait_seconds_while_task_leased_mean": statistics.fmean(wait_seconds), + "request_wait_seconds_while_task_leased_max": max(wait_seconds), + "first_model_dispatch_column": first_dispatches[0] if first_dispatches else None, + } + + +def _aggregate_utilization_metrics(iterations: list[dict[str, Any]]) -> dict[str, Any]: + scheduler = _aggregate_resource_utilization(iterations, "scheduler_resources") + request = _aggregate_resource_utilization(iterations, "request_resources") + all_scheduler = list(scheduler.values()) + all_request = list(request.values()) + return { + "scheduler_resource_utilization": scheduler, + "request_resource_utilization": request, + "scheduler_min_utilization_ratio": min( + (metric["mean_utilization_ratio"] for metric in all_scheduler), + default=0.0, + ), + "scheduler_max_starved_idle_seconds": max( + (metric["max_starved_idle_seconds"] for metric in all_scheduler), + default=0.0, + ), + "scheduler_max_ready_to_dispatch_gap_seconds": max( + (metric["max_ready_to_dispatch_gap_seconds"] for metric in all_scheduler), + default=0.0, + ), + "scheduler_max_scheduler_queue_age_seconds": max( + (metric["max_scheduler_queue_age_seconds"] for metric in all_scheduler), + default=0.0, + ), + "scheduler_max_burstiness_coefficient": max( + (metric["max_burstiness_coefficient"] for metric in all_scheduler), + default=0.0, + ), + "request_min_utilization_ratio": min( + (metric["mean_utilization_ratio"] for metric in all_request), + default=0.0, + ), + "request_max_starved_idle_seconds": max( + (metric["max_starved_idle_seconds"] for metric in all_request), + default=0.0, + ), + "request_max_ready_to_dispatch_gap_seconds": max( + (metric["max_ready_to_dispatch_gap_seconds"] for metric in all_request), + default=0.0, + ), + "request_max_burstiness_coefficient": max( + (metric["max_burstiness_coefficient"] for metric in all_request), + default=0.0, + ), + } + + +def _aggregate_resource_utilization( + iterations: list[dict[str, Any]], + resource_kind: str, +) -> dict[str, dict[str, float | int]]: + by_resource: dict[str, list[dict[str, float | int]]] = {} + for iteration in iterations: + for resource, metrics in iteration.get("utilization_metrics", {}).get(resource_kind, {}).items(): + by_resource.setdefault(resource, []).append(metrics) + + aggregated: dict[str, dict[str, float | int]] = {} + for resource, metrics in by_resource.items(): + utilization_ratios = [float(metric["utilization_ratio"]) for metric in metrics] + idle_seconds = [float(metric["idle_capacity_seconds"]) for metric in metrics] + starved_idle_seconds = [float(metric["starved_idle_seconds"]) for metric in metrics] + dependency_horizon_idle_seconds = [_dependency_horizon_idle_seconds(metric) for metric in metrics] + dependency_horizon_idle_ratios = [_dependency_horizon_idle_ratio(metric) for metric in metrics] + burstiness = [float(metric["burstiness_coefficient"]) for metric in metrics] + scheduler_queue_ages = [ + float(metric.get("scheduler_queue_age_max_seconds", metric["ready_to_dispatch_gap_max_seconds"])) + for metric in metrics + ] + aggregated[resource] = { + "iterations_observed": len(metrics), + "mean_utilization_ratio": statistics.fmean(utilization_ratios), + "min_utilization_ratio": min(utilization_ratios), + "max_utilization_ratio": max(utilization_ratios), + "mean_idle_capacity_seconds": statistics.fmean(idle_seconds), + "mean_starved_idle_seconds": statistics.fmean(starved_idle_seconds), + "mean_dependency_horizon_idle_seconds": statistics.fmean(dependency_horizon_idle_seconds), + "max_dependency_horizon_idle_seconds": max(dependency_horizon_idle_seconds), + "mean_dependency_horizon_idle_ratio": statistics.fmean(dependency_horizon_idle_ratios), + "max_dependency_horizon_idle_ratio": max(dependency_horizon_idle_ratios), + "mean_frontier_dependency_horizon_idle_seconds": statistics.fmean(dependency_horizon_idle_seconds), + "max_frontier_dependency_horizon_idle_seconds": max(dependency_horizon_idle_seconds), + "mean_frontier_dependency_horizon_idle_ratio": statistics.fmean(dependency_horizon_idle_ratios), + "max_frontier_dependency_horizon_idle_ratio": max(dependency_horizon_idle_ratios), + "max_starved_idle_seconds": max(starved_idle_seconds), + "max_burstiness_coefficient": max(burstiness), + "max_scheduler_queue_age_seconds": max(scheduler_queue_ages), + "max_ready_to_dispatch_gap_seconds": max(scheduler_queue_ages), + } + return aggregated + + +def _dependency_horizon_idle_seconds(metric: Mapping[str, float | int]) -> float: + if "dependency_horizon_idle_seconds" in metric: + return float(metric["dependency_horizon_idle_seconds"]) + return max(0.0, float(metric["idle_capacity_seconds"]) - float(metric["starved_idle_seconds"])) + + +def _dependency_horizon_idle_ratio(metric: Mapping[str, float | int]) -> float: + if "dependency_horizon_idle_ratio" in metric: + return float(metric["dependency_horizon_idle_ratio"]) + return _safe_ratio(_dependency_horizon_idle_seconds(metric), float(metric["capacity_seconds"])) + + +async def _measure_async_request_wakeup_seconds() -> float: + resource = RequestResourceKey("mock-provider", "mock-model", RequestDomain.CHAT) + controller = AdaptiveRequestAdmissionController( + RequestAdmissionConfig(default_queue_wait_timeout_seconds=30.0, increase_after_successes=1) + ) + controller.register( + provider_name="mock-provider", + model_id="mock-model", + alias="mock-alias", + max_parallel_requests=1, + ) + item = RequestAdmissionItem(resource, RequestGroupSpec(resource), queue_wait_timeout_seconds=30.0) + first_lease = controller.try_acquire(item) + if not isinstance(first_lease, RequestAdmissionLease): + raise RuntimeError(f"Expected initial request lease, got {first_lease.reason}") + + queued_task = asyncio.create_task(controller.acquire_async(item)) + for _ in range(100): + snapshot = controller.pressure.snapshot(resource) + if snapshot is not None and snapshot.waiters == 1: + break + await asyncio.sleep(0) + else: + raise RuntimeError("Async request waiter did not enqueue.") + + started = time.perf_counter() + controller.release(first_lease, RequestReleaseOutcome(kind="success")) + queued_lease = await asyncio.wait_for(queued_task, timeout=5.0) + elapsed = time.perf_counter() - started + controller.release(queued_lease, RequestReleaseOutcome(kind="success")) + return elapsed + + def _artifact(inputs: BenchmarkInputs, iterations: list[dict[str, Any]]) -> dict[str, Any]: resource = RequestResourceKey("mock-provider", "mock-model", RequestDomain.CHAT) provider_model = ProviderModelKey("mock-provider", "mock-model") @@ -307,6 +1408,10 @@ def _artifact(inputs: BenchmarkInputs, iterations: list[dict[str, Any]]) -> dict ), ) wall_times = [iteration["wall_time_seconds"] for iteration in iterations] + async_wakeups = [iteration["async_request_wakeup_seconds"] for iteration in iterations] + pipeline_metrics = [iteration["pipeline_metrics"] for iteration in iterations if "pipeline_metrics" in iteration] + utilization_metrics = _aggregate_utilization_metrics(iterations) + request_pressure_metrics = _request_pressure_derived_metrics(iterations) return { "scenario_id": inputs.scenario, "artifact_schema_version": ARTIFACT_SCHEMA_VERSION, @@ -315,6 +1420,8 @@ def _artifact(inputs: BenchmarkInputs, iterations: list[dict[str, Any]]) -> dict "baseline_sha": _git_rev_parse(inputs.baseline_ref), "candidate_sha": _git_rev_parse(inputs.candidate_ref), "worktree_dirty": _worktree_dirty(), + "worktree_status_short": _worktree_status_short(), + "worktree_diff_sha256": _worktree_diff_hash(), "command_line": sys.argv, "machine": { "platform": platform.platform(), @@ -333,6 +1440,12 @@ def _artifact(inputs: BenchmarkInputs, iterations: list[dict[str, Any]]) -> dict "min_wall_time_seconds": min(wall_times) if wall_times else 0.0, "max_wall_time_seconds": max(wall_times) if wall_times else 0.0, "stdev_wall_time_seconds": statistics.stdev(wall_times) if len(wall_times) > 1 else 0.0, + "mean_async_request_wakeup_seconds": statistics.fmean(async_wakeups) if async_wakeups else 0.0, + "p95_async_request_wakeup_seconds": _percentile(async_wakeups, 0.95), + "max_async_request_wakeup_seconds": max(async_wakeups) if async_wakeups else 0.0, + **_pipeline_derived_metrics(pipeline_metrics), + **utilization_metrics, + **request_pressure_metrics, "max_hidden_scheduler_resource_waiters": 0, "final_zero_task_leases": all( sum(iteration["final_task_snapshot"].leased_resources.values()) == 0 for iteration in iterations @@ -361,13 +1474,35 @@ def _event_payload(event: Any) -> dict[str, Any]: "scheduler_resource_key": getattr(event, "scheduler_resource_key", None), "request_resource_key": getattr(event, "request_resource_key", None), "reason_or_outcome": getattr(event, "reason_or_outcome", None) or getattr(event, "reason_or_result", None), + "snapshot": getattr(event, "snapshot", None), + "pressure_snapshot": getattr(event, "pressure_snapshot", None), + "diagnostics": getattr(event, "diagnostics", {}), } +def _iteration_min_utilization_ratio(iteration: Mapping[str, Any], resource_kind: str) -> float: + resources = iteration.get("utilization_metrics", {}).get(resource_kind, {}) + return min((float(metric["utilization_ratio"]) for metric in resources.values()), default=0.0) + + +def _iteration_starved_idle_seconds(iteration: Mapping[str, Any], resource_kind: str) -> float: + resources = iteration.get("utilization_metrics", {}).get(resource_kind, {}) + return sum(float(metric["starved_idle_seconds"]) for metric in resources.values()) + + def _write_csv(path: Path, artifact: Mapping[str, Any]) -> None: with path.open("w", newline="", encoding="utf-8") as handle: writer = csv.DictWriter( - handle, fieldnames=["iteration", "wall_time_seconds", "accepted_task_count", "output_hash"] + handle, + fieldnames=[ + "iteration", + "wall_time_seconds", + "async_request_wakeup_seconds", + "accepted_task_count", + "scheduler_min_utilization_ratio", + "scheduler_starved_idle_seconds", + "output_hash", + ], ) writer.writeheader() for index, iteration in enumerate(artifact["iterations"]): @@ -375,8 +1510,17 @@ def _write_csv(path: Path, artifact: Mapping[str, Any]) -> None: { "iteration": index, "wall_time_seconds": iteration["wall_time_seconds"], + "async_request_wakeup_seconds": iteration["async_request_wakeup_seconds"], "accepted_task_count": iteration["accepted_task_count"], - "output_hash": iteration["output_hashes"]["selected_task_ids"], + "scheduler_min_utilization_ratio": _iteration_min_utilization_ratio( + iteration, + "scheduler_resources", + ), + "scheduler_starved_idle_seconds": _iteration_starved_idle_seconds( + iteration, + "scheduler_resources", + ), + "output_hash": next(iter(iteration["output_hashes"].values())), } ) @@ -392,15 +1536,215 @@ def _write_markdown(path: Path, artifact: Mapping[str, Any]) -> None: f"- iterations: `{len(artifact['iterations'])}`", f"- mean_wall_time_seconds: `{metrics['mean_wall_time_seconds']:.6f}`", f"- p95_wall_time_seconds: `{metrics['p95_wall_time_seconds']:.6f}`", + f"- mean_async_request_wakeup_seconds: `{metrics['mean_async_request_wakeup_seconds']:.6f}`", + f"- p95_async_request_wakeup_seconds: `{metrics['p95_async_request_wakeup_seconds']:.6f}`", + f"- max_async_request_wakeup_seconds: `{metrics['max_async_request_wakeup_seconds']:.6f}`", + f"- scheduler_min_utilization_ratio: `{metrics['scheduler_min_utilization_ratio']:.6f}`", + f"- scheduler_max_starved_idle_seconds: `{metrics['scheduler_max_starved_idle_seconds']:.6f}`", + f"- scheduler_max_scheduler_queue_age_seconds: `{metrics['scheduler_max_scheduler_queue_age_seconds']:.6f}`", + "- scheduler_max_ready_to_dispatch_gap_seconds: " + f"`{metrics['scheduler_max_ready_to_dispatch_gap_seconds']:.6f}`", + f"- scheduler_max_burstiness_coefficient: `{metrics['scheduler_max_burstiness_coefficient']:.6f}`", f"- max_hidden_scheduler_resource_waiters: `{metrics['max_hidden_scheduler_resource_waiters']}`", f"- final_zero_task_leases: `{metrics['final_zero_task_leases']}`", f"- final_zero_request_leases: `{metrics['final_zero_request_leases']}`", f"- final_zero_request_waiters: `{metrics['final_zero_request_waiters']}`", - "", ] + if "pipeline_validation_passed" in metrics: + lines.extend( + [ + f"- pipeline_validation_passed: `{metrics['pipeline_validation_passed']}`", + f"- pipeline_mean_overlap_ratio: `{metrics['pipeline_mean_overlap_ratio']:.6f}`", + f"- pipeline_p95_downstream_ready_gap_seconds: `{metrics['pipeline_p95_downstream_ready_gap_seconds']:.6f}`", + f"- pipeline_max_downstream_ready_gap_seconds: `{metrics['pipeline_max_downstream_ready_gap_seconds']:.6f}`", + "- pipeline_downstream_interleaved_before_all_upstream_completed: " + f"`{metrics['pipeline_downstream_interleaved_before_all_upstream_completed']}`", + ] + ) + lines.extend( + _resource_utilization_markdown("Scheduler Resource Utilization", metrics["scheduler_resource_utilization"]) + ) + if metrics["request_resource_utilization"]: + lines.extend( + _resource_utilization_markdown("Request Resource Utilization", metrics["request_resource_utilization"]) + ) + lines.append("") path.write_text("\n".join(lines), encoding="utf-8") +def _resource_utilization_markdown(title: str, resources: Mapping[str, Mapping[str, Any]]) -> list[str]: + if not resources: + return [] + lines = ["", f"## {title}", ""] + for resource, metrics in sorted(resources.items()): + lines.append( + f"- `{resource}`: util=`{float(metrics['mean_utilization_ratio']):.6f}`, " + f"idle_s=`{float(metrics['mean_idle_capacity_seconds']):.6f}`, " + f"starved_idle_s=`{float(metrics['mean_starved_idle_seconds']):.6f}`, " + f"dependency_horizon_idle_s=`{float(metrics['mean_dependency_horizon_idle_seconds']):.6f}`, " + f"max_scheduler_queue_age_s=`{float(metrics['max_scheduler_queue_age_seconds']):.6f}`, " + f"burstiness=`{float(metrics['max_burstiness_coefficient']):.6f}`" + ) + return lines + + +def _validate_artifact(artifact: Mapping[str, Any]) -> None: + metrics = artifact["derived_metrics"] + inputs = artifact["inputs"] + task_capacity = _input_value(inputs, "task_admission_capacity") + failures: list[str] = [] + if not metrics["final_zero_task_leases"]: + failures.append("task leases leaked at end of benchmark") + if not metrics["final_zero_request_leases"]: + failures.append("request leases leaked at end of benchmark") + if not metrics["final_zero_request_waiters"]: + failures.append("request waiters leaked at end of benchmark") + if metrics["p95_async_request_wakeup_seconds"] > ASYNC_WAKEUP_GATE_SECONDS: + failures.append( + "async request wakeup p95 exceeded " + f"{ASYNC_WAKEUP_GATE_SECONDS:.3f}s: {metrics['p95_async_request_wakeup_seconds']:.6f}s" + ) + if "pipeline_validation_passed" in metrics and not metrics["pipeline_validation_passed"]: + failures.append("real-pipeline-overlap validation failed") + for index, iteration in enumerate(artifact["iterations"]): + selected_count = iteration.get( + "selected_task_count", + iteration.get("per_layer_observed_maxima", {}).get("selected_tasks", 0), + ) + accepted_count = iteration["accepted_task_count"] + if selected_count != accepted_count: + failures.append( + f"iteration {index} selected {selected_count} tasks but accepted {accepted_count}; queue drained early" + ) + observed = iteration.get("per_layer_observed_maxima", {}) + task_leases = observed.get("task_leases_by_resource", {}) + for resource, limit in _task_resource_limits(artifact, iteration, task_capacity).items(): + observed_count = int(task_leases.get(resource, 0)) + if observed_count > limit: + failures.append(f"iteration {index} exceeded {resource} task cap {limit}: observed {observed_count}") + request_limits = _request_resource_limits(iteration, default=max(1, task_capacity // 2)) + for resource, observed_count in observed.get("request_in_flight_by_resource", {}).items(): + request_capacity = request_limits.get(str(resource), max(1, task_capacity // 2)) + if int(observed_count) > request_capacity: + failures.append( + f"iteration {index} exceeded request cap {request_capacity} for {resource}: observed {observed_count}" + ) + utilization = iteration.get("utilization_metrics", {}) + scheduler_utilization = utilization.get("scheduler_resources", {}) + if not scheduler_utilization: + failures.append(f"iteration {index} did not record scheduler utilization metrics") + _validate_resource_utilization_metrics( + scheduler_utilization, + failures=failures, + iteration=index, + resource_kind="scheduler", + ) + _validate_resource_utilization_metrics( + utilization.get("request_resources", {}), + failures=failures, + iteration=index, + resource_kind="request", + ) + if failures: + joined = "; ".join(failures) + raise RuntimeError(f"Async scheduling benchmark validation failed: {joined}") + + +def _task_resource_limits( + artifact: Mapping[str, Any], + iteration: Mapping[str, Any], + task_capacity: int, +) -> dict[str, int]: + default = { + "submission": task_capacity, + "llm_wait": max(1, task_capacity // 2), + "local": task_capacity, + } + plan = iteration.get("capacity_plan") or artifact.get("capacity_plan") + configured = _field(plan, "configured") + capacity_value = _field(configured, "task_resource_limits") + value = _field(capacity_value, "value") + if not isinstance(value, Mapping): + return default + return {str(resource): int(limit) for resource, limit in value.items()} + + +def _request_resource_limits(iteration: Mapping[str, Any], *, default: int) -> dict[str, int]: + final_request_snapshot = iteration.get("final_request_snapshot", {}) + domains = _field(final_request_snapshot, "domains") + if not isinstance(domains, Mapping): + return {} + limits: dict[str, int] = {} + for resource, snapshot in domains.items(): + effective_max = _field(snapshot, "effective_max") + current_limit = _field(snapshot, "current_limit") + limit = effective_max if effective_max is not None else current_limit + limits[str(resource)] = int(limit if limit is not None else default) + return limits + + +def _field(value: Any, name: str) -> Any: + if isinstance(value, Mapping): + return value.get(name) + return getattr(value, name, None) + + +def _validate_resource_utilization_metrics( + resource_metrics: Mapping[str, Mapping[str, Any]], + *, + failures: list[str], + iteration: int, + resource_kind: str, +) -> None: + for resource, metrics in resource_metrics.items(): + capacity_seconds = float(metrics.get("capacity_seconds", 0.0)) + busy_capacity_seconds = float(metrics.get("busy_capacity_seconds", 0.0)) + idle_capacity_seconds = float(metrics.get("idle_capacity_seconds", 0.0)) + starved_idle_seconds = float(metrics.get("starved_idle_seconds", 0.0)) + dependency_horizon_idle_seconds = float( + metrics.get( + "dependency_horizon_idle_seconds", + max(0.0, idle_capacity_seconds - starved_idle_seconds), + ) + ) + utilization_ratio = float(metrics.get("utilization_ratio", -1.0)) + dependency_horizon_idle_ratio = float( + metrics.get( + "dependency_horizon_idle_ratio", + _safe_ratio(dependency_horizon_idle_seconds, capacity_seconds), + ) + ) + if ( + min( + capacity_seconds, + busy_capacity_seconds, + idle_capacity_seconds, + starved_idle_seconds, + dependency_horizon_idle_seconds, + ) + < 0.0 + ): + failures.append(f"iteration {iteration} has negative {resource_kind} utilization metric for {resource}") + if busy_capacity_seconds > capacity_seconds + 1e-9: + failures.append(f"iteration {iteration} has busy {resource_kind} capacity above total for {resource}") + if starved_idle_seconds > idle_capacity_seconds + 1e-9: + failures.append(f"iteration {iteration} has starved {resource_kind} idle above total idle for {resource}") + if abs((starved_idle_seconds + dependency_horizon_idle_seconds) - idle_capacity_seconds) > 1e-9: + failures.append(f"iteration {iteration} has invalid {resource_kind} idle partition for {resource}") + if not 0.0 <= utilization_ratio <= 1.0: + failures.append(f"iteration {iteration} has invalid {resource_kind} utilization ratio for {resource}") + if not 0.0 <= dependency_horizon_idle_ratio <= 1.0: + failures.append( + f"iteration {iteration} has invalid {resource_kind} dependency-horizon idle ratio for {resource}" + ) + + +def _input_value(inputs: Any, name: str) -> Any: + if isinstance(inputs, Mapping): + return inputs[name] + return getattr(inputs, name) + + def _git_rev_parse(ref: str) -> str: try: return subprocess.check_output(["git", "rev-parse", ref], text=True).strip() @@ -416,6 +1760,22 @@ def _worktree_dirty() -> bool: return bool(result.stdout.strip()) +def _worktree_status_short() -> str: + try: + result = subprocess.run(["git", "status", "--short"], check=False, capture_output=True, text=True) + except Exception as exc: + return f"unavailable:{exc}" + return result.stdout + + +def _worktree_diff_hash() -> str: + try: + diff = subprocess.check_output(["git", "diff", "--binary", "HEAD"], text=False) + except Exception as exc: + return f"unavailable:{exc}" + return hashlib.sha256(diff).hexdigest() + + def _percentile(values: list[float], pct: float) -> float: if not values: return 0.0 diff --git a/scripts/benchmarks/export_async_scheduling_perfetto.py b/scripts/benchmarks/export_async_scheduling_perfetto.py new file mode 100644 index 000000000..ea847f58e --- /dev/null +++ b/scripts/benchmarks/export_async_scheduling_perfetto.py @@ -0,0 +1,431 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Export async scheduling benchmark sink timelines to Perfetto JSON. + +The output is Chrome trace-event JSON, which Perfetto can open directly. +""" + +from __future__ import annotations + +import argparse +import json +from collections.abc import Mapping +from pathlib import Path +from typing import Any + +TRACE_SCHEMA = "async-scheduling-perfetto-trace-v1" + +PID = 1 +LANES = { + "scheduler_events": 1, + "row_groups": 2, + "task_execution": 3, + "task_leases": 4, + "request_waits": 5, + "request_leases": 6, + "model_requests": 7, + "counters": 8, +} + +TERMINAL_REQUEST_WAIT_EVENTS = { + "request_wait_completed", + "request_wait_timeout", + "request_wait_cancelled", + "request_acquire_denied", +} + + +def main() -> None: + args = _parse_args() + artifact_path = Path(args.artifact) + artifact = json.loads(artifact_path.read_text(encoding="utf-8")) + output_path = Path(args.output) if args.output else artifact_path.with_suffix(".perfetto.json") + trace = benchmark_artifact_to_perfetto(artifact, iteration_index=args.iteration) + output_path.parent.mkdir(parents=True, exist_ok=True) + output_path.write_text(json.dumps(trace, indent=2, sort_keys=True) + "\n", encoding="utf-8") + print(f"Wrote {output_path}") + + +def _parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("artifact", help="Path to async_scheduling_benchmark.json") + parser.add_argument("--output", help="Output .perfetto.json path") + parser.add_argument("--iteration", type=int, default=0, help="Benchmark iteration index to export.") + return parser.parse_args() + + +def benchmark_artifact_to_perfetto( + artifact: Mapping[str, Any], + *, + iteration_index: int = 0, +) -> dict[str, Any]: + iterations = artifact.get("iterations", []) + if not isinstance(iterations, list) or not iterations: + raise ValueError("Benchmark artifact has no iterations.") + try: + iteration = iterations[iteration_index] + except IndexError: + raise ValueError(f"Iteration {iteration_index} is not present.") from None + timeline = sorted( + iteration.get("timeline", []), + key=lambda event: ( + float(event.get("captured_at_monotonic", 0.0) or 0.0), + int(event.get("sequence", 0) or 0), + ), + ) + if not timeline: + raise ValueError("Selected iteration has no timeline events.") + + base = min(float(event.get("captured_at_monotonic", 0.0) or 0.0) for event in timeline) + trace_events: list[dict[str, Any]] = [] + trace_events.extend(_metadata_events()) + trace_events.extend(_counter_events(timeline, base)) + trace_events.extend(_interval_events(timeline, base)) + trace_events.extend(_instant_events(timeline, base)) + + return { + "traceEvents": trace_events, + "displayTimeUnit": "ms", + "metadata": { + "schema": TRACE_SCHEMA, + "scenario_id": artifact.get("scenario_id"), + "scenario_version": artifact.get("scenario_version"), + "harness_version": artifact.get("harness_version"), + "iteration_index": iteration_index, + "mean_wall_time_seconds": artifact.get("derived_metrics", {}).get("mean_wall_time_seconds"), + "candidate_sha": artifact.get("candidate_sha"), + "worktree_dirty": artifact.get("worktree_dirty"), + "worktree_diff_sha256": artifact.get("worktree_diff_sha256"), + }, + } + + +def _metadata_events() -> list[dict[str, Any]]: + return [ + { + "name": "thread_name", + "ph": "M", + "pid": PID, + "tid": tid, + "args": {"name": name}, + } + for name, tid in LANES.items() + ] + + +def _counter_events(timeline: list[Mapping[str, Any]], base: float) -> list[dict[str, Any]]: + events: list[dict[str, Any]] = [] + for event in timeline: + if event.get("event_kind") != "scheduler_health_snapshot": + continue + diagnostics = _mapping(event.get("diagnostics")) + ts = _timestamp_us(event, base) + counters = { + "active_row_groups": diagnostics.get("active_row_groups"), + "target_row_groups": diagnostics.get("target_row_groups"), + "active_admitted_rows": diagnostics.get("active_admitted_rows"), + "queued_total": diagnostics.get("queued_total"), + "in_flight_tasks": diagnostics.get("in_flight_tasks"), + "active_workers": diagnostics.get("active_workers"), + "deferred_tasks": diagnostics.get("deferred_tasks"), + "request_pressure_advisory_skips": diagnostics.get("request_pressure_advisory_skips"), + } + for name, value in counters.items(): + if isinstance(value, int | float): + events.append(_counter_event(name, ts, value)) + for resource, value in _mapping(diagnostics.get("leased_resources")).items(): + if isinstance(value, int | float): + events.append(_counter_event(f"leased:{resource}", ts, value)) + for resource, value in _mapping(diagnostics.get("resources_available")).items(): + if isinstance(value, int | float): + events.append(_counter_event(f"available:{resource}", ts, value)) + for resource, value in _mapping(diagnostics.get("queued_demand_by_resource")).items(): + if isinstance(value, int | float): + events.append(_counter_event(f"queued_demand:{resource}", ts, value)) + request_pressure = _mapping(diagnostics.get("request_pressure")) + for resource, snapshot in _mapping(request_pressure.get("resources")).items(): + snapshot_map = _mapping(snapshot) + for field in ("in_flight_count", "waiters", "current_limit", "effective_max"): + value = snapshot_map.get(field) + if isinstance(value, int | float): + events.append(_counter_event(f"request:{resource}:{field}", ts, value)) + return events + + +def _counter_event(name: str, ts: int, value: int | float) -> dict[str, Any]: + return { + "name": name, + "cat": "scheduler_counters", + "ph": "C", + "pid": PID, + "tid": LANES["counters"], + "ts": ts, + "args": {"value": value}, + } + + +def _interval_events(timeline: list[Mapping[str, Any]], base: float) -> list[dict[str, Any]]: + starts: dict[tuple[str, str], Mapping[str, Any]] = {} + intervals: list[dict[str, Any]] = [] + for event in timeline: + kind = str(event.get("event_kind")) + if kind == "row_group_admitted": + row_group = _diagnostic(event, "row_group") + if row_group is not None: + starts[("row_group", str(row_group))] = event + elif kind == "row_group_checkpointed": + row_group = _diagnostic(event, "row_group") + if row_group is not None: + intervals.extend( + _finish_interval( + starts, + ("row_group", str(row_group)), + event, + base, + lane="row_groups", + cat="row_group", + name=f"row group {row_group}", + ) + ) + elif kind == "worker_spawned": + task_execution_id = _event_key(event, "task_execution_id") + if task_execution_id is not None: + starts[("task_execution", task_execution_id)] = event + elif kind == "task_completed": + task_execution_id = _event_key(event, "task_execution_id") + if task_execution_id is not None: + intervals.extend( + _finish_interval( + starts, + ("task_execution", task_execution_id), + event, + base, + lane="task_execution", + cat="scheduler_task", + name=f"task {_task_label(event)}", + ) + ) + elif kind == "task_lease_acquired": + lease_id = _event_key(event, "task_lease_id") + if lease_id is not None: + starts[("task_lease", lease_id)] = event + elif kind == "task_lease_released": + lease_id = _event_key(event, "task_lease_id") + if lease_id is not None: + intervals.extend( + _finish_interval( + starts, + ("task_lease", lease_id), + event, + base, + lane="task_leases", + cat="scheduler_lease", + name=f"task lease {_task_label(event)}", + ) + ) + elif kind == "request_wait_started": + request_key = _request_attempt_key(event) + if request_key is not None: + starts[("request_wait", request_key)] = event + elif kind in TERMINAL_REQUEST_WAIT_EVENTS: + request_key = _request_attempt_key(event) + if request_key is not None: + intervals.extend( + _finish_interval( + starts, + ("request_wait", request_key), + event, + base, + lane="request_waits", + cat="request_wait", + name=f"request wait {_request_resource_label(event)}", + ) + ) + elif kind == "request_lease_acquired": + lease_id = _event_key(event, "request_lease_id") + if lease_id is not None: + starts[("request_lease", lease_id)] = event + elif kind == "request_lease_released": + lease_id = _event_key(event, "request_lease_id") + if lease_id is not None: + intervals.extend( + _finish_interval( + starts, + ("request_lease", lease_id), + event, + base, + lane="request_leases", + cat="request_lease", + name=f"request lease {_request_resource_label(event)}", + ) + ) + elif kind == "model_request_started": + request_key = _request_attempt_key(event) or _event_key(event, "request_lease_id") + if request_key is not None: + starts[("model_request", request_key)] = event + elif kind == "model_request_completed": + request_key = _request_attempt_key(event) or _event_key(event, "request_lease_id") + if request_key is not None: + intervals.extend( + _finish_interval( + starts, + ("model_request", request_key), + event, + base, + lane="model_requests", + cat="model_request", + name=f"model request {_request_resource_label(event)}", + ) + ) + return intervals + + +def _finish_interval( + starts: dict[tuple[str, str], Mapping[str, Any]], + key: tuple[str, str], + end_event: Mapping[str, Any], + base: float, + *, + lane: str, + cat: str, + name: str, +) -> list[dict[str, Any]]: + start_event = starts.pop(key, None) + if start_event is None: + return [] + started = _timestamp_us(start_event, base) + ended = _timestamp_us(end_event, base) + return [ + { + "name": name, + "cat": cat, + "ph": "X", + "pid": PID, + "tid": LANES[lane], + "ts": started, + "dur": max(0, ended - started), + "args": _event_args(end_event) | {"start_event": _event_args(start_event)}, + } + ] + + +def _instant_events(timeline: list[Mapping[str, Any]], base: float) -> list[dict[str, Any]]: + events = [] + for event in timeline: + stream = str(event.get("stream", "scheduler")) + kind = str(event.get("event_kind")) + lane = "scheduler_events" + events.append( + { + "name": kind, + "cat": f"{stream}_event", + "ph": "i", + "s": "t", + "pid": PID, + "tid": LANES[lane], + "ts": _timestamp_us(event, base), + "args": _event_args(event), + } + ) + return events + + +def _event_args(event: Mapping[str, Any]) -> dict[str, Any]: + return { + "stream": event.get("stream"), + "sequence": event.get("sequence"), + "task_id": event.get("task_id"), + "task_execution_id": event.get("task_execution_id"), + "task_lease_id": event.get("task_lease_id"), + "request_attempt_id": event.get("request_attempt_id"), + "request_lease_id": event.get("request_lease_id"), + "request_resource": _request_resource_label(event), + "reason_or_outcome": event.get("reason_or_outcome"), + "correlation": _jsonable(event.get("captured_correlation"), max_depth=2), + "diagnostics": _jsonable(event.get("diagnostics"), max_depth=3), + } + + +def _timestamp_us(event: Mapping[str, Any], base: float) -> int: + captured_at = float(event.get("captured_at_monotonic", 0.0) or 0.0) + return int(round((captured_at - base) * 1_000_000.0)) + + +def _event_key(event: Mapping[str, Any], key: str) -> str | None: + value = event.get(key) + return None if value is None else str(value) + + +def _request_attempt_key(event: Mapping[str, Any]) -> str | None: + attempt_id = _event_key(event, "request_attempt_id") + if attempt_id is not None: + return attempt_id + lease_id = _event_key(event, "request_lease_id") + if lease_id is not None: + return lease_id + correlation = _mapping(event.get("captured_correlation")) + task_execution_id = correlation.get("task_execution_id") + request_resource = _request_resource_label(event) + if task_execution_id is None and request_resource is None: + return None + return f"{task_execution_id}:{request_resource}" + + +def _task_label(event: Mapping[str, Any]) -> str: + correlation = _mapping(event.get("captured_correlation")) + column = correlation.get("task_column") or "unknown" + row_group = correlation.get("row_group") + task_type = correlation.get("task_type") or "task" + return f"{column} rg={row_group} {task_type}" + + +def _request_resource_label(event: Mapping[str, Any]) -> str | None: + resource = event.get("request_resource_key") + if resource is None: + resource = _diagnostic(event, "request_resource") + if isinstance(resource, Mapping): + provider = resource.get("provider_name") + model = resource.get("model_id") + domain = resource.get("domain") + if provider is not None and model is not None and domain is not None: + return f"{provider}/{model}/{domain}" + return None if resource is None else str(resource) + + +def _diagnostic(event: Mapping[str, Any], key: str) -> Any: + diagnostics = event.get("diagnostics", {}) + if not isinstance(diagnostics, Mapping): + return None + return diagnostics.get(key) + + +def _mapping(value: Any) -> Mapping[str, Any]: + return value if isinstance(value, Mapping) else {} + + +def _jsonable(value: Any, *, max_depth: int, depth: int = 0) -> Any: + if value is None or isinstance(value, str | int | float | bool): + return value + if depth >= max_depth: + return str(value) + if isinstance(value, Mapping): + return { + str(_jsonable(key, max_depth=max_depth, depth=depth + 1)): _jsonable( + item, + max_depth=max_depth, + depth=depth + 1, + ) + for key, item in list(value.items())[:50] + } + if isinstance(value, list | tuple | set): + items = list(value) + result = [_jsonable(item, max_depth=max_depth, depth=depth + 1) for item in items[:50]] + if len(items) > 50: + result.append(f"... {len(items) - 50} more") + return result + return str(value) + + +if __name__ == "__main__": + main() diff --git a/scripts/benchmarks/generate_async_scheduling_idle_report.py b/scripts/benchmarks/generate_async_scheduling_idle_report.py new file mode 100644 index 000000000..707706090 --- /dev/null +++ b/scripts/benchmarks/generate_async_scheduling_idle_report.py @@ -0,0 +1,1765 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Generate an HTML idle-time analysis report for async scheduling benchmarks.""" + +from __future__ import annotations + +import argparse +import html +import json +import math +import subprocess +import sys +from collections.abc import Iterable, Mapping, Sequence +from dataclasses import asdict, dataclass, replace +from pathlib import Path +from typing import Any + +DEFAULT_ARTIFACT_DIR = Path("artifacts/async-scheduling-idle-analysis") +DEFAULT_REPORT_PATH = Path("reports/async-scheduling-idle-analysis.html") +BENCHMARK_SCRIPT = Path("scripts/benchmarks/benchmark_async_scheduling.py") +IDLE_SUITE_ID = "async-scheduling-idle-regression" +IDLE_SUITE_VERSION = "1.1" +IDLE_SUMMARY_SCHEMA_VERSION = "async-scheduling-idle-summary-v1" + + +@dataclass(frozen=True) +class IdleBenchmarkCase: + name: str + sweep: str + record_count: int + buffer_size: int + row_group_concurrency: int + task_admission_capacity: int + fanout_width: int + upstream_latency_seconds: float + downstream_latency_seconds: float + scenario: str = "real-pipeline-overlap" + request_latency_seconds: float = 0.0 + model_stage_weight: int = 0 + adaptive_row_group_admission: bool = False + request_pressure_advisory: bool = False + iterations: int = 1 + warmups: int = 0 + + @property + def generation_count(self) -> int: + return self.record_count * self.fanout_width * 2 + + +@dataclass(frozen=True) +class IdleBenchmarkResult: + case: IdleBenchmarkCase + artifact_path: Path + mean_wall_time_seconds: float + p95_wall_time_seconds: float + llm_utilization_ratio: float + llm_idle_ratio: float + llm_starved_idle_ratio: float + llm_frontier_dependency_horizon_idle_ratio: float + llm_starved_idle_seconds: float + llm_frontier_dependency_horizon_idle_seconds: float + llm_scheduler_queue_age_p95_seconds: float + llm_scheduler_queue_age_max_seconds: float + llm_ready_gap_p95_seconds: float + llm_ready_gap_max_seconds: float + llm_burstiness_coefficient: float + submission_utilization_ratio: float + submission_starved_idle_ratio: float + submission_frontier_dependency_horizon_idle_ratio: float + pipeline_overlap_ratio: float + downstream_ready_gap_p95_seconds: float + downstream_ready_gap_max_seconds: float + throughput_generations_per_second: float + request_wait_seconds_while_task_leased_mean: float + request_wait_seconds_while_task_leased_max: float + request_utilization_ratio: float + request_idle_ratio: float + request_starved_idle_ratio: float + request_frontier_dependency_horizon_idle_ratio: float + request_burstiness_coefficient: float + request_pressure_advisory_skip_count: int + first_model_dispatch_column: str | None + request_pressure_advisory_enabled: bool + row_group_admission_mode: str + row_group_admission_target: int | None + row_group_admission_observed_max_target: int | None + row_group_admission_max_admitted_rows: int | None + validation_passed: bool + final_zero_task_leases: bool + final_zero_request_leases: bool + final_zero_request_waiters: bool + + +def main() -> None: + args = _parse_args() + artifact_dir = Path(args.artifact_dir) + report_path = Path(args.report_path) + artifact_dir.mkdir(parents=True, exist_ok=True) + report_path.parent.mkdir(parents=True, exist_ok=True) + + results = run_idle_benchmark_suite(artifact_dir, quick=args.quick, skip_run=args.skip_run) + render_idle_report(results, report_path, artifact_dir) + if args.summary_path: + write_idle_results_summary(Path(args.summary_path), results, quick=args.quick) + + print(f"Wrote {report_path}") + print(f"Wrote benchmark artifacts under {artifact_dir}") + if args.summary_path: + print(f"Wrote {args.summary_path}") + + +def _parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--artifact-dir", default=str(DEFAULT_ARTIFACT_DIR)) + parser.add_argument("--report-path", default=str(DEFAULT_REPORT_PATH)) + parser.add_argument("--summary-path") + parser.add_argument("--skip-run", action="store_true", help="Reuse existing benchmark JSON files.") + parser.add_argument( + "--quick", + action="store_true", + help="Run a shorter smoke suite while preserving every sweep dimension.", + ) + return parser.parse_args() + + +def build_idle_benchmark_cases(*, quick: bool) -> list[IdleBenchmarkCase]: + return _build_cases(quick) + + +def run_idle_benchmark_suite( + artifact_dir: Path, + *, + quick: bool, + skip_run: bool, +) -> list[IdleBenchmarkResult]: + cases = build_idle_benchmark_cases(quick=quick) + return [_run_or_load_case(case, artifact_dir, skip_run=skip_run) for case in cases] + + +def render_idle_report( + results: Sequence[IdleBenchmarkResult], + report_path: Path, + artifact_dir: Path, +) -> None: + report_path.parent.mkdir(parents=True, exist_ok=True) + report_path.write_text(_render_report(results, report_path, artifact_dir), encoding="utf-8") + + +def write_idle_results_summary( + summary_path: Path, + results: Sequence[IdleBenchmarkResult], + *, + quick: bool, +) -> None: + summary_path.parent.mkdir(parents=True, exist_ok=True) + summary = idle_results_summary(results, quick=quick) + summary_path.write_text(json.dumps(summary, indent=2, sort_keys=True) + "\n", encoding="utf-8") + + +def idle_results_summary(results: Sequence[IdleBenchmarkResult], *, quick: bool) -> dict[str, Any]: + cases = {_case_key(result): _result_summary(result) for result in results} + return { + "summary_schema_version": IDLE_SUMMARY_SCHEMA_VERSION, + "suite_id": IDLE_SUITE_ID, + "suite_version": IDLE_SUITE_VERSION, + "mode": "quick" if quick else "full", + "case_count": len(results), + "largest_generation_count": max((result.case.generation_count for result in results), default=0), + "cases": cases, + } + + +def _result_summary(result: IdleBenchmarkResult) -> dict[str, Any]: + return { + "case": asdict(result.case), + "artifact_path": str(result.artifact_path), + "generation_count": result.case.generation_count, + "mean_wall_time_seconds": result.mean_wall_time_seconds, + "p95_wall_time_seconds": result.p95_wall_time_seconds, + "llm_wait_utilization_ratio": result.llm_utilization_ratio, + "llm_wait_idle_ratio": result.llm_idle_ratio, + "llm_wait_starved_idle_ratio": result.llm_starved_idle_ratio, + "llm_wait_frontier_dependency_horizon_idle_ratio": result.llm_frontier_dependency_horizon_idle_ratio, + "llm_wait_dependency_horizon_idle_ratio": result.llm_frontier_dependency_horizon_idle_ratio, + "llm_wait_starved_idle_seconds": result.llm_starved_idle_seconds, + "llm_wait_frontier_dependency_horizon_idle_seconds": result.llm_frontier_dependency_horizon_idle_seconds, + "llm_wait_dependency_horizon_idle_seconds": result.llm_frontier_dependency_horizon_idle_seconds, + "llm_wait_scheduler_queue_age_p95_seconds": result.llm_scheduler_queue_age_p95_seconds, + "llm_wait_scheduler_queue_age_max_seconds": result.llm_scheduler_queue_age_max_seconds, + "llm_wait_ready_gap_p95_seconds": result.llm_ready_gap_p95_seconds, + "llm_wait_ready_gap_max_seconds": result.llm_ready_gap_max_seconds, + "llm_wait_burstiness_coefficient": result.llm_burstiness_coefficient, + "submission_utilization_ratio": result.submission_utilization_ratio, + "submission_starved_idle_ratio": result.submission_starved_idle_ratio, + "submission_frontier_dependency_horizon_idle_ratio": (result.submission_frontier_dependency_horizon_idle_ratio), + "pipeline_overlap_ratio": result.pipeline_overlap_ratio, + "downstream_ready_gap_p95_seconds": result.downstream_ready_gap_p95_seconds, + "downstream_ready_gap_max_seconds": result.downstream_ready_gap_max_seconds, + "throughput_generations_per_second": result.throughput_generations_per_second, + "request_wait_seconds_while_task_leased_mean": result.request_wait_seconds_while_task_leased_mean, + "request_wait_seconds_while_task_leased_max": result.request_wait_seconds_while_task_leased_max, + "request_utilization_ratio": result.request_utilization_ratio, + "request_idle_ratio": result.request_idle_ratio, + "request_starved_idle_ratio": result.request_starved_idle_ratio, + "request_frontier_dependency_horizon_idle_ratio": result.request_frontier_dependency_horizon_idle_ratio, + "request_burstiness_coefficient": result.request_burstiness_coefficient, + "request_pressure_advisory_skip_count": result.request_pressure_advisory_skip_count, + "first_model_dispatch_column": result.first_model_dispatch_column, + "request_pressure_advisory_enabled": result.request_pressure_advisory_enabled, + "row_group_admission_mode": result.row_group_admission_mode, + "row_group_admission_target": result.row_group_admission_target, + "row_group_admission_observed_max_target": result.row_group_admission_observed_max_target, + "row_group_admission_max_admitted_rows": result.row_group_admission_max_admitted_rows, + "validation_passed": result.validation_passed, + "final_zero_task_leases": result.final_zero_task_leases, + "final_zero_request_leases": result.final_zero_request_leases, + "final_zero_request_waiters": result.final_zero_request_waiters, + "dominant_idle_class": _dominant_idle_class(result), + "recommended_next_lever": _recommended_next_lever(result), + } + + +def _case_key(result: IdleBenchmarkResult) -> str: + return f"{result.case.sweep}/{result.case.name}" + + +def _build_cases(quick: bool) -> list[IdleBenchmarkCase]: + base = IdleBenchmarkCase( + name="baseline-frontier", + sweep="baseline", + record_count=512, + buffer_size=64, + row_group_concurrency=4, + task_admission_capacity=8, + fanout_width=4, + upstream_latency_seconds=0.003, + downstream_latency_seconds=0.0003, + ) + rows = [64, 128, 256] if quick else [64, 128, 256, 512, 1024] + row_group_concurrency = [1, 2, 4] if quick else [1, 2, 4, 8] + buffers = [1, 16, 64] if quick else [1, 4, 16, 64, 256] + capacities = [4, 8] if quick else [4, 8, 16] + adaptation_rows = 512 if quick else 1024 + combined_adaptation_rows = 128 if quick else 512 + + cases = [ + replace(base, name=f"rows-{record_count}", sweep="row-scale", record_count=record_count) + for record_count in rows + ] + cases.extend( + replace( + base, + name=f"row-groups-{concurrency}", + sweep="row-group-concurrency", + record_count=512, + buffer_size=1, + row_group_concurrency=concurrency, + fanout_width=1, + ) + for concurrency in row_group_concurrency + ) + cases.extend( + replace(base, name=f"buffer-{buffer_size}", sweep="buffer-size", record_count=512, buffer_size=buffer_size) + for buffer_size in buffers + ) + cases.extend( + replace( + base, + name=f"capacity-{capacity}", + sweep="llm-capacity", + record_count=512, + buffer_size=1, + task_admission_capacity=capacity, + row_group_concurrency=4, + fanout_width=1, + ) + for capacity in capacities + ) + cases.extend( + ( + replace( + base, + name="weight-custom-model-1", + sweep="custom-model-weight", + record_count=512, + model_stage_weight=1, + ), + replace( + base, + name="weight-model-capacity", + sweep="custom-model-weight", + record_count=512, + model_stage_weight=0, + ), + ) + ) + cases.extend( + ( + replace( + base, + name="narrow-frontier-high-cap", + sweep="stress-shape", + record_count=1024, + buffer_size=1, + row_group_concurrency=1, + task_admission_capacity=16, + fanout_width=1, + upstream_latency_seconds=0.006, + downstream_latency_seconds=0.0003, + ), + replace( + base, + name="wide-frontier-high-cap", + sweep="stress-shape", + record_count=1024, + buffer_size=64, + row_group_concurrency=16, + task_admission_capacity=16, + fanout_width=4, + upstream_latency_seconds=0.006, + downstream_latency_seconds=0.0003, + ), + ) + ) + cases.extend( + ( + replace( + base, + name="adaptive-row-groups-fixed-low", + sweep="adaptations", + record_count=adaptation_rows, + buffer_size=1, + row_group_concurrency=1, + task_admission_capacity=16, + fanout_width=1, + upstream_latency_seconds=0.006, + downstream_latency_seconds=0.0003, + ), + replace( + base, + name="adaptive-row-groups-adaptive", + sweep="adaptations", + record_count=adaptation_rows, + buffer_size=1, + row_group_concurrency=8, + task_admission_capacity=16, + fanout_width=1, + upstream_latency_seconds=0.006, + downstream_latency_seconds=0.0003, + adaptive_row_group_admission=True, + ), + replace( + base, + name="adaptive-row-groups-fixed-high", + sweep="adaptations", + record_count=adaptation_rows, + buffer_size=1, + row_group_concurrency=8, + task_admission_capacity=16, + fanout_width=1, + upstream_latency_seconds=0.006, + downstream_latency_seconds=0.0003, + ), + replace( + base, + name="request-pressure-control", + sweep="adaptations", + scenario="request-pressure-advisory", + record_count=32, + buffer_size=32, + row_group_concurrency=1, + task_admission_capacity=1, + fanout_width=1, + request_latency_seconds=0.05, + upstream_latency_seconds=0.0, + downstream_latency_seconds=0.001, + ), + replace( + base, + name="request-pressure-advisory", + sweep="adaptations", + scenario="request-pressure-advisory", + record_count=32, + buffer_size=32, + row_group_concurrency=1, + task_admission_capacity=1, + fanout_width=1, + request_latency_seconds=0.05, + upstream_latency_seconds=0.0, + downstream_latency_seconds=0.001, + request_pressure_advisory=True, + ), + replace( + base, + name="adaptive-request-pressure-control", + sweep="adaptations", + scenario="adaptive-request-pressure", + record_count=combined_adaptation_rows, + buffer_size=1, + row_group_concurrency=8, + task_admission_capacity=4, + fanout_width=1, + request_latency_seconds=0.05, + upstream_latency_seconds=0.0, + downstream_latency_seconds=0.001, + adaptive_row_group_admission=True, + iterations=3, + ), + replace( + base, + name="adaptive-request-pressure-combined", + sweep="adaptations", + scenario="adaptive-request-pressure", + record_count=combined_adaptation_rows, + buffer_size=1, + row_group_concurrency=8, + task_admission_capacity=4, + fanout_width=1, + request_latency_seconds=0.05, + upstream_latency_seconds=0.0, + downstream_latency_seconds=0.001, + adaptive_row_group_admission=True, + request_pressure_advisory=True, + iterations=3, + ), + ) + ) + return cases + + +def _run_or_load_case(case: IdleBenchmarkCase, artifact_dir: Path, *, skip_run: bool) -> IdleBenchmarkResult: + output_dir = artifact_dir / case.sweep / case.name + json_path = output_dir / "async_scheduling_benchmark.json" + if not skip_run or not json_path.exists(): + output_dir.mkdir(parents=True, exist_ok=True) + command = [ + sys.executable, + str(BENCHMARK_SCRIPT), + "--scenario", + case.scenario, + "--record-count", + str(case.record_count), + "--buffer-size", + str(case.buffer_size), + "--row-group-concurrency", + str(case.row_group_concurrency), + "--task-admission-capacity", + str(case.task_admission_capacity), + "--fanout-width", + str(case.fanout_width), + "--upstream-latency-seconds", + _format_float(case.upstream_latency_seconds), + "--downstream-latency-seconds", + _format_float(case.downstream_latency_seconds), + "--request-latency-seconds", + _format_float(case.request_latency_seconds), + "--model-stage-weight", + str(case.model_stage_weight), + "--warmups", + str(case.warmups), + "--iterations", + str(case.iterations), + "--output-dir", + str(output_dir), + ] + if case.adaptive_row_group_admission: + command.append("--adaptive-row-group-admission") + if case.request_pressure_advisory: + command.append("--request-pressure-advisory") + subprocess.run(command, check=True) + artifact = json.loads(json_path.read_text(encoding="utf-8")) + return _extract_result(case, json_path, artifact) + + +def _extract_result(case: IdleBenchmarkCase, artifact_path: Path, artifact: Mapping[str, Any]) -> IdleBenchmarkResult: + metrics = artifact["derived_metrics"] + scheduler_resources = metrics.get("scheduler_resource_utilization", {}) + request_resources = metrics.get("request_resource_utilization", {}) + llm = scheduler_resources.get("llm_wait", {}) + submission = scheduler_resources.get("submission", {}) + mean_wall = _float(metrics, "mean_wall_time_seconds") + row_group_admission = _row_group_admission_snapshot(artifact) + return IdleBenchmarkResult( + case=case, + artifact_path=artifact_path, + mean_wall_time_seconds=mean_wall, + p95_wall_time_seconds=_float(metrics, "p95_wall_time_seconds"), + llm_utilization_ratio=_float(llm, "mean_utilization_ratio"), + llm_idle_ratio=_safe_ratio( + _float(llm, "mean_idle_capacity_seconds"), + _mean_capacity_seconds(artifact, "llm_wait"), + ), + llm_starved_idle_ratio=_safe_ratio( + _float(llm, "mean_starved_idle_seconds"), + _mean_capacity_seconds(artifact, "llm_wait"), + ), + llm_frontier_dependency_horizon_idle_ratio=_idle_ratio( + llm, + artifact, + "llm_wait", + "mean_frontier_dependency_horizon_idle_ratio", + ), + llm_starved_idle_seconds=_float(llm, "mean_starved_idle_seconds"), + llm_frontier_dependency_horizon_idle_seconds=_float( + llm, + "mean_frontier_dependency_horizon_idle_seconds", + fallback_key="mean_dependency_horizon_idle_seconds", + ), + llm_scheduler_queue_age_p95_seconds=max( + _max_iteration_metric( + artifact, + "llm_wait", + "scheduler_queue_age_p95_seconds", + ), + _max_iteration_metric( + artifact, + "llm_wait", + "ready_to_dispatch_gap_p95_seconds", + ), + ), + llm_scheduler_queue_age_max_seconds=_float( + llm, + "max_scheduler_queue_age_seconds", + fallback_key="max_ready_to_dispatch_gap_seconds", + ), + llm_ready_gap_p95_seconds=_max_iteration_metric( + artifact, + "llm_wait", + "ready_to_dispatch_gap_p95_seconds", + ), + llm_ready_gap_max_seconds=_float(llm, "max_ready_to_dispatch_gap_seconds"), + llm_burstiness_coefficient=_float(llm, "max_burstiness_coefficient"), + submission_utilization_ratio=_float(submission, "mean_utilization_ratio"), + submission_starved_idle_ratio=_safe_ratio( + _float(submission, "mean_starved_idle_seconds"), + _mean_capacity_seconds(artifact, "submission"), + ), + submission_frontier_dependency_horizon_idle_ratio=_idle_ratio( + submission, + artifact, + "submission", + "mean_frontier_dependency_horizon_idle_ratio", + ), + pipeline_overlap_ratio=_float(metrics, "pipeline_mean_overlap_ratio"), + downstream_ready_gap_p95_seconds=_float(metrics, "pipeline_p95_downstream_ready_gap_seconds"), + downstream_ready_gap_max_seconds=_float(metrics, "pipeline_max_downstream_ready_gap_seconds"), + throughput_generations_per_second=_safe_ratio(case.generation_count, mean_wall), + request_wait_seconds_while_task_leased_mean=_float(metrics, "request_wait_seconds_while_task_leased_mean"), + request_wait_seconds_while_task_leased_max=_float(metrics, "request_wait_seconds_while_task_leased_max"), + request_utilization_ratio=_mean_resource_metric(request_resources, "mean_utilization_ratio"), + request_idle_ratio=_safe_ratio( + _sum_resource_metric(request_resources, "mean_idle_capacity_seconds"), + _sum_request_capacity_seconds(artifact), + ), + request_starved_idle_ratio=_safe_ratio( + _sum_resource_metric(request_resources, "mean_starved_idle_seconds"), + _sum_request_capacity_seconds(artifact), + ), + request_frontier_dependency_horizon_idle_ratio=_safe_ratio( + _sum_resource_metric( + request_resources, + "mean_frontier_dependency_horizon_idle_seconds", + fallback_key="mean_dependency_horizon_idle_seconds", + ), + _sum_request_capacity_seconds(artifact), + ), + request_burstiness_coefficient=_max_resource_metric(request_resources, "max_burstiness_coefficient"), + request_pressure_advisory_skip_count=int(metrics.get("request_pressure_advisory_skip_count", 0) or 0), + first_model_dispatch_column=_optional_str(metrics.get("first_model_dispatch_column")), + request_pressure_advisory_enabled=bool(metrics.get("request_pressure_advisory_enabled", False)), + row_group_admission_mode=str(row_group_admission.get("mode", "fixed")), + row_group_admission_target=_optional_int(row_group_admission.get("target_in_flight")), + row_group_admission_observed_max_target=_optional_int(row_group_admission.get("observed_max_target")), + row_group_admission_max_admitted_rows=_optional_int(row_group_admission.get("max_admitted_rows")), + validation_passed=bool(metrics.get("pipeline_validation_passed", True)), + final_zero_task_leases=bool(metrics.get("final_zero_task_leases", False)), + final_zero_request_leases=bool(metrics.get("final_zero_request_leases", False)), + final_zero_request_waiters=bool(metrics.get("final_zero_request_waiters", False)), + ) + + +def _render_report( + results: Sequence[IdleBenchmarkResult], + report_path: Path, + artifact_dir: Path, +) -> str: + by_sweep = _group_results(results) + all_valid = all( + result.validation_passed + and result.final_zero_task_leases + and result.final_zero_request_leases + and result.final_zero_request_waiters + for result in results + ) + max_generations = max((result.case.generation_count for result in results), default=0) + worst_idle = max(results, key=lambda result: result.llm_starved_idle_ratio) + worst_total_idle = max(results, key=lambda result: result.llm_idle_ratio) + best_util = max(results, key=lambda result: result.llm_utilization_ratio) + median_util = _median(result.llm_utilization_ratio for result in results) + artifact_link = _relative_href(report_path, artifact_dir) + + return "\n".join( + [ + "", + '', + "", + '', + '', + "Async Scheduling Idle-Time Analysis", + _style_block(), + "", + "", + "
    ", + '
    ', + '

    DataDesigner async scheduler

    ', + "

    Idle-Time Analysis

    ", + '

    This report measures where model-capacity idle time appears, ' + "which knobs change it, and which remaining idle looks avoidable by scheduler or " + "admission-control changes.

    ", + _summary_grid( + ( + ("Benchmark cases", f"{len(results)}"), + ("Largest synthetic generation count", f"{max_generations:,}"), + ("Median llm_wait utilization", _format_percent(median_util)), + ("Worst total llm_wait idle", _format_percent(worst_total_idle.llm_idle_ratio)), + ("Worst starved llm_wait idle", _format_percent(worst_idle.llm_starved_idle_ratio)), + ("Best llm_wait utilization", _format_percent(best_util.llm_utilization_ratio)), + ("Validation", "pass" if all_valid else "check failures"), + ) + ), + "
    ", + "
    ", + "

    What Counts As Idle

    ", + "

    General idle is unused configured capacity. It includes expected idle when " + "dependencies are not ready. Starved idle is the actionable subset: a resource " + "has idle slots while the scheduler already has queued work that requests that resource. " + "Frontier/dependency-horizon idle is total idle minus starved idle: capacity " + "is unused because dependency work has not yet exposed a ready scheduler task. " + "Scheduler queue age measures ready-enqueued to lease-acquired time; " + "downstream ready gap measures dependency-complete to downstream-dispatch time. " + "For this refactor, the most important resource is llm_wait, because it maps to " + "model-serving capacity that should stay busy when runnable model work exists.

    ", + "
    ", + "
    ", + "

    Implementation Improvements

    ", + _implementation_improvements_html(results), + "
    ", + "
    ", + "

    Findings

    ", + _findings_html(results, by_sweep), + "
    ", + "
    ", + "

    Idle Classification Board

    ", + _idle_classification_table(results), + "
    ", + "
    ", + "

    Adaptation Benchmarks

    ", + _adaptation_benchmarks_html(results), + "
    ", + "
    ", + "

    Figures

    ", + _line_chart( + "Scale: more rows smooth the model-resource flow", + _sort(by_sweep["row-scale"], "generation_count"), + x_getter=lambda result: result.case.generation_count, + y_series=( + ("llm_wait utilization", lambda result: result.llm_utilization_ratio, "#1f7a8c"), + ("starved llm_wait idle", lambda result: result.llm_starved_idle_ratio, "#b23a48"), + ), + y_max=1.0, + x_label="synthetic model generations", + y_label="ratio", + ), + _line_chart( + "Frontier width: row-group concurrency changes starvation", + _sort(by_sweep["row-group-concurrency"], "row_group_concurrency"), + x_getter=lambda result: result.case.row_group_concurrency, + y_series=( + ("llm_wait utilization", lambda result: result.llm_utilization_ratio, "#1f7a8c"), + ("starved llm_wait idle", lambda result: result.llm_starved_idle_ratio, "#b23a48"), + ("downstream ready p95", lambda result: result.downstream_ready_gap_p95_seconds, "#6c5ce7"), + ), + x_label="row-group concurrency", + y_label="ratio / seconds", + ), + _line_chart( + "Buffer size: row-group shape affects traffic waves", + _sort(by_sweep["buffer-size"], "buffer_size"), + x_getter=lambda result: result.case.buffer_size, + y_series=( + ("llm_wait utilization", lambda result: result.llm_utilization_ratio, "#1f7a8c"), + ("starved llm_wait idle", lambda result: result.llm_starved_idle_ratio, "#b23a48"), + ("scheduler queue age p95", lambda result: result.llm_scheduler_queue_age_p95_seconds, "#6c5ce7"), + ), + x_label="buffer size", + y_label="ratio / seconds", + ), + _line_chart( + "Capacity scaling: underfeeding becomes visible as cap rises", + _sort(by_sweep["llm-capacity"], "task_admission_capacity"), + x_getter=lambda result: result.case.task_admission_capacity // 2, + y_series=( + ("llm_wait utilization", lambda result: result.llm_utilization_ratio, "#1f7a8c"), + ("starved llm_wait idle", lambda result: result.llm_starved_idle_ratio, "#b23a48"), + ("throughput / 1000", lambda result: result.throughput_generations_per_second / 1000.0, "#326273"), + ), + x_label="modeled llm_wait capacity", + y_label="ratio / kgen/s", + ), + _bar_chart( + "Custom-model metadata changes per-stage fairness", + _sort(by_sweep["custom-model-weight"], "model_stage_weight"), + label_getter=_weight_label, + bars=( + ("llm_wait utilization", lambda result: result.llm_utilization_ratio, "#1f7a8c"), + ("starved llm_wait idle", lambda result: result.llm_starved_idle_ratio, "#b23a48"), + ), + y_max=1.0, + ), + _bar_chart( + "Stress shapes: narrow vs wide runnable horizon", + _sort(by_sweep["stress-shape"], "name"), + label_getter=lambda result: result.case.name.replace("-", " "), + bars=( + ("llm_wait utilization", lambda result: result.llm_utilization_ratio, "#1f7a8c"), + ("total llm_wait idle", lambda result: result.llm_idle_ratio, "#8a6f3d"), + ("starved llm_wait idle", lambda result: result.llm_starved_idle_ratio, "#b23a48"), + ( + "frontier/dependency idle", + lambda result: result.llm_frontier_dependency_horizon_idle_ratio, + "#6c5ce7", + ), + ("burstiness / 2", lambda result: result.llm_burstiness_coefficient / 2.0, "#326273"), + ), + y_max=1.0, + ), + _bar_chart( + "Adaptation: adaptive row groups target frontier idle", + [ + result + for result in _sort(by_sweep.get("adaptations", []), "name") + if result.case.name.startswith("adaptive-row-groups") + ], + label_getter=lambda result: result.case.name.replace("adaptive-row-groups-", ""), + bars=( + ("llm_wait utilization", lambda result: result.llm_utilization_ratio, "#1f7a8c"), + ( + "frontier/dependency idle", + lambda result: result.llm_frontier_dependency_horizon_idle_ratio, + "#6c5ce7", + ), + ("starved llm_wait idle", lambda result: result.llm_starved_idle_ratio, "#b23a48"), + ), + y_max=1.0, + ), + _bar_chart( + "Adaptation: request-pressure advisory avoids leased request wait", + [ + result + for result in _sort(by_sweep.get("adaptations", []), "name") + if result.case.name.startswith("request-pressure") + ], + label_getter=lambda result: result.case.name.replace("request-pressure-", ""), + bars=( + ( + "request wait while leased", + lambda result: result.request_wait_seconds_while_task_leased_mean, + "#b23a48", + ), + ("scheduler queue age p95", lambda result: result.llm_scheduler_queue_age_p95_seconds, "#6c5ce7"), + ("wall seconds / 10", lambda result: result.mean_wall_time_seconds / 10.0, "#1f7a8c"), + ), + ), + _bar_chart( + "Adaptation: combined adaptive frontier and request pressure", + [ + result + for result in _sort(by_sweep.get("adaptations", []), "name") + if result.case.name.startswith("adaptive-request-pressure") + ], + label_getter=lambda result: result.case.name.replace("adaptive-request-pressure-", ""), + bars=( + ("llm_wait utilization", lambda result: result.llm_utilization_ratio, "#1f7a8c"), + ("request utilization", lambda result: result.request_utilization_ratio, "#326273"), + ("request starved idle", lambda result: result.request_starved_idle_ratio, "#b23a48"), + ( + "frontier/dependency idle", + lambda result: result.llm_frontier_dependency_horizon_idle_ratio, + "#6c5ce7", + ), + ), + y_max=1.0, + ), + "
    ", + "
    ", + "

    Benchmark Matrix

    ", + _results_table(results, report_path), + f'

    Raw artifacts are under ' + f"{html.escape(str(artifact_dir))}.

    ", + "
    ", + "
    ", + "

    Potential Changes

    ", + _recommendations_html(results), + "
    ", + "
    ", + "", + "", + "", + ] + ) + + +def _findings_html( + results: Sequence[IdleBenchmarkResult], + by_sweep: Mapping[str, list[IdleBenchmarkResult]], +) -> str: + row_scale = _sort(by_sweep["row-scale"], "generation_count") + row_gain = row_scale[-1].llm_utilization_ratio - row_scale[0].llm_utilization_ratio + rg_results = _sort(by_sweep["row-group-concurrency"], "row_group_concurrency") + rg_util_gain = rg_results[-1].llm_utilization_ratio - rg_results[0].llm_utilization_ratio + rg_idle_delta = rg_results[0].llm_starved_idle_ratio - min(result.llm_starved_idle_ratio for result in rg_results) + capacity_results = _sort(by_sweep["llm-capacity"], "task_admission_capacity") + weight_results = by_sweep["custom-model-weight"] + weight_one = next(result for result in weight_results if result.case.model_stage_weight == 1) + weight_auto = next(result for result in weight_results if result.case.model_stage_weight == 0) + stress = {result.case.name: result for result in by_sweep["stress-shape"]} + narrow = stress["narrow-frontier-high-cap"] + wide = stress["wide-frontier-high-cap"] + worst = max(results, key=lambda result: result.llm_starved_idle_ratio) + + return ( + '
      ' + f"
    • Scale helps once enough runnable work exists. The row-scale sweep moved " + f"from {_format_percent(row_scale[0].llm_utilization_ratio)} to " + f"{_format_percent(row_scale[-1].llm_utilization_ratio)} llm_wait utilization " + f"({_format_signed_percent(row_gain)}). Larger runs amortize startup and drain phases.
    • " + f"
    • Runnable frontier width is the main controllable idle source. In the " + f"row-group sweep, utilization moved from {_format_percent(rg_results[0].llm_utilization_ratio)} " + f"to {_format_percent(rg_results[-1].llm_utilization_ratio)} " + f"({_format_signed_percent(rg_util_gain)}), while starved llm_wait idle improved by " + f"{_format_percent(max(0.0, rg_idle_delta))} between the narrowest case and the best observed case.
    • " + f"
    • Total idle and starved idle diagnose different causes. " + f"{html.escape(narrow.case.name)} had {_format_percent(narrow.llm_idle_ratio)} total " + f"llm_wait idle but only {_format_percent(narrow.llm_starved_idle_ratio)} starved idle. The remaining " + f"{_format_percent(narrow.llm_frontier_dependency_horizon_idle_ratio)} was frontier/dependency-horizon " + "idle: the scheduler often had no ready model work because the admitted frontier was too small.
    • " + f"
    • Capacity increases expose underfeeding. In the capacity sweep, modeled " + f"llm_wait cap {max(1, capacity_results[0].case.task_admission_capacity // 2)} reached " + f"{_format_percent(capacity_results[0].llm_utilization_ratio)} utilization, while cap " + f"{max(1, capacity_results[-1].case.task_admission_capacity // 2)} reached " + f"{_format_percent(capacity_results[-1].llm_utilization_ratio)} with the same small row frontier.
    • " + f"
    • Custom model scheduling metadata changes traffic shape. With synthetic " + f"custom_model weight forced to 1, llm_wait utilization was " + f"{_format_percent(weight_one.llm_utilization_ratio)}; with the harness defaulting the weight " + f"to modeled model capacity it was {_format_percent(weight_auto.llm_utilization_ratio)}. " + "This run did not show weight=1 underfeeding because each synthetic column is its own group, " + "but it does show that group identity and weight are first-order benchmark inputs.
    • " + f"
    • High capacity magnifies traffic-shape effects. The stress case with one " + f"large row group and high cap reached {_format_percent(narrow.llm_utilization_ratio)} utilization; " + f"the wide-frontier shape reached {_format_percent(wide.llm_utilization_ratio)}. " + "This is the vLLM-server-idle failure mode the scheduler needs to expose and track over time.
    • " + f"
    • Worst observed actionable idle: {html.escape(worst.case.name)} had " + f"{_format_percent(worst.llm_starved_idle_ratio)} starved llm_wait idle and " + f"{_format_seconds(worst.llm_scheduler_queue_age_max_seconds)} max scheduler queue age.
    • " + "
    " + ) + + +def _find_result( + results: Sequence[IdleBenchmarkResult], + sweep: str, + name: str, +) -> IdleBenchmarkResult | None: + return next((result for result in results if result.case.sweep == sweep and result.case.name == name), None) + + +def _adaptive_row_group_card_evidence( + control: IdleBenchmarkResult | None, + adaptive: IdleBenchmarkResult | None, + row_groups_one: IdleBenchmarkResult, + narrow: IdleBenchmarkResult, +) -> str: + if control is None or adaptive is None: + return ( + f"{html.escape(row_groups_one.case.name)} and " + f"{html.escape(narrow.case.name)} remain the target proof cases; adaptation " + "benchmark artifacts were not available in this run." + ) + return ( + f"{html.escape(control.case.name)} to {html.escape(adaptive.case.name)}: " + f"utilization {_format_signed_percent(adaptive.llm_utilization_ratio - control.llm_utilization_ratio)}, " + f"frontier idle reduction " + f"{_format_percent(max(0.0, control.llm_frontier_dependency_horizon_idle_ratio - adaptive.llm_frontier_dependency_horizon_idle_ratio))}, " + f"observed target {_format_optional_int(adaptive.row_group_admission_observed_max_target)}." + ) + + +def _request_pressure_card_evidence( + control: IdleBenchmarkResult | None, + advisory: IdleBenchmarkResult | None, +) -> str: + if control is None or advisory is None: + return "Needs adaptation benchmark artifacts from a non-skip idle-regression run." + return ( + f"Leased request wait moved from {_format_seconds(control.request_wait_seconds_while_task_leased_mean)} " + f"to {_format_seconds(advisory.request_wait_seconds_while_task_leased_mean)}; first dispatch moved " + f"from {html.escape(control.first_model_dispatch_column or 'unknown')} to " + f"{html.escape(advisory.first_model_dispatch_column or 'unknown')}." + ) + + +def _implementation_improvements_html(results: Sequence[IdleBenchmarkResult]) -> str: + narrow = next(result for result in results if result.case.name == "narrow-frontier-high-cap") + row_groups_one = next(result for result in results if result.case.name == "row-groups-1") + rows_256 = next(result for result in results if result.case.name == "rows-256") + wide = next(result for result in results if result.case.name == "wide-frontier-high-cap") + adaptive_control = _find_result(results, "adaptations", "adaptive-row-groups-fixed-low") + adaptive = _find_result(results, "adaptations", "adaptive-row-groups-adaptive") + pressure_control = _find_result(results, "adaptations", "request-pressure-control") + pressure_advisory = _find_result(results, "adaptations", "request-pressure-advisory") + classified = _class_counts(results) + return ( + _summary_grid( + ( + ( + "Classification now explicit", + f"{classified.get('frontier/dependency-horizon', 0)} frontier, " + f"{classified.get('queued-work starvation', 0)} queued", + ), + ("Quick-suite proof gates", f"{len(results)} cases, zero validation failures"), + ("Largest refreshed case", f"{max(result.case.generation_count for result in results):,} generations"), + ("Narrow frontier idle identified", _format_percent(narrow.llm_frontier_dependency_horizon_idle_ratio)), + ( + "Row-groups=1 frontier idle", + _format_percent(row_groups_one.llm_frontier_dependency_horizon_idle_ratio), + ), + ("Wide queued starvation age", _format_seconds(wide.llm_scheduler_queue_age_p95_seconds)), + ) + ) + + '
    ' + + _improvement_card( + "Idle partition metrics", + "Implemented", + "The report now splits total idle into queued-work starvation and frontier/dependency-horizon idle. " + "This prevents the narrow high-capacity case from being mistaken for a request-admission problem.", + ( + f"{html.escape(narrow.case.name)}: " + f"{_format_percent(narrow.llm_frontier_dependency_horizon_idle_ratio)} frontier idle, " + f"{_format_percent(narrow.llm_starved_idle_ratio)} starved idle." + ), + "../scripts/benchmarks/benchmark_async_scheduling.py", + ) + + _improvement_card( + "Queue age vs downstream delay", + "Implemented", + "Ready-to-lease queue age is now shown separately from dependency-complete-to-dispatch delay. " + "This distinguishes scheduler backlog from slow dependency propagation.", + ( + f"{html.escape(rows_256.case.name)}: " + f"{_format_seconds(rows_256.llm_scheduler_queue_age_p95_seconds)} scheduler queue p95, " + f"{_format_seconds(rows_256.downstream_ready_gap_p95_seconds)} downstream p95." + ), + "../scripts/benchmarks/generate_async_scheduling_idle_report.py", + ) + + _improvement_card( + "Batched frontier enqueue", + "Implemented", + "A frontier delta with many ready tasks now enters the fair queue in one enqueue operation, while " + "pre-batch parking, dropped rows, and per-task observability are preserved.", + "Focused scheduler tests prove one queue operation for a 5-task frontier and one operation for a " + "pre-batch flush after a dropped row.", + "../packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py", + ) + + _improvement_card( + "Resource-overlap peer pressure", + "Implemented", + "Task admission now applies group-cap peer pressure only for queued peers that can use the same " + "typed resource and are hard-resource eligible. Local/submission-only peers no longer create " + "false pressure on idle model capacity.", + "Unit tests cover non-overlapping peers, overlapping llm_wait peers, and peers blocked " + "by another hard resource.", + "../packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/task_policies.py", + ) + + _improvement_card( + "Adaptive row-group admission", + "Implemented + benchmarked", + "The scheduler can now start with one admitted row group, raise the row-group target when " + "model capacity is idle and queued model demand is low, and remain bounded by the configured " + "hard cap.", + _adaptive_row_group_card_evidence(adaptive_control, adaptive, row_groups_one, narrow), + "../packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py", + ) + + _improvement_card( + "Request-pressure advisory", + "Implemented + benchmarked", + "Task selection can now use request pressure snapshots to prefer an open same-frontier peer before " + "spawning work that would immediately wait on request capacity. It does not yield and reacquire " + "leases inside running generators.", + _request_pressure_card_evidence(pressure_control, pressure_advisory), + "../packages/data-designer-engine/src/data_designer/engine/models/request_admission", + ) + + "
    " + ) + + +def _improvement_card( + title: str, + status: str, + body: str, + evidence: str, + href: str, +) -> str: + return ( + '
    ' + f'

    {html.escape(title)}

    {html.escape(status)}
    ' + f"

    {body}

    " + f'

    Evidence: {evidence}

    ' + f'source' + "
    " + ) + + +def _idle_classification_table(results: Sequence[IdleBenchmarkResult]) -> str: + headers = [ + "case", + "dominant idle class", + "util", + "starved idle", + "frontier idle", + "queue age p95", + "downstream p95", + "next lever", + ] + rows = [] + for result in sorted( + results, + key=lambda item: ( + _idle_class_priority(_dominant_idle_class(item)), + -(item.llm_starved_idle_ratio + item.llm_frontier_dependency_horizon_idle_ratio), + item.case.sweep, + item.case.name, + ), + ): + idle_class = _dominant_idle_class(result) + rows.append( + [ + html.escape(f"{result.case.sweep}/{result.case.name}"), + f'{html.escape(idle_class)}', + _format_percent(result.llm_utilization_ratio), + _format_percent(result.llm_starved_idle_ratio), + _format_percent(result.llm_frontier_dependency_horizon_idle_ratio), + _format_seconds(result.llm_scheduler_queue_age_p95_seconds), + _format_seconds(result.downstream_ready_gap_p95_seconds), + html.escape(_recommended_next_lever(result)), + ] + ) + return ( + "

    This board is the main analysis surface for optimization work. Frontier/dependency-horizon cases " + "need row-group or scheduling-shard changes; queued-work starvation cases need queue/admission/resource " + "selection changes; request-pressure cases need request-backed evidence before scheduler policy changes.

    " + + _html_table(headers, rows) + ) + + +def _adaptation_benchmarks_html(results: Sequence[IdleBenchmarkResult]) -> str: + adaptive_control = _find_result(results, "adaptations", "adaptive-row-groups-fixed-low") + adaptive = _find_result(results, "adaptations", "adaptive-row-groups-adaptive") + adaptive_high = _find_result(results, "adaptations", "adaptive-row-groups-fixed-high") + pressure_control = _find_result(results, "adaptations", "request-pressure-control") + pressure_advisory = _find_result(results, "adaptations", "request-pressure-advisory") + combined_control = _find_result(results, "adaptations", "adaptive-request-pressure-control") + combined = _find_result(results, "adaptations", "adaptive-request-pressure-combined") + if adaptive_control is None or adaptive is None or pressure_control is None or pressure_advisory is None: + return ( + "

    The adaptation benchmark cases are not present in this artifact set. Re-run the idle " + "regression suite without --skip-run to collect them.

    " + ) + + adaptive_util_delta = adaptive.llm_utilization_ratio - adaptive_control.llm_utilization_ratio + adaptive_frontier_delta = ( + adaptive_control.llm_frontier_dependency_horizon_idle_ratio + - adaptive.llm_frontier_dependency_horizon_idle_ratio + ) + adaptive_high_delta = adaptive.llm_utilization_ratio - adaptive_high.llm_utilization_ratio if adaptive_high else 0.0 + request_wait_delta = ( + pressure_control.request_wait_seconds_while_task_leased_mean + - pressure_advisory.request_wait_seconds_while_task_leased_mean + ) + queue_age_delta = ( + pressure_control.llm_scheduler_queue_age_p95_seconds - pressure_advisory.llm_scheduler_queue_age_p95_seconds + ) + combined_request_wait_delta = 0.0 + combined_request_idle_delta = 0.0 + if combined_control is not None and combined is not None: + combined_request_wait_delta = ( + combined_control.request_wait_seconds_while_task_leased_mean + - combined.request_wait_seconds_while_task_leased_mean + ) + combined_request_idle_delta = combined_control.request_idle_ratio - combined.request_idle_ratio + high_context = "" + if adaptive_high is not None: + high_context = ( + f" The fixed-high ceiling reached {_format_percent(adaptive_high.llm_utilization_ratio)} utilization " + f"with {_format_percent(adaptive_high.llm_frontier_dependency_horizon_idle_ratio)} frontier idle." + ) + + summary = _summary_grid( + ( + ("Adaptive utilization delta", _format_signed_percent(adaptive_util_delta)), + ("Adaptive frontier-idle reduction", _format_percent(max(0.0, adaptive_frontier_delta))), + ("Adaptive vs fixed-high", _format_signed_percent(adaptive_high_delta)), + ( + "Adaptive observed target", + _format_optional_int(adaptive.row_group_admission_observed_max_target), + ), + ("Request leased-wait reduction", _format_seconds(max(0.0, request_wait_delta))), + ( + "Advisory first dispatch", + pressure_advisory.first_model_dispatch_column or "unknown", + ), + ("Request queue-age p95 reduction", _format_seconds(max(0.0, queue_age_delta))), + ("Combined leased-wait delta", _format_signed_seconds(combined_request_wait_delta)), + ("Combined request-idle delta", _format_signed_percent(combined_request_idle_delta)), + ) + ) + rows = [ + [ + "adaptive fixed-low control", + html.escape(adaptive_control.case.name), + _format_percent(adaptive_control.llm_utilization_ratio), + _format_percent(adaptive_control.llm_frontier_dependency_horizon_idle_ratio), + _format_optional_int(adaptive_control.row_group_admission_observed_max_target), + "-", + "-", + ], + [ + "adaptive enabled", + html.escape(adaptive.case.name), + _format_percent(adaptive.llm_utilization_ratio), + _format_percent(adaptive.llm_frontier_dependency_horizon_idle_ratio), + _format_optional_int(adaptive.row_group_admission_observed_max_target), + "-", + "-", + ], + [ + "request control", + html.escape(pressure_control.case.name), + _format_percent(pressure_control.llm_utilization_ratio), + _format_percent(pressure_control.llm_frontier_dependency_horizon_idle_ratio), + "-", + _format_seconds(pressure_control.request_wait_seconds_while_task_leased_mean), + html.escape(pressure_control.first_model_dispatch_column or "unknown"), + ], + [ + "request advisory", + html.escape(pressure_advisory.case.name), + _format_percent(pressure_advisory.llm_utilization_ratio), + _format_percent(pressure_advisory.llm_frontier_dependency_horizon_idle_ratio), + "-", + _format_seconds(pressure_advisory.request_wait_seconds_while_task_leased_mean), + html.escape(pressure_advisory.first_model_dispatch_column or "unknown"), + ], + ] + if combined_control is not None: + rows.append( + [ + "combined control", + html.escape(combined_control.case.name), + _format_percent(combined_control.llm_utilization_ratio), + _format_percent(combined_control.llm_frontier_dependency_horizon_idle_ratio), + _format_optional_int(combined_control.row_group_admission_observed_max_target), + _format_seconds(combined_control.request_wait_seconds_while_task_leased_mean), + html.escape(combined_control.first_model_dispatch_column or "unknown"), + ] + ) + if combined is not None: + rows.append( + [ + "combined enabled", + html.escape(combined.case.name), + _format_percent(combined.llm_utilization_ratio), + _format_percent(combined.llm_frontier_dependency_horizon_idle_ratio), + _format_optional_int(combined.row_group_admission_observed_max_target), + _format_seconds(combined.request_wait_seconds_while_task_leased_mean), + html.escape(combined.first_model_dispatch_column or "unknown"), + ] + ) + if adaptive_high is not None: + rows.insert( + 2, + [ + "adaptive fixed-high control", + html.escape(adaptive_high.case.name), + _format_percent(adaptive_high.llm_utilization_ratio), + _format_percent(adaptive_high.llm_frontier_dependency_horizon_idle_ratio), + _format_optional_int(adaptive_high.row_group_admission_observed_max_target), + "-", + "-", + ], + ) + return ( + summary + "

    The row-group adaptation is judged against a fixed-low frontier because that is the failure " + "shape where capacity is idle before enough dependency work exists. It should reduce frontier idle " + "or raise utilization while staying below the hard row-group cap. The fixed-high control isolates " + "how close the adaptive policy gets to simply admitting the full hard-cap frontier up front." + f"{high_context}

    " + "

    The request-pressure adaptation is judged by whether it avoids dispatching the pressured model " + "first and reduces request-wait time while a scheduler task lease is already held. The combined " + "case keeps adaptive row-group admission enabled while request pressure is present, so it measures " + "whether the scheduler can widen the frontier and still avoid sending the first available leases " + "into a saturated model.

    " + + _html_table( + [ + "adaptation", + "case", + "util", + "frontier idle", + "observed target", + "leased request wait", + "first model dispatch", + ], + rows, + ) + ) + + +def _recommendations_html(results: Sequence[IdleBenchmarkResult]) -> str: + worst = max(results, key=lambda result: result.llm_starved_idle_ratio) + return ( + '
      ' + "
    1. Add an adaptive row-group admission controller. A subclass or policy layer " + "can watch bottleneck-resource starved idle and admit another row group when model capacity is " + "idle while queued or pending model work remains, bounded by buffer and memory limits. When total " + "idle is high but starved idle is low, the controller should treat that as a frontier problem and " + "prefetch more row groups rather than tuning request AIMD.
    2. " + "
    3. Keep resource-aware idle in the standard benchmark output. The new " + "llm_wait utilization, starved idle, frontier/dependency-horizon idle, " + "scheduler queue-age, downstream ready-gap, and burstiness metrics identify " + "whether a vLLM-like resource is genuinely idle or merely waiting for dependencies.
    4. " + "
    5. Document custom-model group identity and weight. " + "SchedulingMetadata.custom_model(...) controls fairness and per-group admission. " + "Plugins that share one external model should use a shared model identity and a weight that reflects " + "real serving capacity; plugins that represent distinct resources should keep distinct identities.
    6. " + "
    7. Use the report as a regression suite. The worst case here is " + f"{html.escape(worst.case.name)}; future scheduler or admission changes should improve " + "that case without increasing ready gaps or violating final zero-lease checks.
    8. " + "
    " + ) + + +def _results_table(results: Sequence[IdleBenchmarkResult], report_path: Path) -> str: + headers = [ + "case", + "sweep", + "scenario", + "generations", + "rows", + "buffer", + "rg conc", + "llm cap", + "util", + "idle", + "starved idle", + "frontier idle", + "queue age p95", + "downstream gap p95", + "leased request wait", + "request util", + "request starved idle", + "advisory skips", + "first model", + "overlap", + "throughput", + "artifact", + ] + rows = [] + for result in sorted(results, key=lambda item: (item.case.sweep, item.case.name)): + rows.append( + [ + html.escape(result.case.name), + html.escape(result.case.sweep), + html.escape(result.case.scenario), + f"{result.case.generation_count:,}", + f"{result.case.record_count:,}", + f"{result.case.buffer_size:,}", + f"{result.case.row_group_concurrency}", + f"{max(1, result.case.task_admission_capacity // 2)}", + _format_percent(result.llm_utilization_ratio), + _format_percent(result.llm_idle_ratio), + _format_percent(result.llm_starved_idle_ratio), + _format_percent(result.llm_frontier_dependency_horizon_idle_ratio), + _format_seconds(result.llm_scheduler_queue_age_p95_seconds), + _format_seconds(result.downstream_ready_gap_p95_seconds), + _format_seconds(result.request_wait_seconds_while_task_leased_mean), + _format_percent(result.request_utilization_ratio), + _format_percent(result.request_starved_idle_ratio), + f"{result.request_pressure_advisory_skip_count:,}", + html.escape(result.first_model_dispatch_column or "-"), + _format_percent(result.pipeline_overlap_ratio), + f"{result.throughput_generations_per_second:,.0f}/s", + f'json', + ] + ) + return _html_table(headers, rows) + + +def _line_chart( + title: str, + results: Sequence[IdleBenchmarkResult], + *, + x_getter: Any, + y_series: Sequence[tuple[str, Any, str]], + x_label: str, + y_label: str, + y_max: float | None = None, +) -> str: + width = 880 + height = 360 + left = 64 + right = 24 + top = 42 + bottom = 54 + plot_w = width - left - right + plot_h = height - top - bottom + xs = [float(x_getter(result)) for result in results] + y_values = [float(getter(result)) for _label, getter, _color in y_series for result in results] + min_x = min(xs, default=0.0) + max_x = max(xs, default=1.0) + if math.isclose(min_x, max_x): + max_x = min_x + 1.0 + max_y = y_max if y_max is not None else max(y_values, default=1.0) + max_y = max(max_y, 0.001) + + elements = [_chart_frame(width, height, left, top, plot_w, plot_h, title, x_label, y_label)] + for series_index, (label, getter, color) in enumerate(y_series): + points = [] + for result in results: + x_value = float(x_getter(result)) + y_value = min(float(getter(result)), max_y) + x = left + ((x_value - min_x) / (max_x - min_x)) * plot_w + y = top + plot_h - (y_value / max_y) * plot_h + points.append((x, y, y_value)) + point_attr = " ".join(f"{x:.1f},{y:.1f}" for x, y, _value in points) + elements.append(f'') + for x, y, value in points: + elements.append( + f'{label}: {value:.4f}' + ) + elements.append(_legend_item(label, color, series_index)) + + for result in results: + x_value = float(x_getter(result)) + x = left + ((x_value - min_x) / (max_x - min_x)) * plot_w + elements.append( + f'{_compact_number(x_value)}' + ) + return f'
    {"".join(elements)}
    ' + + +def _bar_chart( + title: str, + results: Sequence[IdleBenchmarkResult], + *, + label_getter: Any, + bars: Sequence[tuple[str, Any, str]], + y_max: float | None = None, +) -> str: + width = 880 + height = 360 + left = 64 + top = 42 + bottom = 82 + plot_w = width - left - 24 + plot_h = height - top - bottom + y_values = [float(getter(result)) for _label, getter, _color in bars for result in results] + max_y = max(y_max or max(y_values, default=1.0), 0.001) + group_w = plot_w / max(1, len(results)) + bar_w = min(32.0, (group_w - 16.0) / max(1, len(bars))) + + elements = [_chart_frame(width, height, left, top, plot_w, plot_h, title, "case", "ratio")] + for result_index, result in enumerate(results): + group_x = left + result_index * group_w + group_w / 2 + for bar_index, (label, getter, color) in enumerate(bars): + value = min(float(getter(result)), max_y) + x = group_x - (bar_w * len(bars)) / 2 + bar_index * bar_w + bar_h = (value / max_y) * plot_h + y = top + plot_h - bar_h + elements.append( + f'{label}: {value:.4f}' + ) + elements.append( + f'' + f"{html.escape(label_getter(result))}" + ) + for series_index, (label, _getter, color) in enumerate(bars): + elements.append(_legend_item(label, color, series_index)) + return f'
    {"".join(elements)}
    ' + + +def _chart_frame( + width: int, + height: int, + left: int, + top: int, + plot_w: int, + plot_h: int, + title: str, + x_label: str, + y_label: str, +) -> str: + bottom = top + plot_h + right = left + plot_w + return ( + f'' + f'{html.escape(title)}' + f'' + f'' + f'{html.escape(x_label)}' + f'{html.escape(y_label)}' + f'0' + f'max' + f'' + ) + + +def _legend_item(label: str, color: str, index: int) -> str: + x = 650 + y = 28 + (index % 5) * 17 + return ( + f'' + f'{html.escape(label)}' + ) + + +def _summary_grid(items: Iterable[tuple[str, str]]) -> str: + cards = [] + for label, value in items: + cards.append( + f'
    {html.escape(label)}{html.escape(value)}
    ' + ) + return f'
    {"".join(cards)}
    ' + + +def _html_table(headers: Sequence[str], rows: Sequence[Sequence[str]]) -> str: + header_html = "".join(f"{html.escape(header)}" for header in headers) + row_html = [] + for row in rows: + row_html.append("" + "".join(f"{cell}" for cell in row) + "") + return f'
    {header_html}{"".join(row_html)}
    ' + + +def _style_block() -> str: + return """ + +""" + + +def _group_results(results: Sequence[IdleBenchmarkResult]) -> dict[str, list[IdleBenchmarkResult]]: + grouped: dict[str, list[IdleBenchmarkResult]] = {} + for result in results: + grouped.setdefault(result.case.sweep, []).append(result) + return grouped + + +def _sort(results: Sequence[IdleBenchmarkResult], attr: str) -> list[IdleBenchmarkResult]: + return sorted(results, key=lambda result: getattr(result.case, attr)) + + +def _float(values: Mapping[str, Any], key: str, *, fallback_key: str | None = None) -> float: + value = values.get(key) + if value is None and fallback_key is not None: + value = values.get(fallback_key) + return float(value or 0.0) + + +def _idle_ratio( + values: Mapping[str, Any], + artifact: Mapping[str, Any], + resource: str, + key: str, +) -> float: + del key + capacity_seconds = _mean_capacity_seconds(artifact, resource) + idle_seconds = _float(values, "mean_idle_capacity_seconds") + starved_seconds = _float(values, "mean_starved_idle_seconds") + return _safe_ratio(max(0.0, idle_seconds - starved_seconds), capacity_seconds) + + +def _mean_capacity_seconds(artifact: Mapping[str, Any], resource: str) -> float: + values = [] + for iteration in artifact.get("iterations", []): + metrics = iteration.get("utilization_metrics", {}).get("scheduler_resources", {}).get(resource, {}) + values.append(float(metrics.get("capacity_seconds", 0.0) or 0.0)) + if not values: + return 0.0 + return sum(values) / len(values) + + +def _sum_request_capacity_seconds(artifact: Mapping[str, Any]) -> float: + values = [] + for iteration in artifact.get("iterations", []): + resources = iteration.get("utilization_metrics", {}).get("request_resources", {}) + if not isinstance(resources, Mapping): + continue + values.append(sum(float(metrics.get("capacity_seconds", 0.0) or 0.0) for metrics in resources.values())) + if not values: + return 0.0 + return sum(values) / len(values) + + +def _mean_resource_metric(resources: Mapping[str, Mapping[str, Any]], key: str) -> float: + values = [float(metrics.get(key, 0.0) or 0.0) for metrics in resources.values()] + if not values: + return 0.0 + return sum(values) / len(values) + + +def _sum_resource_metric( + resources: Mapping[str, Mapping[str, Any]], + key: str, + *, + fallback_key: str | None = None, +) -> float: + total = 0.0 + for metrics in resources.values(): + value = metrics.get(key) + if value is None and fallback_key is not None: + value = metrics.get(fallback_key) + total += float(value or 0.0) + return total + + +def _max_resource_metric(resources: Mapping[str, Mapping[str, Any]], key: str) -> float: + return max((float(metrics.get(key, 0.0) or 0.0) for metrics in resources.values()), default=0.0) + + +def _max_iteration_metric(artifact: Mapping[str, Any], resource: str, metric: str) -> float: + values = [] + for iteration in artifact.get("iterations", []): + resource_metrics = iteration.get("utilization_metrics", {}).get("scheduler_resources", {}).get(resource, {}) + values.append(float(resource_metrics.get(metric, 0.0) or 0.0)) + return max(values, default=0.0) + + +def _row_group_admission_snapshot(artifact: Mapping[str, Any]) -> Mapping[str, Any]: + iteration_snapshots = [ + _nested_mapping( + iteration, + ("capacity_plan", "configured", "row_group_admission"), + ) + for iteration in artifact.get("iterations", []) + ] + for snapshot in reversed(iteration_snapshots): + if snapshot: + return snapshot + return _nested_mapping(artifact, ("capacity_plan", "configured", "row_group_admission")) + + +def _nested_mapping(values: Mapping[str, Any], keys: Sequence[str]) -> Mapping[str, Any]: + current: Any = values + for key in keys: + if not isinstance(current, Mapping): + return {} + current = current.get(key) + return current if isinstance(current, Mapping) else {} + + +def _safe_ratio(numerator: float, denominator: float) -> float: + if denominator <= 0.0: + return 0.0 + return numerator / denominator + + +def _safe_subtract(left: float, right: float) -> float: + return max(0.0, left - right) + + +def _median(values: Iterable[float]) -> float: + sorted_values = sorted(values) + if not sorted_values: + return 0.0 + midpoint = len(sorted_values) // 2 + if len(sorted_values) % 2: + return sorted_values[midpoint] + return (sorted_values[midpoint - 1] + sorted_values[midpoint]) / 2.0 + + +def _format_float(value: float) -> str: + return f"{value:.8f}".rstrip("0").rstrip(".") + + +def _format_percent(value: float) -> str: + return f"{value * 100.0:.1f}%" + + +def _format_signed_percent(value: float) -> str: + sign = "+" if value >= 0.0 else "" + return f"{sign}{value * 100.0:.1f} pp" + + +def _format_signed_seconds(value: float) -> str: + sign = "+" if value >= 0.0 else "-" + return f"{sign}{_format_seconds(abs(value))}" + + +def _format_seconds(value: float) -> str: + if value < 0.001: + return f"{value * 1_000_000.0:.0f} us" + if value < 1.0: + return f"{value * 1000.0:.1f} ms" + return f"{value:.2f} s" + + +def _compact_number(value: float) -> str: + if value >= 1000: + return f"{value / 1000.0:.1f}k" + if value.is_integer(): + return str(int(value)) + return f"{value:.2f}" + + +def _format_optional_int(value: int | None) -> str: + return "n/a" if value is None else f"{value:,}" + + +def _optional_int(value: Any) -> int | None: + if value is None: + return None + try: + return int(value) + except (TypeError, ValueError): + return None + + +def _optional_str(value: Any) -> str | None: + if value is None: + return None + return str(value) + + +def _weight_label(result: IdleBenchmarkResult) -> str: + if result.case.model_stage_weight == 0: + return "model cap" + return f"weight {result.case.model_stage_weight}" + + +def _dominant_idle_class(result: IdleBenchmarkResult) -> str: + if ( + result.llm_frontier_dependency_horizon_idle_ratio >= 0.10 + and result.llm_frontier_dependency_horizon_idle_ratio > result.llm_starved_idle_ratio + ): + return "frontier/dependency-horizon" + if result.llm_starved_idle_ratio >= 0.10: + return "queued-work starvation" + if result.llm_scheduler_queue_age_p95_seconds > max(1.0, result.downstream_ready_gap_p95_seconds * 10.0): + return "queued-work starvation" + return "healthy/control" + + +def _recommended_next_lever(result: IdleBenchmarkResult) -> str: + idle_class = _dominant_idle_class(result) + if idle_class == "frontier/dependency-horizon": + return "adaptive row-group admission with memory and queue guardrails" + if idle_class == "queued-work starvation" and result.llm_scheduler_queue_age_p95_seconds > 1.0: + return "resource-aware task admission, candidate selection, or smaller scheduling shards" + if idle_class == "queued-work starvation": + return "task admission/fairness policy and eligible-starved-idle metrics" + return "keep as control case and watch for regressions" + + +def _class_counts(results: Sequence[IdleBenchmarkResult]) -> dict[str, int]: + counts: dict[str, int] = {} + for result in results: + idle_class = _dominant_idle_class(result) + counts[idle_class] = counts.get(idle_class, 0) + 1 + return counts + + +def _idle_class_priority(idle_class: str) -> int: + priorities = { + "frontier/dependency-horizon": 0, + "queued-work starvation": 1, + "healthy/control": 2, + } + return priorities.get(idle_class, 99) + + +def _class_slug(idle_class: str) -> str: + return idle_class.replace("/", "-").replace(" ", "-") + + +def _relative_href(report_path: Path, target_path: Path) -> str: + try: + return Path("../" + str(target_path)).as_posix() if not target_path.is_absolute() else target_path.as_uri() + except ValueError: + return str(target_path) + + +if __name__ == "__main__": + main() diff --git a/scripts/benchmarks/run_async_scheduling_idle_regression.py b/scripts/benchmarks/run_async_scheduling_idle_regression.py new file mode 100644 index 000000000..482f6a8e1 --- /dev/null +++ b/scripts/benchmarks/run_async_scheduling_idle_regression.py @@ -0,0 +1,653 @@ +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Run the canonical async scheduling idle-time regression suite.""" + +from __future__ import annotations + +import argparse +import json +import math +import sys +from collections.abc import Mapping, Sequence +from dataclasses import asdict, dataclass +from pathlib import Path +from typing import Any + +from generate_async_scheduling_idle_report import ( + IDLE_SUITE_ID, + IDLE_SUITE_VERSION, + idle_results_summary, + render_idle_report, + run_idle_benchmark_suite, + write_idle_results_summary, +) + +DEFAULT_ARTIFACT_DIR = Path("artifacts/async-scheduling-idle-regression") +DEFAULT_REPORT_PATH = Path("reports/async-scheduling-idle-regression.html") +DEFAULT_SUMMARY_PATH = DEFAULT_ARTIFACT_DIR / "idle_regression_summary.json" +DEFAULT_CHECKS_PATH = DEFAULT_ARTIFACT_DIR / "idle_regression_checks.json" +CHECKS_SCHEMA_VERSION = "async-scheduling-idle-checks-v1" + + +@dataclass(frozen=True) +class RegressionCheck: + name: str + category: str + severity: str + passed: bool + observed: float | int | str | bool + expected: str + detail: str = "" + + +def main() -> None: + args = _parse_args() + artifact_dir = Path(args.artifact_dir) + report_path = Path(args.report_path) + summary_path = Path(args.summary_path) + checks_path = Path(args.checks_path) + + results = run_idle_benchmark_suite(artifact_dir, quick=args.quick, skip_run=args.skip_run) + render_idle_report(results, report_path, artifact_dir) + write_idle_results_summary(summary_path, results, quick=args.quick) + + summary = idle_results_summary(results, quick=args.quick) + baseline_summary = _load_json(Path(args.baseline_summary)) if args.baseline_summary else None + checks = evaluate_idle_regression_summary( + summary, + baseline_summary=baseline_summary, + utilization_tolerance=args.utilization_tolerance, + idle_tolerance=args.idle_tolerance, + ) + checks_payload = _checks_payload(checks) + checks_path.parent.mkdir(parents=True, exist_ok=True) + checks_path.write_text(json.dumps(checks_payload, indent=2, sort_keys=True) + "\n", encoding="utf-8") + + _print_check_summary(checks, report_path, summary_path, checks_path) + if _has_error(checks) and not args.allow_failures: + sys.exit(1) + + +def _parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--artifact-dir", default=str(DEFAULT_ARTIFACT_DIR)) + parser.add_argument("--report-path", default=str(DEFAULT_REPORT_PATH)) + parser.add_argument("--summary-path", default=str(DEFAULT_SUMMARY_PATH)) + parser.add_argument("--checks-path", default=str(DEFAULT_CHECKS_PATH)) + parser.add_argument("--baseline-summary") + parser.add_argument("--skip-run", action="store_true", help="Reuse existing benchmark JSON files.") + parser.add_argument("--quick", action="store_true", help="Run the shorter suite while preserving coverage shape.") + parser.add_argument( + "--utilization-tolerance", + type=float, + default=0.05, + help="Allowed absolute llm_wait utilization drop when comparing to --baseline-summary.", + ) + parser.add_argument( + "--idle-tolerance", + type=float, + default=0.05, + help="Allowed absolute llm_wait idle increase when comparing to --baseline-summary.", + ) + parser.add_argument("--allow-failures", action="store_true", help="Write artifacts but exit zero on failed checks.") + return parser.parse_args() + + +def evaluate_idle_regression_summary( + summary: Mapping[str, Any], + *, + baseline_summary: Mapping[str, Any] | None = None, + utilization_tolerance: float = 0.05, + idle_tolerance: float = 0.05, +) -> list[RegressionCheck]: + cases = _cases(summary) + mode = str(summary.get("mode", "full")) + checks: list[RegressionCheck] = [ + _check( + "suite id", + category="shape", + passed=summary.get("suite_id") == IDLE_SUITE_ID, + observed=str(summary.get("suite_id")), + expected=IDLE_SUITE_ID, + ), + _check( + "suite version", + category="shape", + passed=summary.get("suite_version") == IDLE_SUITE_VERSION, + observed=str(summary.get("suite_version")), + expected=IDLE_SUITE_VERSION, + ), + _check( + "case count", + category="shape", + passed=len(cases) >= _minimum_case_count(mode), + observed=len(cases), + expected=f">= {_minimum_case_count(mode)}", + ), + _check( + "large generation case present", + category="shape", + passed=int(summary.get("largest_generation_count", 0)) >= 8192, + observed=int(summary.get("largest_generation_count", 0)), + expected=">= 8192 generations", + ), + ] + + checks.extend(_required_case_checks(cases, mode=mode)) + checks.extend(_per_case_metric_checks(cases)) + checks.extend(_suite_behavior_checks(cases, mode=mode)) + if baseline_summary is not None: + checks.extend( + _baseline_comparison_checks( + cases, + _cases(baseline_summary), + utilization_tolerance=utilization_tolerance, + idle_tolerance=idle_tolerance, + ) + ) + return checks + + +def _required_case_checks(cases: Mapping[str, Mapping[str, Any]], *, mode: str) -> list[RegressionCheck]: + required = { + "adaptations/adaptive-row-groups-adaptive", + "adaptations/adaptive-row-groups-fixed-high", + "adaptations/adaptive-row-groups-fixed-low", + "adaptations/adaptive-request-pressure-combined", + "adaptations/adaptive-request-pressure-control", + "adaptations/request-pressure-advisory", + "adaptations/request-pressure-control", + "row-scale/rows-64", + "row-group-concurrency/row-groups-1", + "buffer-size/buffer-1", + "stress-shape/narrow-frontier-high-cap", + "stress-shape/wide-frontier-high-cap", + "custom-model-weight/weight-model-capacity", + } + if mode != "quick": + required.update( + { + "row-scale/rows-1024", + "row-group-concurrency/row-groups-8", + "buffer-size/buffer-256", + "llm-capacity/capacity-16", + } + ) + else: + required.add("row-scale/rows-256") + return [ + _check( + f"required case {case_key}", + category="shape", + passed=case_key in cases, + observed=case_key in cases, + expected="present", + ) + for case_key in sorted(required) + ] + + +def _per_case_metric_checks(cases: Mapping[str, Mapping[str, Any]]) -> list[RegressionCheck]: + checks: list[RegressionCheck] = [] + for case_key, case in sorted(cases.items()): + checks.append( + _check( + f"{case_key} validation", + category="correctness", + passed=bool(case.get("validation_passed")), + observed=bool(case.get("validation_passed")), + expected="true", + ) + ) + for cleanup_metric in ( + "final_zero_task_leases", + "final_zero_request_leases", + "final_zero_request_waiters", + ): + checks.append( + _check( + f"{case_key} {cleanup_metric}", + category="correctness", + passed=bool(case.get(cleanup_metric)), + observed=bool(case.get(cleanup_metric)), + expected="true", + ) + ) + for metric in ( + "llm_wait_utilization_ratio", + "llm_wait_idle_ratio", + "llm_wait_starved_idle_ratio", + "llm_wait_frontier_dependency_horizon_idle_ratio", + "request_utilization_ratio", + "request_idle_ratio", + "request_starved_idle_ratio", + "request_frontier_dependency_horizon_idle_ratio", + ): + value = _metric(case, metric) + checks.append( + _check( + f"{case_key} {metric}", + category="metrics", + passed=math.isfinite(value) and 0.0 <= value <= 1.0, + observed=value, + expected="finite ratio in [0, 1]", + ) + ) + queue_age_p95 = _metric(case, "llm_wait_scheduler_queue_age_p95_seconds") + checks.append( + _check( + f"{case_key} llm_wait_scheduler_queue_age_p95_seconds", + category="metrics", + passed=math.isfinite(queue_age_p95) and queue_age_p95 >= 0.0, + observed=queue_age_p95, + expected="finite seconds >= 0", + ) + ) + checks.append( + _check( + f"{case_key} idle dominates starved idle", + category="metrics", + passed=_metric(case, "llm_wait_idle_ratio") + 1e-9 >= _metric(case, "llm_wait_starved_idle_ratio"), + observed=_metric(case, "llm_wait_idle_ratio") - _metric(case, "llm_wait_starved_idle_ratio"), + expected="idle ratio >= starved idle ratio", + ) + ) + checks.append( + _check( + f"{case_key} idle partition", + category="metrics", + passed=abs( + _metric(case, "llm_wait_idle_ratio") + - _metric(case, "llm_wait_starved_idle_ratio") + - _metric(case, "llm_wait_frontier_dependency_horizon_idle_ratio") + ) + <= 1e-6, + observed=( + _metric(case, "llm_wait_starved_idle_ratio") + + _metric(case, "llm_wait_frontier_dependency_horizon_idle_ratio") + - _metric(case, "llm_wait_idle_ratio") + ), + expected="starved + frontier/dependency-horizon idle == total idle", + ) + ) + return checks + + +def _suite_behavior_checks(cases: Mapping[str, Mapping[str, Any]], *, mode: str) -> list[RegressionCheck]: + checks: list[RegressionCheck] = [] + row_group_cases = [case for key, case in cases.items() if key.startswith("row-group-concurrency/")] + if row_group_cases: + low = min(row_group_cases, key=lambda case: int(case["case"]["row_group_concurrency"])) + high = max(row_group_cases, key=lambda case: int(case["case"]["row_group_concurrency"])) + low_util = _metric(low, "llm_wait_utilization_ratio") + high_util = _metric(high, "llm_wait_utilization_ratio") + checks.append( + _check( + "row-group frontier response", + category="optimization", + passed=high_util >= low_util + 0.20 or low_util >= 0.60, + observed=high_util - low_util, + expected="highest row-group concurrency improves utilization by >= 20pp unless low case is already >= 60%", + ) + ) + checks.append( + _check( + "wide row-group frontier utilization", + category="optimization", + passed=high_util >= _wide_row_group_utilization_floor(mode), + observed=high_util, + expected=f">= {_wide_row_group_utilization_floor(mode):.2f} llm_wait utilization", + ) + ) + + if "buffer-size/buffer-1" in cases: + checks.append( + _check( + "small-buffer model utilization", + category="optimization", + passed=_metric(cases["buffer-size/buffer-1"], "llm_wait_utilization_ratio") >= 0.65, + observed=_metric(cases["buffer-size/buffer-1"], "llm_wait_utilization_ratio"), + expected=">= 0.65 llm_wait utilization", + ) + ) + if "llm-capacity/capacity-16" in cases: + checks.append( + _check( + "high-capacity underfeeding floor", + category="optimization", + passed=_metric(cases["llm-capacity/capacity-16"], "llm_wait_utilization_ratio") >= 0.25, + observed=_metric(cases["llm-capacity/capacity-16"], "llm_wait_utilization_ratio"), + expected=">= 0.25 llm_wait utilization", + ) + ) + if "stress-shape/wide-frontier-high-cap" in cases: + checks.append( + _check( + "wide high-capacity stress utilization", + category="optimization", + passed=_metric(cases["stress-shape/wide-frontier-high-cap"], "llm_wait_utilization_ratio") >= 0.55, + observed=_metric(cases["stress-shape/wide-frontier-high-cap"], "llm_wait_utilization_ratio"), + expected=">= 0.55 llm_wait utilization", + ) + ) + if { + "stress-shape/narrow-frontier-high-cap", + "stress-shape/wide-frontier-high-cap", + }.issubset(cases): + narrow_dependency_idle = _metric( + cases["stress-shape/narrow-frontier-high-cap"], + "llm_wait_frontier_dependency_horizon_idle_ratio", + ) + wide_dependency_idle = _metric( + cases["stress-shape/wide-frontier-high-cap"], + "llm_wait_frontier_dependency_horizon_idle_ratio", + ) + checks.append( + _check( + "wide frontier dependency-horizon idle response", + category="optimization", + passed=wide_dependency_idle <= narrow_dependency_idle + 0.10, + observed=wide_dependency_idle - narrow_dependency_idle, + expected="wide frontier dependency-horizon idle does not exceed narrow by > 10pp", + ) + ) + if { + "adaptations/adaptive-row-groups-fixed-low", + "adaptations/adaptive-row-groups-fixed-high", + "adaptations/adaptive-row-groups-adaptive", + }.issubset(cases): + control = cases["adaptations/adaptive-row-groups-fixed-low"] + fixed_high = cases["adaptations/adaptive-row-groups-fixed-high"] + adaptive = cases["adaptations/adaptive-row-groups-adaptive"] + control_util = _metric(control, "llm_wait_utilization_ratio") + fixed_high_util = _metric(fixed_high, "llm_wait_utilization_ratio") + adaptive_util = _metric(adaptive, "llm_wait_utilization_ratio") + control_frontier = _metric(control, "llm_wait_frontier_dependency_horizon_idle_ratio") + fixed_high_frontier = _metric(fixed_high, "llm_wait_frontier_dependency_horizon_idle_ratio") + adaptive_frontier = _metric(adaptive, "llm_wait_frontier_dependency_horizon_idle_ratio") + checks.append( + _check( + "adaptive row-group utilization response", + category="optimization", + passed=adaptive_util >= control_util + 0.10 or control_util >= 0.70, + observed=adaptive_util - control_util, + expected="adaptive row groups improve low-frontier utilization by >= 10pp unless control is >= 70%", + ) + ) + checks.append( + _check( + "adaptive row-group fixed-high isolation", + category="optimization", + passed=adaptive_util + 0.10 >= fixed_high_util, + observed=adaptive_util - fixed_high_util, + expected="adaptive row groups stay within 10pp utilization of fixed-high hard-cap control", + ) + ) + checks.append( + _check( + "adaptive row-group frontier-idle response", + category="optimization", + passed=adaptive_frontier <= min(control_frontier, fixed_high_frontier) + 0.05, + observed=adaptive_frontier - min(control_frontier, fixed_high_frontier), + expected="adaptive row groups do not exceed the better fixed-control frontier idle by > 5pp", + ) + ) + checks.append( + _check( + "adaptive row-group target grew", + category="optimization", + passed=int(adaptive.get("row_group_admission_observed_max_target", 0) or 0) > 1, + observed=int(adaptive.get("row_group_admission_observed_max_target", 0) or 0), + expected="observed adaptive target > 1", + ) + ) + if { + "adaptations/request-pressure-control", + "adaptations/request-pressure-advisory", + }.issubset(cases): + control = cases["adaptations/request-pressure-control"] + advisory = cases["adaptations/request-pressure-advisory"] + control_wait = _metric(control, "request_wait_seconds_while_task_leased_mean") + advisory_wait = _metric(advisory, "request_wait_seconds_while_task_leased_mean") + checks.append( + _check( + "request-pressure control dispatch choice", + category="optimization", + passed=control.get("first_model_dispatch_column") == "a_pressured", + observed=str(control.get("first_model_dispatch_column")), + expected="a_pressured", + ) + ) + checks.append( + _check( + "request-pressure control leased wait present", + category="optimization", + passed=control_wait >= 0.01, + observed=control_wait, + expected=">= 0.01 seconds", + ) + ) + checks.append( + _check( + "request-pressure advisory leased-wait response", + category="optimization", + passed=advisory_wait <= control_wait - 0.005, + observed=advisory_wait - control_wait, + expected="advisory leased request wait at least 5ms lower than control", + ) + ) + checks.append( + _check( + "request-pressure advisory dispatch choice", + category="optimization", + passed=advisory.get("first_model_dispatch_column") == "z_open", + observed=str(advisory.get("first_model_dispatch_column")), + expected="z_open", + ) + ) + if { + "adaptations/adaptive-request-pressure-control", + "adaptations/adaptive-request-pressure-combined", + }.issubset(cases): + control = cases["adaptations/adaptive-request-pressure-control"] + combined = cases["adaptations/adaptive-request-pressure-combined"] + control_wait = _metric(control, "request_wait_seconds_while_task_leased_mean") + combined_wait = _metric(combined, "request_wait_seconds_while_task_leased_mean") + control_llm_util = _metric(control, "llm_wait_utilization_ratio") + combined_llm_util = _metric(combined, "llm_wait_utilization_ratio") + control_request_idle = _metric(control, "request_idle_ratio") + combined_request_idle = _metric(combined, "request_idle_ratio") + checks.extend( + [ + _check( + "combined adaptive/request target grew", + category="optimization", + passed=int(combined.get("row_group_admission_observed_max_target", 0) or 0) > 1, + observed=int(combined.get("row_group_admission_observed_max_target", 0) or 0), + expected="observed adaptive target > 1", + ), + _check( + "combined adaptive/request advisory enabled", + category="optimization", + passed=bool(combined.get("request_pressure_advisory_enabled")), + observed=bool(combined.get("request_pressure_advisory_enabled")), + expected="true", + ), + _check( + "combined adaptive/request advisory skipped pressured work", + category="optimization", + passed=int(combined.get("request_pressure_advisory_skip_count", 0) or 0) > 0, + observed=int(combined.get("request_pressure_advisory_skip_count", 0) or 0), + expected="> 0 skip events", + ), + _check( + "combined adaptive/request leased wait captured", + category="optimization", + passed=math.isfinite(combined_wait) and combined_wait >= 0.0 and control_wait >= 0.0, + observed=combined_wait - control_wait, + expected="finite leased request wait delta", + ), + _check( + "combined adaptive/request llm utilization response", + category="optimization", + passed=combined_llm_util + 0.05 >= control_llm_util, + observed=combined_llm_util - control_llm_util, + expected="combined llm utilization stays within 5pp of control or improves", + ), + _check( + "combined adaptive/request request-idle response", + category="optimization", + passed=combined_request_idle <= control_request_idle + 0.05, + observed=combined_request_idle - control_request_idle, + expected="combined request idle does not exceed control by > 5pp", + ), + ] + ) + return checks + + +def _baseline_comparison_checks( + cases: Mapping[str, Mapping[str, Any]], + baseline_cases: Mapping[str, Mapping[str, Any]], + *, + utilization_tolerance: float, + idle_tolerance: float, +) -> list[RegressionCheck]: + checks: list[RegressionCheck] = [] + for case_key, baseline in sorted(baseline_cases.items()): + current = cases.get(case_key) + if current is None: + checks.append( + _check( + f"{case_key} baseline case present", + category="baseline", + passed=False, + observed="missing", + expected="present", + ) + ) + continue + baseline_util = _metric(baseline, "llm_wait_utilization_ratio") + current_util = _metric(current, "llm_wait_utilization_ratio") + checks.append( + _check( + f"{case_key} utilization regression", + category="baseline", + passed=current_util + utilization_tolerance >= baseline_util, + observed=current_util - baseline_util, + expected=f">= -{utilization_tolerance:.3f}", + ) + ) + for metric in ( + "llm_wait_idle_ratio", + "llm_wait_starved_idle_ratio", + "llm_wait_frontier_dependency_horizon_idle_ratio", + ): + baseline_idle = _metric(baseline, metric) + current_idle = _metric(current, metric) + checks.append( + _check( + f"{case_key} {metric} regression", + category="baseline", + passed=current_idle <= baseline_idle + idle_tolerance, + observed=current_idle - baseline_idle, + expected=f"<= +{idle_tolerance:.3f}", + ) + ) + baseline_throughput = _metric(baseline, "throughput_generations_per_second") + current_throughput = _metric(current, "throughput_generations_per_second") + checks.append( + _check( + f"{case_key} throughput smoke", + category="baseline", + severity="warning", + passed=current_throughput >= baseline_throughput * 0.75, + observed=current_throughput - baseline_throughput, + expected=">= 75% of baseline throughput", + ) + ) + return checks + + +def _wide_row_group_utilization_floor(mode: str) -> float: + return 0.55 if mode == "quick" else 0.70 + + +def _checks_payload(checks: Sequence[RegressionCheck]) -> dict[str, Any]: + return { + "checks_schema_version": CHECKS_SCHEMA_VERSION, + "suite_id": IDLE_SUITE_ID, + "suite_version": IDLE_SUITE_VERSION, + "passed": not _has_error(checks), + "error_count": sum(1 for check in checks if check.severity == "error" and not check.passed), + "warning_count": sum(1 for check in checks if check.severity == "warning" and not check.passed), + "checks": [asdict(check) for check in checks], + } + + +def _print_check_summary( + checks: Sequence[RegressionCheck], + report_path: Path, + summary_path: Path, + checks_path: Path, +) -> None: + errors = [check for check in checks if check.severity == "error" and not check.passed] + warnings = [check for check in checks if check.severity == "warning" and not check.passed] + status = "PASS" if not errors else "FAIL" + print(f"Idle regression suite: {status} ({len(errors)} errors, {len(warnings)} warnings)") + print(f"Wrote {report_path}") + print(f"Wrote {summary_path}") + print(f"Wrote {checks_path}") + for check in errors[:10]: + print(f"ERROR {check.name}: observed {check.observed}; expected {check.expected}") + for check in warnings[:5]: + print(f"WARN {check.name}: observed {check.observed}; expected {check.expected}") + + +def _has_error(checks: Sequence[RegressionCheck]) -> bool: + return any(check.severity == "error" and not check.passed for check in checks) + + +def _check( + name: str, + *, + category: str, + passed: bool, + observed: float | int | str | bool, + expected: str, + severity: str = "error", + detail: str = "", +) -> RegressionCheck: + return RegressionCheck( + name=name, + category=category, + severity=severity, + passed=passed, + observed=observed, + expected=expected, + detail=detail, + ) + + +def _cases(summary: Mapping[str, Any]) -> Mapping[str, Mapping[str, Any]]: + cases = summary.get("cases", {}) + if not isinstance(cases, Mapping): + return {} + return cases + + +def _minimum_case_count(mode: str) -> int: + return 15 if mode == "quick" else 21 + + +def _metric(case: Mapping[str, Any], name: str) -> float: + return float(case.get(name, 0.0) or 0.0) + + +def _load_json(path: Path) -> Mapping[str, Any]: + return json.loads(path.read_text(encoding="utf-8")) + + +if __name__ == "__main__": + main() From 9a8312a964d6f4ceec8a193bb696c51c3a5649be Mon Sep 17 00:00:00 2001 From: Andre Manoel <165937436+andreatgretel@users.noreply.github.com> Date: Tue, 19 May 2026 16:27:48 -0300 Subject: [PATCH 13/33] fix request pressure domain metadata (#679) --- .../engine/column_generators/generators/base.py | 13 ++++++++++++- .../dataset_builders/scheduling/test_resolver.py | 14 ++++++++++---- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/packages/data-designer-engine/src/data_designer/engine/column_generators/generators/base.py b/packages/data-designer-engine/src/data_designer/engine/column_generators/generators/base.py index 66d902a46..e2a333c69 100644 --- a/packages/data-designer-engine/src/data_designer/engine/column_generators/generators/base.py +++ b/packages/data-designer-engine/src/data_designer/engine/column_generators/generators/base.py @@ -35,6 +35,13 @@ class _EndpointBucket: caps: list[int] = field(default_factory=list) +def _scheduling_generation_kind(generation_type: object) -> str: + value = getattr(generation_type, "value", generation_type) + if value == "chat-completion": + return "chat" + return str(value) + + if TYPE_CHECKING: import pandas as pd @@ -192,7 +199,11 @@ def get_scheduling_metadata(self) -> SchedulingMetadata: diagnostics={"alias": alias, "generator_type": type(self).__name__}, ) from exc - endpoint = (provider_name, str(model_config.model), str(model_config.generation_type)) + endpoint = ( + provider_name, + str(model_config.model), + _scheduling_generation_kind(model_config.generation_type), + ) max_parallel = getattr(model_config.inference_parameters, "max_parallel_requests", 1) cap = max_parallel if isinstance(max_parallel, int) and max_parallel > 0 else 1 bucket = endpoints.setdefault(endpoint, _EndpointBucket()) diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_resolver.py b/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_resolver.py index ab8ce0a2c..1804dd272 100644 --- a/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_resolver.py +++ b/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_resolver.py @@ -9,9 +9,12 @@ import pytest from data_designer.config.column_configs import ExpressionColumnConfig +from data_designer.config.models import GenerationType from data_designer.config.scheduling import SchedulingMetadata, SchedulingMetadataError +from data_designer.engine.column_generators.generators.base import ColumnGeneratorWithModelRegistry from data_designer.engine.dataset_builders.scheduling.resolver import TaskSchedulingResolver from data_designer.engine.dataset_builders.scheduling.task_model import Task +from data_designer.engine.models.request_admission.resources import RequestDomain, RequestResourceKey class _LocalGenerator: @@ -65,6 +68,7 @@ def test_task_scheduling_resolver_maps_model_metadata_to_model_resource() -> Non assert schedulable.group.weight == 3.0 assert schedulable.group.admitted_limit == 6 assert schedulable.resource_request.amounts == {"submission": 1, "llm_wait": 1} + assert schedulable.request_resource_key == RequestResourceKey("nvidia", "nemotron", RequestDomain.CHAT) def test_task_scheduling_resolver_records_safe_fallback_diagnostics() -> None: @@ -82,8 +86,6 @@ def test_task_scheduling_resolver_raises_fatal_metadata_error() -> None: def test_model_registry_generator_metadata_deduplicates_same_endpoint_aliases() -> None: - from data_designer.engine.column_generators.generators.base import ColumnGeneratorWithModelRegistry - class _RegistryGenerator(ColumnGeneratorWithModelRegistry[ExpressionColumnConfig]): @staticmethod def get_generation_strategy() -> object: @@ -98,12 +100,12 @@ def generate(self, data: object) -> object: configs = { "primary": SimpleNamespace( model="endpoint", - generation_type="chat", + generation_type=GenerationType.CHAT_COMPLETION, inference_parameters=SimpleNamespace(max_parallel_requests=4), ), "secondary": SimpleNamespace( model="endpoint", - generation_type="chat", + generation_type=GenerationType.CHAT_COMPLETION, inference_parameters=SimpleNamespace(max_parallel_requests=2), ), } @@ -119,3 +121,7 @@ def generate(self, data: object) -> object: assert metadata.identity == ("model", "nvidia", "endpoint", "chat") assert metadata.weight == 2 assert metadata.diagnostics["merge_rule"] == "min_same_endpoint" + + resolver = TaskSchedulingResolver({"answer": generator}) # type: ignore[arg-type] + schedulable = resolver.schedulable_task(_task(), ("answer",)) + assert schedulable.request_resource_key == RequestResourceKey("nvidia", "endpoint", RequestDomain.CHAT) From 2c4379ad078f4f2120f0e19632f836952da2880b Mon Sep 17 00:00:00 2001 From: Nabin Mulepati Date: Tue, 19 May 2026 14:30:10 -0600 Subject: [PATCH 14/33] fix: harden async scheduling admission follow-ups (#680) --- ...request-keying.png => throttle-keying.png} | Bin .../concepts/architecture-and-performance.mdx | 58 +++++++-- fern/versions/v0.5.8/pages/devnotes/index.mdx | 2 +- .../devnotes/posts/async-all-the-way-down.mdx | 47 +++---- .../devnotes/posts/owning-the-model-stack.mdx | 58 ++++++--- fern/versions/v0.5.9/pages/devnotes/index.mdx | 2 +- .../dataset_builders/async_scheduler.py | 122 ++++++++++++++++-- .../dataset_builders/dataset_builder.py | 1 + .../scheduling/task_admission.py | 15 ++- .../engine/models/clients/factory.py | 7 +- .../models/clients/model_request_executor.py | 54 ++++++++ .../models/request_admission/controller.py | 32 ++++- .../models/request_admission/pressure.py | 4 + .../scheduling/test_task_admission.py | 18 +++ .../dataset_builders/test_async_scheduler.py | 70 +++++++++- .../engine/models/clients/test_factory.py | 5 +- .../clients/test_model_request_executor.py | 105 +++++++++++++++ .../request_admission/test_controller.py | 47 +++++-- .../engine/test_async_scheduling_benchmark.py | 23 ++++ .../generate_async_scheduling_idle_report.py | 8 +- .../run_async_scheduling_idle_regression.py | 9 +- tests_e2e/tests/test_mcp_demo.py | 14 +- 22 files changed, 602 insertions(+), 99 deletions(-) rename fern/assets/owning-the-model-stack/{request-keying.png => throttle-keying.png} (100%) diff --git a/fern/assets/owning-the-model-stack/request-keying.png b/fern/assets/owning-the-model-stack/throttle-keying.png similarity index 100% rename from fern/assets/owning-the-model-stack/request-keying.png rename to fern/assets/owning-the-model-stack/throttle-keying.png diff --git a/fern/versions/v0.5.8/pages/concepts/architecture-and-performance.mdx b/fern/versions/v0.5.8/pages/concepts/architecture-and-performance.mdx index cc9bd0638..fc0704cda 100644 --- a/fern/versions/v0.5.8/pages/concepts/architecture-and-performance.mdx +++ b/fern/versions/v0.5.8/pages/concepts/architecture-and-performance.mdx @@ -51,7 +51,7 @@ This guide explains the architecture, execution model, and how to tune performan ## Execution Model - The default execution path is the **async engine**, which dispatches work at the cell level and overlaps independent columns — see [Async Engine](#async-engine) below for its semantics. The legacy **sync engine** is still available for one transitional release via `DATA_DESIGNER_ASYNC_ENGINE=0` and is what this section describes. The public configuration knobs documented below (`buffer_size`, `max_parallel_requests`, error handling) apply to both engines; the differences are flagged inline. + The default execution path is the **async engine**, which dispatches work at the cell level and overlaps independent columns — see [Async Engine](#async-engine) below for its semantics. The legacy **sync engine** is still available for one transitional release via `DATA_DESIGNER_ASYNC_ENGINE=0` and is what this section describes. The configuration knobs documented below (`buffer_size`, `max_parallel_requests`, AIMD throttle config, error handling) apply to both engines; the differences are flagged inline. The sync engine processes datasets in **batches**, with **parallel** operations within each batch. @@ -108,12 +108,12 @@ At any moment, the number of concurrent LLM requests is: ```python concurrent_requests = min( buffer_size, # Records in current batch - current_request_limit, # AIMD-managed limit (≤ max_parallel_requests) + current_throttle_limit, # AIMD-managed limit (≤ max_parallel_requests) remaining_cells_in_column # Cells left to generate ) ``` -`max_parallel_requests` sets the **ceiling**. The actual limit (`current_request_limit`) is managed at runtime by adaptive request admission that reacts to rate-limit signals from the inference server: +`max_parallel_requests` sets the **ceiling**. The actual limit (`current_throttle_limit`) is managed at runtime by an AIMD (Additive Increase / Multiplicative Decrease) controller that reacts to rate-limit signals from the inference server: - **On the first 429 in a burst**: the limit is reduced by a configurable factor (default: 25% reduction) and a cooldown is applied. Further 429s from already in-flight requests in the same burst do not reduce the limit again — they release their permits and hold the limit steady. - **After consecutive successes**: the limit increases by 1 (by default) until it reaches the ceiling or a stabilized rate-limit threshold. @@ -121,7 +121,7 @@ concurrent_requests = min( This means Data Designer automatically finds the right concurrency level for your server without manual tuning. - Adaptive request admission is fully active on the default **async engine**. The legacy **sync engine** is available for one transitional release via `DATA_DESIGNER_ASYNC_ENGINE=0`; on that path 429s are first retried at the HTTP transport layer and AIMD only engages as a fallback. See [Async engine](#async-engine) below. + AIMD adaptive concurrency is fully active on the default **async engine**. The legacy **sync engine** is available for one transitional release via `DATA_DESIGNER_ASYNC_ENGINE=0`; on that path 429s are first retried at the HTTP transport layer and AIMD only engages as a fallback. See [Async engine](#async-engine) below. **Example**: With `buffer_size=100` and `max_parallel_requests=32`, Data Designer starts sending up to 32 requests in parallel. If the server returns 429s, concurrency drops automatically (e.g., to 24, then 18) and recovers once the server catches up. @@ -198,7 +198,7 @@ Only resume datasets from trusted artifact directories. Resume reads local `meta ### `max_parallel_requests` (InferenceParams) -Sets the **maximum** concurrent LLM API calls **per model**. This is the ceiling that adaptive request admission can ramp up to — the actual concurrency at runtime may be lower if the server signals rate limits. +Sets the **maximum** concurrent LLM API calls **per model**. This is the ceiling that the AIMD throttle controller can ramp up to — the actual concurrency at runtime may be lower if the server signals rate limits. ```python import data_designer.config as dd @@ -215,7 +215,7 @@ model = dd.ModelConfig( **Default**: 4 -**When to increase**: Your inference backend has high throughput capacity, you're using a cloud API with generous rate limits, or you're running vLLM/TensorRT-LLM with multiple GPUs. With adaptive request admission, setting an aggressively high value is safer than before — the system will self-correct downward if the server can't keep up. The salvage queue on the async engine (default) reclaims failed rows; on the sync engine the initial burst of 429s before AIMD stabilizes can drop rows, so start with a more conservative ceiling if you've opted into sync. +**When to increase**: Your inference backend has high throughput capacity, you're using a cloud API with generous rate limits, or you're running vLLM/TensorRT-LLM with multiple GPUs. With AIMD, setting an aggressively high value is safer than before — the system will self-correct downward if the server can't keep up. The salvage queue on the async engine (default) reclaims failed rows; on the sync engine the initial burst of 429s before AIMD stabilizes can drop rows, so start with a more conservative ceiling if you've opted into sync. **When to decrease**: You want to cap resource usage to a known safe level, or you want more predictable/debuggable execution. @@ -223,7 +223,7 @@ model = dd.ModelConfig( Finding the optimal value The right value depends on your inference stack and model. Self-hosted vLLM servers can often handle values as high as 256, 512, or even 1024 depending on your hardware. -With adaptive request admission, a practical approach is to set `max_parallel_requests` to the **upper bound** you're comfortable with and let the request controller find the sustainable level automatically. If you see frequent 429 → recovery cycles in the logs, your ceiling is above the server's true capacity but the system is handling it. If you never see any request-admission activity, you may have room to increase the ceiling further. +With AIMD, a practical approach is to set `max_parallel_requests` to the **upper bound** you're comfortable with and let the throttle controller find the sustainable level automatically. If you see frequent 429 → recovery cycles in the logs, your ceiling is above the server's true capacity but the system is handling it. If you never see any throttle activity, you may have room to increase the ceiling further. **Benchmark approach**: Run a small dataset (e.g., 100 records) with increasing `max_parallel_requests` values (4 → 8 → 16 → 32 → ...) and measure generation time. Stop increasing when the runtime stops decreasing—that's when your inference server is saturated. @@ -245,9 +245,39 @@ designer.set_run_config(run_config) --- -### Adaptive Request Admission +### Adaptive Throttling (RunConfig) -Data Designer uses AIMD (Additive Increase / Multiplicative Decrease) request admission to automatically adjust concurrency per provider/model/domain based on rate-limit feedback from the inference server. This is an internal runtime controller, not a public `RunConfig` knob. Set `max_parallel_requests` as the user-facing ceiling and inspect `AsyncCapacityPlan`/logs to understand the effective runtime limits. +Data Designer uses an AIMD (Additive Increase / Multiplicative Decrease) controller to automatically adjust concurrency per model based on rate-limit feedback from the inference server. The defaults work well for most workloads. Override them via `ThrottleConfig` only when you understand the trade-offs. + + + Adaptive throttling is fully active on the default **async engine**, where 429 responses propagate directly to the AIMD controller. On the legacy **sync engine** (`DATA_DESIGNER_ASYNC_ENGINE=0`), 429s are first retried at the HTTP transport layer; `ThrottleConfig` settings only take effect as a fallback if transport retries are exhausted. + + +```python +import data_designer.config as dd +from data_designer.interface import DataDesigner + +run_config = dd.RunConfig( + throttle=dd.ThrottleConfig( + reduce_factor=0.75, # Multiply limit by this on a 429 (default: 0.75) + additive_increase=1, # Add this many slots after success_window successes (default: 1) + success_window=25, # Consecutive successes before increasing (default: 25) + cooldown_seconds=2.0, # Pause after a 429 when no Retry-After header (default: 2.0) + ceiling_overshoot=0.10, # Probe 10% above observed server limit (default: 0.10) + ), +) + +designer = DataDesigner() +designer.set_run_config(run_config) +``` + +| Parameter | Default | Effect | +|-----------|---------|--------| +| `reduce_factor` | 0.75 | How aggressively to cut concurrency on a 429. Lower = more aggressive. | +| `additive_increase` | 1 | Slots added per recovery step. Higher = faster ramp-up, but riskier. | +| `success_window` | 25 | Consecutive successes required before each increase step. | +| `cooldown_seconds` | 2.0 | Pause duration after a 429 (used when the server doesn't send `Retry-After`). | +| `ceiling_overshoot` | 0.10 | Fraction above the observed rate-limit ceiling the controller is allowed to probe. | How it works in practice @@ -283,11 +313,11 @@ designer.set_run_config(run_config) ## Async Engine -The async engine is the default execution path. It dispatches work at the cell level rather than the column level, so independent columns overlap in time and provider/model/domain request resources tune themselves independently. See the [Async All the Way Down](/dev-notes/async-all-the-way-down) dev note for the full architecture. +The async engine is the default execution path. It dispatches work at the cell level rather than the column level, so independent columns overlap in time and per-(provider, model) AIMD pools tune themselves independently. See the [Async All the Way Down](/dev-notes/async-all-the-way-down) dev note for the full architecture. ### Per-model timeouts drive every deadline -The `inference_parameters.timeout` field on a `ModelConfig` sets the per-request HTTP timeout. The same value also drives the sync→async bridge that custom columns use when they call `model.generate()`. There is no separate queue-wait deadline — waits scale with provider speed and adaptive request admission. Slow self-hosted endpoints (e.g. large models on a single GPU) only need this one knob raised: +The `inference_parameters.timeout` field on a `ModelConfig` sets the per-request HTTP timeout. The same value also drives the sync→async bridge that custom columns use when they call `model.generate()`. There is no separate queue-wait deadline — waits scale with provider speed and AIMD's adaptive concurrency. Slow self-hosted endpoints (e.g. large models on a single GPU) only need this one knob raised: ```python import data_designer.config as dd @@ -336,8 +366,8 @@ DATA_DESIGNER_ASYNC_ENGINE=0 python my_pipeline.py | Problem | Symptom | Solution | |---------|---------|----------| -| **Low throughput** | Low GPU utilization | Increase `max_parallel_requests` and/or `buffer_size`. If request admission has self-reduced due to earlier 429s (check logs for "concurrency reduced" messages), the server may need more capacity or you can wait for AIMD recovery. | -| **Frequent 429 → recovery cycles** | Logs show repeated concurrency drops and ramp-ups | The `max_parallel_requests` ceiling is above the server's sustained capacity. This is handled automatically, but you can lower the ceiling to reduce the sawtooth. | +| **Low throughput** | Low GPU utilization | Increase `max_parallel_requests` and/or `buffer_size`. If the throttle has self-reduced due to earlier 429s (check logs for "concurrency reduced" messages), the server may need more capacity or you can wait for AIMD recovery. | +| **Frequent 429 → recovery cycles** | Logs show repeated concurrency drops and ramp-ups | The `max_parallel_requests` ceiling is above the server's sustained capacity. This is handled automatically, but you can lower the ceiling to reduce the sawtooth or tune `reduce_factor` / `success_window`. | | **Long tail of slow generations** | Most records fast, few very slow | Reduce `max_conversation_restarts`, simplify schemas, improve prompts | | **Multi-model idle periods** | One model busy, others idle | Reduce `buffer_size` for faster cycling, or consolidate models | | **Memory errors** | OOM crashes | Reduce `buffer_size` and `max_parallel_requests` | @@ -350,7 +380,7 @@ DATA_DESIGNER_ASYNC_ENGINE=0 python my_pipeline.py 1. **Start with defaults** for initial development — AIMD handles rate-limit adaptation automatically 2. **Profile your workload**: How many LLM columns? How many records? What models? 3. **Identify bottleneck**: Low GPU util → increase `max_parallel_requests` (AIMD will self-correct if you overshoot). Memory issues → decrease `buffer_size`. Long tails → tune retry settings. -4. **Check request-admission logs**: Look for "concurrency reduced" / "concurrency increased" messages to understand whether rate limits are the bottleneck +4. **Check throttle logs**: Look for "concurrency reduced" / "concurrency increased" messages to understand whether rate limits are the bottleneck 5. **Iterate**: Make one change at a time, measure impact before next change --- diff --git a/fern/versions/v0.5.8/pages/devnotes/index.mdx b/fern/versions/v0.5.8/pages/devnotes/index.mdx index fa5545d2c..2bab4a5fd 100644 --- a/fern/versions/v0.5.8/pages/devnotes/index.mdx +++ b/fern/versions/v0.5.8/pages/devnotes/index.mdx @@ -44,7 +44,7 @@ Welcome to NeMo Data Designer Dev Notes — in-depth guides, benchmark write-ups } diff --git a/fern/versions/v0.5.8/pages/devnotes/posts/async-all-the-way-down.mdx b/fern/versions/v0.5.8/pages/devnotes/posts/async-all-the-way-down.mdx index c81f1551d..631d1ab18 100644 --- a/fern/versions/v0.5.8/pages/devnotes/posts/async-all-the-way-down.mdx +++ b/fern/versions/v0.5.8/pages/devnotes/posts/async-all-the-way-down.mdx @@ -58,7 +58,7 @@ Getting this right required solving three problems at different levels of the st
    -![Three layers: AsyncTaskScheduler for dependency dispatch, row-group admission for memory, and request admission for provider capacity](/assets/async-all-the-way-down/architecture-layers.svg) +![Three layers: AsyncTaskScheduler for dependency dispatch, row-group admission for memory, ThrottleManager for rate limits](/assets/async-all-the-way-down/architecture-layers.svg)
    @@ -66,42 +66,43 @@ Getting this right required solving three problems at different levels of the st At the top sits the `AsyncTaskScheduler`. It builds an `ExecutionGraph` from your column configs using [Kahn's algorithm](https://en.wikipedia.org/wiki/Topological_sorting#Kahn's_algorithm) for topological ordering, then tracks per-cell completion via a `CompletionTracker`. When a cell completes, the tracker determines which downstream cells are now ready and pushes them onto the dispatch queue. -The scheduler maintains a *frontier* — the set of tasks whose inputs are all satisfied. Dispatch is a loop: enqueue ready tasks, ask `FairTaskQueue` to select the next eligible task, acquire a scheduler-resource lease from `TaskAdmissionController`, commit the queue selection, then spawn a worker. When the worker completes, mark the cell done, release the lease, and make any newly-ready downstream tasks visible. The loop runs until every cell in every row group has completed or been dropped. +The scheduler maintains a *frontier* — the set of tasks whose inputs are all satisfied. Dispatch is a loop: pull ready tasks from the frontier, acquire a [semaphore](https://en.wikipedia.org/wiki/Semaphore_(programming)) slot, spawn a worker. When the worker completes, mark the cell done, which may add new tasks to the frontier. The loop runs until every cell in every row group has completed or been dropped. -There's a subtlety in how the scheduler manages task-stage pressure. Scheduler resources and provider request resources are separate. The scheduler decides which dependency-ready cell may become a running worker; `ModelRequestExecutor` and request admission decide when an individual provider call may execute. Keeping those ledgers separate prevents provider cooldown or request backpressure from masquerading as DAG readiness. +There's a subtlety in how the scheduler manages its task slots, and getting it right required a delicate dance between two semaphores. A naïve approach would hold a submission slot for the entire lifetime of a task. That's fine for the outbound HTTP call — the slot is released before the request goes out. But the `ThrottleManager` can impose an internal timeout while waiting for a permit during AIMD cooldown, and *that* wait would hold the submission slot hostage. If enough tasks are blocked waiting for throttle permits, the scheduler can't dispatch new work even when the frontier has ready tasks. -The durable scheduler contract is selection plus admission plus commit: +The fix is a one-way semaphore handoff. The scheduler maintains two pools: a *submission* semaphore that caps how many tasks can be dispatched, and an *LLM-wait* semaphore (sized larger) for tasks that are blocked on a model call. When a task is about to call the model, it acquires an LLM-wait slot and releases its submission slot in the same atomic operation — stepping from one pool to the other mid-flight. The dispatch loop immediately sees a free submission slot and can send another task. When the LLM responds, the LLM-wait slot is released. Non-LLM generators (samplers, Jinja expressions) skip the handoff and hold their submission slot for the full duration, which is fine because they complete quickly. ```py -selection = queue.select_next(lambda item, view: admission.is_eligible(item, view)) -decision = admission.try_acquire(selection.item, selection.queue_view) -committed = queue.commit(selection) -spawn_worker(committed, decision) +if is_llm_bound: + await self._llm_wait_semaphore.acquire() + holds_llm_wait = True + self._submission_semaphore.release() + holds_submission = False ``` -This keeps ready-work ordering, scheduler-resource accounting, and request-capacity adaptation explicit. `SchedulingMetadata` describes static generator pressure, `TaskSchedulingResolver` turns it into scheduler inputs, `FairTaskQueue` handles ready ordering, and `TaskAdmissionController` owns leases for scheduler resources. +This keeps the dispatch loop saturated without unbounded coroutine growth — the submission semaphore controls how fast tasks enter, and the LLM-wait semaphore controls how many are waiting on the network. ### **Layer 2: Row-group admission** -Below the scheduler, the 10,000 rows you requested aren't all in memory at once. They're partitioned into row groups that checkpoint to parquet independently. Row-group admission limits how many groups are in flight simultaneously, preventing memory from growing unboundedly on large runs. +Below the scheduler, the 10,000 rows you requested aren't all in memory at once. They're partitioned into row groups that checkpoint to parquet independently. A semaphore limits how many row groups are in flight simultaneously, preventing memory from growing unboundedly on large runs. When a row group completes — all columns generated for all its rows — the buffer manager flushes it to disk and releases the memory. Partial results appear on disk during generation. If something fails, you keep everything that already checkpointed. This is also the basis for fault tolerance, discussed later — the unit of loss is a row group, not the entire run. ### **Layer 3: Adaptive rate limiting** -At the bottom, each provider/model/request-domain resource gets [additive-increase, multiplicative-decrease (AIMD)](https://en.wikipedia.org/wiki/Additive_increase/multiplicative_decrease) request admission. When the provider returns a 429, `AdaptiveRequestAdmissionController` reduces admitted concurrency for that request resource. On streaks of successful requests, it gradually increases. Because this happens per request resource, a judge model running on one provider can saturate its endpoint while a generator on another provider is backing off. The [Owning the Model Stack](/dev-notes/owning-the-model-stack) dev note covers this layer in depth. +At the bottom, each (provider, model) pair gets an independent concurrency pool with [additive-increase, multiplicative-decrease (AIMD)](https://en.wikipedia.org/wiki/Additive_increase/multiplicative_decrease) rate adaptation. When the provider returns a 429, the pool cuts its concurrency. On streaks of successful requests, it gradually increases. Because this happens per-model, a judge model running on one provider can saturate its endpoint while a generator on another provider is backing off. The [Owning the Model Stack](/dev-notes/owning-the-model-stack) dev note covers this layer in depth. ### **How they compose** -The layers are independent. The scheduler decides *what* to run next. The row-group layer decides *how much* to keep in memory at once. The request-admission layer discovers *how fast* each provider will accept requests. No layer needs to know about the others. +The layers are independent. The scheduler decides *what* to run next. The row-group layer decides *how much* to keep in memory at once. The throttle layer discovers *how fast* each provider will accept requests. No layer needs to know about the others. A single task's lifecycle makes the composition concrete:
    - Task lifecycle: Frontier to fair queue to task admission to generator to request admission to LLM call to complete, with downstream cells looping back to the frontier + Task lifecycle: Frontier → Dispatch → Generator → Throttle → LLM Call → Complete, with downstream cells looping back to the frontier
    -A cell enters the frontier when its upstream dependencies are satisfied. The scheduler enqueues it, selects it through `FairTaskQueue`, acquires a `TaskAdmissionLease`, commits the selection, and hands the task to a worker. The worker runs the generator; any model call goes through `ModelRequestExecutor`, which acquires and releases the request-admission lease around provider execution. On completion, leases are released, the cell is marked done in the `CompletionTracker`, and any downstream cells whose dependencies are now satisfied enter the frontier. The cycle continues until every cell has completed or been dropped. +A cell enters the frontier when its upstream dependencies are satisfied. The dispatch loop acquires a submission slot and hands it to a worker. The worker runs the generator, which acquires a throttle permit before making the LLM call. On completion, permits are released, the cell is marked done in the `CompletionTracker`, and any downstream cells whose dependencies are now satisfied enter the frontier. The cycle continues until every cell has completed or been dropped. --- @@ -136,13 +137,13 @@ The pattern is clear: speedup scales with the amount of parallelism available in The **narrow** workload is a sequential chain with no cross-column parallelism. The async engine still ekes out a small gain from overlapping row-level dispatch, but there's no structural parallelism to exploit. This is expected: async can't speed up a fundamentally serial pipeline. -The **dual-model** workload is the most interesting case. Three generation columns use one model, and three judge columns use another. Each model maps to its own request-admission resources. The judge model starts processing rows as soon as the first generator finishes, running at full concurrency while the generator is still producing. In the sync engine, all generation has to finish before any judging starts. +The **dual-model** workload is the most interesting case. Three generation columns use one model, and three judge columns use another. Each model gets its own ThrottleManager pool. The judge model starts processing rows as soon as the first generator finishes, running at full concurrency while the generator is still producing. In the sync engine, all generation has to finish before any judging starts. ### **At higher record counts** -The benchmarks above use 10 records deliberately — small batches isolate the scheduling benefit from rate-limit effects. At higher record counts, the bottleneck shifts. The async engine dispatches requests more aggressively, which means it discovers the provider's rate limits sooner. When a 429 hits, adaptive request admission backs off, and the backoff can cascade through downstream columns that were waiting on the rate-limited model's output. +The benchmarks above use 10 records deliberately — small batches isolate the scheduling benefit from rate-limit effects. At higher record counts, the bottleneck shifts. The async engine dispatches requests more aggressively, which means it discovers the provider's rate limits sooner. When a 429 hits, the AIMD controller backs off, and the backoff can cascade through downstream columns that were waiting on the throttled model's output. -This is where per-model request resources become important. Single-model pipelines are most susceptible to cascading backoff because all columns compete for the same provider capacity. Multi-model pipelines hold up well because each model adapts independently — a 429 on the generator model doesn't slow down the judge. In our larger runs, dual-model and multi-provider workloads consistently showed the largest async gains. +This is where the per-model throttle pools become important. Single-model pipelines are most susceptible to cascading backoff because all columns compete for the same pool. Multi-model pipelines hold up well because each model adapts independently — a 429 on the generator model doesn't slow down the judge. In our larger runs, dual-model and multi-provider workloads consistently showed the largest async gains. The primary tuning lever is `max_parallel_requests` per model. Set it to a generous upper bound and let AIMD find the real ceiling. See the [Owning the Model Stack](/dev-notes/owning-the-model-stack) dev note for the full story on adaptive concurrency. @@ -178,7 +179,7 @@ The performance numbers are satisfying, but raw throughput is only part of the p ### **Progress you can see** -Because rows complete out of order and row groups checkpoint independently, results start appearing on disk within seconds. The new progress bars — sticky ANSI bars that redraw in-place at the bottom of the terminal — update on every task completion rather than waiting for a full column to finish. Log messages from the scheduler and request-admission layer render above the bars, so you see both the high-level progress and the per-event detail. A 10-minute generation run no longer means staring at nothing until the end. +Because rows complete out of order and row groups checkpoint independently, results start appearing on disk within seconds. The new progress bars — sticky ANSI bars that redraw in-place at the bottom of the terminal — update on every task completion rather than waiting for a full column to finish. Log messages from the scheduler and throttle layer render above the bars, so you see both the high-level progress and the per-event detail. A 10-minute generation run no longer means staring at nothing until the end. ``` column 'topic' ████████████████████████████████████░░░░ 89% | 890/1000 | 148.3 rec/s | eta 1s | 0 failed @@ -187,13 +188,13 @@ Because rows complete out of order and row groups checkpoint independently, resu column 'analysis' ██████████████░░░░░░░░░░░░░░░░░░░░░░░░░░ 35% | 350/1000 | 87.5 rec/s | eta 7s | 1 failed ``` -When tracing is enabled (`DATA_DESIGNER_ASYNC_TRACE=1` or `RunConfig(async_trace=True)`), the scheduler also records a `TaskTrace` for every task: when it was dispatched, when it acquired scheduler resources, when it completed, and its status. These traces are available on the result object after the run, so you can reconstruct the scheduler's timeline and understand where time was spent. +When tracing is enabled (`DATA_DESIGNER_ASYNC_TRACE=1` or `RunConfig(async_trace=True)`), the scheduler also records a `TaskTrace` for every task: when it was dispatched, when it acquired a semaphore slot, when it completed, and its status. These traces are available on the result object after the run, so you can reconstruct the scheduler's timeline and understand where time was spent. ### **Fault tolerance** Failures in a long-running pipeline are not exceptional — they're expected. Model endpoints return 429s, connections time out, prompts produce unparseable output. The scheduler classifies errors into two buckets. -Retryable errors (rate limits, timeouts, transient server errors) are deferred rather than dropped. The task stays on the frontier so it can be re-attempted. If a row group stalls — all of its pending tasks are deferred and nothing is in flight — the scheduler detects the deadlock and runs *salvage rounds*: it re-dispatches the deferred tasks inline, up to a configurable maximum number of attempts. Tasks that still fail after salvage are dropped, and the row group is checkpointed with whatever succeeded. This prevents a stalled row group from holding row-group admission capacity forever and blocking admission of new row groups. +Retryable errors (rate limits, timeouts, transient server errors) are deferred rather than dropped. The task stays on the frontier so it can be re-attempted. If a row group stalls — all of its pending tasks are deferred and nothing is in flight — the scheduler detects the deadlock and runs *salvage rounds*: it re-dispatches the deferred tasks inline, up to a configurable maximum number of attempts. Tasks that still fail after salvage are dropped, and the row group is checkpointed with whatever succeeded. This prevents a stalled row group from holding its semaphore slot forever and blocking admission of new row groups. Non-retryable errors (malformed output, validation failures) drop the row immediately. The `CompletionTracker` knows which downstream tasks depended on that row and removes them from the frontier, so no work is wasted on a row that's already lost. @@ -201,7 +202,7 @@ In both cases, completed row groups are already on disk. The unit of loss is at ### **Multi-model concurrency** -Multi-model pipelines are where the architecture pays for itself. With independent request resources per model, there's no reason not to use the right model for each job: a reasoning model for generation, a smaller model for judging, an embedding model for deduplication, each running at its own optimal concurrency. The previous engine supported multi-model configs, but running them concurrently is what makes them practical at scale. +Multi-model pipelines are where the architecture pays for itself. With independent throttle pools per model, there's no reason not to use the right model for each job: a reasoning model for generation, a smaller model for judging, an embedding model for deduplication, each running at its own optimal concurrency. The previous engine supported multi-model configs, but running them concurrently is what makes them practical at scale. ### **Adoption** @@ -213,7 +214,7 @@ Adoption is opt-in. Set `DATA_DESIGNER_ASYNC_ENGINE=1` in your environment. Your This was a ground-up rebuild of the execution layer, delivered across six PRs over four weeks. -It started with the data structures: `ExecutionGraph`, `CompletionTracker`, and task models ([#356](https://github.com/NVIDIA-NeMo/DataDesigner/pull/356)). Next came the generator migration ([#378](https://github.com/NVIDIA-NeMo/DataDesigner/pull/378)), where we added symmetric `generate()`/`agenerate()` bridging so every generator works in both modes without rewriting. The core scheduler and buffer manager followed in [#404](https://github.com/NVIDIA-NeMo/DataDesigner/pull/404), then integration into `DatasetBuilder` with callbacks and trace export ([#429](https://github.com/NVIDIA-NeMo/DataDesigner/pull/429)). The historical predecessor to request admission and task-stage capacity control landed in [#449](https://github.com/NVIDIA-NeMo/DataDesigner/pull/449), wiring AIMD concurrency control into every outbound model request. A final polish pass ([#456](https://github.com/NVIDIA-NeMo/DataDesigner/pull/456)) added async preview, unified lifecycle callbacks, and sticky ANSI progress bars. +It started with the data structures: `ExecutionGraph`, `CompletionTracker`, and task models ([#356](https://github.com/NVIDIA-NeMo/DataDesigner/pull/356)). Next came the generator migration ([#378](https://github.com/NVIDIA-NeMo/DataDesigner/pull/378)), where we added symmetric `generate()`/`agenerate()` bridging so every generator works in both modes without rewriting. The core scheduler and buffer manager followed in [#404](https://github.com/NVIDIA-NeMo/DataDesigner/pull/404), then integration into `DatasetBuilder` with callbacks and trace export ([#429](https://github.com/NVIDIA-NeMo/DataDesigner/pull/429)). The `ThrottledModelClient` and dual-semaphore scheduler landed in [#449](https://github.com/NVIDIA-NeMo/DataDesigner/pull/449), wiring AIMD concurrency control into every outbound model request. A final polish pass ([#456](https://github.com/NVIDIA-NeMo/DataDesigner/pull/456)) added async preview, unified lifecycle callbacks, and sticky ANSI progress bars. The symmetric bridging was critical for adoption. Every `ColumnGenerator` has both a `generate()` and an `agenerate()` method. Implement one, and the base class synthesizes the other: @@ -276,7 +277,7 @@ Key Resources: 1. [NeMo Data Designer on GitHub](https://github.com/NVIDIA-NeMo/DataDesigner) 2. [Data Designer Documentation](/getting-started/welcome) -3. [Owning the Model Stack: Adaptive Concurrency](/dev-notes/owning-the-model-stack) — companion dev note on the native client layer and AIMD request admission +3. [Owning the Model Stack: Adaptive Concurrency](/dev-notes/owning-the-model-stack) — companion dev note on the native client layer and AIMD throttling 4. [Async Engine Plan (#346)](https://github.com/NVIDIA-NeMo/DataDesigner/issues/346) — original issue and architecture plan *Want to learn more about NeMo Data Designer? Check out our [documentation](/getting-started/welcome) and start building your own synthetic data pipelines today.* diff --git a/fern/versions/v0.5.8/pages/devnotes/posts/owning-the-model-stack.mdx b/fern/versions/v0.5.8/pages/devnotes/posts/owning-the-model-stack.mdx index 0eec884c5..ad9136362 100644 --- a/fern/versions/v0.5.8/pages/devnotes/posts/owning-the-model-stack.mdx +++ b/fern/versions/v0.5.8/pages/devnotes/posts/owning-the-model-stack.mdx @@ -10,11 +10,11 @@ import { Authors } from "@/components/Authors"; Picture this: you're generating a million-record dataset. Thirty two concurrent requests per model, three models in the pipeline, two providers. Everything hums along for the first ten minutes — then one provider starts returning 429s, your retry logic kicks in, and suddenly you're in a feedback loop where retries *cause* more 429s. The run stalls. You restart with lower concurrency, waste throughput for hours, and wonder if there's a better way. -There is. This post is about the native model client layer we built with adaptive request admission (a system that discovers provider capacity at runtime) replacing our dependency on LiteLLM along the way. +There is. This post is about the native model client layer we built with adaptive throttling (a system that discovers provider capacity at runtime) replacing our dependency on LiteLLM along the way. {/* more */} -![From chaotic request flow to calibrated concurrency via adaptive request admission](/assets/owning-the-model-stack/native-model-client-hero.png) +![From chaotic request flow to calibrated concurrency via adaptive throttling](/assets/owning-the-model-stack/native-model-client-hero.png) ## **Why We Made the Move** @@ -40,9 +40,9 @@ From top to bottom: 1. **ModelFacade**: orchestrates correction loops, MCP tool-calling, and usage tracking. This is the public API. Column generators talk to this layer, and it was untouched during the migration. If you've written a Data Designer pipeline, nothing about your code changes. -2. **ModelRequestExecutor**: the request execution layer. It maps every outbound model call to a provider/model/domain request resource, acquires a request-admission lease before provider execution, releases it on every terminal path, and feeds the outcome (success, 429, or error) back to request admission. +2. **ThrottledModelClient**: the new layer. It's a decorator around `HttpModelClient` — same `ModelClient` protocol, but every outbound call is wrapped with a throttle permit: acquire a concurrency slot before the call, release it after, and feed the outcome (success, 429, or error) back to `ThrottleManager`. This is where adaptive throttling lives. -3. **AdaptiveRequestAdmissionController**: the Additive Increase / Multiplicative Decrease (AIMD) controller used by `ModelRequestExecutor`. A single shared controller is created at pipeline startup and shared across all model clients. It owns the mutable request-admission state — per-domain AIMD counters, global caps, cascade dampening, and cooldown timers. +3. **ThrottleManager**: the Additive Increase / Multiplicative Decrease (AIMD) controller that `ThrottledModelClient` delegates to. A single instance is created at pipeline startup and shared across all model clients. It owns all the mutable concurrency state — per-domain AIMD counters, global caps, cascade dampening, and cooldown timers. 4. **HttpModelClient**: an abstract base class that defines the interface for all provider adapters. It owns the shared `httpx` transport lifecycle — connection pooling, timeouts, and transport-level retries for transient failures (502, 503, 504). Boring but important. @@ -52,7 +52,7 @@ From top to bottom: The boundary between `ModelFacade` and the client layer is defined by canonical types. `ChatCompletionRequest`, `ChatCompletionResponse`, `EmbeddingRequest`, `EmbeddingResponse`, `ImageGenerationRequest`, `ImageGenerationResponse`, and `ProviderError`. These are plain dataclasses. No provider SDK objects cross this line. A `ModelClient` protocol defines the contract that all adapters implement, and that's the only interface the rest of the system sees. -## **Adaptive Request Admission: The Centerpiece** +## **Adaptive Throttling: The Centerpiece** With this client stack in place, we had the foundation to build something that wasn't possible before. Adaptive concurrency control. Let's start with the problem. @@ -97,23 +97,23 @@ Here's a subtlety that bit us during testing. When the system is running at capa Real pipelines aren't simple. A single provider+model combination might serve chat completions, embeddings, and image generation, potentially on different rate-limit budgets. And multiple [model aliases](/concepts/models/model-configs) in your pipeline might point to the same underlying provider and model (say, one alias for generation and another for judging, both hitting the same NVIDIA endpoint). -Request admission handles this with two-level keying: +The throttle manager handles this with two-level keying:
    -![Two-level request-resource keying: global cap per provider+model, independent domain states for chat, embedding, image](/assets/owning-the-model-stack/request-keying.png) +![Two-level throttle keying: global cap per provider+model, independent domain states for chat, embedding, image](/assets/owning-the-model-stack/throttle-keying.png)
    - **Global cap**: keyed by `(provider_name, model_id)`. When multiple model aliases target the same provider and model, the effective max is `min()` of their configured `max_parallel_requests`. This enforces the most conservative limit for shared upstream capacity, because the provider doesn't care what you *call* the model, it sees the same API key. -- **Domain state**: keyed by `(provider_name, model_id, request_domain)`. Each domain (`chat`, `embedding`, `image`, `healthcheck`) maintains its own AIMD state: `current_limit`, `in_flight`, `blocked_until`, `success_streak`, and `rate_limit_ceiling`. Domains float independently but are always capped by the global max. +- **Domain state**: keyed by `(provider_name, model_id, throttle_domain)`. Each domain (`chat`, `embedding`, `image`, `healthcheck`) maintains its own AIMD state: `current_limit`, `in_flight`, `blocked_until`, `success_streak`, and `rate_limit_ceiling`. Domains float independently but are always capped by the global max. The practical effect is that a burst of 429s on the chat route doesn't starve embedding requests, and vice versa. Each route adapts to its own capacity independently while respecting the shared upstream limit. ## **The Retry Boundary** -There's a design choice here that isn't obvious until you think about it, and getting it wrong would break the entire adaptive request-admission system. +There's a design choice here that isn't obvious until you think about it, and getting it wrong would break the entire throttling system. The transport layer (via `httpx` with `RetryTransport`) handles transient server failures like 502, 503, 504, and connection errors. These are hiccups. The server is temporarily broken. Retry with exponential backoff and jitter, and move on. @@ -121,25 +121,37 @@ But **429 is explicitly excluded from transport retries**.
    -![Retry boundary: 502/503/504 retried at transport, 429 passed through to ModelRequestExecutor for AIMD feedback](/assets/owning-the-model-stack/retry-boundary.png) +![Retry boundary: 502/503/504 retried at transport, 429 passed through to ThrottledModelClient for AIMD feedback](/assets/owning-the-model-stack/retry-boundary.png)
    -Why? Because if the retry layer swallows 429s, request admission never learns the provider is overloaded. The whole AIMD feedback loop depends on seeing raw rate-limit signals. A 429 must bubble up to `ModelRequestExecutor` so it can release the request lease as rate-limited, cut the concurrency limit, apply the cooldown, and record the ceiling. The next attempt then re-enters the request-admission path before making another HTTP call. +Why? Because if the retry layer swallows 429s, the throttle manager never learns the provider is overloaded. The whole AIMD feedback loop depends on seeing raw rate-limit signals. A 429 must bubble up to `ThrottledModelClient` so it can call `release_rate_limited()`, cut the concurrency limit, apply the cooldown, and record the ceiling. The next attempt then re-enters the throttle acquire path, waiting for a permit, before making another HTTP call. -The split is clean and worth remembering. Transport retries handle *server problems*. Request admission handles *capacity problems*. The provider is working fine, you're just sending too many requests. Conflating the two is how you get retry storms. +The split is clean and worth remembering. Transport retries handle *server problems*. Throttle adaptation handles *capacity problems*. The provider is working fine, you're just sending too many requests. Conflating the two is how you get retry storms. -One caveat: this boundary behaves differently depending on the execution mode. In async mode (currently experimental, enabled with `DATA_DESIGNER_ASYNC_ENGINE=1`), 429s bypass transport retries entirely and flow straight to `ModelRequestExecutor` for AIMD feedback — this is the full adaptive loop described above. In sync mode, 429s are retried at the transport layer since there's no salvage queue to re-attempt failed rows. AIMD is still wired up but only fires if all transport retries are exhausted. This is temporary — once the async engine graduates from experimental, it will become the default path and the sync codepath will be retired. See [Async All the Way Down](/dev-notes/async-all-the-way-down) for the full story on the async engine. +One caveat: this boundary behaves differently depending on the execution mode. In async mode (currently experimental, enabled with `DATA_DESIGNER_ASYNC_ENGINE=1`), 429s bypass transport retries entirely and flow straight to `ThrottledModelClient` for AIMD feedback — this is the full adaptive loop described above. In sync mode, 429s are retried at the transport layer since there's no salvage queue to re-attempt failed rows. AIMD is still wired up but only fires if all transport retries are exhausted. This is temporary — once the async engine graduates from experimental, it will become the default path and the sync codepath will be retired. See [Async All the Way Down](/dev-notes/async-all-the-way-down) for the full story on the async engine. ## **Configuration** -Adaptive request admission is designed to work well out of the box. The defaults are conservative and handle most workloads without tuning. The primary user-facing knob is still `max_parallel_requests` on your model's inference parameters, which sets the hard upper bound for concurrency. AIMD floats below it. +The throttle system is designed to work well out of the box. The defaults are conservative and handle most workloads without tuning. The primary user-facing knob is still `max_parallel_requests` on your model's inference parameters, which sets the hard upper bound for concurrency. AIMD floats below it. + +For workloads where you want to fine-tune the adaptation behavior, `ThrottleConfig` is available on `RunConfig`: ```python import data_designer.config as dd from data_designer.interface import DataDesigner data_designer = DataDesigner() +data_designer.set_run_config( + dd.RunConfig( + throttle=dd.ThrottleConfig( + reduce_factor=0.75, + success_window=25, + cooldown_seconds=2.0, + ceiling_overshoot=0.10, + ) + ) +) config_builder = dd.DataDesignerConfigBuilder( model_configs=[ dd.ModelConfig( @@ -161,11 +173,21 @@ create_result = data_designer.create( ) ``` -Most users will never need more than `max_parallel_requests`. The system adapts automatically, and capacity diagnostics are exposed through runtime logs and `AsyncCapacityPlan` rather than public controller tuning knobs. +| Parameter | Default | What it does | +|---|---|---| +| `reduce_factor` | 0.75 | Multiplicative decrease on 429 (0.75 = reduce by 25%) | +| `additive_increase` | 1 | How much to increase the limit after a success window | +| `success_window` | 25 | Consecutive successes before additive increase | +| `cooldown_seconds` | 2.0 | Default cooldown when no `Retry-After` header | +| `ceiling_overshoot` | 0.10 | How far above the observed ceiling to probe (10%) | + +In practice, the parameter most worth adjusting is `success_window`. A smaller window (say, 10) makes the system more aggressive about reclaiming throughput after a pullback, useful when you know the provider's capacity fluctuates quickly. A larger window (say, 50) makes it more conservative, better for providers with strict, stable rate limits where you'd rather not probe at all. + +Most users will never need to touch any of these. The system adapts automatically. ## **What It Looks Like in the Logs** -Request admission logs every state transition at `INFO` level, so the adaptation story is visible in your terminal as the run progresses. +`ThrottleManager` logs every state transition at `INFO` level, so the adaptation story is visible in your terminal as the run progresses. ``` # When the system hits a 429 and cuts concurrency: @@ -188,9 +210,9 @@ Reading these lines in sequence tells you exactly what happened: where the syste ## **Where This Leaves Us** -This shipped in Data Designer v0.5.4. If you're using Data Designer today, nothing changes in your pipeline code. `ModelFacade` is the same API it's always been. What changes is what happens underneath. The system now discovers provider capacity at runtime, isolates request state per route, and separates retry logic from rate-limit adaptation. Adaptive request admission is enabled by default for all providers. You don't opt in or configure anything; it just starts learning. If you want to see this fully in action, turn on async mode — see [Async All the Way Down](/dev-notes/async-all-the-way-down) for details. +This shipped in Data Designer v0.5.4. If you're using Data Designer today, nothing changes in your pipeline code. `ModelFacade` is the same API it's always been. What changes is what happens underneath. The system now discovers provider capacity at runtime, isolates throttle state per route, and separates retry logic from rate-limit adaptation. Adaptive throttling is enabled by default for all providers. You don't opt in or configure anything; it just starts learning. If you want to see this fully in action, turn on async mode — see [Async All the Way Down](/dev-notes/async-all-the-way-down) for details. -For most workloads, the defaults are all you need. Set `max_parallel_requests` to a generous upper bound and let AIMD find the right level. If you're running against a stack that returns 429s, the system adapts to the available capacity without public controller tuning. +For most workloads, the defaults are all you need. Set `max_parallel_requests` to a generous upper bound and let AIMD find the right level. If you're running against a stack that returns 429s, the system adapts to the available capacity without any tuning. If you want finer control, `ThrottleConfig` is there — but the goal is that you spend your time designing datasets, not tuning concurrency knobs. Key Resources: diff --git a/fern/versions/v0.5.9/pages/devnotes/index.mdx b/fern/versions/v0.5.9/pages/devnotes/index.mdx index 504c4b6f7..1d5fe68da 100644 --- a/fern/versions/v0.5.9/pages/devnotes/index.mdx +++ b/fern/versions/v0.5.9/pages/devnotes/index.mdx @@ -44,7 +44,7 @@ Welcome to NeMo Data Designer Dev Notes — in-depth guides, benchmark write-ups } diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py index 231aec159..df19c5716 100644 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py @@ -22,6 +22,7 @@ AsyncCapacityPlan, AsyncCapacityRuntimeSnapshot, CapacityValue, + RequestAdmissionConfigSnapshot, RowGroupAdmission, ) from data_designer.engine.context import current_row_group @@ -57,6 +58,9 @@ from data_designer.engine.errors import DataDesignerError from data_designer.engine.models.clients.errors import ProviderError from data_designer.engine.models.errors import RETRYABLE_MODEL_ERRORS, GenerationValidationFailureError +from data_designer.engine.models.request_admission.config import RequestAdmissionConfig +from data_designer.engine.models.request_admission.resources import RequestResourceKey +from data_designer.engine.models.resources import ProviderModelKey, ProviderModelStaticCap from data_designer.engine.observability import ( RuntimeCorrelation, SchedulerAdmissionEvent, @@ -280,6 +284,10 @@ def __init__( self._observed_max_row_groups_in_flight = 0 self._observed_max_task_leases_by_resource: dict[str, int] = {} self._observed_max_queued_by_group: dict[str, int] = {} + self._observed_max_request_waiters_by_resource: dict[RequestResourceKey, int] = {} + self._observed_max_request_in_flight_by_resource: dict[RequestResourceKey, int] = {} + self._observed_max_provider_model_aggregate_in_flight: dict[ProviderModelKey, int] = {} + self._observed_max_request_domain_current_limits: dict[RequestResourceKey, int] = {} self._adaptive_row_group_admission = adaptive_row_group_admission self._row_group_admission_hard_cap = max(1, max_concurrent_row_groups) self._row_group_admission_target = ( @@ -438,6 +446,26 @@ def _record_observed_task_state(self) -> None: for group, count in queue_view.queued_by_group.items(): label = f"{group.kind}:{'/'.join(group.identity)}" self._observed_max_queued_by_group[label] = max(self._observed_max_queued_by_group.get(label, 0), count) + if self._request_pressure_provider is None: + return + for resource, snapshot in self._request_pressure_provider.snapshots().items(): + self._observed_max_request_waiters_by_resource[resource] = max( + self._observed_max_request_waiters_by_resource.get(resource, 0), + snapshot.waiters, + ) + self._observed_max_request_in_flight_by_resource[resource] = max( + self._observed_max_request_in_flight_by_resource.get(resource, 0), + snapshot.in_flight_count, + ) + self._observed_max_request_domain_current_limits[resource] = max( + self._observed_max_request_domain_current_limits.get(resource, 0), + snapshot.current_limit, + ) + for provider_model, snapshot in self._request_pressure_provider.global_snapshots().items(): + self._observed_max_provider_model_aggregate_in_flight[provider_model] = max( + self._observed_max_provider_model_aggregate_in_flight.get(provider_model, 0), + snapshot.aggregate_in_flight, + ) def _emit_scheduler_health_snapshot(self, reason: str) -> None: self._emit_scheduler_event( @@ -1758,6 +1786,53 @@ def task_admission_snapshot(self) -> object: def capacity_plan(self) -> AsyncCapacityPlan: """Return the scheduler-side async capacity explanation for this run.""" task_view = self._task_admission.view() + request_snapshots = ( + dict(self._request_pressure_provider.snapshots()) if self._request_pressure_provider is not None else {} + ) + provider_snapshots = ( + dict(self._request_pressure_provider.global_snapshots()) + if self._request_pressure_provider is not None + else {} + ) + request_resources = tuple(sorted(request_snapshots)) + provider_model_static_caps = { + provider_model: ProviderModelStaticCap( + cap=snapshot.static_cap, + aliases=snapshot.aliases, + raw_caps=snapshot.raw_caps, + ) + for provider_model, snapshot in provider_snapshots.items() + } + request_config = self._request_pressure_provider.config if self._request_pressure_provider is not None else None + request_config_snapshot = ( + RequestAdmissionConfigSnapshot.from_config(request_config) + if isinstance(request_config, RequestAdmissionConfig) + else None + ) + request_domain_initial_limits: dict[RequestResourceKey, int] = {} + if request_config_snapshot is not None: + request_domain_initial_limits.update(request_config_snapshot.initial_limits) + for resource, snapshot in request_snapshots.items(): + configured_initial = ( + request_config_snapshot.initial_limits.get(resource) if request_config_snapshot is not None else None + ) + request_domain_initial_limits[resource] = ( + max(1, min(configured_initial, snapshot.effective_max)) + if configured_initial is not None + else snapshot.effective_max + ) + request_domain_current_limits = { + resource: snapshot.current_limit for resource, snapshot in request_snapshots.items() + } + request_domain_effective_max = { + resource: snapshot.effective_max for resource, snapshot in request_snapshots.items() + } + request_domain_blocked_until = { + resource: snapshot.blocked_until_monotonic for resource, snapshot in request_snapshots.items() + } + provider_model_aggregate_in_flight = { + provider_model: snapshot.aggregate_in_flight for provider_model, snapshot in provider_snapshots.items() + } return AsyncCapacityPlan( configured=AsyncCapacityConfigured( buffer_size=CapacityValue(value=self._buffer_size, source="run_config"), @@ -1779,24 +1854,28 @@ def capacity_plan(self) -> AsyncCapacityPlan: source="engine_internal_config", ), request_resources=CapacityValue( - value=(), + value=request_resources, source="runtime_snapshot", - missing_reason="request admission resources are reported by the model registry request controller", + missing_reason=None if request_resources else "request admission has not observed any resources", ), provider_model_static_caps=CapacityValue( - value={}, - source="runtime_snapshot", - missing_reason="request admission caps are reported by the model registry request controller", + value=provider_model_static_caps, + source="model_metadata", + missing_reason=None if provider_model_static_caps else "request admission has no registered models", ), request_domain_initial_limits=CapacityValue( - value={}, - source="runtime_snapshot", - missing_reason="request admission limits are reported by the model registry request controller", + value=request_domain_initial_limits, + source="engine_internal_config" if request_config_snapshot is not None else "runtime_snapshot", + missing_reason=None + if request_domain_initial_limits + else "request admission has not observed any domain limits", ), request_admission_config=CapacityValue( - value=None, - source="runtime_snapshot", - missing_reason="request admission config is owned by the model registry request controller", + value=request_config_snapshot, + source="engine_internal_config", + missing_reason=None + if request_config_snapshot is not None + else "request admission config is not exposed by the pressure provider", ), transport_pool_limits=CapacityValue( value={}, @@ -1804,11 +1883,30 @@ def capacity_plan(self) -> AsyncCapacityPlan: missing_reason="transport pool utilization is adapter-specific", ), ), - runtime_snapshot=AsyncCapacityRuntimeSnapshot(), + runtime_snapshot=AsyncCapacityRuntimeSnapshot( + request_domain_current_limits=request_domain_current_limits, + request_domain_effective_max=request_domain_effective_max, + request_domain_blocked_until=request_domain_blocked_until, + provider_model_aggregate_in_flight=provider_model_aggregate_in_flight, + ), observed_maxima=AsyncCapacityObservedMaxima( row_groups_in_flight=self._observed_max_row_groups_in_flight, queued_tasks_by_group=dict(self._observed_max_queued_by_group), task_leases_by_resource=dict(self._observed_max_task_leases_by_resource or task_view.leased_resources), + request_waiters_by_resource=dict( + self._observed_max_request_waiters_by_resource + or {resource: snapshot.waiters for resource, snapshot in request_snapshots.items()} + ), + request_in_flight_by_resource=dict( + self._observed_max_request_in_flight_by_resource + or {resource: snapshot.in_flight_count for resource, snapshot in request_snapshots.items()} + ), + provider_model_aggregate_in_flight=dict( + self._observed_max_provider_model_aggregate_in_flight or provider_model_aggregate_in_flight + ), + request_domain_current_limits=dict( + self._observed_max_request_domain_current_limits or request_domain_current_limits + ), transport_pool_utilization=None, ), ) diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/dataset_builder.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/dataset_builder.py index 73737629e..b19871319 100644 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/dataset_builder.py +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/dataset_builder.py @@ -1045,6 +1045,7 @@ def on_before_checkpoint(rg_id: int, rg_size: int) -> None: buffer_size=buffer_size, progress_interval=self._resource_provider.run_config.progress_interval, progress_bar=self._resource_provider.run_config.progress_bar, + request_pressure_provider=self._resource_provider.model_registry.request_admission, ) return scheduler, buffer_manager diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/task_admission.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/task_admission.py index 4dffb47f7..89fb3e280 100644 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/task_admission.py +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/task_admission.py @@ -5,7 +5,7 @@ import time import uuid -from collections import Counter, defaultdict +from collections import Counter, defaultdict, deque from collections.abc import Mapping from dataclasses import dataclass, field from typing import Literal @@ -35,6 +35,7 @@ "wrong_controller_generation", "unknown_lease", ] +RELEASED_TASK_LEASE_HISTORY_LIMIT = 8192 @dataclass(frozen=True) @@ -113,6 +114,7 @@ def __init__( self._generation = uuid.uuid4().hex self._leases: dict[str, TaskAdmissionLease] = {} self._released: set[str] = set() + self._released_order: deque[str] = deque(maxlen=RELEASED_TASK_LEASE_HISTORY_LIMIT) self._leased_by_resource: Counter[SchedulerResourceKey] = Counter() self._leased_by_group: dict[TaskGroupKey, Counter[SchedulerResourceKey]] = defaultdict(Counter) self._running_by_group: Counter[TaskGroupKey] = Counter() @@ -184,7 +186,7 @@ def release(self, lease: TaskAdmissionLease) -> ReleaseResult: self._release_diagnostics["stale_lease"] += 1 return ReleaseResult(released=False, reason="stale_lease") - self._released.add(lease.lease_id) + self._remember_released(lease.lease_id) for resource, amount in active.resources.items(): self._leased_by_resource[resource] = max(0, self._leased_by_resource[resource] - amount) self._leased_by_group[active.item.group.key][resource] = max( @@ -259,3 +261,12 @@ def _missing_resources( def _apply_delta(self, delta: PolicyStateDelta) -> None: for key, change in delta.debt_changes.items(): self._policy_debt[key] = max(0, self._policy_debt[key] + change) + + def _remember_released(self, lease_id: str) -> None: + if lease_id in self._released: + return + maxlen = self._released_order.maxlen + if maxlen is not None and len(self._released_order) >= maxlen: + self._released.discard(self._released_order[0]) + self._released.add(lease_id) + self._released_order.append(lease_id) diff --git a/packages/data-designer-engine/src/data_designer/engine/models/clients/factory.py b/packages/data-designer-engine/src/data_designer/engine/models/clients/factory.py index 57483ec01..398d151a4 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/clients/factory.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/clients/factory.py @@ -18,6 +18,7 @@ from data_designer.engine.secret_resolver import SecretResolver _SUPPORTED_PROVIDER_TYPES = ("openai", "anthropic") +_NO_TRANSPORT_RETRY_CONFIG = RetryConfig(max_retries=0, retryable_status_codes=frozenset()) def create_model_client( @@ -71,13 +72,14 @@ def create_model_client( max_parallel = model_config.inference_parameters.max_parallel_requests raw_timeout = model_config.inference_parameters.timeout timeout_s = float(raw_timeout if raw_timeout is not None else 60) + adapter_retry_config = _NO_TRANSPORT_RETRY_CONFIG if request_admission is not None else retry_config if provider.provider_type == "openai": client: ModelClient = OpenAICompatibleClient( provider_name=provider.name, endpoint=provider.endpoint, api_key=api_key, - retry_config=retry_config, + retry_config=adapter_retry_config, max_parallel_requests=max_parallel, timeout_s=timeout_s, concurrency_mode=client_concurrency_mode, @@ -87,7 +89,7 @@ def create_model_client( provider_name=provider.name, endpoint=provider.endpoint, api_key=api_key, - retry_config=retry_config, + retry_config=adapter_retry_config, max_parallel_requests=max_parallel, timeout_s=timeout_s, concurrency_mode=client_concurrency_mode, @@ -111,6 +113,7 @@ def create_model_client( provider_name=provider.name, model_id=model_config.model, event_sink=request_event_sink, + retry_config=retry_config, ) return client diff --git a/packages/data-designer-engine/src/data_designer/engine/models/clients/model_request_executor.py b/packages/data-designer-engine/src/data_designer/engine/models/clients/model_request_executor.py index 01f917585..6782c16bc 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/clients/model_request_executor.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/clients/model_request_executor.py @@ -5,11 +5,13 @@ import asyncio import logging +import time import uuid from typing import TYPE_CHECKING, TypeVar from data_designer.engine.models.clients.base import ModelClient from data_designer.engine.models.clients.errors import ProviderError, ProviderErrorKind +from data_designer.engine.models.clients.retry import RetryConfig from data_designer.engine.models.clients.types import ( ChatCompletionRequest, ChatCompletionResponse, @@ -56,6 +58,7 @@ def __init__( model_id: str, event_sink: RequestAdmissionEventSink | None = None, resource_resolver: RequestResourceResolver | None = None, + retry_config: RetryConfig | None = None, ) -> None: self._inner = inner self._request_admission = request_admission @@ -63,6 +66,7 @@ def __init__( self._model_id = model_id self._event_sink = event_sink self._resource_resolver = resource_resolver or RequestResourceResolver() + self._retry_config = retry_config or RetryConfig() self._event_sequence = 0 @property @@ -103,6 +107,16 @@ async def agenerate_image(self, request: ImageGenerationRequest) -> ImageGenerat return await self._execute_async(self._image_domain(request), lambda: self._inner.agenerate_image(request)) def _execute_sync(self, domain: RequestDomain, call: Callable[[], _T]) -> _T: + for attempt in range(self._max_attempts()): + try: + return self._execute_sync_attempt(domain, call) + except ProviderError as exc: + if not self._should_retry(exc, attempt): + raise + self._sleep_before_retry(attempt) + raise RuntimeError("unreachable request retry state") + + def _execute_sync_attempt(self, domain: RequestDomain, call: Callable[[], _T]) -> _T: item = self._item(domain) try: lease = self._request_admission.acquire_sync(item) @@ -141,6 +155,16 @@ def _execute_sync(self, domain: RequestDomain, call: Callable[[], _T]) -> _T: return result async def _execute_async(self, domain: RequestDomain, call: Callable[[], Awaitable[_T]]) -> _T: + for attempt in range(self._max_attempts()): + try: + return await self._execute_async_attempt(domain, call) + except ProviderError as exc: + if not self._should_retry(exc, attempt): + raise + await self._async_sleep_before_retry(attempt) + raise RuntimeError("unreachable request retry state") + + async def _execute_async_attempt(self, domain: RequestDomain, call: Callable[[], Awaitable[_T]]) -> _T: item = self._item(domain) try: lease = await self._request_admission.acquire_async(item) @@ -187,6 +211,36 @@ async def _execute_async(self, domain: RequestDomain, call: Callable[[], Awaitab ) return result + def _max_attempts(self) -> int: + return max(1, self._retry_config.max_retries + 1) + + def _should_retry(self, exc: ProviderError, attempt: int) -> bool: + if attempt >= self._max_attempts() - 1: + return False + if isinstance(exc.__cause__, RequestAdmissionError): + return False + if exc.kind == ProviderErrorKind.RATE_LIMIT: + return False + if exc.status_code is not None: + return exc.status_code in self._retry_config.retryable_status_codes + return exc.kind == ProviderErrorKind.API_CONNECTION + + def _sleep_before_retry(self, attempt: int) -> None: + delay = self._retry_delay_seconds(attempt) + if delay > 0.0: + time.sleep(delay) + + async def _async_sleep_before_retry(self, attempt: int) -> None: + delay = self._retry_delay_seconds(attempt) + if delay > 0.0: + await asyncio.sleep(delay) + + def _retry_delay_seconds(self, attempt: int) -> float: + if self._retry_config.backoff_factor <= 0.0: + return 0.0 + delay = self._retry_config.backoff_factor * (2**attempt) + return min(delay, self._retry_config.max_backoff_wait) + def _release_provider_error(self, lease: RequestAdmissionLease, exc: ProviderError) -> None: if exc.kind == ProviderErrorKind.RATE_LIMIT: outcome = RequestReleaseOutcome(kind="rate_limited", retry_after_seconds=exc.retry_after) diff --git a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py index 9d63858fe..09e4dd512 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py @@ -9,7 +9,7 @@ import threading import time import uuid -from collections import Counter +from collections import Counter, deque from collections.abc import Mapping from dataclasses import dataclass, field from typing import Literal, Protocol @@ -46,6 +46,8 @@ "shutdown", "hard_policy_denial", ] +RELEASED_LEASE_HISTORY_LIMIT = 8192 +_TERMINAL_DENIAL_REASONS: frozenset[RequestDenyReason] = frozenset({"hard_policy_denial", "shutdown"}) @dataclass(frozen=True) @@ -119,6 +121,7 @@ def __init__( self._domains: dict[RequestResourceKey, AdaptiveRequestLimitState] = {} self._active_leases: dict[str, RequestAdmissionLease] = {} self._released: set[str] = set() + self._released_order: deque[str] = deque(maxlen=RELEASED_LEASE_HISTORY_LIMIT) self._aggregate_in_flight: Counter[ProviderModelKey] = Counter() self._aggregate_active_leases: Counter[ProviderModelKey] = Counter() self._sequence = 0 @@ -223,6 +226,11 @@ def acquire_sync(self, item: RequestAdmissionItem) -> RequestAdmissionLease: if waiter.assigned_lease is not None: return waiter.assigned_lease now = time.monotonic() + if (denied := self._terminal_denial_for(item, now)) is not None: + self._remove_waiter_locked(waiter) + events.append(self._request_event_locked("request_acquire_denied", item=item, decision=denied)) + self._condition.notify_all() + raise RequestAdmissionError(denied) if deadline is not None and now >= deadline: self._remove_waiter_locked(waiter) denied = RequestAdmissionDenied( @@ -264,6 +272,11 @@ async def acquire_async(self, item: RequestAdmissionItem) -> RequestAdmissionLea if waiter.assigned_lease is not None: return waiter.assigned_lease now = time.monotonic() + if (denied := self._terminal_denial_for(item, now)) is not None: + self._remove_waiter_locked(waiter) + events.append(self._request_event_locked("request_acquire_denied", item=item, decision=denied)) + self._condition.notify_all() + raise RequestAdmissionError(denied) if deadline is not None and now >= deadline: self._remove_waiter_locked(waiter) denied = RequestAdmissionDenied( @@ -335,7 +348,7 @@ def release(self, lease: RequestAdmissionLease, outcome: RequestReleaseOutcome) ) ) else: - self._released.add(lease.lease_id) + self._remember_released_locked(lease.lease_id) resource = active.item.resource provider_model = resource.provider_model_key state = self._get_or_create_state(resource) @@ -472,6 +485,21 @@ def _denial_for(self, item: RequestAdmissionItem, now: float) -> RequestAdmissio ) return None + def _terminal_denial_for(self, item: RequestAdmissionItem, now: float) -> RequestAdmissionDenied | None: + denied = self._denial_for(item, now) + if denied is None or denied.reason not in _TERMINAL_DENIAL_REASONS: + return None + return denied + + def _remember_released_locked(self, lease_id: str) -> None: + if lease_id in self._released: + return + maxlen = self._released_order.maxlen + if maxlen is not None and len(self._released_order) >= maxlen: + self._released.discard(self._released_order[0]) + self._released.add(lease_id) + self._released_order.append(lease_id) + def _acquire_locked(self, item: RequestAdmissionItem, now: float) -> RequestAdmissionLease: resource = item.resource provider_model = resource.provider_model_key diff --git a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/pressure.py b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/pressure.py index 9f0386dc7..a268f8898 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/pressure.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/pressure.py @@ -7,6 +7,7 @@ from dataclasses import dataclass from typing import Protocol +from data_designer.engine.models.request_admission.config import RequestAdmissionConfig from data_designer.engine.models.request_admission.resources import RequestDomain, RequestResourceKey from data_designer.engine.models.resources import ProviderModelKey @@ -43,6 +44,9 @@ class ProviderModelPressureSnapshot: class RequestPressureSnapshotProvider(Protocol): + @property + def config(self) -> RequestAdmissionConfig | None: ... + def snapshot(self, resource: RequestResourceKey) -> RequestPressureSnapshot | None: ... def snapshots(self) -> Mapping[RequestResourceKey, RequestPressureSnapshot]: ... diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_task_admission.py b/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_task_admission.py index e1b6382a4..fbb2fd469 100644 --- a/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_task_admission.py +++ b/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_task_admission.py @@ -12,6 +12,7 @@ stable_task_id, ) from data_designer.engine.dataset_builders.scheduling.task_admission import ( + RELEASED_TASK_LEASE_HISTORY_LIMIT, TaskAdmissionConfig, TaskAdmissionController, TaskAdmissionDenied, @@ -85,6 +86,23 @@ def test_task_admission_duplicate_release_does_not_increase_capacity() -> None: assert controller.view().resources_available["submission"] == 1 +def test_task_admission_released_history_is_bounded() -> None: + controller = TaskAdmissionController(TaskAdmissionConfig(submission_capacity=1)) + first_lease: TaskAdmissionLease | None = None + for index in range(RELEASED_TASK_LEASE_HISTORY_LIMIT + 5): + item = _item(f"task-{index}") + lease = controller.try_acquire(item, _queue_view(item)) + assert isinstance(lease, TaskAdmissionLease) + first_lease = first_lease or lease + controller.release(lease) + + assert len(controller._released) == RELEASED_TASK_LEASE_HISTORY_LIMIT + assert len(controller._released_order) == RELEASED_TASK_LEASE_HISTORY_LIMIT + assert controller._released_order.maxlen == RELEASED_TASK_LEASE_HISTORY_LIMIT + assert first_lease is not None + assert controller.release(first_lease).reason == "unknown_lease" + + def test_task_admission_group_cap_yields_to_peer_pressure() -> None: group = TaskGroupSpec(TaskGroupKey(kind="model", identity=("provider", "model")), admitted_limit=1) controller = TaskAdmissionController(TaskAdmissionConfig(submission_capacity=2)) diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py b/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py index a3fe5f902..83791e276 100644 --- a/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py +++ b/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py @@ -46,8 +46,19 @@ ModelRateLimitError, ModelTimeoutError, ) +from data_designer.engine.models.request_admission.config import RequestAdmissionConfig +from data_designer.engine.models.request_admission.controller import ( + AdaptiveRequestAdmissionController, + RequestAdmissionLease, +) +from data_designer.engine.models.request_admission.outcomes import RequestReleaseOutcome from data_designer.engine.models.request_admission.pressure import RequestPressureSnapshot -from data_designer.engine.models.request_admission.resources import RequestDomain, RequestResourceKey +from data_designer.engine.models.request_admission.resources import ( + RequestAdmissionItem, + RequestDomain, + RequestGroupSpec, + RequestResourceKey, +) from data_designer.engine.models.resources import ProviderModelKey from data_designer.engine.observability import InMemoryAdmissionEventSink from data_designer.engine.resources.resource_provider import ResourceProvider @@ -2321,6 +2332,10 @@ class _StaticRequestPressureProvider: def __init__(self, snapshots: dict[RequestResourceKey, RequestPressureSnapshot]) -> None: self._snapshots = snapshots + @property + def config(self) -> RequestAdmissionConfig | None: + return None + def snapshot(self, resource: RequestResourceKey) -> RequestPressureSnapshot | None: return self._snapshots.get(resource) @@ -2645,6 +2660,59 @@ async def test_scheduler_capacity_plan_observes_buffer_backpressure() -> None: assert max(plan.observed_maxima.task_leases_by_resource.values()) <= 2 +def test_scheduler_capacity_plan_reports_request_admission_state() -> None: + resource = RequestResourceKey("provider", "model", RequestDomain.CHAT) + request_admission = AdaptiveRequestAdmissionController( + RequestAdmissionConfig(initial_limits={resource: 2}, max_limit_clamps={resource: 3}) + ) + request_admission.register( + provider_name="provider", + model_id="model", + alias="primary", + max_parallel_requests=4, + ) + lease = request_admission.try_acquire(RequestAdmissionItem(resource, RequestGroupSpec(resource))) + assert isinstance(lease, RequestAdmissionLease) + + scheduler, _tracker = _build_simple_pipeline() + scheduler._request_pressure_provider = request_admission + scheduler._record_observed_task_state() + plan = scheduler.capacity_plan() + + assert plan.configured.request_resources.value == (resource,) + assert plan.configured.request_domain_initial_limits.value[resource] == 2 + assert plan.configured.request_admission_config.value is not None + assert plan.configured.provider_model_static_caps.value[ProviderModelKey("provider", "model")].cap == 4 + assert plan.runtime_snapshot.request_domain_current_limits[resource] == 2 + assert plan.runtime_snapshot.request_domain_effective_max[resource] == 3 + assert plan.runtime_snapshot.provider_model_aggregate_in_flight[ProviderModelKey("provider", "model")] == 1 + assert plan.observed_maxima.request_in_flight_by_resource[resource] == 1 + assert plan.observed_maxima.provider_model_aggregate_in_flight[ProviderModelKey("provider", "model")] == 1 + request_admission.release(lease, RequestReleaseOutcome(kind="success")) + + +def test_scheduler_capacity_plan_reports_default_request_initial_limit_after_aimd_drop() -> None: + resource = RequestResourceKey("provider", "model", RequestDomain.CHAT) + request_admission = AdaptiveRequestAdmissionController() + request_admission.register( + provider_name="provider", + model_id="model", + alias="primary", + max_parallel_requests=4, + ) + lease = request_admission.try_acquire(RequestAdmissionItem(resource, RequestGroupSpec(resource))) + assert isinstance(lease, RequestAdmissionLease) + request_admission.release(lease, RequestReleaseOutcome(kind="rate_limited")) + + scheduler, _tracker = _build_simple_pipeline() + scheduler._request_pressure_provider = request_admission + plan = scheduler.capacity_plan() + + assert plan.configured.request_domain_initial_limits.value[resource] == 4 + assert plan.runtime_snapshot.request_domain_effective_max[resource] == 4 + assert plan.runtime_snapshot.request_domain_current_limits[resource] == 3 + + @pytest.mark.asyncio(loop_scope="session") async def test_scheduler_emits_job_health_and_row_group_telemetry() -> None: provider = _mock_provider() diff --git a/packages/data-designer-engine/tests/engine/models/clients/test_factory.py b/packages/data-designer-engine/tests/engine/models/clients/test_factory.py index df86e12d8..f809db8be 100644 --- a/packages/data-designer-engine/tests/engine/models/clients/test_factory.py +++ b/packages/data-designer-engine/tests/engine/models/clients/test_factory.py @@ -187,15 +187,18 @@ def test_request_admission_wraps_openai_client( openai_registry: ModelProviderRegistry, ) -> None: controller = AdaptiveRequestAdmissionController() + retry_config = RetryConfig(max_retries=5) client = create_model_client( openai_model_config, secret_resolver, openai_registry, - retry_config=RetryConfig(), + retry_config=retry_config, request_admission=controller, ) assert isinstance(client, ModelRequestExecutor) assert isinstance(client._inner, OpenAICompatibleClient) + assert client._retry_config is retry_config + assert client._inner._retry_config.max_retries == 0 def test_request_admission_wraps_anthropic_client( diff --git a/packages/data-designer-engine/tests/engine/models/clients/test_model_request_executor.py b/packages/data-designer-engine/tests/engine/models/clients/test_model_request_executor.py index 9eb310edd..2c44a0c00 100644 --- a/packages/data-designer-engine/tests/engine/models/clients/test_model_request_executor.py +++ b/packages/data-designer-engine/tests/engine/models/clients/test_model_request_executor.py @@ -10,6 +10,7 @@ from data_designer.engine.models.clients.errors import ProviderError, ProviderErrorKind from data_designer.engine.models.clients.model_request_executor import ModelRequestExecutor +from data_designer.engine.models.clients.retry import RetryConfig from data_designer.engine.models.clients.types import ( AssistantMessage, ChatCompletionRequest, @@ -100,6 +101,40 @@ async def agenerate_image(self, request: ImageGenerationRequest) -> ImageGenerat return ImageGenerationResponse(images=[ImagePayload("image")]) +class _FlakyClient(_Client): + def __init__( + self, + *, + failures: int, + kind: ProviderErrorKind = ProviderErrorKind.INTERNAL_SERVER, + status_code: int | None = 503, + ) -> None: + super().__init__() + self.failures = failures + self.calls = 0 + self.kind = kind + self.status_code = status_code + + def _maybe_fail(self) -> None: + self.calls += 1 + if self.calls <= self.failures: + raise ProviderError( + kind=self.kind, + message="temporarily unavailable", + status_code=self.status_code, + provider_name="nvidia", + model_name="nemotron", + ) + + def completion(self, request: ChatCompletionRequest) -> ChatCompletionResponse: + self._maybe_fail() + return ChatCompletionResponse(AssistantMessage(content="ok")) + + async def acompletion(self, request: ChatCompletionRequest) -> ChatCompletionResponse: + self._maybe_fail() + return ChatCompletionResponse(AssistantMessage(content="ok")) + + def _executor() -> tuple[ModelRequestExecutor, AdaptiveRequestAdmissionController, _Client]: controller = AdaptiveRequestAdmissionController() controller.register(provider_name="nvidia", model_id="nemotron", alias="default", max_parallel_requests=1) @@ -138,6 +173,76 @@ def test_model_request_executor_classifies_rate_limit() -> None: assert snapshot.cooldown_remaining_seconds > 0 +def test_model_request_executor_retries_provider_503_with_fresh_leases() -> None: + sink = InMemoryAdmissionEventSink() + controller = AdaptiveRequestAdmissionController(event_sink=sink) + controller.register(provider_name="nvidia", model_id="nemotron", alias="default", max_parallel_requests=1) + client = _FlakyClient(failures=1) + executor = ModelRequestExecutor( + client, + controller, + "nvidia", + "nemotron", + event_sink=sink, + retry_config=RetryConfig(max_retries=1, backoff_factor=0.0), + ) + + response = executor.completion(ChatCompletionRequest(model="nemotron", messages=[])) + + assert response.message.content == "ok" + assert client.calls == 2 + acquired = [event for event in sink.request_events if event.event_kind == "request_lease_acquired"] + released = [event for event in sink.request_events if event.event_kind == "request_lease_released"] + assert len(acquired) == 2 + assert len(released) == 2 + assert {event.request_lease_id for event in acquired} == {event.request_lease_id for event in released} + + +def test_model_request_executor_does_not_retry_provider_timeout_without_status() -> None: + controller = AdaptiveRequestAdmissionController() + controller.register(provider_name="nvidia", model_id="nemotron", alias="default", max_parallel_requests=1) + client = _FlakyClient(failures=2, kind=ProviderErrorKind.TIMEOUT, status_code=None) + executor = ModelRequestExecutor( + client, + controller, + "nvidia", + "nemotron", + retry_config=RetryConfig(max_retries=2, backoff_factor=0.0), + ) + + with pytest.raises(ProviderError) as exc_info: + executor.completion(ChatCompletionRequest(model="nemotron", messages=[])) + + assert exc_info.value.kind == ProviderErrorKind.TIMEOUT + assert client.calls == 1 + + +@pytest.mark.asyncio(loop_scope="session") +async def test_model_request_executor_retries_async_provider_503_with_fresh_leases() -> None: + sink = InMemoryAdmissionEventSink() + controller = AdaptiveRequestAdmissionController(event_sink=sink) + controller.register(provider_name="nvidia", model_id="nemotron", alias="default", max_parallel_requests=1) + client = _FlakyClient(failures=1) + executor = ModelRequestExecutor( + client, + controller, + "nvidia", + "nemotron", + event_sink=sink, + retry_config=RetryConfig(max_retries=1, backoff_factor=0.0), + ) + + response = await executor.acompletion(ChatCompletionRequest(model="nemotron", messages=[])) + + assert response.message.content == "ok" + assert client.calls == 2 + acquired = [event for event in sink.request_events if event.event_kind == "request_lease_acquired"] + released = [event for event in sink.request_events if event.event_kind == "request_lease_released"] + assert len(acquired) == 2 + assert len(released) == 2 + assert {event.request_lease_id for event in acquired} == {event.request_lease_id for event in released} + + @pytest.mark.asyncio(loop_scope="session") async def test_model_request_executor_releases_async_cancellation() -> None: class _SlowClient(_Client): diff --git a/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py b/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py index b62237a48..6fc65d227 100644 --- a/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py +++ b/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py @@ -10,6 +10,7 @@ from data_designer.engine.models.request_admission.config import RequestAdmissionConfig from data_designer.engine.models.request_admission.controller import ( + RELEASED_LEASE_HISTORY_LIMIT, AdaptiveRequestAdmissionController, RequestAdmissionDenied, RequestAdmissionError, @@ -154,6 +155,18 @@ def test_request_admission_zero_sync_timeout_is_immediate() -> None: controller.release(lease, RequestReleaseOutcome(kind="success")) +def test_request_admission_sync_unregistered_provider_raises_hard_denial() -> None: + controller = AdaptiveRequestAdmissionController() + + with pytest.raises(RequestAdmissionError) as exc_info: + controller.acquire_sync(_item()) + + assert exc_info.value.decision.reason == "hard_policy_denial" + snapshot = controller.pressure.snapshot(_item().resource) + assert snapshot is not None + assert snapshot.waiters == 0 + + def test_request_admission_logs_sink_failures(caplog: pytest.LogCaptureFixture) -> None: caplog.set_level(logging.WARNING, logger="data_designer.engine.models.request_admission.controller") controller = AdaptiveRequestAdmissionController(event_sink=_BrokenRequestSink()) @@ -235,24 +248,34 @@ async def test_acquire_async_wakes_when_release_assigns_lease(monkeypatch: pytes @pytest.mark.asyncio(loop_scope="session") -async def test_register_wakes_unregistered_async_waiter(monkeypatch: pytest.MonkeyPatch) -> None: +async def test_acquire_async_unregistered_provider_raises_hard_denial(monkeypatch: pytest.MonkeyPatch) -> None: controller = AdaptiveRequestAdmissionController() monkeypatch.setattr(controller, "_wait_seconds_locked", lambda _item, _now, _deadline: 10.0) queued = _item(RequestDomain.CHAT, timeout=30.0) - queued_task = asyncio.create_task(controller.acquire_async(queued)) - for _ in range(20): - snapshot = controller.pressure.snapshot(queued.resource) - if snapshot is not None and snapshot.waiters == 1: - break - await asyncio.sleep(0) - else: - raise AssertionError("async waiter did not enqueue") + with pytest.raises(RequestAdmissionError) as exc_info: + await asyncio.wait_for(controller.acquire_async(queued), timeout=0.5) - controller.register(provider_name="nvidia", model_id="nemotron", alias="default", max_parallel_requests=1) - queued_lease = await asyncio.wait_for(queued_task, timeout=0.5) + assert exc_info.value.decision.reason == "hard_policy_denial" + snapshot = controller.pressure.snapshot(queued.resource) + assert snapshot is not None + assert snapshot.waiters == 0 - controller.release(queued_lease, RequestReleaseOutcome(kind="success")) + +def test_request_admission_released_history_is_bounded() -> None: + controller = _controller(cap=1) + first_lease: RequestAdmissionLease | None = None + for _ in range(RELEASED_LEASE_HISTORY_LIMIT + 5): + lease = controller.try_acquire(_item()) + assert isinstance(lease, RequestAdmissionLease) + first_lease = first_lease or lease + controller.release(lease, RequestReleaseOutcome(kind="success")) + + assert len(controller._released) == RELEASED_LEASE_HISTORY_LIMIT + assert len(controller._released_order) == RELEASED_LEASE_HISTORY_LIMIT + assert controller._released_order.maxlen == RELEASED_LEASE_HISTORY_LIMIT + assert first_lease is not None + assert controller.release(first_lease, RequestReleaseOutcome(kind="success")).reason == "unknown_lease" @pytest.mark.asyncio(loop_scope="session") diff --git a/packages/data-designer-engine/tests/engine/test_async_scheduling_benchmark.py b/packages/data-designer-engine/tests/engine/test_async_scheduling_benchmark.py index 595977464..f3088293c 100644 --- a/packages/data-designer-engine/tests/engine/test_async_scheduling_benchmark.py +++ b/packages/data-designer-engine/tests/engine/test_async_scheduling_benchmark.py @@ -39,6 +39,11 @@ def _load_idle_regression_module() -> ModuleType: return module +def _load_idle_report_module() -> ModuleType: + _load_idle_regression_module() + return sys.modules["generate_async_scheduling_idle_report"] + + def _capacity_plan() -> SimpleNamespace: return SimpleNamespace( observed_maxima=SimpleNamespace( @@ -264,6 +269,24 @@ def test_idle_regression_detects_bad_idle_partition() -> None: assert any(not check.passed and check.name == "row-scale/rows-64 idle partition" for check in checks) +def test_idle_regression_skip_run_does_not_generate_missing_artifacts(tmp_path: Path) -> None: + report = _load_idle_report_module() + case = report.IdleBenchmarkCase( + name="missing", + sweep="reuse", + record_count=1, + buffer_size=1, + row_group_concurrency=1, + task_admission_capacity=1, + fanout_width=1, + upstream_latency_seconds=0.0, + downstream_latency_seconds=0.0, + ) + + with pytest.raises(FileNotFoundError, match="Cannot reuse benchmark artifact"): + report._run_or_load_case(case, tmp_path, skip_run=True) + + def test_idle_regression_requires_adaptation_controls() -> None: regression = _load_idle_regression_module() summary = _idle_regression_summary() diff --git a/scripts/benchmarks/generate_async_scheduling_idle_report.py b/scripts/benchmarks/generate_async_scheduling_idle_report.py index 707706090..cfdb98feb 100644 --- a/scripts/benchmarks/generate_async_scheduling_idle_report.py +++ b/scripts/benchmarks/generate_async_scheduling_idle_report.py @@ -308,6 +308,7 @@ def _build_cases(quick: bool) -> list[IdleBenchmarkCase]: fanout_width=1, upstream_latency_seconds=0.006, downstream_latency_seconds=0.0003, + iterations=3, ), replace( base, @@ -320,6 +321,7 @@ def _build_cases(quick: bool) -> list[IdleBenchmarkCase]: fanout_width=4, upstream_latency_seconds=0.006, downstream_latency_seconds=0.0003, + iterations=3, ), ) ) @@ -432,7 +434,11 @@ def _build_cases(quick: bool) -> list[IdleBenchmarkCase]: def _run_or_load_case(case: IdleBenchmarkCase, artifact_dir: Path, *, skip_run: bool) -> IdleBenchmarkResult: output_dir = artifact_dir / case.sweep / case.name json_path = output_dir / "async_scheduling_benchmark.json" - if not skip_run or not json_path.exists(): + if skip_run and not json_path.exists(): + raise FileNotFoundError( + f"Cannot reuse benchmark artifact for {case.sweep}/{case.name}: {json_path} does not exist." + ) + if not skip_run: output_dir.mkdir(parents=True, exist_ok=True) command = [ sys.executable, diff --git a/scripts/benchmarks/run_async_scheduling_idle_regression.py b/scripts/benchmarks/run_async_scheduling_idle_regression.py index 482f6a8e1..164459b55 100644 --- a/scripts/benchmarks/run_async_scheduling_idle_regression.py +++ b/scripts/benchmarks/run_async_scheduling_idle_regression.py @@ -322,13 +322,14 @@ def _suite_behavior_checks(cases: Mapping[str, Mapping[str, Any]], *, mode: str) ) ) if "stress-shape/wide-frontier-high-cap" in cases: + floor = _wide_high_capacity_stress_utilization_floor(mode) checks.append( _check( "wide high-capacity stress utilization", category="optimization", - passed=_metric(cases["stress-shape/wide-frontier-high-cap"], "llm_wait_utilization_ratio") >= 0.55, + passed=_metric(cases["stress-shape/wide-frontier-high-cap"], "llm_wait_utilization_ratio") >= floor, observed=_metric(cases["stress-shape/wide-frontier-high-cap"], "llm_wait_utilization_ratio"), - expected=">= 0.55 llm_wait utilization", + expected=f">= {floor:.2f} llm_wait utilization", ) ) if { @@ -574,6 +575,10 @@ def _wide_row_group_utilization_floor(mode: str) -> float: return 0.55 if mode == "quick" else 0.70 +def _wide_high_capacity_stress_utilization_floor(mode: str) -> float: + return 0.53 if mode == "quick" else 0.55 + + def _checks_payload(checks: Sequence[RegressionCheck]) -> dict[str, Any]: return { "checks_schema_version": CHECKS_SCHEMA_VERSION, diff --git a/tests_e2e/tests/test_mcp_demo.py b/tests_e2e/tests/test_mcp_demo.py index 163e904cb..d7bca2e9e 100644 --- a/tests_e2e/tests/test_mcp_demo.py +++ b/tests_e2e/tests/test_mcp_demo.py @@ -101,25 +101,25 @@ def test_mcp_server_tool_usage_with_nvidia_text(tmp_path: Path) -> None: assert tool_call_messages tool_calls: list[dict[str, object]] = [] - tool_call_indices: dict[str, int] = {} + tool_call_positions: dict[str, tuple[int, int]] = {} for msg_index, msg in enumerate(trace): if not isinstance(msg, dict): continue if msg.get("role") != "assistant": continue - for tool_call in msg.get("tool_calls") or []: + for tool_call_index, tool_call in enumerate(msg.get("tool_calls") or []): if not isinstance(tool_call, dict): continue tool_calls.append(tool_call) function = tool_call.get("function") or {} if isinstance(function, dict): name = function.get("name") - if isinstance(name, str) and name not in tool_call_indices: - tool_call_indices[name] = msg_index + if isinstance(name, str) and name not in tool_call_positions: + tool_call_positions[name] = (msg_index, tool_call_index) - assert tool_call_indices.get("get_fact") is not None - assert tool_call_indices.get("add_numbers") is not None - assert tool_call_indices["get_fact"] < tool_call_indices["add_numbers"] + assert tool_call_positions.get("get_fact") is not None + assert tool_call_positions.get("add_numbers") is not None + assert tool_call_positions["get_fact"] < tool_call_positions["add_numbers"] def _tool_call_to_name_args(tool_call: dict[str, object]) -> tuple[str | None, dict[str, object]]: function = tool_call.get("function") From 387d5a5205587d32e8056104d6e5dab27c75b3d1 Mon Sep 17 00:00:00 2001 From: Andre Manoel <165937436+andreatgretel@users.noreply.github.com> Date: Tue, 19 May 2026 17:38:44 -0300 Subject: [PATCH 15/33] fix request waiter deadline admission (#681) --- .../models/request_admission/controller.py | 34 +++++++++++++++ .../engine/models/request_admission/queue.py | 3 ++ .../request_admission/test_controller.py | 42 +++++++++++++++++++ 3 files changed, 79 insertions(+) diff --git a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py index 09e4dd512..c34cdd012 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py @@ -220,6 +220,18 @@ def acquire_sync(self, item: RequestAdmissionItem) -> RequestAdmissionLease: try: while True: with self._lock: + if waiter.assigned_lease is not None: + return waiter.assigned_lease + now = time.monotonic() + if deadline is not None and now >= deadline: + self._remove_waiter_locked(waiter) + denied = RequestAdmissionDenied( + item=item, + reason="queue_timeout", + snapshot=self._snapshot_locked(item.resource, now), + ) + events.append(self._request_event_locked("request_wait_timeout", item=item, decision=denied)) + raise RequestAdmissionError(denied) if not self._queue.contains(waiter.waiter_id) and waiter.assigned_lease is None: self._enqueue_waiter_locked(waiter, events) self._admit_waiters_locked(events) @@ -266,6 +278,18 @@ async def acquire_async(self, item: RequestAdmissionItem) -> RequestAdmissionLea try: while True: with self._lock: + if waiter.assigned_lease is not None: + return waiter.assigned_lease + now = time.monotonic() + if deadline is not None and now >= deadline: + self._remove_waiter_locked(waiter) + denied = RequestAdmissionDenied( + item=item, + reason="queue_timeout", + snapshot=self._snapshot_locked(item.resource, now), + ) + events.append(self._request_event_locked("request_wait_timeout", item=item, decision=denied)) + raise RequestAdmissionError(denied) if not self._queue.contains(waiter.waiter_id) and waiter.assigned_lease is None: self._enqueue_waiter_locked(waiter, events) self._admit_waiters_locked(events) @@ -399,6 +423,7 @@ def global_snapshots(self) -> Mapping[ProviderModelKey, ProviderModelPressureSna def _queued_waiter_ahead_locked(self, item: RequestAdmissionItem, now: float) -> bool: if not self._queue.has_waiters: return False + self._expire_waiters_locked(now) selection = self._queue.select_next(lambda waiter, _view: self._denial_for(waiter.item, now) is None) if selection is None: return False @@ -421,9 +446,18 @@ def _remove_waiter_locked(self, waiter: RequestWaiter) -> None: state.waiters = max(0, state.waiters - 1) self._sequence += 1 + def _expire_waiters_locked(self, now: float) -> None: + for waiter in self._queue.waiters(): + if waiter.deadline_monotonic is not None and now >= waiter.deadline_monotonic: + self._remove_waiter_locked(waiter) + self._wake_waiter_locked(waiter) + def _admit_waiters_locked(self, events: list[RequestAdmissionEvent]) -> None: while self._queue.has_waiters: now = time.monotonic() + self._expire_waiters_locked(now) + if not self._queue.has_waiters: + return selection = self._queue.select_next(lambda waiter, _view: self._denial_for(waiter.item, now) is None) if selection is None: return diff --git a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/queue.py b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/queue.py index 98610e5ee..cdca7027b 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/queue.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/queue.py @@ -64,6 +64,9 @@ def has_waiters(self) -> bool: def contains(self, waiter_id: str) -> bool: return waiter_id in self._queued + def waiters(self) -> tuple[RequestWaiter, ...]: + return tuple(self._queued.values()) + def enqueue(self, waiter: RequestWaiter) -> bool: if waiter.waiter_id in self._queued: return False diff --git a/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py b/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py index 6fc65d227..4a18d9a5c 100644 --- a/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py +++ b/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py @@ -5,6 +5,8 @@ import asyncio import logging +import threading +import time import pytest @@ -224,6 +226,46 @@ async def test_request_admission_zero_async_timeout_is_immediate() -> None: controller.release(lease, RequestReleaseOutcome(kind="success")) +@pytest.mark.asyncio(loop_scope="session") +async def test_acquire_async_does_not_assign_expired_waiter_after_release( + monkeypatch: pytest.MonkeyPatch, +) -> None: + controller = _controller(cap=1) + monkeypatch.setattr(controller, "_wait_seconds_locked", lambda _item, _now, _deadline: 10.0) + lease = controller.try_acquire(_item(RequestDomain.CHAT)) + assert isinstance(lease, RequestAdmissionLease) + queued = _item(RequestDomain.EMBEDDING, timeout=0.01) + + queued_task = asyncio.create_task(controller.acquire_async(queued)) + for _ in range(20): + snapshot = controller.pressure.snapshot(queued.resource) + if snapshot is not None and snapshot.waiters == 1: + break + await asyncio.sleep(0) + else: + raise AssertionError("async waiter did not enqueue") + + def release_after_deadline() -> None: + time.sleep(0.03) + controller.release(lease, RequestReleaseOutcome(kind="success")) + + release_thread = threading.Thread(target=release_after_deadline) + release_thread.start() + try: + time.sleep(0.06) + with pytest.raises(RequestAdmissionError) as exc_info: + await asyncio.wait_for(queued_task, timeout=0.5) + finally: + release_thread.join() + + assert exc_info.value.decision.reason == "queue_timeout" + snapshot = controller.pressure.snapshot(queued.resource) + assert snapshot is not None + assert snapshot.waiters == 0 + assert snapshot.active_lease_count == 0 + assert snapshot.in_flight_count == 0 + + @pytest.mark.asyncio(loop_scope="session") async def test_acquire_async_wakes_when_release_assigns_lease(monkeypatch: pytest.MonkeyPatch) -> None: controller = _controller(cap=1) From 0ee8f6dd02749b3712dc0961f8dcc414cdc4ff1f Mon Sep 17 00:00:00 2001 From: Andre Manoel <165937436+andreatgretel@users.noreply.github.com> Date: Tue, 19 May 2026 18:20:22 -0300 Subject: [PATCH 16/33] fix: keep async idle benchmark artifacts in scratch (#683) --- .../engine/test_async_scheduling_benchmark.py | 27 +++++++++++++++++++ .../generate_async_scheduling_idle_report.py | 10 ++++--- .../run_async_scheduling_idle_regression.py | 5 ++-- 3 files changed, 37 insertions(+), 5 deletions(-) diff --git a/packages/data-designer-engine/tests/engine/test_async_scheduling_benchmark.py b/packages/data-designer-engine/tests/engine/test_async_scheduling_benchmark.py index f3088293c..868e7d589 100644 --- a/packages/data-designer-engine/tests/engine/test_async_scheduling_benchmark.py +++ b/packages/data-designer-engine/tests/engine/test_async_scheduling_benchmark.py @@ -287,6 +287,33 @@ def test_idle_regression_skip_run_does_not_generate_missing_artifacts(tmp_path: report._run_or_load_case(case, tmp_path, skip_run=True) +def test_idle_benchmark_defaults_write_to_scratch() -> None: + report = _load_idle_report_module() + regression = _load_idle_regression_module() + + assert report.DEFAULT_ARTIFACT_DIR == Path(".scratch/async-scheduling-idle-analysis/artifacts") + assert report.DEFAULT_REPORT_PATH == Path( + ".scratch/async-scheduling-idle-analysis/async-scheduling-idle-analysis.html" + ) + assert regression.DEFAULT_ARTIFACT_DIR == Path(".scratch/async-scheduling-idle-regression/artifacts") + assert regression.DEFAULT_REPORT_PATH == Path( + ".scratch/async-scheduling-idle-regression/async-scheduling-idle-regression.html" + ) + + +def test_idle_report_links_artifacts_relative_to_report() -> None: + report = _load_idle_report_module() + + assert ( + report._relative_href( + Path(".scratch/async-scheduling-idle-analysis/async-scheduling-idle-analysis.html"), + Path(".scratch/async-scheduling-idle-analysis/artifacts/case.json"), + ) + == "artifacts/case.json" + ) + assert report._relative_href(Path("reports/idle.html"), Path("artifacts/case.json")) == "../artifacts/case.json" + + def test_idle_regression_requires_adaptation_controls() -> None: regression = _load_idle_regression_module() summary = _idle_regression_summary() diff --git a/scripts/benchmarks/generate_async_scheduling_idle_report.py b/scripts/benchmarks/generate_async_scheduling_idle_report.py index cfdb98feb..ad17e1b87 100644 --- a/scripts/benchmarks/generate_async_scheduling_idle_report.py +++ b/scripts/benchmarks/generate_async_scheduling_idle_report.py @@ -9,6 +9,7 @@ import html import json import math +import os import subprocess import sys from collections.abc import Iterable, Mapping, Sequence @@ -16,8 +17,9 @@ from pathlib import Path from typing import Any -DEFAULT_ARTIFACT_DIR = Path("artifacts/async-scheduling-idle-analysis") -DEFAULT_REPORT_PATH = Path("reports/async-scheduling-idle-analysis.html") +DEFAULT_OUTPUT_ROOT = Path(".scratch/async-scheduling-idle-analysis") +DEFAULT_ARTIFACT_DIR = DEFAULT_OUTPUT_ROOT / "artifacts" +DEFAULT_REPORT_PATH = DEFAULT_OUTPUT_ROOT / "async-scheduling-idle-analysis.html" BENCHMARK_SCRIPT = Path("scripts/benchmarks/benchmark_async_scheduling.py") IDLE_SUITE_ID = "async-scheduling-idle-regression" IDLE_SUITE_VERSION = "1.1" @@ -1762,7 +1764,9 @@ def _class_slug(idle_class: str) -> str: def _relative_href(report_path: Path, target_path: Path) -> str: try: - return Path("../" + str(target_path)).as_posix() if not target_path.is_absolute() else target_path.as_uri() + if target_path.is_absolute(): + return target_path.as_uri() + return Path(os.path.relpath(target_path, start=report_path.parent)).as_posix() except ValueError: return str(target_path) diff --git a/scripts/benchmarks/run_async_scheduling_idle_regression.py b/scripts/benchmarks/run_async_scheduling_idle_regression.py index 164459b55..f182f08f9 100644 --- a/scripts/benchmarks/run_async_scheduling_idle_regression.py +++ b/scripts/benchmarks/run_async_scheduling_idle_regression.py @@ -23,8 +23,9 @@ write_idle_results_summary, ) -DEFAULT_ARTIFACT_DIR = Path("artifacts/async-scheduling-idle-regression") -DEFAULT_REPORT_PATH = Path("reports/async-scheduling-idle-regression.html") +DEFAULT_OUTPUT_ROOT = Path(".scratch/async-scheduling-idle-regression") +DEFAULT_ARTIFACT_DIR = DEFAULT_OUTPUT_ROOT / "artifacts" +DEFAULT_REPORT_PATH = DEFAULT_OUTPUT_ROOT / "async-scheduling-idle-regression.html" DEFAULT_SUMMARY_PATH = DEFAULT_ARTIFACT_DIR / "idle_regression_summary.json" DEFAULT_CHECKS_PATH = DEFAULT_ARTIFACT_DIR / "idle_regression_checks.json" CHECKS_SCHEMA_VERSION = "async-scheduling-idle-checks-v1" From 0d2050b1920abebe8ff16f350136ec03a0728663 Mon Sep 17 00:00:00 2001 From: Andre Manoel <165937436+andreatgretel@users.noreply.github.com> Date: Tue, 19 May 2026 18:22:06 -0300 Subject: [PATCH 17/33] test: pin custom generator error boundary (#684) --- .../dataset_builders/test_async_scheduler.py | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py b/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py index 83791e276..ce78e3141 100644 --- a/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py +++ b/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py @@ -595,6 +595,40 @@ async def test_scheduler_internal_bug_failure_aborts_instead_of_dropping_row( assert error_records[0].exc_info is not None +@pytest.mark.asyncio(loop_scope="session") +async def test_scheduler_custom_generator_key_error_drops_row_without_fatal_abort( + caplog: pytest.LogCaptureFixture, +) -> None: + @custom_column_generator() + def failing_custom(row: dict) -> dict: + raise KeyError("missing user field") + + provider = _mock_provider() + custom_config = CustomColumnConfig(name="custom_col", generator_function=failing_custom) + scheduler, tracker = _build_simple_pipeline( + num_records=1, + configs=[ + SamplerColumnConfig(name="seed", sampler_type=SamplerType.CATEGORY, params={"values": ["A"]}), + custom_config, + ], + strategies={ + "seed": GenerationStrategy.FULL_COLUMN, + "custom_col": GenerationStrategy.CELL_BY_CELL, + }, + generators={ + "seed": MockSeedGenerator(config=_expr_config("seed"), resource_provider=provider), + "custom_col": CustomColumnGenerator(config=custom_config, resource_provider=provider), + }, + ) + + with caplog.at_level(logging.WARNING): + await scheduler.run() + + assert tracker.is_dropped(0, 0) + assert "This record will be skipped" in caplog.text + assert "Unexpected fatal Non-retryable failure" not in caplog.text + + @pytest.mark.asyncio(loop_scope="session") async def test_scheduler_logs_sink_failures(caplog: pytest.LogCaptureFixture) -> None: caplog.set_level(logging.WARNING, logger="data_designer.engine.dataset_builders.async_scheduler") From 70974fd7caa8db49169965bb98f129b68c0a8c93 Mon Sep 17 00:00:00 2001 From: Nabin Mulepati Date: Tue, 19 May 2026 15:44:18 -0600 Subject: [PATCH 18/33] fix: request admission edge cases (#685) --- .../dataset_builders/dataset_builder.py | 1 + .../models/request_admission/controller.py | 12 +-- .../test_async_builder_integration.py | 35 +++++++++ .../request_admission/test_controller.py | 77 +++++++++++++++++++ 4 files changed, 120 insertions(+), 5 deletions(-) diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/dataset_builder.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/dataset_builder.py index b19871319..93ca2ea25 100644 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/dataset_builder.py +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/dataset_builder.py @@ -1046,6 +1046,7 @@ def on_before_checkpoint(rg_id: int, rg_size: int) -> None: progress_interval=self._resource_provider.run_config.progress_interval, progress_bar=self._resource_provider.run_config.progress_bar, request_pressure_provider=self._resource_provider.model_registry.request_admission, + request_pressure_advisory=True, ) return scheduler, buffer_manager diff --git a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py index c34cdd012..56071ed9b 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py @@ -362,7 +362,7 @@ def release(self, lease: RequestAdmissionLease, outcome: RequestReleaseOutcome) "request_release_diagnostic", item=lease.item, lease=lease, result=result ) ) - elif active.item.resource != lease.item.resource: + elif active != lease: self._active_leases[lease.lease_id] = active self._release_diagnostics["stale_lease"] += 1 result = ReleaseResult(released=False, reason="stale_lease") @@ -384,7 +384,7 @@ def release(self, lease: RequestAdmissionLease, outcome: RequestReleaseOutcome) 0, self._aggregate_active_leases[provider_model] - 1, ) - self._apply_outcome(state, resource, outcome, now, events) + self._apply_outcome(state, resource, active.current_adaptive_limit, outcome, now, events) self._sequence += 1 result = ReleaseResult(released=True, reason="released") if outcome.kind == "rate_limited": @@ -558,6 +558,7 @@ def _apply_outcome( self, state: AdaptiveRequestLimitState, resource: RequestResourceKey, + admitted_adaptive_limit: int, outcome: RequestReleaseOutcome, now: float, events: list[RequestAdmissionEvent], @@ -565,7 +566,7 @@ def _apply_outcome( effective_max = self._effective_max_for_resource(resource) if outcome.kind == "rate_limited": prev_limit = state.current_limit - first_in_cascade = state.consecutive_rate_limits == 0 + should_decrease = admitted_adaptive_limit <= prev_limit state.consecutive_rate_limits += 1 cooldown = ( outcome.retry_after_seconds @@ -574,12 +575,13 @@ def _apply_outcome( ) state.blocked_until = now + cooldown state.success_streak = 0 - if first_in_cascade: + if should_decrease: state.current_limit = max( 1, math.floor(state.current_limit * self._config.multiplicative_decrease_factor) ) + observed_limit = max(1, admitted_adaptive_limit) state.rate_limit_ceiling = ( - prev_limit if state.rate_limit_ceiling == 0 else min(state.rate_limit_ceiling, prev_limit) + observed_limit if state.rate_limit_ceiling == 0 else min(state.rate_limit_ceiling, observed_limit) ) if state.current_limit != prev_limit: events.append( diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/test_async_builder_integration.py b/packages/data-designer-engine/tests/engine/dataset_builders/test_async_builder_integration.py index 8f75877f4..f01dc1d91 100644 --- a/packages/data-designer-engine/tests/engine/dataset_builders/test_async_builder_integration.py +++ b/packages/data-designer-engine/tests/engine/dataset_builders/test_async_builder_integration.py @@ -5,10 +5,12 @@ import math import warnings +from types import SimpleNamespace from unittest.mock import MagicMock, Mock import pytest +import data_designer.engine.dataset_builders.dataset_builder as builder_mod import data_designer.lazy_heavy_imports as lazy from data_designer.config.column_configs import ( ExpressionColumnConfig, @@ -189,6 +191,39 @@ def finalize_row_group(rg_id: int) -> None: assert tracker.is_row_group_complete(1, 2, all_cols) +def test_prepare_async_run_enables_request_pressure_advisory(monkeypatch: pytest.MonkeyPatch) -> None: + captured_kwargs: dict[str, object] = {} + + class _SpyScheduler: + def __init__(self, **kwargs: object) -> None: + captured_kwargs.update(kwargs) + + monkeypatch.setattr(builder_mod, "AsyncTaskScheduler", _SpyScheduler) + request_admission = object() + model_registry = MagicMock() + model_registry.get_aggregate_max_parallel_requests.return_value = 2 + model_registry.request_admission = request_admission + provider = SimpleNamespace( + model_registry=model_registry, + run_config=SimpleNamespace(progress_interval=5.0, progress_bar=False), + ) + processor_runner = MagicMock() + processor_runner.has_processors_for.return_value = False + config = SamplerColumnConfig(name="seed", sampler_type=SamplerType.CATEGORY, params={"values": ["A"]}) + builder = SimpleNamespace( + _column_configs=[config], + _processor_runner=processor_runner, + artifact_storage=MagicMock(), + _resource_provider=provider, + ) + generator = MockSeed(config=_expr_config("seed"), resource_provider=provider) + + DatasetBuilder._prepare_async_run(builder, [generator], num_records=1, buffer_size=1) + + assert captured_kwargs["request_pressure_provider"] is request_admission + assert captured_kwargs["request_pressure_advisory"] is True + + # -- Test that existing sync path is unaffected -------------------------------- diff --git a/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py b/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py index 4a18d9a5c..7de678c3e 100644 --- a/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py +++ b/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py @@ -7,6 +7,7 @@ import logging import threading import time +from dataclasses import replace import pytest @@ -88,6 +89,28 @@ def test_request_admission_duplicate_release_does_not_corrupt_counts() -> None: assert controller.pressure.snapshot(item.resource).active_lease_count == 0 # type: ignore[union-attr] +def test_request_admission_stale_release_requires_exact_lease() -> None: + controller = _controller(cap=1) + item = _item() + lease = controller.try_acquire(item) + assert isinstance(lease, RequestAdmissionLease) + stale = replace(lease, current_adaptive_limit=lease.current_adaptive_limit + 1) + + stale_result = controller.release(stale, RequestReleaseOutcome(kind="provider_failure")) + snapshot = controller.pressure.snapshot(item.resource) + + assert stale_result.released is False + assert stale_result.reason == "stale_lease" + assert snapshot is not None + assert snapshot.in_flight_count == 1 + assert snapshot.active_lease_count == 1 + + released = controller.release(lease, RequestReleaseOutcome(kind="success")) + + assert released.released is True + assert controller.pressure.snapshot(item.resource).active_lease_count == 0 # type: ignore[union-attr] + + def test_request_admission_rate_limit_decreases_and_sets_cooldown() -> None: controller = _controller( cap=4, @@ -111,6 +134,60 @@ def test_request_admission_rate_limit_decreases_and_sets_cooldown() -> None: assert snapshot.cooldown_remaining_seconds > 0 +def test_request_admission_rate_limit_burst_decreases_once_per_cascade() -> None: + controller = _controller( + cap=8, + config=RequestAdmissionConfig( + multiplicative_decrease_factor=0.5, + cooldown_seconds=10, + ), + ) + item = _item() + leases = [controller.try_acquire(item) for _ in range(8)] + assert all(isinstance(lease, RequestAdmissionLease) for lease in leases) + + for lease in leases: + controller.release(lease, RequestReleaseOutcome(kind="rate_limited")) + snapshot = controller.pressure.snapshot(item.resource) + + assert snapshot is not None + assert snapshot.current_limit == 4 + assert snapshot.rate_limit_ceiling == 8 + assert snapshot.consecutive_rate_limits == 8 + + +def test_request_admission_fresh_rate_limit_after_burst_decreases_again() -> None: + controller = _controller( + cap=8, + config=RequestAdmissionConfig( + multiplicative_decrease_factor=0.5, + cooldown_seconds=0, + ), + ) + item = _item() + leases = [controller.try_acquire(item) for _ in range(8)] + assert all(isinstance(lease, RequestAdmissionLease) for lease in leases) + + for lease in leases: + controller.release(lease, RequestReleaseOutcome(kind="rate_limited")) + snapshot = controller.pressure.snapshot(item.resource) + assert snapshot is not None + assert snapshot.current_limit == 4 + assert snapshot.rate_limit_ceiling == 8 + + fresh_lease = controller.try_acquire(item) + assert isinstance(fresh_lease, RequestAdmissionLease) + assert fresh_lease.current_adaptive_limit == 4 + + controller.release(fresh_lease, RequestReleaseOutcome(kind="rate_limited")) + snapshot = controller.pressure.snapshot(item.resource) + + assert snapshot is not None + assert snapshot.current_limit == 2 + assert snapshot.rate_limit_ceiling == 4 + assert snapshot.consecutive_rate_limits == 9 + + def test_request_admission_additive_recovery_after_successes() -> None: item = _item() controller = _controller( From 05852e4f9cf5dff421b425c491d1089721c74d78 Mon Sep 17 00:00:00 2001 From: Andre Manoel <165937436+andreatgretel@users.noreply.github.com> Date: Tue, 19 May 2026 21:07:21 -0300 Subject: [PATCH 19/33] fix: tighten request controller release semantics (#682) --- .../models/request_admission/controller.py | 19 +++++++++---- .../request_admission/test_controller.py | 28 +++++++++++++++++-- 2 files changed, 38 insertions(+), 9 deletions(-) diff --git a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py index 56071ed9b..8494d7d69 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py @@ -388,9 +388,15 @@ def release(self, lease: RequestAdmissionLease, outcome: RequestReleaseOutcome) self._sequence += 1 result = ReleaseResult(released=True, reason="released") if outcome.kind == "rate_limited": - events.append(self._request_event_locked("request_rate_limited", item=lease.item, lease=lease)) + events.append(self._request_event_locked("request_rate_limited", item=active.item, lease=active)) events.append( - self._request_event_locked("request_lease_released", item=lease.item, lease=lease, result=result) + self._request_event_locked( + "request_lease_released", + item=active.item, + lease=active, + result=result, + outcome=outcome, + ) ) self._admit_waiters_locked(events) self._condition.notify_all() @@ -579,10 +585,8 @@ def _apply_outcome( state.current_limit = max( 1, math.floor(state.current_limit * self._config.multiplicative_decrease_factor) ) - observed_limit = max(1, admitted_adaptive_limit) - state.rate_limit_ceiling = ( - observed_limit if state.rate_limit_ceiling == 0 else min(state.rate_limit_ceiling, observed_limit) - ) + if state.rate_limit_ceiling == 0: + state.rate_limit_ceiling = max(1, admitted_adaptive_limit) if state.current_limit != prev_limit: events.append( self._request_event_locked( @@ -696,6 +700,7 @@ def _request_event_locked( lease: RequestAdmissionLease | None = None, decision: RequestAdmissionDenied | None = None, result: ReleaseResult | None = None, + outcome: RequestReleaseOutcome | None = None, request_resource_key: RequestResourceKey | None = None, diagnostics: Mapping[str, object] | None = None, ) -> RequestAdmissionEvent: @@ -706,6 +711,8 @@ def _request_event_locked( reason_or_outcome = None if decision is not None: reason_or_outcome = decision.reason + elif outcome is not None: + reason_or_outcome = outcome.kind elif result is not None: reason_or_outcome = result.reason return RequestAdmissionEvent.capture( diff --git a/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py b/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py index 7de678c3e..c0c9a5801 100644 --- a/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py +++ b/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py @@ -7,7 +7,6 @@ import logging import threading import time -from dataclasses import replace import pytest @@ -26,6 +25,7 @@ RequestGroupSpec, RequestResourceKey, ) +from data_designer.engine.observability import InMemoryAdmissionEventSink def _item(domain: RequestDomain = RequestDomain.CHAT, timeout: float | None = None) -> RequestAdmissionItem: @@ -94,7 +94,14 @@ def test_request_admission_stale_release_requires_exact_lease() -> None: item = _item() lease = controller.try_acquire(item) assert isinstance(lease, RequestAdmissionLease) - stale = replace(lease, current_adaptive_limit=lease.current_adaptive_limit + 1) + stale = RequestAdmissionLease( + lease_id=lease.lease_id, + item=lease.item, + acquired_at=lease.acquired_at, + current_adaptive_limit=lease.current_adaptive_limit + 1, + effective_max=lease.effective_max, + controller_generation=lease.controller_generation, + ) stale_result = controller.release(stale, RequestReleaseOutcome(kind="provider_failure")) snapshot = controller.pressure.snapshot(item.resource) @@ -184,7 +191,7 @@ def test_request_admission_fresh_rate_limit_after_burst_decreases_again() -> Non assert snapshot is not None assert snapshot.current_limit == 2 - assert snapshot.rate_limit_ceiling == 4 + assert snapshot.rate_limit_ceiling == 8 assert snapshot.consecutive_rate_limits == 9 @@ -255,6 +262,21 @@ def test_request_admission_logs_sink_failures(caplog: pytest.LogCaptureFixture) assert "Request admission event sink raised; dropping event." in caplog.text +def test_request_lease_released_event_records_release_outcome() -> None: + sink = InMemoryAdmissionEventSink() + controller = AdaptiveRequestAdmissionController(event_sink=sink) + controller.register(provider_name="nvidia", model_id="nemotron", alias="default", max_parallel_requests=1) + item = _item() + lease = controller.try_acquire(item) + assert isinstance(lease, RequestAdmissionLease) + + controller.release(lease, RequestReleaseOutcome(kind="provider_failure")) + + release_events = [event for event in sink.request_events if event.event_kind == "request_lease_released"] + assert release_events + assert release_events[-1].reason_or_outcome == "provider_failure" + + @pytest.mark.asyncio(loop_scope="session") async def test_acquire_sync_rejects_running_event_loop() -> None: controller = _controller(cap=1) From 1fcc6b5871f2a14a6fe755df1d28adccf50bddb4 Mon Sep 17 00:00:00 2001 From: "Eric W. Tramel" Date: Tue, 19 May 2026 20:34:24 -0400 Subject: [PATCH 20/33] chore: remove generated benchmark artifacts Signed-off-by: Eric W. Tramel --- .gitignore | 4 + .../agent-aimd-scale/README.md | 48 - .../agent-aimd-scale/combined_summary.json | 1224 ----------------- .../645-live-bench-nano/agent-aimd/README.md | 28 - .../agent-aimd/combined_summary.json | 906 ------------ .../agent-bottleneck/README.md | 32 - .../agent-bottleneck/README_mixed.md | 27 - .../combined_mixed_summary.json | 369 ----- .../agent-bottleneck/combined_summary.json | 297 ---- .../agent-cap-scale/README.md | 33 - .../agent-cap-scale/combined_summary.json | 93 -- .../agent-cap-sweep/README.md | 13 - .../agent-cap-sweep/README_final1024.md | 13 - .../agent-cap-sweep/combined_summary.json | 269 ---- .../combined_summary_final1024.json | 493 ------- .../agent-fan-scale/README.md | 37 - .../agent-fan-scale/combined_summary.json | 279 ---- .../645-live-bench-nano/agent-fan/README.md | 4 - .../agent-fan/combined_summary.json | 161 --- .../agent-mixed-pipeline/README.md | 12 - .../combined_summary.json | 1206 ---------------- .../agent-mixed-pipeline/smoke/README.md | 10 - .../smoke/combined_summary.json | 176 --- artifacts/645-live-bench/agent-fan/README.md | 21 - .../agent-fan/combined_summary.json | 452 ------ .../maxparallel_live_benchmark.json | 507 ------- .../maxparallel_live_benchmark.md | 22 - ...sync-scheduling-epic-benchmark-report.html | 791 ----------- reports/async-scheduling-idle-analysis.html | 97 -- reports/async-scheduling-idle-regression.html | 125 -- 30 files changed, 4 insertions(+), 7745 deletions(-) delete mode 100644 artifacts/645-live-bench-nano/agent-aimd-scale/README.md delete mode 100644 artifacts/645-live-bench-nano/agent-aimd-scale/combined_summary.json delete mode 100644 artifacts/645-live-bench-nano/agent-aimd/README.md delete mode 100644 artifacts/645-live-bench-nano/agent-aimd/combined_summary.json delete mode 100644 artifacts/645-live-bench-nano/agent-bottleneck/README.md delete mode 100644 artifacts/645-live-bench-nano/agent-bottleneck/README_mixed.md delete mode 100644 artifacts/645-live-bench-nano/agent-bottleneck/combined_mixed_summary.json delete mode 100644 artifacts/645-live-bench-nano/agent-bottleneck/combined_summary.json delete mode 100644 artifacts/645-live-bench-nano/agent-cap-scale/README.md delete mode 100644 artifacts/645-live-bench-nano/agent-cap-scale/combined_summary.json delete mode 100644 artifacts/645-live-bench-nano/agent-cap-sweep/README.md delete mode 100644 artifacts/645-live-bench-nano/agent-cap-sweep/README_final1024.md delete mode 100644 artifacts/645-live-bench-nano/agent-cap-sweep/combined_summary.json delete mode 100644 artifacts/645-live-bench-nano/agent-cap-sweep/combined_summary_final1024.json delete mode 100644 artifacts/645-live-bench-nano/agent-fan-scale/README.md delete mode 100644 artifacts/645-live-bench-nano/agent-fan-scale/combined_summary.json delete mode 100644 artifacts/645-live-bench-nano/agent-fan/README.md delete mode 100644 artifacts/645-live-bench-nano/agent-fan/combined_summary.json delete mode 100644 artifacts/645-live-bench-nano/agent-mixed-pipeline/README.md delete mode 100644 artifacts/645-live-bench-nano/agent-mixed-pipeline/combined_summary.json delete mode 100644 artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/README.md delete mode 100644 artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/combined_summary.json delete mode 100644 artifacts/645-live-bench/agent-fan/README.md delete mode 100644 artifacts/645-live-bench/agent-fan/combined_summary.json delete mode 100644 artifacts/645-live-bench/agent-maxparallel/maxparallel_live_benchmark.json delete mode 100644 artifacts/645-live-bench/agent-maxparallel/maxparallel_live_benchmark.md delete mode 100644 reports/async-scheduling-epic-benchmark-report.html delete mode 100644 reports/async-scheduling-idle-analysis.html delete mode 100644 reports/async-scheduling-idle-regression.html diff --git a/.gitignore b/.gitignore index e7f8718b7..c65a30138 100644 --- a/.gitignore +++ b/.gitignore @@ -85,6 +85,10 @@ venv.bak/ # Local scratch space .scratch/ +# Generated benchmark/report output +/artifacts/ +/reports/ + docs/notebooks/ docs/notebook_source/*.ipynb docs/notebook_source/*.csv diff --git a/artifacts/645-live-bench-nano/agent-aimd-scale/README.md b/artifacts/645-live-bench-nano/agent-aimd-scale/README.md deleted file mode 100644 index 39c5c1826..000000000 --- a/artifacts/645-live-bench-nano/agent-aimd-scale/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# 645 live bench nano AIMD scale lane - -Ran in `/Users/etramel/src/DataDesigner` on branch `scheduling-yolo` with only `/tmp/dd_live_aimd_bench.py` and artifacts under this directory. No tracked repo files were edited. - -## Configuration - -- Model: `openai/openai/gpt-5-nano` -- Provider: `nvidia-internal` -- Temperature: omitted -- `skip_health_check=True` -- `DATA_DESIGNER_ASYNC_ENGINE=1` -- `DATA_DESIGNER_ASYNC_TRACE=1` -- `max_parallel_requests=16` -- AIMD initial limit: 1 -- AIMD `increase_after_successes=16` -- Shape for final scenarios: 512 rows x 2 independent `LLMTextColumnConfig` columns = 1024 model generations -- Event instrumentation: `InMemoryAdmissionEventSink`, patched request admission init, model-client factory `request_event_sink`, and scheduler init `scheduler_event_sink` - -## Scenarios - -| Scenario | Buffer | Requests | Success | Failures | Wall s | Time to cap s | Max in-flight | Max waiters | Request wait p50 / p95 / max s | -|---|---:|---:|---:|---:|---:|---:|---:|---:|---:| -| diagnostic-4x2-buffer32 | 32 | 8 | 8 | 0 | 5.586 | n/a | 2 | 7 | 2.638 / 3.871 / 3.887 | -| final-512x2-buffer32 | 32 | 1024 | 1024 | 0 | 104.823 | 50.332 | 16 | 63 | 3.180 / 19.371 / 29.990 | -| final-512x2-buffer512 | 512 | 1024 | 1024 | 0 | 114.522 | 57.062 | 16 | 63 | 3.283 / 22.949 / 35.324 | - -## Observations - -- Both final scenarios completed exactly 1024 `model_request_started` and 1024 `model_request_completed` events, with 0 failed model requests and no fallback model. -- AIMD limit increased monotonically from 1 through 16 in both final scenarios. There were 15 `request_limit_increased` events, 0 decreases, and 0 rate-limit events in each final scenario. -- Cap enforcement held: observed request in-flight max was 16 in both final scenarios, matching `max_parallel_requests=16`. -- `buffer_size=32` reached cap faster (50.332s) and completed faster (104.823s) than `buffer_size=512` (57.062s to cap, 114.522s wall). -- Request wait p95 was lower for `buffer_size=32` (19.371s) than `buffer_size=512` (22.949s). -- Traffic became steady after the initial AIMD ramp in both final scenarios; see each `flow_buckets.json` for per-second starts/completions and `monitor_samples.jsonl` for sampled pressure snapshots. - -## Artifacts - -Each scenario directory contains: - -- `timeline.jsonl` -- `request_events.jsonl` -- `monitor_samples.jsonl` -- `task_traces.csv` -- `task_traces.json` -- `flow_buckets.json` -- `summary.json` - -Combined summary: `combined_summary.json`. diff --git a/artifacts/645-live-bench-nano/agent-aimd-scale/combined_summary.json b/artifacts/645-live-bench-nano/agent-aimd-scale/combined_summary.json deleted file mode 100644 index ff9154390..000000000 --- a/artifacts/645-live-bench-nano/agent-aimd-scale/combined_summary.json +++ /dev/null @@ -1,1224 +0,0 @@ -{ - "artifact_schema_version": "645-live-bench-nano-combined-v1", - "comparison": { - "both_cap_enforced": true, - "both_zero_failures": true, - "buffer32_max_waiters": 63, - "buffer32_time_to_cap_seconds": 50.33227308301139, - "buffer32_wait_p95_seconds": 19.37087424368073, - "buffer32_wall_time_seconds": 104.82342862500809, - "buffer512_max_waiters": 63, - "buffer512_minus_buffer32_seconds": 9.698241957987193, - "buffer512_minus_buffer32_time_to_cap_seconds": 6.729556832986418, - "buffer512_time_to_cap_seconds": 57.061829915997805, - "buffer512_wait_p95_seconds": 22.94936933576682, - "buffer512_wall_time_seconds": 114.52167058299528, - "same_shape": true - }, - "env": { - "DATA_DESIGNER_ASYNC_ENGINE": "1", - "DATA_DESIGNER_ASYNC_TRACE": "1" - }, - "fallback": null, - "harness": "/tmp/dd_live_aimd_bench.py", - "root": "artifacts/645-live-bench-nano/agent-aimd-scale", - "scenarios": { - "diagnostic-4x2-buffer32": { - "artifacts": { - "flow_buckets": "artifacts/645-live-bench-nano/agent-aimd-scale/diagnostic-4x2-buffer32/flow_buckets.json", - "monitor_samples": "artifacts/645-live-bench-nano/agent-aimd-scale/diagnostic-4x2-buffer32/monitor_samples.jsonl", - "request_events": "artifacts/645-live-bench-nano/agent-aimd-scale/diagnostic-4x2-buffer32/request_events.jsonl", - "summary": "artifacts/645-live-bench-nano/agent-aimd-scale/diagnostic-4x2-buffer32/summary.json", - "task_traces_csv": "artifacts/645-live-bench-nano/agent-aimd-scale/diagnostic-4x2-buffer32/task_traces.csv", - "task_traces_json": "artifacts/645-live-bench-nano/agent-aimd-scale/diagnostic-4x2-buffer32/task_traces.json", - "timeline": "artifacts/645-live-bench-nano/agent-aimd-scale/diagnostic-4x2-buffer32/timeline.jsonl" - }, - "buffer_size": 32, - "increase_after_successes": 4, - "initial_limit": 1, - "llm_columns": 2, - "max_parallel_requests": 16, - "model_generations_expected": 8, - "model_request_completed_events": 8, - "model_request_started_events": 8, - "request_summary": { - "cap_enforced": true, - "event_counts": { - "model_request_completed": 8, - "model_request_started": 8, - "request_effective_cap_changed": 1, - "request_lease_acquired": 8, - "request_lease_released": 8, - "request_limit_increased": 2, - "request_queue_drained": 2, - "request_queue_formed": 2, - "request_resource_registered": 1, - "request_wait_completed": 8, - "request_wait_started": 8 - }, - "final_pressure": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 173980.1628715, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 3, - "effective_max": 16, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 65, - "waiters": 0 - }, - "limit_path": [ - { - "current_limit": 1, - "diagnostics": { - "alias": "aimd-nano", - "max_parallel_requests": 16, - "provider_model": { - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - } - }, - "effective_max": 16, - "elapsed_seconds": 0.010773582995170727, - "event_kind": "request_resource_registered" - }, - { - "current_limit": 1, - "diagnostics": { - "current": 16, - "previous": 0, - "provider_model": { - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - } - }, - "effective_max": 16, - "elapsed_seconds": 0.010781874996609986, - "event_kind": "request_effective_cap_changed" - }, - { - "current_limit": 2, - "diagnostics": { - "current": 2, - "previous": 1 - }, - "effective_max": 16, - "elapsed_seconds": 3.0564847079804167, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 3, - "diagnostics": { - "current": 3, - "previous": 2 - }, - "effective_max": 16, - "elapsed_seconds": 5.035948874981841, - "event_kind": "request_limit_increased" - } - ], - "limit_values_seen": [ - 1, - 2, - 3 - ], - "max_in_flight": 2, - "max_waiters": 7, - "request_wait_seconds": { - "count": 8, - "max": 3.8871747499797493, - "p50": 2.6384192499972414, - "p95": 3.8706564271909882 - }, - "time_to_reach_cap_seconds": null - }, - "rows": 4, - "scheduler_event_counts": { - "dependency_ready": 9, - "queue_drained": 1, - "ready_enqueued": 9, - "selected": 9, - "task_completed": 9, - "task_lease_acquired": 9, - "task_lease_released": 9, - "worker_spawned": 9 - }, - "success": true, - "summary_path": "artifacts/645-live-bench-nano/agent-aimd-scale/diagnostic-4x2-buffer32/summary.json", - "task_trace_count": 9, - "task_trace_status_counts": { - "ok": 9 - }, - "traffic_regularity": { - "bucket_seconds": 1.0, - "first_15_buckets": [ - { - "bucket_end_seconds": 1.0, - "bucket_start_seconds": 0.0, - "request_completions": 2, - "request_starts": 4, - "task_completions": 2, - "task_starts": 9 - }, - { - "bucket_end_seconds": 2.0, - "bucket_start_seconds": 1.0, - "request_completions": 2, - "request_starts": 2, - "task_completions": 1 - }, - { - "bucket_end_seconds": 3.0, - "bucket_start_seconds": 2.0, - "request_completions": 2, - "request_starts": 2, - "task_completions": 1 - }, - { - "bucket_end_seconds": 4.0, - "bucket_start_seconds": 3.0, - "request_completions": 6, - "request_starts": 8, - "task_completions": 3 - }, - { - "bucket_end_seconds": 5.0, - "bucket_start_seconds": 4.0, - "request_completions": 2, - "task_completions": 1 - }, - { - "bucket_end_seconds": 6.0, - "bucket_start_seconds": 5.0, - "request_completions": 2, - "task_completions": 1 - } - ], - "last_10_buckets": [ - { - "bucket_end_seconds": 1.0, - "bucket_start_seconds": 0.0, - "request_completions": 2, - "request_starts": 4, - "task_completions": 2, - "task_starts": 9 - }, - { - "bucket_end_seconds": 2.0, - "bucket_start_seconds": 1.0, - "request_completions": 2, - "request_starts": 2, - "task_completions": 1 - }, - { - "bucket_end_seconds": 3.0, - "bucket_start_seconds": 2.0, - "request_completions": 2, - "request_starts": 2, - "task_completions": 1 - }, - { - "bucket_end_seconds": 4.0, - "bucket_start_seconds": 3.0, - "request_completions": 6, - "request_starts": 8, - "task_completions": 3 - }, - { - "bucket_end_seconds": 5.0, - "bucket_start_seconds": 4.0, - "request_completions": 2, - "task_completions": 1 - }, - { - "bucket_end_seconds": 6.0, - "bucket_start_seconds": 5.0, - "request_completions": 2, - "task_completions": 1 - } - ], - "nonempty_buckets": 6, - "request_completions_per_nonempty_bucket_mean": 2.6666666666666665, - "request_completions_per_nonempty_bucket_stdev": 1.4907119849998598, - "request_starts_per_nonempty_bucket_mean": 2.6666666666666665, - "request_starts_per_nonempty_bucket_stdev": 2.748737083745107 - }, - "wall_time_seconds": 5.585904499981552 - }, - "final-512x2-buffer32": { - "artifacts": { - "flow_buckets": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer32/flow_buckets.json", - "monitor_samples": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer32/monitor_samples.jsonl", - "request_events": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer32/request_events.jsonl", - "summary": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer32/summary.json", - "task_traces_csv": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer32/task_traces.csv", - "task_traces_json": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer32/task_traces.json", - "timeline": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer32/timeline.jsonl" - }, - "buffer_size": 32, - "increase_after_successes": 16, - "initial_limit": 1, - "llm_columns": 2, - "max_parallel_requests": 16, - "model_generations_expected": 1024, - "model_request_completed_events": 1024, - "model_request_started_events": 1024, - "request_summary": { - "cap_enforced": true, - "event_counts": { - "model_request_completed": 1024, - "model_request_started": 1024, - "request_effective_cap_changed": 1, - "request_fully_recovered": 1, - "request_lease_acquired": 1024, - "request_lease_released": 1024, - "request_limit_increased": 15, - "request_queue_drained": 2, - "request_queue_formed": 2, - "request_resource_registered": 1, - "request_wait_completed": 1024, - "request_wait_started": 1024 - }, - "final_pressure": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 174091.2588695, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 16, - "effective_max": 16, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 7191, - "waiters": 0 - }, - "limit_path": [ - { - "current_limit": 1, - "diagnostics": { - "alias": "aimd-nano", - "max_parallel_requests": 16, - "provider_model": { - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - } - }, - "effective_max": 16, - "elapsed_seconds": 0.0526990000216756, - "event_kind": "request_resource_registered" - }, - { - "current_limit": 1, - "diagnostics": { - "current": 16, - "previous": 0, - "provider_model": { - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - } - }, - "effective_max": 16, - "elapsed_seconds": 0.05270808300701901, - "event_kind": "request_effective_cap_changed" - }, - { - "current_limit": 2, - "diagnostics": { - "current": 2, - "previous": 1 - }, - "effective_max": 16, - "elapsed_seconds": 15.712296790996334, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 3, - "diagnostics": { - "current": 3, - "previous": 2 - }, - "effective_max": 16, - "elapsed_seconds": 23.050738916004775, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 4, - "diagnostics": { - "current": 4, - "previous": 3 - }, - "effective_max": 16, - "elapsed_seconds": 27.39916841601371, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 5, - "diagnostics": { - "current": 5, - "previous": 4 - }, - "effective_max": 16, - "elapsed_seconds": 31.248203166003805, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 6, - "diagnostics": { - "current": 6, - "previous": 5 - }, - "effective_max": 16, - "elapsed_seconds": 34.453307500021765, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 7, - "diagnostics": { - "current": 7, - "previous": 6 - }, - "effective_max": 16, - "elapsed_seconds": 37.04487558300025, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 8, - "diagnostics": { - "current": 8, - "previous": 7 - }, - "effective_max": 16, - "elapsed_seconds": 39.11540133302333, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 9, - "diagnostics": { - "current": 9, - "previous": 8 - }, - "effective_max": 16, - "elapsed_seconds": 40.83609758300008, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 10, - "diagnostics": { - "current": 10, - "previous": 9 - }, - "effective_max": 16, - "elapsed_seconds": 42.55307258301764, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 11, - "diagnostics": { - "current": 11, - "previous": 10 - }, - "effective_max": 16, - "elapsed_seconds": 43.91511349999928, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 12, - "diagnostics": { - "current": 12, - "previous": 11 - }, - "effective_max": 16, - "elapsed_seconds": 45.856080625002505, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 13, - "diagnostics": { - "current": 13, - "previous": 12 - }, - "effective_max": 16, - "elapsed_seconds": 47.06025733301067, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 14, - "diagnostics": { - "current": 14, - "previous": 13 - }, - "effective_max": 16, - "elapsed_seconds": 48.28704245801782, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 15, - "diagnostics": { - "current": 15, - "previous": 14 - }, - "effective_max": 16, - "elapsed_seconds": 49.465360916015925, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 16, - "diagnostics": { - "current": 16, - "previous": 15 - }, - "effective_max": 16, - "elapsed_seconds": 50.33227308301139, - "event_kind": "request_limit_increased" - } - ], - "limit_values_seen": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "max_in_flight": 16, - "max_waiters": 63, - "request_wait_seconds": { - "count": 1024, - "max": 29.989937375008594, - "p50": 3.1799129999999423, - "p95": 19.37087424368073 - }, - "time_to_reach_cap_seconds": 50.33227308301139 - }, - "rows": 512, - "scheduler_event_counts": { - "dependency_ready": 1040, - "group_capped": 940, - "queue_drained": 2, - "ready_enqueued": 1040, - "selected": 1040, - "task_completed": 1040, - "task_lease_acquired": 1040, - "task_lease_released": 1040, - "worker_spawned": 1040 - }, - "success": true, - "summary_path": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer32/summary.json", - "task_trace_count": 1040, - "task_trace_status_counts": { - "ok": 1040 - }, - "traffic_regularity": { - "bucket_seconds": 1.0, - "first_15_buckets": [ - { - "bucket_end_seconds": 1.0, - "bucket_start_seconds": 0.0, - "request_starts": 2, - "task_completions": 3, - "task_starts": 67 - }, - { - "bucket_end_seconds": 2.0, - "bucket_start_seconds": 1.0, - "request_completions": 2, - "request_starts": 2, - "task_completions": 1, - "task_starts": 1 - }, - { - "bucket_end_seconds": 3.0, - "bucket_start_seconds": 2.0, - "request_completions": 2, - "request_starts": 2, - "task_completions": 1, - "task_starts": 1 - }, - { - "bucket_end_seconds": 4.0, - "bucket_start_seconds": 3.0, - "request_completions": 2, - "request_starts": 2, - "task_completions": 1, - "task_starts": 1 - }, - { - "bucket_end_seconds": 5.0, - "bucket_start_seconds": 4.0, - "request_completions": 2, - "request_starts": 2, - "task_completions": 1, - "task_starts": 1 - }, - { - "bucket_end_seconds": 7.0, - "bucket_start_seconds": 6.0, - "request_completions": 2, - "request_starts": 2, - "task_completions": 1, - "task_starts": 1 - }, - { - "bucket_end_seconds": 8.0, - "bucket_start_seconds": 7.0, - "request_completions": 4, - "request_starts": 4, - "task_completions": 2, - "task_starts": 2 - }, - { - "bucket_end_seconds": 9.0, - "bucket_start_seconds": 8.0, - "request_completions": 4, - "request_starts": 4, - "task_completions": 2, - "task_starts": 2 - }, - { - "bucket_end_seconds": 10.0, - "bucket_start_seconds": 9.0, - "request_completions": 2, - "request_starts": 2, - "task_completions": 1, - "task_starts": 1 - }, - { - "bucket_end_seconds": 12.0, - "bucket_start_seconds": 11.0, - "request_completions": 2, - "request_starts": 2, - "task_completions": 1, - "task_starts": 1 - }, - { - "bucket_end_seconds": 13.0, - "bucket_start_seconds": 12.0, - "request_completions": 4, - "request_starts": 4, - "task_completions": 2, - "task_starts": 2 - }, - { - "bucket_end_seconds": 14.0, - "bucket_start_seconds": 13.0, - "request_completions": 2, - "request_starts": 2, - "task_completions": 1, - "task_starts": 1 - }, - { - "bucket_end_seconds": 15.0, - "bucket_start_seconds": 14.0, - "request_completions": 2, - "request_starts": 2, - "task_completions": 1, - "task_starts": 1 - }, - { - "bucket_end_seconds": 16.0, - "bucket_start_seconds": 15.0, - "request_completions": 2, - "request_starts": 4, - "task_completions": 1, - "task_starts": 1 - }, - { - "bucket_end_seconds": 17.0, - "bucket_start_seconds": 16.0, - "request_completions": 2, - "request_starts": 2, - "task_completions": 1, - "task_starts": 1 - } - ], - "last_10_buckets": [ - { - "bucket_end_seconds": 93.0, - "bucket_start_seconds": 92.0, - "request_completions": 16, - "request_starts": 16, - "task_completions": 8, - "task_starts": 8 - }, - { - "bucket_end_seconds": 94.0, - "bucket_start_seconds": 93.0, - "request_completions": 34, - "request_starts": 34, - "task_completions": 17 - }, - { - "bucket_end_seconds": 95.0, - "bucket_start_seconds": 94.0, - "request_completions": 34, - "request_starts": 34, - "task_completions": 18, - "task_starts": 35 - }, - { - "bucket_end_seconds": 96.0, - "bucket_start_seconds": 95.0, - "request_completions": 32, - "request_starts": 32, - "task_completions": 16, - "task_starts": 16 - }, - { - "bucket_end_seconds": 97.0, - "bucket_start_seconds": 96.0, - "request_completions": 34, - "request_starts": 34, - "task_completions": 17, - "task_starts": 14 - }, - { - "bucket_end_seconds": 98.0, - "bucket_start_seconds": 97.0, - "request_completions": 32, - "request_starts": 32, - "task_completions": 16 - }, - { - "bucket_end_seconds": 99.0, - "bucket_start_seconds": 98.0, - "request_completions": 34, - "request_starts": 34, - "task_completions": 17 - }, - { - "bucket_end_seconds": 100.0, - "bucket_start_seconds": 99.0, - "request_completions": 28, - "request_starts": 24, - "task_completions": 14 - }, - { - "bucket_end_seconds": 101.0, - "bucket_start_seconds": 100.0, - "request_completions": 24, - "task_completions": 12 - }, - { - "bucket_end_seconds": 105.0, - "bucket_start_seconds": 104.0, - "request_completions": 4, - "task_completions": 2 - } - ], - "nonempty_buckets": 100, - "request_completions_per_nonempty_bucket_mean": 20.48, - "request_completions_per_nonempty_bucket_stdev": 12.62891919366024, - "request_starts_per_nonempty_bucket_mean": 20.48, - "request_starts_per_nonempty_bucket_stdev": 12.771436880789881 - }, - "wall_time_seconds": 104.82342862500809 - }, - "final-512x2-buffer512": { - "artifacts": { - "flow_buckets": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer512/flow_buckets.json", - "monitor_samples": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer512/monitor_samples.jsonl", - "request_events": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer512/request_events.jsonl", - "summary": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer512/summary.json", - "task_traces_csv": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer512/task_traces.csv", - "task_traces_json": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer512/task_traces.json", - "timeline": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer512/timeline.jsonl" - }, - "buffer_size": 512, - "increase_after_successes": 16, - "initial_limit": 1, - "llm_columns": 2, - "max_parallel_requests": 16, - "model_generations_expected": 1024, - "model_request_completed_events": 1024, - "model_request_started_events": 1024, - "request_summary": { - "cap_enforced": true, - "event_counts": { - "model_request_completed": 1024, - "model_request_started": 1024, - "request_effective_cap_changed": 1, - "request_fully_recovered": 1, - "request_lease_acquired": 1024, - "request_lease_released": 1024, - "request_limit_increased": 15, - "request_queue_drained": 2, - "request_queue_formed": 2, - "request_resource_registered": 1, - "request_wait_completed": 1024, - "request_wait_started": 1024 - }, - "final_pressure": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 174211.70947675, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 16, - "effective_max": 16, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 7191, - "waiters": 0 - }, - "limit_path": [ - { - "current_limit": 1, - "diagnostics": { - "alias": "aimd-nano", - "max_parallel_requests": 16, - "provider_model": { - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - } - }, - "effective_max": 16, - "elapsed_seconds": 1.21228933299426, - "event_kind": "request_resource_registered" - }, - { - "current_limit": 1, - "diagnostics": { - "current": 16, - "previous": 0, - "provider_model": { - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - } - }, - "effective_max": 16, - "elapsed_seconds": 1.21229975001188, - "event_kind": "request_effective_cap_changed" - }, - { - "current_limit": 2, - "diagnostics": { - "current": 2, - "previous": 1 - }, - "effective_max": 16, - "elapsed_seconds": 21.04242341601639, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 3, - "diagnostics": { - "current": 3, - "previous": 2 - }, - "effective_max": 16, - "elapsed_seconds": 29.358662083017407, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 4, - "diagnostics": { - "current": 4, - "previous": 3 - }, - "effective_max": 16, - "elapsed_seconds": 34.2536578750005, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 5, - "diagnostics": { - "current": 5, - "previous": 4 - }, - "effective_max": 16, - "elapsed_seconds": 37.14513820799766, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 6, - "diagnostics": { - "current": 6, - "previous": 5 - }, - "effective_max": 16, - "elapsed_seconds": 39.98303475001012, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 7, - "diagnostics": { - "current": 7, - "previous": 6 - }, - "effective_max": 16, - "elapsed_seconds": 44.051574707991676, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 8, - "diagnostics": { - "current": 8, - "previous": 7 - }, - "effective_max": 16, - "elapsed_seconds": 46.41951241600327, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 9, - "diagnostics": { - "current": 9, - "previous": 8 - }, - "effective_max": 16, - "elapsed_seconds": 48.140478916000575, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 10, - "diagnostics": { - "current": 10, - "previous": 9 - }, - "effective_max": 16, - "elapsed_seconds": 49.83326658300939, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 11, - "diagnostics": { - "current": 11, - "previous": 10 - }, - "effective_max": 16, - "elapsed_seconds": 51.01946379101719, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 12, - "diagnostics": { - "current": 12, - "previous": 11 - }, - "effective_max": 16, - "elapsed_seconds": 52.255215915996814, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 13, - "diagnostics": { - "current": 13, - "previous": 12 - }, - "effective_max": 16, - "elapsed_seconds": 53.402203250007005, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 14, - "diagnostics": { - "current": 14, - "previous": 13 - }, - "effective_max": 16, - "elapsed_seconds": 54.766846125014126, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 15, - "diagnostics": { - "current": 15, - "previous": 14 - }, - "effective_max": 16, - "elapsed_seconds": 55.84289866601466, - "event_kind": "request_limit_increased" - }, - { - "current_limit": 16, - "diagnostics": { - "current": 16, - "previous": 15 - }, - "effective_max": 16, - "elapsed_seconds": 57.061829915997805, - "event_kind": "request_limit_increased" - } - ], - "limit_values_seen": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "max_in_flight": 16, - "max_waiters": 63, - "request_wait_seconds": { - "count": 1024, - "max": 35.32375045801746, - "p50": 3.2831020835001254, - "p95": 22.94936933576682 - }, - "time_to_reach_cap_seconds": 57.061829915997805 - }, - "rows": 512, - "scheduler_event_counts": { - "dependency_ready": 1025, - "group_capped": 937, - "queue_drained": 1, - "ready_enqueued": 1025, - "selected": 1025, - "task_completed": 1025, - "task_lease_acquired": 1025, - "task_lease_released": 1025, - "worker_spawned": 1025 - }, - "success": true, - "summary_path": "artifacts/645-live-bench-nano/agent-aimd-scale/final-512x2-buffer512/summary.json", - "task_trace_count": 1025, - "task_trace_status_counts": { - "ok": 1025 - }, - "traffic_regularity": { - "bucket_seconds": 1.0, - "first_15_buckets": [ - { - "bucket_end_seconds": 2.0, - "bucket_start_seconds": 1.0, - "request_starts": 2, - "task_completions": 1, - "task_starts": 65 - }, - { - "bucket_end_seconds": 3.0, - "bucket_start_seconds": 2.0, - "request_completions": 4, - "request_starts": 4, - "task_completions": 2, - "task_starts": 2 - }, - { - "bucket_end_seconds": 4.0, - "bucket_start_seconds": 3.0, - "request_completions": 2, - "request_starts": 2, - "task_completions": 1, - "task_starts": 1 - }, - { - "bucket_end_seconds": 5.0, - "bucket_start_seconds": 4.0, - "request_completions": 2, - "request_starts": 2, - "task_completions": 1, - "task_starts": 1 - }, - { - "bucket_end_seconds": 12.0, - "bucket_start_seconds": 11.0, - "request_completions": 4, - "request_starts": 4, - "task_completions": 2, - "task_starts": 2 - }, - { - "bucket_end_seconds": 13.0, - "bucket_start_seconds": 12.0, - "request_completions": 2, - "request_starts": 2, - "task_completions": 1, - "task_starts": 1 - }, - { - "bucket_end_seconds": 14.0, - "bucket_start_seconds": 13.0, - "request_completions": 4, - "request_starts": 4, - "task_completions": 2, - "task_starts": 2 - }, - { - "bucket_end_seconds": 15.0, - "bucket_start_seconds": 14.0, - "request_completions": 2, - "request_starts": 2, - "task_completions": 1, - "task_starts": 1 - }, - { - "bucket_end_seconds": 16.0, - "bucket_start_seconds": 15.0, - "request_completions": 2, - "request_starts": 2, - "task_completions": 1, - "task_starts": 1 - }, - { - "bucket_end_seconds": 18.0, - "bucket_start_seconds": 17.0, - "request_completions": 2, - "request_starts": 2, - "task_completions": 1, - "task_starts": 1 - }, - { - "bucket_end_seconds": 19.0, - "bucket_start_seconds": 18.0, - "request_completions": 2, - "request_starts": 2, - "task_completions": 1, - "task_starts": 1 - }, - { - "bucket_end_seconds": 20.0, - "bucket_start_seconds": 19.0, - "request_completions": 2, - "request_starts": 2, - "task_completions": 1, - "task_starts": 1 - }, - { - "bucket_end_seconds": 21.0, - "bucket_start_seconds": 20.0, - "request_completions": 2, - "request_starts": 2, - "task_completions": 1, - "task_starts": 1 - }, - { - "bucket_end_seconds": 22.0, - "bucket_start_seconds": 21.0, - "request_completions": 4, - "request_starts": 6, - "task_completions": 2, - "task_starts": 2 - }, - { - "bucket_end_seconds": 23.0, - "bucket_start_seconds": 22.0, - "request_completions": 2, - "request_starts": 2, - "task_completions": 1, - "task_starts": 1 - } - ], - "last_10_buckets": [ - { - "bucket_end_seconds": 103.0, - "bucket_start_seconds": 102.0, - "request_completions": 28, - "request_starts": 29, - "task_completions": 14, - "task_starts": 3 - }, - { - "bucket_end_seconds": 104.0, - "bucket_start_seconds": 103.0, - "request_completions": 26, - "request_starts": 26, - "task_completions": 13 - }, - { - "bucket_end_seconds": 105.0, - "bucket_start_seconds": 104.0, - "request_completions": 28, - "request_starts": 27, - "task_completions": 14 - }, - { - "bucket_end_seconds": 106.0, - "bucket_start_seconds": 105.0, - "request_completions": 30, - "request_starts": 29, - "task_completions": 15 - }, - { - "bucket_end_seconds": 107.0, - "bucket_start_seconds": 106.0, - "request_completions": 22, - "request_starts": 12, - "task_completions": 11 - }, - { - "bucket_end_seconds": 108.0, - "bucket_start_seconds": 107.0, - "request_completions": 10, - "task_completions": 5 - }, - { - "bucket_end_seconds": 109.0, - "bucket_start_seconds": 108.0, - "request_completions": 4, - "task_completions": 2 - }, - { - "bucket_end_seconds": 110.0, - "bucket_start_seconds": 109.0, - "request_completions": 2, - "task_completions": 1 - }, - { - "bucket_end_seconds": 113.0, - "bucket_start_seconds": 112.0, - "request_completions": 2, - "task_completions": 1 - }, - { - "bucket_end_seconds": 114.0, - "bucket_start_seconds": 113.0, - "request_completions": 2, - "task_completions": 1 - } - ], - "nonempty_buckets": 104, - "request_completions_per_nonempty_bucket_mean": 19.692307692307693, - "request_completions_per_nonempty_bucket_stdev": 13.064247250148695, - "request_starts_per_nonempty_bucket_mean": 19.692307692307693, - "request_starts_per_nonempty_bucket_stdev": 13.266554914141834 - }, - "wall_time_seconds": 114.52167058299528 - } - }, - "skip_health_check": true, - "temperature": "omitted" -} diff --git a/artifacts/645-live-bench-nano/agent-aimd/README.md b/artifacts/645-live-bench-nano/agent-aimd/README.md deleted file mode 100644 index 8db50cc8e..000000000 --- a/artifacts/645-live-bench-nano/agent-aimd/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# Live AIMD benchmark: gpt-5-nano - -Runtime patches were applied only inside `/tmp/live_aimd_bench.py`; no tracked repository files were edited. - -Common settings: -- provider: `nvidia-internal` -- model: `openai/openai/gpt-5-nano` -- `skip_health_check=True` -- temperature omitted from `ChatCompletionInferenceParams` -- `DATA_DESIGNER_ASYNC_ENGINE=1` and `DATA_DESIGNER_ASYNC_TRACE=1` -- shared `InMemoryAdmissionEventSink` passed to request admission, model request executor, and async scheduler - -| Scenario | Rows | LLM cols | Expected requests | Wall time (s) | Success/failure | Limit ramp | Max in-flight | Max waiters | Cap enforced | Rate limits | -|---|---:|---:|---:|---:|---|---|---:|---:|---|---:| -| `aimd_rows48_cols3_cap6_initial2` | 48 | 3 | 144 | 39.863 | 144/0 | [2, 3, 4, 5, 6] | 6 | 34 | True | 0 | -| `aimd_rows64_cols2_cap8_initial1` | 64 | 2 | 128 | 38.998 | 128/0 | [1, 2, 3, 4, 5, 6, 7, 8] | 8 | 31 | True | 0 | - -Artifacts per scenario: -- `timeline.jsonl`: merged scheduler and request timeline, sorted by monotonic capture time and event sequence -- `request_events.jsonl`: request-admission and model-request events using `event_kind` and `pressure_snapshot` -- `monitor_samples.jsonl`: periodic pressure snapshots while the preview ran -- `task_traces.json` and `task_traces.csv`: async scheduler task traces from `DATA_DESIGNER_ASYNC_TRACE=1` -- `summary.json`: scenario-level rollup including limit changes, final pressure, event counts, and cap validation - -Notes: -- Both scenarios completed without provider failures or rate limits. -- Observed request in-flight counts never exceeded `max_parallel_requests`. -- Console model-usage logs reported 128 successful requests / 4608 total tokens for the 64x2 run and 144 successful requests / 5184 total tokens for the 48x3 run. diff --git a/artifacts/645-live-bench-nano/agent-aimd/combined_summary.json b/artifacts/645-live-bench-nano/agent-aimd/combined_summary.json deleted file mode 100644 index 00ae89034..000000000 --- a/artifacts/645-live-bench-nano/agent-aimd/combined_summary.json +++ /dev/null @@ -1,906 +0,0 @@ -{ - "benchmark_lane": "agent-aimd", - "env": { - "DATA_DESIGNER_ASYNC_ENGINE": "1", - "DATA_DESIGNER_ASYNC_TRACE": "1" - }, - "model_name": "openai/openai/gpt-5-nano", - "provider": "nvidia-internal", - "scenario_count": 2, - "scenarios": [ - { - "artifacts": { - "monitor_samples_jsonl": "artifacts/645-live-bench-nano/agent-aimd/aimd_rows48_cols3_cap6_initial2/monitor_samples.jsonl", - "request_events_jsonl": "artifacts/645-live-bench-nano/agent-aimd/aimd_rows48_cols3_cap6_initial2/request_events.jsonl", - "summary_json": "artifacts/645-live-bench-nano/agent-aimd/aimd_rows48_cols3_cap6_initial2/summary.json", - "task_traces_csv": "artifacts/645-live-bench-nano/agent-aimd/aimd_rows48_cols3_cap6_initial2/task_traces.csv", - "task_traces_json": "artifacts/645-live-bench-nano/agent-aimd/aimd_rows48_cols3_cap6_initial2/task_traces.json", - "timeline_jsonl": "artifacts/645-live-bench-nano/agent-aimd/aimd_rows48_cols3_cap6_initial2/timeline.jsonl" - }, - "cap_enforced": true, - "columns": 3, - "env": { - "DATA_DESIGNER_ASYNC_ENGINE": "1", - "DATA_DESIGNER_ASYNC_TRACE": "1" - }, - "error": null, - "expected_requests": 144, - "final_pressure": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 173652.671785458, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 6, - "effective_max": 6, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 1022, - "waiters": 0 - }, - "increase_after_successes": 8, - "initial_limit": 2, - "limit_events": [ - { - "captured_at_monotonic": 173619.239310541, - "captured_correlation": { - "row_group": 0, - "run_id": "run-ad4db4c019124c3ab44ac891b014b5e0", - "scheduling_group_identity_hash": "0380441d1e130774", - "scheduling_group_kind": "model", - "task_column": "nano_col_2", - "task_execution_id": "task-exec-d7cf3f1fce10470a83b038dc53446999", - "task_type": "cell" - }, - "diagnostics": { - "current": 3, - "previous": 2 - }, - "event_kind": "request_limit_increased", - "pressure_snapshot": { - "active_lease_count": 1, - "blocked_until_monotonic": null, - "captured_at": 173619.239297208, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 3, - "effective_max": 6, - "in_flight_count": 1, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 136, - "waiters": 34 - }, - "reason_or_outcome": null, - "request_attempt_id": null, - "request_group_key": null, - "request_lease_id": null, - "request_resource_key": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 136, - "stream": "request" - }, - { - "captured_at_monotonic": 173622.440582583, - "captured_correlation": { - "row_group": 0, - "run_id": "run-ad4db4c019124c3ab44ac891b014b5e0", - "scheduling_group_identity_hash": "0380441d1e130774", - "scheduling_group_kind": "model", - "task_column": "nano_col_2", - "task_execution_id": "task-exec-4d163792b3624641934846bee803d6e0", - "task_type": "cell" - }, - "diagnostics": { - "current": 4, - "previous": 3 - }, - "event_kind": "request_limit_increased", - "pressure_snapshot": { - "active_lease_count": 2, - "blocked_until_monotonic": null, - "captured_at": 173622.440576166, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 4, - "effective_max": 6, - "in_flight_count": 2, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 196, - "waiters": 33 - }, - "reason_or_outcome": null, - "request_attempt_id": null, - "request_group_key": null, - "request_lease_id": null, - "request_resource_key": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 196, - "stream": "request" - }, - { - "captured_at_monotonic": 173625.76298125, - "captured_correlation": { - "row_group": 0, - "run_id": "run-ad4db4c019124c3ab44ac891b014b5e0", - "scheduling_group_identity_hash": "0380441d1e130774", - "scheduling_group_kind": "model", - "task_column": "nano_col_2", - "task_execution_id": "task-exec-d1fdb0d3c48e4d30a51a0b9e962a9133", - "task_type": "cell" - }, - "diagnostics": { - "current": 5, - "previous": 4 - }, - "event_kind": "request_limit_increased", - "pressure_snapshot": { - "active_lease_count": 3, - "blocked_until_monotonic": null, - "captured_at": 173625.762971083, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 5, - "effective_max": 6, - "in_flight_count": 3, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 256, - "waiters": 32 - }, - "reason_or_outcome": null, - "request_attempt_id": null, - "request_group_key": null, - "request_lease_id": null, - "request_resource_key": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 256, - "stream": "request" - }, - { - "captured_at_monotonic": 173627.23577875, - "captured_correlation": { - "row_group": 0, - "run_id": "run-ad4db4c019124c3ab44ac891b014b5e0", - "scheduling_group_identity_hash": "0380441d1e130774", - "scheduling_group_kind": "model", - "task_column": "nano_col_2", - "task_execution_id": "task-exec-8fcdc3e9b33048439786b6dce6fa597f", - "task_type": "cell" - }, - "diagnostics": { - "current": 6, - "previous": 5 - }, - "event_kind": "request_limit_increased", - "pressure_snapshot": { - "active_lease_count": 4, - "blocked_until_monotonic": null, - "captured_at": 173627.235774625, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 6, - "effective_max": 6, - "in_flight_count": 4, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 316, - "waiters": 31 - }, - "reason_or_outcome": null, - "request_attempt_id": null, - "request_group_key": null, - "request_lease_id": null, - "request_resource_key": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 316, - "stream": "request" - }, - { - "captured_at_monotonic": 173627.235785166, - "captured_correlation": { - "row_group": 0, - "run_id": "run-ad4db4c019124c3ab44ac891b014b5e0", - "scheduling_group_identity_hash": "0380441d1e130774", - "scheduling_group_kind": "model", - "task_column": "nano_col_2", - "task_execution_id": "task-exec-8fcdc3e9b33048439786b6dce6fa597f", - "task_type": "cell" - }, - "diagnostics": {}, - "event_kind": "request_fully_recovered", - "pressure_snapshot": { - "active_lease_count": 4, - "blocked_until_monotonic": null, - "captured_at": 173627.235782583, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 6, - "effective_max": 6, - "in_flight_count": 4, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 317, - "waiters": 31 - }, - "reason_or_outcome": null, - "request_attempt_id": null, - "request_group_key": null, - "request_lease_id": null, - "request_resource_key": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 317, - "stream": "request" - } - ], - "max_observed_current_limit": 6, - "max_observed_in_flight": 6, - "max_observed_waiters": 34, - "max_parallel_requests": 6, - "model_name": "openai/openai/gpt-5-nano", - "model_usage": { - "column_profiles": null, - "column_statistics": [ - { - "column_name": "nano_col_1", - "column_type": "llm-text", - "input_tokens_mean": 15.0, - "input_tokens_median": 15.0, - "input_tokens_stddev": 0.0, - "num_null": 0, - "num_records": 48, - "num_unique": 1, - "output_tokens_mean": 0.0, - "output_tokens_median": 0.0, - "output_tokens_stddev": 0.0, - "pyarrow_dtype": "string", - "simple_dtype": "string" - }, - { - "column_name": "nano_col_2", - "column_type": "llm-text", - "input_tokens_mean": 15.0, - "input_tokens_median": 15.0, - "input_tokens_stddev": 0.0, - "num_null": 0, - "num_records": 48, - "num_unique": 1, - "output_tokens_mean": 0.0, - "output_tokens_median": 0.0, - "output_tokens_stddev": 0.0, - "pyarrow_dtype": "string", - "simple_dtype": "string" - }, - { - "column_name": "nano_col_3", - "column_type": "llm-text", - "input_tokens_mean": 15.0, - "input_tokens_median": 15.0, - "input_tokens_stddev": 0.0, - "num_null": 0, - "num_records": 48, - "num_unique": 1, - "output_tokens_mean": 0.0, - "output_tokens_median": 0.0, - "output_tokens_stddev": 0.0, - "pyarrow_dtype": "string", - "simple_dtype": "string" - } - ], - "num_records": 48, - "side_effect_column_names": [ - "_internal_row_id" - ], - "target_num_records": 48 - }, - "observed_limits": [ - 2, - 3, - 4, - 5, - 6 - ], - "provider": "nvidia-internal", - "request_event_counts": { - "model_request_completed": 144, - "model_request_started": 144, - "request_effective_cap_changed": 1, - "request_fully_recovered": 1, - "request_lease_acquired": 144, - "request_lease_released": 144, - "request_limit_increased": 4, - "request_queue_drained": 3, - "request_queue_formed": 3, - "request_resource_registered": 1, - "request_wait_completed": 144, - "request_wait_started": 144 - }, - "rows_completed": 48, - "rows_requested": 48, - "scenario": "aimd_rows48_cols3_cap6_initial2", - "scheduler_event_counts": { - "dependency_ready": 145, - "group_capped": 108, - "queue_drained": 1, - "ready_enqueued": 145, - "selected": 145, - "task_completed": 145, - "task_lease_acquired": 145, - "task_lease_released": 145, - "worker_spawned": 145 - }, - "skip_health_check": true, - "success": true, - "task_trace_count": 145, - "temperature_omitted": true, - "wall_time_seconds": 39.862907250004355 - }, - { - "artifacts": { - "monitor_samples_jsonl": "artifacts/645-live-bench-nano/agent-aimd/aimd_rows64_cols2_cap8_initial1/monitor_samples.jsonl", - "request_events_jsonl": "artifacts/645-live-bench-nano/agent-aimd/aimd_rows64_cols2_cap8_initial1/request_events.jsonl", - "summary_json": "artifacts/645-live-bench-nano/agent-aimd/aimd_rows64_cols2_cap8_initial1/summary.json", - "task_traces_csv": "artifacts/645-live-bench-nano/agent-aimd/aimd_rows64_cols2_cap8_initial1/task_traces.csv", - "task_traces_json": "artifacts/645-live-bench-nano/agent-aimd/aimd_rows64_cols2_cap8_initial1/task_traces.json", - "timeline_jsonl": "artifacts/645-live-bench-nano/agent-aimd/aimd_rows64_cols2_cap8_initial1/timeline.jsonl" - }, - "cap_enforced": true, - "columns": 2, - "env": { - "DATA_DESIGNER_ASYNC_ENGINE": "1", - "DATA_DESIGNER_ASYNC_TRACE": "1" - }, - "error": null, - "expected_requests": 128, - "final_pressure": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 173607.557462708, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 8, - "effective_max": 8, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 911, - "waiters": 0 - }, - "increase_after_successes": 8, - "initial_limit": 1, - "limit_events": [ - { - "captured_at_monotonic": 173577.217782375, - "captured_correlation": { - "row_group": 0, - "run_id": "run-2ba0bf5f1b9b4dfba9d251f8c5e907a8", - "scheduling_group_identity_hash": "0380441d1e130774", - "scheduling_group_kind": "model", - "task_column": "nano_col_2", - "task_execution_id": "task-exec-a1910513d8d7421a83b7baffc2a86025", - "task_type": "cell" - }, - "diagnostics": { - "current": 2, - "previous": 1 - }, - "event_kind": "request_limit_increased", - "pressure_snapshot": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 173577.217771291, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 2, - "effective_max": 8, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 123, - "waiters": 31 - }, - "reason_or_outcome": null, - "request_attempt_id": null, - "request_group_key": null, - "request_lease_id": null, - "request_resource_key": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 123, - "stream": "request" - }, - { - "captured_at_monotonic": 173582.624881, - "captured_correlation": { - "row_group": 0, - "run_id": "run-2ba0bf5f1b9b4dfba9d251f8c5e907a8", - "scheduling_group_identity_hash": "0380441d1e130774", - "scheduling_group_kind": "model", - "task_column": "nano_col_2", - "task_execution_id": "task-exec-fa9c99d412844f30aea41507c10b2095", - "task_type": "cell" - }, - "diagnostics": { - "current": 3, - "previous": 2 - }, - "event_kind": "request_limit_increased", - "pressure_snapshot": { - "active_lease_count": 1, - "blocked_until_monotonic": null, - "captured_at": 173582.624876333, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 3, - "effective_max": 8, - "in_flight_count": 1, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 183, - "waiters": 30 - }, - "reason_or_outcome": null, - "request_attempt_id": null, - "request_group_key": null, - "request_lease_id": null, - "request_resource_key": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 183, - "stream": "request" - }, - { - "captured_at_monotonic": 173587.410946791, - "captured_correlation": { - "row_group": 0, - "run_id": "run-2ba0bf5f1b9b4dfba9d251f8c5e907a8", - "scheduling_group_identity_hash": "0380441d1e130774", - "scheduling_group_kind": "model", - "task_column": "nano_col_2", - "task_execution_id": "task-exec-53577fb2f69d464dbe6683cd90abad56", - "task_type": "cell" - }, - "diagnostics": { - "current": 4, - "previous": 3 - }, - "event_kind": "request_limit_increased", - "pressure_snapshot": { - "active_lease_count": 2, - "blocked_until_monotonic": null, - "captured_at": 173587.4109345, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 4, - "effective_max": 8, - "in_flight_count": 2, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 243, - "waiters": 29 - }, - "reason_or_outcome": null, - "request_attempt_id": null, - "request_group_key": null, - "request_lease_id": null, - "request_resource_key": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 243, - "stream": "request" - }, - { - "captured_at_monotonic": 173589.729611708, - "captured_correlation": { - "row_group": 0, - "run_id": "run-2ba0bf5f1b9b4dfba9d251f8c5e907a8", - "scheduling_group_identity_hash": "0380441d1e130774", - "scheduling_group_kind": "model", - "task_column": "nano_col_2", - "task_execution_id": "task-exec-43b228ef4ad14db89437504a2128a0e2", - "task_type": "cell" - }, - "diagnostics": { - "current": 5, - "previous": 4 - }, - "event_kind": "request_limit_increased", - "pressure_snapshot": { - "active_lease_count": 3, - "blocked_until_monotonic": null, - "captured_at": 173589.729607333, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 5, - "effective_max": 8, - "in_flight_count": 3, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 303, - "waiters": 28 - }, - "reason_or_outcome": null, - "request_attempt_id": null, - "request_group_key": null, - "request_lease_id": null, - "request_resource_key": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 303, - "stream": "request" - }, - { - "captured_at_monotonic": 173591.56972375, - "captured_correlation": { - "row_group": 0, - "run_id": "run-2ba0bf5f1b9b4dfba9d251f8c5e907a8", - "scheduling_group_identity_hash": "f642ec0af806976e", - "scheduling_group_kind": "model", - "task_column": "nano_col_1", - "task_execution_id": "task-exec-c4d419ffa902437888efe84607449e7c", - "task_type": "cell" - }, - "diagnostics": { - "current": 6, - "previous": 5 - }, - "event_kind": "request_limit_increased", - "pressure_snapshot": { - "active_lease_count": 4, - "blocked_until_monotonic": null, - "captured_at": 173591.569718458, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 6, - "effective_max": 8, - "in_flight_count": 4, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 363, - "waiters": 27 - }, - "reason_or_outcome": null, - "request_attempt_id": null, - "request_group_key": null, - "request_lease_id": null, - "request_resource_key": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 363, - "stream": "request" - }, - { - "captured_at_monotonic": 173593.409727916, - "captured_correlation": { - "row_group": 0, - "run_id": "run-2ba0bf5f1b9b4dfba9d251f8c5e907a8", - "scheduling_group_identity_hash": "f642ec0af806976e", - "scheduling_group_kind": "model", - "task_column": "nano_col_1", - "task_execution_id": "task-exec-3acb666ce8b44116b6eaa2f1283257ab", - "task_type": "cell" - }, - "diagnostics": { - "current": 7, - "previous": 6 - }, - "event_kind": "request_limit_increased", - "pressure_snapshot": { - "active_lease_count": 5, - "blocked_until_monotonic": null, - "captured_at": 173593.409720083, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 7, - "effective_max": 8, - "in_flight_count": 5, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 423, - "waiters": 26 - }, - "reason_or_outcome": null, - "request_attempt_id": null, - "request_group_key": null, - "request_lease_id": null, - "request_resource_key": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 423, - "stream": "request" - }, - { - "captured_at_monotonic": 173594.760791291, - "captured_correlation": { - "row_group": 0, - "run_id": "run-2ba0bf5f1b9b4dfba9d251f8c5e907a8", - "scheduling_group_identity_hash": "0380441d1e130774", - "scheduling_group_kind": "model", - "task_column": "nano_col_2", - "task_execution_id": "task-exec-a8ff7ba0c68f450dabf06dea4aa89b81", - "task_type": "cell" - }, - "diagnostics": { - "current": 8, - "previous": 7 - }, - "event_kind": "request_limit_increased", - "pressure_snapshot": { - "active_lease_count": 6, - "blocked_until_monotonic": null, - "captured_at": 173594.76078525, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 8, - "effective_max": 8, - "in_flight_count": 6, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 483, - "waiters": 25 - }, - "reason_or_outcome": null, - "request_attempt_id": null, - "request_group_key": null, - "request_lease_id": null, - "request_resource_key": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 483, - "stream": "request" - }, - { - "captured_at_monotonic": 173594.760798458, - "captured_correlation": { - "row_group": 0, - "run_id": "run-2ba0bf5f1b9b4dfba9d251f8c5e907a8", - "scheduling_group_identity_hash": "0380441d1e130774", - "scheduling_group_kind": "model", - "task_column": "nano_col_2", - "task_execution_id": "task-exec-a8ff7ba0c68f450dabf06dea4aa89b81", - "task_type": "cell" - }, - "diagnostics": {}, - "event_kind": "request_fully_recovered", - "pressure_snapshot": { - "active_lease_count": 6, - "blocked_until_monotonic": null, - "captured_at": 173594.760795416, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 8, - "effective_max": 8, - "in_flight_count": 6, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 484, - "waiters": 25 - }, - "reason_or_outcome": null, - "request_attempt_id": null, - "request_group_key": null, - "request_lease_id": null, - "request_resource_key": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 484, - "stream": "request" - } - ], - "max_observed_current_limit": 8, - "max_observed_in_flight": 8, - "max_observed_waiters": 31, - "max_parallel_requests": 8, - "model_name": "openai/openai/gpt-5-nano", - "model_usage": { - "column_profiles": null, - "column_statistics": [ - { - "column_name": "nano_col_1", - "column_type": "llm-text", - "input_tokens_mean": 15.0, - "input_tokens_median": 15.0, - "input_tokens_stddev": 0.0, - "num_null": 0, - "num_records": 64, - "num_unique": 1, - "output_tokens_mean": 0.0, - "output_tokens_median": 0.0, - "output_tokens_stddev": 0.0, - "pyarrow_dtype": "string", - "simple_dtype": "string" - }, - { - "column_name": "nano_col_2", - "column_type": "llm-text", - "input_tokens_mean": 15.0, - "input_tokens_median": 15.0, - "input_tokens_stddev": 0.0, - "num_null": 0, - "num_records": 64, - "num_unique": 1, - "output_tokens_mean": 0.0, - "output_tokens_median": 0.0, - "output_tokens_stddev": 0.0, - "pyarrow_dtype": "string", - "simple_dtype": "string" - } - ], - "num_records": 64, - "side_effect_column_names": [ - "_internal_row_id" - ], - "target_num_records": 64 - }, - "observed_limits": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ], - "provider": "nvidia-internal", - "request_event_counts": { - "model_request_completed": 128, - "model_request_started": 128, - "request_effective_cap_changed": 1, - "request_fully_recovered": 1, - "request_lease_acquired": 128, - "request_lease_released": 128, - "request_limit_increased": 7, - "request_queue_drained": 2, - "request_queue_formed": 2, - "request_resource_registered": 1, - "request_wait_completed": 128, - "request_wait_started": 128 - }, - "rows_completed": 64, - "rows_requested": 64, - "scenario": "aimd_rows64_cols2_cap8_initial1", - "scheduler_event_counts": { - "dependency_ready": 129, - "group_capped": 96, - "queue_drained": 1, - "ready_enqueued": 129, - "selected": 129, - "task_completed": 129, - "task_lease_acquired": 129, - "task_lease_released": 129, - "worker_spawned": 129 - }, - "skip_health_check": true, - "success": true, - "task_trace_count": 129, - "temperature_omitted": true, - "wall_time_seconds": 38.99835645899293 - } - ], - "skip_health_check": true, - "temperature_omitted": true -} diff --git a/artifacts/645-live-bench-nano/agent-bottleneck/README.md b/artifacts/645-live-bench-nano/agent-bottleneck/README.md deleted file mode 100644 index 2422dcc2a..000000000 --- a/artifacts/645-live-bench-nano/agent-bottleneck/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# Agent Bottleneck Live Benchmark - -Model: `openai/openai/gpt-5-nano` -Provider: `nvidia-internal` -Temperature: omitted -Health check: skipped - -Note: exact model returned `not_found` for every model request in these runs; artifacts still capture admission behavior up to the provider failure boundary. - -## request_bottleneck_rows64_cap2 -- Rows requested/result: 64 / 0 -- max_parallel_requests: 2; observed max in-flight: 2; cap enforced: True -- Wait p50/p95/max: 1.823871 / 3.294706 / 3.412188 sec -- Max waiters: 62; scheduler group_capped/admission_blocked: 0 / 0 -- Wall time: 4.241 sec; request successes/failed: 0 / 64; outcomes: `{'not_found': 64}` -- Summary: `/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/request_bottleneck_rows64_cap2/summary.json` - -## narrow_downstream_rows40_cap1 -- Rows requested/result: 40 / 0 -- max_parallel_requests: 1; observed max in-flight: 1; cap enforced: True -- Wait p50/p95/max: 2.060097 / 3.858477 / 4.058885 sec -- Max waiters: 39; scheduler group_capped/admission_blocked: 0 / 0 -- Wall time: 4.667 sec; request successes/failed: 0 / 40; outcomes: `{'not_found': 40}` -- Summary: `/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/narrow_downstream_rows40_cap1/summary.json` - -## heavy_fast_rows32_cap8 -- Rows requested/result: 32 / 0 -- max_parallel_requests: 8; observed max in-flight: 8; cap enforced: True -- Wait p50/p95/max: 0.242845 / 0.434496 / 0.473193 sec -- Max waiters: 24; scheduler group_capped/admission_blocked: 0 / 0 -- Wall time: 1.336 sec; request successes/failed: 0 / 32; outcomes: `{'not_found': 32}` -- Summary: `/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/heavy_fast_rows32_cap8/summary.json` diff --git a/artifacts/645-live-bench-nano/agent-bottleneck/README_mixed.md b/artifacts/645-live-bench-nano/agent-bottleneck/README_mixed.md deleted file mode 100644 index 96904bcdc..000000000 --- a/artifacts/645-live-bench-nano/agent-bottleneck/README_mixed.md +++ /dev/null @@ -1,27 +0,0 @@ -# Mixed Buffer Live Benchmarks - -No model fallback was used. Initial integrate-endpoint attempt failed with gpt-5.5 not_found; final runs used configured nvidia-internal endpoint. - -Previous small-run summary: `/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/combined_summary.json` - -## mixed_rows512_buf256_1024gens -- Rows / expected model generations / observed completions: 512 / 1024 / 1024 -- Buffer size: 256; wall time: 264.457 sec; result rows: 512 -- Outcomes: `{'openai/openai/gpt-5-nano': {'success': 512}, 'openai/openai/gpt-5.5': {'success': 512}}` -- Max in-flight: `{'openai/openai/gpt-5-nano': 7, 'openai/openai/gpt-5.5': 8}` -- Max waiters: `{'openai/openai/gpt-5-nano': 1, 'openai/openai/gpt-5.5': 248}` -- Wait p95/max by model: `{'openai/openai/gpt-5-nano': {'p50': 0.000496, 'p95': 0.00113, 'max': 0.005292}, 'openai/openai/gpt-5.5': {'p50': 119.00833, 'p95': 129.106918, 'max': 131.423565}}` -- Upstream-to-downstream idle p95/max: 0.111947 / 0.356167 sec -- Traffic shape: `{'openai/openai/gpt-5.5': {'active_seconds': 224, 'zero_bins_inside_active_window': 33, 'max_started_per_second': 8, 'mean_started_per_second': 1.992, 'burst_ratio': 4.016, 'interpretation': 'waves'}, 'openai/openai/gpt-5-nano': {'active_seconds': 232, 'zero_bins_inside_active_window': 27, 'max_started_per_second': 7, 'mean_started_per_second': 1.977, 'burst_ratio': 3.541, 'interpretation': 'waves'}}` -- Summary: `/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf256_1024gens/summary.json` - -## mixed_rows512_buf32_1024gens -- Rows / expected model generations / observed completions: 512 / 1024 / 1024 -- Buffer size: 32; wall time: 259.315 sec; result rows: 512 -- Outcomes: `{'openai/openai/gpt-5-nano': {'success': 512}, 'openai/openai/gpt-5.5': {'success': 512}}` -- Max in-flight: `{'openai/openai/gpt-5-nano': 9, 'openai/openai/gpt-5.5': 8}` -- Max waiters: `{'openai/openai/gpt-5-nano': 1, 'openai/openai/gpt-5.5': 88}` -- Wait p95/max by model: `{'openai/openai/gpt-5-nano': {'max': 0.001512, 'p50': 0.000276, 'p95': 0.000618}, 'openai/openai/gpt-5.5': {'max': 45.718323, 'p50': 31.02182, 'p95': 39.684837}}` -- Upstream-to-downstream idle p95/max: 0.002748 / 0.028367 sec -- Traffic shape: `{'openai/openai/gpt-5-nano': {'active_seconds': 220, 'burst_ratio': 2.412, 'interpretation': 'waves', 'max_started_per_second': 5, 'mean_started_per_second': 2.073, 'zero_bins_inside_active_window': 27}, 'openai/openai/gpt-5.5': {'active_seconds': 217, 'burst_ratio': 3.828, 'interpretation': 'waves', 'max_started_per_second': 8, 'mean_started_per_second': 2.09, 'zero_bins_inside_active_window': 28}}` -- Summary: `/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf32_1024gens/summary.json` diff --git a/artifacts/645-live-bench-nano/agent-bottleneck/combined_mixed_summary.json b/artifacts/645-live-bench-nano/agent-bottleneck/combined_mixed_summary.json deleted file mode 100644 index 8fc843a3a..000000000 --- a/artifacts/645-live-bench-nano/agent-bottleneck/combined_mixed_summary.json +++ /dev/null @@ -1,369 +0,0 @@ -{ - "created_at_epoch": 1778787927.324943, - "notes": [ - "Previous smaller bottleneck runs are preserved separately in combined_summary.json.", - "Mixed runs use exact upstream openai/openai/gpt-5.5 and downstream openai/openai/gpt-5-nano with temperature omitted and skip_health_check=True.", - "Initial mixed attempt against https://integrate.api.nvidia.com/v1 returned not_found for gpt-5.5; rerun used configured nvidia-internal endpoint https://inference-api.nvidia.com/v1 and exact requested models succeeded. No model fallback was used." - ], - "previous_small_runs_location": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/combined_summary.json", - "run_class": "final mixed 1024+ generation scale", - "scenarios": [ - { - "buffer_size": 256, - "cap_enforced_by_model": { - "openai/openai/gpt-5-nano": true, - "openai/openai/gpt-5.5": true - }, - "dataset_path": "None", - "expected_model_generations": 1024, - "failures": [], - "final_pressure_by_model": { - "openai/openai/gpt-5-nano": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 174420.160102208, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 16, - "effective_max": 16, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 7210, - "waiters": 0 - }, - "openai/openai/gpt-5.5": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 174418.987495666, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 8, - "effective_max": 8, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5.5", - "provider_name": "nvidia-internal" - }, - "sequence": 7199, - "waiters": 0 - } - }, - "max_inflight_by_model": { - "openai/openai/gpt-5-nano": 7, - "openai/openai/gpt-5.5": 8 - }, - "max_waiters_by_model": { - "openai/openai/gpt-5-nano": 1, - "openai/openai/gpt-5.5": 248 - }, - "model_request_outcomes": { - "openai/openai/gpt-5-nano": { - "success": 512 - }, - "openai/openai/gpt-5.5": { - "success": 512 - } - }, - "models": { - "downstream_fast": { - "alias": "gpt-5-nano-fast", - "max_parallel_requests": 16, - "max_tokens": 64, - "model": "openai/openai/gpt-5-nano" - }, - "upstream_heavy": { - "alias": "gpt-5.5-heavy", - "max_parallel_requests": 8, - "max_tokens": 128, - "model": "openai/openai/gpt-5.5" - } - }, - "observed_model_request_completed": 1024, - "paths": { - "request_events": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf256_1024gens/request_events.jsonl", - "summary": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf256_1024gens/summary.json", - "task_traces_csv": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf256_1024gens/task_traces.csv", - "task_traces_json": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf256_1024gens/task_traces.json", - "timeline": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf256_1024gens/timeline.jsonl", - "traffic_flow_csv": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf256_1024gens/traffic_flow.csv", - "traffic_flow_json": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf256_1024gens/traffic_flow.json" - }, - "provider": "nvidia-internal", - "request_event_counts": { - "model_request_completed": 1024, - "model_request_started": 1024, - "request_effective_cap_changed": 2, - "request_lease_acquired": 1024, - "request_lease_released": 1024, - "request_queue_drained": 18, - "request_queue_formed": 18, - "request_resource_registered": 2, - "request_wait_completed": 1024, - "request_wait_started": 1024 - }, - "request_wait_seconds_by_model": { - "openai/openai/gpt-5-nano": { - "max": 0.005292, - "p50": 0.000496, - "p95": 0.00113 - }, - "openai/openai/gpt-5.5": { - "max": 131.423565, - "p50": 119.00833, - "p95": 129.106918 - } - }, - "result_columns": [ - "case_id", - "source", - "sink", - "constraint", - "heavy_upstream", - "fast_downstream" - ], - "result_rows": 512, - "rows_requested": 512, - "scenario": "mixed_rows512_buf256_1024gens", - "scenario_dir": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf256_1024gens", - "scheduler_admission_blocked_count": 472, - "scheduler_event_counts": { - "admission_blocked": 472, - "dependency_ready": 1026, - "queue_drained": 256, - "ready_enqueued": 1026, - "selected": 1026, - "task_completed": 1026, - "task_lease_acquired": 1026, - "task_lease_released": 1026, - "worker_spawned": 1026 - }, - "scheduler_group_capped_count": 0, - "skip_health_check": true, - "task_traces": { - "by_column": { - "case_id": 2, - "fast_downstream": 512, - "heavy_upstream": 512 - }, - "count": 1026, - "status_counts": { - "ok": 1026 - } - }, - "temperature_omitted": true, - "traffic_shape": { - "openai/openai/gpt-5-nano": { - "active_seconds": 232, - "burst_ratio": 3.541, - "interpretation": "waves", - "max_started_per_second": 7, - "mean_started_per_second": 1.977, - "zero_bins_inside_active_window": 27 - }, - "openai/openai/gpt-5.5": { - "active_seconds": 224, - "burst_ratio": 4.016, - "interpretation": "waves", - "max_started_per_second": 8, - "mean_started_per_second": 1.992, - "zero_bins_inside_active_window": 33 - } - }, - "upstream_to_downstream_idle_seconds": { - "max": 0.356167, - "p50": 0.053224, - "p95": 0.111947 - }, - "wall_time_seconds": 264.457 - }, - { - "buffer_size": 32, - "cap_enforced_by_model": { - "openai/openai/gpt-5-nano": true, - "openai/openai/gpt-5.5": true - }, - "dataset_path": "None", - "expected_model_generations": 1024, - "failures": [], - "final_pressure_by_model": { - "openai/openai/gpt-5-nano": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 174146.476839041, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 16, - "effective_max": 16, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 7210, - "waiters": 0 - }, - "openai/openai/gpt-5.5": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 174137.719422166, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 8, - "effective_max": 8, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5.5", - "provider_name": "nvidia-internal" - }, - "sequence": 7199, - "waiters": 0 - } - }, - "max_inflight_by_model": { - "openai/openai/gpt-5-nano": 9, - "openai/openai/gpt-5.5": 8 - }, - "max_waiters_by_model": { - "openai/openai/gpt-5-nano": 1, - "openai/openai/gpt-5.5": 88 - }, - "model_request_outcomes": { - "openai/openai/gpt-5-nano": { - "success": 512 - }, - "openai/openai/gpt-5.5": { - "success": 512 - } - }, - "models": { - "downstream_fast": { - "alias": "gpt-5-nano-fast", - "max_parallel_requests": 16, - "max_tokens": 64, - "model": "openai/openai/gpt-5-nano" - }, - "upstream_heavy": { - "alias": "gpt-5.5-heavy", - "max_parallel_requests": 8, - "max_tokens": 128, - "model": "openai/openai/gpt-5.5" - } - }, - "observed_model_request_completed": 1024, - "paths": { - "request_events": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf32_1024gens/request_events.jsonl", - "summary": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf32_1024gens/summary.json", - "task_traces_csv": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf32_1024gens/task_traces.csv", - "task_traces_json": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf32_1024gens/task_traces.json", - "timeline": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf32_1024gens/timeline.jsonl", - "traffic_flow_csv": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf32_1024gens/traffic_flow.csv", - "traffic_flow_json": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf32_1024gens/traffic_flow.json" - }, - "provider": "nvidia-internal", - "request_event_counts": { - "model_request_completed": 1024, - "model_request_started": 1024, - "request_effective_cap_changed": 2, - "request_lease_acquired": 1024, - "request_lease_released": 1024, - "request_queue_drained": 18, - "request_queue_formed": 18, - "request_resource_registered": 2, - "request_wait_completed": 1024, - "request_wait_started": 1024 - }, - "request_wait_seconds_by_model": { - "openai/openai/gpt-5-nano": { - "max": 0.001512, - "p50": 0.000276, - "p95": 0.000618 - }, - "openai/openai/gpt-5.5": { - "max": 45.718323, - "p50": 31.02182, - "p95": 39.684837 - } - }, - "result_columns": [ - "case_id", - "source", - "sink", - "constraint", - "heavy_upstream", - "fast_downstream" - ], - "result_rows": 512, - "rows_requested": 512, - "scenario": "mixed_rows512_buf32_1024gens", - "scenario_dir": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/mixed_rows512_buf32_1024gens", - "scheduler_admission_blocked_count": 0, - "scheduler_event_counts": { - "dependency_ready": 1040, - "queue_drained": 542, - "ready_enqueued": 1040, - "selected": 1040, - "task_completed": 1040, - "task_lease_acquired": 1040, - "task_lease_released": 1040, - "worker_spawned": 1040 - }, - "scheduler_group_capped_count": 0, - "skip_health_check": true, - "task_traces": { - "by_column": { - "case_id": 16, - "fast_downstream": 512, - "heavy_upstream": 512 - }, - "count": 1040, - "status_counts": { - "ok": 1040 - } - }, - "temperature_omitted": true, - "traffic_shape": { - "openai/openai/gpt-5-nano": { - "active_seconds": 220, - "burst_ratio": 2.412, - "interpretation": "waves", - "max_started_per_second": 5, - "mean_started_per_second": 2.073, - "zero_bins_inside_active_window": 27 - }, - "openai/openai/gpt-5.5": { - "active_seconds": 217, - "burst_ratio": 3.828, - "interpretation": "waves", - "max_started_per_second": 8, - "mean_started_per_second": 2.09, - "zero_bins_inside_active_window": 28 - } - }, - "upstream_to_downstream_idle_seconds": { - "max": 0.028367, - "p50": 0.000646, - "p95": 0.002748 - }, - "wall_time_seconds": 259.315 - } - ] -} diff --git a/artifacts/645-live-bench-nano/agent-bottleneck/combined_summary.json b/artifacts/645-live-bench-nano/agent-bottleneck/combined_summary.json deleted file mode 100644 index 9935f8154..000000000 --- a/artifacts/645-live-bench-nano/agent-bottleneck/combined_summary.json +++ /dev/null @@ -1,297 +0,0 @@ -{ - "created_at_epoch": 1778787718.6548312, - "env": { - "DATA_DESIGNER_ASYNC_ENGINE": "1", - "DATA_DESIGNER_ASYNC_TRACE": "1" - }, - "model_name": "openai/openai/gpt-5-nano", - "notes": [ - "AdaptiveRequestAdmissionController.__init__, create_model_client, and AsyncTaskScheduler.__init__ were patched only in-process.", - "Request-event snapshots were read from event.pressure_snapshot and event kinds from event.event_kind.", - "The exact requested model returned not_found from nvidia-internal in all scenarios; rows were not reduced because this was deterministic model availability failure, not rate limiting or overload." - ], - "provider": "nvidia-internal", - "scenarios": [ - { - "artifact_dataset_path": null, - "failed_request_count": 64, - "failure_signal_count": 64, - "failures": [ - "DataDesignerGenerationError: \ud83d\uded1 ModelNotFoundError: |----------\n | Cause: The specified model 'openai/openai/gpt-5-nano' could not be found while running generation for column 'llm_note'.\n | Solution: Check that the model name is correct and supported by your model provider 'nvidia-internal' and try again.\n |----------" - ], - "max_parallel_requests": 2, - "max_tokens": 32, - "model_name": "openai/openai/gpt-5-nano", - "model_request_outcomes": { - "not_found": 64 - }, - "observed_max_active_request_leases": 2, - "observed_max_request_in_flight": 2, - "observed_max_request_waiters": 62, - "provider": "nvidia-internal", - "provider_failure_note": "All model_request_completed events had outcome=not_found; exact requested model was not available from provider, so row reduction was not attempted as a remedy.", - "request_cap_enforced": true, - "request_event_counts": { - "model_request_completed": 64, - "model_request_started": 64, - "request_effective_cap_changed": 1, - "request_lease_acquired": 64, - "request_lease_released": 64, - "request_queue_drained": 3, - "request_queue_formed": 3, - "request_resource_registered": 1, - "request_wait_completed": 64, - "request_wait_started": 64 - }, - "request_events_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/request_bottleneck_rows64_cap2/request_events.jsonl", - "request_pressure_final": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 173649.073962625, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 2, - "effective_max": 2, - "in_flight_count": 0, - "last_outcome": "provider_failure", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 457, - "waiters": 0 - }, - "request_wait_seconds": { - "max": 3.412188, - "p50": 1.823871, - "p95": 3.294706 - }, - "result_columns": [], - "result_rows": 0, - "rows_requested": 64, - "scenario": "request_bottleneck_rows64_cap2", - "scenario_dir": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/request_bottleneck_rows64_cap2", - "scheduler_admission_blocked_count": 0, - "scheduler_event_counts": { - "dependency_ready": 66, - "non_retryable_dropped": 64, - "queue_drained": 3, - "ready_enqueued": 66, - "selected": 66, - "task_completed": 66, - "task_lease_acquired": 66, - "task_lease_released": 66, - "worker_spawned": 66 - }, - "scheduler_group_capped_count": 0, - "skip_health_check": true, - "success_request_count": 0, - "summary_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/request_bottleneck_rows64_cap2/summary.json", - "task_traces": { - "by_column": {}, - "count": 0, - "duration_seconds": { - "max": null, - "p50": null, - "p95": null - } - }, - "task_traces_csv_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/request_bottleneck_rows64_cap2/task_traces.csv", - "task_traces_json_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/request_bottleneck_rows64_cap2/task_traces.json", - "temperature_omitted": true, - "timeline_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/request_bottleneck_rows64_cap2/timeline.jsonl", - "wall_time_seconds": 4.241 - }, - { - "artifact_dataset_path": null, - "failed_request_count": 40, - "failure_signal_count": 40, - "failures": [ - "DataDesignerGenerationError: \ud83d\uded1 ModelNotFoundError: |----------\n | Cause: The specified model 'openai/openai/gpt-5-nano' could not be found while running generation for column 'downstream_summary'.\n | Solution: Check that the model name is correct and supported by your model provider 'nvidia-internal' and try again.\n |----------" - ], - "max_parallel_requests": 1, - "max_tokens": 32, - "model_name": "openai/openai/gpt-5-nano", - "model_request_outcomes": { - "not_found": 40 - }, - "observed_max_active_request_leases": 1, - "observed_max_request_in_flight": 1, - "observed_max_request_waiters": 39, - "provider": "nvidia-internal", - "provider_failure_note": "All model_request_completed events had outcome=not_found; exact requested model was not available from provider, so row reduction was not attempted as a remedy.", - "request_cap_enforced": true, - "request_event_counts": { - "model_request_completed": 40, - "model_request_started": 40, - "request_effective_cap_changed": 1, - "request_lease_acquired": 40, - "request_lease_released": 40, - "request_queue_drained": 2, - "request_queue_formed": 2, - "request_resource_registered": 1, - "request_wait_completed": 40, - "request_wait_started": 40 - }, - "request_events_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/narrow_downstream_rows40_cap1/request_events.jsonl", - "request_pressure_final": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 173653.822882916, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 1, - "effective_max": 1, - "in_flight_count": 0, - "last_outcome": "provider_failure", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 287, - "waiters": 0 - }, - "request_wait_seconds": { - "max": 4.058885, - "p50": 2.060097, - "p95": 3.858477 - }, - "result_columns": [], - "result_rows": 0, - "rows_requested": 40, - "scenario": "narrow_downstream_rows40_cap1", - "scenario_dir": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/narrow_downstream_rows40_cap1", - "scheduler_admission_blocked_count": 0, - "scheduler_event_counts": { - "dependency_ready": 45, - "non_retryable_dropped": 40, - "queue_drained": 4, - "ready_enqueued": 45, - "selected": 45, - "task_completed": 45, - "task_lease_acquired": 45, - "task_lease_released": 45, - "worker_spawned": 45 - }, - "scheduler_group_capped_count": 0, - "skip_health_check": true, - "success_request_count": 0, - "summary_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/narrow_downstream_rows40_cap1/summary.json", - "task_traces": { - "by_column": {}, - "count": 0, - "duration_seconds": { - "max": null, - "p50": null, - "p95": null - } - }, - "task_traces_csv_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/narrow_downstream_rows40_cap1/task_traces.csv", - "task_traces_json_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/narrow_downstream_rows40_cap1/task_traces.json", - "temperature_omitted": true, - "timeline_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/narrow_downstream_rows40_cap1/timeline.jsonl", - "wall_time_seconds": 4.667 - }, - { - "artifact_dataset_path": null, - "failed_request_count": 32, - "failure_signal_count": 32, - "failures": [ - "DataDesignerGenerationError: \ud83d\uded1 ModelNotFoundError: |----------\n | Cause: The specified model 'openai/openai/gpt-5-nano' could not be found while running generation for column 'fast_after_prework'.\n | Solution: Check that the model name is correct and supported by your model provider 'nvidia-internal' and try again.\n |----------" - ], - "max_parallel_requests": 8, - "max_tokens": 16, - "model_name": "openai/openai/gpt-5-nano", - "model_request_outcomes": { - "not_found": 32 - }, - "observed_max_active_request_leases": 8, - "observed_max_request_in_flight": 8, - "observed_max_request_waiters": 24, - "provider": "nvidia-internal", - "provider_failure_note": "All model_request_completed events had outcome=not_found; exact requested model was not available from provider, so row reduction was not attempted as a remedy.", - "request_cap_enforced": true, - "request_event_counts": { - "model_request_completed": 32, - "model_request_started": 32, - "request_effective_cap_changed": 1, - "request_lease_acquired": 32, - "request_lease_released": 32, - "request_queue_drained": 9, - "request_queue_formed": 9, - "request_resource_registered": 1, - "request_wait_completed": 32, - "request_wait_started": 32 - }, - "request_events_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/heavy_fast_rows32_cap8/request_events.jsonl", - "request_pressure_final": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 173655.181078375, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 8, - "effective_max": 8, - "in_flight_count": 0, - "last_outcome": "provider_failure", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 245, - "waiters": 0 - }, - "request_wait_seconds": { - "max": 0.473193, - "p50": 0.242845, - "p95": 0.434496 - }, - "result_columns": [], - "result_rows": 0, - "rows_requested": 32, - "scenario": "heavy_fast_rows32_cap8", - "scenario_dir": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/heavy_fast_rows32_cap8", - "scheduler_admission_blocked_count": 0, - "scheduler_event_counts": { - "dependency_ready": 65, - "non_retryable_dropped": 32, - "queue_drained": 3, - "ready_enqueued": 65, - "selected": 65, - "task_completed": 65, - "task_lease_acquired": 65, - "task_lease_released": 65, - "worker_spawned": 65 - }, - "scheduler_group_capped_count": 0, - "skip_health_check": true, - "success_request_count": 0, - "summary_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/heavy_fast_rows32_cap8/summary.json", - "task_traces": { - "by_column": {}, - "count": 0, - "duration_seconds": { - "max": null, - "p50": null, - "p95": null - } - }, - "task_traces_csv_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/heavy_fast_rows32_cap8/task_traces.csv", - "task_traces_json_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/heavy_fast_rows32_cap8/task_traces.json", - "temperature_omitted": true, - "timeline_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-bottleneck/heavy_fast_rows32_cap8/timeline.jsonl", - "wall_time_seconds": 1.336 - } - ], - "skip_health_check": true, - "temperature_omitted": true -} diff --git a/artifacts/645-live-bench-nano/agent-cap-scale/README.md b/artifacts/645-live-bench-nano/agent-cap-scale/README.md deleted file mode 100644 index ebc8e094f..000000000 --- a/artifacts/645-live-bench-nano/agent-cap-scale/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# Live async scheduling benchmark: cap scale - -Ran two required live DataDesigner async scheduling scenarios on `openai/openai/gpt-5-nano` via `nvidia-internal` with `temperature` omitted, `skip_health_check=True`, `DATA_DESIGNER_ASYNC_ENGINE=1`, and `DATA_DESIGNER_ASYNC_TRACE=1`. - -Instrumentation used one shared `InMemoryAdmissionEventSink` and runtime monkeypatches for `AdaptiveRequestAdmissionController.__init__`, `data_designer.engine.models.clients.factory.create_model_client`, and `AsyncTaskScheduler.__init__`. - -| Scenario | Rows x cols | Buffer | Requests | Wall s | Max in-flight | Max waiters | Start mean/s | Start CV | Max start gap s | Wave score | Failures | -|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:| -| cap8_rows512_cols2_buffer32 | 512x2 | 32 | 1024 | 160.30 | 8 | 30 | 6.38 | 0.252 | 1.086 | 0.816 | 0 | -| cap8_rows512_cols2_buffer512 | 512x2 | 512 | 1024 | 167.08 | 8 | 31 | 6.14 | 0.246 | 1.091 | 0.872 | 0 | - -## Buffer comparison - -- `buffer_size=32`: 16 row groups, repeated dispatch/checkpoint waves, request start CV 0.252, wave score 0.816. -- `buffer_size=512`: 1 row group, no repeated row-group dispatch waves, request start CV 0.246, wave score 0.872. -- Cap enforcement held in both scenarios: max observed request in-flight was 8 and 8 for cap 8. -- No fallback model was used. No request rate-limit events were observed. Total failures: 0. - -## Artifacts - -- `cap8_rows512_cols2_buffer32/timeline.jsonl` -- `cap8_rows512_cols2_buffer32/request_events.jsonl` -- `cap8_rows512_cols2_buffer32/scheduler_events.jsonl` -- `cap8_rows512_cols2_buffer32/task_traces.json` and `cap8_rows512_cols2_buffer32/task_traces.csv` -- `cap8_rows512_cols2_buffer32/flow_buckets.json` -- `cap8_rows512_cols2_buffer32/summary.json` -- `cap8_rows512_cols2_buffer512/timeline.jsonl` -- `cap8_rows512_cols2_buffer512/request_events.jsonl` -- `cap8_rows512_cols2_buffer512/scheduler_events.jsonl` -- `cap8_rows512_cols2_buffer512/task_traces.json` and `cap8_rows512_cols2_buffer512/task_traces.csv` -- `cap8_rows512_cols2_buffer512/flow_buckets.json` -- `cap8_rows512_cols2_buffer512/summary.json` -- `combined_summary.json` diff --git a/artifacts/645-live-bench-nano/agent-cap-scale/combined_summary.json b/artifacts/645-live-bench-nano/agent-cap-scale/combined_summary.json deleted file mode 100644 index cc03cd844..000000000 --- a/artifacts/645-live-bench-nano/agent-cap-scale/combined_summary.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "all_caps_enforced": true, - "comparison": { - "buffer32_minus_buffer512_max_waiters": -1, - "buffer32_minus_buffer512_start_rate_cv": 0.005909466834193605, - "buffer32_minus_buffer512_wall_time_seconds": -6.777404916996602, - "buffer32_minus_buffer512_wave_score": -0.05615488622945386 - }, - "env": { - "DATA_DESIGNER_ASYNC_ENGINE": "1", - "DATA_DESIGNER_ASYNC_TRACE": "1" - }, - "fallback_used": false, - "model_requested": "openai/openai/gpt-5-nano", - "provider": "nvidia-internal", - "scenarios": [ - { - "active_bucket_peak_to_mean_after_warmup": 1.557128412537917, - "buffer_size": 32, - "cap_enforced": true, - "expected_model_generations": 1024, - "failure_count": 0, - "llm_columns": 2, - "max_observed_request_in_flight": 8, - "max_observed_request_waiters": 30, - "max_parallel_requests": 8, - "max_start_gap_seconds": 1.0862738750001881, - "model_request_completed": 1024, - "model_request_started": 1024, - "model_used": "openai/openai/gpt-5-nano", - "provider": "nvidia-internal", - "request_queue_formed_events": 9, - "request_rate_limited_events": 0, - "rows": 512, - "scenario": "cap8_rows512_cols2_buffer32", - "scheduler_group_capped_events": 1007, - "start_rate_cv_after_warmup": 0.25193792813478294, - "start_rate_mean_after_warmup": 6.380645161290323, - "start_rate_stddev_after_warmup": 1.6075265220987118, - "status": "success", - "success_count": 1024, - "summary_path": "artifacts/645-live-bench-nano/agent-cap-scale/cap8_rows512_cols2_buffer32/summary.json", - "task_trace_count": 1040, - "wait_seconds_max": 3.962501068599522e-05, - "wait_seconds_p50": 2.62709945673123e-05, - "wait_seconds_p95": 3.841470024781302e-05, - "wall_time_seconds": 160.29887850000523, - "wave_like": false, - "wave_score": 0.8155179535759258, - "zero_start_bucket_fraction_after_warmup": 0.0064516129032258064 - }, - { - "active_bucket_peak_to_mean_after_warmup": 1.6194331983805668, - "buffer_size": 512, - "cap_enforced": true, - "expected_model_generations": 1024, - "failure_count": 0, - "llm_columns": 2, - "max_observed_request_in_flight": 8, - "max_observed_request_waiters": 31, - "max_parallel_requests": 8, - "max_start_gap_seconds": 1.0914802920015063, - "model_request_completed": 1024, - "model_request_started": 1024, - "model_used": "openai/openai/gpt-5-nano", - "provider": "nvidia-internal", - "request_queue_formed_events": 9, - "request_rate_limited_events": 0, - "rows": 512, - "scenario": "cap8_rows512_cols2_buffer512", - "scheduler_group_capped_events": 985, - "start_rate_cv_after_warmup": 0.24602846130058934, - "start_rate_mean_after_warmup": 6.136645962732919, - "start_rate_stddev_after_warmup": 1.5097895637576537, - "status": "success", - "success_count": 1024, - "summary_path": "artifacts/645-live-bench-nano/agent-cap-scale/cap8_rows512_cols2_buffer512/summary.json", - "task_trace_count": 1025, - "wait_seconds_max": 3.2042007660493255e-05, - "wait_seconds_p50": 2.7874993975274265e-05, - "wait_seconds_p95": 3.188170521752909e-05, - "wall_time_seconds": 167.07628341700183, - "wave_like": false, - "wave_score": 0.8716728398053797, - "zero_start_bucket_fraction_after_warmup": 0.006211180124223602 - } - ], - "skip_health_check": true, - "temperature_omitted": true, - "total_failures": 0, - "total_model_request_completed": 2048, - "total_model_request_started": 2048 -} diff --git a/artifacts/645-live-bench-nano/agent-cap-sweep/README.md b/artifacts/645-live-bench-nano/agent-cap-sweep/README.md deleted file mode 100644 index f174fc90a..000000000 --- a/artifacts/645-live-bench-nano/agent-cap-sweep/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# GPT-5 Nano Live Cap Sweep - -Model: `openai/openai/gpt-5-nano` -Provider: `nvidia-internal` -Max tokens: `32` -Temperature: omitted -Async env: `DATA_DESIGNER_ASYNC_ENGINE=1`, `DATA_DESIGNER_ASYNC_TRACE=1` - -| Scenario | Status | Rows | Requests completed | Wall s | Max in-flight | Cap | Enforced | -|---|---:|---:|---:|---:|---:|---:|---:| -| cap2_rows40_cols2 | success | 40/40 | 80/80 | 54.33 | 2 | 2 | True | -| cap4_rows40_cols2 | success | 40/40 | 80/80 | 27.41 | 4 | 4 | True | -| cap8_rows40_cols2 | success | 40/40 | 80/80 | 16.11 | 8 | 8 | True | diff --git a/artifacts/645-live-bench-nano/agent-cap-sweep/README_final1024.md b/artifacts/645-live-bench-nano/agent-cap-sweep/README_final1024.md deleted file mode 100644 index cbc4dee68..000000000 --- a/artifacts/645-live-bench-nano/agent-cap-sweep/README_final1024.md +++ /dev/null @@ -1,13 +0,0 @@ -# GPT-5 Nano Live 1024+ Buffer Sweep - -Model: `openai/openai/gpt-5-nano` -Provider: `nvidia-internal` -Max tokens: `32` -Temperature: omitted -Async env: `DATA_DESIGNER_ASYNC_ENGINE=1`, `DATA_DESIGNER_ASYNC_TRACE=1` - -| Scenario | Status | Buffer | Rows | Requests completed | Wall s | Max in-flight | Cap | Traffic | Enforced | -|---|---:|---:|---:|---:|---:|---:|---:|---:|---:| -| final1024_cap8_buffer32_rows512_cols2 | success | 32 | 512/512 | 1024/1024 | 155.37 | 8 | 8 | steady | True | -| final1024_cap8_buffer128_rows512_cols2 | success | 128 | 512/512 | 1024/1024 | 153.96 | 8 | 8 | steady | True | -| final1024_cap8_buffer512_rows512_cols2 | success | 512 | 512/512 | 1024/1024 | 150.27 | 8 | 8 | steady | True | diff --git a/artifacts/645-live-bench-nano/agent-cap-sweep/combined_summary.json b/artifacts/645-live-bench-nano/agent-cap-sweep/combined_summary.json deleted file mode 100644 index 917a3ac11..000000000 --- a/artifacts/645-live-bench-nano/agent-cap-sweep/combined_summary.json +++ /dev/null @@ -1,269 +0,0 @@ -[ - { - "cap_enforced": true, - "env": { - "DATA_DESIGNER_ASYNC_ENGINE": "1", - "DATA_DESIGNER_ASYNC_TRACE": "1" - }, - "error": null, - "expected_llm_requests": 80, - "final_pressure": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 173639.597257, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 2, - "effective_max": 2, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 569, - "waiters": 0 - }, - "first_event_monotonic": 173586.112177833, - "last_event_monotonic": 173639.597423833, - "llm_columns": 2, - "max_observed_request_in_flight": 2, - "max_observed_scheduler_in_flight": 0, - "max_observed_waiters": 7, - "max_parallel_requests": 2, - "max_tokens": 32, - "model_name_configured": "openai/openai/gpt-5-nano", - "model_usage": { - "openai/openai/gpt-5-nano": { - "request_usage": { - "failed_requests": 0, - "successful_requests": 80, - "total_requests": 80 - }, - "requests_per_minute": 88, - "token_usage": { - "input_tokens": 2080, - "output_tokens": 2560, - "total_tokens": 4640 - }, - "tokens_per_second": 85 - } - }, - "provider": "nvidia-internal", - "request_event_count": 488, - "request_event_counts_by_kind": { - "model_request_completed": 80, - "model_request_started": 80, - "request_effective_cap_changed": 1, - "request_lease_acquired": 80, - "request_lease_released": 80, - "request_queue_drained": 3, - "request_queue_formed": 3, - "request_resource_registered": 1, - "request_wait_completed": 80, - "request_wait_started": 80 - }, - "rows_generated": 40, - "rows_requested": 40, - "scenario": "cap2_rows40_cols2", - "scheduler_event_count": 640, - "scheduler_event_counts_by_kind": { - "dependency_ready": 81, - "group_capped": 72, - "queue_drained": 1, - "ready_enqueued": 81, - "selected": 81, - "task_completed": 81, - "task_lease_acquired": 81, - "task_lease_released": 81, - "worker_spawned": 81 - }, - "skip_health_check": true, - "started_wall_time": 1778787649.100818, - "status": "success", - "task_trace_count": 81, - "temperature_omitted": true, - "wall_time_seconds": 54.3302686669922 - }, - { - "cap_enforced": true, - "env": { - "DATA_DESIGNER_ASYNC_ENGINE": "1", - "DATA_DESIGNER_ASYNC_TRACE": "1" - }, - "error": null, - "expected_llm_requests": 80, - "final_pressure": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 173667.383977333, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 4, - "effective_max": 4, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 573, - "waiters": 0 - }, - "first_event_monotonic": 173640.502204375, - "last_event_monotonic": 173667.384284208, - "llm_columns": 2, - "max_observed_request_in_flight": 4, - "max_observed_scheduler_in_flight": 0, - "max_observed_waiters": 15, - "max_parallel_requests": 4, - "max_tokens": 32, - "model_name_configured": "openai/openai/gpt-5-nano", - "model_usage": { - "openai/openai/gpt-5-nano": { - "request_usage": { - "failed_requests": 0, - "successful_requests": 80, - "total_requests": 80 - }, - "requests_per_minute": 175, - "token_usage": { - "input_tokens": 2080, - "output_tokens": 2560, - "total_tokens": 4640 - }, - "tokens_per_second": 169 - } - }, - "provider": "nvidia-internal", - "request_event_count": 492, - "request_event_counts_by_kind": { - "model_request_completed": 80, - "model_request_started": 80, - "request_effective_cap_changed": 1, - "request_lease_acquired": 80, - "request_lease_released": 80, - "request_queue_drained": 5, - "request_queue_formed": 5, - "request_resource_registered": 1, - "request_wait_completed": 80, - "request_wait_started": 80 - }, - "rows_generated": 40, - "rows_requested": 40, - "scenario": "cap4_rows40_cols2", - "scheduler_event_count": 630, - "scheduler_event_counts_by_kind": { - "dependency_ready": 81, - "group_capped": 62, - "queue_drained": 1, - "ready_enqueued": 81, - "selected": 81, - "task_completed": 81, - "task_lease_acquired": 81, - "task_lease_released": 81, - "worker_spawned": 81 - }, - "skip_health_check": true, - "started_wall_time": 1778787703.492047, - "status": "success", - "task_trace_count": 81, - "temperature_omitted": true, - "wall_time_seconds": 27.406881708011497 - }, - { - "cap_enforced": true, - "env": { - "DATA_DESIGNER_ASYNC_ENGINE": "1", - "DATA_DESIGNER_ASYNC_TRACE": "1" - }, - "error": null, - "expected_llm_requests": 80, - "final_pressure": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 173683.576781916, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 8, - "effective_max": 8, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 581, - "waiters": 0 - }, - "first_event_monotonic": 173667.980828458, - "last_event_monotonic": 173683.577060208, - "llm_columns": 2, - "max_observed_request_in_flight": 8, - "max_observed_scheduler_in_flight": 0, - "max_observed_waiters": 26, - "max_parallel_requests": 8, - "max_tokens": 32, - "model_name_configured": "openai/openai/gpt-5-nano", - "model_usage": { - "openai/openai/gpt-5-nano": { - "request_usage": { - "failed_requests": 0, - "successful_requests": 80, - "total_requests": 80 - }, - "requests_per_minute": 298, - "token_usage": { - "input_tokens": 2080, - "output_tokens": 2560, - "total_tokens": 4640 - }, - "tokens_per_second": 288 - } - }, - "provider": "nvidia-internal", - "request_event_count": 500, - "request_event_counts_by_kind": { - "model_request_completed": 80, - "model_request_started": 80, - "request_effective_cap_changed": 1, - "request_lease_acquired": 80, - "request_lease_released": 80, - "request_queue_drained": 9, - "request_queue_formed": 9, - "request_resource_registered": 1, - "request_wait_completed": 80, - "request_wait_started": 80 - }, - "rows_generated": 40, - "rows_requested": 40, - "scenario": "cap8_rows40_cols2", - "scheduler_event_count": 615, - "scheduler_event_counts_by_kind": { - "dependency_ready": 81, - "group_capped": 47, - "queue_drained": 1, - "ready_enqueued": 81, - "selected": 81, - "task_completed": 81, - "task_lease_acquired": 81, - "task_lease_released": 81, - "worker_spawned": 81 - }, - "skip_health_check": true, - "started_wall_time": 1778787730.970028, - "status": "success", - "task_trace_count": 81, - "temperature_omitted": true, - "wall_time_seconds": 16.111844333994668 - } -] diff --git a/artifacts/645-live-bench-nano/agent-cap-sweep/combined_summary_final1024.json b/artifacts/645-live-bench-nano/agent-cap-sweep/combined_summary_final1024.json deleted file mode 100644 index 76bd8c86b..000000000 --- a/artifacts/645-live-bench-nano/agent-cap-sweep/combined_summary_final1024.json +++ /dev/null @@ -1,493 +0,0 @@ -[ - { - "buffer_size": 32, - "cap_enforced": true, - "env": { - "DATA_DESIGNER_ASYNC_ENGINE": "1", - "DATA_DESIGNER_ASYNC_TRACE": "1" - }, - "error": null, - "expected_llm_requests": 1024, - "final_pressure": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 173951.761318291, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 8, - "effective_max": 8, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 7189, - "waiters": 0 - }, - "first_event_monotonic": 173797.088315333, - "last_event_monotonic": 173951.761623333, - "llm_columns": 2, - "max_observed_request_in_flight": 8, - "max_observed_scheduler_in_flight": 0, - "max_observed_waiters": 37, - "max_parallel_requests": 8, - "max_tokens": 32, - "model_name_configured": "openai/openai/gpt-5-nano", - "model_usage": { - "openai/openai/gpt-5-nano": { - "request_usage": { - "failed_requests": 0, - "successful_requests": 1024, - "total_requests": 1024 - }, - "requests_per_minute": 396, - "token_usage": { - "input_tokens": 26624, - "output_tokens": 32768, - "total_tokens": 59392 - }, - "tokens_per_second": 382 - } - }, - "provider": "nvidia-internal", - "request_event_count": 6164, - "request_event_counts_by_kind": { - "model_request_completed": 1024, - "model_request_started": 1024, - "request_effective_cap_changed": 1, - "request_lease_acquired": 1024, - "request_lease_released": 1024, - "request_queue_drained": 9, - "request_queue_formed": 9, - "request_resource_registered": 1, - "request_wait_completed": 1024, - "request_wait_started": 1024 - }, - "rows_generated": 512, - "rows_requested": 512, - "scenario": "final1024_cap8_buffer32_rows512_cols2", - "scheduler_event_count": 8287, - "scheduler_event_counts_by_kind": { - "dependency_ready": 1040, - "group_capped": 1006, - "queue_drained": 1, - "ready_enqueued": 1040, - "selected": 1040, - "task_completed": 1040, - "task_lease_acquired": 1040, - "task_lease_released": 1040, - "worker_spawned": 1040 - }, - "skip_health_check": true, - "started_wall_time": 1778787860.077785, - "status": "success", - "task_trace_count": 1040, - "temperature_omitted": true, - "traffic_shape": { - "bin_seconds": 10.0, - "bins": [ - { - "request_starts": 64, - "start_offset_seconds": 0.0 - }, - { - "request_starts": 61, - "start_offset_seconds": 10.0 - }, - { - "request_starts": 72, - "start_offset_seconds": 20.0 - }, - { - "request_starts": 76, - "start_offset_seconds": 30.0 - }, - { - "request_starts": 67, - "start_offset_seconds": 40.0 - }, - { - "request_starts": 67, - "start_offset_seconds": 50.0 - }, - { - "request_starts": 62, - "start_offset_seconds": 60.0 - }, - { - "request_starts": 72, - "start_offset_seconds": 70.0 - }, - { - "request_starts": 73, - "start_offset_seconds": 80.0 - }, - { - "request_starts": 72, - "start_offset_seconds": 90.0 - }, - { - "request_starts": 59, - "start_offset_seconds": 100.0 - }, - { - "request_starts": 72, - "start_offset_seconds": 110.0 - }, - { - "request_starts": 67, - "start_offset_seconds": 120.0 - }, - { - "request_starts": 64, - "start_offset_seconds": 130.0 - }, - { - "request_starts": 66, - "start_offset_seconds": 140.0 - }, - { - "request_starts": 10, - "start_offset_seconds": 150.0 - } - ], - "classification": "steady", - "coefficient_of_variation": 0.22997165671148478, - "first_start_monotonic": 173797.124120125, - "last_start_monotonic": 173948.406894416, - "request_start_count": 1024, - "zero_bin_fraction": 0.0 - }, - "wall_time_seconds": 155.36664783401648 - }, - { - "buffer_size": 128, - "cap_enforced": true, - "env": { - "DATA_DESIGNER_ASYNC_ENGINE": "1", - "DATA_DESIGNER_ASYNC_TRACE": "1" - }, - "error": null, - "expected_llm_requests": 1024, - "final_pressure": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 174106.610647125, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 8, - "effective_max": 8, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 7189, - "waiters": 0 - }, - "first_event_monotonic": 173953.297322375, - "last_event_monotonic": 174106.610886208, - "llm_columns": 2, - "max_observed_request_in_flight": 8, - "max_observed_scheduler_in_flight": 0, - "max_observed_waiters": 31, - "max_parallel_requests": 8, - "max_tokens": 32, - "model_name_configured": "openai/openai/gpt-5-nano", - "model_usage": { - "openai/openai/gpt-5-nano": { - "request_usage": { - "failed_requests": 0, - "successful_requests": 1024, - "total_requests": 1024 - }, - "requests_per_minute": 399, - "token_usage": { - "input_tokens": 26624, - "output_tokens": 32768, - "total_tokens": 59392 - }, - "tokens_per_second": 386 - } - }, - "provider": "nvidia-internal", - "request_event_count": 6164, - "request_event_counts_by_kind": { - "model_request_completed": 1024, - "model_request_started": 1024, - "request_effective_cap_changed": 1, - "request_lease_acquired": 1024, - "request_lease_released": 1024, - "request_queue_drained": 9, - "request_queue_formed": 9, - "request_resource_registered": 1, - "request_wait_completed": 1024, - "request_wait_started": 1024 - }, - "rows_generated": 512, - "rows_requested": 512, - "scenario": "final1024_cap8_buffer128_rows512_cols2", - "scheduler_event_count": 8184, - "scheduler_event_counts_by_kind": { - "dependency_ready": 1028, - "group_capped": 987, - "queue_drained": 1, - "ready_enqueued": 1028, - "selected": 1028, - "task_completed": 1028, - "task_lease_acquired": 1028, - "task_lease_released": 1028, - "worker_spawned": 1028 - }, - "skip_health_check": true, - "started_wall_time": 1778788016.288474, - "status": "success", - "task_trace_count": 1028, - "temperature_omitted": true, - "traffic_shape": { - "bin_seconds": 10.0, - "bins": [ - { - "request_starts": 75, - "start_offset_seconds": 0.0 - }, - { - "request_starts": 61, - "start_offset_seconds": 10.0 - }, - { - "request_starts": 65, - "start_offset_seconds": 20.0 - }, - { - "request_starts": 66, - "start_offset_seconds": 30.0 - }, - { - "request_starts": 66, - "start_offset_seconds": 40.0 - }, - { - "request_starts": 71, - "start_offset_seconds": 50.0 - }, - { - "request_starts": 72, - "start_offset_seconds": 60.0 - }, - { - "request_starts": 77, - "start_offset_seconds": 70.0 - }, - { - "request_starts": 74, - "start_offset_seconds": 80.0 - }, - { - "request_starts": 65, - "start_offset_seconds": 90.0 - }, - { - "request_starts": 69, - "start_offset_seconds": 100.0 - }, - { - "request_starts": 63, - "start_offset_seconds": 110.0 - }, - { - "request_starts": 65, - "start_offset_seconds": 120.0 - }, - { - "request_starts": 69, - "start_offset_seconds": 130.0 - }, - { - "request_starts": 64, - "start_offset_seconds": 140.0 - }, - { - "request_starts": 2, - "start_offset_seconds": 150.0 - } - ], - "classification": "steady", - "coefficient_of_variation": 0.2596407712169354, - "first_start_monotonic": 173953.646338458, - "last_start_monotonic": 174103.847372708, - "request_start_count": 1024, - "zero_bin_fraction": 0.0 - }, - "wall_time_seconds": 153.95940983400214 - }, - { - "buffer_size": 512, - "cap_enforced": true, - "env": { - "DATA_DESIGNER_ASYNC_ENGINE": "1", - "DATA_DESIGNER_ASYNC_TRACE": "1" - }, - "error": null, - "expected_llm_requests": 1024, - "final_pressure": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 174257.867132375, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 8, - "effective_max": 8, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 7189, - "waiters": 0 - }, - "first_event_monotonic": 174108.252816083, - "last_event_monotonic": 174257.867387333, - "llm_columns": 2, - "max_observed_request_in_flight": 8, - "max_observed_scheduler_in_flight": 0, - "max_observed_waiters": 31, - "max_parallel_requests": 8, - "max_tokens": 32, - "model_name_configured": "openai/openai/gpt-5-nano", - "model_usage": { - "openai/openai/gpt-5-nano": { - "request_usage": { - "failed_requests": 0, - "successful_requests": 1024, - "total_requests": 1024 - }, - "requests_per_minute": 409, - "token_usage": { - "input_tokens": 26624, - "output_tokens": 32768, - "total_tokens": 59392 - }, - "tokens_per_second": 395 - } - }, - "provider": "nvidia-internal", - "request_event_count": 6164, - "request_event_counts_by_kind": { - "model_request_completed": 1024, - "model_request_started": 1024, - "request_effective_cap_changed": 1, - "request_lease_acquired": 1024, - "request_lease_released": 1024, - "request_queue_drained": 9, - "request_queue_formed": 9, - "request_resource_registered": 1, - "request_wait_completed": 1024, - "request_wait_started": 1024 - }, - "rows_generated": 512, - "rows_requested": 512, - "scenario": "final1024_cap8_buffer512_rows512_cols2", - "scheduler_event_count": 8159, - "scheduler_event_counts_by_kind": { - "dependency_ready": 1025, - "group_capped": 983, - "queue_drained": 1, - "ready_enqueued": 1025, - "selected": 1025, - "task_completed": 1025, - "task_lease_acquired": 1025, - "task_lease_released": 1025, - "worker_spawned": 1025 - }, - "skip_health_check": true, - "started_wall_time": 1778788171.2434812, - "status": "success", - "task_trace_count": 1025, - "temperature_omitted": true, - "traffic_shape": { - "bin_seconds": 10.0, - "bins": [ - { - "request_starts": 74, - "start_offset_seconds": 0.0 - }, - { - "request_starts": 71, - "start_offset_seconds": 10.0 - }, - { - "request_starts": 71, - "start_offset_seconds": 20.0 - }, - { - "request_starts": 76, - "start_offset_seconds": 30.0 - }, - { - "request_starts": 82, - "start_offset_seconds": 40.0 - }, - { - "request_starts": 75, - "start_offset_seconds": 50.0 - }, - { - "request_starts": 73, - "start_offset_seconds": 60.0 - }, - { - "request_starts": 68, - "start_offset_seconds": 70.0 - }, - { - "request_starts": 77, - "start_offset_seconds": 80.0 - }, - { - "request_starts": 62, - "start_offset_seconds": 90.0 - }, - { - "request_starts": 59, - "start_offset_seconds": 100.0 - }, - { - "request_starts": 72, - "start_offset_seconds": 110.0 - }, - { - "request_starts": 57, - "start_offset_seconds": 120.0 - }, - { - "request_starts": 59, - "start_offset_seconds": 130.0 - }, - { - "request_starts": 48, - "start_offset_seconds": 140.0 - } - ], - "classification": "steady", - "coefficient_of_variation": 0.13117964539224206, - "first_start_monotonic": 174109.32116575, - "last_start_monotonic": 174256.884750083, - "request_start_count": 1024, - "zero_bin_fraction": 0.0 - }, - "wall_time_seconds": 150.2723574169795 - } -] diff --git a/artifacts/645-live-bench-nano/agent-fan-scale/README.md b/artifacts/645-live-bench-nano/agent-fan-scale/README.md deleted file mode 100644 index 868b2c69d..000000000 --- a/artifacts/645-live-bench-nano/agent-fan-scale/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# Live async fan scale benchmark - -Second-wave large-scale live benchmark lane for async scheduling fan-out/fan-in and buffer-size effects. - -## Configuration - -- Model: `openai/openai/gpt-5-nano` -- Provider: `nvidia-internal` -- Fallback used: `false` -- Temperature: omitted -- `skip_health_check=True` -- `DATA_DESIGNER_ASYNC_ENGINE=1` -- `DATA_DESIGNER_ASYNC_TRACE=1` -- Shared sink: `InMemoryAdmissionEventSink` injected into request admission, model client factory, and scheduler - -## Scenario Summary - -| Scenario | Topology | Buffer | Requests | Wall s | Max in-flight | Max waiters | Wait p50/p95/max s | Failures | -|---|---:|---:|---:|---:|---:|---:|---:|---:| -| `fanout_buffer32` | fanout | 32 | 1024/1024 | 132.24 | 8 | 56 | 6.79/8.97/9.80 | 0 | -| `fanout_buffer256` | fanout | 256 | 1024/1024 | 125.94 | 8 | 57 | 6.58/8.09/9.83 | 0 | -| `fanin_buffer256` | fanin | 256 | 1024/1024 | 141.64 | 8 | 57 | 7.18/8.85/9.62 | 0 | - -## Observations - -- Fan-out buffer 32 and 256 both maintained balanced traffic across all four independent branches. -- Buffer 256 was modestly faster than buffer 32 in this run, while wait distributions were similar. -- Fan-in used 3 upstream LLM columns plus 1 downstream synthesis LLM column for 1024 total model generations. -- Fan-in showed row-level fan-in: downstream synthesis began almost immediately after the first row became ready and interleaved with upstream traffic. -- Request in-flight never exceeded the configured cap of 8 in any scenario. - -## Artifacts - -- `fanout_buffer32`: `/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer32` -- `fanout_buffer256`: `/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer256` -- `fanin_buffer256`: `/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanin_buffer256` -- Combined summary: `/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/combined_summary.json` diff --git a/artifacts/645-live-bench-nano/agent-fan-scale/combined_summary.json b/artifacts/645-live-bench-nano/agent-fan-scale/combined_summary.json deleted file mode 100644 index cab97c802..000000000 --- a/artifacts/645-live-bench-nano/agent-fan-scale/combined_summary.json +++ /dev/null @@ -1,279 +0,0 @@ -{ - "all_caps_enforced": true, - "env": { - "DATA_DESIGNER_ASYNC_ENGINE": "1", - "DATA_DESIGNER_ASYNC_TRACE": "1" - }, - "fallback_model": null, - "fallback_used": false, - "max_parallel_requests": 8, - "model_attempted": "openai/openai/gpt-5-nano", - "provider": "nvidia-internal", - "scenario_count": 3, - "skip_health_check": true, - "summaries": [ - { - "artifacts": { - "dataset_preview": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer32/dataset_preview.json", - "flow_buckets": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer32/flow_buckets.json", - "request_events": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer32/request_events.jsonl", - "summary": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer32/summary.json", - "task_traces_csv": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer32/task_traces.csv", - "task_traces_json": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer32/task_traces.json", - "timeline": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer32/timeline.jsonl" - }, - "buffer_size": 32, - "env": { - "DATA_DESIGNER_ASYNC_ENGINE": "1", - "DATA_DESIGNER_ASYNC_TRACE": "1" - }, - "error": null, - "expected_model_generations": 1024, - "fanin_delay_stats": null, - "max_parallel_requests": 8, - "model": "openai/openai/gpt-5-nano", - "model_usage": { - "openai/openai/gpt-5-nano": { - "input_tokens": 30720, - "output_tokens": 8192, - "successful_requests": 1024, - "total_tokens": 38912 - } - }, - "name": "fanout_buffer32", - "num_records": 256, - "provider": "nvidia-internal", - "records": 256, - "request_stats": { - "cap": 8, - "cap_violations": [], - "failure_completions": 0, - "final_pressure": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 174086.687923416, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 8, - "effective_max": 8, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 7189, - "waiters": 0 - }, - "max_in_flight": 8, - "max_waiters": 56, - "model_request_completions": 1024, - "model_request_starts": 1024, - "starts_by_column": { - "branch_0": 256, - "branch_1": 256, - "branch_2": 256, - "branch_3": 256 - }, - "success_completions": 1024, - "wait_summary": { - "count": 1024, - "max_s": 9.798331875004806, - "p50_s": 6.790842978982255, - "p95_s": 8.969159151802888 - } - }, - "skip_health_check": true, - "started_wall": "2026-05-14T15:46:58-0400", - "status": "success", - "task_trace_count": 1032, - "temperature_omitted": true, - "topology": "fanout", - "wall_time_s": 132.23862399999052 - }, - { - "artifacts": { - "dataset_preview": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer256/dataset_preview.json", - "flow_buckets": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer256/flow_buckets.json", - "request_events": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer256/request_events.jsonl", - "summary": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer256/summary.json", - "task_traces_csv": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer256/task_traces.csv", - "task_traces_json": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer256/task_traces.json", - "timeline": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanout_buffer256/timeline.jsonl" - }, - "buffer_size": 256, - "env": { - "DATA_DESIGNER_ASYNC_ENGINE": "1", - "DATA_DESIGNER_ASYNC_TRACE": "1" - }, - "error": null, - "expected_model_generations": 1024, - "fanin_delay_stats": null, - "max_parallel_requests": 8, - "model": "openai/openai/gpt-5-nano", - "model_usage": { - "openai/openai/gpt-5-nano": { - "input_tokens": 30720, - "output_tokens": 8192, - "successful_requests": 1024, - "total_tokens": 38912 - } - }, - "name": "fanout_buffer256", - "num_records": 256, - "provider": "nvidia-internal", - "records": 256, - "request_stats": { - "cap": 8, - "cap_violations": [], - "failure_completions": 0, - "final_pressure": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 174222.467629416, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 8, - "effective_max": 8, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 7189, - "waiters": 0 - }, - "max_in_flight": 8, - "max_waiters": 57, - "model_request_completions": 1024, - "model_request_starts": 1024, - "starts_by_column": { - "branch_0": 256, - "branch_1": 256, - "branch_2": 256, - "branch_3": 256 - }, - "success_completions": 1024, - "wait_summary": { - "count": 1024, - "max_s": 9.826479708019178, - "p50_s": 6.583455063009751, - "p95_s": 8.091820146406826 - } - }, - "skip_health_check": true, - "started_wall": "2026-05-14T15:49:20-0400", - "status": "success", - "task_trace_count": 1025, - "temperature_omitted": true, - "topology": "fanout", - "wall_time_s": 125.94064362501376 - }, - { - "artifacts": { - "dataset_preview": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanin_buffer256/dataset_preview.json", - "flow_buckets": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanin_buffer256/flow_buckets.json", - "request_events": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanin_buffer256/request_events.jsonl", - "summary": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanin_buffer256/summary.json", - "task_traces_csv": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanin_buffer256/task_traces.csv", - "task_traces_json": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanin_buffer256/task_traces.json", - "timeline": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-fan-scale/fanin_buffer256/timeline.jsonl" - }, - "buffer_size": 256, - "env": { - "DATA_DESIGNER_ASYNC_ENGINE": "1", - "DATA_DESIGNER_ASYNC_TRACE": "1" - }, - "error": null, - "expected_model_generations": 1024, - "fanin_delay_stats": { - "downstream_dispatch_delay_after_row_upstream_complete_s": { - "max": 3.2125449589802884, - "p50": 0.23460531298769638, - "p95": 1.281055572500918 - }, - "downstream_first_start_after_first_row_ready_s": 0.006151334004243836, - "downstream_start_delay_after_row_upstream_complete_s": { - "max": 3.212546791997738, - "p50": 0.23460716698900796, - "p95": 1.281056812236784 - }, - "rows_with_delay": 256 - }, - "max_parallel_requests": 8, - "model": "openai/openai/gpt-5-nano", - "model_usage": { - "openai/openai/gpt-5-nano": { - "input_tokens": 29184, - "output_tokens": 8192, - "successful_requests": 1024, - "total_tokens": 37376 - } - }, - "name": "fanin_buffer256", - "num_records": 256, - "provider": "nvidia-internal", - "records": 256, - "request_stats": { - "cap": 8, - "cap_violations": [], - "failure_completions": 0, - "final_pressure": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 174371.645033458, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 8, - "effective_max": 8, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 7189, - "waiters": 0 - }, - "max_in_flight": 8, - "max_waiters": 57, - "model_request_completions": 1024, - "model_request_starts": 1024, - "starts_by_column": { - "synthesis": 256, - "up_0": 256, - "up_1": 256, - "up_2": 256 - }, - "success_completions": 1024, - "wait_summary": { - "count": 1024, - "max_s": 9.619726165983593, - "p50_s": 7.178008854491054, - "p95_s": 8.853222151745285 - } - }, - "skip_health_check": true, - "started_wall": "2026-05-14T15:51:33-0400", - "status": "success", - "task_trace_count": 1025, - "temperature_omitted": true, - "topology": "fanin", - "wall_time_s": 141.6412126670184 - } - ], - "temperature_omitted": true, - "total_failures": 0, - "total_model_request_completions": 3072, - "total_model_request_starts": 3072 -} diff --git a/artifacts/645-live-bench-nano/agent-fan/README.md b/artifacts/645-live-bench-nano/agent-fan/README.md deleted file mode 100644 index 458e05ead..000000000 --- a/artifacts/645-live-bench-nano/agent-fan/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# Live async fan benchmark - -- fanout_rows32_cols4_cap6: success=True, rows=32, wall_time_s=33.839, requests=128, max_in_flight=6/6, queue_formed=7, rate_limits=0 -- fanin_rows24_up3_down1_cap4: success=True, rows=24, wall_time_s=43.434, requests=96, max_in_flight=4/4, queue_formed=5, rate_limits=0 diff --git a/artifacts/645-live-bench-nano/agent-fan/combined_summary.json b/artifacts/645-live-bench-nano/agent-fan/combined_summary.json deleted file mode 100644 index d3eb8ab24..000000000 --- a/artifacts/645-live-bench-nano/agent-fan/combined_summary.json +++ /dev/null @@ -1,161 +0,0 @@ -{ - "endpoint": "https://inference-api.nvidia.com/v1", - "env": { - "DATA_DESIGNER_ASYNC_ENGINE": "1", - "DATA_DESIGNER_ASYNC_TRACE": "1" - }, - "model": "openai/openai/gpt-5-nano", - "provider": "nvidia-internal", - "summaries": [ - { - "cap_enforced": true, - "error": null, - "failure_count": 0, - "final_pressure": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 173673.30631075, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 6, - "effective_max": 6, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 913, - "waiters": 0 - }, - "max_observed_request_in_flight": 6, - "max_parallel_requests": 6, - "max_tokens": 64, - "max_waiters": 43, - "model": "openai/openai/gpt-5-nano", - "model_usage": null, - "provider": "nvidia-internal", - "queue_drained": 7, - "queue_formed": 7, - "rate_limit_count": 0, - "request_event_counts": { - "model_request_completed": 128, - "model_request_started": 128, - "request_effective_cap_changed": 1, - "request_lease_acquired": 128, - "request_lease_released": 128, - "request_queue_drained": 7, - "request_queue_formed": 7, - "request_resource_registered": 1, - "request_wait_completed": 128, - "request_wait_started": 128 - }, - "request_events_total": 784, - "rows_requested": 32, - "scenario": "fanout_rows32_cols4_cap6", - "scheduler_event_counts": { - "dependency_ready": 129, - "group_capped": 79, - "queue_drained": 2, - "ready_enqueued": 129, - "selected": 129, - "task_completed": 129, - "task_lease_acquired": 129, - "task_lease_released": 129, - "worker_spawned": 129 - }, - "scheduler_events_total": 984, - "skip_health_check": true, - "success": true, - "success_count": 128, - "task_trace_count": 129, - "temperature_omitted": true, - "wall_time_s": 33.83901049999986 - }, - { - "cap_enforced": true, - "error": null, - "failure_count": 0, - "fanin_timing": { - "downstream_ready_after_first_three_upstream_s": 0.15985870899748988, - "first_downstream_done_s": 14.99186962499516, - "first_downstream_ready_s": 1.7582419590034988, - "first_downstream_start_s": 1.7586683339904994, - "first_three_upstream_completion_max_s": 1.598383250006009, - "trace_columns": { - "bench_id": 1, - "downstream_synthesis": 24, - "upstream_1": 24, - "upstream_2": 24, - "upstream_3": 24 - } - }, - "final_pressure": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 173716.935575458, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 4, - "effective_max": 4, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 685, - "waiters": 0 - }, - "max_observed_request_in_flight": 4, - "max_parallel_requests": 4, - "max_tokens": 64, - "max_waiters": 29, - "model": "openai/openai/gpt-5-nano", - "model_usage": null, - "provider": "nvidia-internal", - "queue_drained": 5, - "queue_formed": 5, - "rate_limit_count": 0, - "request_event_counts": { - "model_request_completed": 96, - "model_request_started": 96, - "request_effective_cap_changed": 1, - "request_lease_acquired": 96, - "request_lease_released": 96, - "request_queue_drained": 5, - "request_queue_formed": 5, - "request_resource_registered": 1, - "request_wait_completed": 96, - "request_wait_started": 96 - }, - "request_events_total": 588, - "rows_requested": 24, - "scenario": "fanin_rows24_up3_down1_cap4", - "scheduler_event_counts": { - "dependency_ready": 97, - "group_capped": 54, - "queue_drained": 11, - "ready_enqueued": 97, - "selected": 97, - "task_completed": 97, - "task_lease_acquired": 97, - "task_lease_released": 97, - "worker_spawned": 97 - }, - "scheduler_events_total": 744, - "skip_health_check": true, - "success": true, - "success_count": 96, - "task_trace_count": 97, - "temperature_omitted": true, - "wall_time_s": 43.433844124985626 - } - ] -} diff --git a/artifacts/645-live-bench-nano/agent-mixed-pipeline/README.md b/artifacts/645-live-bench-nano/agent-mixed-pipeline/README.md deleted file mode 100644 index 4f59d0939..000000000 --- a/artifacts/645-live-bench-nano/agent-mixed-pipeline/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# Mixed-model async scheduling live benchmark - -Rows: 512; model generations per scenario: 1024. -Provider: `nvidia-internal`. -Upstream: `openai/openai/gpt-5.5` cap 4, max_tokens 96. -Downstream: `openai/openai/gpt-5-nano` cap 8, max_tokens 32. -Temperature omitted for both model configs. Health checks skipped. - -| Scenario | Buffer | Success | Wall s | Heavy starts | Nano starts | Overlap s | Idle p50/p95/max s | Max in-flight | Max waiters | Diagnosis | Cap violation | -|---|---:|---|---:|---:|---:|---:|---|---|---|---|---| -| mixed_rows512_buf256_heavy4_nano8 | 256 | True | 366.44 | 512 | 512 | 329.37 | 0.037/0.071/0.133 | {'openai/openai/gpt-5-nano': 6, 'openai/openai/gpt-5.5': 4} | {'openai/openai/gpt-5-nano': 1, 'openai/openai/gpt-5.5': 252} | steady_interleaving | {'openai/openai/gpt-5-nano': False, 'openai/openai/gpt-5.5': False} | -| mixed_rows512_buf32_heavy4_nano8 | 32 | True | 368.46 | 512 | 512 | 321.33 | 0.001/0.005/0.053 | {'openai/openai/gpt-5-nano': 6, 'openai/openai/gpt-5.5': 4} | {'openai/openai/gpt-5-nano': 1, 'openai/openai/gpt-5.5': 92} | steady_interleaving | {'openai/openai/gpt-5-nano': False, 'openai/openai/gpt-5.5': False} | diff --git a/artifacts/645-live-bench-nano/agent-mixed-pipeline/combined_summary.json b/artifacts/645-live-bench-nano/agent-mixed-pipeline/combined_summary.json deleted file mode 100644 index 2c14d75ac..000000000 --- a/artifacts/645-live-bench-nano/agent-mixed-pipeline/combined_summary.json +++ /dev/null @@ -1,1206 +0,0 @@ -{ - "buffers": [ - 32, - 256 - ], - "models": { - "downstream": "openai/openai/gpt-5-nano", - "upstream": "openai/openai/gpt-5.5" - }, - "provider": "nvidia-internal", - "rows": 512, - "summaries": [ - { - "artifacts": { - "flow_buckets": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf256_heavy4_nano8/flow_buckets.json", - "idle_times": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf256_heavy4_nano8/idle_times.json", - "request_events": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf256_heavy4_nano8/request_events.jsonl", - "summary": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf256_heavy4_nano8/summary.json", - "task_traces_csv": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf256_heavy4_nano8/task_traces.csv", - "task_traces_json": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf256_heavy4_nano8/task_traces.json", - "timeline": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf256_heavy4_nano8/timeline.jsonl" - }, - "buffer_size": 256, - "cap_violations": { - "openai/openai/gpt-5-nano": false, - "openai/openai/gpt-5.5": false - }, - "configured_caps": { - "openai/openai/gpt-5-nano": 8, - "openai/openai/gpt-5.5": 4 - }, - "error": null, - "expected_model_generations": 1024, - "final_pressure_by_model": { - "openai/openai/gpt-5-nano": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 174723.571601541, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 8, - "effective_max": 8, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 7194, - "waiters": 0 - }, - "openai/openai/gpt-5.5": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 174722.552245541, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 4, - "effective_max": 4, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5.5", - "provider_name": "nvidia-internal" - }, - "sequence": 7183, - "waiters": 0 - } - }, - "idle_times": { - "count": 512, - "seconds": { - "max": 0.1327779580024071, - "p50": 0.037426437498652376, - "p95": 0.07076091601629741 - } - }, - "max_tokens": { - "downstream": 32, - "upstream": 96 - }, - "max_waiters_by_model": { - "openai/openai/gpt-5-nano": 1, - "openai/openai/gpt-5.5": 252 - }, - "model_completion_outcomes": { - "success": 1024 - }, - "models": { - "downstream": "openai/openai/gpt-5-nano", - "upstream": "openai/openai/gpt-5.5" - }, - "provider": "nvidia-internal", - "request_event_counts": { - "model_request_completed": 1024, - "model_request_started": 1024, - "request_effective_cap_changed": 2, - "request_lease_acquired": 1024, - "request_lease_released": 1024, - "request_queue_drained": 10, - "request_queue_formed": 10, - "request_resource_registered": 2, - "request_wait_completed": 1024, - "request_wait_started": 1024 - }, - "request_wait_seconds_by_model": { - "openai/openai/gpt-5-nano": { - "count": 512, - "max": 0.0022010419925209135, - "p50": 0.00043241700041107833, - "p95": 0.0007573750044684857 - }, - "openai/openai/gpt-5.5": { - "count": 4, - "max": 4.991699825040996e-05, - "p50": 3.760399704333395e-05, - "p95": 4.991699825040996e-05 - } - }, - "rows": 512, - "scenario": "mixed_rows512_buf256_heavy4_nano8", - "start_regularities_by_model_column": { - "openai/openai/gpt-5-nano::nano_summary": { - "max_starts_per_window": 9, - "mean_starts_per_window": 6.918918918918919, - "stdev_starts_per_window": 1.3631913743695667, - "window_count": 74 - }, - "openai/openai/gpt-5.5::heavy_analysis": { - "max_starts_per_window": 9, - "mean_starts_per_window": 7.013698630136986, - "stdev_starts_per_window": 1.1406937409077287, - "window_count": 73 - } - }, - "success": true, - "task_failure_count": 0, - "task_success_count": 1026, - "task_trace_count": 1026, - "traffic": { - "active_intervals_by_model": { - "openai/openai/gpt-5-nano": [ - { - "duration_s": 9.394017957994947, - "end": 174370.794954458, - "start": 174361.4009365 - }, - { - "duration_s": 6.279662167013157, - "end": 174377.80422975, - "start": 174371.524567583 - }, - { - "duration_s": 4.624943999981042, - "end": 174382.750991875, - "start": 174378.126047875 - }, - { - "duration_s": 2.4475870419992134, - "end": 174385.2531145, - "start": 174382.805527458 - }, - { - "duration_s": 5.486310500011314, - "end": 174390.876632416, - "start": 174385.390321916 - }, - { - "duration_s": 2.1258456670038868, - "end": 174393.284984083, - "start": 174391.159138416 - }, - { - "duration_s": 2.4145924169861246, - "end": 174395.824191083, - "start": 174393.409598666 - }, - { - "duration_s": 4.683905292011332, - "end": 174400.522879875, - "start": 174395.838974583 - }, - { - "duration_s": 6.695771667000372, - "end": 174407.753622, - "start": 174401.057850333 - }, - { - "duration_s": 12.101943292014766, - "end": 174420.276835083, - "start": 174408.174891791 - }, - { - "duration_s": 2.3032693749992177, - "end": 174422.809576291, - "start": 174420.506306916 - }, - { - "duration_s": 1.7844039170013275, - "end": 174424.964499, - "start": 174423.180095083 - }, - { - "duration_s": 1.8883888339914847, - "end": 174427.57692025, - "start": 174425.688531416 - }, - { - "duration_s": 2.4874935419938993, - "end": 174430.715748208, - "start": 174428.228254666 - }, - { - "duration_s": 3.9159133749781176, - "end": 174435.1747095, - "start": 174431.258796125 - }, - { - "duration_s": 1.2698066250013653, - "end": 174437.295050958, - "start": 174436.025244333 - }, - { - "duration_s": 2.917881875007879, - "end": 174440.694206708, - "start": 174437.776324833 - }, - { - "duration_s": 1.5008295409788843, - "end": 174442.508677416, - "start": 174441.007847875 - }, - { - "duration_s": 8.853815541981021, - "end": 174452.015937083, - "start": 174443.162121541 - }, - { - "duration_s": 5.434969583002385, - "end": 174457.869136291, - "start": 174452.434166708 - }, - { - "duration_s": 1.6006494169996586, - "end": 174460.3698885, - "start": 174458.769239083 - }, - { - "duration_s": 2.217115499981446, - "end": 174463.523851291, - "start": 174461.306735791 - }, - { - "duration_s": 1.3022618750110269, - "end": 174465.074833333, - "start": 174463.772571458 - }, - { - "duration_s": 11.245732541981852, - "end": 174476.347735208, - "start": 174465.102002666 - }, - { - "duration_s": 11.11303645800217, - "end": 174487.664771166, - "start": 174476.551734708 - }, - { - "duration_s": 1.0640465420146938, - "end": 174488.755994583, - "start": 174487.691948041 - }, - { - "duration_s": 4.047189292003168, - "end": 174493.042717208, - "start": 174488.995527916 - }, - { - "duration_s": 6.003170917014359, - "end": 174499.569978, - "start": 174493.566807083 - }, - { - "duration_s": 30.606017333018826, - "end": 174530.209833166, - "start": 174499.603815833 - }, - { - "duration_s": 4.3893592079984955, - "end": 174534.735890791, - "start": 174530.346531583 - }, - { - "duration_s": 22.670841541985283, - "end": 174558.074752958, - "start": 174535.403911416 - }, - { - "duration_s": 5.8687200830026995, - "end": 174564.365196791, - "start": 174558.496476708 - }, - { - "duration_s": 2.411567165981978, - "end": 174567.436270666, - "start": 174565.0247035 - }, - { - "duration_s": 7.105816458992194, - "end": 174574.7820415, - "start": 174567.676225041 - }, - { - "duration_s": 2.618370500014862, - "end": 174577.861389416, - "start": 174575.243018916 - }, - { - "duration_s": 3.8683478330203798, - "end": 174581.970612291, - "start": 174578.102264458 - }, - { - "duration_s": 3.836351542006014, - "end": 174585.889124083, - "start": 174582.052772541 - }, - { - "duration_s": 2.1516553330002353, - "end": 174588.062163708, - "start": 174585.910508375 - }, - { - "duration_s": 3.000816832995042, - "end": 174591.333445958, - "start": 174588.332629125 - }, - { - "duration_s": 3.94905979197938, - "end": 174595.677885583, - "start": 174591.728825791 - }, - { - "duration_s": 9.056580917007523, - "end": 174605.4722525, - "start": 174596.415671583 - }, - { - "duration_s": 1.4633029579999857, - "end": 174607.453311291, - "start": 174605.990008333 - }, - { - "duration_s": 2.925129541021306, - "end": 174611.478714416, - "start": 174608.553584875 - }, - { - "duration_s": 1.3310756249993574, - "end": 174612.897840875, - "start": 174611.56676525 - }, - { - "duration_s": 5.439490582997678, - "end": 174618.446302041, - "start": 174613.006811458 - }, - { - "duration_s": 1.412131417018827, - "end": 174619.874751958, - "start": 174618.462620541 - }, - { - "duration_s": 6.178748042002553, - "end": 174627.271969333, - "start": 174621.093221291 - }, - { - "duration_s": 2.437078458024189, - "end": 174629.909232333, - "start": 174627.472153875 - }, - { - "duration_s": 4.673200999997789, - "end": 174634.708177916, - "start": 174630.034976916 - }, - { - "duration_s": 0.7527447500033304, - "end": 174635.565301166, - "start": 174634.812556416 - }, - { - "duration_s": 2.2939525000110734, - "end": 174637.958529166, - "start": 174635.664576666 - }, - { - "duration_s": 1.8510925419977866, - "end": 174639.99378175, - "start": 174638.142689208 - }, - { - "duration_s": 9.924431749997893, - "end": 174650.052930833, - "start": 174640.128499083 - }, - { - "duration_s": 1.1489215829933528, - "end": 174651.604184958, - "start": 174650.455263375 - }, - { - "duration_s": 4.982904500007862, - "end": 174657.416232708, - "start": 174652.433328208 - }, - { - "duration_s": 2.831311124988133, - "end": 174660.704992916, - "start": 174657.873681791 - }, - { - "duration_s": 1.89609679201385, - "end": 174662.64229175, - "start": 174660.746194958 - }, - { - "duration_s": 2.043272707989672, - "end": 174664.906875833, - "start": 174662.863603125 - }, - { - "duration_s": 1.4234511249815114, - "end": 174666.620862208, - "start": 174665.197411083 - }, - { - "duration_s": 1.5424332080001477, - "end": 174669.211621083, - "start": 174667.669187875 - }, - { - "duration_s": 1.776593624992529, - "end": 174671.772575833, - "start": 174669.995982208 - }, - { - "duration_s": 5.1787199590180535, - "end": 174677.11717325, - "start": 174671.938453291 - }, - { - "duration_s": 9.867947749997256, - "end": 174687.204336416, - "start": 174677.336388666 - }, - { - "duration_s": 2.191539166989969, - "end": 174689.708712125, - "start": 174687.517172958 - }, - { - "duration_s": 1.9892010840121657, - "end": 174691.854132625, - "start": 174689.864931541 - }, - { - "duration_s": 3.7240812920208555, - "end": 174696.282378083, - "start": 174692.558296791 - }, - { - "duration_s": 1.457416541990824, - "end": 174698.701261708, - "start": 174697.243845166 - }, - { - "duration_s": 1.5992781250097323, - "end": 174700.987046166, - "start": 174699.387768041 - }, - { - "duration_s": 3.580902415997116, - "end": 174705.456952416, - "start": 174701.87605 - }, - { - "duration_s": 1.967339291004464, - "end": 174707.851803166, - "start": 174705.884463875 - }, - { - "duration_s": 1.3390686249767896, - "end": 174710.085239583, - "start": 174708.746170958 - }, - { - "duration_s": 2.8785799169854727, - "end": 174713.554430833, - "start": 174710.675850916 - }, - { - "duration_s": 1.014782042009756, - "end": 174715.853167458, - "start": 174714.838385416 - }, - { - "duration_s": 2.3982557090057526, - "end": 174718.521211, - "start": 174716.122955291 - }, - { - "duration_s": 1.0727456249878742, - "end": 174719.631981208, - "start": 174718.559235583 - }, - { - "duration_s": 3.062694416003069, - "end": 174723.571634791, - "start": 174720.508940375 - } - ], - "openai/openai/gpt-5.5": [ - { - "duration_s": 364.3234237919969, - "end": 174722.552268083, - "start": 174358.228844291 - } - ] - }, - "completion_count_by_model": { - "openai/openai/gpt-5-nano": 512, - "openai/openai/gpt-5.5": 512 - }, - "max_in_flight_by_model": { - "openai/openai/gpt-5-nano": 6, - "openai/openai/gpt-5.5": 4 - }, - "max_start_gap_seconds_by_model": { - "openai/openai/gpt-5-nano": 2.4862680829828605, - "openai/openai/gpt-5.5": 3.143693332996918 - }, - "overlap_duration_seconds": 329.36860837900895, - "start_count_by_model": { - "openai/openai/gpt-5-nano": 512, - "openai/openai/gpt-5.5": 512 - } - }, - "wall_time_seconds": 366.4424302089901, - "wave_diagnosis": "steady_interleaving" - }, - { - "artifacts": { - "flow_buckets": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf32_heavy4_nano8/flow_buckets.json", - "idle_times": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf32_heavy4_nano8/idle_times.json", - "request_events": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf32_heavy4_nano8/request_events.jsonl", - "summary": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf32_heavy4_nano8/summary.json", - "task_traces_csv": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf32_heavy4_nano8/task_traces.csv", - "task_traces_json": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf32_heavy4_nano8/task_traces.json", - "timeline": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/mixed_rows512_buf32_heavy4_nano8/timeline.jsonl" - }, - "buffer_size": 32, - "cap_violations": { - "openai/openai/gpt-5-nano": false, - "openai/openai/gpt-5.5": false - }, - "configured_caps": { - "openai/openai/gpt-5-nano": 8, - "openai/openai/gpt-5.5": 4 - }, - "error": null, - "expected_model_generations": 1024, - "final_pressure_by_model": { - "openai/openai/gpt-5-nano": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 174356.357171125, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 8, - "effective_max": 8, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 7194, - "waiters": 0 - }, - "openai/openai/gpt-5.5": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 174355.489251416, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 4, - "effective_max": 4, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5.5", - "provider_name": "nvidia-internal" - }, - "sequence": 7183, - "waiters": 0 - } - }, - "idle_times": { - "count": 512, - "seconds": { - "max": 0.052871040999889374, - "p50": 0.0008464374986942858, - "p95": 0.004843625007197261 - } - }, - "max_tokens": { - "downstream": 32, - "upstream": 96 - }, - "max_waiters_by_model": { - "openai/openai/gpt-5-nano": 1, - "openai/openai/gpt-5.5": 92 - }, - "model_completion_outcomes": { - "success": 1024 - }, - "models": { - "downstream": "openai/openai/gpt-5-nano", - "upstream": "openai/openai/gpt-5.5" - }, - "provider": "nvidia-internal", - "request_event_counts": { - "model_request_completed": 1024, - "model_request_started": 1024, - "request_effective_cap_changed": 2, - "request_lease_acquired": 1024, - "request_lease_released": 1024, - "request_queue_drained": 10, - "request_queue_formed": 10, - "request_resource_registered": 2, - "request_wait_completed": 1024, - "request_wait_started": 1024 - }, - "request_wait_seconds_by_model": { - "openai/openai/gpt-5-nano": { - "count": 512, - "max": 0.0017384170205332339, - "p50": 0.0003472709940979257, - "p95": 0.0009644999809097499 - }, - "openai/openai/gpt-5.5": { - "count": 4, - "max": 3.283299156464636e-05, - "p50": 2.229199162684381e-05, - "p95": 3.283299156464636e-05 - } - }, - "rows": 512, - "scenario": "mixed_rows512_buf32_heavy4_nano8", - "start_regularities_by_model_column": { - "openai/openai/gpt-5-nano::nano_summary": { - "max_starts_per_window": 10, - "mean_starts_per_window": 6.918918918918919, - "stdev_starts_per_window": 1.3331202654203809, - "window_count": 74 - }, - "openai/openai/gpt-5.5::heavy_analysis": { - "max_starts_per_window": 10, - "mean_starts_per_window": 6.918918918918919, - "stdev_starts_per_window": 1.4864864864864864, - "window_count": 74 - } - }, - "success": true, - "task_failure_count": 0, - "task_success_count": 1040, - "task_trace_count": 1040, - "traffic": { - "active_intervals_by_model": { - "openai/openai/gpt-5-nano": [ - { - "duration_s": 1.7392419999814592, - "end": 173993.193507083, - "start": 173991.454265083 - }, - { - "duration_s": 3.906982999993488, - "end": 173997.875538375, - "start": 173993.968555375 - }, - { - "duration_s": 1.4602454580017366, - "end": 173999.885431708, - "start": 173998.42518625 - }, - { - "duration_s": 1.1126019999792334, - "end": 174001.052090958, - "start": 173999.939488958 - }, - { - "duration_s": 0.9724255420151167, - "end": 174002.108186875, - "start": 174001.135761333 - }, - { - "duration_s": 8.741101042018272, - "end": 174012.133871333, - "start": 174003.392770291 - }, - { - "duration_s": 2.17999662499642, - "end": 174014.45498975, - "start": 174012.274993125 - }, - { - "duration_s": 2.046032207988901, - "end": 174016.623302458, - "start": 174014.57727025 - }, - { - "duration_s": 1.7173061250068713, - "end": 174019.061701666, - "start": 174017.344395541 - }, - { - "duration_s": 2.697560416010674, - "end": 174022.290488541, - "start": 174019.592928125 - }, - { - "duration_s": 1.4170709589961916, - "end": 174024.199792875, - "start": 174022.782721916 - }, - { - "duration_s": 1.1734709999873303, - "end": 174025.844737583, - "start": 174024.671266583 - }, - { - "duration_s": 12.310245667002164, - "end": 174039.070432083, - "start": 174026.760186416 - }, - { - "duration_s": 1.5059390839887783, - "end": 174041.109286625, - "start": 174039.603347541 - }, - { - "duration_s": 1.7366176249925047, - "end": 174044.259897041, - "start": 174042.523279416 - }, - { - "duration_s": 2.5285517500014976, - "end": 174047.0339175, - "start": 174044.50536575 - }, - { - "duration_s": 2.0299618749995716, - "end": 174049.245588291, - "start": 174047.215626416 - }, - { - "duration_s": 0.8145373340230435, - "end": 174050.31337325, - "start": 174049.498835916 - }, - { - "duration_s": 11.927282291988377, - "end": 174062.2616535, - "start": 174050.334371208 - }, - { - "duration_s": 1.1666754999896511, - "end": 174063.489532416, - "start": 174062.322856916 - }, - { - "duration_s": 0.8380858330056071, - "end": 174064.376657541, - "start": 174063.538571708 - }, - { - "duration_s": 1.0648002919915598, - "end": 174065.564689458, - "start": 174064.499889166 - }, - { - "duration_s": 0.8665000000037253, - "end": 174066.739350583, - "start": 174065.872850583 - }, - { - "duration_s": 4.360133332986152, - "end": 174071.506664833, - "start": 174067.1465315 - }, - { - "duration_s": 1.62389258298208, - "end": 174073.437612916, - "start": 174071.813720333 - }, - { - "duration_s": 5.9206377920054365, - "end": 174080.13428525, - "start": 174074.213647458 - }, - { - "duration_s": 1.8886292499955744, - "end": 174082.870294125, - "start": 174080.981664875 - }, - { - "duration_s": 2.0180791659804527, - "end": 174086.151302416, - "start": 174084.13322325 - }, - { - "duration_s": 1.7399675409833435, - "end": 174088.160357166, - "start": 174086.420389625 - }, - { - "duration_s": 0.8051585830107797, - "end": 174089.552694916, - "start": 174088.747536333 - }, - { - "duration_s": 0.8353897079941817, - "end": 174090.541251041, - "start": 174089.705861333 - }, - { - "duration_s": 9.873239584005205, - "end": 174100.8587855, - "start": 174090.985545916 - }, - { - "duration_s": 7.0381785419886, - "end": 174108.155404375, - "start": 174101.117225833 - }, - { - "duration_s": 6.935596082999837, - "end": 174115.872906583, - "start": 174108.9373105 - }, - { - "duration_s": 13.120881374983583, - "end": 174129.313358375, - "start": 174116.192477 - }, - { - "duration_s": 1.1449434999958612, - "end": 174130.684390416, - "start": 174129.539446916 - }, - { - "duration_s": 0.8076670829905197, - "end": 174131.768864208, - "start": 174130.961197125 - }, - { - "duration_s": 2.0355630410194863, - "end": 174133.841675416, - "start": 174131.806112375 - }, - { - "duration_s": 13.335706165991724, - "end": 174147.761271291, - "start": 174134.425565125 - }, - { - "duration_s": 0.889271167019615, - "end": 174148.745910958, - "start": 174147.856639791 - }, - { - "duration_s": 1.5138824169989675, - "end": 174150.6875005, - "start": 174149.173618083 - }, - { - "duration_s": 2.271901208005147, - "end": 174154.046634041, - "start": 174151.774732833 - }, - { - "duration_s": 4.069246041006409, - "end": 174158.159593666, - "start": 174154.090347625 - }, - { - "duration_s": 0.9442274169996381, - "end": 174159.6558195, - "start": 174158.711592083 - }, - { - "duration_s": 17.081960957992123, - "end": 174176.876705083, - "start": 174159.794744125 - }, - { - "duration_s": 1.7502368749992456, - "end": 174179.273249166, - "start": 174177.523012291 - }, - { - "duration_s": 1.699702291021822, - "end": 174181.391542916, - "start": 174179.691840625 - }, - { - "duration_s": 1.5822077500051819, - "end": 174183.810419333, - "start": 174182.228211583 - }, - { - "duration_s": 1.4197293750185054, - "end": 174186.283567875, - "start": 174184.8638385 - }, - { - "duration_s": 1.179858334013261, - "end": 174187.817298, - "start": 174186.637439666 - }, - { - "duration_s": 2.0357941670226865, - "end": 174190.304439958, - "start": 174188.268645791 - }, - { - "duration_s": 6.856323167012306, - "end": 174197.367766083, - "start": 174190.511442916 - }, - { - "duration_s": 0.8828057919745333, - "end": 174198.933304958, - "start": 174198.050499166 - }, - { - "duration_s": 5.902916416001972, - "end": 174204.856911166, - "start": 174198.95399475 - }, - { - "duration_s": 1.197503167000832, - "end": 174206.44524625, - "start": 174205.247743083 - }, - { - "duration_s": 2.1656562910065986, - "end": 174209.298966541, - "start": 174207.13331025 - }, - { - "duration_s": 8.359825417021057, - "end": 174218.04774375, - "start": 174209.687918333 - }, - { - "duration_s": 1.562762790999841, - "end": 174220.208167791, - "start": 174218.645405 - }, - { - "duration_s": 0.9469654579879716, - "end": 174221.662930541, - "start": 174220.715965083 - }, - { - "duration_s": 4.41232870798558, - "end": 174226.132287458, - "start": 174221.71995875 - }, - { - "duration_s": 2.562057749979431, - "end": 174229.156908958, - "start": 174226.594851208 - }, - { - "duration_s": 1.8489006250165403, - "end": 174231.132239416, - "start": 174229.283338791 - }, - { - "duration_s": 8.572871250013122, - "end": 174240.371292666, - "start": 174231.798421416 - }, - { - "duration_s": 2.214653749979334, - "end": 174242.843862708, - "start": 174240.629208958 - }, - { - "duration_s": 1.8244840829866007, - "end": 174244.712724458, - "start": 174242.888240375 - }, - { - "duration_s": 3.9903303330065683, - "end": 174249.032017333, - "start": 174245.041687 - }, - { - "duration_s": 4.035728415998165, - "end": 174254.182838416, - "start": 174250.14711 - }, - { - "duration_s": 2.169388667010935, - "end": 174256.930428958, - "start": 174254.761040291 - }, - { - "duration_s": 1.8179866249847692, - "end": 174259.188476208, - "start": 174257.370489583 - }, - { - "duration_s": 3.3168897920113523, - "end": 174262.889609708, - "start": 174259.572719916 - }, - { - "duration_s": 2.8455557500128634, - "end": 174266.036189, - "start": 174263.19063325 - }, - { - "duration_s": 2.374892624997301, - "end": 174268.458841958, - "start": 174266.083949333 - }, - { - "duration_s": 8.159147540980484, - "end": 174276.709620791, - "start": 174268.55047325 - }, - { - "duration_s": 6.312752249999903, - "end": 174283.092960833, - "start": 174276.780208583 - }, - { - "duration_s": 2.1540549579949584, - "end": 174285.345789958, - "start": 174283.191735 - }, - { - "duration_s": 2.0611925000266638, - "end": 174288.524819, - "start": 174286.4636265 - }, - { - "duration_s": 1.8585902089835145, - "end": 174290.512703625, - "start": 174288.654113416 - }, - { - "duration_s": 1.804813541995827, - "end": 174293.237821333, - "start": 174291.433007791 - }, - { - "duration_s": 1.1622461669903714, - "end": 174295.183344833, - "start": 174294.021098666 - }, - { - "duration_s": 6.357775959011633, - "end": 174302.370211, - "start": 174296.012435041 - }, - { - "duration_s": 5.376596332993358, - "end": 174307.766399916, - "start": 174302.389803583 - }, - { - "duration_s": 2.1133893340011127, - "end": 174310.197679625, - "start": 174308.084290291 - }, - { - "duration_s": 1.4733228330151178, - "end": 174312.485081916, - "start": 174311.011759083 - }, - { - "duration_s": 1.4972249160055071, - "end": 174314.348660041, - "start": 174312.851435125 - }, - { - "duration_s": 6.1263907920219935, - "end": 174321.194866083, - "start": 174315.068475291 - }, - { - "duration_s": 1.5847329169919249, - "end": 174323.591156958, - "start": 174322.006424041 - }, - { - "duration_s": 2.940674375015078, - "end": 174326.573084083, - "start": 174323.632409708 - }, - { - "duration_s": 3.6662402920192108, - "end": 174330.278663125, - "start": 174326.612422833 - }, - { - "duration_s": 1.1483551660203375, - "end": 174332.194349416, - "start": 174331.04599425 - }, - { - "duration_s": 3.5202709999866784, - "end": 174336.220429708, - "start": 174332.700158708 - }, - { - "duration_s": 4.211606666998705, - "end": 174340.71144425, - "start": 174336.499837583 - }, - { - "duration_s": 1.0340612499858253, - "end": 174341.795236833, - "start": 174340.761175583 - }, - { - "duration_s": 2.214746915997239, - "end": 174344.189198666, - "start": 174341.97445175 - }, - { - "duration_s": 4.89728245799779, - "end": 174349.582323416, - "start": 174344.685040958 - }, - { - "duration_s": 3.658865125005832, - "end": 174353.888867708, - "start": 174350.230002583 - }, - { - "duration_s": 1.129474166984437, - "end": 174356.357214, - "start": 174355.227739833 - } - ], - "openai/openai/gpt-5.5": [ - { - "duration_s": 366.48894541698974, - "end": 174355.489265958, - "start": 173989.000320541 - } - ] - }, - "completion_count_by_model": { - "openai/openai/gpt-5-nano": 512, - "openai/openai/gpt-5.5": 512 - }, - "max_in_flight_by_model": { - "openai/openai/gpt-5-nano": 6, - "openai/openai/gpt-5.5": 4 - }, - "max_start_gap_seconds_by_model": { - "openai/openai/gpt-5-nano": 3.1320800830144435, - "openai/openai/gpt-5.5": 2.457247084006667 - }, - "overlap_duration_seconds": 321.3316014549928, - "start_count_by_model": { - "openai/openai/gpt-5-nano": 512, - "openai/openai/gpt-5.5": 512 - } - }, - "wall_time_seconds": 368.45588716701604, - "wave_diagnosis": "steady_interleaving" - } - ] -} diff --git a/artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/README.md b/artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/README.md deleted file mode 100644 index d28937cbd..000000000 --- a/artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# Mixed-model async scheduling live benchmark - -Rows: 2; model generations per scenario: 4. -Provider: `nvidia-internal`. -Upstream: `openai/openai/gpt-5.5` cap 1, max_tokens 32. -Downstream: `openai/openai/gpt-5-nano` cap 1, max_tokens 16. - -| Scenario | Buffer | Success | Wall s | Heavy starts | Nano starts | Overlap s | Idle p50/p95/max s | Diagnosis | Cap violation | -|---|---:|---|---:|---:|---:|---:|---|---|---| -| mixed_rows2_buf2_heavy1_nano1 | 2 | True | 4.67 | 2 | 2 | 1.37 | None/None/None | wave_or_serialized | {'openai/openai/gpt-5.5': False, 'openai/openai/gpt-5-nano': False} | diff --git a/artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/combined_summary.json b/artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/combined_summary.json deleted file mode 100644 index 6c0de069b..000000000 --- a/artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/combined_summary.json +++ /dev/null @@ -1,176 +0,0 @@ -{ - "buffers": [ - 2 - ], - "models": { - "downstream": "openai/openai/gpt-5-nano", - "upstream": "openai/openai/gpt-5.5" - }, - "provider": "nvidia-internal", - "rows": 2, - "summaries": [ - { - "artifacts": { - "flow_buckets": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/mixed_rows2_buf2_heavy1_nano1/flow_buckets.json", - "idle_times": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/mixed_rows2_buf2_heavy1_nano1/idle_times.json", - "request_events": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/mixed_rows2_buf2_heavy1_nano1/request_events.jsonl", - "summary": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/mixed_rows2_buf2_heavy1_nano1/summary.json", - "task_traces_csv": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/mixed_rows2_buf2_heavy1_nano1/task_traces.csv", - "task_traces_json": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/mixed_rows2_buf2_heavy1_nano1/task_traces.json", - "timeline": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench-nano/agent-mixed-pipeline/smoke/mixed_rows2_buf2_heavy1_nano1/timeline.jsonl" - }, - "buffer_size": 2, - "cap_violations": { - "openai/openai/gpt-5-nano": false, - "openai/openai/gpt-5.5": false - }, - "configured_caps": { - "openai/openai/gpt-5-nano": 1, - "openai/openai/gpt-5.5": 1 - }, - "error": null, - "expected_model_generations": 4, - "final_pressure_by_model": { - "openai/openai/gpt-5-nano": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 173981.798141416, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 1, - "effective_max": 1, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5-nano", - "provider_name": "nvidia-internal" - }, - "sequence": 42, - "waiters": 0 - }, - "openai/openai/gpt-5.5": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 173980.912700375, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 1, - "effective_max": 1, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5.5", - "provider_name": "nvidia-internal" - }, - "sequence": 33, - "waiters": 0 - } - }, - "idle_times": { - "count": 0, - "seconds": { - "max": null, - "p50": null, - "p95": null - } - }, - "max_tokens": { - "downstream": 16, - "upstream": 32 - }, - "model_completion_outcomes": { - "success": 4 - }, - "models": { - "downstream": "openai/openai/gpt-5-nano", - "upstream": "openai/openai/gpt-5.5" - }, - "provider": "nvidia-internal", - "request_event_counts": { - "model_request_completed": 4, - "model_request_started": 4, - "request_effective_cap_changed": 2, - "request_lease_acquired": 4, - "request_lease_released": 4, - "request_queue_drained": 4, - "request_queue_formed": 4, - "request_resource_registered": 2, - "request_wait_completed": 4, - "request_wait_started": 4 - }, - "request_wait_seconds_by_model": { - "openai/openai/gpt-5-nano": { - "count": 2, - "max": 2.2666004952043295e-05, - "p50": 2.204100019298494e-05, - "p95": 2.2666004952043295e-05 - }, - "openai/openai/gpt-5.5": { - "count": 1, - "max": 2.5834015104919672e-05, - "p50": 2.5834015104919672e-05, - "p95": 2.5834015104919672e-05 - } - }, - "rows": 2, - "scenario": "mixed_rows2_buf2_heavy1_nano1", - "success": true, - "task_failure_count": 5, - "task_success_count": 0, - "task_trace_count": 5, - "traffic": { - "active_intervals_by_model": { - "openai/openai/gpt-5-nano": [ - { - "duration_s": 1.3914966669981368, - "end": 173980.88520775, - "start": 173979.493711083 - }, - { - "duration_s": 0.8845595419988967, - "end": 173981.798155333, - "start": 173980.913595791 - } - ], - "openai/openai/gpt-5.5": [ - { - "duration_s": 1.7167455829912797, - "end": 173979.491799958, - "start": 173977.775054375 - }, - { - "duration_s": 1.397769832983613, - "end": 173980.912711916, - "start": 173979.514942083 - } - ] - }, - "completion_count_by_model": { - "openai/openai/gpt-5-nano": 2, - "openai/openai/gpt-5.5": 2 - }, - "max_in_flight_by_model": { - "openai/openai/gpt-5-nano": 1, - "openai/openai/gpt-5.5": 1 - }, - "max_start_gap_seconds_by_model": { - "openai/openai/gpt-5-nano": 1.419884708011523, - "openai/openai/gpt-5.5": 1.7398877080122475 - }, - "overlap_duration_seconds": 1.3702656669775024, - "start_count_by_model": { - "openai/openai/gpt-5-nano": 2, - "openai/openai/gpt-5.5": 2 - } - }, - "wall_time_seconds": 4.6713245830032974, - "wave_diagnosis": "wave_or_serialized" - } - ] -} diff --git a/artifacts/645-live-bench/agent-fan/README.md b/artifacts/645-live-bench/agent-fan/README.md deleted file mode 100644 index 80381379c..000000000 --- a/artifacts/645-live-bench/agent-fan/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# Agent Fan Live Benchmark - -Output: `/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan` - -## fan_out_mp2_short -- DAG shape: fan-out -- Wall time: 6.556s -- Rows / columns: 2 / 6 -- max_parallel_requests: 2; observed max request in-flight: 2; waiters: 4 -- Scheduler events: `{'dependency_ready': 7, 'ready_enqueued': 7, 'selected': 7, 'task_lease_acquired': 7, 'worker_spawned': 7, 'queue_drained': 2, 'task_completed': 7, 'task_lease_released': 7}` -- Request events: `{'request_resource_registered': 1, 'request_effective_cap_changed': 1, 'request_queue_formed': 3, 'request_wait_started': 6, 'request_wait_completed': 6, 'request_lease_acquired': 6, 'request_queue_drained': 3, 'model_request_started': 6, 'request_lease_released': 6, 'model_request_completed': 6}` -- Timeline: `/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_out_mp2_short/timeline.jsonl` - -## fan_in_mp2_mixed -- DAG shape: fan-in -- Wall time: 10.622s -- Rows / columns: 2 / 7 -- max_parallel_requests: 2; observed max request in-flight: 2; waiters: 4 -- Scheduler events: `{'dependency_ready': 9, 'ready_enqueued': 9, 'selected': 9, 'task_lease_acquired': 9, 'worker_spawned': 9, 'queue_drained': 4, 'task_completed': 9, 'task_lease_released': 9}` -- Request events: `{'request_resource_registered': 1, 'request_effective_cap_changed': 1, 'request_queue_formed': 5, 'request_wait_started': 8, 'request_wait_completed': 8, 'request_lease_acquired': 8, 'request_queue_drained': 5, 'model_request_started': 8, 'request_lease_released': 8, 'model_request_completed': 8}` -- Timeline: `/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_in_mp2_mixed/timeline.jsonl` diff --git a/artifacts/645-live-bench/agent-fan/combined_summary.json b/artifacts/645-live-bench/agent-fan/combined_summary.json deleted file mode 100644 index c237e82ec..000000000 --- a/artifacts/645-live-bench/agent-fan/combined_summary.json +++ /dev/null @@ -1,452 +0,0 @@ -{ - "created_at_epoch": 1778786197.816855, - "notes": [ - "All live model calls used alias gpt-5.5.", - "temperature was omitted because gpt-5.5 rejects temperature=0.", - "AdaptiveRequestAdmissionController.__init__, create_model_client, and AsyncTaskScheduler.__init__ were patched only in-process for observability injection." - ], - "output_dir": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan", - "scenarios": [ - { - "artifact_dataset_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_out_mp2_short/artifacts/fan_out_mp2_short_05-14-2026_151620/parquet-files", - "capacity_plan": { - "buffer_size": 2, - "observed_maxima": { - "queued_tasks_by_group": { - "local:local/default/topic/audience/constraint": 1, - "model:model/nvidia-internal/openai/openai/gpt-5.5/chat-completion/action_brief": 2, - "model:model/nvidia-internal/openai/openai/gpt-5.5/chat-completion/metric_brief": 2, - "model:model/nvidia-internal/openai/openai/gpt-5.5/chat-completion/risk_brief": 2 - }, - "row_groups_in_flight": 1, - "task_leases_by_resource": { - "llm_wait": 6, - "submission": 6 - } - }, - "row_group_concurrency": 3, - "submission_capacity": 256, - "task_resource_limits": { - "llm_wait": 256, - "local": 256, - "submission": 256 - } - }, - "dag_definition": [ - { - "allow_resize": false, - "column_type": "llm-text", - "drop": false, - "extract_reasoning_content": false, - "model_alias": "gpt-5.5", - "multi_modal_context": null, - "name": "action_brief", - "prompt": "For {{ audience }}, write one sentence under 18 words about the best immediate action for: {{ topic }}. Constraint: {{ constraint }}.", - "propagate_skip": true, - "skip": null, - "system_prompt": null, - "tool_alias": null, - "with_trace": "none" - }, - { - "allow_resize": false, - "column_type": "llm-text", - "drop": false, - "extract_reasoning_content": false, - "model_alias": "gpt-5.5", - "multi_modal_context": null, - "name": "risk_brief", - "prompt": "For {{ audience }}, write one sentence under 18 words about the highest operational risk for: {{ topic }}. Constraint: {{ constraint }}.", - "propagate_skip": true, - "skip": null, - "system_prompt": null, - "tool_alias": null, - "with_trace": "none" - }, - { - "allow_resize": false, - "column_type": "llm-text", - "drop": false, - "extract_reasoning_content": false, - "model_alias": "gpt-5.5", - "multi_modal_context": null, - "name": "metric_brief", - "prompt": "For {{ audience }}, write one sentence under 18 words about one useful measurement for: {{ topic }}. Constraint: {{ constraint }}.", - "propagate_skip": true, - "skip": null, - "system_prompt": null, - "tool_alias": null, - "with_trace": "none" - } - ], - "dag_shape": "fan-out", - "dataset_preview_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_out_mp2_short/dataset_preview.json", - "failures": [], - "files_changed_by_benchmark": [ - "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_out_mp2_short/seed.csv", - "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_out_mp2_short/timeline.jsonl", - "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_out_mp2_short/dataset_preview.json", - "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_out_mp2_short/summary.json" - ], - "max_parallel_requests": 2, - "max_tokens": 24, - "model_alias": "gpt-5.5", - "num_rows": 2, - "observed_max_active_request_leases": 2, - "observed_max_request_current_limit": 2, - "observed_max_request_in_flight": 2, - "observed_max_request_waiters": 4, - "observed_max_task_llm_wait_leases": 6, - "observed_max_task_submission_leases": 6, - "ready_frontier_by_column": { - "action_brief": { - "dependency_ready": 2, - "ready_enqueued": 2, - "selected": 2, - "task_completed": 2, - "task_lease_acquired": 2, - "task_lease_released": 2, - "worker_spawned": 2 - }, - "metric_brief": { - "dependency_ready": 2, - "ready_enqueued": 2, - "selected": 2, - "task_completed": 2, - "task_lease_acquired": 2, - "task_lease_released": 2, - "worker_spawned": 2 - }, - "risk_brief": { - "dependency_ready": 2, - "ready_enqueued": 2, - "selected": 2, - "task_completed": 2, - "task_lease_acquired": 2, - "task_lease_released": 2, - "worker_spawned": 2 - }, - "topic": { - "dependency_ready": 1, - "ready_enqueued": 1, - "selected": 1, - "task_completed": 1, - "task_lease_acquired": 1, - "task_lease_released": 1, - "worker_spawned": 1 - } - }, - "request_event_counts": { - "model_request_completed": 6, - "model_request_started": 6, - "request_effective_cap_changed": 1, - "request_lease_acquired": 6, - "request_lease_released": 6, - "request_queue_drained": 3, - "request_queue_formed": 3, - "request_resource_registered": 1, - "request_wait_completed": 6, - "request_wait_started": 6 - }, - "request_pressure_final": { - "domains": { - "nvidia-internal:openai/openai/gpt-5.5:chat": { - "active_lease_count": 0, - "current_limit": 2, - "effective_max": 2, - "in_flight_count": 0, - "last_outcome": "success", - "waiters": 0 - } - }, - "provider_models": { - "nvidia-internal:openai/openai/gpt-5.5:None": { - "aggregate_active_lease_count": 0, - "aggregate_in_flight": 0, - "aliases": [ - "gpt-5.5" - ], - "domains": { - "chat": 2 - }, - "raw_caps": { - "gpt-5.5": 2 - }, - "static_cap": 2 - } - } - }, - "result_columns": [ - "topic", - "audience", - "constraint", - "metric_brief", - "action_brief", - "risk_brief" - ], - "result_rows": 2, - "scenario": "fan_out_mp2_short", - "scheduler_event_counts": { - "dependency_ready": 7, - "queue_drained": 2, - "ready_enqueued": 7, - "selected": 7, - "task_completed": 7, - "task_lease_acquired": 7, - "task_lease_released": 7, - "worker_spawned": 7 - }, - "skip_health_check": true, - "task_traces": { - "by_column": { - "action_brief": 2, - "metric_brief": 2, - "risk_brief": 2, - "topic": 1 - }, - "count": 7, - "duration_seconds_max": null, - "duration_seconds_mean": null, - "duration_seconds_min": null - }, - "temperature_omitted": true, - "timeline_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_out_mp2_short/timeline.jsonl", - "wall_time_seconds": 6.556 - }, - { - "artifact_dataset_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_in_mp2_mixed/artifacts/fan_in_mp2_mixed_05-14-2026_151627/parquet-files", - "capacity_plan": { - "buffer_size": 2, - "observed_maxima": { - "queued_tasks_by_group": { - "local:local/default/topic/audience/constraint": 1, - "model:model/nvidia-internal/openai/openai/gpt-5.5/chat-completion/customer_view": 2, - "model:model/nvidia-internal/openai/openai/gpt-5.5/chat-completion/measurement_view": 2, - "model:model/nvidia-internal/openai/openai/gpt-5.5/chat-completion/operator_view": 2, - "model:model/nvidia-internal/openai/openai/gpt-5.5/chat-completion/synthesis_judge": 1 - }, - "row_groups_in_flight": 1, - "task_leases_by_resource": { - "llm_wait": 6, - "submission": 6 - } - }, - "row_group_concurrency": 3, - "submission_capacity": 256, - "task_resource_limits": { - "llm_wait": 256, - "local": 256, - "submission": 256 - } - }, - "dag_definition": [ - { - "allow_resize": false, - "column_type": "llm-text", - "drop": false, - "extract_reasoning_content": false, - "model_alias": "gpt-5.5", - "multi_modal_context": null, - "name": "operator_view", - "prompt": "In one sentence under 16 words, state an operator's most practical concern for {{ topic }}. Audience: {{ audience }}.", - "propagate_skip": true, - "skip": null, - "system_prompt": null, - "tool_alias": null, - "with_trace": "none" - }, - { - "allow_resize": false, - "column_type": "llm-text", - "drop": false, - "extract_reasoning_content": false, - "model_alias": "gpt-5.5", - "multi_modal_context": null, - "name": "customer_view", - "prompt": "In one sentence under 16 words, state the customer-visible consequence for {{ topic }}. Audience: {{ audience }}.", - "propagate_skip": true, - "skip": null, - "system_prompt": null, - "tool_alias": null, - "with_trace": "none" - }, - { - "allow_resize": false, - "column_type": "llm-text", - "drop": false, - "extract_reasoning_content": false, - "model_alias": "gpt-5.5", - "multi_modal_context": null, - "name": "measurement_view", - "prompt": "In one sentence under 16 words, state the measurement that would reveal success or failure for {{ topic }}. Audience: {{ audience }}.", - "propagate_skip": true, - "skip": null, - "system_prompt": null, - "tool_alias": null, - "with_trace": "none" - }, - { - "allow_resize": false, - "column_type": "llm-text", - "drop": false, - "extract_reasoning_content": false, - "model_alias": "gpt-5.5", - "multi_modal_context": null, - "name": "synthesis_judge", - "prompt": "Synthesize these three notes into a concise recommendation under 45 words. Topic: {{ topic }}\nOperator: {{ operator_view }}\nCustomer: {{ customer_view }}\nMeasurement: {{ measurement_view }}\nEnd with a short confidence phrase.", - "propagate_skip": true, - "skip": null, - "system_prompt": null, - "tool_alias": null, - "with_trace": "none" - } - ], - "dag_shape": "fan-in", - "dataset_preview_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_in_mp2_mixed/dataset_preview.json", - "failures": [], - "files_changed_by_benchmark": [ - "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_in_mp2_mixed/seed.csv", - "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_in_mp2_mixed/timeline.jsonl", - "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_in_mp2_mixed/dataset_preview.json", - "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_in_mp2_mixed/summary.json" - ], - "max_parallel_requests": 2, - "max_tokens": 64, - "model_alias": "gpt-5.5", - "num_rows": 2, - "observed_max_active_request_leases": 2, - "observed_max_request_current_limit": 2, - "observed_max_request_in_flight": 2, - "observed_max_request_waiters": 4, - "observed_max_task_llm_wait_leases": 6, - "observed_max_task_submission_leases": 6, - "ready_frontier_by_column": { - "customer_view": { - "dependency_ready": 2, - "ready_enqueued": 2, - "selected": 2, - "task_completed": 2, - "task_lease_acquired": 2, - "task_lease_released": 2, - "worker_spawned": 2 - }, - "measurement_view": { - "dependency_ready": 2, - "ready_enqueued": 2, - "selected": 2, - "task_completed": 2, - "task_lease_acquired": 2, - "task_lease_released": 2, - "worker_spawned": 2 - }, - "operator_view": { - "dependency_ready": 2, - "ready_enqueued": 2, - "selected": 2, - "task_completed": 2, - "task_lease_acquired": 2, - "task_lease_released": 2, - "worker_spawned": 2 - }, - "synthesis_judge": { - "dependency_ready": 2, - "ready_enqueued": 2, - "selected": 2, - "task_completed": 2, - "task_lease_acquired": 2, - "task_lease_released": 2, - "worker_spawned": 2 - }, - "topic": { - "dependency_ready": 1, - "ready_enqueued": 1, - "selected": 1, - "task_completed": 1, - "task_lease_acquired": 1, - "task_lease_released": 1, - "worker_spawned": 1 - } - }, - "request_event_counts": { - "model_request_completed": 8, - "model_request_started": 8, - "request_effective_cap_changed": 1, - "request_lease_acquired": 8, - "request_lease_released": 8, - "request_queue_drained": 5, - "request_queue_formed": 5, - "request_resource_registered": 1, - "request_wait_completed": 8, - "request_wait_started": 8 - }, - "request_pressure_final": { - "domains": { - "nvidia-internal:openai/openai/gpt-5.5:chat": { - "active_lease_count": 0, - "current_limit": 2, - "effective_max": 2, - "in_flight_count": 0, - "last_outcome": "success", - "waiters": 0 - } - }, - "provider_models": { - "nvidia-internal:openai/openai/gpt-5.5:None": { - "aggregate_active_lease_count": 0, - "aggregate_in_flight": 0, - "aliases": [ - "gpt-5.5" - ], - "domains": { - "chat": 2 - }, - "raw_caps": { - "gpt-5.5": 2 - }, - "static_cap": 2 - } - } - }, - "result_columns": [ - "topic", - "audience", - "constraint", - "operator_view", - "measurement_view", - "customer_view", - "synthesis_judge" - ], - "result_rows": 2, - "scenario": "fan_in_mp2_mixed", - "scheduler_event_counts": { - "dependency_ready": 9, - "queue_drained": 4, - "ready_enqueued": 9, - "selected": 9, - "task_completed": 9, - "task_lease_acquired": 9, - "task_lease_released": 9, - "worker_spawned": 9 - }, - "skip_health_check": true, - "task_traces": { - "by_column": { - "customer_view": 2, - "measurement_view": 2, - "operator_view": 2, - "synthesis_judge": 2, - "topic": 1 - }, - "count": 9, - "duration_seconds_max": null, - "duration_seconds_mean": null, - "duration_seconds_min": null - }, - "temperature_omitted": true, - "timeline_path": "/Users/etramel/src/DataDesigner/artifacts/645-live-bench/agent-fan/fan_in_mp2_mixed/timeline.jsonl", - "wall_time_seconds": 10.622 - } - ], - "schema": "agent-fan-live-benchmark-v1", - "workspace": "/Users/etramel/src/DataDesigner" -} diff --git a/artifacts/645-live-bench/agent-maxparallel/maxparallel_live_benchmark.json b/artifacts/645-live-bench/agent-maxparallel/maxparallel_live_benchmark.json deleted file mode 100644 index 2d2d47cb5..000000000 --- a/artifacts/645-live-bench/agent-maxparallel/maxparallel_live_benchmark.json +++ /dev/null @@ -1,507 +0,0 @@ -{ - "agent": "agent-maxparallel", - "all_cap_checks_passed": true, - "branch": "scheduling-yolo", - "command": "DATA_DESIGNER_ASYNC_ENGINE=1 DATA_DESIGNER_ASYNC_TRACE=1 PYTHONUNBUFFERED=1 .venv/bin/python - <<'PY' # benchmark driver", - "files_written": [ - "artifacts/645-live-bench/agent-maxparallel/maxparallel_live_benchmark.json", - "artifacts/645-live-bench/agent-maxparallel/maxparallel_live_benchmark.md", - "artifacts/645-live-bench/agent-maxparallel/serialish_cap1_2rows_2cols/request_events.jsonl", - "artifacts/645-live-bench/agent-maxparallel/stress_cap2_3rows_2cols/request_events.jsonl", - "artifacts/645-live-bench/agent-maxparallel/fanout_cap3_2rows_3cols/request_events.jsonl", - "artifacts/645-live-bench/agent-maxparallel/serialish_cap1_2rows_2cols/task_traces.csv", - "artifacts/645-live-bench/agent-maxparallel/stress_cap2_3rows_2cols/task_traces.csv", - "artifacts/645-live-bench/agent-maxparallel/fanout_cap3_2rows_3cols/task_traces.csv", - "artifacts/645-live-bench/agent-maxparallel/serialish_cap1_2rows_2cols/summary.json", - "artifacts/645-live-bench/agent-maxparallel/stress_cap2_3rows_2cols/summary.json", - "artifacts/645-live-bench/agent-maxparallel/fanout_cap3_2rows_3cols/summary.json" - ], - "health_check_policy": "skip_health_check=True in in-memory ModelConfig", - "model_alias": "gpt-5.5", - "output_dir": "artifacts/645-live-bench/agent-maxparallel", - "results": [ - { - "dataset_sha256": "6836d3cddee8039113ad6a8548d8a34013e2005328ddfa4d500432f3c3d981e3", - "dataset_shape": [ - 2, - 3 - ], - "event_path": "artifacts/645-live-bench/agent-maxparallel/serialish_cap1_2rows_2cols/request_events.jsonl", - "expected_requests": 4, - "failure": null, - "final_pressure": { - "domains": { - "{'provider_name': 'nvidia-internal', 'model_id': 'openai/openai/gpt-5.5', 'domain': 'chat'}": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 171960.385970541, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 1, - "effective_max": 1, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5.5", - "provider_name": "nvidia-internal" - }, - "sequence": 35, - "waiters": 0 - } - }, - "provider_models": { - "{'provider_name': 'nvidia-internal', 'model_id': 'openai/openai/gpt-5.5'}": { - "aggregate_active_lease_count": 0, - "aggregate_in_flight": 0, - "aliases": [ - "gpt-5.5" - ], - "captured_at": 171960.386059333, - "domains": { - "chat": 1 - }, - "provider_model": { - "model_id": "openai/openai/gpt-5.5", - "provider_name": "nvidia-internal" - }, - "raw_caps": { - "gpt-5.5": 1 - }, - "sequence": 35, - "static_cap": 1 - } - } - }, - "observed": { - "event_counts": { - "model_request_completed": 4, - "model_request_started": 4, - "request_effective_cap_changed": 1, - "request_lease_acquired": 4, - "request_lease_released": 4, - "request_queue_drained": 2, - "request_queue_formed": 2, - "request_resource_registered": 1, - "request_wait_completed": 4, - "request_wait_started": 4 - }, - "max_model_request_overlap": 1, - "max_request_lease_overlap": 1, - "max_snapshot_in_flight": 1, - "max_snapshot_waiters": 3, - "model_request_overlap_samples": [ - { - "active": 1, - "at": 171953.541596166, - "event_kind": "model_request_started", - "lease_ids": [ - "69acd365b1f2458a9174f6c02838f640" - ] - } - ], - "request_lease_overlap_samples": [ - { - "active": 1, - "at": 171953.541588541, - "event_kind": "request_lease_acquired", - "lease_ids": [ - "69acd365b1f2458a9174f6c02838f640" - ] - } - ], - "snapshot_limits_seen": [ - [ - 1, - 1 - ] - ], - "wait_metrics": { - "completed_waits": 4, - "max_wait_seconds": 5.408440416009398, - "mean_wait_seconds": 2.7624485100095626, - "queued_waits_gt_10ms": 3 - } - }, - "output_lengths_by_column": { - "note_1": [ - 0, - 0 - ], - "note_2": [ - 0, - 0 - ] - }, - "passed_cap_check": true, - "saturated_or_serial_expected": true, - "scenario": { - "description": "Serial-ish comparison: 2 rows x 2 independent LLM columns, cap=1.", - "id": "serialish_cap1_2rows_2cols", - "llm_columns": 2, - "max_parallel": 1, - "max_tokens": 24, - "num_records": 2, - "prompt_style": "short" - }, - "task_trace_metrics": { - "max_task_overlap": 4, - "task_count_by_status": { - "ok": 5 - }, - "task_count_by_type": { - "cell": 4, - "from_scratch": 1 - } - }, - "trace_path": "artifacts/645-live-bench/agent-maxparallel/serialish_cap1_2rows_2cols/task_traces.csv", - "wall_time_seconds": 9.210403208009666 - }, - { - "dataset_sha256": "80e7a6af4b81a244e5628494c311007acdfa58a092fce23a70403942a133537c", - "dataset_shape": [ - 3, - 3 - ], - "event_path": "artifacts/645-live-bench/agent-maxparallel/stress_cap2_3rows_2cols/request_events.jsonl", - "expected_requests": 6, - "failure": null, - "final_pressure": { - "domains": { - "{'provider_name': 'nvidia-internal', 'model_id': 'openai/openai/gpt-5.5', 'domain': 'chat'}": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 171964.953983875, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 2, - "effective_max": 2, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5.5", - "provider_name": "nvidia-internal" - }, - "sequence": 51, - "waiters": 0 - } - }, - "provider_models": { - "{'provider_name': 'nvidia-internal', 'model_id': 'openai/openai/gpt-5.5'}": { - "aggregate_active_lease_count": 0, - "aggregate_in_flight": 0, - "aliases": [ - "gpt-5.5" - ], - "captured_at": 171964.954019958, - "domains": { - "chat": 2 - }, - "provider_model": { - "model_id": "openai/openai/gpt-5.5", - "provider_name": "nvidia-internal" - }, - "raw_caps": { - "gpt-5.5": 2 - }, - "sequence": 51, - "static_cap": 2 - } - } - }, - "observed": { - "event_counts": { - "model_request_completed": 6, - "model_request_started": 6, - "request_effective_cap_changed": 1, - "request_lease_acquired": 6, - "request_lease_released": 6, - "request_queue_drained": 3, - "request_queue_formed": 3, - "request_resource_registered": 1, - "request_wait_completed": 6, - "request_wait_started": 6 - }, - "max_model_request_overlap": 2, - "max_request_lease_overlap": 2, - "max_snapshot_in_flight": 2, - "max_snapshot_waiters": 4, - "model_request_overlap_samples": [ - { - "active": 1, - "at": 171960.396262208, - "event_kind": "model_request_started", - "lease_ids": [ - "a8cc785352f14de084a437d482f9991c" - ] - }, - { - "active": 2, - "at": 171960.409349833, - "event_kind": "model_request_started", - "lease_ids": [ - "1bbe6fce354e451086fa9ee346193601", - "a8cc785352f14de084a437d482f9991c" - ] - } - ], - "request_lease_overlap_samples": [ - { - "active": 1, - "at": 171960.396255666, - "event_kind": "request_lease_acquired", - "lease_ids": [ - "a8cc785352f14de084a437d482f9991c" - ] - }, - { - "active": 2, - "at": 171960.409342875, - "event_kind": "request_lease_acquired", - "lease_ids": [ - "1bbe6fce354e451086fa9ee346193601", - "a8cc785352f14de084a437d482f9991c" - ] - } - ], - "snapshot_limits_seen": [ - [ - 2, - 2 - ] - ], - "wait_metrics": { - "completed_waits": 6, - "max_wait_seconds": 3.0761253340169787, - "mean_wait_seconds": 1.5652659305002696, - "queued_waits_gt_10ms": 4 - } - }, - "output_lengths_by_column": { - "note_1": [ - 0, - 0, - 0 - ], - "note_2": [ - 0, - 0, - 0 - ] - }, - "passed_cap_check": true, - "saturated_or_serial_expected": true, - "scenario": { - "description": "Max-parallel stress: 3 rows x 2 independent LLM columns, cap=2.", - "id": "stress_cap2_3rows_2cols", - "llm_columns": 2, - "max_parallel": 2, - "max_tokens": 24, - "num_records": 3, - "prompt_style": "short" - }, - "task_trace_metrics": { - "max_task_overlap": 6, - "task_count_by_status": { - "ok": 7 - }, - "task_count_by_type": { - "cell": 6, - "from_scratch": 1 - } - }, - "trace_path": "artifacts/645-live-bench/agent-maxparallel/stress_cap2_3rows_2cols/task_traces.csv", - "wall_time_seconds": 4.565962042019237 - }, - { - "dataset_sha256": "67ab4baa1ce3be86a730144609088c3e697bac06c7b3c51c5e9043ae6fed3498", - "dataset_shape": [ - 2, - 4 - ], - "event_path": "artifacts/645-live-bench/agent-maxparallel/fanout_cap3_2rows_3cols/request_events.jsonl", - "expected_requests": 6, - "failure": null, - "final_pressure": { - "domains": { - "{'provider_name': 'nvidia-internal', 'model_id': 'openai/openai/gpt-5.5', 'domain': 'chat'}": { - "active_lease_count": 0, - "blocked_until_monotonic": null, - "captured_at": 171968.478985666, - "consecutive_rate_limits": 0, - "cooldown_remaining_seconds": 0.0, - "current_limit": 3, - "effective_max": 3, - "in_flight_count": 0, - "last_outcome": "success", - "leak_diagnostics": {}, - "rate_limit_ceiling": 0, - "resource": { - "domain": "chat", - "model_id": "openai/openai/gpt-5.5", - "provider_name": "nvidia-internal" - }, - "sequence": 53, - "waiters": 0 - } - }, - "provider_models": { - "{'provider_name': 'nvidia-internal', 'model_id': 'openai/openai/gpt-5.5'}": { - "aggregate_active_lease_count": 0, - "aggregate_in_flight": 0, - "aliases": [ - "gpt-5.5" - ], - "captured_at": 171968.479015291, - "domains": { - "chat": 3 - }, - "provider_model": { - "model_id": "openai/openai/gpt-5.5", - "provider_name": "nvidia-internal" - }, - "raw_caps": { - "gpt-5.5": 3 - }, - "sequence": 53, - "static_cap": 3 - } - } - }, - "observed": { - "event_counts": { - "model_request_completed": 6, - "model_request_started": 6, - "request_effective_cap_changed": 1, - "request_lease_acquired": 6, - "request_lease_released": 6, - "request_queue_drained": 4, - "request_queue_formed": 4, - "request_resource_registered": 1, - "request_wait_completed": 6, - "request_wait_started": 6 - }, - "max_model_request_overlap": 3, - "max_request_lease_overlap": 3, - "max_snapshot_in_flight": 3, - "max_snapshot_waiters": 3, - "model_request_overlap_samples": [ - { - "active": 1, - "at": 171964.964600541, - "event_kind": "model_request_started", - "lease_ids": [ - "24233255c6b94f3487df94d152568c7a" - ] - }, - { - "active": 2, - "at": 171964.977525916, - "event_kind": "model_request_started", - "lease_ids": [ - "24233255c6b94f3487df94d152568c7a", - "f4aab4688e9247c181caf077b04d2858" - ] - }, - { - "active": 3, - "at": 171964.978175416, - "event_kind": "model_request_started", - "lease_ids": [ - "24233255c6b94f3487df94d152568c7a", - "43ba7ca403f741888f681673e39f249b", - "f4aab4688e9247c181caf077b04d2858" - ] - } - ], - "request_lease_overlap_samples": [ - { - "active": 1, - "at": 171964.964594083, - "event_kind": "request_lease_acquired", - "lease_ids": [ - "24233255c6b94f3487df94d152568c7a" - ] - }, - { - "active": 2, - "at": 171964.9775195, - "event_kind": "request_lease_acquired", - "lease_ids": [ - "24233255c6b94f3487df94d152568c7a", - "f4aab4688e9247c181caf077b04d2858" - ] - }, - { - "active": 3, - "at": 171964.978169541, - "event_kind": "request_lease_acquired", - "lease_ids": [ - "24233255c6b94f3487df94d152568c7a", - "43ba7ca403f741888f681673e39f249b", - "f4aab4688e9247c181caf077b04d2858" - ] - } - ], - "snapshot_limits_seen": [ - [ - 3, - 3 - ] - ], - "wait_metrics": { - "completed_waits": 6, - "max_wait_seconds": 2.133320500026457, - "mean_wait_seconds": 0.8536303541671563, - "queued_waits_gt_10ms": 3 - } - }, - "output_lengths_by_column": { - "note_1": [ - 0, - 0 - ], - "note_2": [ - 0, - 0 - ], - "note_3": [ - 0, - 0 - ] - }, - "passed_cap_check": true, - "saturated_or_serial_expected": true, - "scenario": { - "description": "Fan-out stress: 2 rows x 3 independent LLM columns, cap=3.", - "id": "fanout_cap3_2rows_3cols", - "llm_columns": 3, - "max_parallel": 3, - "max_tokens": 24, - "num_records": 2, - "prompt_style": "short" - }, - "task_trace_metrics": { - "max_task_overlap": 6, - "task_count_by_status": { - "ok": 7 - }, - "task_count_by_type": { - "cell": 6, - "from_scratch": 1 - } - }, - "trace_path": "artifacts/645-live-bench/agent-maxparallel/fanout_cap3_2rows_3cols/task_traces.csv", - "wall_time_seconds": 3.522671666025417 - } - ], - "schema": "data-designer-live-maxparallel-benchmark-v1", - "started_at_unix": 1778786014.1403196, - "temperature_policy": "omitted entirely; model default used", - "total_wall_time_seconds": 17.35138870900846 -} diff --git a/artifacts/645-live-bench/agent-maxparallel/maxparallel_live_benchmark.md b/artifacts/645-live-bench/agent-maxparallel/maxparallel_live_benchmark.md deleted file mode 100644 index 0fa710894..000000000 --- a/artifacts/645-live-bench/agent-maxparallel/maxparallel_live_benchmark.md +++ /dev/null @@ -1,22 +0,0 @@ -# Live Max Parallel Benchmark - -- model alias: `gpt-5.5` -- temperature: omitted -- health checks: skipped with in-memory `ModelConfig(skip_health_check=True)` -- total wall time: `17.351s` -- cap checks passed: `True` - -| scenario | cap | requests | wall s | max snapshot in-flight | max lease overlap | max model overlap | max wait s | cap ok | failure | -|---|---:|---:|---:|---:|---:|---:|---:|---|---| -| serialish_cap1_2rows_2cols | 1 | 4 | 9.210 | 1 | 1 | 1 | 5.408 | True | | -| stress_cap2_3rows_2cols | 2 | 6 | 4.566 | 2 | 2 | 2 | 3.076 | True | | -| fanout_cap3_2rows_3cols | 3 | 6 | 3.523 | 3 | 3 | 3 | 2.133 | True | | - -## Artifacts - -- `serialish_cap1_2rows_2cols` events: `artifacts/645-live-bench/agent-maxparallel/serialish_cap1_2rows_2cols/request_events.jsonl` -- `serialish_cap1_2rows_2cols` traces: `artifacts/645-live-bench/agent-maxparallel/serialish_cap1_2rows_2cols/task_traces.csv` -- `stress_cap2_3rows_2cols` events: `artifacts/645-live-bench/agent-maxparallel/stress_cap2_3rows_2cols/request_events.jsonl` -- `stress_cap2_3rows_2cols` traces: `artifacts/645-live-bench/agent-maxparallel/stress_cap2_3rows_2cols/task_traces.csv` -- `fanout_cap3_2rows_3cols` events: `artifacts/645-live-bench/agent-maxparallel/fanout_cap3_2rows_3cols/request_events.jsonl` -- `fanout_cap3_2rows_3cols` traces: `artifacts/645-live-bench/agent-maxparallel/fanout_cap3_2rows_3cols/task_traces.csv` diff --git a/reports/async-scheduling-epic-benchmark-report.html b/reports/async-scheduling-epic-benchmark-report.html deleted file mode 100644 index 433f8a021..000000000 --- a/reports/async-scheduling-epic-benchmark-report.html +++ /dev/null @@ -1,791 +0,0 @@ - - - - - - Async Scheduling Epic QA and Benchmark Report - - - -
    -

    Async Scheduling Epic QA and Benchmark Report

    -

    - Status report for issue 645 on branch scheduling-yolo: implementation shape, - verification gates, and live benchmark evidence gathered from the GPT-5.5 and GPT-5 Nano - traffic runs. -

    -
    - Generated: 2026-05-14 - Workspace: /Users/etramel/src/DataDesigner - Primary spec: plans/645/README.md - Live artifacts: artifacts/645-live-bench* -
    -
    - -
    -
    -

    Executive Summary

    -

    - The epic implementation is now shaped around explicit two-stage admission control: - scheduler-level task admission decides when ready dataset work may run, and request-level - admission controls each concrete provider/model call. Observability has enough layer - separation to explain whether a run is limited by readiness, task scheduling, request - queueing, provider latency, AIMD ramp, or downstream fan-in dependencies. -

    -
    -
    - 17,408 - completed model requests in final 1024+ live scenarios, excluding small smoke runs -
    -
    - 0 - rate-limit events or provider failures in final Nano scale lanes -
    -
    - Held - all observed max_parallel_requests caps in completed scale scenarios -
    -
    - < 0.071s - p95 downstream idle in the dedicated GPT-5.5 -> Nano mixed pipeline runs -
    -
    -
    - Current read: the scheduler is interleaving downstream work at row granularity - rather than running all upstream work first. Buffer size is still a real operations knob: - larger buffers can deepen upstream queues and amplify waiters, especially with slow GPT-5.5 - upstream work. -
    -
    - -
    -

    Epic Implementation Shape

    -

    - The implementation follows the plan in plans/645. - The core move is from implicit scheduler behavior and transport-local throttling toward - typed resource metadata, fair ready-work selection, task leases, request leases, and - correlated event streams. -

    - -
    -
    - Column Generator - Declares static SchedulingMetadata; plugins do not see runtime queues. -
    -
    - Task Resolver - Maps metadata to TaskGroupSpec and scheduler resource requests. -
    -
    - Completion Tracker - Owns dependency readiness and ready frontier state. -
    -
    - Fair Task Queue - Orders ready work with non-mutating selection and explicit commit. -
    -
    - Task Admission - Grants scheduler task leases before workers spawn. -
    -
    - Model Executor - Wraps concrete model calls; every attempt enters request admission. -
    -
    - Request Admission - AIMD/provider-model-domain request leases, pressure snapshots, and event stream. -
    -
    - -
    -
    -

    Primary Code Areas

    -
      -
    • data_designer.config.scheduling: generator-facing scheduling metadata and validation.
    • -
    • TaskSchedulingResolver: bridge from static metadata into scheduler groups/resources.
    • -
    • FairTaskQueue: non-mutating select plus explicit commit, with queue views for policy.
    • -
    • TaskAdmissionController: scheduler task leases and resource accounting.
    • -
    • ModelRequestExecutor: durable per-attempt model-call boundary.
    • -
    • AdaptiveRequestAdmissionController: provider/model/domain AIMD and request leases.
    • -
    • observability.py and capacity.py: scheduler/request event DTOs, snapshots, and plan evidence.
    • -
    -
    -
    -

    Cleanup Direction

    -
      -
    • Legacy scheduler hint naming is removed in favor of scheduling metadata and task scheduling.
    • -
    • Transport-local throttle wrappers are replaced by request admission and model request execution.
    • -
    • Docs and diagrams were updated across architecture docs, devnotes, and Fern assets.
    • -
    • Run config keeps request admission internal for V1; benchmark evidence informs future public knobs.
    • -
    -
    -
    -
    - -
    -

    Verification and QA Gates

    -

    - The implementation has been checked with unit, package, static, and live-provider QA passes. - The live benchmark agents also exercised alternative workflows, config shapes, and endpoint/model - combinations. -

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    GateStatusEvidence
    Ruff lintPassed.venv/bin/ruff check packages scripts tests_e2e
    Format checkPassed.venv/bin/ruff format --check packages scripts tests_e2e
    Whitespace diff checkPassedgit diff --check
    Config package tests570 passedIncludes scheduling metadata validation and config regression coverage.
    Engine package tests1,995 passedIncludes scheduler, fair queue, task admission, request admission, executor, and capacity tests.
    Interface package tests899 passedOne skipped test in the interface suite.
    Benchmark schema checksPassedDeterministic benchmark artifact and derived metric checks passed.
    Legacy naming gatesPassedStale throttle/semaphore/scheduling-hint term checks were clean except expected removals and migration references.
    -
    -
    - Provider compatibility findings: GPT-5.5 rejected temperature=0, so live traffic - omits temperature. GPT-5.5 also showed output-limit brittleness at max_tokens=24; short - GPT-5.5 prompts should use a safer ceiling such as 64+ tokens. -
    -
    - -
    -

    Live Benchmark Matrix

    -

    GPT-5 Nano 1024+ Scale Runs

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    LaneScenarioShapeBufferRequestsWallCapSignal
    Cap scalecap8_rows512_cols2_buffer32512 x 2 Nano columns321024/1024160.30s8/8Start CV 0.252; max waiters 30.
    Cap scalecap8_rows512_cols2_buffer512512 x 2 Nano columns5121024/1024167.08s8/8Start CV 0.246; max waiters 31.
    Cap sweepfinal1024_cap8_buffer32512 x 2 Nano columns321024/1024155.37s8/8Steady traffic; cap enforced.
    Cap sweepfinal1024_cap8_buffer128512 x 2 Nano columns1281024/1024153.96s8/8Steady traffic; cap enforced.
    Cap sweepfinal1024_cap8_buffer512512 x 2 Nano columns5121024/1024150.27s8/8Lowest start CV in that lane.
    AIMD scalefinal-512x2-buffer32512 x 2 Nano columns321024/1024104.823s16/16Limit ramped 1 -> 16 in 50.332s; p95 wait 19.371s.
    AIMD scalefinal-512x2-buffer512512 x 2 Nano columns5121024/1024114.522s16/16Limit ramped 1 -> 16 in 57.062s; p95 wait 22.949s.
    Fan scalefanout_buffer32256 x 4 Nano branches321024/1024132.24s8/8Balanced branch traffic; p95 wait 8.97s.
    Fan scalefanout_buffer256256 x 4 Nano branches2561024/1024125.94s8/8Balanced branch traffic; p95 wait 8.09s.
    Fan scalefanin_buffer256256 rows, 3 upstream + 1 synthesis2561024/1024141.64s8/8Row-level fan-in; downstream delay p95 1.281s.
    -
    - -

    Mixed GPT-5.5 Upstream -> GPT-5 Nano Downstream

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    LaneScenarioShapeBufferRequestsWallIdle p95/maxInterpretation
    Dedicated mixed pipelinemixed_rows512_buf32_heavy4_nano8512 GPT-5.5 + 512 Nano321024/1024368.46s0.00484s / 0.05287sSteady interleaving; GPT-5.5 waiters 92; Nano did not starve.
    Dedicated mixed pipelinemixed_rows512_buf256_heavy4_nano8512 GPT-5.5 + 512 Nano2561024/1024366.44s0.07076s / 0.13278sSteady interleaving; GPT-5.5 waiters 252 with larger buffer.
    Alternate bottleneck lanemixed_rows512_buf32_1024gens512 GPT-5.5 + 512 Nano321024/1024259.315s0.002748s / 0.028367sWave-like per-second starts, but very low downstream idle.
    Alternate bottleneck lanemixed_rows512_buf256_1024gens512 GPT-5.5 + 512 Nano2561024/1024264.457s0.111947s / 0.356167sWave-like traffic; larger buffer amplified GPT-5.5 wait p95 to 129.107s.
    -
    - -

    Initial GPT-5.5 Live QA

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ScenarioCapRequestsWallMax in-flightResult
    serialish_cap1_2rows_2cols149.210s1Cap held
    stress_cap2_3rows_2cols264.566s2Cap held
    fanout_cap3_2rows_3cols363.523s3Cap held
    -
    -
    - -
    -

    What The Benchmarks Say

    -
    -
    -

    Confirmed

    -
      -
    • Caps Request in-flight counts did not exceed configured caps in completed scale lanes.
    • -
    • AIMD Nano AIMD ramps were monotonic to cap with no decreases or rate limits.
    • -
    • Fan-in Downstream work starts per row, not after a global upstream wave.
    • -
    • Mixed model flow Slow GPT-5.5 upstream and fast Nano downstream overlap for most of the run.
    • -
    • Lease cleanup Successful runs ended with no active request leases or waiters in reported pressure snapshots.
    • -
    -
    -
    -

    Watch Items

    -
      -
    • Buffers Larger buffers can increase upstream waiters and wait p95 even when wall time is similar.
    • -
    • Telemetry wiring The benchmark agents injected sinks in-process; product/operator wiring should make this easier without monkeypatching.
    • -
    • Provider params Model-specific parameter compatibility needs explicit docs: GPT-5.5 rejects temperature=0.
    • -
    • Output limits GPT-5.5 short prompts can fail at max_tokens=24; use safer defaults in examples.
    • -
    -
    -
    -
    - -
    -

    Artifact Index

    -

    - The report is intentionally a summary. Use these artifacts for timelines, request events, - scheduler events, task traces, flow buckets, and per-scenario JSON summaries. -

    - -
    - -
    -

    Recommended Follow-Ups

    -
      -
    • Promote the benchmark sink injection pattern into an operator-facing debug/benchmark hook so future runs do not need monkeypatches.
    • -
    • Add a concise buffer-size guidance note: smaller buffers reduce upstream wait amplification; larger buffers can improve throughput in pure Nano fan-out but may deepen slow-model queues.
    • -
    • Add a mixed-model benchmark to the reusable harness: slow upstream -> fast downstream with idle-time and overlap metrics as first-class outputs.
    • -
    • Capture the provider compatibility notes in model docs or example configs: omit temperature for GPT-5.5 and avoid very low GPT-5.5 token ceilings.
    • -
    • Keep the 1024+ Nano scenarios as regression recipes for cap enforcement, AIMD ramp, fan-in readiness, and buffer-induced waves.
    • -
    -
    -
    - -
    - Report generated from local benchmark artifacts and the issue 645 plan. It does not include prompts, - completions, row values, secrets, or raw provider payloads. -
    - - diff --git a/reports/async-scheduling-idle-analysis.html b/reports/async-scheduling-idle-analysis.html deleted file mode 100644 index 13107060e..000000000 --- a/reports/async-scheduling-idle-analysis.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - -Async Scheduling Idle-Time Analysis - - - - - -
    -
    -

    DataDesigner async scheduler

    -

    Idle-Time Analysis

    -

    This report measures where model-capacity idle time appears, which knobs change it, and which remaining idle looks avoidable by scheduler or admission-control changes.

    -
    Benchmark cases21
    Largest synthetic generation count8,192
    Median llm_wait utilization70.5%
    Worst total llm_wait idle91.9%
    Worst starved llm_wait idle40.0%
    Best llm_wait utilization89.4%
    Validationpass
    -
    -
    -

    What Counts As Idle

    -

    General idle is unused configured capacity. It includes expected idle when dependencies are not ready. Starved idle is the actionable subset: a resource has idle slots while the scheduler already has queued work that requests that resource. For this refactor, the most important resource is llm_wait, because it maps to model-serving capacity that should stay busy when runnable model work exists.

    -
    -
    -

    Findings

    -
    • Scale helps once enough runnable work exists. The row-scale sweep moved from 75.2% to 82.0% llm_wait utilization (+6.8 pp). Larger runs amortize startup and drain phases.
    • Runnable frontier width is the main controllable idle source. In the row-group sweep, utilization moved from 16.7% to 89.4% (+72.7 pp), while starved llm_wait idle improved by 8.0% between the narrowest case and the best observed case.
    • Total idle and starved idle diagnose different causes. narrow-frontier-high-cap had 91.9% total llm_wait idle but only 21.1% starved idle. The remaining idle is dependency-horizon idle: the scheduler often had no ready model work because the admitted frontier was too small.
    • Capacity increases expose underfeeding. In the capacity sweep, modeled llm_wait cap 2 reached 85.1% utilization, while cap 8 reached 33.4% with the same small row frontier.
    • Custom model scheduling metadata changes traffic shape. With synthetic custom_model weight forced to 1, llm_wait utilization was 81.9%; with the harness defaulting the weight to modeled model capacity it was 68.6%. This run did not show weight=1 underfeeding because each synthetic column is its own group, but it does show that group identity and weight are first-order benchmark inputs.
    • High capacity magnifies traffic-shape effects. The stress case with one large row group and high cap reached 8.1% utilization; the wide-frontier shape reached 70.5%. This is the vLLM-server-idle failure mode the scheduler needs to expose and track over time.
    • Worst observed actionable idle: rows-256 had 40.0% starved llm_wait idle and 5.57 s max ready-to-dispatch gap.
    -
    -
    -

    Figures

    -
    Scale: more rows smooth the model-resource flowsynthetic model generationsratio0maxllm_wait utilization: 0.7520llm_wait utilization: 0.6753llm_wait utilization: 0.6000llm_wait utilization: 0.7101llm_wait utilization: 0.8196llm_wait utilizationstarved llm_wait idle: 0.2431starved llm_wait idle: 0.3241starved llm_wait idle: 0.3997starved llm_wait idle: 0.2898starved llm_wait idle: 0.1804starved llm_wait idle5121.0k2.0k4.1k8.2k
    -
    Frontier width: row-group concurrency changes starvationrow-group concurrencyratio / seconds0maxllm_wait utilization: 0.1673llm_wait utilization: 0.3001llm_wait utilization: 0.5992llm_wait utilization: 0.8941llm_wait utilizationstarved llm_wait idle: 0.1825starved llm_wait idle: 0.2467starved llm_wait idle: 0.2291starved llm_wait idle: 0.1029starved llm_wait idledownstream ready p95: 0.0012downstream ready p95: 0.0015downstream ready p95: 0.0017downstream ready p95: 0.0056downstream ready p951248
    -
    Buffer size: row-group shape affects traffic wavesbuffer sizeratio / seconds0maxllm_wait utilization: 0.8200llm_wait utilization: 0.7904llm_wait utilization: 0.7766llm_wait utilization: 0.7497llm_wait utilization: 0.7024llm_wait utilizationstarved llm_wait idle: 0.1799starved llm_wait idle: 0.2095starved llm_wait idle: 0.2232starved llm_wait idle: 0.2502starved llm_wait idle: 0.2975starved llm_wait idlellm ready gap p95: 0.0742llm ready gap p95: 0.3464llm ready gap p95: 1.5943llm ready gap p95: 8.9931llm ready gap p95: 21.7638llm ready gap p95141664256
    -
    Capacity scaling: underfeeding becomes visible as cap risesmodeled llm_wait capacityratio / kgen/s0maxllm_wait utilization: 0.8510llm_wait utilization: 0.5724llm_wait utilization: 0.3341llm_wait utilizationstarved llm_wait idle: 0.1476starved llm_wait idle: 0.2481starved llm_wait idle: 0.3016starved llm_wait idlethroughput / 1000: 0.6451throughput / 1000: 0.6935throughput / 1000: 1.0527throughput / 1000248
    -
    Custom-model metadata changes per-stage fairnesscaseratio0maxllm_wait utilization: 0.6855starved llm_wait idle: 0.3144model capllm_wait utilization: 0.8187starved llm_wait idle: 0.1812weight 1llm_wait utilizationstarved llm_wait idle
    -
    Stress shapes: narrow vs wide runnable horizoncaseratio0maxllm_wait utilization: 0.0806total llm_wait idle: 0.9194starved llm_wait idle: 0.2108burstiness / 2: 0.3709narrow frontier high capllm_wait utilization: 0.7049total llm_wait idle: 0.2951starved llm_wait idle: 0.2951burstiness / 2: 0.1964wide frontier high capllm_wait utilizationtotal llm_wait idlestarved llm_wait idleburstiness / 2
    -
    -
    -

    Benchmark Matrix

    -
    casesweepgenerationsrowsbufferrg concllm caputilidlestarved idleready p95overlapthroughputartifact
    buffer-1buffer-size4,09651214482.0%18.0%18.0%74.2 ms100.0%342/sjson
    buffer-16buffer-size4,096512164477.7%22.3%22.3%1.59 s99.9%385/sjson
    buffer-256buffer-size4,0965122564470.2%29.8%29.8%21.76 s99.9%163/sjson
    buffer-4buffer-size4,09651244479.0%21.0%20.9%346.4 ms99.9%450/sjson
    buffer-64buffer-size4,096512644475.0%25.0%25.0%8.99 s99.9%223/sjson
    weight-custom-model-1custom-model-weight4,096512644481.9%18.1%18.1%11.79 s99.9%185/sjson
    weight-model-capacitycustom-model-weight4,096512644468.6%31.4%31.4%8.65 s99.9%236/sjson
    capacity-16llm-capacity1,02451214833.4%66.6%30.2%1.0 ms99.6%1,053/sjson
    capacity-4llm-capacity1,02451214285.1%14.9%14.8%4.6 ms99.8%645/sjson
    capacity-8llm-capacity1,02451214457.2%42.8%24.8%2.5 ms99.7%693/sjson
    row-groups-1row-group-concurrency1,02451211416.7%83.3%18.2%1.1 ms99.9%319/sjson
    row-groups-2row-group-concurrency1,02451212430.0%70.0%24.7%1.4 ms99.8%518/sjson
    row-groups-4row-group-concurrency1,02451214459.9%40.1%22.9%1.4 ms99.6%919/sjson
    row-groups-8row-group-concurrency1,02451218489.4%10.6%10.3%4.5 ms99.6%913/sjson
    rows-1024row-scale8,1921,024644482.0%18.0%18.0%15.99 s100.0%144/sjson
    rows-128row-scale1,024128644467.5%32.5%32.4%1.58 s99.3%567/sjson
    rows-256row-scale2,048256644460.0%40.0%40.0%5.16 s99.7%346/sjson
    rows-512row-scale4,096512644471.0%29.0%29.0%8.58 s99.9%234/sjson
    rows-64row-scale51264644475.2%24.8%24.3%598.8 ms98.8%763/sjson
    narrow-frontier-high-capstress-shape2,0481,0241188.1%91.9%21.1%2.8 ms99.9%169/sjson
    wide-frontier-high-capstress-shape8,1921,0246416870.5%29.5%29.5%70.81 s99.8%98/sjson
    -

    Raw artifacts are under artifacts/async-scheduling-idle-analysis.

    -
    -
    -

    Potential Changes

    -
    1. Add an adaptive row-group admission controller. A subclass or policy layer can watch bottleneck-resource starved idle and admit another row group when model capacity is idle while queued or pending model work remains, bounded by buffer and memory limits. When total idle is high but starved idle is low, the controller should treat that as a frontier problem and prefetch more row groups rather than tuning request AIMD.
    2. Keep resource-aware idle in the standard benchmark output. The new llm_wait utilization, starved idle, burstiness, and ready-gap metrics identify whether a vLLM-like resource is genuinely idle or merely waiting for dependencies.
    3. Document custom-model group identity and weight. SchedulingMetadata.custom_model(...) controls fairness and per-group admission. Plugins that share one external model should use a shared model identity and a weight that reflects real serving capacity; plugins that represent distinct resources should keep distinct identities.
    4. Use the report as a regression suite. The worst case here is rows-256; future scheduler or admission changes should improve that case without increasing ready gaps or violating final zero-lease checks.
    -
    -
    - - diff --git a/reports/async-scheduling-idle-regression.html b/reports/async-scheduling-idle-regression.html deleted file mode 100644 index 7fa8cc862..000000000 --- a/reports/async-scheduling-idle-regression.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - -Async Scheduling Idle-Time Analysis - - - - - -
    -
    -

    DataDesigner async scheduler

    -

    Idle-Time Analysis

    -

    This report measures where model-capacity idle time appears, which knobs change it, and which remaining idle looks avoidable by scheduler or admission-control changes.

    -
    Benchmark cases22
    Largest synthetic generation count8,192
    Median llm_wait utilization79.2%
    Worst total llm_wait idle91.1%
    Worst starved llm_wait idle33.7%
    Best llm_wait utilization93.0%
    Validationpass
    -
    -
    -

    What Counts As Idle

    -

    General idle is unused configured capacity. It includes expected idle when dependencies are not ready. Starved idle is the actionable subset: a resource has idle slots while the scheduler already has queued work that requests that resource. Frontier/dependency-horizon idle is total idle minus starved idle: capacity is unused because dependency work has not yet exposed a ready scheduler task. Scheduler queue age measures ready-enqueued to lease-acquired time; downstream ready gap measures dependency-complete to downstream-dispatch time. For this refactor, the most important resource is llm_wait, because it maps to model-serving capacity that should stay busy when runnable model work exists.

    -
    -
    -

    Implementation Improvements

    -
    Classification now explicit5 frontier, 16 queued
    Quick-suite proof gates22 cases, zero validation failures
    Largest refreshed case8,192 generations
    Narrow frontier idle identified75.1%
    Row-groups=1 frontier idle67.8%
    Wide queued starvation age86.97 s

    Idle partition metrics

    Implemented

    The report now splits total idle into queued-work starvation and frontier/dependency-horizon idle. This prevents the narrow high-capacity case from being mistaken for a request-admission problem.

    Evidence: narrow-frontier-high-cap: 75.1% frontier idle, 16.0% starved idle.

    source

    Queue age vs downstream delay

    Implemented

    Ready-to-lease queue age is now shown separately from dependency-complete-to-dispatch delay. This distinguishes scheduler backlog from slow dependency propagation.

    Evidence: rows-256: 5.71 s scheduler queue p95, 13.7 ms downstream p95.

    source

    Batched frontier enqueue

    Implemented

    A frontier delta with many ready tasks now enters the fair queue in one enqueue operation, while pre-batch parking, dropped rows, and per-task observability are preserved.

    Evidence: Focused scheduler tests prove one queue operation for a 5-task frontier and one operation for a pre-batch flush after a dropped row.

    source

    Resource-overlap peer pressure

    Implemented

    Task admission now applies group-cap peer pressure only for queued peers that can use the same typed resource and are hard-resource eligible. Local/submission-only peers no longer create false pressure on idle model capacity.

    Evidence: Unit tests cover non-overlapping peers, overlapping llm_wait peers, and peers blocked by another hard resource.

    source

    Adaptive row-group admission

    Implemented + benchmarked

    The scheduler can now start with one admitted row group, raise the row-group target when model capacity is idle and queued model demand is low, and remain bounded by the configured hard cap.

    Evidence: adaptive-row-groups-fixed-low to adaptive-row-groups-adaptive: utilization +57.2 pp, frontier idle reduction 66.6%, observed target 8.

    source

    Request-pressure advisory

    Implemented + benchmarked

    Task selection can now use request pressure snapshots to prefer an open same-frontier peer before spawning work that would immediately wait on request capacity. It does not yield and reacquire leases inside running generators.

    Evidence: Leased request wait moved from 49.8 ms to 3.2 ms; first dispatch moved from a_pressured to z_open.

    source
    -
    -
    -

    Findings

    -
    • Scale helps once enough runnable work exists. The row-scale sweep moved from 79.6% to 66.2% llm_wait utilization (-13.4 pp). Larger runs amortize startup and drain phases.
    • Runnable frontier width is the main controllable idle source. In the row-group sweep, utilization moved from 17.8% to 58.8% (+41.0 pp), while starved llm_wait idle improved by 0.0% between the narrowest case and the best observed case.
    • Total idle and starved idle diagnose different causes. narrow-frontier-high-cap had 91.1% total llm_wait idle but only 16.0% starved idle. The remaining 75.1% was frontier/dependency-horizon idle: the scheduler often had no ready model work because the admitted frontier was too small.
    • Capacity increases expose underfeeding. In the capacity sweep, modeled llm_wait cap 2 reached 86.8% utilization, while cap 4 reached 54.5% with the same small row frontier.
    • Custom model scheduling metadata changes traffic shape. With synthetic custom_model weight forced to 1, llm_wait utilization was 75.8%; with the harness defaulting the weight to modeled model capacity it was 83.9%. This run did not show weight=1 underfeeding because each synthetic column is its own group, but it does show that group identity and weight are first-order benchmark inputs.
    • High capacity magnifies traffic-shape effects. The stress case with one large row group and high cap reached 8.9% utilization; the wide-frontier shape reached 79.4%. This is the vLLM-server-idle failure mode the scheduler needs to expose and track over time.
    • Worst observed actionable idle: rows-256 had 33.7% starved llm_wait idle and 6.11 s max scheduler queue age.
    -
    -
    -

    Idle Classification Board

    -

    This board is the main analysis surface for optimization work. Frontier/dependency-horizon cases need row-group or scheduling-shard changes; queued-work starvation cases need queue/admission/resource selection changes; request-pressure cases need request-backed evidence before scheduler policy changes.

    casedominant idle classutilstarved idlefrontier idlequeue age p95downstream p95next lever
    stress-shape/narrow-frontier-high-capfrontier/dependency-horizon8.9%16.0%75.1%1.7 ms1.9 msadaptive row-group admission with memory and queue guardrails
    adaptations/adaptive-row-groups-fixed-lowfrontier/dependency-horizon10.5%8.2%81.3%630 us718 usadaptive row-group admission with memory and queue guardrails
    row-group-concurrency/row-groups-1frontier/dependency-horizon17.8%14.5%67.8%747 us867 usadaptive row-group admission with memory and queue guardrails
    row-group-concurrency/row-groups-2frontier/dependency-horizon31.4%23.0%45.6%1.1 ms1.7 msadaptive row-group admission with memory and queue guardrails
    adaptations/adaptive-row-groups-fixed-highfrontier/dependency-horizon62.4%17.3%20.4%2.1 ms2.7 msadaptive row-group admission with memory and queue guardrails
    llm-capacity/capacity-8queued-work starvation54.5%24.6%20.9%2.0 ms3.0 mstask admission/fairness policy and eligible-starved-idle metrics
    row-group-concurrency/row-groups-4queued-work starvation58.8%22.8%18.4%1.4 ms2.0 mstask admission/fairness policy and eligible-starved-idle metrics
    row-scale/rows-256queued-work starvation66.2%33.7%0.1%5.71 s13.7 msresource-aware task admission, candidate selection, or smaller scheduling shards
    adaptations/adaptive-row-groups-adaptivequeued-work starvation67.7%17.6%14.7%1.7 ms3.0 mstask admission/fairness policy and eligible-starved-idle metrics
    custom-model-weight/weight-custom-model-1queued-work starvation75.8%24.2%0.0%10.77 s16.9 msresource-aware task admission, candidate selection, or smaller scheduling shards
    buffer-size/buffer-64queued-work starvation79.0%20.9%0.0%10.66 s12.9 msresource-aware task admission, candidate selection, or smaller scheduling shards
    stress-shape/wide-frontier-high-capqueued-work starvation79.4%20.6%0.0%86.97 s113.8 msresource-aware task admission, candidate selection, or smaller scheduling shards
    row-scale/rows-128queued-work starvation79.5%20.3%0.3%1.60 s9.9 msresource-aware task admission, candidate selection, or smaller scheduling shards
    row-scale/rows-64queued-work starvation79.6%19.4%1.1%541.6 ms7.6 mstask admission/fairness policy and eligible-starved-idle metrics
    buffer-size/buffer-16queued-work starvation80.5%19.4%0.0%3.68 s52.4 msresource-aware task admission, candidate selection, or smaller scheduling shards
    adaptations/adaptive-request-pressure-controlqueued-work starvation82.4%15.7%1.7%3.5 ms0 ustask admission/fairness policy and eligible-starved-idle metrics
    buffer-size/buffer-1queued-work starvation82.6%17.4%0.0%47.4 ms44.7 mstask admission/fairness policy and eligible-starved-idle metrics
    custom-model-weight/weight-model-capacityqueued-work starvation83.9%16.1%0.0%11.60 s13.8 msresource-aware task admission, candidate selection, or smaller scheduling shards
    adaptations/adaptive-request-pressure-combinedqueued-work starvation84.4%14.5%1.1%10.4 ms0 ustask admission/fairness policy and eligible-starved-idle metrics
    adaptations/request-pressure-advisoryqueued-work starvation85.3%13.2%1.4%124.8 ms0 ustask admission/fairness policy and eligible-starved-idle metrics
    llm-capacity/capacity-4queued-work starvation86.8%13.0%0.2%5.5 ms4.6 mstask admission/fairness policy and eligible-starved-idle metrics
    adaptations/request-pressure-controlhealthy/control93.0%5.6%1.4%143.7 ms0 uskeep as control case and watch for regressions
    -
    -
    -

    Adaptation Benchmarks

    -
    Adaptive utilization delta+57.2 pp
    Adaptive frontier-idle reduction66.6%
    Adaptive vs fixed-high+5.3 pp
    Adaptive observed target8
    Request leased-wait reduction46.6 ms
    Advisory first dispatchz_open
    Request queue-age p95 reduction18.9 ms
    Combined leased-wait delta-26.8 ms
    Combined request-idle delta+3.7 pp

    The row-group adaptation is judged against a fixed-low frontier because that is the failure shape where capacity is idle before enough dependency work exists. It should reduce frontier idle or raise utilization while staying below the hard row-group cap. The fixed-high control isolates how close the adaptive policy gets to simply admitting the full hard-cap frontier up front. The fixed-high ceiling reached 62.4% utilization with 20.4% frontier idle.

    The request-pressure adaptation is judged by whether it avoids dispatching the pressured model first and reduces request-wait time while a scheduler task lease is already held. The combined case keeps adaptive row-group admission enabled while request pressure is present, so it measures whether the scheduler can widen the frontier and still avoid sending the first available leases into a saturated model.

    adaptationcaseutilfrontier idleobserved targetleased request waitfirst model dispatch
    adaptive fixed-low controladaptive-row-groups-fixed-low10.5%81.3%1--
    adaptive enabledadaptive-row-groups-adaptive67.7%14.7%8--
    adaptive fixed-high controladaptive-row-groups-fixed-high62.4%20.4%8--
    request controlrequest-pressure-control93.0%1.4%-49.8 msa_pressured
    request advisoryrequest-pressure-advisory85.3%1.4%-3.2 msz_open
    combined controladaptive-request-pressure-control82.4%1.7%5488.3 msa_pressured
    combined enabledadaptive-request-pressure-combined84.4%1.1%5515.1 msz_open
    -
    -
    -

    Figures

    -
    Scale: more rows smooth the model-resource flowsynthetic model generationsratio0maxllm_wait utilization: 0.7955llm_wait utilization: 0.7946llm_wait utilization: 0.6617llm_wait utilizationstarved llm_wait idle: 0.1940starved llm_wait idle: 0.2026starved llm_wait idle: 0.3374starved llm_wait idle5121.0k2.0k
    -
    Frontier width: row-group concurrency changes starvationrow-group concurrencyratio / seconds0maxllm_wait utilization: 0.1776llm_wait utilization: 0.3142llm_wait utilization: 0.5878llm_wait utilizationstarved llm_wait idle: 0.1447starved llm_wait idle: 0.2299starved llm_wait idle: 0.2280starved llm_wait idledownstream ready p95: 0.0009downstream ready p95: 0.0017downstream ready p95: 0.0020downstream ready p95124
    -
    Buffer size: row-group shape affects traffic wavesbuffer sizeratio / seconds0maxllm_wait utilization: 0.8259llm_wait utilization: 0.8054llm_wait utilization: 0.7904llm_wait utilizationstarved llm_wait idle: 0.1738starved llm_wait idle: 0.1944starved llm_wait idle: 0.2094starved llm_wait idlescheduler queue age p95: 0.0474scheduler queue age p95: 3.6832scheduler queue age p95: 10.6643scheduler queue age p9511664
    -
    Capacity scaling: underfeeding becomes visible as cap risesmodeled llm_wait capacityratio / kgen/s0maxllm_wait utilization: 0.8679llm_wait utilization: 0.5448llm_wait utilizationstarved llm_wait idle: 0.1297starved llm_wait idle: 0.2462starved llm_wait idlethroughput / 1000: 0.5960throughput / 1000: 0.7681throughput / 100024
    -
    Custom-model metadata changes per-stage fairnesscaseratio0maxllm_wait utilization: 0.8385starved llm_wait idle: 0.1613model capllm_wait utilization: 0.7579starved llm_wait idle: 0.2419weight 1llm_wait utilizationstarved llm_wait idle
    -
    Stress shapes: narrow vs wide runnable horizoncaseratio0maxllm_wait utilization: 0.0890total llm_wait idle: 0.9110starved llm_wait idle: 0.1598frontier/dependency idle: 0.7511burstiness / 2: 0.3177narrow frontier high capllm_wait utilization: 0.7943total llm_wait idle: 0.2057starved llm_wait idle: 0.2056frontier/dependency idle: 0.0001burstiness / 2: 0.1091wide frontier high capllm_wait utilizationtotal llm_wait idlestarved llm_wait idlefrontier/dependency idleburstiness / 2
    -
    Adaptation: adaptive row groups target frontier idlecaseratio0maxllm_wait utilization: 0.6768frontier/dependency idle: 0.1473starved llm_wait idle: 0.1759adaptivellm_wait utilization: 0.6236frontier/dependency idle: 0.2038starved llm_wait idle: 0.1725fixed-highllm_wait utilization: 0.1047frontier/dependency idle: 0.8134starved llm_wait idle: 0.0820fixed-lowllm_wait utilizationfrontier/dependency idlestarved llm_wait idle
    -
    Adaptation: request-pressure advisory avoids leased request waitcaseratio0maxrequest wait while leased: 0.0032scheduler queue age p95: 0.1248wall seconds / 10: 0.0134advisoryrequest wait while leased: 0.0498scheduler queue age p95: 0.1437wall seconds / 10: 0.0152controlrequest wait while leasedscheduler queue age p95wall seconds / 10
    -
    Adaptation: combined adaptive frontier and request pressurecaseratio0maxllm_wait utilization: 0.8438request utilization: 0.8924request starved idle: 0.0211frontier/dependency idle: 0.0110combinedllm_wait utilization: 0.8245request utilization: 0.8563request starved idle: 0.0217frontier/dependency idle: 0.0174controlllm_wait utilizationrequest utilizationrequest starved idlefrontier/dependency idle
    -
    -
    -

    Benchmark Matrix

    -
    casesweepscenariogenerationsrowsbufferrg concllm caputilidlestarved idlefrontier idlequeue age p95downstream gap p95leased request waitrequest utilrequest starved idleadvisory skipsfirst modeloverlapthroughputartifact
    adaptive-request-pressure-combinedadaptationsadaptive-request-pressure25612818284.4%15.6%14.5%1.1%10.4 ms0 us515.1 ms89.2%2.1%193z_open0.0%689/sjson
    adaptive-request-pressure-controladaptationsadaptive-request-pressure25612818282.4%17.4%15.7%1.7%3.5 ms0 us488.3 ms85.6%2.2%0a_pressured0.0%723/sjson
    adaptive-row-groups-adaptiveadaptationsreal-pipeline-overlap1,02451218867.7%32.3%17.6%14.7%1.7 ms3.0 ms0 us0.0%0.0%0-99.3%1,108/sjson
    adaptive-row-groups-fixed-highadaptationsreal-pipeline-overlap1,02451218862.4%37.6%17.3%20.4%2.1 ms2.7 ms0 us0.0%0.0%0-99.2%1,062/sjson
    adaptive-row-groups-fixed-lowadaptationsreal-pipeline-overlap1,02451211810.5%89.5%8.2%81.3%630 us718 us0 us0.0%0.0%0-99.8%229/sjson
    request-pressure-advisoryadaptationsrequest-pressure-advisory6432321185.3%14.7%13.2%1.4%124.8 ms0 us3.2 ms49.0%1.3%29z_open0.0%478/sjson
    request-pressure-controladaptationsrequest-pressure-advisory6432321193.0%7.0%5.6%1.4%143.7 ms0 us49.8 ms41.6%0.7%0a_pressured0.0%422/sjson
    buffer-1buffer-sizereal-pipeline-overlap4,09651214482.6%17.4%17.4%0.0%47.4 ms44.7 ms0 us0.0%0.0%0-100.0%379/sjson
    buffer-16buffer-sizereal-pipeline-overlap4,096512164480.5%19.5%19.4%0.0%3.68 s52.4 ms0 us0.0%0.0%0-100.0%204/sjson
    buffer-64buffer-sizereal-pipeline-overlap4,096512644479.0%21.0%20.9%0.0%10.66 s12.9 ms0 us0.0%0.0%0-99.9%195/sjson
    weight-custom-model-1custom-model-weightreal-pipeline-overlap4,096512644475.8%24.2%24.2%0.0%10.77 s16.9 ms0 us0.0%0.0%0-99.9%192/sjson
    weight-model-capacitycustom-model-weightreal-pipeline-overlap4,096512644483.9%16.1%16.1%0.0%11.60 s13.8 ms0 us0.0%0.0%0-99.9%185/sjson
    capacity-4llm-capacityreal-pipeline-overlap1,02451214286.8%13.2%13.0%0.2%5.5 ms4.6 ms0 us0.0%0.0%0-99.7%596/sjson
    capacity-8llm-capacityreal-pipeline-overlap1,02451214454.5%45.5%24.6%20.9%2.0 ms3.0 ms0 us0.0%0.0%0-99.7%768/sjson
    row-groups-1row-group-concurrencyreal-pipeline-overlap1,02451211417.8%82.2%14.5%67.8%747 us867 us0 us0.0%0.0%0-99.9%356/sjson
    row-groups-2row-group-concurrencyreal-pipeline-overlap1,02451212431.4%68.6%23.0%45.6%1.1 ms1.7 ms0 us0.0%0.0%0-99.8%525/sjson
    row-groups-4row-group-concurrencyreal-pipeline-overlap1,02451214458.8%41.2%22.8%18.4%1.4 ms2.0 ms0 us0.0%0.0%0-99.7%867/sjson
    rows-128row-scalereal-pipeline-overlap1,024128644479.5%20.5%20.3%0.3%1.60 s9.9 ms0 us0.0%0.0%0-99.3%578/sjson
    rows-256row-scalereal-pipeline-overlap2,048256644466.2%33.8%33.7%0.1%5.71 s13.7 ms0 us0.0%0.0%0-99.7%332/sjson
    rows-64row-scalereal-pipeline-overlap51264644479.6%20.4%19.4%1.1%541.6 ms7.6 ms0 us0.0%0.0%0-98.6%859/sjson
    narrow-frontier-high-capstress-shapereal-pipeline-overlap2,0481,0241188.9%91.1%16.0%75.1%1.7 ms1.9 ms0 us0.0%0.0%0-99.9%193/sjson
    wide-frontier-high-capstress-shapereal-pipeline-overlap8,1921,0246416879.4%20.6%20.6%0.0%86.97 s113.8 ms0 us0.0%0.0%0-99.9%88/sjson
    -

    Raw artifacts are under artifacts/async-scheduling-idle-regression.

    -
    -
    -

    Potential Changes

    -
    1. Add an adaptive row-group admission controller. A subclass or policy layer can watch bottleneck-resource starved idle and admit another row group when model capacity is idle while queued or pending model work remains, bounded by buffer and memory limits. When total idle is high but starved idle is low, the controller should treat that as a frontier problem and prefetch more row groups rather than tuning request AIMD.
    2. Keep resource-aware idle in the standard benchmark output. The new llm_wait utilization, starved idle, frontier/dependency-horizon idle, scheduler queue-age, downstream ready-gap, and burstiness metrics identify whether a vLLM-like resource is genuinely idle or merely waiting for dependencies.
    3. Document custom-model group identity and weight. SchedulingMetadata.custom_model(...) controls fairness and per-group admission. Plugins that share one external model should use a shared model identity and a weight that reflects real serving capacity; plugins that represent distinct resources should keep distinct identities.
    4. Use the report as a regression suite. The worst case here is rows-256; future scheduler or admission changes should improve that case without increasing ready gaps or violating final zero-lease checks.
    -
    -
    - - From d5edf05972dc10aedac6bec77e506cdc39c96aaa Mon Sep 17 00:00:00 2001 From: "Eric W. Tramel" Date: Tue, 19 May 2026 20:39:24 -0400 Subject: [PATCH 21/33] chore: remove local benchmark scripts Signed-off-by: Eric W. Tramel --- .gitignore | 4 + .../engine/test_async_scheduling_benchmark.py | 671 ------ plans/645/module-ownership.md | 2 +- .../benchmarks/benchmark_async_scheduling.py | 1800 ----------------- .../export_async_scheduling_perfetto.py | 431 ---- .../generate_async_scheduling_idle_report.py | 1775 ---------------- .../run_async_scheduling_idle_regression.py | 659 ------ 7 files changed, 5 insertions(+), 5337 deletions(-) delete mode 100644 packages/data-designer-engine/tests/engine/test_async_scheduling_benchmark.py delete mode 100644 scripts/benchmarks/benchmark_async_scheduling.py delete mode 100644 scripts/benchmarks/export_async_scheduling_perfetto.py delete mode 100644 scripts/benchmarks/generate_async_scheduling_idle_report.py delete mode 100644 scripts/benchmarks/run_async_scheduling_idle_regression.py diff --git a/.gitignore b/.gitignore index c65a30138..e4ac9d9bf 100644 --- a/.gitignore +++ b/.gitignore @@ -88,6 +88,10 @@ venv.bak/ # Generated benchmark/report output /artifacts/ /reports/ +/scripts/benchmarks/benchmark_async_scheduling.py +/scripts/benchmarks/export_async_scheduling_perfetto.py +/scripts/benchmarks/generate_async_scheduling_idle_report.py +/scripts/benchmarks/run_async_scheduling_idle_regression.py docs/notebooks/ docs/notebook_source/*.ipynb diff --git a/packages/data-designer-engine/tests/engine/test_async_scheduling_benchmark.py b/packages/data-designer-engine/tests/engine/test_async_scheduling_benchmark.py deleted file mode 100644 index 868e7d589..000000000 --- a/packages/data-designer-engine/tests/engine/test_async_scheduling_benchmark.py +++ /dev/null @@ -1,671 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -from __future__ import annotations - -import importlib.util -import sys -from pathlib import Path -from types import ModuleType, SimpleNamespace -from typing import Any - -import pytest - - -def _load_benchmark_module() -> ModuleType: - benchmark_path = Path(__file__).resolve().parents[4] / "scripts" / "benchmarks" / "benchmark_async_scheduling.py" - spec = importlib.util.spec_from_file_location("benchmark_async_scheduling", benchmark_path) - assert spec is not None - assert spec.loader is not None - module = importlib.util.module_from_spec(spec) - sys.modules[spec.name] = module - spec.loader.exec_module(module) - return module - - -def _load_idle_regression_module() -> ModuleType: - benchmark_dir = Path(__file__).resolve().parents[4] / "scripts" / "benchmarks" - module_name = "run_async_scheduling_idle_regression" - spec = importlib.util.spec_from_file_location(module_name, benchmark_dir / f"{module_name}.py") - assert spec is not None - assert spec.loader is not None - sys.path.insert(0, str(benchmark_dir)) - try: - module = importlib.util.module_from_spec(spec) - sys.modules[spec.name] = module - spec.loader.exec_module(module) - finally: - sys.path.remove(str(benchmark_dir)) - return module - - -def _load_idle_report_module() -> ModuleType: - _load_idle_regression_module() - return sys.modules["generate_async_scheduling_idle_report"] - - -def _capacity_plan() -> SimpleNamespace: - return SimpleNamespace( - observed_maxima=SimpleNamespace( - row_groups_in_flight=1, - queued_tasks_by_group={}, - ) - ) - - -def _valid_artifact(iteration: dict[str, Any]) -> dict[str, Any]: - iteration.setdefault( - "utilization_metrics", - { - "scheduler_resources": { - "submission": { - "capacity_seconds": 1.0, - "busy_capacity_seconds": 0.0, - "idle_capacity_seconds": 1.0, - "starved_idle_seconds": 0.0, - "utilization_ratio": 0.0, - } - }, - "request_resources": {}, - }, - ) - return { - "inputs": SimpleNamespace(task_admission_capacity=2), - "derived_metrics": { - "final_zero_task_leases": True, - "final_zero_request_leases": True, - "final_zero_request_waiters": True, - "p95_async_request_wakeup_seconds": 0.0, - }, - "iterations": [iteration], - } - - -def test_pipeline_metrics_fails_when_downstream_traces_are_missing() -> None: - benchmark = _load_benchmark_module() - traces = [ - { - "column": "heavy_0", - "row_group": 0, - "row_index": 0, - "dispatched_at": 1.0, - "completed_at": 2.0, - } - ] - - metrics = benchmark._pipeline_metrics( - traces, - [], - upstream_cols=["heavy_0"], - downstream_cols=["fast_0"], - submission_capacity=1, - llm_wait_capacity=1, - row_group_concurrency=1, - capacity_plan=_capacity_plan(), - expected_task_count=1, - ) - - assert metrics["upstream_task_count"] == 1 - assert metrics["downstream_task_count"] == 0 - assert metrics["downstream_ready_gap_count"] == 0 - assert not metrics["validation"]["expected_downstream_task_count"] - assert not metrics["validation"]["expected_downstream_ready_gap_count"] - assert not metrics["validation_passed"] - - -def test_benchmark_validation_rejects_early_queue_exit() -> None: - benchmark = _load_benchmark_module() - artifact = _valid_artifact( - { - "accepted_task_count": 2, - "selected_task_count": 1, - "per_layer_observed_maxima": { - "task_leases_by_resource": {}, - "request_in_flight_by_resource": {}, - }, - } - ) - - with pytest.raises(RuntimeError, match="queue drained early"): - benchmark._validate_artifact(artifact) - - -def test_benchmark_validation_rejects_cap_violations() -> None: - benchmark = _load_benchmark_module() - artifact = _valid_artifact( - { - "accepted_task_count": 2, - "selected_task_count": 2, - "per_layer_observed_maxima": { - "task_leases_by_resource": {"submission": 3}, - "request_in_flight_by_resource": {"mock": 2}, - }, - } - ) - - with pytest.raises(RuntimeError, match="exceeded submission task cap"): - benchmark._validate_artifact(artifact) - - -def test_scheduler_utilization_metrics_record_idle_and_starved_capacity() -> None: - benchmark = _load_benchmark_module() - events = [ - _scheduler_event( - "ready_enqueued", - timestamp=0.0, - sequence=1, - task_id="task-a", - leased_resources={}, - resource_request={"submission": 1}, - ), - _scheduler_event( - "task_lease_acquired", - timestamp=1.0, - sequence=2, - task_id="task-a", - leased_resources={"submission": 1}, - resource_request={"submission": 1}, - ), - _scheduler_event( - "task_lease_released", - timestamp=3.0, - sequence=3, - task_id="task-a", - leased_resources={}, - resource_request={"submission": 1}, - ), - ] - - metrics = benchmark._scheduler_utilization_metrics(events)["submission"] - - assert metrics["capacity"] == 2 - assert metrics["busy_capacity_seconds"] == pytest.approx(2.0) - assert metrics["idle_capacity_seconds"] == pytest.approx(4.0) - assert metrics["starved_idle_seconds"] == pytest.approx(2.0) - assert metrics["dependency_horizon_idle_seconds"] == pytest.approx(2.0) - assert metrics["frontier_dependency_horizon_idle_ratio"] == pytest.approx(1 / 3) - assert metrics["utilization_ratio"] == pytest.approx(1 / 3) - assert metrics["scheduler_queue_age_max_seconds"] == pytest.approx(1.0) - assert metrics["ready_to_dispatch_gap_max_seconds"] == pytest.approx(1.0) - assert metrics["ready_to_dispatch_sample_count"] == 1 - - -def test_request_utilization_metrics_record_waiter_starved_idle() -> None: - benchmark = _load_benchmark_module() - events = [ - _request_event("request_wait_started", timestamp=0.0, sequence=1, in_flight=0, waiters=1), - _request_event("request_wait_completed", timestamp=1.0, sequence=2, in_flight=1, waiters=0), - _request_event("request_lease_released", timestamp=3.0, sequence=3, in_flight=0, waiters=0), - ] - - metrics = benchmark._request_utilization_metrics(events)["mock-resource"] - - assert metrics["capacity"] == 2 - assert metrics["busy_capacity_seconds"] == pytest.approx(2.0) - assert metrics["idle_capacity_seconds"] == pytest.approx(4.0) - assert metrics["starved_idle_seconds"] == pytest.approx(2.0) - assert metrics["dependency_horizon_idle_seconds"] == pytest.approx(2.0) - assert metrics["scheduler_queue_age_max_seconds"] == pytest.approx(1.0) - assert metrics["ready_to_dispatch_gap_max_seconds"] == pytest.approx(1.0) - - -def test_benchmark_validation_requires_scheduler_utilization_metrics() -> None: - benchmark = _load_benchmark_module() - artifact = _valid_artifact( - { - "accepted_task_count": 1, - "selected_task_count": 1, - "per_layer_observed_maxima": { - "task_leases_by_resource": {}, - "request_in_flight_by_resource": {}, - }, - "utilization_metrics": {"scheduler_resources": {}, "request_resources": {}}, - } - ) - - with pytest.raises(RuntimeError, match="did not record scheduler utilization metrics"): - benchmark._validate_artifact(artifact) - - -def test_idle_regression_guardrails_pass_for_expected_summary() -> None: - regression = _load_idle_regression_module() - summary = _idle_regression_summary() - - checks = regression.evaluate_idle_regression_summary(summary) - - assert all(check.passed for check in checks if check.severity == "error") - - -def test_idle_regression_detects_validation_failure() -> None: - regression = _load_idle_regression_module() - summary = _idle_regression_summary() - summary["cases"]["row-scale/rows-64"]["validation_passed"] = False - - checks = regression.evaluate_idle_regression_summary(summary) - - assert any(not check.passed and check.name == "row-scale/rows-64 validation" for check in checks) - - -def test_idle_regression_detects_baseline_utilization_drop() -> None: - regression = _load_idle_regression_module() - baseline = _idle_regression_summary(utilization=0.80) - current = _idle_regression_summary(utilization=0.70) - - checks = regression.evaluate_idle_regression_summary(current, baseline_summary=baseline) - - assert any( - not check.passed and check.category == "baseline" and check.name.endswith("utilization regression") - for check in checks - ) - - -def test_idle_regression_detects_bad_idle_partition() -> None: - regression = _load_idle_regression_module() - summary = _idle_regression_summary() - summary["cases"]["row-scale/rows-64"]["llm_wait_frontier_dependency_horizon_idle_ratio"] = 0.99 - - checks = regression.evaluate_idle_regression_summary(summary) - - assert any(not check.passed and check.name == "row-scale/rows-64 idle partition" for check in checks) - - -def test_idle_regression_skip_run_does_not_generate_missing_artifacts(tmp_path: Path) -> None: - report = _load_idle_report_module() - case = report.IdleBenchmarkCase( - name="missing", - sweep="reuse", - record_count=1, - buffer_size=1, - row_group_concurrency=1, - task_admission_capacity=1, - fanout_width=1, - upstream_latency_seconds=0.0, - downstream_latency_seconds=0.0, - ) - - with pytest.raises(FileNotFoundError, match="Cannot reuse benchmark artifact"): - report._run_or_load_case(case, tmp_path, skip_run=True) - - -def test_idle_benchmark_defaults_write_to_scratch() -> None: - report = _load_idle_report_module() - regression = _load_idle_regression_module() - - assert report.DEFAULT_ARTIFACT_DIR == Path(".scratch/async-scheduling-idle-analysis/artifacts") - assert report.DEFAULT_REPORT_PATH == Path( - ".scratch/async-scheduling-idle-analysis/async-scheduling-idle-analysis.html" - ) - assert regression.DEFAULT_ARTIFACT_DIR == Path(".scratch/async-scheduling-idle-regression/artifacts") - assert regression.DEFAULT_REPORT_PATH == Path( - ".scratch/async-scheduling-idle-regression/async-scheduling-idle-regression.html" - ) - - -def test_idle_report_links_artifacts_relative_to_report() -> None: - report = _load_idle_report_module() - - assert ( - report._relative_href( - Path(".scratch/async-scheduling-idle-analysis/async-scheduling-idle-analysis.html"), - Path(".scratch/async-scheduling-idle-analysis/artifacts/case.json"), - ) - == "artifacts/case.json" - ) - assert report._relative_href(Path("reports/idle.html"), Path("artifacts/case.json")) == "../artifacts/case.json" - - -def test_idle_regression_requires_adaptation_controls() -> None: - regression = _load_idle_regression_module() - summary = _idle_regression_summary() - del summary["cases"]["adaptations/adaptive-row-groups-fixed-high"] - - checks = regression.evaluate_idle_regression_summary(summary) - - assert any( - not check.passed and check.name == "required case adaptations/adaptive-row-groups-fixed-high" - for check in checks - ) - - -def test_idle_regression_detects_bad_adaptive_row_group_response() -> None: - regression = _load_idle_regression_module() - summary = _idle_regression_summary() - adaptive = summary["cases"]["adaptations/adaptive-row-groups-adaptive"] - adaptive["llm_wait_utilization_ratio"] = 0.45 - adaptive["llm_wait_idle_ratio"] = 0.55 - adaptive["llm_wait_starved_idle_ratio"] = 0.10 - adaptive["llm_wait_frontier_dependency_horizon_idle_ratio"] = 0.45 - - checks = regression.evaluate_idle_regression_summary(summary) - - assert any(not check.passed and check.name == "adaptive row-group utilization response" for check in checks) - assert any(not check.passed and check.name == "adaptive row-group fixed-high isolation" for check in checks) - - -def test_idle_regression_detects_request_pressure_control_not_pressured() -> None: - regression = _load_idle_regression_module() - summary = _idle_regression_summary() - control = summary["cases"]["adaptations/request-pressure-control"] - control["first_model_dispatch_column"] = "z_open" - control["request_wait_seconds_while_task_leased_mean"] = 0.0 - - checks = regression.evaluate_idle_regression_summary(summary) - - assert any(not check.passed and check.name == "request-pressure control dispatch choice" for check in checks) - assert any(not check.passed and check.name == "request-pressure control leased wait present" for check in checks) - - -def test_idle_regression_detects_request_pressure_advisory_regression() -> None: - regression = _load_idle_regression_module() - summary = _idle_regression_summary() - summary["cases"]["adaptations/request-pressure-advisory"]["request_wait_seconds_while_task_leased_mean"] = 0.05 - - checks = regression.evaluate_idle_regression_summary(summary) - - assert any(not check.passed and check.name == "request-pressure advisory leased-wait response" for check in checks) - - -def test_idle_regression_detects_combined_adaptive_request_pressure_regression() -> None: - regression = _load_idle_regression_module() - summary = _idle_regression_summary() - combined = summary["cases"]["adaptations/adaptive-request-pressure-combined"] - combined["row_group_admission_observed_max_target"] = 1 - combined["request_pressure_advisory_skip_count"] = 0 - combined["request_idle_ratio"] = 0.70 - - checks = regression.evaluate_idle_regression_summary(summary) - - assert any(not check.passed and check.name == "combined adaptive/request target grew" for check in checks) - assert any( - not check.passed and check.name == "combined adaptive/request advisory skipped pressured work" - for check in checks - ) - assert any(not check.passed and check.name == "combined adaptive/request request-idle response" for check in checks) - - -def test_idle_regression_detects_request_cleanup_failure() -> None: - regression = _load_idle_regression_module() - summary = _idle_regression_summary() - summary["cases"]["adaptations/request-pressure-advisory"]["final_zero_request_waiters"] = False - - checks = regression.evaluate_idle_regression_summary(summary) - - assert any( - not check.passed and check.name == "adaptations/request-pressure-advisory final_zero_request_waiters" - for check in checks - ) - - -def test_benchmark_validation_uses_scenario_task_resource_limits() -> None: - benchmark = _load_benchmark_module() - artifact = _valid_artifact( - { - "accepted_task_count": 2, - "selected_task_count": 2, - "capacity_plan": SimpleNamespace( - configured=SimpleNamespace( - task_resource_limits=SimpleNamespace( - value={"submission": 2, "llm_wait": 2, "local": 2}, - ) - ) - ), - "final_request_snapshot": { - "zero_active_request_leases": True, - "zero_request_waiters": True, - "domains": { - "pressured": SimpleNamespace(effective_max=1, current_limit=1), - }, - }, - "per_layer_observed_maxima": { - "task_leases_by_resource": {"submission": 2, "llm_wait": 2}, - "request_in_flight_by_resource": {"pressured": 1}, - }, - } - ) - - benchmark._validate_artifact(artifact) - - -def _scheduler_event( - event_kind: str, - *, - timestamp: float, - sequence: int, - task_id: str, - leased_resources: dict[str, int], - resource_request: dict[str, int], -) -> SimpleNamespace: - return SimpleNamespace( - event_kind=event_kind, - captured_at_monotonic=timestamp, - sequence=sequence, - task_id=task_id, - diagnostics={"resource_request": resource_request}, - snapshot=SimpleNamespace( - resource_limits={"submission": 2}, - leased_resources=leased_resources, - ), - ) - - -def _idle_regression_summary(*, utilization: float = 0.80) -> dict[str, Any]: - cases = { - "row-scale/rows-64": _idle_regression_case(utilization=utilization, record_count=64, generation_count=512), - "row-scale/rows-256": _idle_regression_case( - utilization=utilization, - record_count=256, - generation_count=2048, - ), - "row-group-concurrency/row-groups-1": _idle_regression_case( - utilization=0.50, - idle=0.50, - starved=0.20, - row_group_concurrency=1, - generation_count=1024, - ), - "row-group-concurrency/row-groups-4": _idle_regression_case( - utilization=utilization, - idle=1.0 - utilization, - starved=0.10, - row_group_concurrency=4, - generation_count=1024, - ), - "buffer-size/buffer-1": _idle_regression_case( - utilization=utilization, - idle=1.0 - utilization, - starved=0.10, - buffer_size=1, - generation_count=4096, - ), - "stress-shape/narrow-frontier-high-cap": _idle_regression_case( - utilization=0.30, - idle=0.70, - starved=0.20, - record_count=1024, - generation_count=2048, - ), - "stress-shape/wide-frontier-high-cap": _idle_regression_case( - utilization=utilization, - idle=1.0 - utilization, - starved=0.10, - record_count=1024, - generation_count=8192, - ), - "custom-model-weight/weight-model-capacity": _idle_regression_case( - utilization=utilization, - idle=1.0 - utilization, - starved=0.10, - generation_count=4096, - ), - "adaptations/adaptive-row-groups-fixed-low": _idle_regression_case( - utilization=0.40, - idle=0.60, - starved=0.10, - record_count=512, - row_group_concurrency=1, - generation_count=1024, - ), - "adaptations/adaptive-row-groups-adaptive": _idle_regression_case( - utilization=0.75, - idle=0.25, - starved=0.08, - record_count=512, - row_group_concurrency=8, - generation_count=1024, - row_group_admission_observed_max_target=4, - ), - "adaptations/adaptive-row-groups-fixed-high": _idle_regression_case( - utilization=0.78, - idle=0.22, - starved=0.08, - record_count=512, - row_group_concurrency=8, - generation_count=1024, - ), - "adaptations/request-pressure-control": _idle_regression_case( - utilization=0.70, - idle=0.30, - starved=0.10, - generation_count=64, - request_utilization=0.50, - request_idle=0.50, - request_starved=0.30, - request_wait_seconds_while_task_leased_mean=0.05, - first_model_dispatch_column="a_pressured", - ), - "adaptations/request-pressure-advisory": _idle_regression_case( - utilization=0.70, - idle=0.30, - starved=0.10, - generation_count=64, - request_utilization=0.60, - request_idle=0.40, - request_starved=0.20, - request_wait_seconds_while_task_leased_mean=0.0, - request_pressure_advisory_enabled=True, - request_pressure_advisory_skip_count=4, - first_model_dispatch_column="z_open", - ), - "adaptations/adaptive-request-pressure-control": _idle_regression_case( - utilization=0.65, - idle=0.35, - starved=0.12, - record_count=512, - row_group_concurrency=8, - generation_count=1024, - request_utilization=0.50, - request_idle=0.50, - request_starved=0.30, - request_wait_seconds_while_task_leased_mean=0.20, - first_model_dispatch_column="a_pressured", - row_group_admission_observed_max_target=4, - ), - "adaptations/adaptive-request-pressure-combined": _idle_regression_case( - utilization=0.70, - idle=0.30, - starved=0.10, - record_count=512, - row_group_concurrency=8, - generation_count=1024, - request_utilization=0.65, - request_idle=0.35, - request_starved=0.20, - request_wait_seconds_while_task_leased_mean=0.05, - request_pressure_advisory_enabled=True, - request_pressure_advisory_skip_count=8, - first_model_dispatch_column="z_open", - row_group_admission_observed_max_target=4, - ), - } - for index in range(3): - cases[f"filler/filler-{index}"] = _idle_regression_case( - utilization=utilization, - idle=1.0 - utilization, - starved=0.10, - ) - return { - "suite_id": "async-scheduling-idle-regression", - "suite_version": "1.1", - "mode": "quick", - "largest_generation_count": 8192, - "cases": cases, - } - - -def _idle_regression_case( - *, - utilization: float, - idle: float | None = None, - starved: float = 0.10, - record_count: int = 512, - generation_count: int = 1024, - row_group_concurrency: int = 4, - buffer_size: int = 64, - request_utilization: float = 0.0, - request_idle: float = 0.0, - request_starved: float = 0.0, - request_wait_seconds_while_task_leased_mean: float = 0.0, - request_pressure_advisory_enabled: bool = False, - request_pressure_advisory_skip_count: int = 0, - first_model_dispatch_column: str | None = None, - row_group_admission_observed_max_target: int | None = None, -) -> dict[str, Any]: - resolved_idle = 1.0 - utilization if idle is None else idle - return { - "case": { - "name": "case", - "sweep": "sweep", - "record_count": record_count, - "buffer_size": buffer_size, - "row_group_concurrency": row_group_concurrency, - "task_admission_capacity": 8, - "fanout_width": 1, - "upstream_latency_seconds": 0.003, - "downstream_latency_seconds": 0.0003, - "scenario": "real-pipeline-overlap", - "request_latency_seconds": 0.0, - "model_stage_weight": 0, - "adaptive_row_group_admission": False, - "request_pressure_advisory": False, - "iterations": 1, - "warmups": 0, - }, - "generation_count": generation_count, - "llm_wait_utilization_ratio": utilization, - "llm_wait_idle_ratio": resolved_idle, - "llm_wait_starved_idle_ratio": starved, - "llm_wait_frontier_dependency_horizon_idle_ratio": max(0.0, resolved_idle - starved), - "llm_wait_scheduler_queue_age_p95_seconds": 0.001, - "request_utilization_ratio": request_utilization, - "request_idle_ratio": request_idle, - "request_starved_idle_ratio": request_starved, - "request_frontier_dependency_horizon_idle_ratio": max(0.0, request_idle - request_starved), - "request_wait_seconds_while_task_leased_mean": request_wait_seconds_while_task_leased_mean, - "request_wait_seconds_while_task_leased_max": request_wait_seconds_while_task_leased_mean, - "request_pressure_advisory_enabled": request_pressure_advisory_enabled, - "request_pressure_advisory_skip_count": request_pressure_advisory_skip_count, - "first_model_dispatch_column": first_model_dispatch_column, - "row_group_admission_observed_max_target": row_group_admission_observed_max_target, - "throughput_generations_per_second": 100.0, - "validation_passed": True, - "final_zero_task_leases": True, - "final_zero_request_leases": True, - "final_zero_request_waiters": True, - } - - -def _request_event( - event_kind: str, *, timestamp: float, sequence: int, in_flight: int, waiters: int -) -> SimpleNamespace: - return SimpleNamespace( - event_kind=event_kind, - captured_at_monotonic=timestamp, - sequence=sequence, - request_attempt_id="request-a", - pressure_snapshot=SimpleNamespace( - resource="mock-resource", - effective_max=2, - in_flight_count=in_flight, - waiters=waiters, - ), - ) diff --git a/plans/645/module-ownership.md b/plans/645/module-ownership.md index affa88d0a..125caac01 100644 --- a/plans/645/module-ownership.md +++ b/plans/645/module-ownership.md @@ -213,4 +213,4 @@ Tests mirror target module ownership: | capacity diagnostics | `packages/data-designer-engine/tests/engine/test_capacity.py` | | runtime observability | `packages/data-designer-engine/tests/engine/test_observability.py` | -Test fakes live under tests near their consumers. Benchmark fakes and reusable scenarios live under `scripts/benchmarks/async_scheduling/`, with `scripts/benchmarks/benchmark_async_scheduling.py` as the runnable entrypoint. Production `data_designer.engine.testing` helpers are not part of the target architecture. +Test fakes live under tests near their consumers. Benchmark fakes and reusable scenarios used for branch validation are scratch artifacts, not committed target architecture. Production `data_designer.engine.testing` helpers are not part of the target architecture. diff --git a/scripts/benchmarks/benchmark_async_scheduling.py b/scripts/benchmarks/benchmark_async_scheduling.py deleted file mode 100644 index 25f265395..000000000 --- a/scripts/benchmarks/benchmark_async_scheduling.py +++ /dev/null @@ -1,1800 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -"""Deterministic async scheduling benchmark smoke harness.""" - -from __future__ import annotations - -import argparse -import asyncio -import csv -import hashlib -import json -import platform -import statistics -import subprocess -import sys -import time -import uuid -from collections.abc import Mapping -from dataclasses import dataclass, fields, is_dataclass -from enum import Enum -from pathlib import Path -from typing import Any - -import data_designer.lazy_heavy_imports as lazy -from data_designer.config.column_configs import ( - ExpressionColumnConfig, - GenerationStrategy, - LLMTextColumnConfig, - SamplerColumnConfig, -) -from data_designer.config.sampler_params import SamplerType -from data_designer.config.scheduling import SchedulingMetadata -from data_designer.engine.capacity import ( - AsyncCapacityConfigured, - AsyncCapacityObservedMaxima, - AsyncCapacityPlan, - AsyncCapacityRuntimeSnapshot, - CapacityValue, - RequestAdmissionConfigSnapshot, - RowGroupAdmission, -) -from data_designer.engine.column_generators.generators.base import ColumnGenerator, FromScratchColumnGenerator -from data_designer.engine.dataset_builders.async_scheduler import AsyncTaskScheduler -from data_designer.engine.dataset_builders.scheduling.completion import CompletionTracker -from data_designer.engine.dataset_builders.scheduling.queue import FairTaskQueue -from data_designer.engine.dataset_builders.scheduling.resources import ( - SchedulableTask, - SchedulerResourceRequest, - TaskGroupKey, - TaskGroupSpec, -) -from data_designer.engine.dataset_builders.scheduling.task_admission import TaskAdmissionConfig, TaskAdmissionController -from data_designer.engine.dataset_builders.scheduling.task_model import Task -from data_designer.engine.dataset_builders.utils.execution_graph import ExecutionGraph -from data_designer.engine.dataset_builders.utils.row_group_buffer import RowGroupBufferManager -from data_designer.engine.models.request_admission.config import RequestAdmissionConfig -from data_designer.engine.models.request_admission.controller import ( - AdaptiveRequestAdmissionController, - RequestAdmissionLease, -) -from data_designer.engine.models.request_admission.outcomes import RequestReleaseOutcome -from data_designer.engine.models.request_admission.resources import ( - RequestAdmissionItem, - RequestDomain, - RequestEventContext, - RequestGroupSpec, - RequestResourceKey, -) -from data_designer.engine.models.resources import ProviderModelKey, ProviderModelStaticCap -from data_designer.engine.observability import ( - InMemoryAdmissionEventSink, - SchedulerAdmissionEvent, - runtime_correlation_provider, -) - -ARTIFACT_SCHEMA_VERSION = "async-scheduling-benchmark-v1" -HARNESS_VERSION = "1.1" -ASYNC_WAKEUP_GATE_SECONDS = 0.025 - - -@dataclass(frozen=True) -class BenchmarkInputs: - baseline_ref: str - candidate_ref: str - scenario: str - record_count: int - buffer_size: int - row_group_concurrency: int - task_admission_capacity: int - request_latency_seconds: float - upstream_latency_seconds: float - downstream_latency_seconds: float - fanout_width: int - model_stage_weight: int - adaptive_row_group_admission: bool - request_pressure_advisory: bool - warmups: int - iterations: int - seed: int - scenario_version: str - harness_version: str - - -class _BenchmarkStorage: - dataset_name = "async-scheduling-benchmark" - - def __init__(self) -> None: - self.write_count = 0 - - def get_file_paths(self) -> dict[str, str]: - return {} - - def write_batch_to_parquet_file(self, **kwargs: object) -> str: - self.write_count += 1 - return f"/tmp/async-scheduling-benchmark/partial-{self.write_count}.parquet" - - def move_partial_result_to_final_file_path(self, batch_number: int) -> str: - return f"/tmp/async-scheduling-benchmark/final-{batch_number}.parquet" - - -class _BenchmarkSeedGenerator(FromScratchColumnGenerator[ExpressionColumnConfig]): - @staticmethod - def get_generation_strategy() -> GenerationStrategy: - return GenerationStrategy.FULL_COLUMN - - def generate(self, data: lazy.pd.DataFrame) -> lazy.pd.DataFrame: - return data - - def generate_from_scratch(self, num_records: int) -> lazy.pd.DataFrame: - return lazy.pd.DataFrame({self.config.name: list(range(num_records))}) - - -class _BenchmarkTimedCellGenerator(ColumnGenerator[ExpressionColumnConfig]): - def __init__( - self, - *args: object, - delay_seconds: float, - model_stage: bool = False, - model_stage_weight: int = 1, - **kwargs: object, - ) -> None: - super().__init__(*args, **kwargs) - self._delay_seconds = delay_seconds - self._model_stage = model_stage - self._model_stage_weight = model_stage_weight - - @staticmethod - def get_generation_strategy() -> GenerationStrategy: - return GenerationStrategy.CELL_BY_CELL - - def get_scheduling_metadata(self) -> SchedulingMetadata: - if self._model_stage: - return SchedulingMetadata.custom_model( - "benchmark-provider", - self.config.name, - "chat", - weight=self._model_stage_weight, - ) - return super().get_scheduling_metadata() - - def generate(self, data: dict) -> dict: - data[self.config.name] = f"{self.config.name}_{data.get('seed', '?')}" - return data - - async def agenerate(self, data: dict) -> dict: - if self._delay_seconds: - await asyncio.sleep(self._delay_seconds) - return self.generate(data) - - -class _BenchmarkRequestPressureCellGenerator(ColumnGenerator[ExpressionColumnConfig]): - def __init__( - self, - *args: object, - request_admission: AdaptiveRequestAdmissionController, - provider_name: str, - model_id: str, - delay_seconds: float, - **kwargs: object, - ) -> None: - super().__init__(*args, **kwargs) - self._request_admission = request_admission - self._resource = RequestResourceKey(provider_name, model_id, RequestDomain.CHAT) - self._delay_seconds = delay_seconds - - @staticmethod - def get_generation_strategy() -> GenerationStrategy: - return GenerationStrategy.CELL_BY_CELL - - def get_scheduling_metadata(self) -> SchedulingMetadata: - return SchedulingMetadata.model( - self._resource.provider_name, - self._resource.model_id, - self._resource.domain.value, - weight=1, - ) - - def generate(self, data: dict) -> dict: - data[self.config.name] = f"{self.config.name}_{data.get('seed', '?')}" - return data - - async def agenerate(self, data: dict) -> dict: - item = RequestAdmissionItem( - self._resource, - RequestGroupSpec(self._resource), - queue_wait_timeout_seconds=30.0, - event_context=RequestEventContext( - captured_correlation=runtime_correlation_provider.current(), - request_attempt_id=f"benchmark-request-{uuid.uuid4().hex}", - ), - ) - lease = await self._request_admission.acquire_async(item) - try: - if self._delay_seconds: - await asyncio.sleep(self._delay_seconds) - return self.generate(data) - finally: - self._request_admission.release(lease, RequestReleaseOutcome(kind="success")) - - -def main() -> None: - args = _parse_args() - output_dir = Path(args.output_dir) - output_dir.mkdir(parents=True, exist_ok=True) - - inputs = BenchmarkInputs( - baseline_ref=args.baseline_ref, - candidate_ref=args.candidate_ref, - scenario=args.scenario, - record_count=args.record_count, - buffer_size=args.buffer_size, - row_group_concurrency=args.row_group_concurrency, - task_admission_capacity=args.task_admission_capacity, - request_latency_seconds=args.request_latency_seconds, - upstream_latency_seconds=args.upstream_latency_seconds, - downstream_latency_seconds=args.downstream_latency_seconds, - fanout_width=args.fanout_width, - model_stage_weight=args.model_stage_weight or max(1, args.task_admission_capacity // 2), - adaptive_row_group_admission=args.adaptive_row_group_admission, - request_pressure_advisory=args.request_pressure_advisory, - warmups=args.warmups, - iterations=args.iterations, - seed=args.seed, - scenario_version=args.scenario_version, - harness_version=args.harness_version, - ) - - for _ in range(args.warmups): - _run_iteration(inputs, measured=False) - - iterations = [_run_iteration(inputs, measured=True) for _ in range(args.iterations)] - artifact = _artifact(inputs, iterations) - _validate_artifact(artifact) - json_path = output_dir / "async_scheduling_benchmark.json" - csv_path = output_dir / "async_scheduling_benchmark.csv" - md_path = output_dir / "async_scheduling_benchmark.md" - json_path.write_text(json.dumps(_to_jsonable(artifact), indent=2, sort_keys=True) + "\n", encoding="utf-8") - _write_csv(csv_path, artifact) - _write_markdown(md_path, artifact) - print(f"Wrote {json_path}") - print(f"Wrote {csv_path}") - print(f"Wrote {md_path}") - - -def _parse_args() -> argparse.Namespace: - parser = argparse.ArgumentParser(description=__doc__) - parser.add_argument("--baseline-ref", default="origin/main") - parser.add_argument("--candidate-ref", default="HEAD") - parser.add_argument("--scenario", default="queue-admission-smoke") - parser.add_argument("--record-count", type=int, default=128) - parser.add_argument("--buffer-size", type=int, default=64) - parser.add_argument("--row-group-concurrency", type=int, default=2) - parser.add_argument("--task-admission-capacity", type=int, default=8) - parser.add_argument("--request-latency-seconds", type=float, default=0.0) - parser.add_argument("--upstream-latency-seconds", type=float, default=0.01) - parser.add_argument("--downstream-latency-seconds", type=float, default=0.0) - parser.add_argument("--fanout-width", type=int, default=3) - parser.add_argument( - "--model-stage-weight", - type=int, - default=0, - help="Synthetic custom-model scheduling weight. Defaults to the modeled llm_wait capacity.", - ) - parser.add_argument("--adaptive-row-group-admission", action="store_true") - parser.add_argument("--request-pressure-advisory", action="store_true") - parser.add_argument("--warmups", type=int, default=1) - parser.add_argument("--iterations", type=int, default=5) - parser.add_argument("--output-dir", required=True) - parser.add_argument("--seed", type=int, default=645) - parser.add_argument("--scenario-version", default="1") - parser.add_argument("--harness-version", default=HARNESS_VERSION) - return parser.parse_args() - - -def _run_iteration(inputs: BenchmarkInputs, *, measured: bool) -> dict[str, Any]: - if inputs.scenario == "adaptive-request-pressure": - return _run_adaptive_request_pressure_iteration(inputs, measured=measured) - if inputs.scenario == "request-pressure-advisory": - return _run_request_pressure_iteration(inputs, measured=measured) - if inputs.scenario == "real-pipeline-overlap": - return _run_real_pipeline_iteration(inputs, measured=measured) - return _run_queue_admission_iteration(inputs, measured=measured) - - -def _run_queue_admission_iteration(inputs: BenchmarkInputs, *, measured: bool) -> dict[str, Any]: - sink = InMemoryAdmissionEventSink() - task_config = TaskAdmissionConfig( - submission_capacity=inputs.task_admission_capacity, - resource_limits={ - "llm_wait": max(1, inputs.task_admission_capacity // 2), - "local": inputs.task_admission_capacity, - }, - ) - task_controller = TaskAdmissionController(task_config) - queue = FairTaskQueue() - request_config = RequestAdmissionConfig(increase_after_successes=1) - request_controller = AdaptiveRequestAdmissionController(request_config, event_sink=sink) - request_controller.register( - provider_name="mock-provider", - model_id="mock-model", - alias="mock-alias", - max_parallel_requests=max(1, inputs.task_admission_capacity // 2), - ) - - groups = ( - TaskGroupSpec( - TaskGroupKey("model", ("model", "mock-provider", "mock-model", "chat", "root")), - weight=2.0, - admitted_limit=4, - ), - TaskGroupSpec(TaskGroupKey("local", ("local", "default", "downstream")), weight=1.0), - ) - tasks = _schedulable_tasks(inputs.record_count, groups) - accepted = queue.enqueue(tasks) - selected: list[str] = [] - request_resource = RequestResourceKey("mock-provider", "mock-model", RequestDomain.CHAT) - request_item = RequestAdmissionItem(request_resource, RequestGroupSpec(request_resource)) - started = time.monotonic() - sequence = 0 - accepted_by_id = {task.task_id: task for task in tasks if task.task_id in accepted} - for task_id in accepted: - sequence += 1 - task = accepted_by_id[task_id] - sink.emit_scheduler_event( - SchedulerAdmissionEvent.capture( - "ready_enqueued", - sequence=sequence, - task_id=task.task_id, - snapshot=task_controller.view(), - diagnostics={"resource_request": dict(task.resource_request.amounts)}, - ) - ) - - while queue.has_queued_tasks: - selection = queue.select_next(lambda item, view: task_controller.is_eligible(item, view)) - if selection is None: - break - sequence += 1 - sink.emit_scheduler_event( - SchedulerAdmissionEvent.capture( - "selected", - sequence=sequence, - task_id=selection.item.task_id, - snapshot=task_controller.view(), - diagnostics={"resource_request": dict(selection.item.resource_request.amounts)}, - ) - ) - decision = task_controller.try_acquire(selection.item, selection.queue_view) - if not hasattr(decision, "lease_id"): - break - lease = decision - committed = queue.commit(selection) - if committed is None: - task_controller.release(lease) - continue - sequence += 1 - sink.emit_scheduler_event( - SchedulerAdmissionEvent.capture( - "task_lease_acquired", - sequence=sequence, - task_id=committed.task_id, - task_lease_id=lease.lease_id, - snapshot=task_controller.view(), - diagnostics={"resource_request": dict(committed.resource_request.amounts)}, - ) - ) - request_lease = request_controller.acquire_sync(request_item) - if inputs.request_latency_seconds: - time.sleep(inputs.request_latency_seconds) - request_controller.release(request_lease, RequestReleaseOutcome(kind="success")) - task_controller.release(lease) - selected.append(committed.task_id) - - wall_time = time.monotonic() - started - async_request_wakeup_seconds = asyncio.run(_measure_async_request_wakeup_seconds()) - task_snapshot = task_controller.view() - request_snapshots = request_controller.pressure.snapshots() - global_snapshots = request_controller.pressure.global_snapshots() - output_hash = hashlib.sha256("\n".join(selected).encode()).hexdigest() - max_task_leases = _max_task_leases_by_resource(sink.scheduler_events) - max_request_in_flight = _max_request_in_flight_by_resource(sink.request_events) - utilization_metrics = { - "scheduler_resources": _scheduler_utilization_metrics(sink.scheduler_events), - "request_resources": _request_utilization_metrics(sink.request_events), - } - timeline = [{"stream": "scheduler", **_event_payload(event)} for event in sink.scheduler_events] + [ - {"stream": "request", **_event_payload(event)} for event in sink.request_events - ] - timeline.sort(key=lambda event: (event["captured_at_monotonic"], event["sequence"])) - return { - "measured": measured, - "wall_time_seconds": wall_time, - "async_request_wakeup_seconds": async_request_wakeup_seconds, - "timeline": timeline, - "utilization_metrics": utilization_metrics, - "final_task_snapshot": task_snapshot, - "final_request_snapshot": { - "domains": request_snapshots, - "provider_models": global_snapshots, - "zero_active_request_leases": all( - snapshot.active_lease_count == 0 for snapshot in request_snapshots.values() - ), - "zero_request_waiters": all(snapshot.waiters == 0 for snapshot in request_snapshots.values()), - }, - "output_hashes": {"selected_task_ids": output_hash}, - "per_layer_observed_maxima": { - "selected_tasks": len(selected), - "accepted_tasks": len(accepted), - "task_leases_by_resource": max_task_leases, - "request_in_flight_by_resource": max_request_in_flight, - "active_task_leases_at_end": sum(task_snapshot.leased_resources.values()), - "active_request_leases_at_end": sum(snapshot.active_lease_count for snapshot in request_snapshots.values()), - }, - "accepted_task_count": len(accepted), - "selected_task_count": len(selected), - } - - -def _run_real_pipeline_iteration(inputs: BenchmarkInputs, *, measured: bool) -> dict[str, Any]: - return asyncio.run(_run_real_pipeline_iteration_async(inputs, measured=measured)) - - -async def _run_real_pipeline_iteration_async(inputs: BenchmarkInputs, *, measured: bool) -> dict[str, Any]: - sink = InMemoryAdmissionEventSink() - fanout_width = max(1, inputs.fanout_width) - upstream_cols = [f"heavy_{index}" for index in range(fanout_width)] - downstream_cols = [f"fast_{index}" for index in range(fanout_width)] - configs = [ - SamplerColumnConfig(name="seed", sampler_type=SamplerType.CATEGORY, params={"values": ["A"]}), - *[LLMTextColumnConfig(name=col, prompt="{{ seed }}", model_alias="benchmark") for col in upstream_cols], - *[ - LLMTextColumnConfig(name=downstream, prompt=f"{{{{ {upstream} }}}}", model_alias="benchmark") - for upstream, downstream in zip(upstream_cols, downstream_cols) - ], - ] - strategies: dict[str, GenerationStrategy] = {"seed": GenerationStrategy.FULL_COLUMN} - strategies.update({col: GenerationStrategy.CELL_BY_CELL for col in (*upstream_cols, *downstream_cols)}) - provider = object() - generators: dict[str, ColumnGenerator] = { - "seed": _BenchmarkSeedGenerator( - config=ExpressionColumnConfig(name="seed", expr="{{ x }}"), resource_provider=provider - ), - **{ - col: _BenchmarkTimedCellGenerator( - config=ExpressionColumnConfig(name=col, expr="{{ x }}"), - resource_provider=provider, - delay_seconds=inputs.upstream_latency_seconds, - model_stage=True, - model_stage_weight=inputs.model_stage_weight, - ) - for col in upstream_cols - }, - **{ - col: _BenchmarkTimedCellGenerator( - config=ExpressionColumnConfig(name=col, expr="{{ x }}"), - resource_provider=provider, - delay_seconds=inputs.downstream_latency_seconds, - model_stage=True, - model_stage_weight=inputs.model_stage_weight, - ) - for col in downstream_cols - }, - } - row_groups = _row_groups(inputs.record_count, inputs.buffer_size) - graph = ExecutionGraph.create(configs, strategies) - tracker = CompletionTracker.with_graph(graph, row_groups) - storage = _BenchmarkStorage() - buffer_manager = RowGroupBufferManager(storage) - scheduler = AsyncTaskScheduler( - generators=generators, - graph=graph, - tracker=tracker, - row_groups=row_groups, - buffer_manager=buffer_manager, - max_concurrent_row_groups=inputs.row_group_concurrency, - max_submitted_tasks=inputs.task_admission_capacity, - max_model_task_admission=max(1, inputs.task_admission_capacity // 2), - scheduler_event_sink=sink, - trace=True, - num_records=inputs.record_count, - buffer_size=inputs.buffer_size, - adaptive_row_group_admission=inputs.adaptive_row_group_admission, - ) - - started = time.monotonic() - await scheduler.run() - wall_time = time.monotonic() - started - async_request_wakeup_seconds = await _measure_async_request_wakeup_seconds() - traces = [_trace_payload(trace) for trace in scheduler.traces] - pipeline_metrics = _pipeline_metrics( - traces, - sink.scheduler_events, - upstream_cols=upstream_cols, - downstream_cols=downstream_cols, - submission_capacity=inputs.task_admission_capacity, - llm_wait_capacity=max(1, inputs.task_admission_capacity // 2), - row_group_concurrency=inputs.row_group_concurrency, - capacity_plan=scheduler.capacity_plan(), - expected_task_count=inputs.record_count * fanout_width, - ) - utilization_metrics = { - "scheduler_resources": _scheduler_utilization_metrics(sink.scheduler_events), - "request_resources": {}, - } - timeline = [{"stream": "scheduler", **_event_payload(event)} for event in sink.scheduler_events] - timeline.sort(key=lambda event: (event["captured_at_monotonic"], event["sequence"])) - task_snapshot = scheduler.task_admission_snapshot() - return { - "measured": measured, - "wall_time_seconds": wall_time, - "async_request_wakeup_seconds": async_request_wakeup_seconds, - "timeline": timeline, - "traces": traces, - "pipeline_metrics": pipeline_metrics, - "utilization_metrics": utilization_metrics, - "capacity_plan": scheduler.capacity_plan(), - "final_task_snapshot": task_snapshot, - "final_request_snapshot": { - "domains": {}, - "provider_models": {}, - "zero_active_request_leases": True, - "zero_request_waiters": True, - }, - "output_hashes": { - "completed_task_trace": hashlib.sha256( - "\n".join(f"{trace['column']}:{trace['row_group']}:{trace['row_index']}" for trace in traces).encode() - ).hexdigest() - }, - "per_layer_observed_maxima": { - "selected_tasks": len(traces), - "active_task_leases_at_end": sum(task_snapshot.leased_resources.values()), - "active_request_leases_at_end": 0, - **pipeline_metrics["observed_maxima"], - }, - "accepted_task_count": len(traces), - "selected_task_count": len(traces), - } - - -def _run_request_pressure_iteration(inputs: BenchmarkInputs, *, measured: bool) -> dict[str, Any]: - return asyncio.run( - _run_request_pressure_iteration_async( - inputs, - measured=measured, - row_groups=[(0, inputs.record_count)], - max_concurrent_row_groups=1, - adaptive_row_group_admission=False, - ) - ) - - -def _run_adaptive_request_pressure_iteration(inputs: BenchmarkInputs, *, measured: bool) -> dict[str, Any]: - return asyncio.run( - _run_request_pressure_iteration_async( - inputs, - measured=measured, - row_groups=_row_groups(inputs.record_count, inputs.buffer_size), - max_concurrent_row_groups=inputs.row_group_concurrency, - adaptive_row_group_admission=inputs.adaptive_row_group_admission, - ) - ) - - -async def _run_request_pressure_iteration_async( - inputs: BenchmarkInputs, - *, - measured: bool, - row_groups: list[tuple[int, int]], - max_concurrent_row_groups: int, - adaptive_row_group_admission: bool, -) -> dict[str, Any]: - sink = InMemoryAdmissionEventSink() - request_controller = AdaptiveRequestAdmissionController( - RequestAdmissionConfig(default_queue_wait_timeout_seconds=30.0), - event_sink=sink, - ) - request_controller.register( - provider_name="aa-pressured-provider", - model_id="pressured-model", - alias="pressured", - max_parallel_requests=1, - ) - request_controller.register( - provider_name="zz-open-provider", - model_id="open-model", - alias="open", - max_parallel_requests=1, - ) - pressured_resource = RequestResourceKey("aa-pressured-provider", "pressured-model", RequestDomain.CHAT) - holder_item = RequestAdmissionItem(pressured_resource, RequestGroupSpec(pressured_resource)) - holder_lease = request_controller.try_acquire(holder_item) - if not isinstance(holder_lease, RequestAdmissionLease): - raise RuntimeError(f"Expected pressure holder request lease, got {holder_lease.reason}") - - async def release_holder() -> None: - await asyncio.sleep(max(inputs.request_latency_seconds, inputs.upstream_latency_seconds)) - request_controller.release(holder_lease, RequestReleaseOutcome(kind="success")) - - release_task = asyncio.create_task(release_holder()) - configs = [ - SamplerColumnConfig(name="seed", sampler_type=SamplerType.CATEGORY, params={"values": ["A"]}), - LLMTextColumnConfig(name="a_pressured", prompt="{{ seed }}", model_alias="pressured"), - LLMTextColumnConfig(name="z_open", prompt="{{ seed }}", model_alias="open"), - ] - strategies = { - "seed": GenerationStrategy.FULL_COLUMN, - "a_pressured": GenerationStrategy.CELL_BY_CELL, - "z_open": GenerationStrategy.CELL_BY_CELL, - } - provider = object() - generators: dict[str, ColumnGenerator] = { - "seed": _BenchmarkSeedGenerator( - config=ExpressionColumnConfig(name="seed", expr="{{ x }}"), resource_provider=provider - ), - "a_pressured": _BenchmarkRequestPressureCellGenerator( - config=ExpressionColumnConfig(name="a_pressured", expr="{{ x }}"), - resource_provider=provider, - request_admission=request_controller, - provider_name="aa-pressured-provider", - model_id="pressured-model", - delay_seconds=inputs.downstream_latency_seconds, - ), - "z_open": _BenchmarkRequestPressureCellGenerator( - config=ExpressionColumnConfig(name="z_open", expr="{{ x }}"), - resource_provider=provider, - request_admission=request_controller, - provider_name="zz-open-provider", - model_id="open-model", - delay_seconds=inputs.downstream_latency_seconds, - ), - } - graph = ExecutionGraph.create(configs, strategies) - tracker = CompletionTracker.with_graph(graph, row_groups) - storage = _BenchmarkStorage() - buffer_manager = RowGroupBufferManager(storage) - scheduler = AsyncTaskScheduler( - generators=generators, - graph=graph, - tracker=tracker, - row_groups=row_groups, - buffer_manager=buffer_manager, - max_concurrent_row_groups=max_concurrent_row_groups, - max_submitted_tasks=max(1, inputs.task_admission_capacity), - max_model_task_admission=max(1, inputs.task_admission_capacity), - scheduler_event_sink=sink, - trace=True, - num_records=inputs.record_count, - buffer_size=inputs.buffer_size, - adaptive_row_group_admission=adaptive_row_group_admission, - request_pressure_provider=request_controller.pressure, - request_pressure_advisory=inputs.request_pressure_advisory, - ) - - started = time.monotonic() - try: - await scheduler.run() - finally: - await release_task - wall_time = time.monotonic() - started - async_request_wakeup_seconds = await _measure_async_request_wakeup_seconds() - traces = [_trace_payload(trace) for trace in scheduler.traces] - utilization_metrics = { - "scheduler_resources": _scheduler_utilization_metrics(sink.scheduler_events), - "request_resources": _request_utilization_metrics(sink.request_events), - } - task_snapshot = scheduler.task_admission_snapshot() - request_snapshots = request_controller.pressure.snapshots() - global_snapshots = request_controller.pressure.global_snapshots() - request_wait_while_leased = _request_wait_while_task_leased_seconds(sink.scheduler_events, sink.request_events) - timeline = [{"stream": "scheduler", **_event_payload(event)} for event in sink.scheduler_events] + [ - {"stream": "request", **_event_payload(event)} for event in sink.request_events - ] - timeline.sort(key=lambda event: (event["captured_at_monotonic"], event["sequence"])) - return { - "measured": measured, - "wall_time_seconds": wall_time, - "async_request_wakeup_seconds": async_request_wakeup_seconds, - "timeline": timeline, - "traces": traces, - "request_pressure_metrics": { - "request_wait_seconds_while_task_leased": request_wait_while_leased, - "request_pressure_advisory_enabled": inputs.request_pressure_advisory, - "request_pressure_advisory_skip_count": sum( - 1 for event in sink.scheduler_events if event.event_kind == "request_pressure_advisory_skipped" - ), - "first_model_dispatch_column": _first_model_dispatch_column(traces), - }, - "utilization_metrics": utilization_metrics, - "capacity_plan": scheduler.capacity_plan(), - "final_task_snapshot": task_snapshot, - "final_request_snapshot": { - "domains": request_snapshots, - "provider_models": global_snapshots, - "zero_active_request_leases": all( - snapshot.active_lease_count == 0 for snapshot in request_snapshots.values() - ), - "zero_request_waiters": all(snapshot.waiters == 0 for snapshot in request_snapshots.values()), - }, - "output_hashes": { - "completed_task_trace": hashlib.sha256( - "\n".join(f"{trace['column']}:{trace['row_group']}:{trace['row_index']}" for trace in traces).encode() - ).hexdigest() - }, - "per_layer_observed_maxima": { - "selected_tasks": len(traces), - "accepted_tasks": len(traces), - "task_leases_by_resource": _max_task_leases_by_resource(sink.scheduler_events), - "request_in_flight_by_resource": _max_request_in_flight_by_resource(sink.request_events), - "active_task_leases_at_end": sum(task_snapshot.leased_resources.values()), - "active_request_leases_at_end": sum(snapshot.active_lease_count for snapshot in request_snapshots.values()), - }, - "accepted_task_count": len(traces), - "selected_task_count": len(traces), - } - - -def _schedulable_tasks(record_count: int, groups: tuple[TaskGroupSpec, TaskGroupSpec]) -> tuple[SchedulableTask, ...]: - tasks: list[SchedulableTask] = [] - for index in range(record_count): - group = groups[index % len(groups)] - resource_request = ( - SchedulerResourceRequest({"submission": 1, "llm_wait": 1}) - if group.key.kind == "model" - else SchedulerResourceRequest({"submission": 1, "local": 1}) - ) - task = Task( - column=f"col_{index % 4}", - row_group=index // 16, - row_index=index % 16, - task_type="cell", - ) - digest = hashlib.sha1(f"{task.column}:{task.row_group}:{task.row_index}:{task.task_type}".encode()).hexdigest()[ - :16 - ] - tasks.append(SchedulableTask(f"task-{digest}", task, group, resource_request)) - return tuple(tasks) - - -def _row_groups(record_count: int, buffer_size: int) -> list[tuple[int, int]]: - row_groups: list[tuple[int, int]] = [] - remaining = record_count - row_group = 0 - while remaining > 0: - size = min(buffer_size, remaining) - row_groups.append((row_group, size)) - row_group += 1 - remaining -= size - return row_groups - - -def _trace_payload(trace: Any) -> dict[str, Any]: - return { - "column": trace.column, - "row_group": trace.row_group, - "row_index": trace.row_index, - "task_type": trace.task_type, - "dispatched_at": trace.dispatched_at, - "completed_at": trace.completed_at, - "status": trace.status, - "error": trace.error, - } - - -def _first_model_dispatch_column(traces: list[dict[str, Any]]) -> str | None: - model_traces = [trace for trace in traces if trace["column"] in {"a_pressured", "z_open"}] - if not model_traces: - return None - return min(model_traces, key=lambda trace: trace["dispatched_at"])["column"] - - -def _request_wait_while_task_leased_seconds( - scheduler_events: list[SchedulerAdmissionEvent], - request_events: list[Any], -) -> float: - lease_starts_by_lease: dict[str, float] = {} - lease_intervals: dict[str, tuple[float, float]] = {} - for event in _ordered_events(scheduler_events): - lease_id = getattr(event, "task_lease_id", None) - if lease_id is None: - continue - if event.event_kind == "task_lease_acquired": - lease_starts_by_lease[lease_id] = float(event.captured_at_monotonic) - elif event.event_kind == "task_lease_released": - task_execution_id = getattr(event, "task_execution_id", None) - started = lease_starts_by_lease.pop(lease_id, None) - if started is not None and task_execution_id is not None: - lease_intervals[task_execution_id] = (started, float(event.captured_at_monotonic)) - - wait_starts: dict[tuple[str, str | None], float] = {} - total = 0.0 - for event in _ordered_events(request_events): - correlation = getattr(event, "captured_correlation", None) - task_execution_id = getattr(correlation, "task_execution_id", None) - if task_execution_id is None: - continue - attempt_key = (task_execution_id, getattr(event, "request_attempt_id", None)) - if event.event_kind == "request_wait_started": - wait_starts[attempt_key] = float(event.captured_at_monotonic) - elif event.event_kind in { - "request_wait_completed", - "request_wait_timeout", - "request_wait_cancelled", - "request_acquire_denied", - }: - wait_started = wait_starts.pop(attempt_key, None) - lease_interval = lease_intervals.get(task_execution_id) - if wait_started is None or lease_interval is None: - continue - wait_ended = float(event.captured_at_monotonic) - lease_started, lease_ended = lease_interval - total += max(0.0, min(wait_ended, lease_ended) - max(wait_started, lease_started)) - return total - - -def _pipeline_metrics( - traces: list[dict[str, Any]], - scheduler_events: list[SchedulerAdmissionEvent], - *, - upstream_cols: list[str], - downstream_cols: list[str], - submission_capacity: int, - llm_wait_capacity: int, - row_group_concurrency: int, - capacity_plan: AsyncCapacityPlan, - expected_task_count: int, -) -> dict[str, Any]: - upstream = [trace for trace in traces if trace["column"] in upstream_cols] - downstream = [trace for trace in traces if trace["column"] in downstream_cols] - first_upstream_dispatch = min((trace["dispatched_at"] for trace in upstream), default=None) - last_upstream_dispatch = max((trace["dispatched_at"] for trace in upstream), default=None) - last_upstream_complete = max((trace["completed_at"] for trace in upstream), default=None) - first_downstream_dispatch = min((trace["dispatched_at"] for trace in downstream), default=None) - ready_gaps = _downstream_ready_gaps(upstream, downstream, upstream_cols, downstream_cols) - max_task_leases = _max_task_leases_by_resource(scheduler_events) - observed_row_groups = capacity_plan.observed_maxima.row_groups_in_flight - observed_queued = dict(capacity_plan.observed_maxima.queued_tasks_by_group) - has_overlap_points = ( - first_downstream_dispatch is not None - and last_upstream_dispatch is not None - and last_upstream_complete is not None - and first_upstream_dispatch is not None - ) - overlap_seconds = max(0.0, last_upstream_complete - first_downstream_dispatch) if has_overlap_points else 0.0 - upstream_duration = max(0.0, last_upstream_complete - first_upstream_dispatch) if has_overlap_points else 0.0 - validation = { - "expected_upstream_task_count": len(upstream) == expected_task_count, - "expected_downstream_task_count": len(downstream) == expected_task_count, - "expected_downstream_ready_gap_count": len(ready_gaps) == expected_task_count, - "submission_cap_respected": max_task_leases.get("submission", 0) <= submission_capacity, - "llm_wait_cap_respected": max_task_leases.get("llm_wait", 0) <= llm_wait_capacity, - "row_group_cap_respected": observed_row_groups <= row_group_concurrency, - "downstream_interleaved_before_all_upstream_dispatched": has_overlap_points - and first_downstream_dispatch < last_upstream_dispatch, - "downstream_interleaved_before_all_upstream_completed": has_overlap_points - and first_downstream_dispatch < last_upstream_complete, - } - return { - "upstream_columns": tuple(upstream_cols), - "downstream_columns": tuple(downstream_cols), - "expected_task_count": expected_task_count, - "upstream_task_count": len(upstream), - "downstream_task_count": len(downstream), - "downstream_ready_gap_count": len(ready_gaps), - "first_downstream_dispatch_delay_seconds": ( - max(0.0, first_downstream_dispatch - first_upstream_dispatch) if has_overlap_points else 0.0 - ), - "downstream_ready_gap_mean_seconds": statistics.fmean(ready_gaps) if ready_gaps else 0.0, - "downstream_ready_gap_p95_seconds": _percentile(ready_gaps, 0.95), - "downstream_ready_gap_max_seconds": max(ready_gaps) if ready_gaps else 0.0, - "upstream_downstream_overlap_seconds": overlap_seconds, - "upstream_downstream_overlap_ratio": _safe_ratio(overlap_seconds, upstream_duration), - "observed_maxima": { - "row_groups_in_flight": observed_row_groups, - "task_leases_by_resource": max_task_leases, - "queued_tasks_by_group": observed_queued, - }, - "validation": validation, - "validation_passed": all(validation.values()), - } - - -def _downstream_ready_gaps( - upstream: list[dict[str, Any]], - downstream: list[dict[str, Any]], - upstream_cols: list[str], - downstream_cols: list[str], -) -> list[float]: - upstream_by_key = {(trace["column"], trace["row_group"], trace["row_index"]): trace for trace in upstream} - gaps: list[float] = [] - for upstream_col, downstream_col in zip(upstream_cols, downstream_cols): - for downstream_trace in downstream: - if downstream_trace["column"] != downstream_col: - continue - upstream_trace = upstream_by_key.get( - (upstream_col, downstream_trace["row_group"], downstream_trace["row_index"]) - ) - if upstream_trace is None: - continue - gaps.append(max(0.0, downstream_trace["dispatched_at"] - upstream_trace["completed_at"])) - return gaps - - -def _max_task_leases_by_resource(events: list[SchedulerAdmissionEvent]) -> dict[str, int]: - maxima: dict[str, int] = {} - for event in events: - snapshot = event.snapshot - leased = getattr(snapshot, "leased_resources", {}) - for resource, count in leased.items(): - maxima[str(resource)] = max(maxima.get(str(resource), 0), int(count)) - return maxima - - -def _max_request_in_flight_by_resource(events: list[Any]) -> dict[str, int]: - maxima: dict[str, int] = {} - for event in events: - snapshot = getattr(event, "pressure_snapshot", None) - if snapshot is None: - continue - resource = getattr(snapshot, "resource", None) or getattr(event, "request_resource_key", None) - if resource is None: - continue - count = int(getattr(snapshot, "in_flight_count", 0)) - maxima[str(resource)] = max(maxima.get(str(resource), 0), count) - return maxima - - -def _scheduler_utilization_metrics(events: list[Any]) -> dict[str, dict[str, float | int]]: - ordered = _ordered_events(events) - if len(ordered) < 2: - return {} - - resource_limits: dict[str, int] = {} - active_by_resource: dict[str, int] = {} - queued_by_task: dict[str, dict[str, int]] = {} - queued_at: dict[str, float] = {} - queue_ages: dict[str, list[float]] = {} - totals = _empty_utilization_totals() - - for index, event in enumerate(ordered): - now = float(event.captured_at_monotonic) - snapshot = getattr(event, "snapshot", None) - if snapshot is not None: - for resource, limit in _int_mapping(getattr(snapshot, "resource_limits", {})).items(): - resource_limits[resource] = max(resource_limits.get(resource, 0), limit) - active_by_resource = _int_mapping(getattr(snapshot, "leased_resources", {})) - - task_id = getattr(event, "task_id", None) - resource_request = _event_resource_request(event) - if event.event_kind == "ready_enqueued" and task_id is not None: - queued_by_task[task_id] = resource_request - queued_at[task_id] = now - elif event.event_kind == "task_lease_acquired" and task_id is not None: - task_resources = queued_by_task.pop(task_id, resource_request) - started = queued_at.pop(task_id, None) - if started is not None: - age = max(0.0, now - started) - for resource, amount in task_resources.items(): - if amount > 0: - queue_ages.setdefault(resource, []).append(age) - - if index == len(ordered) - 1: - continue - next_time = float(ordered[index + 1].captured_at_monotonic) - interval_seconds = max(0.0, next_time - now) - queued_demand = _queued_resource_demand(queued_by_task) - _record_utilization_interval( - totals, - resource_limits=resource_limits, - active_by_resource=active_by_resource, - queued_or_waiting_by_resource=queued_demand, - interval_seconds=interval_seconds, - ) - - return _finalize_utilization_metrics(totals, queue_ages) - - -def _request_utilization_metrics(events: list[Any]) -> dict[str, dict[str, float | int]]: - ordered = [event for event in _ordered_events(events) if getattr(event, "pressure_snapshot", None) is not None] - if len(ordered) < 2: - return {} - - capacities: dict[str, int] = {} - active_by_resource: dict[str, int] = {} - waiters_by_resource: dict[str, int] = {} - wait_started: dict[str, float] = {} - wait_ages: dict[str, list[float]] = {} - totals = _empty_utilization_totals() - - for index, event in enumerate(ordered): - now = float(event.captured_at_monotonic) - snapshot = event.pressure_snapshot - resource = str(snapshot.resource) - capacity = max(1, int(getattr(snapshot, "effective_max", 1))) - capacities[resource] = max(capacities.get(resource, 0), capacity) - active_by_resource[resource] = int(getattr(snapshot, "in_flight_count", 0)) - waiters_by_resource[resource] = int(getattr(snapshot, "waiters", 0)) - - attempt_id = getattr(event, "request_attempt_id", None) - if attempt_id is not None and event.event_kind == "request_wait_started": - wait_started[attempt_id] = now - elif attempt_id is not None and event.event_kind in { - "request_wait_completed", - "request_wait_timeout", - "request_wait_cancelled", - "request_acquire_denied", - }: - started = wait_started.pop(attempt_id, None) - if started is not None: - wait_ages.setdefault(resource, []).append(max(0.0, now - started)) - - if index == len(ordered) - 1: - continue - next_time = float(ordered[index + 1].captured_at_monotonic) - interval_seconds = max(0.0, next_time - now) - _record_utilization_interval( - totals, - resource_limits=capacities, - active_by_resource=active_by_resource, - queued_or_waiting_by_resource=waiters_by_resource, - interval_seconds=interval_seconds, - ) - - return _finalize_utilization_metrics(totals, wait_ages) - - -def _ordered_events(events: list[Any]) -> list[Any]: - return sorted(events, key=lambda event: (event.captured_at_monotonic, event.sequence)) - - -def _empty_utilization_totals() -> dict[str, dict[str, Any]]: - return {} - - -def _record_utilization_interval( - totals: dict[str, dict[str, Any]], - *, - resource_limits: dict[str, int], - active_by_resource: dict[str, int], - queued_or_waiting_by_resource: dict[str, int], - interval_seconds: float, -) -> None: - if interval_seconds <= 0.0: - return - resources = {*resource_limits, *active_by_resource, *queued_or_waiting_by_resource} - for resource in resources: - active = max(0, active_by_resource.get(resource, 0)) - capacity = max(1, resource_limits.get(resource, max(active, queued_or_waiting_by_resource.get(resource, 0)))) - idle_slots = max(0, capacity - active) - queued_or_waiting = queued_or_waiting_by_resource.get(resource, 0) - resource_totals = totals.setdefault( - resource, - { - "capacity": capacity, - "active_window_seconds": 0.0, - "capacity_seconds": 0.0, - "busy_capacity_seconds": 0.0, - "idle_capacity_seconds": 0.0, - "starved_idle_seconds": 0.0, - "max_in_flight": 0, - "max_idle_slots": 0, - "samples": [], - }, - ) - resource_totals["capacity"] = max(int(resource_totals["capacity"]), capacity) - resource_totals["active_window_seconds"] += interval_seconds - resource_totals["capacity_seconds"] += capacity * interval_seconds - resource_totals["busy_capacity_seconds"] += active * interval_seconds - resource_totals["idle_capacity_seconds"] += idle_slots * interval_seconds - if queued_or_waiting > 0 and idle_slots > 0: - resource_totals["starved_idle_seconds"] += idle_slots * interval_seconds - resource_totals["max_in_flight"] = max(int(resource_totals["max_in_flight"]), active) - resource_totals["max_idle_slots"] = max(int(resource_totals["max_idle_slots"]), idle_slots) - resource_totals["samples"].append((interval_seconds, active)) - - -def _finalize_utilization_metrics( - totals: dict[str, dict[str, Any]], - queue_ages: dict[str, list[float]], -) -> dict[str, dict[str, float | int]]: - metrics: dict[str, dict[str, float | int]] = {} - for resource, resource_totals in totals.items(): - capacity_seconds = float(resource_totals["capacity_seconds"]) - active_window_seconds = float(resource_totals["active_window_seconds"]) - busy_capacity_seconds = float(resource_totals["busy_capacity_seconds"]) - idle_capacity_seconds = float(resource_totals["idle_capacity_seconds"]) - starved_idle_seconds = float(resource_totals["starved_idle_seconds"]) - dependency_horizon_idle_seconds = max(0.0, idle_capacity_seconds - starved_idle_seconds) - ages = queue_ages.get(resource, []) - if busy_capacity_seconds == 0.0 and starved_idle_seconds == 0.0 and not ages: - continue - active_count_mean = _safe_ratio(busy_capacity_seconds, active_window_seconds) - active_count_stdev = _weighted_stdev(resource_totals["samples"]) - queue_age_mean_seconds = statistics.fmean(ages) if ages else 0.0 - queue_age_p50_seconds = _percentile(ages, 0.50) - queue_age_p95_seconds = _percentile(ages, 0.95) - queue_age_max_seconds = max(ages) if ages else 0.0 - metrics[resource] = { - "capacity": int(resource_totals["capacity"]), - "active_window_seconds": active_window_seconds, - "capacity_seconds": capacity_seconds, - "busy_capacity_seconds": busy_capacity_seconds, - "idle_capacity_seconds": idle_capacity_seconds, - "starved_idle_seconds": starved_idle_seconds, - "dependency_horizon_idle_seconds": dependency_horizon_idle_seconds, - "frontier_dependency_horizon_idle_seconds": dependency_horizon_idle_seconds, - "utilization_ratio": _safe_ratio(busy_capacity_seconds, capacity_seconds), - "idle_ratio": _safe_ratio(idle_capacity_seconds, capacity_seconds), - "starved_idle_ratio": _safe_ratio(starved_idle_seconds, capacity_seconds), - "dependency_horizon_idle_ratio": _safe_ratio(dependency_horizon_idle_seconds, capacity_seconds), - "frontier_dependency_horizon_idle_ratio": _safe_ratio( - dependency_horizon_idle_seconds, - capacity_seconds, - ), - "active_count_mean": active_count_mean, - "active_count_stdev": active_count_stdev, - "burstiness_coefficient": _safe_ratio(active_count_stdev, active_count_mean), - "max_in_flight": int(resource_totals["max_in_flight"]), - "max_idle_slots": int(resource_totals["max_idle_slots"]), - "scheduler_queue_age_mean_seconds": queue_age_mean_seconds, - "scheduler_queue_age_p50_seconds": queue_age_p50_seconds, - "scheduler_queue_age_p95_seconds": queue_age_p95_seconds, - "scheduler_queue_age_max_seconds": queue_age_max_seconds, - "scheduler_queue_age_sample_count": len(ages), - "ready_to_dispatch_gap_mean_seconds": queue_age_mean_seconds, - "ready_to_dispatch_gap_p50_seconds": queue_age_p50_seconds, - "ready_to_dispatch_gap_p95_seconds": queue_age_p95_seconds, - "ready_to_dispatch_gap_max_seconds": queue_age_max_seconds, - "ready_to_dispatch_sample_count": len(ages), - } - return metrics - - -def _event_resource_request(event: Any) -> dict[str, int]: - diagnostics = getattr(event, "diagnostics", {}) or {} - return _int_mapping(diagnostics.get("resource_request", {})) - - -def _queued_resource_demand(queued_by_task: Mapping[str, Mapping[str, int]]) -> dict[str, int]: - demand: dict[str, int] = {} - for resources in queued_by_task.values(): - for resource, amount in resources.items(): - demand[resource] = demand.get(resource, 0) + amount - return demand - - -def _int_mapping(value: Any) -> dict[str, int]: - if not isinstance(value, Mapping): - return {} - return {str(resource): int(amount) for resource, amount in value.items()} - - -def _weighted_stdev(samples: list[tuple[float, int]]) -> float: - total_weight = sum(weight for weight, _value in samples) - if total_weight <= 0.0: - return 0.0 - mean = sum(weight * value for weight, value in samples) / total_weight - variance = sum(weight * ((value - mean) ** 2) for weight, value in samples) / total_weight - return variance**0.5 - - -def _safe_ratio(numerator: float, denominator: float) -> float: - if denominator <= 0: - return 0.0 - return numerator / denominator - - -def _pipeline_derived_metrics(metrics: list[dict[str, Any]]) -> dict[str, Any]: - if not metrics: - return {} - ready_gap_p95s = [metric["downstream_ready_gap_p95_seconds"] for metric in metrics] - ready_gap_maxes = [metric["downstream_ready_gap_max_seconds"] for metric in metrics] - overlap_ratios = [metric["upstream_downstream_overlap_ratio"] for metric in metrics] - return { - "pipeline_validation_passed": all(metric["validation_passed"] for metric in metrics), - "pipeline_mean_overlap_ratio": statistics.fmean(overlap_ratios) if overlap_ratios else 0.0, - "pipeline_max_downstream_ready_gap_seconds": max(ready_gap_maxes) if ready_gap_maxes else 0.0, - "pipeline_p95_downstream_ready_gap_seconds": _percentile(ready_gap_p95s, 0.95), - "pipeline_downstream_interleaved_before_all_upstream_completed": all( - metric["validation"]["downstream_interleaved_before_all_upstream_completed"] for metric in metrics - ), - } - - -def _request_pressure_derived_metrics(iterations: list[dict[str, Any]]) -> dict[str, Any]: - metrics = [iteration.get("request_pressure_metrics", {}) for iteration in iterations] - if not any(metrics): - return {} - wait_seconds = [float(metric.get("request_wait_seconds_while_task_leased", 0.0)) for metric in metrics] - first_dispatches = [metric.get("first_model_dispatch_column") for metric in metrics] - skip_counts = [int(metric.get("request_pressure_advisory_skip_count", 0) or 0) for metric in metrics] - return { - "request_pressure_advisory_enabled": any( - bool(metric.get("request_pressure_advisory_enabled", False)) for metric in metrics - ), - "request_pressure_advisory_skip_count": sum(skip_counts), - "request_wait_seconds_while_task_leased_mean": statistics.fmean(wait_seconds), - "request_wait_seconds_while_task_leased_max": max(wait_seconds), - "first_model_dispatch_column": first_dispatches[0] if first_dispatches else None, - } - - -def _aggregate_utilization_metrics(iterations: list[dict[str, Any]]) -> dict[str, Any]: - scheduler = _aggregate_resource_utilization(iterations, "scheduler_resources") - request = _aggregate_resource_utilization(iterations, "request_resources") - all_scheduler = list(scheduler.values()) - all_request = list(request.values()) - return { - "scheduler_resource_utilization": scheduler, - "request_resource_utilization": request, - "scheduler_min_utilization_ratio": min( - (metric["mean_utilization_ratio"] for metric in all_scheduler), - default=0.0, - ), - "scheduler_max_starved_idle_seconds": max( - (metric["max_starved_idle_seconds"] for metric in all_scheduler), - default=0.0, - ), - "scheduler_max_ready_to_dispatch_gap_seconds": max( - (metric["max_ready_to_dispatch_gap_seconds"] for metric in all_scheduler), - default=0.0, - ), - "scheduler_max_scheduler_queue_age_seconds": max( - (metric["max_scheduler_queue_age_seconds"] for metric in all_scheduler), - default=0.0, - ), - "scheduler_max_burstiness_coefficient": max( - (metric["max_burstiness_coefficient"] for metric in all_scheduler), - default=0.0, - ), - "request_min_utilization_ratio": min( - (metric["mean_utilization_ratio"] for metric in all_request), - default=0.0, - ), - "request_max_starved_idle_seconds": max( - (metric["max_starved_idle_seconds"] for metric in all_request), - default=0.0, - ), - "request_max_ready_to_dispatch_gap_seconds": max( - (metric["max_ready_to_dispatch_gap_seconds"] for metric in all_request), - default=0.0, - ), - "request_max_burstiness_coefficient": max( - (metric["max_burstiness_coefficient"] for metric in all_request), - default=0.0, - ), - } - - -def _aggregate_resource_utilization( - iterations: list[dict[str, Any]], - resource_kind: str, -) -> dict[str, dict[str, float | int]]: - by_resource: dict[str, list[dict[str, float | int]]] = {} - for iteration in iterations: - for resource, metrics in iteration.get("utilization_metrics", {}).get(resource_kind, {}).items(): - by_resource.setdefault(resource, []).append(metrics) - - aggregated: dict[str, dict[str, float | int]] = {} - for resource, metrics in by_resource.items(): - utilization_ratios = [float(metric["utilization_ratio"]) for metric in metrics] - idle_seconds = [float(metric["idle_capacity_seconds"]) for metric in metrics] - starved_idle_seconds = [float(metric["starved_idle_seconds"]) for metric in metrics] - dependency_horizon_idle_seconds = [_dependency_horizon_idle_seconds(metric) for metric in metrics] - dependency_horizon_idle_ratios = [_dependency_horizon_idle_ratio(metric) for metric in metrics] - burstiness = [float(metric["burstiness_coefficient"]) for metric in metrics] - scheduler_queue_ages = [ - float(metric.get("scheduler_queue_age_max_seconds", metric["ready_to_dispatch_gap_max_seconds"])) - for metric in metrics - ] - aggregated[resource] = { - "iterations_observed": len(metrics), - "mean_utilization_ratio": statistics.fmean(utilization_ratios), - "min_utilization_ratio": min(utilization_ratios), - "max_utilization_ratio": max(utilization_ratios), - "mean_idle_capacity_seconds": statistics.fmean(idle_seconds), - "mean_starved_idle_seconds": statistics.fmean(starved_idle_seconds), - "mean_dependency_horizon_idle_seconds": statistics.fmean(dependency_horizon_idle_seconds), - "max_dependency_horizon_idle_seconds": max(dependency_horizon_idle_seconds), - "mean_dependency_horizon_idle_ratio": statistics.fmean(dependency_horizon_idle_ratios), - "max_dependency_horizon_idle_ratio": max(dependency_horizon_idle_ratios), - "mean_frontier_dependency_horizon_idle_seconds": statistics.fmean(dependency_horizon_idle_seconds), - "max_frontier_dependency_horizon_idle_seconds": max(dependency_horizon_idle_seconds), - "mean_frontier_dependency_horizon_idle_ratio": statistics.fmean(dependency_horizon_idle_ratios), - "max_frontier_dependency_horizon_idle_ratio": max(dependency_horizon_idle_ratios), - "max_starved_idle_seconds": max(starved_idle_seconds), - "max_burstiness_coefficient": max(burstiness), - "max_scheduler_queue_age_seconds": max(scheduler_queue_ages), - "max_ready_to_dispatch_gap_seconds": max(scheduler_queue_ages), - } - return aggregated - - -def _dependency_horizon_idle_seconds(metric: Mapping[str, float | int]) -> float: - if "dependency_horizon_idle_seconds" in metric: - return float(metric["dependency_horizon_idle_seconds"]) - return max(0.0, float(metric["idle_capacity_seconds"]) - float(metric["starved_idle_seconds"])) - - -def _dependency_horizon_idle_ratio(metric: Mapping[str, float | int]) -> float: - if "dependency_horizon_idle_ratio" in metric: - return float(metric["dependency_horizon_idle_ratio"]) - return _safe_ratio(_dependency_horizon_idle_seconds(metric), float(metric["capacity_seconds"])) - - -async def _measure_async_request_wakeup_seconds() -> float: - resource = RequestResourceKey("mock-provider", "mock-model", RequestDomain.CHAT) - controller = AdaptiveRequestAdmissionController( - RequestAdmissionConfig(default_queue_wait_timeout_seconds=30.0, increase_after_successes=1) - ) - controller.register( - provider_name="mock-provider", - model_id="mock-model", - alias="mock-alias", - max_parallel_requests=1, - ) - item = RequestAdmissionItem(resource, RequestGroupSpec(resource), queue_wait_timeout_seconds=30.0) - first_lease = controller.try_acquire(item) - if not isinstance(first_lease, RequestAdmissionLease): - raise RuntimeError(f"Expected initial request lease, got {first_lease.reason}") - - queued_task = asyncio.create_task(controller.acquire_async(item)) - for _ in range(100): - snapshot = controller.pressure.snapshot(resource) - if snapshot is not None and snapshot.waiters == 1: - break - await asyncio.sleep(0) - else: - raise RuntimeError("Async request waiter did not enqueue.") - - started = time.perf_counter() - controller.release(first_lease, RequestReleaseOutcome(kind="success")) - queued_lease = await asyncio.wait_for(queued_task, timeout=5.0) - elapsed = time.perf_counter() - started - controller.release(queued_lease, RequestReleaseOutcome(kind="success")) - return elapsed - - -def _artifact(inputs: BenchmarkInputs, iterations: list[dict[str, Any]]) -> dict[str, Any]: - resource = RequestResourceKey("mock-provider", "mock-model", RequestDomain.CHAT) - provider_model = ProviderModelKey("mock-provider", "mock-model") - task_capacity = inputs.task_admission_capacity - capacity_plan = AsyncCapacityPlan( - configured=AsyncCapacityConfigured( - buffer_size=CapacityValue(value=inputs.buffer_size, source="run_config"), - row_group_admission=RowGroupAdmission( - row_group_concurrency=CapacityValue(value=inputs.row_group_concurrency, source="benchmark_override"), - observed_in_flight=0, - ), - submission_capacity=CapacityValue(value=task_capacity, source="benchmark_override"), - task_resource_limits=CapacityValue( - value={"submission": task_capacity, "llm_wait": max(1, task_capacity // 2), "local": task_capacity}, - source="benchmark_override", - ), - request_resources=CapacityValue(value=(resource,), source="benchmark_override"), - provider_model_static_caps=CapacityValue( - value={ - provider_model: ProviderModelStaticCap( - cap=max(1, task_capacity // 2), - aliases=("mock-alias",), - raw_caps={"mock-alias": max(1, task_capacity // 2)}, - ) - }, - source="model_metadata", - ), - request_domain_initial_limits=CapacityValue( - value={resource: max(1, task_capacity // 2)}, source="benchmark_override" - ), - request_admission_config=CapacityValue( - value=RequestAdmissionConfigSnapshot.from_config(RequestAdmissionConfig()), - source="engine_internal_config", - ), - transport_pool_limits=CapacityValue(value={provider_model: task_capacity}, source="adapter_config"), - ), - runtime_snapshot=AsyncCapacityRuntimeSnapshot( - request_domain_current_limits={resource: max(1, task_capacity // 2)}, - request_domain_effective_max={resource: max(1, task_capacity // 2)}, - request_domain_blocked_until={resource: None}, - provider_model_aggregate_in_flight={provider_model: 0}, - ), - observed_maxima=AsyncCapacityObservedMaxima( - row_groups_in_flight=inputs.row_group_concurrency, - request_waiters_by_resource={resource: 0}, - request_in_flight_by_resource={resource: max(1, task_capacity // 2)}, - provider_model_aggregate_in_flight={provider_model: max(1, task_capacity // 2)}, - request_domain_current_limits={resource: max(1, task_capacity // 2)}, - transport_pool_utilization={provider_model: 0}, - ), - ) - wall_times = [iteration["wall_time_seconds"] for iteration in iterations] - async_wakeups = [iteration["async_request_wakeup_seconds"] for iteration in iterations] - pipeline_metrics = [iteration["pipeline_metrics"] for iteration in iterations if "pipeline_metrics" in iteration] - utilization_metrics = _aggregate_utilization_metrics(iterations) - request_pressure_metrics = _request_pressure_derived_metrics(iterations) - return { - "scenario_id": inputs.scenario, - "artifact_schema_version": ARTIFACT_SCHEMA_VERSION, - "scenario_version": inputs.scenario_version, - "harness_version": inputs.harness_version, - "baseline_sha": _git_rev_parse(inputs.baseline_ref), - "candidate_sha": _git_rev_parse(inputs.candidate_ref), - "worktree_dirty": _worktree_dirty(), - "worktree_status_short": _worktree_status_short(), - "worktree_diff_sha256": _worktree_diff_hash(), - "command_line": sys.argv, - "machine": { - "platform": platform.platform(), - "python": platform.python_version(), - "processor": platform.processor(), - }, - "inputs": inputs, - "provider_script": {"provider": "mock-provider", "model": "mock-model", "domains": ["chat"]}, - "clock_script": {"time_source": "time.monotonic", "deterministic_replay": False}, - "capacity_plan": capacity_plan, - "iterations": iterations, - "derived_metrics": { - "mean_wall_time_seconds": statistics.fmean(wall_times) if wall_times else 0.0, - "p50_wall_time_seconds": statistics.median(wall_times) if wall_times else 0.0, - "p95_wall_time_seconds": _percentile(wall_times, 0.95), - "min_wall_time_seconds": min(wall_times) if wall_times else 0.0, - "max_wall_time_seconds": max(wall_times) if wall_times else 0.0, - "stdev_wall_time_seconds": statistics.stdev(wall_times) if len(wall_times) > 1 else 0.0, - "mean_async_request_wakeup_seconds": statistics.fmean(async_wakeups) if async_wakeups else 0.0, - "p95_async_request_wakeup_seconds": _percentile(async_wakeups, 0.95), - "max_async_request_wakeup_seconds": max(async_wakeups) if async_wakeups else 0.0, - **_pipeline_derived_metrics(pipeline_metrics), - **utilization_metrics, - **request_pressure_metrics, - "max_hidden_scheduler_resource_waiters": 0, - "final_zero_task_leases": all( - sum(iteration["final_task_snapshot"].leased_resources.values()) == 0 for iteration in iterations - ), - "final_zero_request_leases": all( - iteration["final_request_snapshot"]["zero_active_request_leases"] for iteration in iterations - ), - "final_zero_request_waiters": all( - iteration["final_request_snapshot"]["zero_request_waiters"] for iteration in iterations - ), - }, - } - - -def _event_payload(event: Any) -> dict[str, Any]: - return { - "event_kind": event.event_kind, - "captured_at_monotonic": event.captured_at_monotonic, - "sequence": event.sequence, - "captured_correlation": event.captured_correlation, - "task_id": getattr(event, "task_id", None), - "task_execution_id": getattr(event, "task_execution_id", None), - "task_lease_id": getattr(event, "task_lease_id", None), - "request_attempt_id": getattr(event, "request_attempt_id", None), - "request_lease_id": getattr(event, "request_lease_id", None), - "scheduler_resource_key": getattr(event, "scheduler_resource_key", None), - "request_resource_key": getattr(event, "request_resource_key", None), - "reason_or_outcome": getattr(event, "reason_or_outcome", None) or getattr(event, "reason_or_result", None), - "snapshot": getattr(event, "snapshot", None), - "pressure_snapshot": getattr(event, "pressure_snapshot", None), - "diagnostics": getattr(event, "diagnostics", {}), - } - - -def _iteration_min_utilization_ratio(iteration: Mapping[str, Any], resource_kind: str) -> float: - resources = iteration.get("utilization_metrics", {}).get(resource_kind, {}) - return min((float(metric["utilization_ratio"]) for metric in resources.values()), default=0.0) - - -def _iteration_starved_idle_seconds(iteration: Mapping[str, Any], resource_kind: str) -> float: - resources = iteration.get("utilization_metrics", {}).get(resource_kind, {}) - return sum(float(metric["starved_idle_seconds"]) for metric in resources.values()) - - -def _write_csv(path: Path, artifact: Mapping[str, Any]) -> None: - with path.open("w", newline="", encoding="utf-8") as handle: - writer = csv.DictWriter( - handle, - fieldnames=[ - "iteration", - "wall_time_seconds", - "async_request_wakeup_seconds", - "accepted_task_count", - "scheduler_min_utilization_ratio", - "scheduler_starved_idle_seconds", - "output_hash", - ], - ) - writer.writeheader() - for index, iteration in enumerate(artifact["iterations"]): - writer.writerow( - { - "iteration": index, - "wall_time_seconds": iteration["wall_time_seconds"], - "async_request_wakeup_seconds": iteration["async_request_wakeup_seconds"], - "accepted_task_count": iteration["accepted_task_count"], - "scheduler_min_utilization_ratio": _iteration_min_utilization_ratio( - iteration, - "scheduler_resources", - ), - "scheduler_starved_idle_seconds": _iteration_starved_idle_seconds( - iteration, - "scheduler_resources", - ), - "output_hash": next(iter(iteration["output_hashes"].values())), - } - ) - - -def _write_markdown(path: Path, artifact: Mapping[str, Any]) -> None: - metrics = artifact["derived_metrics"] - lines = [ - "# Async Scheduling Benchmark Smoke", - "", - f"- scenario: `{artifact['scenario_id']}`", - f"- baseline_sha: `{artifact['baseline_sha']}`", - f"- candidate_sha: `{artifact['candidate_sha']}`", - f"- iterations: `{len(artifact['iterations'])}`", - f"- mean_wall_time_seconds: `{metrics['mean_wall_time_seconds']:.6f}`", - f"- p95_wall_time_seconds: `{metrics['p95_wall_time_seconds']:.6f}`", - f"- mean_async_request_wakeup_seconds: `{metrics['mean_async_request_wakeup_seconds']:.6f}`", - f"- p95_async_request_wakeup_seconds: `{metrics['p95_async_request_wakeup_seconds']:.6f}`", - f"- max_async_request_wakeup_seconds: `{metrics['max_async_request_wakeup_seconds']:.6f}`", - f"- scheduler_min_utilization_ratio: `{metrics['scheduler_min_utilization_ratio']:.6f}`", - f"- scheduler_max_starved_idle_seconds: `{metrics['scheduler_max_starved_idle_seconds']:.6f}`", - f"- scheduler_max_scheduler_queue_age_seconds: `{metrics['scheduler_max_scheduler_queue_age_seconds']:.6f}`", - "- scheduler_max_ready_to_dispatch_gap_seconds: " - f"`{metrics['scheduler_max_ready_to_dispatch_gap_seconds']:.6f}`", - f"- scheduler_max_burstiness_coefficient: `{metrics['scheduler_max_burstiness_coefficient']:.6f}`", - f"- max_hidden_scheduler_resource_waiters: `{metrics['max_hidden_scheduler_resource_waiters']}`", - f"- final_zero_task_leases: `{metrics['final_zero_task_leases']}`", - f"- final_zero_request_leases: `{metrics['final_zero_request_leases']}`", - f"- final_zero_request_waiters: `{metrics['final_zero_request_waiters']}`", - ] - if "pipeline_validation_passed" in metrics: - lines.extend( - [ - f"- pipeline_validation_passed: `{metrics['pipeline_validation_passed']}`", - f"- pipeline_mean_overlap_ratio: `{metrics['pipeline_mean_overlap_ratio']:.6f}`", - f"- pipeline_p95_downstream_ready_gap_seconds: `{metrics['pipeline_p95_downstream_ready_gap_seconds']:.6f}`", - f"- pipeline_max_downstream_ready_gap_seconds: `{metrics['pipeline_max_downstream_ready_gap_seconds']:.6f}`", - "- pipeline_downstream_interleaved_before_all_upstream_completed: " - f"`{metrics['pipeline_downstream_interleaved_before_all_upstream_completed']}`", - ] - ) - lines.extend( - _resource_utilization_markdown("Scheduler Resource Utilization", metrics["scheduler_resource_utilization"]) - ) - if metrics["request_resource_utilization"]: - lines.extend( - _resource_utilization_markdown("Request Resource Utilization", metrics["request_resource_utilization"]) - ) - lines.append("") - path.write_text("\n".join(lines), encoding="utf-8") - - -def _resource_utilization_markdown(title: str, resources: Mapping[str, Mapping[str, Any]]) -> list[str]: - if not resources: - return [] - lines = ["", f"## {title}", ""] - for resource, metrics in sorted(resources.items()): - lines.append( - f"- `{resource}`: util=`{float(metrics['mean_utilization_ratio']):.6f}`, " - f"idle_s=`{float(metrics['mean_idle_capacity_seconds']):.6f}`, " - f"starved_idle_s=`{float(metrics['mean_starved_idle_seconds']):.6f}`, " - f"dependency_horizon_idle_s=`{float(metrics['mean_dependency_horizon_idle_seconds']):.6f}`, " - f"max_scheduler_queue_age_s=`{float(metrics['max_scheduler_queue_age_seconds']):.6f}`, " - f"burstiness=`{float(metrics['max_burstiness_coefficient']):.6f}`" - ) - return lines - - -def _validate_artifact(artifact: Mapping[str, Any]) -> None: - metrics = artifact["derived_metrics"] - inputs = artifact["inputs"] - task_capacity = _input_value(inputs, "task_admission_capacity") - failures: list[str] = [] - if not metrics["final_zero_task_leases"]: - failures.append("task leases leaked at end of benchmark") - if not metrics["final_zero_request_leases"]: - failures.append("request leases leaked at end of benchmark") - if not metrics["final_zero_request_waiters"]: - failures.append("request waiters leaked at end of benchmark") - if metrics["p95_async_request_wakeup_seconds"] > ASYNC_WAKEUP_GATE_SECONDS: - failures.append( - "async request wakeup p95 exceeded " - f"{ASYNC_WAKEUP_GATE_SECONDS:.3f}s: {metrics['p95_async_request_wakeup_seconds']:.6f}s" - ) - if "pipeline_validation_passed" in metrics and not metrics["pipeline_validation_passed"]: - failures.append("real-pipeline-overlap validation failed") - for index, iteration in enumerate(artifact["iterations"]): - selected_count = iteration.get( - "selected_task_count", - iteration.get("per_layer_observed_maxima", {}).get("selected_tasks", 0), - ) - accepted_count = iteration["accepted_task_count"] - if selected_count != accepted_count: - failures.append( - f"iteration {index} selected {selected_count} tasks but accepted {accepted_count}; queue drained early" - ) - observed = iteration.get("per_layer_observed_maxima", {}) - task_leases = observed.get("task_leases_by_resource", {}) - for resource, limit in _task_resource_limits(artifact, iteration, task_capacity).items(): - observed_count = int(task_leases.get(resource, 0)) - if observed_count > limit: - failures.append(f"iteration {index} exceeded {resource} task cap {limit}: observed {observed_count}") - request_limits = _request_resource_limits(iteration, default=max(1, task_capacity // 2)) - for resource, observed_count in observed.get("request_in_flight_by_resource", {}).items(): - request_capacity = request_limits.get(str(resource), max(1, task_capacity // 2)) - if int(observed_count) > request_capacity: - failures.append( - f"iteration {index} exceeded request cap {request_capacity} for {resource}: observed {observed_count}" - ) - utilization = iteration.get("utilization_metrics", {}) - scheduler_utilization = utilization.get("scheduler_resources", {}) - if not scheduler_utilization: - failures.append(f"iteration {index} did not record scheduler utilization metrics") - _validate_resource_utilization_metrics( - scheduler_utilization, - failures=failures, - iteration=index, - resource_kind="scheduler", - ) - _validate_resource_utilization_metrics( - utilization.get("request_resources", {}), - failures=failures, - iteration=index, - resource_kind="request", - ) - if failures: - joined = "; ".join(failures) - raise RuntimeError(f"Async scheduling benchmark validation failed: {joined}") - - -def _task_resource_limits( - artifact: Mapping[str, Any], - iteration: Mapping[str, Any], - task_capacity: int, -) -> dict[str, int]: - default = { - "submission": task_capacity, - "llm_wait": max(1, task_capacity // 2), - "local": task_capacity, - } - plan = iteration.get("capacity_plan") or artifact.get("capacity_plan") - configured = _field(plan, "configured") - capacity_value = _field(configured, "task_resource_limits") - value = _field(capacity_value, "value") - if not isinstance(value, Mapping): - return default - return {str(resource): int(limit) for resource, limit in value.items()} - - -def _request_resource_limits(iteration: Mapping[str, Any], *, default: int) -> dict[str, int]: - final_request_snapshot = iteration.get("final_request_snapshot", {}) - domains = _field(final_request_snapshot, "domains") - if not isinstance(domains, Mapping): - return {} - limits: dict[str, int] = {} - for resource, snapshot in domains.items(): - effective_max = _field(snapshot, "effective_max") - current_limit = _field(snapshot, "current_limit") - limit = effective_max if effective_max is not None else current_limit - limits[str(resource)] = int(limit if limit is not None else default) - return limits - - -def _field(value: Any, name: str) -> Any: - if isinstance(value, Mapping): - return value.get(name) - return getattr(value, name, None) - - -def _validate_resource_utilization_metrics( - resource_metrics: Mapping[str, Mapping[str, Any]], - *, - failures: list[str], - iteration: int, - resource_kind: str, -) -> None: - for resource, metrics in resource_metrics.items(): - capacity_seconds = float(metrics.get("capacity_seconds", 0.0)) - busy_capacity_seconds = float(metrics.get("busy_capacity_seconds", 0.0)) - idle_capacity_seconds = float(metrics.get("idle_capacity_seconds", 0.0)) - starved_idle_seconds = float(metrics.get("starved_idle_seconds", 0.0)) - dependency_horizon_idle_seconds = float( - metrics.get( - "dependency_horizon_idle_seconds", - max(0.0, idle_capacity_seconds - starved_idle_seconds), - ) - ) - utilization_ratio = float(metrics.get("utilization_ratio", -1.0)) - dependency_horizon_idle_ratio = float( - metrics.get( - "dependency_horizon_idle_ratio", - _safe_ratio(dependency_horizon_idle_seconds, capacity_seconds), - ) - ) - if ( - min( - capacity_seconds, - busy_capacity_seconds, - idle_capacity_seconds, - starved_idle_seconds, - dependency_horizon_idle_seconds, - ) - < 0.0 - ): - failures.append(f"iteration {iteration} has negative {resource_kind} utilization metric for {resource}") - if busy_capacity_seconds > capacity_seconds + 1e-9: - failures.append(f"iteration {iteration} has busy {resource_kind} capacity above total for {resource}") - if starved_idle_seconds > idle_capacity_seconds + 1e-9: - failures.append(f"iteration {iteration} has starved {resource_kind} idle above total idle for {resource}") - if abs((starved_idle_seconds + dependency_horizon_idle_seconds) - idle_capacity_seconds) > 1e-9: - failures.append(f"iteration {iteration} has invalid {resource_kind} idle partition for {resource}") - if not 0.0 <= utilization_ratio <= 1.0: - failures.append(f"iteration {iteration} has invalid {resource_kind} utilization ratio for {resource}") - if not 0.0 <= dependency_horizon_idle_ratio <= 1.0: - failures.append( - f"iteration {iteration} has invalid {resource_kind} dependency-horizon idle ratio for {resource}" - ) - - -def _input_value(inputs: Any, name: str) -> Any: - if isinstance(inputs, Mapping): - return inputs[name] - return getattr(inputs, name) - - -def _git_rev_parse(ref: str) -> str: - try: - return subprocess.check_output(["git", "rev-parse", ref], text=True).strip() - except Exception: - return f"unresolved:{ref}" - - -def _worktree_dirty() -> bool: - try: - result = subprocess.run(["git", "status", "--short"], check=False, capture_output=True, text=True) - except Exception: - return True - return bool(result.stdout.strip()) - - -def _worktree_status_short() -> str: - try: - result = subprocess.run(["git", "status", "--short"], check=False, capture_output=True, text=True) - except Exception as exc: - return f"unavailable:{exc}" - return result.stdout - - -def _worktree_diff_hash() -> str: - try: - diff = subprocess.check_output(["git", "diff", "--binary", "HEAD"], text=False) - except Exception as exc: - return f"unavailable:{exc}" - return hashlib.sha256(diff).hexdigest() - - -def _percentile(values: list[float], pct: float) -> float: - if not values: - return 0.0 - ordered = sorted(values) - index = min(len(ordered) - 1, max(0, int(round((len(ordered) - 1) * pct)))) - return ordered[index] - - -def _to_jsonable(value: Any) -> Any: - if is_dataclass(value): - return {field.name: _to_jsonable(getattr(value, field.name)) for field in fields(value)} - if isinstance(value, Enum): - return value.value - if isinstance(value, Mapping): - return {str(_to_jsonable(key)): _to_jsonable(item) for key, item in value.items()} - if isinstance(value, tuple | list | set): - return [_to_jsonable(item) for item in value] - return value - - -if __name__ == "__main__": - main() diff --git a/scripts/benchmarks/export_async_scheduling_perfetto.py b/scripts/benchmarks/export_async_scheduling_perfetto.py deleted file mode 100644 index ea847f58e..000000000 --- a/scripts/benchmarks/export_async_scheduling_perfetto.py +++ /dev/null @@ -1,431 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -"""Export async scheduling benchmark sink timelines to Perfetto JSON. - -The output is Chrome trace-event JSON, which Perfetto can open directly. -""" - -from __future__ import annotations - -import argparse -import json -from collections.abc import Mapping -from pathlib import Path -from typing import Any - -TRACE_SCHEMA = "async-scheduling-perfetto-trace-v1" - -PID = 1 -LANES = { - "scheduler_events": 1, - "row_groups": 2, - "task_execution": 3, - "task_leases": 4, - "request_waits": 5, - "request_leases": 6, - "model_requests": 7, - "counters": 8, -} - -TERMINAL_REQUEST_WAIT_EVENTS = { - "request_wait_completed", - "request_wait_timeout", - "request_wait_cancelled", - "request_acquire_denied", -} - - -def main() -> None: - args = _parse_args() - artifact_path = Path(args.artifact) - artifact = json.loads(artifact_path.read_text(encoding="utf-8")) - output_path = Path(args.output) if args.output else artifact_path.with_suffix(".perfetto.json") - trace = benchmark_artifact_to_perfetto(artifact, iteration_index=args.iteration) - output_path.parent.mkdir(parents=True, exist_ok=True) - output_path.write_text(json.dumps(trace, indent=2, sort_keys=True) + "\n", encoding="utf-8") - print(f"Wrote {output_path}") - - -def _parse_args() -> argparse.Namespace: - parser = argparse.ArgumentParser(description=__doc__) - parser.add_argument("artifact", help="Path to async_scheduling_benchmark.json") - parser.add_argument("--output", help="Output .perfetto.json path") - parser.add_argument("--iteration", type=int, default=0, help="Benchmark iteration index to export.") - return parser.parse_args() - - -def benchmark_artifact_to_perfetto( - artifact: Mapping[str, Any], - *, - iteration_index: int = 0, -) -> dict[str, Any]: - iterations = artifact.get("iterations", []) - if not isinstance(iterations, list) or not iterations: - raise ValueError("Benchmark artifact has no iterations.") - try: - iteration = iterations[iteration_index] - except IndexError: - raise ValueError(f"Iteration {iteration_index} is not present.") from None - timeline = sorted( - iteration.get("timeline", []), - key=lambda event: ( - float(event.get("captured_at_monotonic", 0.0) or 0.0), - int(event.get("sequence", 0) or 0), - ), - ) - if not timeline: - raise ValueError("Selected iteration has no timeline events.") - - base = min(float(event.get("captured_at_monotonic", 0.0) or 0.0) for event in timeline) - trace_events: list[dict[str, Any]] = [] - trace_events.extend(_metadata_events()) - trace_events.extend(_counter_events(timeline, base)) - trace_events.extend(_interval_events(timeline, base)) - trace_events.extend(_instant_events(timeline, base)) - - return { - "traceEvents": trace_events, - "displayTimeUnit": "ms", - "metadata": { - "schema": TRACE_SCHEMA, - "scenario_id": artifact.get("scenario_id"), - "scenario_version": artifact.get("scenario_version"), - "harness_version": artifact.get("harness_version"), - "iteration_index": iteration_index, - "mean_wall_time_seconds": artifact.get("derived_metrics", {}).get("mean_wall_time_seconds"), - "candidate_sha": artifact.get("candidate_sha"), - "worktree_dirty": artifact.get("worktree_dirty"), - "worktree_diff_sha256": artifact.get("worktree_diff_sha256"), - }, - } - - -def _metadata_events() -> list[dict[str, Any]]: - return [ - { - "name": "thread_name", - "ph": "M", - "pid": PID, - "tid": tid, - "args": {"name": name}, - } - for name, tid in LANES.items() - ] - - -def _counter_events(timeline: list[Mapping[str, Any]], base: float) -> list[dict[str, Any]]: - events: list[dict[str, Any]] = [] - for event in timeline: - if event.get("event_kind") != "scheduler_health_snapshot": - continue - diagnostics = _mapping(event.get("diagnostics")) - ts = _timestamp_us(event, base) - counters = { - "active_row_groups": diagnostics.get("active_row_groups"), - "target_row_groups": diagnostics.get("target_row_groups"), - "active_admitted_rows": diagnostics.get("active_admitted_rows"), - "queued_total": diagnostics.get("queued_total"), - "in_flight_tasks": diagnostics.get("in_flight_tasks"), - "active_workers": diagnostics.get("active_workers"), - "deferred_tasks": diagnostics.get("deferred_tasks"), - "request_pressure_advisory_skips": diagnostics.get("request_pressure_advisory_skips"), - } - for name, value in counters.items(): - if isinstance(value, int | float): - events.append(_counter_event(name, ts, value)) - for resource, value in _mapping(diagnostics.get("leased_resources")).items(): - if isinstance(value, int | float): - events.append(_counter_event(f"leased:{resource}", ts, value)) - for resource, value in _mapping(diagnostics.get("resources_available")).items(): - if isinstance(value, int | float): - events.append(_counter_event(f"available:{resource}", ts, value)) - for resource, value in _mapping(diagnostics.get("queued_demand_by_resource")).items(): - if isinstance(value, int | float): - events.append(_counter_event(f"queued_demand:{resource}", ts, value)) - request_pressure = _mapping(diagnostics.get("request_pressure")) - for resource, snapshot in _mapping(request_pressure.get("resources")).items(): - snapshot_map = _mapping(snapshot) - for field in ("in_flight_count", "waiters", "current_limit", "effective_max"): - value = snapshot_map.get(field) - if isinstance(value, int | float): - events.append(_counter_event(f"request:{resource}:{field}", ts, value)) - return events - - -def _counter_event(name: str, ts: int, value: int | float) -> dict[str, Any]: - return { - "name": name, - "cat": "scheduler_counters", - "ph": "C", - "pid": PID, - "tid": LANES["counters"], - "ts": ts, - "args": {"value": value}, - } - - -def _interval_events(timeline: list[Mapping[str, Any]], base: float) -> list[dict[str, Any]]: - starts: dict[tuple[str, str], Mapping[str, Any]] = {} - intervals: list[dict[str, Any]] = [] - for event in timeline: - kind = str(event.get("event_kind")) - if kind == "row_group_admitted": - row_group = _diagnostic(event, "row_group") - if row_group is not None: - starts[("row_group", str(row_group))] = event - elif kind == "row_group_checkpointed": - row_group = _diagnostic(event, "row_group") - if row_group is not None: - intervals.extend( - _finish_interval( - starts, - ("row_group", str(row_group)), - event, - base, - lane="row_groups", - cat="row_group", - name=f"row group {row_group}", - ) - ) - elif kind == "worker_spawned": - task_execution_id = _event_key(event, "task_execution_id") - if task_execution_id is not None: - starts[("task_execution", task_execution_id)] = event - elif kind == "task_completed": - task_execution_id = _event_key(event, "task_execution_id") - if task_execution_id is not None: - intervals.extend( - _finish_interval( - starts, - ("task_execution", task_execution_id), - event, - base, - lane="task_execution", - cat="scheduler_task", - name=f"task {_task_label(event)}", - ) - ) - elif kind == "task_lease_acquired": - lease_id = _event_key(event, "task_lease_id") - if lease_id is not None: - starts[("task_lease", lease_id)] = event - elif kind == "task_lease_released": - lease_id = _event_key(event, "task_lease_id") - if lease_id is not None: - intervals.extend( - _finish_interval( - starts, - ("task_lease", lease_id), - event, - base, - lane="task_leases", - cat="scheduler_lease", - name=f"task lease {_task_label(event)}", - ) - ) - elif kind == "request_wait_started": - request_key = _request_attempt_key(event) - if request_key is not None: - starts[("request_wait", request_key)] = event - elif kind in TERMINAL_REQUEST_WAIT_EVENTS: - request_key = _request_attempt_key(event) - if request_key is not None: - intervals.extend( - _finish_interval( - starts, - ("request_wait", request_key), - event, - base, - lane="request_waits", - cat="request_wait", - name=f"request wait {_request_resource_label(event)}", - ) - ) - elif kind == "request_lease_acquired": - lease_id = _event_key(event, "request_lease_id") - if lease_id is not None: - starts[("request_lease", lease_id)] = event - elif kind == "request_lease_released": - lease_id = _event_key(event, "request_lease_id") - if lease_id is not None: - intervals.extend( - _finish_interval( - starts, - ("request_lease", lease_id), - event, - base, - lane="request_leases", - cat="request_lease", - name=f"request lease {_request_resource_label(event)}", - ) - ) - elif kind == "model_request_started": - request_key = _request_attempt_key(event) or _event_key(event, "request_lease_id") - if request_key is not None: - starts[("model_request", request_key)] = event - elif kind == "model_request_completed": - request_key = _request_attempt_key(event) or _event_key(event, "request_lease_id") - if request_key is not None: - intervals.extend( - _finish_interval( - starts, - ("model_request", request_key), - event, - base, - lane="model_requests", - cat="model_request", - name=f"model request {_request_resource_label(event)}", - ) - ) - return intervals - - -def _finish_interval( - starts: dict[tuple[str, str], Mapping[str, Any]], - key: tuple[str, str], - end_event: Mapping[str, Any], - base: float, - *, - lane: str, - cat: str, - name: str, -) -> list[dict[str, Any]]: - start_event = starts.pop(key, None) - if start_event is None: - return [] - started = _timestamp_us(start_event, base) - ended = _timestamp_us(end_event, base) - return [ - { - "name": name, - "cat": cat, - "ph": "X", - "pid": PID, - "tid": LANES[lane], - "ts": started, - "dur": max(0, ended - started), - "args": _event_args(end_event) | {"start_event": _event_args(start_event)}, - } - ] - - -def _instant_events(timeline: list[Mapping[str, Any]], base: float) -> list[dict[str, Any]]: - events = [] - for event in timeline: - stream = str(event.get("stream", "scheduler")) - kind = str(event.get("event_kind")) - lane = "scheduler_events" - events.append( - { - "name": kind, - "cat": f"{stream}_event", - "ph": "i", - "s": "t", - "pid": PID, - "tid": LANES[lane], - "ts": _timestamp_us(event, base), - "args": _event_args(event), - } - ) - return events - - -def _event_args(event: Mapping[str, Any]) -> dict[str, Any]: - return { - "stream": event.get("stream"), - "sequence": event.get("sequence"), - "task_id": event.get("task_id"), - "task_execution_id": event.get("task_execution_id"), - "task_lease_id": event.get("task_lease_id"), - "request_attempt_id": event.get("request_attempt_id"), - "request_lease_id": event.get("request_lease_id"), - "request_resource": _request_resource_label(event), - "reason_or_outcome": event.get("reason_or_outcome"), - "correlation": _jsonable(event.get("captured_correlation"), max_depth=2), - "diagnostics": _jsonable(event.get("diagnostics"), max_depth=3), - } - - -def _timestamp_us(event: Mapping[str, Any], base: float) -> int: - captured_at = float(event.get("captured_at_monotonic", 0.0) or 0.0) - return int(round((captured_at - base) * 1_000_000.0)) - - -def _event_key(event: Mapping[str, Any], key: str) -> str | None: - value = event.get(key) - return None if value is None else str(value) - - -def _request_attempt_key(event: Mapping[str, Any]) -> str | None: - attempt_id = _event_key(event, "request_attempt_id") - if attempt_id is not None: - return attempt_id - lease_id = _event_key(event, "request_lease_id") - if lease_id is not None: - return lease_id - correlation = _mapping(event.get("captured_correlation")) - task_execution_id = correlation.get("task_execution_id") - request_resource = _request_resource_label(event) - if task_execution_id is None and request_resource is None: - return None - return f"{task_execution_id}:{request_resource}" - - -def _task_label(event: Mapping[str, Any]) -> str: - correlation = _mapping(event.get("captured_correlation")) - column = correlation.get("task_column") or "unknown" - row_group = correlation.get("row_group") - task_type = correlation.get("task_type") or "task" - return f"{column} rg={row_group} {task_type}" - - -def _request_resource_label(event: Mapping[str, Any]) -> str | None: - resource = event.get("request_resource_key") - if resource is None: - resource = _diagnostic(event, "request_resource") - if isinstance(resource, Mapping): - provider = resource.get("provider_name") - model = resource.get("model_id") - domain = resource.get("domain") - if provider is not None and model is not None and domain is not None: - return f"{provider}/{model}/{domain}" - return None if resource is None else str(resource) - - -def _diagnostic(event: Mapping[str, Any], key: str) -> Any: - diagnostics = event.get("diagnostics", {}) - if not isinstance(diagnostics, Mapping): - return None - return diagnostics.get(key) - - -def _mapping(value: Any) -> Mapping[str, Any]: - return value if isinstance(value, Mapping) else {} - - -def _jsonable(value: Any, *, max_depth: int, depth: int = 0) -> Any: - if value is None or isinstance(value, str | int | float | bool): - return value - if depth >= max_depth: - return str(value) - if isinstance(value, Mapping): - return { - str(_jsonable(key, max_depth=max_depth, depth=depth + 1)): _jsonable( - item, - max_depth=max_depth, - depth=depth + 1, - ) - for key, item in list(value.items())[:50] - } - if isinstance(value, list | tuple | set): - items = list(value) - result = [_jsonable(item, max_depth=max_depth, depth=depth + 1) for item in items[:50]] - if len(items) > 50: - result.append(f"... {len(items) - 50} more") - return result - return str(value) - - -if __name__ == "__main__": - main() diff --git a/scripts/benchmarks/generate_async_scheduling_idle_report.py b/scripts/benchmarks/generate_async_scheduling_idle_report.py deleted file mode 100644 index ad17e1b87..000000000 --- a/scripts/benchmarks/generate_async_scheduling_idle_report.py +++ /dev/null @@ -1,1775 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -"""Generate an HTML idle-time analysis report for async scheduling benchmarks.""" - -from __future__ import annotations - -import argparse -import html -import json -import math -import os -import subprocess -import sys -from collections.abc import Iterable, Mapping, Sequence -from dataclasses import asdict, dataclass, replace -from pathlib import Path -from typing import Any - -DEFAULT_OUTPUT_ROOT = Path(".scratch/async-scheduling-idle-analysis") -DEFAULT_ARTIFACT_DIR = DEFAULT_OUTPUT_ROOT / "artifacts" -DEFAULT_REPORT_PATH = DEFAULT_OUTPUT_ROOT / "async-scheduling-idle-analysis.html" -BENCHMARK_SCRIPT = Path("scripts/benchmarks/benchmark_async_scheduling.py") -IDLE_SUITE_ID = "async-scheduling-idle-regression" -IDLE_SUITE_VERSION = "1.1" -IDLE_SUMMARY_SCHEMA_VERSION = "async-scheduling-idle-summary-v1" - - -@dataclass(frozen=True) -class IdleBenchmarkCase: - name: str - sweep: str - record_count: int - buffer_size: int - row_group_concurrency: int - task_admission_capacity: int - fanout_width: int - upstream_latency_seconds: float - downstream_latency_seconds: float - scenario: str = "real-pipeline-overlap" - request_latency_seconds: float = 0.0 - model_stage_weight: int = 0 - adaptive_row_group_admission: bool = False - request_pressure_advisory: bool = False - iterations: int = 1 - warmups: int = 0 - - @property - def generation_count(self) -> int: - return self.record_count * self.fanout_width * 2 - - -@dataclass(frozen=True) -class IdleBenchmarkResult: - case: IdleBenchmarkCase - artifact_path: Path - mean_wall_time_seconds: float - p95_wall_time_seconds: float - llm_utilization_ratio: float - llm_idle_ratio: float - llm_starved_idle_ratio: float - llm_frontier_dependency_horizon_idle_ratio: float - llm_starved_idle_seconds: float - llm_frontier_dependency_horizon_idle_seconds: float - llm_scheduler_queue_age_p95_seconds: float - llm_scheduler_queue_age_max_seconds: float - llm_ready_gap_p95_seconds: float - llm_ready_gap_max_seconds: float - llm_burstiness_coefficient: float - submission_utilization_ratio: float - submission_starved_idle_ratio: float - submission_frontier_dependency_horizon_idle_ratio: float - pipeline_overlap_ratio: float - downstream_ready_gap_p95_seconds: float - downstream_ready_gap_max_seconds: float - throughput_generations_per_second: float - request_wait_seconds_while_task_leased_mean: float - request_wait_seconds_while_task_leased_max: float - request_utilization_ratio: float - request_idle_ratio: float - request_starved_idle_ratio: float - request_frontier_dependency_horizon_idle_ratio: float - request_burstiness_coefficient: float - request_pressure_advisory_skip_count: int - first_model_dispatch_column: str | None - request_pressure_advisory_enabled: bool - row_group_admission_mode: str - row_group_admission_target: int | None - row_group_admission_observed_max_target: int | None - row_group_admission_max_admitted_rows: int | None - validation_passed: bool - final_zero_task_leases: bool - final_zero_request_leases: bool - final_zero_request_waiters: bool - - -def main() -> None: - args = _parse_args() - artifact_dir = Path(args.artifact_dir) - report_path = Path(args.report_path) - artifact_dir.mkdir(parents=True, exist_ok=True) - report_path.parent.mkdir(parents=True, exist_ok=True) - - results = run_idle_benchmark_suite(artifact_dir, quick=args.quick, skip_run=args.skip_run) - render_idle_report(results, report_path, artifact_dir) - if args.summary_path: - write_idle_results_summary(Path(args.summary_path), results, quick=args.quick) - - print(f"Wrote {report_path}") - print(f"Wrote benchmark artifacts under {artifact_dir}") - if args.summary_path: - print(f"Wrote {args.summary_path}") - - -def _parse_args() -> argparse.Namespace: - parser = argparse.ArgumentParser(description=__doc__) - parser.add_argument("--artifact-dir", default=str(DEFAULT_ARTIFACT_DIR)) - parser.add_argument("--report-path", default=str(DEFAULT_REPORT_PATH)) - parser.add_argument("--summary-path") - parser.add_argument("--skip-run", action="store_true", help="Reuse existing benchmark JSON files.") - parser.add_argument( - "--quick", - action="store_true", - help="Run a shorter smoke suite while preserving every sweep dimension.", - ) - return parser.parse_args() - - -def build_idle_benchmark_cases(*, quick: bool) -> list[IdleBenchmarkCase]: - return _build_cases(quick) - - -def run_idle_benchmark_suite( - artifact_dir: Path, - *, - quick: bool, - skip_run: bool, -) -> list[IdleBenchmarkResult]: - cases = build_idle_benchmark_cases(quick=quick) - return [_run_or_load_case(case, artifact_dir, skip_run=skip_run) for case in cases] - - -def render_idle_report( - results: Sequence[IdleBenchmarkResult], - report_path: Path, - artifact_dir: Path, -) -> None: - report_path.parent.mkdir(parents=True, exist_ok=True) - report_path.write_text(_render_report(results, report_path, artifact_dir), encoding="utf-8") - - -def write_idle_results_summary( - summary_path: Path, - results: Sequence[IdleBenchmarkResult], - *, - quick: bool, -) -> None: - summary_path.parent.mkdir(parents=True, exist_ok=True) - summary = idle_results_summary(results, quick=quick) - summary_path.write_text(json.dumps(summary, indent=2, sort_keys=True) + "\n", encoding="utf-8") - - -def idle_results_summary(results: Sequence[IdleBenchmarkResult], *, quick: bool) -> dict[str, Any]: - cases = {_case_key(result): _result_summary(result) for result in results} - return { - "summary_schema_version": IDLE_SUMMARY_SCHEMA_VERSION, - "suite_id": IDLE_SUITE_ID, - "suite_version": IDLE_SUITE_VERSION, - "mode": "quick" if quick else "full", - "case_count": len(results), - "largest_generation_count": max((result.case.generation_count for result in results), default=0), - "cases": cases, - } - - -def _result_summary(result: IdleBenchmarkResult) -> dict[str, Any]: - return { - "case": asdict(result.case), - "artifact_path": str(result.artifact_path), - "generation_count": result.case.generation_count, - "mean_wall_time_seconds": result.mean_wall_time_seconds, - "p95_wall_time_seconds": result.p95_wall_time_seconds, - "llm_wait_utilization_ratio": result.llm_utilization_ratio, - "llm_wait_idle_ratio": result.llm_idle_ratio, - "llm_wait_starved_idle_ratio": result.llm_starved_idle_ratio, - "llm_wait_frontier_dependency_horizon_idle_ratio": result.llm_frontier_dependency_horizon_idle_ratio, - "llm_wait_dependency_horizon_idle_ratio": result.llm_frontier_dependency_horizon_idle_ratio, - "llm_wait_starved_idle_seconds": result.llm_starved_idle_seconds, - "llm_wait_frontier_dependency_horizon_idle_seconds": result.llm_frontier_dependency_horizon_idle_seconds, - "llm_wait_dependency_horizon_idle_seconds": result.llm_frontier_dependency_horizon_idle_seconds, - "llm_wait_scheduler_queue_age_p95_seconds": result.llm_scheduler_queue_age_p95_seconds, - "llm_wait_scheduler_queue_age_max_seconds": result.llm_scheduler_queue_age_max_seconds, - "llm_wait_ready_gap_p95_seconds": result.llm_ready_gap_p95_seconds, - "llm_wait_ready_gap_max_seconds": result.llm_ready_gap_max_seconds, - "llm_wait_burstiness_coefficient": result.llm_burstiness_coefficient, - "submission_utilization_ratio": result.submission_utilization_ratio, - "submission_starved_idle_ratio": result.submission_starved_idle_ratio, - "submission_frontier_dependency_horizon_idle_ratio": (result.submission_frontier_dependency_horizon_idle_ratio), - "pipeline_overlap_ratio": result.pipeline_overlap_ratio, - "downstream_ready_gap_p95_seconds": result.downstream_ready_gap_p95_seconds, - "downstream_ready_gap_max_seconds": result.downstream_ready_gap_max_seconds, - "throughput_generations_per_second": result.throughput_generations_per_second, - "request_wait_seconds_while_task_leased_mean": result.request_wait_seconds_while_task_leased_mean, - "request_wait_seconds_while_task_leased_max": result.request_wait_seconds_while_task_leased_max, - "request_utilization_ratio": result.request_utilization_ratio, - "request_idle_ratio": result.request_idle_ratio, - "request_starved_idle_ratio": result.request_starved_idle_ratio, - "request_frontier_dependency_horizon_idle_ratio": result.request_frontier_dependency_horizon_idle_ratio, - "request_burstiness_coefficient": result.request_burstiness_coefficient, - "request_pressure_advisory_skip_count": result.request_pressure_advisory_skip_count, - "first_model_dispatch_column": result.first_model_dispatch_column, - "request_pressure_advisory_enabled": result.request_pressure_advisory_enabled, - "row_group_admission_mode": result.row_group_admission_mode, - "row_group_admission_target": result.row_group_admission_target, - "row_group_admission_observed_max_target": result.row_group_admission_observed_max_target, - "row_group_admission_max_admitted_rows": result.row_group_admission_max_admitted_rows, - "validation_passed": result.validation_passed, - "final_zero_task_leases": result.final_zero_task_leases, - "final_zero_request_leases": result.final_zero_request_leases, - "final_zero_request_waiters": result.final_zero_request_waiters, - "dominant_idle_class": _dominant_idle_class(result), - "recommended_next_lever": _recommended_next_lever(result), - } - - -def _case_key(result: IdleBenchmarkResult) -> str: - return f"{result.case.sweep}/{result.case.name}" - - -def _build_cases(quick: bool) -> list[IdleBenchmarkCase]: - base = IdleBenchmarkCase( - name="baseline-frontier", - sweep="baseline", - record_count=512, - buffer_size=64, - row_group_concurrency=4, - task_admission_capacity=8, - fanout_width=4, - upstream_latency_seconds=0.003, - downstream_latency_seconds=0.0003, - ) - rows = [64, 128, 256] if quick else [64, 128, 256, 512, 1024] - row_group_concurrency = [1, 2, 4] if quick else [1, 2, 4, 8] - buffers = [1, 16, 64] if quick else [1, 4, 16, 64, 256] - capacities = [4, 8] if quick else [4, 8, 16] - adaptation_rows = 512 if quick else 1024 - combined_adaptation_rows = 128 if quick else 512 - - cases = [ - replace(base, name=f"rows-{record_count}", sweep="row-scale", record_count=record_count) - for record_count in rows - ] - cases.extend( - replace( - base, - name=f"row-groups-{concurrency}", - sweep="row-group-concurrency", - record_count=512, - buffer_size=1, - row_group_concurrency=concurrency, - fanout_width=1, - ) - for concurrency in row_group_concurrency - ) - cases.extend( - replace(base, name=f"buffer-{buffer_size}", sweep="buffer-size", record_count=512, buffer_size=buffer_size) - for buffer_size in buffers - ) - cases.extend( - replace( - base, - name=f"capacity-{capacity}", - sweep="llm-capacity", - record_count=512, - buffer_size=1, - task_admission_capacity=capacity, - row_group_concurrency=4, - fanout_width=1, - ) - for capacity in capacities - ) - cases.extend( - ( - replace( - base, - name="weight-custom-model-1", - sweep="custom-model-weight", - record_count=512, - model_stage_weight=1, - ), - replace( - base, - name="weight-model-capacity", - sweep="custom-model-weight", - record_count=512, - model_stage_weight=0, - ), - ) - ) - cases.extend( - ( - replace( - base, - name="narrow-frontier-high-cap", - sweep="stress-shape", - record_count=1024, - buffer_size=1, - row_group_concurrency=1, - task_admission_capacity=16, - fanout_width=1, - upstream_latency_seconds=0.006, - downstream_latency_seconds=0.0003, - iterations=3, - ), - replace( - base, - name="wide-frontier-high-cap", - sweep="stress-shape", - record_count=1024, - buffer_size=64, - row_group_concurrency=16, - task_admission_capacity=16, - fanout_width=4, - upstream_latency_seconds=0.006, - downstream_latency_seconds=0.0003, - iterations=3, - ), - ) - ) - cases.extend( - ( - replace( - base, - name="adaptive-row-groups-fixed-low", - sweep="adaptations", - record_count=adaptation_rows, - buffer_size=1, - row_group_concurrency=1, - task_admission_capacity=16, - fanout_width=1, - upstream_latency_seconds=0.006, - downstream_latency_seconds=0.0003, - ), - replace( - base, - name="adaptive-row-groups-adaptive", - sweep="adaptations", - record_count=adaptation_rows, - buffer_size=1, - row_group_concurrency=8, - task_admission_capacity=16, - fanout_width=1, - upstream_latency_seconds=0.006, - downstream_latency_seconds=0.0003, - adaptive_row_group_admission=True, - ), - replace( - base, - name="adaptive-row-groups-fixed-high", - sweep="adaptations", - record_count=adaptation_rows, - buffer_size=1, - row_group_concurrency=8, - task_admission_capacity=16, - fanout_width=1, - upstream_latency_seconds=0.006, - downstream_latency_seconds=0.0003, - ), - replace( - base, - name="request-pressure-control", - sweep="adaptations", - scenario="request-pressure-advisory", - record_count=32, - buffer_size=32, - row_group_concurrency=1, - task_admission_capacity=1, - fanout_width=1, - request_latency_seconds=0.05, - upstream_latency_seconds=0.0, - downstream_latency_seconds=0.001, - ), - replace( - base, - name="request-pressure-advisory", - sweep="adaptations", - scenario="request-pressure-advisory", - record_count=32, - buffer_size=32, - row_group_concurrency=1, - task_admission_capacity=1, - fanout_width=1, - request_latency_seconds=0.05, - upstream_latency_seconds=0.0, - downstream_latency_seconds=0.001, - request_pressure_advisory=True, - ), - replace( - base, - name="adaptive-request-pressure-control", - sweep="adaptations", - scenario="adaptive-request-pressure", - record_count=combined_adaptation_rows, - buffer_size=1, - row_group_concurrency=8, - task_admission_capacity=4, - fanout_width=1, - request_latency_seconds=0.05, - upstream_latency_seconds=0.0, - downstream_latency_seconds=0.001, - adaptive_row_group_admission=True, - iterations=3, - ), - replace( - base, - name="adaptive-request-pressure-combined", - sweep="adaptations", - scenario="adaptive-request-pressure", - record_count=combined_adaptation_rows, - buffer_size=1, - row_group_concurrency=8, - task_admission_capacity=4, - fanout_width=1, - request_latency_seconds=0.05, - upstream_latency_seconds=0.0, - downstream_latency_seconds=0.001, - adaptive_row_group_admission=True, - request_pressure_advisory=True, - iterations=3, - ), - ) - ) - return cases - - -def _run_or_load_case(case: IdleBenchmarkCase, artifact_dir: Path, *, skip_run: bool) -> IdleBenchmarkResult: - output_dir = artifact_dir / case.sweep / case.name - json_path = output_dir / "async_scheduling_benchmark.json" - if skip_run and not json_path.exists(): - raise FileNotFoundError( - f"Cannot reuse benchmark artifact for {case.sweep}/{case.name}: {json_path} does not exist." - ) - if not skip_run: - output_dir.mkdir(parents=True, exist_ok=True) - command = [ - sys.executable, - str(BENCHMARK_SCRIPT), - "--scenario", - case.scenario, - "--record-count", - str(case.record_count), - "--buffer-size", - str(case.buffer_size), - "--row-group-concurrency", - str(case.row_group_concurrency), - "--task-admission-capacity", - str(case.task_admission_capacity), - "--fanout-width", - str(case.fanout_width), - "--upstream-latency-seconds", - _format_float(case.upstream_latency_seconds), - "--downstream-latency-seconds", - _format_float(case.downstream_latency_seconds), - "--request-latency-seconds", - _format_float(case.request_latency_seconds), - "--model-stage-weight", - str(case.model_stage_weight), - "--warmups", - str(case.warmups), - "--iterations", - str(case.iterations), - "--output-dir", - str(output_dir), - ] - if case.adaptive_row_group_admission: - command.append("--adaptive-row-group-admission") - if case.request_pressure_advisory: - command.append("--request-pressure-advisory") - subprocess.run(command, check=True) - artifact = json.loads(json_path.read_text(encoding="utf-8")) - return _extract_result(case, json_path, artifact) - - -def _extract_result(case: IdleBenchmarkCase, artifact_path: Path, artifact: Mapping[str, Any]) -> IdleBenchmarkResult: - metrics = artifact["derived_metrics"] - scheduler_resources = metrics.get("scheduler_resource_utilization", {}) - request_resources = metrics.get("request_resource_utilization", {}) - llm = scheduler_resources.get("llm_wait", {}) - submission = scheduler_resources.get("submission", {}) - mean_wall = _float(metrics, "mean_wall_time_seconds") - row_group_admission = _row_group_admission_snapshot(artifact) - return IdleBenchmarkResult( - case=case, - artifact_path=artifact_path, - mean_wall_time_seconds=mean_wall, - p95_wall_time_seconds=_float(metrics, "p95_wall_time_seconds"), - llm_utilization_ratio=_float(llm, "mean_utilization_ratio"), - llm_idle_ratio=_safe_ratio( - _float(llm, "mean_idle_capacity_seconds"), - _mean_capacity_seconds(artifact, "llm_wait"), - ), - llm_starved_idle_ratio=_safe_ratio( - _float(llm, "mean_starved_idle_seconds"), - _mean_capacity_seconds(artifact, "llm_wait"), - ), - llm_frontier_dependency_horizon_idle_ratio=_idle_ratio( - llm, - artifact, - "llm_wait", - "mean_frontier_dependency_horizon_idle_ratio", - ), - llm_starved_idle_seconds=_float(llm, "mean_starved_idle_seconds"), - llm_frontier_dependency_horizon_idle_seconds=_float( - llm, - "mean_frontier_dependency_horizon_idle_seconds", - fallback_key="mean_dependency_horizon_idle_seconds", - ), - llm_scheduler_queue_age_p95_seconds=max( - _max_iteration_metric( - artifact, - "llm_wait", - "scheduler_queue_age_p95_seconds", - ), - _max_iteration_metric( - artifact, - "llm_wait", - "ready_to_dispatch_gap_p95_seconds", - ), - ), - llm_scheduler_queue_age_max_seconds=_float( - llm, - "max_scheduler_queue_age_seconds", - fallback_key="max_ready_to_dispatch_gap_seconds", - ), - llm_ready_gap_p95_seconds=_max_iteration_metric( - artifact, - "llm_wait", - "ready_to_dispatch_gap_p95_seconds", - ), - llm_ready_gap_max_seconds=_float(llm, "max_ready_to_dispatch_gap_seconds"), - llm_burstiness_coefficient=_float(llm, "max_burstiness_coefficient"), - submission_utilization_ratio=_float(submission, "mean_utilization_ratio"), - submission_starved_idle_ratio=_safe_ratio( - _float(submission, "mean_starved_idle_seconds"), - _mean_capacity_seconds(artifact, "submission"), - ), - submission_frontier_dependency_horizon_idle_ratio=_idle_ratio( - submission, - artifact, - "submission", - "mean_frontier_dependency_horizon_idle_ratio", - ), - pipeline_overlap_ratio=_float(metrics, "pipeline_mean_overlap_ratio"), - downstream_ready_gap_p95_seconds=_float(metrics, "pipeline_p95_downstream_ready_gap_seconds"), - downstream_ready_gap_max_seconds=_float(metrics, "pipeline_max_downstream_ready_gap_seconds"), - throughput_generations_per_second=_safe_ratio(case.generation_count, mean_wall), - request_wait_seconds_while_task_leased_mean=_float(metrics, "request_wait_seconds_while_task_leased_mean"), - request_wait_seconds_while_task_leased_max=_float(metrics, "request_wait_seconds_while_task_leased_max"), - request_utilization_ratio=_mean_resource_metric(request_resources, "mean_utilization_ratio"), - request_idle_ratio=_safe_ratio( - _sum_resource_metric(request_resources, "mean_idle_capacity_seconds"), - _sum_request_capacity_seconds(artifact), - ), - request_starved_idle_ratio=_safe_ratio( - _sum_resource_metric(request_resources, "mean_starved_idle_seconds"), - _sum_request_capacity_seconds(artifact), - ), - request_frontier_dependency_horizon_idle_ratio=_safe_ratio( - _sum_resource_metric( - request_resources, - "mean_frontier_dependency_horizon_idle_seconds", - fallback_key="mean_dependency_horizon_idle_seconds", - ), - _sum_request_capacity_seconds(artifact), - ), - request_burstiness_coefficient=_max_resource_metric(request_resources, "max_burstiness_coefficient"), - request_pressure_advisory_skip_count=int(metrics.get("request_pressure_advisory_skip_count", 0) or 0), - first_model_dispatch_column=_optional_str(metrics.get("first_model_dispatch_column")), - request_pressure_advisory_enabled=bool(metrics.get("request_pressure_advisory_enabled", False)), - row_group_admission_mode=str(row_group_admission.get("mode", "fixed")), - row_group_admission_target=_optional_int(row_group_admission.get("target_in_flight")), - row_group_admission_observed_max_target=_optional_int(row_group_admission.get("observed_max_target")), - row_group_admission_max_admitted_rows=_optional_int(row_group_admission.get("max_admitted_rows")), - validation_passed=bool(metrics.get("pipeline_validation_passed", True)), - final_zero_task_leases=bool(metrics.get("final_zero_task_leases", False)), - final_zero_request_leases=bool(metrics.get("final_zero_request_leases", False)), - final_zero_request_waiters=bool(metrics.get("final_zero_request_waiters", False)), - ) - - -def _render_report( - results: Sequence[IdleBenchmarkResult], - report_path: Path, - artifact_dir: Path, -) -> str: - by_sweep = _group_results(results) - all_valid = all( - result.validation_passed - and result.final_zero_task_leases - and result.final_zero_request_leases - and result.final_zero_request_waiters - for result in results - ) - max_generations = max((result.case.generation_count for result in results), default=0) - worst_idle = max(results, key=lambda result: result.llm_starved_idle_ratio) - worst_total_idle = max(results, key=lambda result: result.llm_idle_ratio) - best_util = max(results, key=lambda result: result.llm_utilization_ratio) - median_util = _median(result.llm_utilization_ratio for result in results) - artifact_link = _relative_href(report_path, artifact_dir) - - return "\n".join( - [ - "", - '', - "", - '', - '', - "Async Scheduling Idle-Time Analysis", - _style_block(), - "", - "", - "
    ", - '
    ', - '

    DataDesigner async scheduler

    ', - "

    Idle-Time Analysis

    ", - '

    This report measures where model-capacity idle time appears, ' - "which knobs change it, and which remaining idle looks avoidable by scheduler or " - "admission-control changes.

    ", - _summary_grid( - ( - ("Benchmark cases", f"{len(results)}"), - ("Largest synthetic generation count", f"{max_generations:,}"), - ("Median llm_wait utilization", _format_percent(median_util)), - ("Worst total llm_wait idle", _format_percent(worst_total_idle.llm_idle_ratio)), - ("Worst starved llm_wait idle", _format_percent(worst_idle.llm_starved_idle_ratio)), - ("Best llm_wait utilization", _format_percent(best_util.llm_utilization_ratio)), - ("Validation", "pass" if all_valid else "check failures"), - ) - ), - "
    ", - "
    ", - "

    What Counts As Idle

    ", - "

    General idle is unused configured capacity. It includes expected idle when " - "dependencies are not ready. Starved idle is the actionable subset: a resource " - "has idle slots while the scheduler already has queued work that requests that resource. " - "Frontier/dependency-horizon idle is total idle minus starved idle: capacity " - "is unused because dependency work has not yet exposed a ready scheduler task. " - "Scheduler queue age measures ready-enqueued to lease-acquired time; " - "downstream ready gap measures dependency-complete to downstream-dispatch time. " - "For this refactor, the most important resource is llm_wait, because it maps to " - "model-serving capacity that should stay busy when runnable model work exists.

    ", - "
    ", - "
    ", - "

    Implementation Improvements

    ", - _implementation_improvements_html(results), - "
    ", - "
    ", - "

    Findings

    ", - _findings_html(results, by_sweep), - "
    ", - "
    ", - "

    Idle Classification Board

    ", - _idle_classification_table(results), - "
    ", - "
    ", - "

    Adaptation Benchmarks

    ", - _adaptation_benchmarks_html(results), - "
    ", - "
    ", - "

    Figures

    ", - _line_chart( - "Scale: more rows smooth the model-resource flow", - _sort(by_sweep["row-scale"], "generation_count"), - x_getter=lambda result: result.case.generation_count, - y_series=( - ("llm_wait utilization", lambda result: result.llm_utilization_ratio, "#1f7a8c"), - ("starved llm_wait idle", lambda result: result.llm_starved_idle_ratio, "#b23a48"), - ), - y_max=1.0, - x_label="synthetic model generations", - y_label="ratio", - ), - _line_chart( - "Frontier width: row-group concurrency changes starvation", - _sort(by_sweep["row-group-concurrency"], "row_group_concurrency"), - x_getter=lambda result: result.case.row_group_concurrency, - y_series=( - ("llm_wait utilization", lambda result: result.llm_utilization_ratio, "#1f7a8c"), - ("starved llm_wait idle", lambda result: result.llm_starved_idle_ratio, "#b23a48"), - ("downstream ready p95", lambda result: result.downstream_ready_gap_p95_seconds, "#6c5ce7"), - ), - x_label="row-group concurrency", - y_label="ratio / seconds", - ), - _line_chart( - "Buffer size: row-group shape affects traffic waves", - _sort(by_sweep["buffer-size"], "buffer_size"), - x_getter=lambda result: result.case.buffer_size, - y_series=( - ("llm_wait utilization", lambda result: result.llm_utilization_ratio, "#1f7a8c"), - ("starved llm_wait idle", lambda result: result.llm_starved_idle_ratio, "#b23a48"), - ("scheduler queue age p95", lambda result: result.llm_scheduler_queue_age_p95_seconds, "#6c5ce7"), - ), - x_label="buffer size", - y_label="ratio / seconds", - ), - _line_chart( - "Capacity scaling: underfeeding becomes visible as cap rises", - _sort(by_sweep["llm-capacity"], "task_admission_capacity"), - x_getter=lambda result: result.case.task_admission_capacity // 2, - y_series=( - ("llm_wait utilization", lambda result: result.llm_utilization_ratio, "#1f7a8c"), - ("starved llm_wait idle", lambda result: result.llm_starved_idle_ratio, "#b23a48"), - ("throughput / 1000", lambda result: result.throughput_generations_per_second / 1000.0, "#326273"), - ), - x_label="modeled llm_wait capacity", - y_label="ratio / kgen/s", - ), - _bar_chart( - "Custom-model metadata changes per-stage fairness", - _sort(by_sweep["custom-model-weight"], "model_stage_weight"), - label_getter=_weight_label, - bars=( - ("llm_wait utilization", lambda result: result.llm_utilization_ratio, "#1f7a8c"), - ("starved llm_wait idle", lambda result: result.llm_starved_idle_ratio, "#b23a48"), - ), - y_max=1.0, - ), - _bar_chart( - "Stress shapes: narrow vs wide runnable horizon", - _sort(by_sweep["stress-shape"], "name"), - label_getter=lambda result: result.case.name.replace("-", " "), - bars=( - ("llm_wait utilization", lambda result: result.llm_utilization_ratio, "#1f7a8c"), - ("total llm_wait idle", lambda result: result.llm_idle_ratio, "#8a6f3d"), - ("starved llm_wait idle", lambda result: result.llm_starved_idle_ratio, "#b23a48"), - ( - "frontier/dependency idle", - lambda result: result.llm_frontier_dependency_horizon_idle_ratio, - "#6c5ce7", - ), - ("burstiness / 2", lambda result: result.llm_burstiness_coefficient / 2.0, "#326273"), - ), - y_max=1.0, - ), - _bar_chart( - "Adaptation: adaptive row groups target frontier idle", - [ - result - for result in _sort(by_sweep.get("adaptations", []), "name") - if result.case.name.startswith("adaptive-row-groups") - ], - label_getter=lambda result: result.case.name.replace("adaptive-row-groups-", ""), - bars=( - ("llm_wait utilization", lambda result: result.llm_utilization_ratio, "#1f7a8c"), - ( - "frontier/dependency idle", - lambda result: result.llm_frontier_dependency_horizon_idle_ratio, - "#6c5ce7", - ), - ("starved llm_wait idle", lambda result: result.llm_starved_idle_ratio, "#b23a48"), - ), - y_max=1.0, - ), - _bar_chart( - "Adaptation: request-pressure advisory avoids leased request wait", - [ - result - for result in _sort(by_sweep.get("adaptations", []), "name") - if result.case.name.startswith("request-pressure") - ], - label_getter=lambda result: result.case.name.replace("request-pressure-", ""), - bars=( - ( - "request wait while leased", - lambda result: result.request_wait_seconds_while_task_leased_mean, - "#b23a48", - ), - ("scheduler queue age p95", lambda result: result.llm_scheduler_queue_age_p95_seconds, "#6c5ce7"), - ("wall seconds / 10", lambda result: result.mean_wall_time_seconds / 10.0, "#1f7a8c"), - ), - ), - _bar_chart( - "Adaptation: combined adaptive frontier and request pressure", - [ - result - for result in _sort(by_sweep.get("adaptations", []), "name") - if result.case.name.startswith("adaptive-request-pressure") - ], - label_getter=lambda result: result.case.name.replace("adaptive-request-pressure-", ""), - bars=( - ("llm_wait utilization", lambda result: result.llm_utilization_ratio, "#1f7a8c"), - ("request utilization", lambda result: result.request_utilization_ratio, "#326273"), - ("request starved idle", lambda result: result.request_starved_idle_ratio, "#b23a48"), - ( - "frontier/dependency idle", - lambda result: result.llm_frontier_dependency_horizon_idle_ratio, - "#6c5ce7", - ), - ), - y_max=1.0, - ), - "
    ", - "
    ", - "

    Benchmark Matrix

    ", - _results_table(results, report_path), - f'

    Raw artifacts are under ' - f"{html.escape(str(artifact_dir))}.

    ", - "
    ", - "
    ", - "

    Potential Changes

    ", - _recommendations_html(results), - "
    ", - "
    ", - "", - "", - "", - ] - ) - - -def _findings_html( - results: Sequence[IdleBenchmarkResult], - by_sweep: Mapping[str, list[IdleBenchmarkResult]], -) -> str: - row_scale = _sort(by_sweep["row-scale"], "generation_count") - row_gain = row_scale[-1].llm_utilization_ratio - row_scale[0].llm_utilization_ratio - rg_results = _sort(by_sweep["row-group-concurrency"], "row_group_concurrency") - rg_util_gain = rg_results[-1].llm_utilization_ratio - rg_results[0].llm_utilization_ratio - rg_idle_delta = rg_results[0].llm_starved_idle_ratio - min(result.llm_starved_idle_ratio for result in rg_results) - capacity_results = _sort(by_sweep["llm-capacity"], "task_admission_capacity") - weight_results = by_sweep["custom-model-weight"] - weight_one = next(result for result in weight_results if result.case.model_stage_weight == 1) - weight_auto = next(result for result in weight_results if result.case.model_stage_weight == 0) - stress = {result.case.name: result for result in by_sweep["stress-shape"]} - narrow = stress["narrow-frontier-high-cap"] - wide = stress["wide-frontier-high-cap"] - worst = max(results, key=lambda result: result.llm_starved_idle_ratio) - - return ( - '
      ' - f"
    • Scale helps once enough runnable work exists. The row-scale sweep moved " - f"from {_format_percent(row_scale[0].llm_utilization_ratio)} to " - f"{_format_percent(row_scale[-1].llm_utilization_ratio)} llm_wait utilization " - f"({_format_signed_percent(row_gain)}). Larger runs amortize startup and drain phases.
    • " - f"
    • Runnable frontier width is the main controllable idle source. In the " - f"row-group sweep, utilization moved from {_format_percent(rg_results[0].llm_utilization_ratio)} " - f"to {_format_percent(rg_results[-1].llm_utilization_ratio)} " - f"({_format_signed_percent(rg_util_gain)}), while starved llm_wait idle improved by " - f"{_format_percent(max(0.0, rg_idle_delta))} between the narrowest case and the best observed case.
    • " - f"
    • Total idle and starved idle diagnose different causes. " - f"{html.escape(narrow.case.name)} had {_format_percent(narrow.llm_idle_ratio)} total " - f"llm_wait idle but only {_format_percent(narrow.llm_starved_idle_ratio)} starved idle. The remaining " - f"{_format_percent(narrow.llm_frontier_dependency_horizon_idle_ratio)} was frontier/dependency-horizon " - "idle: the scheduler often had no ready model work because the admitted frontier was too small.
    • " - f"
    • Capacity increases expose underfeeding. In the capacity sweep, modeled " - f"llm_wait cap {max(1, capacity_results[0].case.task_admission_capacity // 2)} reached " - f"{_format_percent(capacity_results[0].llm_utilization_ratio)} utilization, while cap " - f"{max(1, capacity_results[-1].case.task_admission_capacity // 2)} reached " - f"{_format_percent(capacity_results[-1].llm_utilization_ratio)} with the same small row frontier.
    • " - f"
    • Custom model scheduling metadata changes traffic shape. With synthetic " - f"custom_model weight forced to 1, llm_wait utilization was " - f"{_format_percent(weight_one.llm_utilization_ratio)}; with the harness defaulting the weight " - f"to modeled model capacity it was {_format_percent(weight_auto.llm_utilization_ratio)}. " - "This run did not show weight=1 underfeeding because each synthetic column is its own group, " - "but it does show that group identity and weight are first-order benchmark inputs.
    • " - f"
    • High capacity magnifies traffic-shape effects. The stress case with one " - f"large row group and high cap reached {_format_percent(narrow.llm_utilization_ratio)} utilization; " - f"the wide-frontier shape reached {_format_percent(wide.llm_utilization_ratio)}. " - "This is the vLLM-server-idle failure mode the scheduler needs to expose and track over time.
    • " - f"
    • Worst observed actionable idle: {html.escape(worst.case.name)} had " - f"{_format_percent(worst.llm_starved_idle_ratio)} starved llm_wait idle and " - f"{_format_seconds(worst.llm_scheduler_queue_age_max_seconds)} max scheduler queue age.
    • " - "
    " - ) - - -def _find_result( - results: Sequence[IdleBenchmarkResult], - sweep: str, - name: str, -) -> IdleBenchmarkResult | None: - return next((result for result in results if result.case.sweep == sweep and result.case.name == name), None) - - -def _adaptive_row_group_card_evidence( - control: IdleBenchmarkResult | None, - adaptive: IdleBenchmarkResult | None, - row_groups_one: IdleBenchmarkResult, - narrow: IdleBenchmarkResult, -) -> str: - if control is None or adaptive is None: - return ( - f"{html.escape(row_groups_one.case.name)} and " - f"{html.escape(narrow.case.name)} remain the target proof cases; adaptation " - "benchmark artifacts were not available in this run." - ) - return ( - f"{html.escape(control.case.name)} to {html.escape(adaptive.case.name)}: " - f"utilization {_format_signed_percent(adaptive.llm_utilization_ratio - control.llm_utilization_ratio)}, " - f"frontier idle reduction " - f"{_format_percent(max(0.0, control.llm_frontier_dependency_horizon_idle_ratio - adaptive.llm_frontier_dependency_horizon_idle_ratio))}, " - f"observed target {_format_optional_int(adaptive.row_group_admission_observed_max_target)}." - ) - - -def _request_pressure_card_evidence( - control: IdleBenchmarkResult | None, - advisory: IdleBenchmarkResult | None, -) -> str: - if control is None or advisory is None: - return "Needs adaptation benchmark artifacts from a non-skip idle-regression run." - return ( - f"Leased request wait moved from {_format_seconds(control.request_wait_seconds_while_task_leased_mean)} " - f"to {_format_seconds(advisory.request_wait_seconds_while_task_leased_mean)}; first dispatch moved " - f"from {html.escape(control.first_model_dispatch_column or 'unknown')} to " - f"{html.escape(advisory.first_model_dispatch_column or 'unknown')}." - ) - - -def _implementation_improvements_html(results: Sequence[IdleBenchmarkResult]) -> str: - narrow = next(result for result in results if result.case.name == "narrow-frontier-high-cap") - row_groups_one = next(result for result in results if result.case.name == "row-groups-1") - rows_256 = next(result for result in results if result.case.name == "rows-256") - wide = next(result for result in results if result.case.name == "wide-frontier-high-cap") - adaptive_control = _find_result(results, "adaptations", "adaptive-row-groups-fixed-low") - adaptive = _find_result(results, "adaptations", "adaptive-row-groups-adaptive") - pressure_control = _find_result(results, "adaptations", "request-pressure-control") - pressure_advisory = _find_result(results, "adaptations", "request-pressure-advisory") - classified = _class_counts(results) - return ( - _summary_grid( - ( - ( - "Classification now explicit", - f"{classified.get('frontier/dependency-horizon', 0)} frontier, " - f"{classified.get('queued-work starvation', 0)} queued", - ), - ("Quick-suite proof gates", f"{len(results)} cases, zero validation failures"), - ("Largest refreshed case", f"{max(result.case.generation_count for result in results):,} generations"), - ("Narrow frontier idle identified", _format_percent(narrow.llm_frontier_dependency_horizon_idle_ratio)), - ( - "Row-groups=1 frontier idle", - _format_percent(row_groups_one.llm_frontier_dependency_horizon_idle_ratio), - ), - ("Wide queued starvation age", _format_seconds(wide.llm_scheduler_queue_age_p95_seconds)), - ) - ) - + '
    ' - + _improvement_card( - "Idle partition metrics", - "Implemented", - "The report now splits total idle into queued-work starvation and frontier/dependency-horizon idle. " - "This prevents the narrow high-capacity case from being mistaken for a request-admission problem.", - ( - f"{html.escape(narrow.case.name)}: " - f"{_format_percent(narrow.llm_frontier_dependency_horizon_idle_ratio)} frontier idle, " - f"{_format_percent(narrow.llm_starved_idle_ratio)} starved idle." - ), - "../scripts/benchmarks/benchmark_async_scheduling.py", - ) - + _improvement_card( - "Queue age vs downstream delay", - "Implemented", - "Ready-to-lease queue age is now shown separately from dependency-complete-to-dispatch delay. " - "This distinguishes scheduler backlog from slow dependency propagation.", - ( - f"{html.escape(rows_256.case.name)}: " - f"{_format_seconds(rows_256.llm_scheduler_queue_age_p95_seconds)} scheduler queue p95, " - f"{_format_seconds(rows_256.downstream_ready_gap_p95_seconds)} downstream p95." - ), - "../scripts/benchmarks/generate_async_scheduling_idle_report.py", - ) - + _improvement_card( - "Batched frontier enqueue", - "Implemented", - "A frontier delta with many ready tasks now enters the fair queue in one enqueue operation, while " - "pre-batch parking, dropped rows, and per-task observability are preserved.", - "Focused scheduler tests prove one queue operation for a 5-task frontier and one operation for a " - "pre-batch flush after a dropped row.", - "../packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py", - ) - + _improvement_card( - "Resource-overlap peer pressure", - "Implemented", - "Task admission now applies group-cap peer pressure only for queued peers that can use the same " - "typed resource and are hard-resource eligible. Local/submission-only peers no longer create " - "false pressure on idle model capacity.", - "Unit tests cover non-overlapping peers, overlapping llm_wait peers, and peers blocked " - "by another hard resource.", - "../packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/task_policies.py", - ) - + _improvement_card( - "Adaptive row-group admission", - "Implemented + benchmarked", - "The scheduler can now start with one admitted row group, raise the row-group target when " - "model capacity is idle and queued model demand is low, and remain bounded by the configured " - "hard cap.", - _adaptive_row_group_card_evidence(adaptive_control, adaptive, row_groups_one, narrow), - "../packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py", - ) - + _improvement_card( - "Request-pressure advisory", - "Implemented + benchmarked", - "Task selection can now use request pressure snapshots to prefer an open same-frontier peer before " - "spawning work that would immediately wait on request capacity. It does not yield and reacquire " - "leases inside running generators.", - _request_pressure_card_evidence(pressure_control, pressure_advisory), - "../packages/data-designer-engine/src/data_designer/engine/models/request_admission", - ) - + "
    " - ) - - -def _improvement_card( - title: str, - status: str, - body: str, - evidence: str, - href: str, -) -> str: - return ( - '
    ' - f'

    {html.escape(title)}

    {html.escape(status)}
    ' - f"

    {body}

    " - f'

    Evidence: {evidence}

    ' - f'source' - "
    " - ) - - -def _idle_classification_table(results: Sequence[IdleBenchmarkResult]) -> str: - headers = [ - "case", - "dominant idle class", - "util", - "starved idle", - "frontier idle", - "queue age p95", - "downstream p95", - "next lever", - ] - rows = [] - for result in sorted( - results, - key=lambda item: ( - _idle_class_priority(_dominant_idle_class(item)), - -(item.llm_starved_idle_ratio + item.llm_frontier_dependency_horizon_idle_ratio), - item.case.sweep, - item.case.name, - ), - ): - idle_class = _dominant_idle_class(result) - rows.append( - [ - html.escape(f"{result.case.sweep}/{result.case.name}"), - f'{html.escape(idle_class)}', - _format_percent(result.llm_utilization_ratio), - _format_percent(result.llm_starved_idle_ratio), - _format_percent(result.llm_frontier_dependency_horizon_idle_ratio), - _format_seconds(result.llm_scheduler_queue_age_p95_seconds), - _format_seconds(result.downstream_ready_gap_p95_seconds), - html.escape(_recommended_next_lever(result)), - ] - ) - return ( - "

    This board is the main analysis surface for optimization work. Frontier/dependency-horizon cases " - "need row-group or scheduling-shard changes; queued-work starvation cases need queue/admission/resource " - "selection changes; request-pressure cases need request-backed evidence before scheduler policy changes.

    " - + _html_table(headers, rows) - ) - - -def _adaptation_benchmarks_html(results: Sequence[IdleBenchmarkResult]) -> str: - adaptive_control = _find_result(results, "adaptations", "adaptive-row-groups-fixed-low") - adaptive = _find_result(results, "adaptations", "adaptive-row-groups-adaptive") - adaptive_high = _find_result(results, "adaptations", "adaptive-row-groups-fixed-high") - pressure_control = _find_result(results, "adaptations", "request-pressure-control") - pressure_advisory = _find_result(results, "adaptations", "request-pressure-advisory") - combined_control = _find_result(results, "adaptations", "adaptive-request-pressure-control") - combined = _find_result(results, "adaptations", "adaptive-request-pressure-combined") - if adaptive_control is None or adaptive is None or pressure_control is None or pressure_advisory is None: - return ( - "

    The adaptation benchmark cases are not present in this artifact set. Re-run the idle " - "regression suite without --skip-run to collect them.

    " - ) - - adaptive_util_delta = adaptive.llm_utilization_ratio - adaptive_control.llm_utilization_ratio - adaptive_frontier_delta = ( - adaptive_control.llm_frontier_dependency_horizon_idle_ratio - - adaptive.llm_frontier_dependency_horizon_idle_ratio - ) - adaptive_high_delta = adaptive.llm_utilization_ratio - adaptive_high.llm_utilization_ratio if adaptive_high else 0.0 - request_wait_delta = ( - pressure_control.request_wait_seconds_while_task_leased_mean - - pressure_advisory.request_wait_seconds_while_task_leased_mean - ) - queue_age_delta = ( - pressure_control.llm_scheduler_queue_age_p95_seconds - pressure_advisory.llm_scheduler_queue_age_p95_seconds - ) - combined_request_wait_delta = 0.0 - combined_request_idle_delta = 0.0 - if combined_control is not None and combined is not None: - combined_request_wait_delta = ( - combined_control.request_wait_seconds_while_task_leased_mean - - combined.request_wait_seconds_while_task_leased_mean - ) - combined_request_idle_delta = combined_control.request_idle_ratio - combined.request_idle_ratio - high_context = "" - if adaptive_high is not None: - high_context = ( - f" The fixed-high ceiling reached {_format_percent(adaptive_high.llm_utilization_ratio)} utilization " - f"with {_format_percent(adaptive_high.llm_frontier_dependency_horizon_idle_ratio)} frontier idle." - ) - - summary = _summary_grid( - ( - ("Adaptive utilization delta", _format_signed_percent(adaptive_util_delta)), - ("Adaptive frontier-idle reduction", _format_percent(max(0.0, adaptive_frontier_delta))), - ("Adaptive vs fixed-high", _format_signed_percent(adaptive_high_delta)), - ( - "Adaptive observed target", - _format_optional_int(adaptive.row_group_admission_observed_max_target), - ), - ("Request leased-wait reduction", _format_seconds(max(0.0, request_wait_delta))), - ( - "Advisory first dispatch", - pressure_advisory.first_model_dispatch_column or "unknown", - ), - ("Request queue-age p95 reduction", _format_seconds(max(0.0, queue_age_delta))), - ("Combined leased-wait delta", _format_signed_seconds(combined_request_wait_delta)), - ("Combined request-idle delta", _format_signed_percent(combined_request_idle_delta)), - ) - ) - rows = [ - [ - "adaptive fixed-low control", - html.escape(adaptive_control.case.name), - _format_percent(adaptive_control.llm_utilization_ratio), - _format_percent(adaptive_control.llm_frontier_dependency_horizon_idle_ratio), - _format_optional_int(adaptive_control.row_group_admission_observed_max_target), - "-", - "-", - ], - [ - "adaptive enabled", - html.escape(adaptive.case.name), - _format_percent(adaptive.llm_utilization_ratio), - _format_percent(adaptive.llm_frontier_dependency_horizon_idle_ratio), - _format_optional_int(adaptive.row_group_admission_observed_max_target), - "-", - "-", - ], - [ - "request control", - html.escape(pressure_control.case.name), - _format_percent(pressure_control.llm_utilization_ratio), - _format_percent(pressure_control.llm_frontier_dependency_horizon_idle_ratio), - "-", - _format_seconds(pressure_control.request_wait_seconds_while_task_leased_mean), - html.escape(pressure_control.first_model_dispatch_column or "unknown"), - ], - [ - "request advisory", - html.escape(pressure_advisory.case.name), - _format_percent(pressure_advisory.llm_utilization_ratio), - _format_percent(pressure_advisory.llm_frontier_dependency_horizon_idle_ratio), - "-", - _format_seconds(pressure_advisory.request_wait_seconds_while_task_leased_mean), - html.escape(pressure_advisory.first_model_dispatch_column or "unknown"), - ], - ] - if combined_control is not None: - rows.append( - [ - "combined control", - html.escape(combined_control.case.name), - _format_percent(combined_control.llm_utilization_ratio), - _format_percent(combined_control.llm_frontier_dependency_horizon_idle_ratio), - _format_optional_int(combined_control.row_group_admission_observed_max_target), - _format_seconds(combined_control.request_wait_seconds_while_task_leased_mean), - html.escape(combined_control.first_model_dispatch_column or "unknown"), - ] - ) - if combined is not None: - rows.append( - [ - "combined enabled", - html.escape(combined.case.name), - _format_percent(combined.llm_utilization_ratio), - _format_percent(combined.llm_frontier_dependency_horizon_idle_ratio), - _format_optional_int(combined.row_group_admission_observed_max_target), - _format_seconds(combined.request_wait_seconds_while_task_leased_mean), - html.escape(combined.first_model_dispatch_column or "unknown"), - ] - ) - if adaptive_high is not None: - rows.insert( - 2, - [ - "adaptive fixed-high control", - html.escape(adaptive_high.case.name), - _format_percent(adaptive_high.llm_utilization_ratio), - _format_percent(adaptive_high.llm_frontier_dependency_horizon_idle_ratio), - _format_optional_int(adaptive_high.row_group_admission_observed_max_target), - "-", - "-", - ], - ) - return ( - summary + "

    The row-group adaptation is judged against a fixed-low frontier because that is the failure " - "shape where capacity is idle before enough dependency work exists. It should reduce frontier idle " - "or raise utilization while staying below the hard row-group cap. The fixed-high control isolates " - "how close the adaptive policy gets to simply admitting the full hard-cap frontier up front." - f"{high_context}

    " - "

    The request-pressure adaptation is judged by whether it avoids dispatching the pressured model " - "first and reduces request-wait time while a scheduler task lease is already held. The combined " - "case keeps adaptive row-group admission enabled while request pressure is present, so it measures " - "whether the scheduler can widen the frontier and still avoid sending the first available leases " - "into a saturated model.

    " - + _html_table( - [ - "adaptation", - "case", - "util", - "frontier idle", - "observed target", - "leased request wait", - "first model dispatch", - ], - rows, - ) - ) - - -def _recommendations_html(results: Sequence[IdleBenchmarkResult]) -> str: - worst = max(results, key=lambda result: result.llm_starved_idle_ratio) - return ( - '
      ' - "
    1. Add an adaptive row-group admission controller. A subclass or policy layer " - "can watch bottleneck-resource starved idle and admit another row group when model capacity is " - "idle while queued or pending model work remains, bounded by buffer and memory limits. When total " - "idle is high but starved idle is low, the controller should treat that as a frontier problem and " - "prefetch more row groups rather than tuning request AIMD.
    2. " - "
    3. Keep resource-aware idle in the standard benchmark output. The new " - "llm_wait utilization, starved idle, frontier/dependency-horizon idle, " - "scheduler queue-age, downstream ready-gap, and burstiness metrics identify " - "whether a vLLM-like resource is genuinely idle or merely waiting for dependencies.
    4. " - "
    5. Document custom-model group identity and weight. " - "SchedulingMetadata.custom_model(...) controls fairness and per-group admission. " - "Plugins that share one external model should use a shared model identity and a weight that reflects " - "real serving capacity; plugins that represent distinct resources should keep distinct identities.
    6. " - "
    7. Use the report as a regression suite. The worst case here is " - f"{html.escape(worst.case.name)}; future scheduler or admission changes should improve " - "that case without increasing ready gaps or violating final zero-lease checks.
    8. " - "
    " - ) - - -def _results_table(results: Sequence[IdleBenchmarkResult], report_path: Path) -> str: - headers = [ - "case", - "sweep", - "scenario", - "generations", - "rows", - "buffer", - "rg conc", - "llm cap", - "util", - "idle", - "starved idle", - "frontier idle", - "queue age p95", - "downstream gap p95", - "leased request wait", - "request util", - "request starved idle", - "advisory skips", - "first model", - "overlap", - "throughput", - "artifact", - ] - rows = [] - for result in sorted(results, key=lambda item: (item.case.sweep, item.case.name)): - rows.append( - [ - html.escape(result.case.name), - html.escape(result.case.sweep), - html.escape(result.case.scenario), - f"{result.case.generation_count:,}", - f"{result.case.record_count:,}", - f"{result.case.buffer_size:,}", - f"{result.case.row_group_concurrency}", - f"{max(1, result.case.task_admission_capacity // 2)}", - _format_percent(result.llm_utilization_ratio), - _format_percent(result.llm_idle_ratio), - _format_percent(result.llm_starved_idle_ratio), - _format_percent(result.llm_frontier_dependency_horizon_idle_ratio), - _format_seconds(result.llm_scheduler_queue_age_p95_seconds), - _format_seconds(result.downstream_ready_gap_p95_seconds), - _format_seconds(result.request_wait_seconds_while_task_leased_mean), - _format_percent(result.request_utilization_ratio), - _format_percent(result.request_starved_idle_ratio), - f"{result.request_pressure_advisory_skip_count:,}", - html.escape(result.first_model_dispatch_column or "-"), - _format_percent(result.pipeline_overlap_ratio), - f"{result.throughput_generations_per_second:,.0f}/s", - f'json', - ] - ) - return _html_table(headers, rows) - - -def _line_chart( - title: str, - results: Sequence[IdleBenchmarkResult], - *, - x_getter: Any, - y_series: Sequence[tuple[str, Any, str]], - x_label: str, - y_label: str, - y_max: float | None = None, -) -> str: - width = 880 - height = 360 - left = 64 - right = 24 - top = 42 - bottom = 54 - plot_w = width - left - right - plot_h = height - top - bottom - xs = [float(x_getter(result)) for result in results] - y_values = [float(getter(result)) for _label, getter, _color in y_series for result in results] - min_x = min(xs, default=0.0) - max_x = max(xs, default=1.0) - if math.isclose(min_x, max_x): - max_x = min_x + 1.0 - max_y = y_max if y_max is not None else max(y_values, default=1.0) - max_y = max(max_y, 0.001) - - elements = [_chart_frame(width, height, left, top, plot_w, plot_h, title, x_label, y_label)] - for series_index, (label, getter, color) in enumerate(y_series): - points = [] - for result in results: - x_value = float(x_getter(result)) - y_value = min(float(getter(result)), max_y) - x = left + ((x_value - min_x) / (max_x - min_x)) * plot_w - y = top + plot_h - (y_value / max_y) * plot_h - points.append((x, y, y_value)) - point_attr = " ".join(f"{x:.1f},{y:.1f}" for x, y, _value in points) - elements.append(f'') - for x, y, value in points: - elements.append( - f'{label}: {value:.4f}' - ) - elements.append(_legend_item(label, color, series_index)) - - for result in results: - x_value = float(x_getter(result)) - x = left + ((x_value - min_x) / (max_x - min_x)) * plot_w - elements.append( - f'{_compact_number(x_value)}' - ) - return f'
    {"".join(elements)}
    ' - - -def _bar_chart( - title: str, - results: Sequence[IdleBenchmarkResult], - *, - label_getter: Any, - bars: Sequence[tuple[str, Any, str]], - y_max: float | None = None, -) -> str: - width = 880 - height = 360 - left = 64 - top = 42 - bottom = 82 - plot_w = width - left - 24 - plot_h = height - top - bottom - y_values = [float(getter(result)) for _label, getter, _color in bars for result in results] - max_y = max(y_max or max(y_values, default=1.0), 0.001) - group_w = plot_w / max(1, len(results)) - bar_w = min(32.0, (group_w - 16.0) / max(1, len(bars))) - - elements = [_chart_frame(width, height, left, top, plot_w, plot_h, title, "case", "ratio")] - for result_index, result in enumerate(results): - group_x = left + result_index * group_w + group_w / 2 - for bar_index, (label, getter, color) in enumerate(bars): - value = min(float(getter(result)), max_y) - x = group_x - (bar_w * len(bars)) / 2 + bar_index * bar_w - bar_h = (value / max_y) * plot_h - y = top + plot_h - bar_h - elements.append( - f'{label}: {value:.4f}' - ) - elements.append( - f'' - f"{html.escape(label_getter(result))}" - ) - for series_index, (label, _getter, color) in enumerate(bars): - elements.append(_legend_item(label, color, series_index)) - return f'
    {"".join(elements)}
    ' - - -def _chart_frame( - width: int, - height: int, - left: int, - top: int, - plot_w: int, - plot_h: int, - title: str, - x_label: str, - y_label: str, -) -> str: - bottom = top + plot_h - right = left + plot_w - return ( - f'' - f'{html.escape(title)}' - f'' - f'' - f'{html.escape(x_label)}' - f'{html.escape(y_label)}' - f'0' - f'max' - f'' - ) - - -def _legend_item(label: str, color: str, index: int) -> str: - x = 650 - y = 28 + (index % 5) * 17 - return ( - f'' - f'{html.escape(label)}' - ) - - -def _summary_grid(items: Iterable[tuple[str, str]]) -> str: - cards = [] - for label, value in items: - cards.append( - f'
    {html.escape(label)}{html.escape(value)}
    ' - ) - return f'
    {"".join(cards)}
    ' - - -def _html_table(headers: Sequence[str], rows: Sequence[Sequence[str]]) -> str: - header_html = "".join(f"{html.escape(header)}" for header in headers) - row_html = [] - for row in rows: - row_html.append("" + "".join(f"{cell}" for cell in row) + "") - return f'
    {header_html}{"".join(row_html)}
    ' - - -def _style_block() -> str: - return """ - -""" - - -def _group_results(results: Sequence[IdleBenchmarkResult]) -> dict[str, list[IdleBenchmarkResult]]: - grouped: dict[str, list[IdleBenchmarkResult]] = {} - for result in results: - grouped.setdefault(result.case.sweep, []).append(result) - return grouped - - -def _sort(results: Sequence[IdleBenchmarkResult], attr: str) -> list[IdleBenchmarkResult]: - return sorted(results, key=lambda result: getattr(result.case, attr)) - - -def _float(values: Mapping[str, Any], key: str, *, fallback_key: str | None = None) -> float: - value = values.get(key) - if value is None and fallback_key is not None: - value = values.get(fallback_key) - return float(value or 0.0) - - -def _idle_ratio( - values: Mapping[str, Any], - artifact: Mapping[str, Any], - resource: str, - key: str, -) -> float: - del key - capacity_seconds = _mean_capacity_seconds(artifact, resource) - idle_seconds = _float(values, "mean_idle_capacity_seconds") - starved_seconds = _float(values, "mean_starved_idle_seconds") - return _safe_ratio(max(0.0, idle_seconds - starved_seconds), capacity_seconds) - - -def _mean_capacity_seconds(artifact: Mapping[str, Any], resource: str) -> float: - values = [] - for iteration in artifact.get("iterations", []): - metrics = iteration.get("utilization_metrics", {}).get("scheduler_resources", {}).get(resource, {}) - values.append(float(metrics.get("capacity_seconds", 0.0) or 0.0)) - if not values: - return 0.0 - return sum(values) / len(values) - - -def _sum_request_capacity_seconds(artifact: Mapping[str, Any]) -> float: - values = [] - for iteration in artifact.get("iterations", []): - resources = iteration.get("utilization_metrics", {}).get("request_resources", {}) - if not isinstance(resources, Mapping): - continue - values.append(sum(float(metrics.get("capacity_seconds", 0.0) or 0.0) for metrics in resources.values())) - if not values: - return 0.0 - return sum(values) / len(values) - - -def _mean_resource_metric(resources: Mapping[str, Mapping[str, Any]], key: str) -> float: - values = [float(metrics.get(key, 0.0) or 0.0) for metrics in resources.values()] - if not values: - return 0.0 - return sum(values) / len(values) - - -def _sum_resource_metric( - resources: Mapping[str, Mapping[str, Any]], - key: str, - *, - fallback_key: str | None = None, -) -> float: - total = 0.0 - for metrics in resources.values(): - value = metrics.get(key) - if value is None and fallback_key is not None: - value = metrics.get(fallback_key) - total += float(value or 0.0) - return total - - -def _max_resource_metric(resources: Mapping[str, Mapping[str, Any]], key: str) -> float: - return max((float(metrics.get(key, 0.0) or 0.0) for metrics in resources.values()), default=0.0) - - -def _max_iteration_metric(artifact: Mapping[str, Any], resource: str, metric: str) -> float: - values = [] - for iteration in artifact.get("iterations", []): - resource_metrics = iteration.get("utilization_metrics", {}).get("scheduler_resources", {}).get(resource, {}) - values.append(float(resource_metrics.get(metric, 0.0) or 0.0)) - return max(values, default=0.0) - - -def _row_group_admission_snapshot(artifact: Mapping[str, Any]) -> Mapping[str, Any]: - iteration_snapshots = [ - _nested_mapping( - iteration, - ("capacity_plan", "configured", "row_group_admission"), - ) - for iteration in artifact.get("iterations", []) - ] - for snapshot in reversed(iteration_snapshots): - if snapshot: - return snapshot - return _nested_mapping(artifact, ("capacity_plan", "configured", "row_group_admission")) - - -def _nested_mapping(values: Mapping[str, Any], keys: Sequence[str]) -> Mapping[str, Any]: - current: Any = values - for key in keys: - if not isinstance(current, Mapping): - return {} - current = current.get(key) - return current if isinstance(current, Mapping) else {} - - -def _safe_ratio(numerator: float, denominator: float) -> float: - if denominator <= 0.0: - return 0.0 - return numerator / denominator - - -def _safe_subtract(left: float, right: float) -> float: - return max(0.0, left - right) - - -def _median(values: Iterable[float]) -> float: - sorted_values = sorted(values) - if not sorted_values: - return 0.0 - midpoint = len(sorted_values) // 2 - if len(sorted_values) % 2: - return sorted_values[midpoint] - return (sorted_values[midpoint - 1] + sorted_values[midpoint]) / 2.0 - - -def _format_float(value: float) -> str: - return f"{value:.8f}".rstrip("0").rstrip(".") - - -def _format_percent(value: float) -> str: - return f"{value * 100.0:.1f}%" - - -def _format_signed_percent(value: float) -> str: - sign = "+" if value >= 0.0 else "" - return f"{sign}{value * 100.0:.1f} pp" - - -def _format_signed_seconds(value: float) -> str: - sign = "+" if value >= 0.0 else "-" - return f"{sign}{_format_seconds(abs(value))}" - - -def _format_seconds(value: float) -> str: - if value < 0.001: - return f"{value * 1_000_000.0:.0f} us" - if value < 1.0: - return f"{value * 1000.0:.1f} ms" - return f"{value:.2f} s" - - -def _compact_number(value: float) -> str: - if value >= 1000: - return f"{value / 1000.0:.1f}k" - if value.is_integer(): - return str(int(value)) - return f"{value:.2f}" - - -def _format_optional_int(value: int | None) -> str: - return "n/a" if value is None else f"{value:,}" - - -def _optional_int(value: Any) -> int | None: - if value is None: - return None - try: - return int(value) - except (TypeError, ValueError): - return None - - -def _optional_str(value: Any) -> str | None: - if value is None: - return None - return str(value) - - -def _weight_label(result: IdleBenchmarkResult) -> str: - if result.case.model_stage_weight == 0: - return "model cap" - return f"weight {result.case.model_stage_weight}" - - -def _dominant_idle_class(result: IdleBenchmarkResult) -> str: - if ( - result.llm_frontier_dependency_horizon_idle_ratio >= 0.10 - and result.llm_frontier_dependency_horizon_idle_ratio > result.llm_starved_idle_ratio - ): - return "frontier/dependency-horizon" - if result.llm_starved_idle_ratio >= 0.10: - return "queued-work starvation" - if result.llm_scheduler_queue_age_p95_seconds > max(1.0, result.downstream_ready_gap_p95_seconds * 10.0): - return "queued-work starvation" - return "healthy/control" - - -def _recommended_next_lever(result: IdleBenchmarkResult) -> str: - idle_class = _dominant_idle_class(result) - if idle_class == "frontier/dependency-horizon": - return "adaptive row-group admission with memory and queue guardrails" - if idle_class == "queued-work starvation" and result.llm_scheduler_queue_age_p95_seconds > 1.0: - return "resource-aware task admission, candidate selection, or smaller scheduling shards" - if idle_class == "queued-work starvation": - return "task admission/fairness policy and eligible-starved-idle metrics" - return "keep as control case and watch for regressions" - - -def _class_counts(results: Sequence[IdleBenchmarkResult]) -> dict[str, int]: - counts: dict[str, int] = {} - for result in results: - idle_class = _dominant_idle_class(result) - counts[idle_class] = counts.get(idle_class, 0) + 1 - return counts - - -def _idle_class_priority(idle_class: str) -> int: - priorities = { - "frontier/dependency-horizon": 0, - "queued-work starvation": 1, - "healthy/control": 2, - } - return priorities.get(idle_class, 99) - - -def _class_slug(idle_class: str) -> str: - return idle_class.replace("/", "-").replace(" ", "-") - - -def _relative_href(report_path: Path, target_path: Path) -> str: - try: - if target_path.is_absolute(): - return target_path.as_uri() - return Path(os.path.relpath(target_path, start=report_path.parent)).as_posix() - except ValueError: - return str(target_path) - - -if __name__ == "__main__": - main() diff --git a/scripts/benchmarks/run_async_scheduling_idle_regression.py b/scripts/benchmarks/run_async_scheduling_idle_regression.py deleted file mode 100644 index f182f08f9..000000000 --- a/scripts/benchmarks/run_async_scheduling_idle_regression.py +++ /dev/null @@ -1,659 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -"""Run the canonical async scheduling idle-time regression suite.""" - -from __future__ import annotations - -import argparse -import json -import math -import sys -from collections.abc import Mapping, Sequence -from dataclasses import asdict, dataclass -from pathlib import Path -from typing import Any - -from generate_async_scheduling_idle_report import ( - IDLE_SUITE_ID, - IDLE_SUITE_VERSION, - idle_results_summary, - render_idle_report, - run_idle_benchmark_suite, - write_idle_results_summary, -) - -DEFAULT_OUTPUT_ROOT = Path(".scratch/async-scheduling-idle-regression") -DEFAULT_ARTIFACT_DIR = DEFAULT_OUTPUT_ROOT / "artifacts" -DEFAULT_REPORT_PATH = DEFAULT_OUTPUT_ROOT / "async-scheduling-idle-regression.html" -DEFAULT_SUMMARY_PATH = DEFAULT_ARTIFACT_DIR / "idle_regression_summary.json" -DEFAULT_CHECKS_PATH = DEFAULT_ARTIFACT_DIR / "idle_regression_checks.json" -CHECKS_SCHEMA_VERSION = "async-scheduling-idle-checks-v1" - - -@dataclass(frozen=True) -class RegressionCheck: - name: str - category: str - severity: str - passed: bool - observed: float | int | str | bool - expected: str - detail: str = "" - - -def main() -> None: - args = _parse_args() - artifact_dir = Path(args.artifact_dir) - report_path = Path(args.report_path) - summary_path = Path(args.summary_path) - checks_path = Path(args.checks_path) - - results = run_idle_benchmark_suite(artifact_dir, quick=args.quick, skip_run=args.skip_run) - render_idle_report(results, report_path, artifact_dir) - write_idle_results_summary(summary_path, results, quick=args.quick) - - summary = idle_results_summary(results, quick=args.quick) - baseline_summary = _load_json(Path(args.baseline_summary)) if args.baseline_summary else None - checks = evaluate_idle_regression_summary( - summary, - baseline_summary=baseline_summary, - utilization_tolerance=args.utilization_tolerance, - idle_tolerance=args.idle_tolerance, - ) - checks_payload = _checks_payload(checks) - checks_path.parent.mkdir(parents=True, exist_ok=True) - checks_path.write_text(json.dumps(checks_payload, indent=2, sort_keys=True) + "\n", encoding="utf-8") - - _print_check_summary(checks, report_path, summary_path, checks_path) - if _has_error(checks) and not args.allow_failures: - sys.exit(1) - - -def _parse_args() -> argparse.Namespace: - parser = argparse.ArgumentParser(description=__doc__) - parser.add_argument("--artifact-dir", default=str(DEFAULT_ARTIFACT_DIR)) - parser.add_argument("--report-path", default=str(DEFAULT_REPORT_PATH)) - parser.add_argument("--summary-path", default=str(DEFAULT_SUMMARY_PATH)) - parser.add_argument("--checks-path", default=str(DEFAULT_CHECKS_PATH)) - parser.add_argument("--baseline-summary") - parser.add_argument("--skip-run", action="store_true", help="Reuse existing benchmark JSON files.") - parser.add_argument("--quick", action="store_true", help="Run the shorter suite while preserving coverage shape.") - parser.add_argument( - "--utilization-tolerance", - type=float, - default=0.05, - help="Allowed absolute llm_wait utilization drop when comparing to --baseline-summary.", - ) - parser.add_argument( - "--idle-tolerance", - type=float, - default=0.05, - help="Allowed absolute llm_wait idle increase when comparing to --baseline-summary.", - ) - parser.add_argument("--allow-failures", action="store_true", help="Write artifacts but exit zero on failed checks.") - return parser.parse_args() - - -def evaluate_idle_regression_summary( - summary: Mapping[str, Any], - *, - baseline_summary: Mapping[str, Any] | None = None, - utilization_tolerance: float = 0.05, - idle_tolerance: float = 0.05, -) -> list[RegressionCheck]: - cases = _cases(summary) - mode = str(summary.get("mode", "full")) - checks: list[RegressionCheck] = [ - _check( - "suite id", - category="shape", - passed=summary.get("suite_id") == IDLE_SUITE_ID, - observed=str(summary.get("suite_id")), - expected=IDLE_SUITE_ID, - ), - _check( - "suite version", - category="shape", - passed=summary.get("suite_version") == IDLE_SUITE_VERSION, - observed=str(summary.get("suite_version")), - expected=IDLE_SUITE_VERSION, - ), - _check( - "case count", - category="shape", - passed=len(cases) >= _minimum_case_count(mode), - observed=len(cases), - expected=f">= {_minimum_case_count(mode)}", - ), - _check( - "large generation case present", - category="shape", - passed=int(summary.get("largest_generation_count", 0)) >= 8192, - observed=int(summary.get("largest_generation_count", 0)), - expected=">= 8192 generations", - ), - ] - - checks.extend(_required_case_checks(cases, mode=mode)) - checks.extend(_per_case_metric_checks(cases)) - checks.extend(_suite_behavior_checks(cases, mode=mode)) - if baseline_summary is not None: - checks.extend( - _baseline_comparison_checks( - cases, - _cases(baseline_summary), - utilization_tolerance=utilization_tolerance, - idle_tolerance=idle_tolerance, - ) - ) - return checks - - -def _required_case_checks(cases: Mapping[str, Mapping[str, Any]], *, mode: str) -> list[RegressionCheck]: - required = { - "adaptations/adaptive-row-groups-adaptive", - "adaptations/adaptive-row-groups-fixed-high", - "adaptations/adaptive-row-groups-fixed-low", - "adaptations/adaptive-request-pressure-combined", - "adaptations/adaptive-request-pressure-control", - "adaptations/request-pressure-advisory", - "adaptations/request-pressure-control", - "row-scale/rows-64", - "row-group-concurrency/row-groups-1", - "buffer-size/buffer-1", - "stress-shape/narrow-frontier-high-cap", - "stress-shape/wide-frontier-high-cap", - "custom-model-weight/weight-model-capacity", - } - if mode != "quick": - required.update( - { - "row-scale/rows-1024", - "row-group-concurrency/row-groups-8", - "buffer-size/buffer-256", - "llm-capacity/capacity-16", - } - ) - else: - required.add("row-scale/rows-256") - return [ - _check( - f"required case {case_key}", - category="shape", - passed=case_key in cases, - observed=case_key in cases, - expected="present", - ) - for case_key in sorted(required) - ] - - -def _per_case_metric_checks(cases: Mapping[str, Mapping[str, Any]]) -> list[RegressionCheck]: - checks: list[RegressionCheck] = [] - for case_key, case in sorted(cases.items()): - checks.append( - _check( - f"{case_key} validation", - category="correctness", - passed=bool(case.get("validation_passed")), - observed=bool(case.get("validation_passed")), - expected="true", - ) - ) - for cleanup_metric in ( - "final_zero_task_leases", - "final_zero_request_leases", - "final_zero_request_waiters", - ): - checks.append( - _check( - f"{case_key} {cleanup_metric}", - category="correctness", - passed=bool(case.get(cleanup_metric)), - observed=bool(case.get(cleanup_metric)), - expected="true", - ) - ) - for metric in ( - "llm_wait_utilization_ratio", - "llm_wait_idle_ratio", - "llm_wait_starved_idle_ratio", - "llm_wait_frontier_dependency_horizon_idle_ratio", - "request_utilization_ratio", - "request_idle_ratio", - "request_starved_idle_ratio", - "request_frontier_dependency_horizon_idle_ratio", - ): - value = _metric(case, metric) - checks.append( - _check( - f"{case_key} {metric}", - category="metrics", - passed=math.isfinite(value) and 0.0 <= value <= 1.0, - observed=value, - expected="finite ratio in [0, 1]", - ) - ) - queue_age_p95 = _metric(case, "llm_wait_scheduler_queue_age_p95_seconds") - checks.append( - _check( - f"{case_key} llm_wait_scheduler_queue_age_p95_seconds", - category="metrics", - passed=math.isfinite(queue_age_p95) and queue_age_p95 >= 0.0, - observed=queue_age_p95, - expected="finite seconds >= 0", - ) - ) - checks.append( - _check( - f"{case_key} idle dominates starved idle", - category="metrics", - passed=_metric(case, "llm_wait_idle_ratio") + 1e-9 >= _metric(case, "llm_wait_starved_idle_ratio"), - observed=_metric(case, "llm_wait_idle_ratio") - _metric(case, "llm_wait_starved_idle_ratio"), - expected="idle ratio >= starved idle ratio", - ) - ) - checks.append( - _check( - f"{case_key} idle partition", - category="metrics", - passed=abs( - _metric(case, "llm_wait_idle_ratio") - - _metric(case, "llm_wait_starved_idle_ratio") - - _metric(case, "llm_wait_frontier_dependency_horizon_idle_ratio") - ) - <= 1e-6, - observed=( - _metric(case, "llm_wait_starved_idle_ratio") - + _metric(case, "llm_wait_frontier_dependency_horizon_idle_ratio") - - _metric(case, "llm_wait_idle_ratio") - ), - expected="starved + frontier/dependency-horizon idle == total idle", - ) - ) - return checks - - -def _suite_behavior_checks(cases: Mapping[str, Mapping[str, Any]], *, mode: str) -> list[RegressionCheck]: - checks: list[RegressionCheck] = [] - row_group_cases = [case for key, case in cases.items() if key.startswith("row-group-concurrency/")] - if row_group_cases: - low = min(row_group_cases, key=lambda case: int(case["case"]["row_group_concurrency"])) - high = max(row_group_cases, key=lambda case: int(case["case"]["row_group_concurrency"])) - low_util = _metric(low, "llm_wait_utilization_ratio") - high_util = _metric(high, "llm_wait_utilization_ratio") - checks.append( - _check( - "row-group frontier response", - category="optimization", - passed=high_util >= low_util + 0.20 or low_util >= 0.60, - observed=high_util - low_util, - expected="highest row-group concurrency improves utilization by >= 20pp unless low case is already >= 60%", - ) - ) - checks.append( - _check( - "wide row-group frontier utilization", - category="optimization", - passed=high_util >= _wide_row_group_utilization_floor(mode), - observed=high_util, - expected=f">= {_wide_row_group_utilization_floor(mode):.2f} llm_wait utilization", - ) - ) - - if "buffer-size/buffer-1" in cases: - checks.append( - _check( - "small-buffer model utilization", - category="optimization", - passed=_metric(cases["buffer-size/buffer-1"], "llm_wait_utilization_ratio") >= 0.65, - observed=_metric(cases["buffer-size/buffer-1"], "llm_wait_utilization_ratio"), - expected=">= 0.65 llm_wait utilization", - ) - ) - if "llm-capacity/capacity-16" in cases: - checks.append( - _check( - "high-capacity underfeeding floor", - category="optimization", - passed=_metric(cases["llm-capacity/capacity-16"], "llm_wait_utilization_ratio") >= 0.25, - observed=_metric(cases["llm-capacity/capacity-16"], "llm_wait_utilization_ratio"), - expected=">= 0.25 llm_wait utilization", - ) - ) - if "stress-shape/wide-frontier-high-cap" in cases: - floor = _wide_high_capacity_stress_utilization_floor(mode) - checks.append( - _check( - "wide high-capacity stress utilization", - category="optimization", - passed=_metric(cases["stress-shape/wide-frontier-high-cap"], "llm_wait_utilization_ratio") >= floor, - observed=_metric(cases["stress-shape/wide-frontier-high-cap"], "llm_wait_utilization_ratio"), - expected=f">= {floor:.2f} llm_wait utilization", - ) - ) - if { - "stress-shape/narrow-frontier-high-cap", - "stress-shape/wide-frontier-high-cap", - }.issubset(cases): - narrow_dependency_idle = _metric( - cases["stress-shape/narrow-frontier-high-cap"], - "llm_wait_frontier_dependency_horizon_idle_ratio", - ) - wide_dependency_idle = _metric( - cases["stress-shape/wide-frontier-high-cap"], - "llm_wait_frontier_dependency_horizon_idle_ratio", - ) - checks.append( - _check( - "wide frontier dependency-horizon idle response", - category="optimization", - passed=wide_dependency_idle <= narrow_dependency_idle + 0.10, - observed=wide_dependency_idle - narrow_dependency_idle, - expected="wide frontier dependency-horizon idle does not exceed narrow by > 10pp", - ) - ) - if { - "adaptations/adaptive-row-groups-fixed-low", - "adaptations/adaptive-row-groups-fixed-high", - "adaptations/adaptive-row-groups-adaptive", - }.issubset(cases): - control = cases["adaptations/adaptive-row-groups-fixed-low"] - fixed_high = cases["adaptations/adaptive-row-groups-fixed-high"] - adaptive = cases["adaptations/adaptive-row-groups-adaptive"] - control_util = _metric(control, "llm_wait_utilization_ratio") - fixed_high_util = _metric(fixed_high, "llm_wait_utilization_ratio") - adaptive_util = _metric(adaptive, "llm_wait_utilization_ratio") - control_frontier = _metric(control, "llm_wait_frontier_dependency_horizon_idle_ratio") - fixed_high_frontier = _metric(fixed_high, "llm_wait_frontier_dependency_horizon_idle_ratio") - adaptive_frontier = _metric(adaptive, "llm_wait_frontier_dependency_horizon_idle_ratio") - checks.append( - _check( - "adaptive row-group utilization response", - category="optimization", - passed=adaptive_util >= control_util + 0.10 or control_util >= 0.70, - observed=adaptive_util - control_util, - expected="adaptive row groups improve low-frontier utilization by >= 10pp unless control is >= 70%", - ) - ) - checks.append( - _check( - "adaptive row-group fixed-high isolation", - category="optimization", - passed=adaptive_util + 0.10 >= fixed_high_util, - observed=adaptive_util - fixed_high_util, - expected="adaptive row groups stay within 10pp utilization of fixed-high hard-cap control", - ) - ) - checks.append( - _check( - "adaptive row-group frontier-idle response", - category="optimization", - passed=adaptive_frontier <= min(control_frontier, fixed_high_frontier) + 0.05, - observed=adaptive_frontier - min(control_frontier, fixed_high_frontier), - expected="adaptive row groups do not exceed the better fixed-control frontier idle by > 5pp", - ) - ) - checks.append( - _check( - "adaptive row-group target grew", - category="optimization", - passed=int(adaptive.get("row_group_admission_observed_max_target", 0) or 0) > 1, - observed=int(adaptive.get("row_group_admission_observed_max_target", 0) or 0), - expected="observed adaptive target > 1", - ) - ) - if { - "adaptations/request-pressure-control", - "adaptations/request-pressure-advisory", - }.issubset(cases): - control = cases["adaptations/request-pressure-control"] - advisory = cases["adaptations/request-pressure-advisory"] - control_wait = _metric(control, "request_wait_seconds_while_task_leased_mean") - advisory_wait = _metric(advisory, "request_wait_seconds_while_task_leased_mean") - checks.append( - _check( - "request-pressure control dispatch choice", - category="optimization", - passed=control.get("first_model_dispatch_column") == "a_pressured", - observed=str(control.get("first_model_dispatch_column")), - expected="a_pressured", - ) - ) - checks.append( - _check( - "request-pressure control leased wait present", - category="optimization", - passed=control_wait >= 0.01, - observed=control_wait, - expected=">= 0.01 seconds", - ) - ) - checks.append( - _check( - "request-pressure advisory leased-wait response", - category="optimization", - passed=advisory_wait <= control_wait - 0.005, - observed=advisory_wait - control_wait, - expected="advisory leased request wait at least 5ms lower than control", - ) - ) - checks.append( - _check( - "request-pressure advisory dispatch choice", - category="optimization", - passed=advisory.get("first_model_dispatch_column") == "z_open", - observed=str(advisory.get("first_model_dispatch_column")), - expected="z_open", - ) - ) - if { - "adaptations/adaptive-request-pressure-control", - "adaptations/adaptive-request-pressure-combined", - }.issubset(cases): - control = cases["adaptations/adaptive-request-pressure-control"] - combined = cases["adaptations/adaptive-request-pressure-combined"] - control_wait = _metric(control, "request_wait_seconds_while_task_leased_mean") - combined_wait = _metric(combined, "request_wait_seconds_while_task_leased_mean") - control_llm_util = _metric(control, "llm_wait_utilization_ratio") - combined_llm_util = _metric(combined, "llm_wait_utilization_ratio") - control_request_idle = _metric(control, "request_idle_ratio") - combined_request_idle = _metric(combined, "request_idle_ratio") - checks.extend( - [ - _check( - "combined adaptive/request target grew", - category="optimization", - passed=int(combined.get("row_group_admission_observed_max_target", 0) or 0) > 1, - observed=int(combined.get("row_group_admission_observed_max_target", 0) or 0), - expected="observed adaptive target > 1", - ), - _check( - "combined adaptive/request advisory enabled", - category="optimization", - passed=bool(combined.get("request_pressure_advisory_enabled")), - observed=bool(combined.get("request_pressure_advisory_enabled")), - expected="true", - ), - _check( - "combined adaptive/request advisory skipped pressured work", - category="optimization", - passed=int(combined.get("request_pressure_advisory_skip_count", 0) or 0) > 0, - observed=int(combined.get("request_pressure_advisory_skip_count", 0) or 0), - expected="> 0 skip events", - ), - _check( - "combined adaptive/request leased wait captured", - category="optimization", - passed=math.isfinite(combined_wait) and combined_wait >= 0.0 and control_wait >= 0.0, - observed=combined_wait - control_wait, - expected="finite leased request wait delta", - ), - _check( - "combined adaptive/request llm utilization response", - category="optimization", - passed=combined_llm_util + 0.05 >= control_llm_util, - observed=combined_llm_util - control_llm_util, - expected="combined llm utilization stays within 5pp of control or improves", - ), - _check( - "combined adaptive/request request-idle response", - category="optimization", - passed=combined_request_idle <= control_request_idle + 0.05, - observed=combined_request_idle - control_request_idle, - expected="combined request idle does not exceed control by > 5pp", - ), - ] - ) - return checks - - -def _baseline_comparison_checks( - cases: Mapping[str, Mapping[str, Any]], - baseline_cases: Mapping[str, Mapping[str, Any]], - *, - utilization_tolerance: float, - idle_tolerance: float, -) -> list[RegressionCheck]: - checks: list[RegressionCheck] = [] - for case_key, baseline in sorted(baseline_cases.items()): - current = cases.get(case_key) - if current is None: - checks.append( - _check( - f"{case_key} baseline case present", - category="baseline", - passed=False, - observed="missing", - expected="present", - ) - ) - continue - baseline_util = _metric(baseline, "llm_wait_utilization_ratio") - current_util = _metric(current, "llm_wait_utilization_ratio") - checks.append( - _check( - f"{case_key} utilization regression", - category="baseline", - passed=current_util + utilization_tolerance >= baseline_util, - observed=current_util - baseline_util, - expected=f">= -{utilization_tolerance:.3f}", - ) - ) - for metric in ( - "llm_wait_idle_ratio", - "llm_wait_starved_idle_ratio", - "llm_wait_frontier_dependency_horizon_idle_ratio", - ): - baseline_idle = _metric(baseline, metric) - current_idle = _metric(current, metric) - checks.append( - _check( - f"{case_key} {metric} regression", - category="baseline", - passed=current_idle <= baseline_idle + idle_tolerance, - observed=current_idle - baseline_idle, - expected=f"<= +{idle_tolerance:.3f}", - ) - ) - baseline_throughput = _metric(baseline, "throughput_generations_per_second") - current_throughput = _metric(current, "throughput_generations_per_second") - checks.append( - _check( - f"{case_key} throughput smoke", - category="baseline", - severity="warning", - passed=current_throughput >= baseline_throughput * 0.75, - observed=current_throughput - baseline_throughput, - expected=">= 75% of baseline throughput", - ) - ) - return checks - - -def _wide_row_group_utilization_floor(mode: str) -> float: - return 0.55 if mode == "quick" else 0.70 - - -def _wide_high_capacity_stress_utilization_floor(mode: str) -> float: - return 0.53 if mode == "quick" else 0.55 - - -def _checks_payload(checks: Sequence[RegressionCheck]) -> dict[str, Any]: - return { - "checks_schema_version": CHECKS_SCHEMA_VERSION, - "suite_id": IDLE_SUITE_ID, - "suite_version": IDLE_SUITE_VERSION, - "passed": not _has_error(checks), - "error_count": sum(1 for check in checks if check.severity == "error" and not check.passed), - "warning_count": sum(1 for check in checks if check.severity == "warning" and not check.passed), - "checks": [asdict(check) for check in checks], - } - - -def _print_check_summary( - checks: Sequence[RegressionCheck], - report_path: Path, - summary_path: Path, - checks_path: Path, -) -> None: - errors = [check for check in checks if check.severity == "error" and not check.passed] - warnings = [check for check in checks if check.severity == "warning" and not check.passed] - status = "PASS" if not errors else "FAIL" - print(f"Idle regression suite: {status} ({len(errors)} errors, {len(warnings)} warnings)") - print(f"Wrote {report_path}") - print(f"Wrote {summary_path}") - print(f"Wrote {checks_path}") - for check in errors[:10]: - print(f"ERROR {check.name}: observed {check.observed}; expected {check.expected}") - for check in warnings[:5]: - print(f"WARN {check.name}: observed {check.observed}; expected {check.expected}") - - -def _has_error(checks: Sequence[RegressionCheck]) -> bool: - return any(check.severity == "error" and not check.passed for check in checks) - - -def _check( - name: str, - *, - category: str, - passed: bool, - observed: float | int | str | bool, - expected: str, - severity: str = "error", - detail: str = "", -) -> RegressionCheck: - return RegressionCheck( - name=name, - category=category, - severity=severity, - passed=passed, - observed=observed, - expected=expected, - detail=detail, - ) - - -def _cases(summary: Mapping[str, Any]) -> Mapping[str, Mapping[str, Any]]: - cases = summary.get("cases", {}) - if not isinstance(cases, Mapping): - return {} - return cases - - -def _minimum_case_count(mode: str) -> int: - return 15 if mode == "quick" else 21 - - -def _metric(case: Mapping[str, Any], name: str) -> float: - return float(case.get(name, 0.0) or 0.0) - - -def _load_json(path: Path) -> Mapping[str, Any]: - return json.loads(path.read_text(encoding="utf-8")) - - -if __name__ == "__main__": - main() From 87a2143aca8bda41069f051e515a9d1466c1230f Mon Sep 17 00:00:00 2001 From: "Eric W. Tramel" Date: Tue, 19 May 2026 20:41:08 -0400 Subject: [PATCH 22/33] chore: restore historical devnote posts Signed-off-by: Eric W. Tramel --- .../architecture-layers.svg | 12 ++-- .../async-all-the-way-down/task-lifecycle.png | Bin 47355 -> 30470 bytes .../native-model-client-layers.png | Bin 54814 -> 196456 bytes .../owning-the-model-stack/retry-boundary.png | Bin 42573 -> 331171 bytes ...request-keying.png => throttle-keying.png} | Bin docs/devnotes/posts/async-all-the-way-down.md | 47 +++++++------- docs/devnotes/posts/owning-the-model-stack.md | 58 ++++++++++++------ 7 files changed, 70 insertions(+), 47 deletions(-) rename docs/devnotes/posts/assets/owning-the-model-stack/{request-keying.png => throttle-keying.png} (100%) diff --git a/docs/devnotes/posts/assets/async-all-the-way-down/architecture-layers.svg b/docs/devnotes/posts/assets/async-all-the-way-down/architecture-layers.svg index dec3601a6..122d3d95d 100644 --- a/docs/devnotes/posts/assets/async-all-the-way-down/architecture-layers.svg +++ b/docs/devnotes/posts/assets/async-all-the-way-down/architecture-layers.svg @@ -39,21 +39,21 @@ Row-Group Admission & Buffer Management Memory-bounded execution with streaming checkpoints - • Admission-gated row groups + • Semaphore-gated row-group admission • Per-group buffer with cell-level writes • Checkpoint-to-parquet on completion - • Task admission caps in-flight work + • Submission semaphore caps in-flight tasks - + - Request Admission (AIMD Adaptive Concurrency) - Provider/model/domain rate-limit adaptation + ThrottleManager (AIMD Adaptive Concurrency) + Per-model, per-provider rate-limit adaptation • Additive increase on success streaks • Multiplicative decrease on 429s - • Independent request resources + • Independent pools per (provider, model) • Global cap across model aliases diff --git a/docs/devnotes/posts/assets/async-all-the-way-down/task-lifecycle.png b/docs/devnotes/posts/assets/async-all-the-way-down/task-lifecycle.png index 1d0330513266760ecdab07c6ea13368b87a0de93..69262a3b50fd2264985d92d52df7e3196fd19583 100644 GIT binary patch literal 30470 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�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 RXDa{z002ovPDHLkV1j<|W32!H literal 47355 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
  • so+-O7eDyUK51T+1B_pu_2p{7j^0z4hca{ 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�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 diff --git a/docs/devnotes/posts/assets/owning-the-model-stack/native-model-client-layers.png b/docs/devnotes/posts/assets/owning-the-model-stack/native-model-client-layers.png index 591f8154853444981db297035c5bcc493d1a7c8e..4600519f6c37d92569904982c21095c2ac6aa120 100644 GIT binary patch literal 196456 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

    dTSH*TU8 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�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


    ^6B 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 literal 54814 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%0D?-9U1Pun>#M$+%R4M)dbwzkYq7B1uFu^}X0B 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
    OFn80$4) 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 z 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 v{P&Fg_lCin@ZawXCgJ}lb73s`mPTyqSe|< -![Three layers: AsyncTaskScheduler for dependency dispatch, row-group admission for memory, and request admission for provider capacity](assets/async-all-the-way-down/architecture-layers.svg){ style="max-width:100%; height:auto" } +![Three layers: AsyncTaskScheduler for dependency dispatch, row-group admission for memory, ThrottleManager for rate limits](assets/async-all-the-way-down/architecture-layers.svg){ style="max-width:100%; height:auto" } @@ -67,42 +67,43 @@ Getting this right required solving three problems at different levels of the st At the top sits the `AsyncTaskScheduler`. It builds an `ExecutionGraph` from your column configs using [Kahn's algorithm](https://en.wikipedia.org/wiki/Topological_sorting#Kahn's_algorithm) for topological ordering, then tracks per-cell completion via a `CompletionTracker`. When a cell completes, the tracker determines which downstream cells are now ready and pushes them onto the dispatch queue. -The scheduler maintains a *frontier* — the set of tasks whose inputs are all satisfied. Dispatch is a loop: enqueue ready tasks, ask `FairTaskQueue` to select the next eligible task, acquire a scheduler-resource lease from `TaskAdmissionController`, commit the queue selection, then spawn a worker. When the worker completes, mark the cell done, release the lease, and make any newly-ready downstream tasks visible. The loop runs until every cell in every row group has completed or been dropped. +The scheduler maintains a *frontier* — the set of tasks whose inputs are all satisfied. Dispatch is a loop: pull ready tasks from the frontier, acquire a [semaphore](https://en.wikipedia.org/wiki/Semaphore_(programming)) slot, spawn a worker. When the worker completes, mark the cell done, which may add new tasks to the frontier. The loop runs until every cell in every row group has completed or been dropped. -There's a subtlety in how the scheduler manages task-stage pressure. Scheduler resources and provider request resources are separate. The scheduler decides which dependency-ready cell may become a running worker; `ModelRequestExecutor` and request admission decide when an individual provider call may execute. Keeping those ledgers separate prevents provider cooldown or request backpressure from masquerading as DAG readiness. +There's a subtlety in how the scheduler manages its task slots, and getting it right required a delicate dance between two semaphores. A naïve approach would hold a submission slot for the entire lifetime of a task. That's fine for the outbound HTTP call — the slot is released before the request goes out. But the `ThrottleManager` can impose an internal timeout while waiting for a permit during AIMD cooldown, and *that* wait would hold the submission slot hostage. If enough tasks are blocked waiting for throttle permits, the scheduler can't dispatch new work even when the frontier has ready tasks. -The durable scheduler contract is selection plus admission plus commit: +The fix is a one-way semaphore handoff. The scheduler maintains two pools: a *submission* semaphore that caps how many tasks can be dispatched, and an *LLM-wait* semaphore (sized larger) for tasks that are blocked on a model call. When a task is about to call the model, it acquires an LLM-wait slot and releases its submission slot in the same atomic operation — stepping from one pool to the other mid-flight. The dispatch loop immediately sees a free submission slot and can send another task. When the LLM responds, the LLM-wait slot is released. Non-LLM generators (samplers, Jinja expressions) skip the handoff and hold their submission slot for the full duration, which is fine because they complete quickly. ```py -selection = queue.select_next(lambda item, view: admission.is_eligible(item, view)) -decision = admission.try_acquire(selection.item, selection.queue_view) -committed = queue.commit(selection) -spawn_worker(committed, decision) +if is_llm_bound: + await self._llm_wait_semaphore.acquire() + holds_llm_wait = True + self._submission_semaphore.release() + holds_submission = False ``` -This keeps ready-work ordering, scheduler-resource accounting, and request-capacity adaptation explicit. `SchedulingMetadata` describes static generator pressure, `TaskSchedulingResolver` turns it into scheduler inputs, `FairTaskQueue` handles ready ordering, and `TaskAdmissionController` owns leases for scheduler resources. +This keeps the dispatch loop saturated without unbounded coroutine growth — the submission semaphore controls how fast tasks enter, and the LLM-wait semaphore controls how many are waiting on the network. ### **Layer 2: Row-group admission** -Below the scheduler, the 10,000 rows you requested aren't all in memory at once. They're partitioned into row groups that checkpoint to parquet independently. Row-group admission limits how many groups are in flight simultaneously, preventing memory from growing unboundedly on large runs. +Below the scheduler, the 10,000 rows you requested aren't all in memory at once. They're partitioned into row groups that checkpoint to parquet independently. A semaphore limits how many row groups are in flight simultaneously, preventing memory from growing unboundedly on large runs. When a row group completes — all columns generated for all its rows — the buffer manager flushes it to disk and releases the memory. Partial results appear on disk during generation. If something fails, you keep everything that already checkpointed. This is also the basis for fault tolerance, discussed later — the unit of loss is a row group, not the entire run. ### **Layer 3: Adaptive rate limiting** -At the bottom, each provider/model/request-domain resource gets [additive-increase, multiplicative-decrease (AIMD)](https://en.wikipedia.org/wiki/Additive_increase/multiplicative_decrease) request admission. When the provider returns a 429, `AdaptiveRequestAdmissionController` reduces admitted concurrency for that request resource. On streaks of successful requests, it gradually increases. Because this happens per request resource, a judge model running on one provider can saturate its endpoint while a generator on another provider is backing off. The [Owning the Model Stack](owning-the-model-stack.md) dev note covers this layer in depth. +At the bottom, each (provider, model) pair gets an independent concurrency pool with [additive-increase, multiplicative-decrease (AIMD)](https://en.wikipedia.org/wiki/Additive_increase/multiplicative_decrease) rate adaptation. When the provider returns a 429, the pool cuts its concurrency. On streaks of successful requests, it gradually increases. Because this happens per-model, a judge model running on one provider can saturate its endpoint while a generator on another provider is backing off. The [Owning the Model Stack](owning-the-model-stack.md) dev note covers this layer in depth. ### **How they compose** -The layers are independent. The scheduler decides *what* to run next. The row-group layer decides *how much* to keep in memory at once. The request-admission layer discovers *how fast* each provider will accept requests. No layer needs to know about the others. +The layers are independent. The scheduler decides *what* to run next. The row-group layer decides *how much* to keep in memory at once. The throttle layer discovers *how fast* each provider will accept requests. No layer needs to know about the others. A single task's lifecycle makes the composition concrete:
    - Task lifecycle: Frontier to fair queue to task admission to generator to request admission to LLM call to complete, with downstream cells looping back to the frontier + Task lifecycle: Frontier → Dispatch → Generator → Throttle → LLM Call → Complete, with downstream cells looping back to the frontier
    -A cell enters the frontier when its upstream dependencies are satisfied. The scheduler enqueues it, selects it through `FairTaskQueue`, acquires a `TaskAdmissionLease`, commits the selection, and hands the task to a worker. The worker runs the generator; any model call goes through `ModelRequestExecutor`, which acquires and releases the request-admission lease around provider execution. On completion, leases are released, the cell is marked done in the `CompletionTracker`, and any downstream cells whose dependencies are now satisfied enter the frontier. The cycle continues until every cell has completed or been dropped. +A cell enters the frontier when its upstream dependencies are satisfied. The dispatch loop acquires a submission slot and hands it to a worker. The worker runs the generator, which acquires a throttle permit before making the LLM call. On completion, permits are released, the cell is marked done in the `CompletionTracker`, and any downstream cells whose dependencies are now satisfied enter the frontier. The cycle continues until every cell has completed or been dropped. --- @@ -137,13 +138,13 @@ The pattern is clear: speedup scales with the amount of parallelism available in The **narrow** workload is a sequential chain with no cross-column parallelism. The async engine still ekes out a small gain from overlapping row-level dispatch, but there's no structural parallelism to exploit. This is expected: async can't speed up a fundamentally serial pipeline. -The **dual-model** workload is the most interesting case. Three generation columns use one model, and three judge columns use another. Each model maps to its own request-admission resources. The judge model starts processing rows as soon as the first generator finishes, running at full concurrency while the generator is still producing. In the sync engine, all generation has to finish before any judging starts. +The **dual-model** workload is the most interesting case. Three generation columns use one model, and three judge columns use another. Each model gets its own ThrottleManager pool. The judge model starts processing rows as soon as the first generator finishes, running at full concurrency while the generator is still producing. In the sync engine, all generation has to finish before any judging starts. ### **At higher record counts** -The benchmarks above use 10 records deliberately — small batches isolate the scheduling benefit from rate-limit effects. At higher record counts, the bottleneck shifts. The async engine dispatches requests more aggressively, which means it discovers the provider's rate limits sooner. When a 429 hits, adaptive request admission backs off, and the backoff can cascade through downstream columns that were waiting on the rate-limited model's output. +The benchmarks above use 10 records deliberately — small batches isolate the scheduling benefit from rate-limit effects. At higher record counts, the bottleneck shifts. The async engine dispatches requests more aggressively, which means it discovers the provider's rate limits sooner. When a 429 hits, the AIMD controller backs off, and the backoff can cascade through downstream columns that were waiting on the throttled model's output. -This is where per-model request resources become important. Single-model pipelines are most susceptible to cascading backoff because all columns compete for the same provider capacity. Multi-model pipelines hold up well because each model adapts independently — a 429 on the generator model doesn't slow down the judge. In our larger runs, dual-model and multi-provider workloads consistently showed the largest async gains. +This is where the per-model throttle pools become important. Single-model pipelines are most susceptible to cascading backoff because all columns compete for the same pool. Multi-model pipelines hold up well because each model adapts independently — a 429 on the generator model doesn't slow down the judge. In our larger runs, dual-model and multi-provider workloads consistently showed the largest async gains. The primary tuning lever is `max_parallel_requests` per model. Set it to a generous upper bound and let AIMD find the real ceiling. See the [Owning the Model Stack](owning-the-model-stack.md) dev note for the full story on adaptive concurrency. @@ -179,7 +180,7 @@ The performance numbers are satisfying, but raw throughput is only part of the p ### **Progress you can see** -Because rows complete out of order and row groups checkpoint independently, results start appearing on disk within seconds. The new progress bars — sticky ANSI bars that redraw in-place at the bottom of the terminal — update on every task completion rather than waiting for a full column to finish. Log messages from the scheduler and request-admission layer render above the bars, so you see both the high-level progress and the per-event detail. A 10-minute generation run no longer means staring at nothing until the end. +Because rows complete out of order and row groups checkpoint independently, results start appearing on disk within seconds. The new progress bars — sticky ANSI bars that redraw in-place at the bottom of the terminal — update on every task completion rather than waiting for a full column to finish. Log messages from the scheduler and throttle layer render above the bars, so you see both the high-level progress and the per-event detail. A 10-minute generation run no longer means staring at nothing until the end. ``` column 'topic' ████████████████████████████████████░░░░ 89% | 890/1000 | 148.3 rec/s | eta 1s | 0 failed @@ -188,13 +189,13 @@ Because rows complete out of order and row groups checkpoint independently, resu column 'analysis' ██████████████░░░░░░░░░░░░░░░░░░░░░░░░░░ 35% | 350/1000 | 87.5 rec/s | eta 7s | 1 failed ``` -When tracing is enabled (`DATA_DESIGNER_ASYNC_TRACE=1` or `RunConfig(async_trace=True)`), the scheduler also records a `TaskTrace` for every task: when it was dispatched, when it acquired scheduler resources, when it completed, and its status. These traces are available on the result object after the run, so you can reconstruct the scheduler's timeline and understand where time was spent. +When tracing is enabled (`DATA_DESIGNER_ASYNC_TRACE=1` or `RunConfig(async_trace=True)`), the scheduler also records a `TaskTrace` for every task: when it was dispatched, when it acquired a semaphore slot, when it completed, and its status. These traces are available on the result object after the run, so you can reconstruct the scheduler's timeline and understand where time was spent. ### **Fault tolerance** Failures in a long-running pipeline are not exceptional — they're expected. Model endpoints return 429s, connections time out, prompts produce unparseable output. The scheduler classifies errors into two buckets. -Retryable errors (rate limits, timeouts, transient server errors) are deferred rather than dropped. The task stays on the frontier so it can be re-attempted. If a row group stalls — all of its pending tasks are deferred and nothing is in flight — the scheduler detects the deadlock and runs *salvage rounds*: it re-dispatches the deferred tasks inline, up to a configurable maximum number of attempts. Tasks that still fail after salvage are dropped, and the row group is checkpointed with whatever succeeded. This prevents a stalled row group from holding row-group admission capacity forever and blocking admission of new row groups. +Retryable errors (rate limits, timeouts, transient server errors) are deferred rather than dropped. The task stays on the frontier so it can be re-attempted. If a row group stalls — all of its pending tasks are deferred and nothing is in flight — the scheduler detects the deadlock and runs *salvage rounds*: it re-dispatches the deferred tasks inline, up to a configurable maximum number of attempts. Tasks that still fail after salvage are dropped, and the row group is checkpointed with whatever succeeded. This prevents a stalled row group from holding its semaphore slot forever and blocking admission of new row groups. Non-retryable errors (malformed output, validation failures) drop the row immediately. The `CompletionTracker` knows which downstream tasks depended on that row and removes them from the frontier, so no work is wasted on a row that's already lost. @@ -202,7 +203,7 @@ In both cases, completed row groups are already on disk. The unit of loss is at ### **Multi-model concurrency** -Multi-model pipelines are where the architecture pays for itself. With independent request resources per model, there's no reason not to use the right model for each job: a reasoning model for generation, a smaller model for judging, an embedding model for deduplication, each running at its own optimal concurrency. The previous engine supported multi-model configs, but running them concurrently is what makes them practical at scale. +Multi-model pipelines are where the architecture pays for itself. With independent throttle pools per model, there's no reason not to use the right model for each job: a reasoning model for generation, a smaller model for judging, an embedding model for deduplication, each running at its own optimal concurrency. The previous engine supported multi-model configs, but running them concurrently is what makes them practical at scale. ### **Adoption** @@ -214,7 +215,7 @@ Adoption is opt-in. Set `DATA_DESIGNER_ASYNC_ENGINE=1` in your environment. Your This was a ground-up rebuild of the execution layer, delivered across six PRs over four weeks. -It started with the data structures: `ExecutionGraph`, `CompletionTracker`, and task models ([#356](https://github.com/NVIDIA-NeMo/DataDesigner/pull/356)). Next came the generator migration ([#378](https://github.com/NVIDIA-NeMo/DataDesigner/pull/378)), where we added symmetric `generate()`/`agenerate()` bridging so every generator works in both modes without rewriting. The core scheduler and buffer manager followed in [#404](https://github.com/NVIDIA-NeMo/DataDesigner/pull/404), then integration into `DatasetBuilder` with callbacks and trace export ([#429](https://github.com/NVIDIA-NeMo/DataDesigner/pull/429)). The historical predecessor to request admission and task-stage capacity control landed in [#449](https://github.com/NVIDIA-NeMo/DataDesigner/pull/449), wiring AIMD concurrency control into every outbound model request. A final polish pass ([#456](https://github.com/NVIDIA-NeMo/DataDesigner/pull/456)) added async preview, unified lifecycle callbacks, and sticky ANSI progress bars. +It started with the data structures: `ExecutionGraph`, `CompletionTracker`, and task models ([#356](https://github.com/NVIDIA-NeMo/DataDesigner/pull/356)). Next came the generator migration ([#378](https://github.com/NVIDIA-NeMo/DataDesigner/pull/378)), where we added symmetric `generate()`/`agenerate()` bridging so every generator works in both modes without rewriting. The core scheduler and buffer manager followed in [#404](https://github.com/NVIDIA-NeMo/DataDesigner/pull/404), then integration into `DatasetBuilder` with callbacks and trace export ([#429](https://github.com/NVIDIA-NeMo/DataDesigner/pull/429)). The `ThrottledModelClient` and dual-semaphore scheduler landed in [#449](https://github.com/NVIDIA-NeMo/DataDesigner/pull/449), wiring AIMD concurrency control into every outbound model request. A final polish pass ([#456](https://github.com/NVIDIA-NeMo/DataDesigner/pull/456)) added async preview, unified lifecycle callbacks, and sticky ANSI progress bars. The symmetric bridging was critical for adoption. Every `ColumnGenerator` has both a `generate()` and an `agenerate()` method. Implement one, and the base class synthesizes the other: @@ -277,7 +278,7 @@ Key Resources: 1. [NeMo Data Designer on GitHub](https://github.com/NVIDIA-NeMo/DataDesigner) 2. [Data Designer Documentation](https://nvidia-nemo.github.io/DataDesigner/) -3. [Owning the Model Stack: Adaptive Concurrency](owning-the-model-stack.md) — companion dev note on the native client layer and AIMD request admission +3. [Owning the Model Stack: Adaptive Concurrency](owning-the-model-stack.md) — companion dev note on the native client layer and AIMD throttling 4. [Async Engine Plan (#346)](https://github.com/NVIDIA-NeMo/DataDesigner/issues/346) — original issue and architecture plan *Want to learn more about NeMo Data Designer? Check out our [documentation](https://nvidia-nemo.github.io/DataDesigner/) and start building your own synthetic data pipelines today.* diff --git a/docs/devnotes/posts/owning-the-model-stack.md b/docs/devnotes/posts/owning-the-model-stack.md index 7c3e51ee3..062c5cb35 100644 --- a/docs/devnotes/posts/owning-the-model-stack.md +++ b/docs/devnotes/posts/owning-the-model-stack.md @@ -8,11 +8,11 @@ authors: Picture this: you're generating a million-record dataset. Thirty two concurrent requests per model, three models in the pipeline, two providers. Everything hums along for the first ten minutes — then one provider starts returning 429s, your retry logic kicks in, and suddenly you're in a feedback loop where retries *cause* more 429s. The run stalls. You restart with lower concurrency, waste throughput for hours, and wonder if there's a better way. -There is. This post is about the native model client layer we built with adaptive request admission (a system that discovers provider capacity at runtime) replacing our dependency on LiteLLM along the way. +There is. This post is about the native model client layer we built with adaptive throttling (a system that discovers provider capacity at runtime) replacing our dependency on LiteLLM along the way. -![From chaotic request flow to calibrated concurrency via adaptive request admission](assets/owning-the-model-stack/native-model-client-hero.png) +![From chaotic request flow to calibrated concurrency via adaptive throttling](assets/owning-the-model-stack/native-model-client-hero.png) ## **Why We Made the Move** @@ -38,9 +38,9 @@ From top to bottom: 1. **ModelFacade**: orchestrates correction loops, MCP tool-calling, and usage tracking. This is the public API. Column generators talk to this layer, and it was untouched during the migration. If you've written a Data Designer pipeline, nothing about your code changes. -2. **ModelRequestExecutor**: the request execution layer. It maps every outbound model call to a provider/model/domain request resource, acquires a request-admission lease before provider execution, releases it on every terminal path, and feeds the outcome (success, 429, or error) back to request admission. +2. **ThrottledModelClient**: the new layer. It's a decorator around `HttpModelClient` — same `ModelClient` protocol, but every outbound call is wrapped with a throttle permit: acquire a concurrency slot before the call, release it after, and feed the outcome (success, 429, or error) back to `ThrottleManager`. This is where adaptive throttling lives. -3. **AdaptiveRequestAdmissionController**: the Additive Increase / Multiplicative Decrease (AIMD) controller used by `ModelRequestExecutor`. A single shared controller is created at pipeline startup and shared across all model clients. It owns the mutable request-admission state — per-domain AIMD counters, global caps, cascade dampening, and cooldown timers. +3. **ThrottleManager**: the Additive Increase / Multiplicative Decrease (AIMD) controller that `ThrottledModelClient` delegates to. A single instance is created at pipeline startup and shared across all model clients. It owns all the mutable concurrency state — per-domain AIMD counters, global caps, cascade dampening, and cooldown timers. 4. **HttpModelClient**: an abstract base class that defines the interface for all provider adapters. It owns the shared `httpx` transport lifecycle — connection pooling, timeouts, and transport-level retries for transient failures (502, 503, 504). Boring but important. @@ -50,7 +50,7 @@ From top to bottom: The boundary between `ModelFacade` and the client layer is defined by canonical types. `ChatCompletionRequest`, `ChatCompletionResponse`, `EmbeddingRequest`, `EmbeddingResponse`, `ImageGenerationRequest`, `ImageGenerationResponse`, and `ProviderError`. These are plain dataclasses. No provider SDK objects cross this line. A `ModelClient` protocol defines the contract that all adapters implement, and that's the only interface the rest of the system sees. -## **Adaptive Request Admission: The Centerpiece** +## **Adaptive Throttling: The Centerpiece** With this client stack in place, we had the foundation to build something that wasn't possible before. Adaptive concurrency control. Let's start with the problem. @@ -95,23 +95,23 @@ Here's a subtlety that bit us during testing. When the system is running at capa Real pipelines aren't simple. A single provider+model combination might serve chat completions, embeddings, and image generation, potentially on different rate-limit budgets. And multiple [model aliases](../../concepts/models/model-configs.md) in your pipeline might point to the same underlying provider and model (say, one alias for generation and another for judging, both hitting the same NVIDIA endpoint). -Request admission handles this with two-level keying: +The throttle manager handles this with two-level keying:
    -![Two-level request-resource keying: global cap per provider+model, independent domain states for chat, embedding, image](assets/owning-the-model-stack/request-keying.png){ style="max-width:75%; height:auto" } +![Two-level throttle keying: global cap per provider+model, independent domain states for chat, embedding, image](assets/owning-the-model-stack/throttle-keying.png){ style="max-width:75%; height:auto" }
    - **Global cap**: keyed by `(provider_name, model_id)`. When multiple model aliases target the same provider and model, the effective max is `min()` of their configured `max_parallel_requests`. This enforces the most conservative limit for shared upstream capacity, because the provider doesn't care what you *call* the model, it sees the same API key. -- **Domain state**: keyed by `(provider_name, model_id, request_domain)`. Each domain (`chat`, `embedding`, `image`, `healthcheck`) maintains its own AIMD state: `current_limit`, `in_flight`, `blocked_until`, `success_streak`, and `rate_limit_ceiling`. Domains float independently but are always capped by the global max. +- **Domain state**: keyed by `(provider_name, model_id, throttle_domain)`. Each domain (`chat`, `embedding`, `image`, `healthcheck`) maintains its own AIMD state: `current_limit`, `in_flight`, `blocked_until`, `success_streak`, and `rate_limit_ceiling`. Domains float independently but are always capped by the global max. The practical effect is that a burst of 429s on the chat route doesn't starve embedding requests, and vice versa. Each route adapts to its own capacity independently while respecting the shared upstream limit. ## **The Retry Boundary** -There's a design choice here that isn't obvious until you think about it, and getting it wrong would break the entire adaptive request-admission system. +There's a design choice here that isn't obvious until you think about it, and getting it wrong would break the entire throttling system. The transport layer (via `httpx` with `RetryTransport`) handles transient server failures like 502, 503, 504, and connection errors. These are hiccups. The server is temporarily broken. Retry with exponential backoff and jitter, and move on. @@ -119,25 +119,37 @@ But **429 is explicitly excluded from transport retries**.
    -![Retry boundary: 502/503/504 retried at transport, 429 passed through to ModelRequestExecutor for AIMD feedback](assets/owning-the-model-stack/retry-boundary.png){ style="max-width:75%; height:auto" } +![Retry boundary: 502/503/504 retried at transport, 429 passed through to ThrottledModelClient for AIMD feedback](assets/owning-the-model-stack/retry-boundary.png){ style="max-width:75%; height:auto" }
    -Why? Because if the retry layer swallows 429s, request admission never learns the provider is overloaded. The whole AIMD feedback loop depends on seeing raw rate-limit signals. A 429 must bubble up to `ModelRequestExecutor` so it can release the request lease as rate-limited, cut the concurrency limit, apply the cooldown, and record the ceiling. The next attempt then re-enters the request-admission path before making another HTTP call. +Why? Because if the retry layer swallows 429s, the throttle manager never learns the provider is overloaded. The whole AIMD feedback loop depends on seeing raw rate-limit signals. A 429 must bubble up to `ThrottledModelClient` so it can call `release_rate_limited()`, cut the concurrency limit, apply the cooldown, and record the ceiling. The next attempt then re-enters the throttle acquire path, waiting for a permit, before making another HTTP call. -The split is clean and worth remembering. Transport retries handle *server problems*. Request admission handles *capacity problems*. The provider is working fine, you're just sending too many requests. Conflating the two is how you get retry storms. +The split is clean and worth remembering. Transport retries handle *server problems*. Throttle adaptation handles *capacity problems*. The provider is working fine, you're just sending too many requests. Conflating the two is how you get retry storms. -One caveat: this boundary behaves differently depending on the execution mode. In async mode (currently experimental, enabled with `DATA_DESIGNER_ASYNC_ENGINE=1`), 429s bypass transport retries entirely and flow straight to `ModelRequestExecutor` for AIMD feedback — this is the full adaptive loop described above. In sync mode, 429s are retried at the transport layer since there's no salvage queue to re-attempt failed rows. AIMD is still wired up but only fires if all transport retries are exhausted. This is temporary — once the async engine graduates from experimental, it will become the default path and the sync codepath will be retired. See [Async All the Way Down](async-all-the-way-down.md) for the full story on the async engine. +One caveat: this boundary behaves differently depending on the execution mode. In async mode (currently experimental, enabled with `DATA_DESIGNER_ASYNC_ENGINE=1`), 429s bypass transport retries entirely and flow straight to `ThrottledModelClient` for AIMD feedback — this is the full adaptive loop described above. In sync mode, 429s are retried at the transport layer since there's no salvage queue to re-attempt failed rows. AIMD is still wired up but only fires if all transport retries are exhausted. This is temporary — once the async engine graduates from experimental, it will become the default path and the sync codepath will be retired. See [Async All the Way Down](async-all-the-way-down.md) for the full story on the async engine. ## **Configuration** -Adaptive request admission is designed to work well out of the box. The defaults are conservative and handle most workloads without tuning. The primary user-facing knob is still `max_parallel_requests` on your model's inference parameters, which sets the hard upper bound for concurrency. AIMD floats below it. +The throttle system is designed to work well out of the box. The defaults are conservative and handle most workloads without tuning. The primary user-facing knob is still `max_parallel_requests` on your model's inference parameters, which sets the hard upper bound for concurrency. AIMD floats below it. + +For workloads where you want to fine-tune the adaptation behavior, `ThrottleConfig` is available on `RunConfig`: ```python import data_designer.config as dd from data_designer.interface import DataDesigner data_designer = DataDesigner() +data_designer.set_run_config( + dd.RunConfig( + throttle=dd.ThrottleConfig( + reduce_factor=0.75, + success_window=25, + cooldown_seconds=2.0, + ceiling_overshoot=0.10, + ) + ) +) config_builder = dd.DataDesignerConfigBuilder( model_configs=[ dd.ModelConfig( @@ -159,11 +171,21 @@ create_result = data_designer.create( ) ``` -Most users will never need more than `max_parallel_requests`. The system adapts automatically, and capacity diagnostics are exposed through runtime logs and `AsyncCapacityPlan` rather than public controller tuning knobs. +| Parameter | Default | What it does | +|---|---|---| +| `reduce_factor` | 0.75 | Multiplicative decrease on 429 (0.75 = reduce by 25%) | +| `additive_increase` | 1 | How much to increase the limit after a success window | +| `success_window` | 25 | Consecutive successes before additive increase | +| `cooldown_seconds` | 2.0 | Default cooldown when no `Retry-After` header | +| `ceiling_overshoot` | 0.10 | How far above the observed ceiling to probe (10%) | + +In practice, the parameter most worth adjusting is `success_window`. A smaller window (say, 10) makes the system more aggressive about reclaiming throughput after a pullback, useful when you know the provider's capacity fluctuates quickly. A larger window (say, 50) makes it more conservative, better for providers with strict, stable rate limits where you'd rather not probe at all. + +Most users will never need to touch any of these. The system adapts automatically. ## **What It Looks Like in the Logs** -Request admission logs every state transition at `INFO` level, so the adaptation story is visible in your terminal as the run progresses. +`ThrottleManager` logs every state transition at `INFO` level, so the adaptation story is visible in your terminal as the run progresses. ``` # When the system hits a 429 and cuts concurrency: @@ -186,9 +208,9 @@ Reading these lines in sequence tells you exactly what happened: where the syste ## **Where This Leaves Us** -This shipped in Data Designer v0.5.4. If you're using Data Designer today, nothing changes in your pipeline code. `ModelFacade` is the same API it's always been. What changes is what happens underneath. The system now discovers provider capacity at runtime, isolates request state per route, and separates retry logic from rate-limit adaptation. Adaptive request admission is enabled by default for all providers. You don't opt in or configure anything; it just starts learning. If you want to see this fully in action, turn on async mode — see [Async All the Way Down](async-all-the-way-down.md) for details. +This shipped in Data Designer v0.5.4. If you're using Data Designer today, nothing changes in your pipeline code. `ModelFacade` is the same API it's always been. What changes is what happens underneath. The system now discovers provider capacity at runtime, isolates throttle state per route, and separates retry logic from rate-limit adaptation. Adaptive throttling is enabled by default for all providers. You don't opt in or configure anything; it just starts learning. If you want to see this fully in action, turn on async mode — see [Async All the Way Down](async-all-the-way-down.md) for details. -For most workloads, the defaults are all you need. Set `max_parallel_requests` to a generous upper bound and let AIMD find the right level. If you're running against a stack that returns 429s, the system adapts to the available capacity without public controller tuning. +For most workloads, the defaults are all you need. Set `max_parallel_requests` to a generous upper bound and let AIMD find the right level. If you're running against a stack that returns 429s, the system adapts to the available capacity without any tuning. If you want finer control, `ThrottleConfig` is there — but the goal is that you spend your time designing datasets, not tuning concurrency knobs. Key Resources: From 74eb432055e9306e299529a896498ef2b6979b62 Mon Sep 17 00:00:00 2001 From: "Eric W. Tramel" Date: Tue, 19 May 2026 20:43:54 -0400 Subject: [PATCH 23/33] chore: restore fern image assets Signed-off-by: Eric W. Tramel --- .../architecture-layers.svg | 12 ++++++------ .../async-all-the-way-down/task-lifecycle.png | Bin 47355 -> 30470 bytes fern/assets/images/architecture-layers.svg | 12 ++++++------ .../images/native-model-client-layers.png | Bin 54814 -> 196456 bytes fern/assets/images/retry-boundary.png | Bin 42573 -> 331171 bytes fern/assets/images/task-lifecycle.png | Bin 47355 -> 30470 bytes ...request-keying.png => throttle-keying.png} | Bin .../native-model-client-layers.png | Bin 54814 -> 196456 bytes .../owning-the-model-stack/retry-boundary.png | Bin 42573 -> 331171 bytes 9 files changed, 12 insertions(+), 12 deletions(-) rename fern/assets/images/{request-keying.png => throttle-keying.png} (100%) diff --git a/fern/assets/async-all-the-way-down/architecture-layers.svg b/fern/assets/async-all-the-way-down/architecture-layers.svg index dec3601a6..122d3d95d 100644 --- a/fern/assets/async-all-the-way-down/architecture-layers.svg +++ b/fern/assets/async-all-the-way-down/architecture-layers.svg @@ -39,21 +39,21 @@ Row-Group Admission & Buffer Management Memory-bounded execution with streaming checkpoints - • Admission-gated row groups + • Semaphore-gated row-group admission • Per-group buffer with cell-level writes • Checkpoint-to-parquet on completion - • Task admission caps in-flight work + • Submission semaphore caps in-flight tasks - + - Request Admission (AIMD Adaptive Concurrency) - Provider/model/domain rate-limit adaptation + ThrottleManager (AIMD Adaptive Concurrency) + Per-model, per-provider rate-limit adaptation • Additive increase on success streaks • Multiplicative decrease on 429s - • Independent request resources + • Independent pools per (provider, model) • Global cap across model aliases diff --git a/fern/assets/async-all-the-way-down/task-lifecycle.png b/fern/assets/async-all-the-way-down/task-lifecycle.png index 1d0330513266760ecdab07c6ea13368b87a0de93..69262a3b50fd2264985d92d52df7e3196fd19583 100644 GIT binary patch literal 30470 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�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 RXDa{z002ovPDHLkV1j<|W32!H literal 47355 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
  • so+-O7eDyUK51T+1B_pu_2p{7j^0z4hca{ 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�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 diff --git a/fern/assets/images/architecture-layers.svg b/fern/assets/images/architecture-layers.svg index dec3601a6..122d3d95d 100644 --- a/fern/assets/images/architecture-layers.svg +++ b/fern/assets/images/architecture-layers.svg @@ -39,21 +39,21 @@ Row-Group Admission & Buffer Management Memory-bounded execution with streaming checkpoints - • Admission-gated row groups + • Semaphore-gated row-group admission • Per-group buffer with cell-level writes • Checkpoint-to-parquet on completion - • Task admission caps in-flight work + • Submission semaphore caps in-flight tasks - + - Request Admission (AIMD Adaptive Concurrency) - Provider/model/domain rate-limit adaptation + ThrottleManager (AIMD Adaptive Concurrency) + Per-model, per-provider rate-limit adaptation • Additive increase on success streaks • Multiplicative decrease on 429s - • Independent request resources + • Independent pools per (provider, model) • Global cap across model aliases diff --git a/fern/assets/images/native-model-client-layers.png b/fern/assets/images/native-model-client-layers.png index 591f8154853444981db297035c5bcc493d1a7c8e..4600519f6c37d92569904982c21095c2ac6aa120 100644 GIT binary patch literal 196456 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

    dTSH*TU8 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�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


    ^6B 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 literal 54814 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%0D?-9U1Pun>#M$+%R4M)dbwzkYq7B1uFu^}X0B zP($QdC}N-*f}+?OO@kLNhGln5U@QiNz%kdkmrm+0W75x^|02li3tYwu=^U+hKtL1l z3*=<@*n`cx;y}Bx$d;WOu#W{x)m!YCUI@`9I~$uTz7N$pXfD8ZLREyzEE;g9@DOV^ zts*Zk52zEQ*_<xDgt!;$i=K5o%>eD5SB1K0VyLCP+I5C<)A%fsA(deke-?f@~sW{AF_#i z_wUnrL)*+Zrkzbpg@BF}z{mCVv0EKKKRnh)s|tm60{3=EuX1mW=_xR71ce0-Y040# z2Eg}rs<-dn^#O*Zg*aiSfLVKSU+DcqO#~2b2|XKJsJ^~l)O^@VjDDJCADm6L$o8ia zr0~JtD636eYno@(QR)yPn2Rr6s7Z^bV>KX@+vKf*&LHso$&)92;$0yggSCJv#AJm8 zw9gCEfLGWCG~UUYn$M*>19;R4dD_JG3KYB;ze0!D5|cCf1)0(_A0D%DNIP*_!)Gb8 ztww8WYj7=06ut1B#XwWe&h-)?sidiHpkvN==lmiHf;zLk-6{ivg9Q+jSe;x49su(J zH(*C-|N8KOa|wKLDo9fYD9)sA$Iwd=!(xZ!Ilv&%eal*WUvZt57VQWso^KSDG#H9? z+be}f>tj+h=J!1$d6k-4SqWNKe)s^54S5KU1U~EUJl2Iz!grIC&E8N3Cnh{$7O=QF z8U+jqOaY2g>s9an31QB`=M>qsa43JPvHIOKBDe*XL!sGos>p|5}#^*}?9r(tMl zh;NR9wkaeZzsJTAOMn+aObrBMb3Gl&kcJKM~~C znNbR44e-NNNLbKq1mbsx9LV22E%5jFcvM7$0qC0y{eq>XB^PJsEgZ52>@T6wJgUH` zWo5y#k?5E73jqy6-AYJ06!7TK~M;2rFNgw1dJi-_ze3Bd5 zT5-+B#@D&I5fIeL%X>)}>aagv^l>Z%S&14A+Rkkl0kN=Hs$wTh;i3b^wQq2c#~SpiJiB~&j$SwV^Kc?eZ#b_mIl8%(MnzqOP+fL;R1}hW z!01!$*v;2Ay|RmJ`uSFTw2JV=?yj!8>{Ije(Gs?Cxk+!Zm?aKF`>mBvo&>Y6y5!0R z#cZSCqtSdfC#MD243yIELDKj2LHl|EP6dV%J&QB4uenO5FbnTvT90DV?cRoSHfWA4W8!RtOchxd;g; zIB^ac7YE#ZZWCjpcHD_gwx`P_7%yQDjSY?)1m;4gfgSPYwCXK4Tp>q`nmt*Nkp$!K z<>ggVQ-dXjLRrL&o<;3msfv9=K!$!HsH;*Rzz;ZAjs175|MKlyCgP{kJ}(dqpzKr& zOe)vZFQp+KHbfq4efw4+N)8$nNS+`9^4BEf%HW0|n`?!}y?a0A2|#iS8glPGh8YxM+Ju3)rUvYxjdI6X@va zm!Zduh>Qf|GswhErge@d^t-NefyG}0bTb_s99S$19fmYhDG)_DPW{sU{Q2zYd)Unh zmxZu}U@Q?*6zWHe1P(yL{xRPE(_0=zCKeWm7wED(Y(N%bxNg9aBM7=WHCF(8K|HoJlmyKpPU%W2b%m{La<>{QjMD zj#A~Rfu20-F3ycA+MCy*rGXj3sS!d#Z%iw{`|>}Z*VEF|6BCLHEKGcAY01gDa9}8Z z%OEC4h$c@p31URx%BRpnko5<~J?0O#Lle$c7f~Z29x(@PDXtRL^tAKF@D?on45BC+ zM9^!@r)QO0G$n26-FK3O7`1TDgm9}*304NCEojI3lnXgYe@4!H#0Dup+PQCHtmdS$ zvU=FzlYBQ{xy)KPQ;e8)@837sDQ|ur$bFj7j_`BUdT9_vKp+j`L@J%PD1Jrg^U`48| z2Z6y7ZjVD(%s5ZbI&k8?IXqI;@-R{a1R0In1O){H$D?_8c!)g~QPE&^2t}C%=@7WlNC9L4n98rlz5xfq1wQkYdaSsG}`)VQRU)x%o()sJ8F6 zl=FQ+q6xv6UHFAyP_Z->1QC*deqP?=hYuH^+^Dim1`LI;M;61mg*(okIC0l)`ZB-}v{He{ z1kbe%ZUtV2)k9jb}EuWK^0l5TkAU7PYX~gV6kn??r@Km0j z`eeNaNx^e@OngWKe2$&1Z7K!{Zrqr}z1v$pULE~54AplZ)T3`PDm~JYj)9~}OdDas zj^JrKJ3$H-!ZD4bCeCfyc~CwrqtL^#SnSz{#$;7ldj)lM8>m!}M_H3wqY%0wxB-3$ zJ`DP>=fj5s)q^`RdMl>~7JVZF`?brLZIP?6a6Y#hF%u24Qx3yfR{6KS)jz+Ze)l=Q zcG?O=wg6%?Gc(J5ej;`n$K_S*>|W=lxhVlrRZ_1c$X+FreM@`OF&oWE3wb{CgVm9t zAxQ~|w$4snjIxwUMw|R55BHhgI`0u8Y*!&l9F>T+M=@wjhK)%hDom>z9EbT%#r)&69+N8 z_GGu%;lnRrOy|$Hf##!9kigd8JWdJ|6%$*<1dE-)147d&VB^DO6C$L4Ky7~p=4ntF z^yHYSn@=RySZ5@#S)-o?v1*ZoeDk|^ai0A9Dw?62#*jeY&k`zyg{f+eM86)G7wBfU zT1g-mmFpvar+poUYM?{>3EmHbJz$U8VifL_O60M-?GId;e7_a@Uw=4leF~w}HJ%h; z#z1+Plw;bnXV1`9#tiJj0LQj%m(9)jOc&6t?ssn{K+iuFnVI8QD?k^{CkGhklg9q= zXE02nu5?hQxta>Zf_=tVe%Xy5-dY9N3Lmz{SJbMiszaL|N*+brK-oxvBYATYQ_(<{ z#=PgMG!Z!v!uLhJbQq+dQX%_^kbf{O(#D`Y#k+@GHDlpF47&xEExS4PA}ebGUjkg& z)zt;e$-`lIPw@!|4=*=82KjO-uOsyG%F4>@u3_JhEfdGEr60{c`w0}QbT-zQEi%&p z_j5NG71^1jGT3RJ!LSTLtYzikG=sub#1{u;#(pnY9Ojh~;|AvAa`b7;ccd(6SekEx z==Ia5PyM1+awl(EYNu*)+x|q%0zij2;}4W_E32zB)>>{#5Z0YVCbZQbrl8eG!K4B? z^1*0Syu^)~;`!)foKG)UkxMQB2^Wk*3(EKTDQ zm-+EGWU$DU6AhTwow_XscoV>nnO&~T%}j`^J9Zp6@S(aIlEOwn){h_g#`aT(g@~Ed zve@d!Y9M+4qn~)HX(WN0snVQGzO#~;JXSM!0)a<4il=1IHPuVni9 z`7xU@qjAA|o?uEA6^cccP`Y8uR4mthOVd_O<>7j!?xe>8xn%Z0Fm!`!(C*6#K3cUA1LPt=Y$rnVr|J1?j@JV(Dyh#m!9sb z!wX6OJ9?D(jP5$`s-Zh&b$(hUNAj5R zV!e|2*V}FZh+`3ni6)GgGczz}qD~>K zVS-;j|E1Hil%U`!!VzTNC>_PpD?MzJ5IFsSlty{Jl$I&RC{qyJbY;t3o zwm|AvVWV=v`~=@bh!M`MNZ54be#A&Wdl6?e=Yi)sW~C7RqLA+U`BTK8FedlnBYtia zf4)YKV3M?(H*4{-;Gl~?)6+~dAc=f>GutgJSU5LYft|SH_Kt$AOXMkQv%^>QWM9a1 zn>@gTDHO0G)@bj%{q*UyN6!8+raK5hWIpoGeWLp^$`bZtLWDRpz+<(esc8oDJd9>) zfYuk4l?M?hg6GxjHE0$^zUT4;4K#eo9XXk7IB}3BZ)r5A0UeDsg0*@a%J_aA)(EqP zekCQYNFw*Fq}-Qs`7I4Twzsw6I0drhQ_E}DP8Cec4zMS-3y`-uXx!tkk18VE#5K`q zP~KV+b@k4Uocw$>@r5=_e`dRKu(P`%ucG19_4aKnnlr#4tCK(Oz&1nc;kW3BFAZb% z2$j|dNQz3H@Xwg+UNL3n*>>W@3E1Bv%_{&)kXp>GW2|AJp`Rj;>2_u6<)!)fd;~!S zaN7a}Kk8C6^GqF-;83{y4x9VXb@)9M3dE%00&pNQ866$n^9GwVsAh8C8RZkfmZ-zc zJ_=#v9fS=ut!aUp7&X{;{63g7$)iVaVxY>n&n((~2f!c2I2Bm{4O2o>kD&(qg^v$0 z`l+Jw%yXUT1!FwGgDq_Nklw?BS~o;p-bhIdswl#atzF(YQ@>Z zo7UB|imKkSD_O`<>EUW@Z4J>(u#J75%hf1K91PID`v+g+w{Q8mx$MXhz_JM?S&)sl zA{Gvmy=8A!ko_!uy(&TNl2YTGw0*h>k_m{KLg6 zSY#ynhw7;Y7?Z-790VZ8|CZ|-dV?Zdn!H3{AX^4nSXu&FmlPMHa_+3DIi;$aj%R^h zeGHkhpZT?xnYFd>85$?h7D#m3A||K;zzn6p4sgN?f-c}uA<%YW9up+yFzFsttZ2}I zTY#t})|0Y^YDd@iQkrHT;uba@lY|CPp+m$p#ZibRq*Zru9)Ojkr3DMiUz*THk_5s1 z;th8whyevn{_Fq-vXwb%`@EvjunT*f`u+;yc8~X~*RP+OO5VSFmsciEa!gATI)|y? zdrqx22naPBFkb<+QzvE)7p76+LVU9NE8ND;fW~=33e6w$(}ivdR6cI82NpA|p1G|* z`NWc&|7_fe0Ij~u8#ZhpMolmqoxOn_p=f2%K6TCch_DO-9R|>J$!^pAA0fUkUmick z$89DgvU(c?Us9yiv`>AMb58$v=6yV8noj1UQ8C=Z6FE!XNBa)0kYn`##c}eP(dXo- zxIckSs2w+-;#Q9c;qTVOL`EK{z(>P`ZUZwnHRoKC$>KBqTD$g;K`OfPE0`FbGs&G# z*OC6Tw0qj-!AI7=M;r~PjI z=r6bc)Mt~pd}TkDcW9ho2L|S&u|iFTqmxbg9{|E&NT}afxz_J@{u(B?UC<0c9B5gf zyC8&esXNE)shdm%dqn(-&G{h(g7N}F0DgRuoSeM!gSP$p-02tGa0$sB>uU~$$Y>kR zUEMam&MS`4fXBR1B!%^=U+c(C#fck*dzhFG;{XB#GSJJ?o@;KHhVPqcs9e{8bjMtP zbD(&(v@p=phC(+4Fb}>OdK^OogT_72cq@huA%B570LxibRb>cr8Vn=gY6mzbuyL}s zN8*!`h=JzBLx~^*fJB3ygmp_DvFj=5vGZcV0z6hP+qc~gwbqLTXL7>n05A9wb4- z28@P;+-q*xh~T|^8cU>7TY9CMVaR6_iaVoxtFS+BhLPBjp=u{Sm=z5Ceb`s10~=8f z!B|r@crjIhfINqR4xmP4O@ec*x6LtY6qH;z!O6OfmZTwl5Mo(>bqLceEG+mvEo^^1 zRd0o^%if;tknvro0)oJ8{O;_7l^{Z2ULWQaP|pcCzEMkfZl=~5VAGuP4BY_iU!`_0 z(gSxd+m0PKhZ?!r*up^;dh}^ops4||fXKzt^KQ@py<48>4VqBe&`)&B(miD(xvZl{{=#<%O>C9l$5pbUAp)Q8Ht7fU=j zZk{)6DvU7}d)ZOa#W->fC$;PSC9L_6rmA2*(n!o;@yN_JEF*ka_wgf;rO)%B~ zOdNKKXl`Kg86^*BsIN^;Ioa6+mj+2+qb!p;Bc?qMz#*LA-6)A{ZEZ20XO3Zh=12W|yY?!}82zkdCK@_`twgAV(1u#1}N@#DCwUEp_F&Cbe zkG=w0u!~RNgK%~pYsfpnsa)uoZP7JC)9@Y2XSYSbwb7n3eYaB=8T6on{9hkPqQ}SZ z{Elfu=>@w7tG&Bt^V!kD?GbFN#Qc}Fu(9A@tdK%v8sh+x1^cSV?^L~to#%dVvCmNgo zK2On$0+A?2h!otqlny-2Jf(|`trV~2D0?P~xVe4nz^`AyC9MZ0o9#TN*5~?eJM_|Zs>R=*?6pSP$g5ymC!Fu{M7G??g#&cy#`JUoe)MLn7izRl6vN#h2pEoAJUMJ|Rbe-!& z+CZ}h0F{##Trx_y&9t~V_gpb;b0J;fgb1KfY7w85;fqBKR|Qegb=jY>uvBg|f)d5dL3vCJL+^%nt2XjmU6 zvP;_aV-XRo;N!-9ATT`u=VALOdQ7!s05xH_=(cu$k z0@WyVkIGXf1oNOu!TA_SmQ7#3J~Kl}jfipo51~8nb)WBsuN?MWk2LSYhGQH2mnhHC z=O3_l@7KYh5r+4G7k|b4IgOM4K1IpsZ{FZDo`3;v^k<%F9@*FZf>VSTQ$l2>o|ld7 z^Q7z^CrZgH*VbEg@%li7O@wO94QU>l-x!UKX~vwga(+zM-94v|9+ge zD2@JUN3J=TZ=5{2ZIFeKC zNQi`$EKck|s7@PH5x^^$P5BdYh^J7dI8IF+fXY2zQ7L}|N56)0r+2A@u2(c#s4^fu?9fJl0 zVP?jGLovBZUTtsxwuIo%LW$xSZHvEy5n+0jX!D`r zVc*q3#01Pe5l3nufG|}HUKLO;PG~2PYcLbcr@hqK-uB2cwyA%SI4LY~w%3gSc%LkV zKPxkeC+wo5*5@d~sH>at&@KctqKU*wi;RzHBjY%f2qJSO2S+}ip;+{D5xX0Q~f~vr@NeZC`$EY)`O(MEEFnJgHTe2NSR8cqDZ04 z36<3Eb7rmeuC?Cp_HMuTkGE}YYx6YR_jO;_c^>C+?8m-Z0mVD}Cr_9#rSHQgvP1LE-*S}OT5f>nOI&0{eEa@=1E?J=je`dTv*gyN zIIVT%w}yZ{E`W+ozJ$y<%8Armak!SvnOe;!?o?JIQbcc9sNdIXWZEnw(D5lLlo+y9Mh_f;iuO}Z6|EbZ9yNm$EAvj=y5H@ zee^~c-=qAOEd38?^w508E?ow+9c?>iMv-+J2)bJRu~VUp`&Opda%DH)T^Bi{KC~a8 zuFj5bWOcADu@RsLa0JQ~>?3@42qjS$>sMVGYgsVrMR9H3zIIdH!`wjxc75EvZCmh> zA62B+crV`=8-be%MOnz>cxNs*<2?+E_ z?5Wred4&NLC(U>QaGH@}ym{PLP5?bUy_Ncb_|Kxvvc9|b({;>0`%OPqiuv%?t&{Ou zs0|pkGHN}Kp^|6#}olFdQ`wC!%LAzn7aqfLPJ~q!Xh~#hg zjvd*a>i+Iw=VD?CQ@uO})#y{L(&DBam6Dno6mfz&;_n7M4Lk$*$}hk!B(vf-3I$kH zj~6aR8}}@&eY-4EO{GjrlS!qGx1zOmtY1vD9b5J{2m(aIL= z1mB48@TY&PAbU!(5+4kNh91rss$9TF*_bFN7VJ@6R8JM8(>@@RK8R~;$_x$UB+p4@ z(7EtA=${N7G)NSDYyyrSA(&?im{-4@UrBjQHSmLDh7z^@=V!fW&`y6Gb_+)-l=m4Y zK2bpZC^*!Yb2&s;4}myvkuY8M_$4MlW1AXQnJAu|et5~EMVC1Fpp)QgNPiDq(Gp_j zx=zxHGV>rO&?Bv2g^(5fA~H~lb8UF9dO$g_EFTwUSSjic@N`-Y@87=dqNH?;yN4w* zWh-DwbZYp#c2LsGsT~B{X~nB?c6N4966vksPD8uDILYnAYBR$V^&>`)UgVW=H97eQ zXRZKo!Gy4S6l(t~7o2&9C@MHu;r2k*A>9FPu(!7#IeIjEY(#31NuMs!P0!m&jFl=9 zPQ_k+RaD*dW|6dU@A5a_N<&`{`X2guYEfZf>xtn(Id&^=K3NkU8O|9g9JM$*0P3LwxVYRV+g~&^gJbK>It;Y-BhlyYv!!)oCaErLnO#PPY&|l{JC?3 zUsTDqY{}lg`{KozE~`3gQK)%&de+l}di+UVPOdBBMUG^WK5Ip5?JfUwO&q9Ix#NJBer^42Kfs-Q`}R#3Ple@C*qt?a^&CSb$Ae#ZVw4yA4BSE}@2CXxde|PlB697% z-8=^ku-GIzm1@Q8EA$2#EbzRw6KA@(l(WS!-H}h}V?1az7eRLx3PJzgy~G&vw0hWXlp^k+_>>3NGJJrGI#BmBIV_wJPWzVX7-6%@o{R} zLuT7m#gd1<2zTY%>9&y2LJu7hR&j=-#zsD%#-MzjMl!%n>p5bDT22ECSonq-RuEtK zcXqW<4=&3+F4zO;)*gRq+q(6BJ|+ZFq5@kYodkT)i_FXl8Yw_za1hIMHc}T+pb4iq ze0E4@xJG+!cJ;$aIo4*^h~0_ zpqS$oNY&^~_<{LVrpjG{3^jD;KyK-w_hV zq{YW9G;l6TA)n%JMvWd#j`0CAx3pDnr=Lq|S=|lFp(Jt+NpqZaoch?4-HiwC*tYG< z&!3pYoKTbNF>19p+Z2AmV1F}0;!zAJk19k$K~dZU?4sFe2fJG{8tWOB^aIF_&@Ji0 zsz4ARD%>*ONNyJ2s@4p=rT&6;4fu}JRqdYPss$(MJ)-78W4pu3K5qV^CW&-sQP1rZ( z<@rE)q#_>BAyRS;xTSOvu*hM>@vfW^vEH9zL%VnDh6eFD^-YR>EKZ<04#_(BCugR_ z%(0jq+vzM z6&NJsnWYFqGkAc1Lj4OcZz^&Il7hXyTAc4iq%USa+i=R-=!cXOpQbE#+UYJx| z#9XRw%LkZ|{A&74q@+$QTT8|K_-qDfry$_MmBh=6YZN?kihjI{gz}1)qPg)5t6P3b zh6PUbk^+b)dDkVP;UyUR1&f)70-ZvC#Y^Lrw(65ttX_>*WBQu+;c9YhF+o<0 zkH3Os$$JSdg?s>QQ){S6|Mn^|?mA?Fk30-rJ19Gaz@Iiy7UV336C)kRe0wNh|Jkc_Lqt%;Ir~KQL4)`!f4XaH=mlbP zw*tNZDN=tFV}^#$u^-GyiLnz~JB_{k$4v9{wO@jt$Ds&od(7Go&-m1D?;nf^D$uyZ z7Kf$1XxTDH0?*Zf=YpMAsujq}$ZR^5aOqOSDIafd?46eJ7u;q(3E+cWIX{U@*f~toHLF^n&BAoPa zT9>zXADV{^8*_&TJfPj?DXC_vZTsz79gHOqz4_jIovK4Q_qBUCF8RxRSLCr{xo7N$ z`1|{RjoHZ&s!OKI$qQKt0N4usXr&sg)I1+b#9R80PH}cM)8(b!y-2_$nSpuP35!h> zv4S{;_#R+?<=^KpCZ`Vc;8EfWO72Bo;CN-ymG8s%=B^w#=jyYlsU5L&GSofyMLd)q zr1Y#R)4ojrsO-jL0A1l4Gy9wv&I$HI94^EHsC7tA1v!8IcJ?8q zUux7i8WOmYp~)gg7#OS5Yp$l!02i8Q1_KA4BVf-jwX~w|!okZjiJ5aw%N22X^5WbZ z#l=1ttoAnzJ&ibnEdiDkUG_X*HA0*H;*TU4KSV*BByb0{_?+pWZU0o)K{h&UYA%a0 zXxlbH$GNnTy_QtQG2L`n`_IZ(=AIygxxeLpYT1r#&_u4Ah81_iQtl;n7mYxbQL7iLFHq$NVRiP{zB*x*&cn%*`Nch*flCHw9w+LP z{CvnSfi-Jt$a<+3*AST56&oqFoXyPM6Uu}-U=~^-Eq50`8LDG=0VHDtDL;tJ0)LIO zd2wxn4=hfr8J(O2=q+n}wMor#cAfe5%eEiNqnvIyRqmRcQvSMwwWgVB74jBu9wQ6# zR}5A2hnFw0-5WP%Oq!0_z4EO6pJ9pGaSy1hiw2zzx%d9$d=ocU`=k+(279e*R=w|5 z@wC)DrJDLKDBmshF^>DBZbYS!l&R`cKz6Bz} z5-JgnK2A8elk}iwx_xtG)(Z(HSgaF?9+Y-aPt~qnM|hS`S$Up4#0!x+91IP$;-uub zVZCuvt+_d3MWAZ8y<4#;+}7i9jYAQqKKr}1!Yj(T3xXd}Q-`G65_7A}hyGi`*! zjz0`p=Wp(~&*>AF?AD$S89GyMN?3x72{uS%HsR2I($kx0uZsE@6||92Itg)m)Dfcx z9N6gzoP`LegQ_a3t#!O3mmdL{9eqD1SVVjC`&Zqyj?8Vh1IToWSH(xi^yct0kXI2+ zlNWB6t~faMPA@Y)$0(Ewe;n>CQ?6a}!={u5<9GVL<|RT)!HEL@_#~%H5E9SqW)9El`+(Zr-s#ulOaT zaDU;V(#flXqyOWDS1B@%M3#=}NdD77K_Q6ejDPoytgO?B4vc=+?A0nAuwN+WATkjW z32_nJSuvTQn~lC(UO#Q^IL-{b^n~e2ZthALFJ;gFB9sY+1aC#uM1Xyi$pZ$Qk)nKB zw_@eoJ@msOoc%PfiDHw>RFSqY6!mH+eW)-LCMY!6DN(=cG-4gEB+#LzY6Vzd25_ZL z_A=+1ul z<9z0Pop7r@=;n>E`g4E z_10nblB09}JhmK{>!IsnZuwpFRlky_wl2C=(OuhIl;2a=zJIK4ostT{nL!)_E2GD2 zt!qg*TfIs?@R4pRVv+T+~exyl7iSY>`XjvIjKP+ARw{;xMlrJ1&M!>@K z_iv(Q10W_qjmjg5myPRTyP`FtOafHGMTsszg0-MJ!pLH$j@^sM*s3ECs~ zbwrs=F4$34ueU$8zdg-Rn35qsfBwWup$SqPjS;pSgKQCfBNv@!v_z}all?#v(qzf%;OX!b{Np-dHgoi5?PTXph%F;B46$#PaxTX z-z^HVIh>UgVL`=Q;WffFn{NPOgp*8$LEPqa?WH}pgJSjvSgqSsEtV}OMvlh}S9=@s z3bJZpu^p{^M4;JYT%CMdK4IZelMmwNL{~<@<7C-_-d1xoAgpmKZN#p;W!rA2Er(lo zo3&kQVo(cHnlZw7xw6By-_KxymVaU~w4468pr8P1W48^#MBq2t?Iacs0`cx-h~Fg~ z(!aY6jV00LQ2HaoB0M`^ToPvRa26DLq?_bxiAhPMH+9h7A(4?M&v9Jm4if@C^OhJ+ z;EUX$=(j!NEU_X_(Wik^96B$XsM$mNR0J{Xc3JEK{lb{wHJ5vIOfZ-p$WwgKDI2i2sr1!c<~B z#?2)`T2~U8wX*P=^P+nfqt8dSbaZmUIo#`GQUCAbWxn;u106(r(`=brcn4G)>@fjzqnP>si;{Q9yw{IL|RHBfAesY&MCfm^uf`d zvTBNwPP<1pEl4;ZZLzpn7alN*OOG@@J-8|TQKS2V7shZPmi#UMtx4hA&#p_+z<;&9 zTJT)j!U}Ev%$bfu+8D<-=nSF7za#zS%eiho_jjI`PZ}u6pT5?oadX`#`%k{@&)d(5 zTq70yc1+WahB1@4ANhd|1p|Vg26kLtu6N3-Hpph&UmEw)4;m?z-V8W!LHl{>0)d-f zw8&~2DjhJtX`1!bhwY4K)o%8ial)h$W?ae$%{{B(ElVfg>~No-BbHiS3cEx$2H2oEFEAIEp0KSQ&_M2SGIkg7r8H9+p=_l z*g$Knk{ZuSTR6si^V&1&=xB>W&y+7d91Q2k_(fCZ{0TT=);G>v<=ei+#0aN7zk7;~ zch$Lfjor66x~v`V&=`^~uV(ahdy8O?ea*cK$$yVg1T_Dz!HWNHzw?NevF5u`yooQs z^^)Z3)Ss>IC#LY<4L3EK@8ds4LFP|S{!}%Dj}tI|qi}`b>(8*yswtU1znYCEMl@ST z{PTJP4wSVs;?p;KNKEN9h?}=VWgLHYT5nVx|F10mt=3}#Mray-BKe7Y`mT!kDPxy%IUr#AX2k|S*7Qo=E{W??0<~zl*o4_Jg_KD_;&t(*tAL{LvI)plopA%l;kUj0Oip9Z~pOLbCL4ftzyTH z5m*Ob|7PYOGM)eY&L4Y+tf8RJOvO~bM7!K9Oe<{I3^40X@|!Oc+1)_+>Pk4Q|7CXI zT)A`q2TLcy62)6+2LMT|p5sEF0TMvW$eQ)$;n7kElD*q=k}M?sFZ)635)%N=wTC!Z z5ZfsPA`;t7!|CL~x8&aBmSCn74c<^D_z#*n988?17RJQ z0ZA37iB~hhgsZT69;W?I`vm1gg^s;?3Ft=HlJ)ODbvw=xK!wP1fHM8*uD}&>MRDHA zeckV$+?|qneYhn}BKv+8lk=30E^2O9)0x=Uh>0&BOVgc8nuJtg2q`1AiNa=wIZez7 z3-%K6+E^;}e~I@`_%d+xSXUv&8@kj6m0$Qs{2S8|od-HC6POrja>UI0Oo@TN0^}!e0j8(aR+K6QUX_*s=BI8PwlvXlJ8|6Bd?=ehqi6BW@-w{G?2 zcRN;wa?cJY4@G^MhhI0DIyqqejQ-_TyWV5aF&f+j8i1)LJ!fv2xap*|9yl+))?(hE zw+M6rju-r!{E*%Xb2peD3u^|(obUc;N@}HU*(7p4YU{@vUjI|H+m!P^h;~^MxvO`- z#z`Re+Yd5yF*XKGsf*CN=dGn=rJ@LRPsW-H899xwXsWrR)fNG&1%=4hnV2eE`)Nw-1zybT1b3@)`Wp4ra-K9c?9lO3;V3a?gjUmHu;{WW zYdkzY2LwncXp=tI|J$V1q0q9K<6AYv%qOhhfB_Hp4eG0|KFQY}be>y+)RA#h4QvrH z+V2}h6czJESS^8SNMk-ws*e(t!GEe;Nm-X`(tdvd;r+4`_rI54tx&nM@>y*if*}50 z2fHNN9bNYgUla49Ml?X1uGVO-fv@y5H+MfO)WpP95H;Yj5f1b|(NLj2DR}bae!~n| za>w0-W=Z)jgnVA_pWa7Ee(RRY6fL)iXHDig=tX9KnW5U`|Mo$T7>`oKjjKzQ6%~2Y z7L{`8O^rU>a)Gv=Jxc?q@YwiPD{alq?*Uz9e&jg@eU+n0W8gN}=f^VSiGU;6ZlTXH zd}05)dg^C-0d6P>*tR$>!W4*dRT!L7I&gr0)=}TW^s8UCuQ|dF0$G@5ZjSQ`2r-7I z_JhVSEA53wYpB-k#Np%l7a%V%V!0+;KO`AEGwf69tqMtbZ;4yy0F3K-WREu#{8OjM zAc(A=qPJQU{zf|M=m@p*`_$xM_=H#euUV?qqeg>~6oaDOPw>#`<$W|Xv|oAjjF`le zCl~UBD)hjhqa%Rg*V(V6>TDkOmn93(Wt|c+2Zq9`Rp01vfLc;Dg@$%w)L4?ovPY4B zJ)7xIyA38o)I|wCGST^$BC;YRQ=0X9f==~0jgd)+5Ed_8nvPM;9P8*ybSCfyo_6H; zzmHSx*uHh^_@tzJi_hmB_OII(;P`X@=ucr}@<0i){m>oG26 zf>84TIq_VV2zRd+j~-dHkz$21->&lg`&0M(9{u7EFarFzaIAu{+3cH#zF~KBO)m)|a)~Hj< zWps7@)TJalx~p@B2P@>IrR(ZepO1-&VS>%4?v$-sYrKGnbzUrg&`(C~+?R-9s%qPJ z?6BOSly#!L<=K9;3rsat#%xzRt1~%^!_&41N{`>98G``cvZ!`hV{fafQfQj={xvrK zLFK@0eC9#py>Z_5j~;Dml;ada2lMjf5$lX_Ww1;sUgqYuKi7nX0U7UBo%DQWY)+?% zK3FR!JG+WwzHBW`a5x#w^Ejgv1Ax`MwTt-~$I1NpQ>JVKe`?Tm^LRi{(=@R)OY-W~ ztD6qR0>9IU&yhh+9@<>&4WW){_UxKr^{R=9A0aECTWS2 zdTKv}nAH{UWKBi@I;MEtcx?JdV56cd!|)*PP}D~NBhC9upV74}I#ey&gxNxHNJyVF zMs@xP>0EabKjjwR}niaD$nIUGym!soz5JC{qL2h|boWDliU({aw)T#tvJUnVm zR0Jm*nMyeEjK3kC!Q64LoA1M^n*DWOgX0+nz%=*}(-oWP>rJuD*IPZr@v5d17zOBv z>ov3EF){lO9cpmUif*}P?b-*vos6NQz%}C78XzXR23$5jeDGi~ERkEknrO1tqV5W< zhT-_&;P8it8-3lDEi(k4qZeiEyRJ`|WkuMoN0@-nyarm`_WmvBnAx@ANVLZmont%W^~@4?;KSc5wItl}nV>gozDT3D04-W5nhfI!Ta0fuJy@8LF_*SQ zWluu$$m*%BOa-q22NC68Tv`OPY8MoRhvI8yKBd3!0q)%-t2%M-Rx}UYXj<|p@;c2z z(XqyThl~U4NT4iN%+NJ_g@uD6VlEw=vI}2$UAiZtGaP%SX8|l;w=q|FphU4nb>ZZx zq;RiULBwzQwrw|jd$W_2dFRe)JScL12L)-*I%$q}6T%O? z!6WWU;6z})DJ&eA6(TXawm~>y(Ysu_wD=ESBi3@pb|$hgw~ySUys~l~c?L>tk})bvf?vE*o~>b`$bniNtfRHB+|^{gU@ zwIHZ&n$+M1AZK6X5MO= z^zVp;V&F3gU8(Q4ogjUy8(1#1)-UrdYO&xBY}dtPW@Tj|?qPYl?@&h2ME0jEkNkvX z_>`O;IDfL@CJqKNP(j$gZ~2|M(Qq%xr}A=dbrT7i7#0kXd&P=(XqY*{qlYN3^Y(7j zeb~LbcVp0$5^zh=e;SStKc%^2=gt>c*^;9`6+`d2fNm?`r%0$wDgARk2 z7;GLF&rYR2gW7b4e*t#3my^qK|0OEak`k@770B* z+$1Ul;Y|lSh1|NRxY#*mwdRY95-Y=H;ZJa`v|U{BU>?t_5LBL>-q(HW)~#eg-{EsB zbk@mo@8}LIf=0-H&FI7ioFMGYKrgFW!8nj9IT_;C0)@gx!*9?>#^u<~bEDA+%a zA9V2THjnG=in&iQ*8}3reb?}RjV6OZ)=@)HESO=%K?R)|%6&vw@0hI`qNSnnjt0K< zR|AOKO^v^qjgE_w#x?UPQ!a-rfwV~r{N6hq^6gEAC-WC`G{U7x-S8{{6+z3f(o* zwqkl>Iu3om-SjhkO-iEM47XfDN(W(>B4;lQ9-4fI)#L<~N4JJL|GZuNIK@pAp$rSI z!AfHJj@5_wNF2joAQ1!mAJU%}2=@x9hVZBR)ML>6TQr3Ih&+582sU)*Mh_aalCzgd z+@_ao_IKi|hAsr1TKD4QY4GzoFVKYw4-vRG@CeE)DnuDUzcV8v1NC9uAO>(_$u4G@ z{Hm=rXYL^gdU5e+4)^E3c&U8{4)BD8WgcQY4tf$NXr_VrwpJAe*ibP@fte11Ir{OV z;B-?OFW8fo(uVM9!tKK+4LCiaF@L+qygoGa=jHUk>WDT4z zPo6vxcC^+)EzLe`sNWYE$%Zge<+f?!^2PIFb2ydw1>L z{XD%o_>S<5;H`0-d97J9&D0cFU`ldPIw?b-8WJY+Y|)%Sokec3y7b7|ydhUys5y8N zv`g(!8halisala3!*A*dup8t-N(EGKwh5 z8o{dVNT?-e5vd!-;rYlVk?Z0pKQe9w3-YmgBZLkdT&d^%S-eC%F(Tp9A;TH;Wh(S^ zb#*i6l{DRcIdmv=gjXLwjzRE-?%aw;4-1g2I+hM<)hU&3-3|l?e_>ji*2K1>)_%Cm zd~3HTWA#OQyvj2nwdl}_R1`$VKXXFskKIZ?N+EHWA8qaBN0&@9|p8>n{hYuZk|D8_tUsp%O zA7N2FV|NbdX_`+C$&C{vD|iXSLe^1I-lGmzX6QIojv(K*G@WrUWaCZ0_1`(0WNFDr zcEl2Fvz-|jY^u14tv*GQV{I&hq5%;{L&wT> zKK7jthZCl~7nPKj!uM(f7>4!5rt0V+t3Bq!n2u2znqq2tV6f|sKSraJUH(ni zD7(_qeltpR&qgh7o35tjRNwHZ)wxE|H9D|cnPdYKVIhG4AvOmIHnl$q>UdNgD^sdY z0#-O3C|sa!OgwZ)a92?C{9`tx+pJrMU;@oPV(J@n>=^CiP$AyQsTLEYVNP;ZoMkM5 znjEYBDk1}Db5L7Kj!#rj4w`=O4plZ9=&S3$#|8zN6{T@(E(I>pIwhPeG4p_p#Dqqr z>KfLw_89rGdmnd_VX(|K@QM<4WoVUvy6-JLo_#l)*kf8NBN8kMiT|8vIr4M}%16j( zJZ~|jS?A8^)0Qb(K#1Pt8c-}L&$K^gyL25F?it5Nb=eLu7H}i;_U(ndIf0tH3Z1g@ z~Z#Kjabf0=qP|Is5<=zrB1{?G}UUVu!HV7kE7 zH5xAcym>SKz=ELTvlKT03dQ=J%0-81`HA=T1!R+e%x%g(N@tAL0=k zlY)u+jQktXOg@DOcFEo8SgqyW$M^QbK7^Pf@(j{JQ-xk{5_!_V0AenDtYJ5`rYrv% z@t6bOL2ZeQL}Q9b#3U2%@-)#!h$Tl|;D{op0 z?|II7m`k&0R9 z36&uW^Lf^NjEYK2OYh$&rT##%NkvJ00%ZN0QpKug8SC!ud&5N7w_C938;MSB`?v~E}AUweWWD&ls@s3DN~5P zNf~$-+s_q0i4p&uz1{tGfLqz6))Ebc_OddP&?c$B`t zaO=%`JR09QV1i`s65B@SkunmBxZvK*hLdan+uN5}>z~vlWqhP7Q!*|5{x)d0ubW>O z-M@GIokqHlEv$c$QlV;^;W)dohKp&w=tmBnCF+Z>zba|@qVdCDciNh<`tOIOALyJqr-QtUjCose70o{xqoy!dWqG4~?dlNe z+Y^8FlDO;=AJQmG+Ro*m^O(WXZ#Mrhk_3qF9i1Z6HO*=H^Ibnr9=Z@bq#O58iPs4@ z!aG{?yD6>rNf+_W*5aGTf)#@29c&7Fr*1KCaa{|Eskqw#^JG7G7OYgrDM=k@r}3iw zF4tbYB$ApSUR|<&(!tVgTX!+IK(a(U5M$eCIL{_ujkn71KXKn9=AAlkx=CF8uEm|RJHLCqdrq9h&qj$SeowhY?R8a! zo+{uTO5!*6wdFTVR(IrIO5z?ro_Mg=n{Dp=WbZ`ridu_DTDUiG%#>dGnGSf3TPSQ1SlFe{bC5K<9wMW8%j;;#1s{`QYjNqh!rScjr60U045< z*e#iq@#uP6i7~HrFG1^k>FmMF{fynshiJ~-R@+iyVWKCI=%;I??y`0%YLL`)?^u(! zx?n+Q3rXl^E^nW!tW#Y5pcb`Kj|RP2Y*sw%>aLmXB#~kz&kbL*@_X0<{-{ll%}Lg~ zPESNNUn7>$KG*vW(F@HF_6o4~>S&Q@(t*CwWN~pJdZ}TXwT4PoZMWT|BYD)9S5XV9 zH(2f`d2>WbZI@KQCq7}o-9dYDuSjL&he%HtCV3>*ntp4;)9nL%gWt(W7Q_!K8qh+r z`sNdT$wJfg76+sy29xz9#y^ddx%4GDJdVQKri2s>c8?SI!VH`+vx+PH$~)B zQ_~bQU?erP`p7`5pE`K7RUL7G-cq2W6R!+gpOJ}Y$Z8F~i2-67odVTRlB@s_EyH{- zpYnd&V*m`=u}@uoMZ23$E;^E(@Z-ATuam#7w_3e>$9lbRa*MJFVCF(0He}S~O=?5s zOeCQ^26LyiYk#2i=%S)x@922O&}jJZ;SeksQc8MBVVO)bwS4~Mq)EM8|M`XuChg#ns3|$t&ypZ2DLcv9hrm#@7dbx*|M>=-t z60v8`tFp4=A5R{E#gEskpu655OyWvziQmR};S*2@S4EVwvft)SJ(c&N-B=w>t?nvTZMMt@cUkCK1okL$!aRhkEBz1IWQeJ;Iqeb z!6Aro@Qk$=fD}A=+9jE?q&;MmS}$}x>Jd+qef6163e?Cg#IPYyZPVt>us-L+{p!Z> z#M6#VOYuhHNuUg~0LuV!U={%wUmY#ZveZAAET?yU*h*7YAY9NPwmoK{tS2YKoaGL} zZ6H@fS8v`7tBtmN9|{$^7&vF3=|DnT%*%S#Wp)&+}QvX1;KN>!hZ$8e{D`d%9Y0J<*2q@O4 z5Bav}0MeB6ugRT^0=n!T4oxyGTWWbkp*Ny@>C;CTr*T7LVTlS9aqY)Z%+w9*{s864 zScuLmA&flX4hb0$%mwOg5E^vYL;l$IC zE}-uLXh*USIK^rcxGkx>koBFK(aS9!pWH34Z!B1*d)O+T@yQ=cf7y&tJ}PfQGSs$yT@Nq43
    OFn80$4) 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 z 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�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 RXDa{z002ovPDHLkV1j<|W32!H literal 47355 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
  • so+-O7eDyUK51T+1B_pu_2p{7j^0z4hca{ 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�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 diff --git a/fern/assets/images/request-keying.png b/fern/assets/images/throttle-keying.png similarity index 100% rename from fern/assets/images/request-keying.png rename to fern/assets/images/throttle-keying.png diff --git a/fern/assets/owning-the-model-stack/native-model-client-layers.png b/fern/assets/owning-the-model-stack/native-model-client-layers.png index 591f8154853444981db297035c5bcc493d1a7c8e..4600519f6c37d92569904982c21095c2ac6aa120 100644 GIT binary patch literal 196456 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

    dTSH*TU8 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�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


    ^6B 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 literal 54814 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%0D?-9U1Pun>#M$+%R4M)dbwzkYq7B1uFu^}X0B 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
    OFn80$4) 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 z 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 v{P&Fg_lCin@ZawXCgJ}lb73s`mPTyqSe|< Date: Tue, 19 May 2026 20:45:09 -0400 Subject: [PATCH 24/33] chore: restore latest devnotes index Signed-off-by: Eric W. Tramel --- fern/versions/latest/pages/devnotes/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fern/versions/latest/pages/devnotes/index.mdx b/fern/versions/latest/pages/devnotes/index.mdx index 504c4b6f7..1d5fe68da 100644 --- a/fern/versions/latest/pages/devnotes/index.mdx +++ b/fern/versions/latest/pages/devnotes/index.mdx @@ -44,7 +44,7 @@ Welcome to NeMo Data Designer Dev Notes — in-depth guides, benchmark write-ups } From 9dd92ab9c9673dcd0f974a462f33f1e5e38c5866 Mon Sep 17 00:00:00 2001 From: "Eric W. Tramel" Date: Wed, 20 May 2026 13:58:14 -0400 Subject: [PATCH 25/33] Add request admission tuning config --- .../src/data_designer/config/__init__.py | 7 +- .../src/data_designer/config/run_config.py | 75 ++++++++++++++++-- .../tests/config/test_run_config.py | 60 +++++++++++++- .../src/data_designer/engine/capacity.py | 2 + .../data_designer/engine/models/factory.py | 28 ++++++- .../engine/models/request_admission/config.py | 1 + .../models/request_admission/controller.py | 57 +++++++++++-- .../engine/models/request_admission/limits.py | 2 + .../request_admission/test_controller.py | 63 +++++++++++++++ .../engine/models/test_model_registry.py | 30 +++++++ .../tests/engine/test_capacity.py | 7 +- ...ncSchedulingRequestAdmissionClassModel.png | Bin 120203 -> 121362 bytes ...ncSchedulingSupportContractsClassModel.png | Bin 90775 -> 91516 bytes plans/645/async-scheduling-epic.puml | 2 + plans/645/capacity-model.md | 4 +- plans/645/contracts.md | 8 +- plans/645/migration-and-cleanup.md | 2 +- plans/645/module-ownership.md | 2 +- plans/645/request-admission.md | 5 +- 19 files changed, 329 insertions(+), 26 deletions(-) diff --git a/packages/data-designer-config/src/data_designer/config/__init__.py b/packages/data-designer-config/src/data_designer/config/__init__.py index d3af55838..29c300e75 100644 --- a/packages/data-designer-config/src/data_designer/config/__init__.py +++ b/packages/data-designer-config/src/data_designer/config/__init__.py @@ -58,7 +58,11 @@ ProcessorType, SchemaTransformProcessorConfig, ) - from data_designer.config.run_config import JinjaRenderingEngine, RunConfig # noqa: F401 + from data_designer.config.run_config import ( # noqa: F401 + JinjaRenderingEngine, + RequestAdmissionTuningConfig, + RunConfig, + ) from data_designer.config.sampler_constraints import ( # noqa: F401 ColumnInequalityConstraint, ConstraintType, @@ -177,6 +181,7 @@ "SchemaTransformProcessorConfig": (_MOD_PROCESSORS, "SchemaTransformProcessorConfig"), # run_config "JinjaRenderingEngine": (f"{_MOD_BASE}.run_config", "JinjaRenderingEngine"), + "RequestAdmissionTuningConfig": (f"{_MOD_BASE}.run_config", "RequestAdmissionTuningConfig"), "RunConfig": (f"{_MOD_BASE}.run_config", "RunConfig"), # scheduling metadata "SchedulingMetadata": (f"{_MOD_BASE}.scheduling", "SchedulingMetadata"), diff --git a/packages/data-designer-config/src/data_designer/config/run_config.py b/packages/data-designer-config/src/data_designer/config/run_config.py index a67740aed..2620954cf 100644 --- a/packages/data-designer-config/src/data_designer/config/run_config.py +++ b/packages/data-designer-config/src/data_designer/config/run_config.py @@ -3,7 +3,7 @@ from __future__ import annotations -from typing import Any +from typing import Any, ClassVar from pydantic import Field, model_validator from typing_extensions import Self @@ -19,6 +19,67 @@ class JinjaRenderingEngine(StrEnum): SECURE = "secure" +class RequestAdmissionTuningConfig(ConfigBase): + """Advanced request-admission AIMD tuning for model API calls. + + Most workloads should tune model capacity with ``max_parallel_requests`` on + inference parameters. These fields adjust the adaptive recovery behavior + below that cap and are intended for provider/runtime support cases. + """ + + _LEGACY_FIELD_NAMES: ClassVar[dict[str, str]] = { + "reduce_factor": "multiplicative_decrease_factor", + "additive_increase": "additive_increase_step", + "success_window": "increase_after_successes", + "rampup_seconds": "startup_ramp_seconds", + } + + multiplicative_decrease_factor: float = Field( + default=0.75, + gt=0.0, + lt=1.0, + description="Factor applied to the adaptive concurrency limit after a provider rate-limit signal.", + ) + additive_increase_step: int = Field( + default=1, + ge=1, + description="Slots added to the adaptive concurrency limit after each successful recovery window.", + ) + increase_after_successes: int = Field( + default=25, + ge=1, + description="Successful releases required before additive recovery increases the adaptive limit.", + ) + cooldown_seconds: float = Field( + default=2.0, + gt=0.0, + description="Fallback cooldown after a rate-limit signal when the provider omits Retry-After.", + ) + startup_ramp_seconds: float = Field( + default=0.0, + ge=0.0, + description=( + "Startup ramp duration. When greater than zero, each request resource starts at one " + "concurrent request and linearly ramps to its configured cap unless a rate-limit aborts the ramp." + ), + ) + + @model_validator(mode="before") + @classmethod + def normalize_legacy_field_names(cls, data: Any) -> Any: + """Accept old throttle-era names inside the new request-admission DTO.""" + if not isinstance(data, dict): + return data + normalized = dict(data) + for old_name, new_name in cls._LEGACY_FIELD_NAMES.items(): + if old_name not in normalized: + continue + if new_name in normalized: + raise ValueError(f"Specify either {old_name!r} or {new_name!r} for request admission tuning, not both.") + normalized[new_name] = normalized.pop(old_name) + return normalized + + class RunConfig(ConfigBase): """Runtime configuration for dataset generation. @@ -55,10 +116,13 @@ class RunConfig(ConfigBase): fewer Data Designer-specific restrictions. ``secure`` uses Data Designer's hardened sandbox with additional AST, filter, and output guards. Default is ``secure``. + request_admission: Advanced AIMD request-admission tuning for provider/model calls. + Most users should leave this unset and tune ``max_parallel_requests`` instead. Notes: - Request admission is engine-internal in V1 and is not exposed as a - public run-config knob. + Request-admission controller internals remain engine-owned. This field + exposes only the supported tuning DTO and does not expose controller + mutation APIs, leases, queues, or pressure snapshots. """ disable_early_shutdown: bool = False @@ -78,14 +142,15 @@ class RunConfig(ConfigBase): "`native` uses Jinja2's built-in sandbox; `secure` uses Data Designer's hardened sandbox." ), ) + request_admission: RequestAdmissionTuningConfig | None = None @model_validator(mode="before") @classmethod def reject_removed_throttle_config(cls, data: Any) -> Any: if isinstance(data, dict) and "throttle" in data: raise ValueError( - "RunConfig.throttle was removed. Request admission is now managed internally by the async " - "scheduling engine; remove the throttle field from your run config." + "RunConfig.throttle was removed. Use RunConfig.request_admission with " + "RequestAdmissionTuningConfig for supported advanced AIMD tuning." ) return data diff --git a/packages/data-designer-config/tests/config/test_run_config.py b/packages/data-designer-config/tests/config/test_run_config.py index a90a2d57a..e44b69e63 100644 --- a/packages/data-designer-config/tests/config/test_run_config.py +++ b/packages/data-designer-config/tests/config/test_run_config.py @@ -6,7 +6,8 @@ import pytest from pydantic import ValidationError -from data_designer.config.run_config import JinjaRenderingEngine, RunConfig +import data_designer.config as dd +from data_designer.config.run_config import JinjaRenderingEngine, RequestAdmissionTuningConfig, RunConfig def test_run_config_defaults_to_secure_jinja_renderer() -> None: @@ -21,3 +22,60 @@ def test_run_config_accepts_native_renderer() -> None: def test_run_config_rejects_removed_throttle_with_targeted_message() -> None: with pytest.raises(ValidationError, match="RunConfig.throttle was removed"): RunConfig(throttle={"max_concurrent_requests": 1}) + + +def test_request_admission_tuning_config_accepts_canonical_fields() -> None: + config = RequestAdmissionTuningConfig( + multiplicative_decrease_factor=0.5, + additive_increase_step=2, + increase_after_successes=7, + cooldown_seconds=1.5, + startup_ramp_seconds=30.0, + ) + + assert config.multiplicative_decrease_factor == 0.5 + assert config.additive_increase_step == 2 + assert config.increase_after_successes == 7 + assert config.cooldown_seconds == 1.5 + assert config.startup_ramp_seconds == 30.0 + + +def test_request_admission_tuning_config_accepts_throttle_era_field_names() -> None: + config = RequestAdmissionTuningConfig( + reduce_factor=0.5, + additive_increase=2, + success_window=7, + cooldown_seconds=1.5, + rampup_seconds=30.0, + ) + + assert config.multiplicative_decrease_factor == 0.5 + assert config.additive_increase_step == 2 + assert config.increase_after_successes == 7 + assert config.cooldown_seconds == 1.5 + assert config.startup_ramp_seconds == 30.0 + + +def test_request_admission_tuning_config_rejects_duplicate_legacy_and_canonical_fields() -> None: + with pytest.raises(ValidationError, match="Specify either 'reduce_factor' or 'multiplicative_decrease_factor'"): + RequestAdmissionTuningConfig(reduce_factor=0.5, multiplicative_decrease_factor=0.75) + + +def test_run_config_accepts_request_admission_tuning() -> None: + run_config = RunConfig(request_admission=RequestAdmissionTuningConfig(startup_ramp_seconds=10.0)) + + assert run_config.request_admission is not None + assert run_config.request_admission.startup_ramp_seconds == 10.0 + + +def test_run_config_accepts_request_admission_tuning_dict_with_throttle_era_names() -> None: + run_config = RunConfig(request_admission={"reduce_factor": 0.5, "success_window": 7, "rampup_seconds": 10.0}) + + assert run_config.request_admission is not None + assert run_config.request_admission.multiplicative_decrease_factor == 0.5 + assert run_config.request_admission.increase_after_successes == 7 + assert run_config.request_admission.startup_ramp_seconds == 10.0 + + +def test_request_admission_tuning_config_is_exported_from_config_package() -> None: + assert dd.RequestAdmissionTuningConfig is RequestAdmissionTuningConfig diff --git a/packages/data-designer-engine/src/data_designer/engine/capacity.py b/packages/data-designer-engine/src/data_designer/engine/capacity.py index 4dc1abb0b..9ff8281bc 100644 --- a/packages/data-designer-engine/src/data_designer/engine/capacity.py +++ b/packages/data-designer-engine/src/data_designer/engine/capacity.py @@ -55,6 +55,7 @@ class RequestAdmissionConfigSnapshot: multiplicative_decrease_factor: float additive_increase_step: int increase_after_successes: int + startup_ramp_seconds: float default_queue_wait_timeout_seconds: float | None @classmethod @@ -68,6 +69,7 @@ def from_config(cls, config: RequestAdmissionConfig) -> RequestAdmissionConfigSn multiplicative_decrease_factor=config.multiplicative_decrease_factor, additive_increase_step=config.additive_increase_step, increase_after_successes=config.increase_after_successes, + startup_ramp_seconds=config.startup_ramp_seconds, default_queue_wait_timeout_seconds=config.default_queue_wait_timeout_seconds, ) diff --git a/packages/data-designer-engine/src/data_designer/engine/models/factory.py b/packages/data-designer-engine/src/data_designer/engine/models/factory.py index 6531d1dbd..b68178af9 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/factory.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/factory.py @@ -14,6 +14,7 @@ from data_designer.config.run_config import RunConfig from data_designer.engine.mcp.registry import MCPRegistry from data_designer.engine.models.registry import ModelRegistry + from data_designer.engine.models.request_admission.config import RequestAdmissionConfig def create_model_registry( @@ -40,8 +41,8 @@ def create_model_registry( client_concurrency_mode: ``"sync"`` (default) or ``"async"``. Forwarded to native HTTP adapters so each client is constrained to a single concurrency mode. - run_config: Optional runtime configuration. Request admission uses - engine-internal defaults in V1; no public run-config knob is exposed. + run_config: Optional runtime configuration. Public request-admission + tuning is translated to the engine-internal request-admission config. Returns: A configured ModelRegistry instance. @@ -51,10 +52,13 @@ def create_model_registry( from data_designer.engine.models.clients.retry import RetryConfig from data_designer.engine.models.facade import ModelFacade from data_designer.engine.models.registry import ModelRegistry + from data_designer.engine.models.request_admission.config import RequestAdmissionConfig from data_designer.engine.models.request_admission.controller import AdaptiveRequestAdmissionController - _ = run_config or RunConfig() - request_admission = AdaptiveRequestAdmissionController() + resolved_run_config = run_config or RunConfig() + request_admission = AdaptiveRequestAdmissionController( + _request_admission_config_from_run_config(resolved_run_config, RequestAdmissionConfig) + ) def model_facade_factory( model_config: ModelConfig, @@ -85,3 +89,19 @@ def model_facade_factory( request_admission=request_admission, retry_config=RetryConfig(), ) + + +def _request_admission_config_from_run_config( + run_config: RunConfig, + config_cls: type[RequestAdmissionConfig], +) -> RequestAdmissionConfig: + tuning = run_config.request_admission + if tuning is None: + return config_cls() + return config_cls( + cooldown_seconds=tuning.cooldown_seconds, + multiplicative_decrease_factor=tuning.multiplicative_decrease_factor, + additive_increase_step=tuning.additive_increase_step, + increase_after_successes=tuning.increase_after_successes, + startup_ramp_seconds=tuning.startup_ramp_seconds, + ) diff --git a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/config.py b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/config.py index 2796698c5..be209029a 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/config.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/config.py @@ -17,4 +17,5 @@ class RequestAdmissionConfig: multiplicative_decrease_factor: float = 0.75 additive_increase_step: int = 1 increase_after_successes: int = 25 + startup_ramp_seconds: float = 0.0 default_queue_wait_timeout_seconds: float | None = None diff --git a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py index 8494d7d69..ab13260a5 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py @@ -37,6 +37,7 @@ logger = logging.getLogger(__name__) +DEFAULT_MIN_LIMIT: int = 1 RequestDenyReason = Literal[ "no_capacity", "cooldown", @@ -505,6 +506,7 @@ def _denial_for(self, item: RequestAdmissionItem, now: float) -> RequestAdmissio if provider_model not in self._global_caps: return RequestAdmissionDenied(item=item, reason="hard_policy_denial", diagnostics={"unregistered": True}) state = self._get_or_create_state(resource) + self._apply_startup_ramp_locked(state, resource, now) if now < state.blocked_until: return RequestAdmissionDenied( item=item, @@ -571,6 +573,7 @@ def _apply_outcome( ) -> None: effective_max = self._effective_max_for_resource(resource) if outcome.kind == "rate_limited": + state.startup_ramp_active = False prev_limit = state.current_limit should_decrease = admitted_adaptive_limit <= prev_limit state.consecutive_rate_limits += 1 @@ -596,6 +599,11 @@ def _apply_outcome( ) ) return + if state.startup_ramp_active: + self._apply_startup_ramp_locked(state, resource, now) + if outcome.kind == "success": + state.success_streak = 0 + return if outcome.kind == "success" and now >= state.blocked_until: prev_limit = state.current_limit state.consecutive_rate_limits = 0 @@ -641,20 +649,59 @@ def _decrement_waiter(self, item: RequestAdmissionItem) -> None: def _get_or_create_state(self, resource: RequestResourceKey) -> AdaptiveRequestLimitState: state = self._domains.get(resource) if state is None: - effective_max = self._effective_max_for_resource(resource) - initial = self._config.initial_limits.get(resource, effective_max) - state = AdaptiveRequestLimitState(current_limit=max(1, min(initial, effective_max))) + initial = self._initial_limit_for_resource(resource) + ramp_active = self._config.startup_ramp_seconds > 0.0 and initial > DEFAULT_MIN_LIMIT + state = AdaptiveRequestLimitState( + current_limit=DEFAULT_MIN_LIMIT if ramp_active else initial, + startup_ramp_started_at=time.monotonic(), + startup_ramp_active=ramp_active, + ) self._domains[resource] = state return state + def _initial_limit_for_resource(self, resource: RequestResourceKey) -> int: + effective_max = self._effective_max_for_resource(resource) + initial = self._config.initial_limits.get(resource, effective_max) + return max(DEFAULT_MIN_LIMIT, min(initial, effective_max)) + def _effective_max_for_resource(self, resource: RequestResourceKey) -> int: provider_model_cap = self._global_caps.get(resource.provider_model_key) - static_cap = provider_model_cap.effective_max if provider_model_cap is not None else 1 + static_cap = provider_model_cap.effective_max if provider_model_cap is not None else DEFAULT_MIN_LIMIT clamp = self._config.max_limit_clamps.get(resource) - return max(1, min(static_cap, clamp if clamp is not None else static_cap)) + return max(DEFAULT_MIN_LIMIT, min(static_cap, clamp if clamp is not None else static_cap)) + + def _apply_startup_ramp_locked( + self, + state: AdaptiveRequestLimitState, + resource: RequestResourceKey, + now: float, + ) -> None: + if not state.startup_ramp_active: + return + target_limit = self._initial_limit_for_resource(resource) + if self._config.startup_ramp_seconds <= 0.0 or target_limit <= DEFAULT_MIN_LIMIT: + changed = state.current_limit != target_limit or state.startup_ramp_active + state.current_limit = min(state.current_limit, target_limit) + state.startup_ramp_active = False + if changed: + self._sequence += 1 + return + + elapsed = max(0.0, now - state.startup_ramp_started_at) + previous_limit = state.current_limit + if elapsed >= self._config.startup_ramp_seconds: + state.current_limit = target_limit + state.startup_ramp_active = False + else: + fraction = elapsed / self._config.startup_ramp_seconds + ramp_slots = math.floor((target_limit - DEFAULT_MIN_LIMIT) * fraction) + state.current_limit = min(target_limit, DEFAULT_MIN_LIMIT + ramp_slots) + if state.current_limit != previous_limit or not state.startup_ramp_active: + self._sequence += 1 def _snapshot_locked(self, resource: RequestResourceKey, now: float) -> RequestPressureSnapshot: state = self._get_or_create_state(resource) + self._apply_startup_ramp_locked(state, resource, now) blocked_until = state.blocked_until if state.blocked_until > now else None return RequestPressureSnapshot( captured_at=now, diff --git a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/limits.py b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/limits.py index ad6f779d7..7df1bc278 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/limits.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/limits.py @@ -17,3 +17,5 @@ class AdaptiveRequestLimitState: consecutive_rate_limits: int = 0 active_lease_count: int = 0 last_outcome: str | None = None + startup_ramp_started_at: float = 0.0 + startup_ramp_active: bool = False diff --git a/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py b/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py index c0c9a5801..c9767f02a 100644 --- a/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py +++ b/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py @@ -213,6 +213,69 @@ def test_request_admission_additive_recovery_after_successes() -> None: assert controller.pressure.snapshot(item.resource).current_limit == 2 # type: ignore[union-attr] +def test_request_admission_startup_ramp_starts_at_one_and_progresses_to_cap( + monkeypatch: pytest.MonkeyPatch, +) -> None: + now = 100.0 + monkeypatch.setattr("data_designer.engine.models.request_admission.controller.time.monotonic", lambda: now) + controller = _controller(cap=4, config=RequestAdmissionConfig(startup_ramp_seconds=10.0)) + item = _item() + + first = controller.try_acquire(item) + assert isinstance(first, RequestAdmissionLease) + second = controller.try_acquire(item) + assert isinstance(second, RequestAdmissionDenied) + assert second.reason == "no_capacity" + assert controller.pressure.snapshot(item.resource).current_limit == 1 # type: ignore[union-attr] + controller.release(first, RequestReleaseOutcome(kind="success")) + + now = 105.0 + halfway_leases = [controller.try_acquire(item) for _ in range(2)] + assert all(isinstance(lease, RequestAdmissionLease) for lease in halfway_leases) + denied = controller.try_acquire(item) + assert isinstance(denied, RequestAdmissionDenied) + assert denied.reason == "no_capacity" + assert controller.pressure.snapshot(item.resource).current_limit == 2 # type: ignore[union-attr] + for lease in halfway_leases: + assert isinstance(lease, RequestAdmissionLease) + controller.release(lease, RequestReleaseOutcome(kind="success")) + + now = 110.0 + full_ramp_leases = [controller.try_acquire(item) for _ in range(4)] + assert all(isinstance(lease, RequestAdmissionLease) for lease in full_ramp_leases) + assert controller.pressure.snapshot(item.resource).current_limit == 4 # type: ignore[union-attr] + for lease in full_ramp_leases: + assert isinstance(lease, RequestAdmissionLease) + controller.release(lease, RequestReleaseOutcome(kind="success")) + + +def test_request_admission_rate_limit_aborts_startup_ramp(monkeypatch: pytest.MonkeyPatch) -> None: + now = 100.0 + monkeypatch.setattr("data_designer.engine.models.request_admission.controller.time.monotonic", lambda: now) + controller = _controller( + cap=4, + config=RequestAdmissionConfig( + cooldown_seconds=0.0, + multiplicative_decrease_factor=0.5, + startup_ramp_seconds=10.0, + ), + ) + item = _item() + lease = controller.try_acquire(item) + assert isinstance(lease, RequestAdmissionLease) + + controller.release(lease, RequestReleaseOutcome(kind="rate_limited")) + now = 110.0 + + assert controller.pressure.snapshot(item.resource).current_limit == 1 # type: ignore[union-attr] + next_lease = controller.try_acquire(item) + assert isinstance(next_lease, RequestAdmissionLease) + denied = controller.try_acquire(item) + assert isinstance(denied, RequestAdmissionDenied) + assert denied.reason == "no_capacity" + controller.release(next_lease, RequestReleaseOutcome(kind="success")) + + def test_request_admission_blocking_timeout_raises_typed_error() -> None: controller = _controller(cap=1) first = _item() diff --git a/packages/data-designer-engine/tests/engine/models/test_model_registry.py b/packages/data-designer-engine/tests/engine/models/test_model_registry.py index 1974f5310..75c067a57 100644 --- a/packages/data-designer-engine/tests/engine/models/test_model_registry.py +++ b/packages/data-designer-engine/tests/engine/models/test_model_registry.py @@ -6,6 +6,7 @@ import pytest from data_designer.config.models import ChatCompletionInferenceParams, ModelConfig +from data_designer.config.run_config import RequestAdmissionTuningConfig, RunConfig from data_designer.engine.models.errors import ModelAuthenticationError from data_designer.engine.models.facade import ModelFacade from data_designer.engine.models.factory import create_model_registry @@ -54,6 +55,35 @@ def test_create_model_registry( assert isinstance(model_registry, ModelRegistry) +def test_create_model_registry_maps_request_admission_tuning_config( + stub_model_configs: list[ModelConfig], + stub_secrets_resolver: object, + stub_model_provider_registry: object, +) -> None: + model_registry = create_model_registry( + model_configs=stub_model_configs, + secret_resolver=stub_secrets_resolver, + model_provider_registry=stub_model_provider_registry, + run_config=RunConfig( + request_admission=RequestAdmissionTuningConfig( + multiplicative_decrease_factor=0.5, + additive_increase_step=2, + increase_after_successes=7, + cooldown_seconds=1.5, + startup_ramp_seconds=30.0, + ) + ), + ) + + assert model_registry.request_admission is not None + request_config = model_registry.request_admission.config + assert request_config.multiplicative_decrease_factor == 0.5 + assert request_config.additive_increase_step == 2 + assert request_config.increase_after_successes == 7 + assert request_config.cooldown_seconds == 1.5 + assert request_config.startup_ramp_seconds == 30.0 + + def test_public_props(stub_model_configs, stub_model_registry): assert stub_model_registry.model_configs == { model_config.alias: model_config for model_config in stub_model_configs diff --git a/packages/data-designer-engine/tests/engine/test_capacity.py b/packages/data-designer-engine/tests/engine/test_capacity.py index 6fd4daa33..856aeba09 100644 --- a/packages/data-designer-engine/tests/engine/test_capacity.py +++ b/packages/data-designer-engine/tests/engine/test_capacity.py @@ -19,13 +19,18 @@ def test_request_admission_config_snapshot_records_resources() -> None: resource = RequestResourceKey("nvidia", "nemotron", RequestDomain.CHAT) - config = RequestAdmissionConfig(initial_limits={resource: 2}, max_limit_clamps={resource: 4}) + config = RequestAdmissionConfig( + initial_limits={resource: 2}, + max_limit_clamps={resource: 4}, + startup_ramp_seconds=30.0, + ) snapshot = RequestAdmissionConfigSnapshot.from_config(config) assert snapshot.resources == (resource,) assert snapshot.initial_limits[resource] == 2 assert snapshot.max_limit_clamps[resource] == 4 + assert snapshot.startup_ramp_seconds == 30.0 def test_async_capacity_plan_records_configured_runtime_and_maxima() -> None: diff --git a/plans/645/AsyncSchedulingRequestAdmissionClassModel.png b/plans/645/AsyncSchedulingRequestAdmissionClassModel.png index 2f2f002c4fc9436852c026fe8d0fb3474879c491..34bdb2da2b68cfe81a1f14f6c4963fc13171f8cc 100644 GIT binary patch literal 121362 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 Ih2MMqFJM2LfB*mh literal 120203 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 diff --git a/plans/645/AsyncSchedulingSupportContractsClassModel.png b/plans/645/AsyncSchedulingSupportContractsClassModel.png index 7ca61218aa11404739f34f4ce307711db90932fd..1975d24f74ce674f31e856c0f20bb2f3e7b76b05 100644 GIT binary patch literal 91516 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�?ZI{%_P^Gu~TGXtbOf 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
    89O~fdkg7s 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 literal 90775 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 0`, in which case it starts at `1` and ramps linearly to `initial_limit` +- a provider rate-limit during startup ramp aborts the ramp and switches the resource to normal AIMD recovery - provider rate limits apply multiplicative decrease and set `blocked_until_monotonic` - success outside cooldown contributes to additive recovery - `request_limit_increased`, `request_soft_ceiling_recovered`, and `request_fully_recovered` events are emitted from state transitions, not inferred later by sinks From c3a39bfe8ae6cca8f55d9d50f6d5586dedbbd1dc Mon Sep 17 00:00:00 2001 From: "Eric W. Tramel" Date: Wed, 20 May 2026 14:13:33 -0400 Subject: [PATCH 26/33] Address Greptile admission telemetry feedback --- .../dataset_builders/async_scheduler.py | 4 +- .../models/clients/model_request_executor.py | 9 ++--- .../dataset_builders/test_async_scheduler.py | 39 +++++++++++++++++++ .../clients/test_model_request_executor.py | 22 +++++++++++ 4 files changed, 67 insertions(+), 7 deletions(-) diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py index df19c5716..55e58dd87 100644 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py @@ -916,10 +916,10 @@ def _adaptive_row_group_block_reason(self) -> str | None: return "no_llm_wait_resource" llm_available = task_view.resources_available.get("llm_wait", 0) queued_llm = queue_view.queued_peer_demand_by_resource.get("llm_wait", 0) - if llm_available <= queued_llm and queue_view.queued_total > 0: - return "queued_llm_demand" if llm_available <= 0: return "llm_wait_saturated" + if llm_available <= queued_llm and queue_view.queued_total > 0: + return "queued_llm_demand" return None def _next_unadmitted_row_group_size(self) -> int | None: diff --git a/packages/data-designer-engine/src/data_designer/engine/models/clients/model_request_executor.py b/packages/data-designer-engine/src/data_designer/engine/models/clients/model_request_executor.py index 6782c16bc..721afa41a 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/clients/model_request_executor.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/clients/model_request_executor.py @@ -198,11 +198,10 @@ async def _execute_async_attempt(self, domain: RequestDomain, call: Callable[[], "model_request_completed", item=item, lease=lease, diagnostics={"outcome": "provider_timeout"} ) raise - except BaseException: - self._request_admission.release(lease, RequestReleaseOutcome(kind="unexpected_exception")) - self._emit_model_event( - "model_request_completed", item=item, lease=lease, diagnostics={"outcome": "unexpected_exception"} - ) + except BaseException as exc: + outcome = "local_cancelled" if isinstance(exc, KeyboardInterrupt) else "unexpected_exception" + self._request_admission.release(lease, RequestReleaseOutcome(kind=outcome)) + self._emit_model_event("model_request_completed", item=item, lease=lease, diagnostics={"outcome": outcome}) raise else: self._request_admission.release(lease, RequestReleaseOutcome(kind="success")) diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py b/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py index ce78e3141..57dd8a0e2 100644 --- a/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py +++ b/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py @@ -2902,6 +2902,45 @@ def test_scheduler_adaptive_row_group_row_guard_blocks_extra_large_groups() -> N assert scheduler._row_group_row_guard_allows(9_000) +def test_scheduler_adaptive_row_group_block_reason_prefers_llm_saturation() -> None: + provider = _mock_provider() + configs = [ + SamplerColumnConfig(name="topic", sampler_type=SamplerType.CATEGORY, params={"values": ["A"]}), + LLMTextColumnConfig(name="model_col", prompt="{{ topic }}", model_alias=MODEL_ALIAS), + ] + strategies = { + "topic": GenerationStrategy.FULL_COLUMN, + "model_col": GenerationStrategy.CELL_BY_CELL, + } + row_groups = [(0, 1), (1, 1)] + graph = ExecutionGraph.create(configs, strategies) + scheduler = AsyncTaskScheduler( + generators={ + "topic": MockSeedGenerator(config=_expr_config("topic"), resource_provider=provider), + "model_col": SlowLLMBoundCellGenerator( + config=_expr_config("model_col"), + resource_provider=provider, + delay=0.0, + ), + }, + graph=graph, + tracker=CompletionTracker.with_graph(graph, row_groups), + row_groups=row_groups, + max_concurrent_row_groups=2, + adaptive_row_group_admission=True, + num_records=2, + buffer_size=1, + ) + scheduler._fair_queue = SimpleNamespace( + view=lambda: SimpleNamespace(queued_total=1, queued_peer_demand_by_resource={}) + ) + scheduler._task_admission = SimpleNamespace( + view=lambda: SimpleNamespace(resource_limits={"llm_wait": 1}, resources_available={"llm_wait": 0}) + ) + + assert scheduler._adaptive_row_group_block_reason() == "llm_wait_saturated" + + @pytest.mark.asyncio(loop_scope="session") async def test_scheduler_raises_when_ready_frontier_blocked_without_in_flight() -> None: provider = _mock_provider() diff --git a/packages/data-designer-engine/tests/engine/models/clients/test_model_request_executor.py b/packages/data-designer-engine/tests/engine/models/clients/test_model_request_executor.py index 2c44a0c00..732a2717e 100644 --- a/packages/data-designer-engine/tests/engine/models/clients/test_model_request_executor.py +++ b/packages/data-designer-engine/tests/engine/models/clients/test_model_request_executor.py @@ -266,6 +266,28 @@ async def acompletion(self, request: ChatCompletionRequest) -> ChatCompletionRes assert snapshot.last_outcome == "local_cancelled" +@pytest.mark.asyncio(loop_scope="session") +async def test_model_request_executor_classifies_async_keyboard_interrupt_as_cancelled() -> None: + class _InterruptingClient(_Client): + async def acompletion(self, request: ChatCompletionRequest) -> ChatCompletionResponse: + raise KeyboardInterrupt + + sink = InMemoryAdmissionEventSink() + controller = AdaptiveRequestAdmissionController(event_sink=sink) + controller.register(provider_name="nvidia", model_id="nemotron", alias="default", max_parallel_requests=1) + executor = ModelRequestExecutor(_InterruptingClient(), controller, "nvidia", "nemotron", event_sink=sink) + + with pytest.raises(KeyboardInterrupt): + await executor.acompletion(ChatCompletionRequest(model="nemotron", messages=[])) + + snapshot = controller.pressure.snapshot(next(iter(controller.pressure.snapshots()))) + assert snapshot is not None + assert snapshot.active_lease_count == 0 + assert snapshot.last_outcome == "local_cancelled" + completed = [event for event in sink.request_events if event.event_kind == "model_request_completed"] + assert completed[-1].diagnostics["outcome"] == "local_cancelled" + + def test_model_request_executor_maps_image_chat_domain() -> None: executor, controller, _client = _executor() From c97002a9093466a9782a33f9ab7d390713088fc6 Mon Sep 17 00:00:00 2001 From: "Eric W. Tramel" Date: Wed, 20 May 2026 14:35:14 -0400 Subject: [PATCH 27/33] Address async scheduling review follow-ups --- architecture/dataset-builders.md | 7 +- .../src/data_designer/config/__init__.py | 9 +++ .../tests/config/test_run_config.py | 7 ++ .../dataset_builders/async_scheduler.py | 6 +- .../scheduling/task_policies.py | 7 +- .../src/data_designer/engine/observability.py | 67 ++++++++++++++--- .../dataset_builders/test_async_scheduler.py | 72 ++++++++++++++++++- .../clients/test_model_request_executor.py | 4 +- .../tests/engine/models/test_facade.py | 36 +++++++++- .../tests/engine/test_observability.py | 46 +++++++++++- plans/645/capacity-model.md | 6 +- plans/645/issue-map.md | 2 +- plans/645/observability.md | 10 ++- plans/645/task-admission.md | 4 +- 14 files changed, 261 insertions(+), 22 deletions(-) diff --git a/architecture/dataset-builders.md b/architecture/dataset-builders.md index a1ffbfe2a..fc3981543 100644 --- a/architecture/dataset-builders.md +++ b/architecture/dataset-builders.md @@ -123,12 +123,17 @@ DatasetBuilder.build() → CompletionTracker.with_graph() → AsyncTaskScheduler(task admission, fair queue, salvage_rounds) → scheduler.run() - → for each row group, fairly admit ready tasks from frontier + → admit row groups under the configured row-group cap + → fairly admit ready tasks from the frontier through task admission → tasks execute generators, update CompletionTracker → checkpoints via RowGroupBufferManager → collect TaskTraces, emit telemetry ``` +Row-group admission is fixed by default in the dataset-builder path: the configured row-group concurrency is the hard in-flight cap. The scheduler also has an internal adaptive row-group mode for direct use that only raises a soft target up to that cap; it is additive ramp-up, not AIMD shrink/recovery behavior. + +When request admission is available, async scheduling may use request-pressure snapshots as a read-only advisory during fair-queue selection. A request-pressured task can be skipped for an eligible peer without mutating request-admission state; provider/model/domain request limits remain owned by request admission. + ## Design Decisions - **Dual execution engines behind one API.** The sequential engine is simpler and easier to debug; the async engine adds row-group parallelism for throughput. Users switch via an environment variable without changing their code. diff --git a/packages/data-designer-config/src/data_designer/config/__init__.py b/packages/data-designer-config/src/data_designer/config/__init__.py index 29c300e75..a60a21592 100644 --- a/packages/data-designer-config/src/data_designer/config/__init__.py +++ b/packages/data-designer-config/src/data_designer/config/__init__.py @@ -233,6 +233,13 @@ "get_library_version": (f"{_MOD_BASE}.version", "get_library_version"), } +_REMOVED_EXPORTS: dict[str, str] = { + "ThrottleConfig": ( + "ThrottleConfig was removed. Use RunConfig.request_admission with " + "RequestAdmissionTuningConfig for supported advanced request-admission tuning." + ), +} + __all__ = list(_LAZY_IMPORTS.keys()) @@ -249,6 +256,8 @@ def __getattr__(name: str) -> object: # Cache so subsequent accesses find a real attribute and skip __getattr__. globals()[name] = attr return attr + if name in _REMOVED_EXPORTS: + raise ImportError(_REMOVED_EXPORTS[name]) raise AttributeError(f"module 'data_designer.config' has no attribute {name!r}") diff --git a/packages/data-designer-config/tests/config/test_run_config.py b/packages/data-designer-config/tests/config/test_run_config.py index e44b69e63..70482ffe0 100644 --- a/packages/data-designer-config/tests/config/test_run_config.py +++ b/packages/data-designer-config/tests/config/test_run_config.py @@ -79,3 +79,10 @@ def test_run_config_accepts_request_admission_tuning_dict_with_throttle_era_name def test_request_admission_tuning_config_is_exported_from_config_package() -> None: assert dd.RequestAdmissionTuningConfig is RequestAdmissionTuningConfig + + +def test_removed_throttle_config_export_has_migration_message() -> None: + with pytest.raises(ImportError, match="ThrottleConfig was removed.*RunConfig.request_admission"): + getattr(dd, "ThrottleConfig") + with pytest.raises(ImportError, match="ThrottleConfig was removed.*RequestAdmissionTuningConfig"): + exec("from data_designer.config import ThrottleConfig", {}) diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py index 55e58dd87..a2a793f5a 100644 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py @@ -806,6 +806,10 @@ def _dispatch_selected_task(self, item: SchedulableTask, lease: TaskAdmissionLea self._emit_scheduler_event("worker_spawned", task=task, lease=lease, task_execution_id=task_execution_id) except Exception: result = self._task_admission.release(lease) + self._in_flight.discard(task) + self._dispatched.discard(task) + if (s := self._rg_states.get(task.row_group)) is not None: + s.in_flight_count = max(0, s.in_flight_count - 1) self._emit_scheduler_event( "worker_spawn_failed", task=task, @@ -813,7 +817,6 @@ def _dispatch_selected_task(self, item: SchedulableTask, lease: TaskAdmissionLea task_execution_id=task_execution_id, reason_or_result=result.reason, ) - self._in_flight.discard(task) raise def _schedulable_task(self, task: Task) -> SchedulableTask: @@ -1090,6 +1093,7 @@ async def _main_dispatch_loop( if self._all_rgs_admitted and not pending_pre_batch: break if pending_pre_batch: + await asyncio.sleep(0) continue if not self._fair_queue.has_queued_tasks or dispatch_outcome.admission_blocked: diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/task_policies.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/task_policies.py index 72d8b46f5..011e4e703 100644 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/task_policies.py +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/scheduling/task_policies.py @@ -31,7 +31,12 @@ @dataclass(frozen=True) class BoundedBorrowTaskAdmissionPolicyConfig: - """Engine-internal bounded-borrow policy configuration.""" + """Engine-internal bounded-borrow policy configuration. + + Borrow debt is tracked by task group and scheduler resource. Any completed + lease in the same group repays debt for the released resources; repayment is + not tied to the specific lease that originally borrowed. + """ borrow_ceiling_by_group_resource: Mapping[tuple[TaskGroupKey, SchedulerResourceKey], int] = field( default_factory=dict diff --git a/packages/data-designer-engine/src/data_designer/engine/observability.py b/packages/data-designer-engine/src/data_designer/engine/observability.py index aa04e4a4e..a7a28c41b 100644 --- a/packages/data-designer-engine/src/data_designer/engine/observability.py +++ b/packages/data-designer-engine/src/data_designer/engine/observability.py @@ -4,8 +4,11 @@ from __future__ import annotations import contextvars +import math import time -from dataclasses import dataclass, field +from collections.abc import Mapping +from dataclasses import dataclass, field, fields, is_dataclass +from enum import Enum from typing import Literal, Protocol @@ -20,6 +23,40 @@ class RuntimeCorrelation: task_execution_id: str | None +JsonValue = str | int | float | bool | None | list["JsonValue"] | dict[str, "JsonValue"] + + +def _json_safe(value: object) -> JsonValue: + if value is None or isinstance(value, str | int | bool): + return value + if isinstance(value, float): + return value if math.isfinite(value) else str(value) + if isinstance(value, Enum): + return _json_safe(value.value) + if is_dataclass(value) and not isinstance(value, type): + return {field.name: _json_safe(getattr(value, field.name)) for field in fields(value)} + if isinstance(value, Mapping): + return {_json_safe_key(key): _json_safe(item) for key, item in value.items()} + if isinstance(value, list | tuple): + return [_json_safe(item) for item in value] + if isinstance(value, set | frozenset): + return [_json_safe(item) for item in sorted(value, key=repr)] + return str(value) + + +def _json_safe_key(value: object) -> str: + safe = _json_safe(value) + if isinstance(safe, str): + return safe + return str(safe) + + +def _json_safe_dict(value: Mapping[str, object] | None) -> dict[str, JsonValue]: + if value is None: + return {} + return {_json_safe_key(key): _json_safe(item) for key, item in value.items()} + + class RuntimeCorrelationProvider: """Context-variable backed runtime correlation provider.""" @@ -99,14 +136,19 @@ class SchedulerAdmissionEvent: event_kind: SchedulerAdmissionEventKind captured_at_monotonic: float sequence: int - captured_correlation: RuntimeCorrelation | None = None + captured_correlation: JsonValue = None task_id: str | None = None task_execution_id: str | None = None task_lease_id: str | None = None scheduler_resource_key: str | None = None reason_or_result: str | None = None - snapshot: object | None = None - diagnostics: dict[str, object] = field(default_factory=dict) + snapshot: JsonValue = None + diagnostics: dict[str, JsonValue] = field(default_factory=dict) + + def __post_init__(self) -> None: + object.__setattr__(self, "captured_correlation", _json_safe(self.captured_correlation)) + object.__setattr__(self, "snapshot", _json_safe(self.snapshot)) + object.__setattr__(self, "diagnostics", _json_safe_dict(self.diagnostics)) @classmethod def capture( @@ -131,14 +173,21 @@ class RequestAdmissionEvent: event_kind: RequestAdmissionEventKind captured_at_monotonic: float sequence: int - captured_correlation: RuntimeCorrelation | None = None + captured_correlation: JsonValue = None request_attempt_id: str | None = None request_lease_id: str | None = None - request_resource_key: object | None = None - request_group_key: object | None = None + request_resource_key: JsonValue = None + request_group_key: JsonValue = None reason_or_outcome: str | None = None - pressure_snapshot: object | None = None - diagnostics: dict[str, object] = field(default_factory=dict) + pressure_snapshot: JsonValue = None + diagnostics: dict[str, JsonValue] = field(default_factory=dict) + + def __post_init__(self) -> None: + object.__setattr__(self, "captured_correlation", _json_safe(self.captured_correlation)) + object.__setattr__(self, "request_resource_key", _json_safe(self.request_resource_key)) + object.__setattr__(self, "request_group_key", _json_safe(self.request_group_key)) + object.__setattr__(self, "pressure_snapshot", _json_safe(self.pressure_snapshot)) + object.__setattr__(self, "diagnostics", _json_safe_dict(self.diagnostics)) @classmethod def capture( diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py b/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py index 57dd8a0e2..52047fd0b 100644 --- a/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py +++ b/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py @@ -1778,6 +1778,76 @@ async def test_drain_frontier_raises_when_ready_but_no_capacity_or_inflight() -> await scheduler._drain_frontier(("seed",), False) +def test_dispatch_selected_task_rolls_back_scheduler_state_when_worker_spawn_fails( + monkeypatch: pytest.MonkeyPatch, +) -> None: + provider = _mock_provider() + config = ExpressionColumnConfig(name="cell_out", expr="'x'", dtype="str") + graph = ExecutionGraph.create([config], {"cell_out": GenerationStrategy.CELL_BY_CELL}) + scheduler = AsyncTaskScheduler( + generators={"cell_out": MockCellGenerator(config=config, resource_provider=provider)}, + graph=graph, + tracker=CompletionTracker.with_graph(graph, [(0, 1)]), + row_groups=[(0, 1)], + scheduler_event_sink=(sink := InMemoryAdmissionEventSink()), + ) + task = Task(column="cell_out", row_group=0, row_index=0, task_type="cell") + item = scheduler._schedulable_task(task) + lease = scheduler._task_admission.try_acquire(item, scheduler._fair_queue.view()) + assert isinstance(lease, TaskAdmissionLease) + scheduler._rg_states[0] = SimpleNamespace(size=1, in_flight_count=0) + + def fail_spawn(coro: Any) -> None: + coro.close() + raise RuntimeError("spawn failed") + + monkeypatch.setattr(scheduler, "_spawn_worker", fail_spawn) + + with pytest.raises(RuntimeError, match="spawn failed"): + scheduler._dispatch_selected_task(item, lease) + + assert task not in scheduler._dispatched + assert task not in scheduler._in_flight + assert scheduler._rg_states[0].in_flight_count == 0 + assert scheduler.task_admission_snapshot().leased_resources == {} + assert scheduler.task_admission_snapshot().running_counts_by_group == {} + assert any(event.event_kind == "worker_spawn_failed" for event in sink.scheduler_events) + + +@pytest.mark.asyncio(loop_scope="session") +async def test_main_dispatch_loop_yields_when_pre_batch_is_pending( + monkeypatch: pytest.MonkeyPatch, +) -> None: + provider = _mock_provider() + seed_config = ExpressionColumnConfig(name="seed", expr="'seed'", dtype="str") + graph = ExecutionGraph.create([seed_config], {"seed": GenerationStrategy.FULL_COLUMN}) + scheduler = AsyncTaskScheduler( + generators={"seed": MockSeedGenerator(config=seed_config, resource_provider=provider)}, + graph=graph, + tracker=CompletionTracker.with_graph(graph, [(0, 1)]), + row_groups=[(0, 1)], + ) + scheduler._all_rgs_admitted = True + scheduler._rg_states[0] = SimpleNamespace(size=1, seeds_dispatched=True, pre_batch_done=False) + monkeypatch.setattr(scheduler, "_run_seeds_complete_check", lambda seed_cols: None) + monkeypatch.setattr( + scheduler, "_dispatch_queued_tasks", lambda: SimpleNamespace(dispatched=False, admission_blocked=False) + ) + monkeypatch.setattr(scheduler, "_checkpoint_completed_row_groups", lambda all_columns: None) + monkeypatch.setattr(scheduler, "_maybe_update_adaptive_row_group_target", lambda: None) + yielded_delays: list[float] = [] + + async def record_sleep(delay: float) -> None: + yielded_delays.append(delay) + scheduler._rg_states[0].pre_batch_done = True + + monkeypatch.setattr(asyncio, "sleep", record_sleep) + + await scheduler._main_dispatch_loop(("seed",), True, ["seed"]) + + assert yielded_delays == [0] + + @pytest.mark.asyncio(loop_scope="session") async def test_scheduler_dispatch_does_not_scan_ready_frontier(monkeypatch: pytest.MonkeyPatch) -> None: provider = _mock_provider() @@ -2796,7 +2866,7 @@ async def test_scheduler_emits_job_health_and_row_group_telemetry() -> None: assert started.diagnostics["row_group_count"] == 1 assert started.diagnostics["graph_depth"] == 2 column_scheduling = started.diagnostics["column_scheduling"] - assert isinstance(column_scheduling, tuple) + assert isinstance(column_scheduling, list) model_column = next(item for item in column_scheduling if item["column"] == "model_col") assert model_column["group_kind"] == "custom_model" assert model_column["resource_request"] == {"submission": 1, "llm_wait": 1} diff --git a/packages/data-designer-engine/tests/engine/models/clients/test_model_request_executor.py b/packages/data-designer-engine/tests/engine/models/clients/test_model_request_executor.py index 732a2717e..2806ae569 100644 --- a/packages/data-designer-engine/tests/engine/models/clients/test_model_request_executor.py +++ b/packages/data-designer-engine/tests/engine/models/clients/test_model_request_executor.py @@ -365,7 +365,9 @@ def test_model_request_executor_emits_attempt_events_with_correlation_fields() - attempt_events = [event for event in sink.request_events if event.request_attempt_id is not None] assert attempt_events assert all(event.request_group_key is not None for event in attempt_events) - assert all(event.pressure_snapshot.resource == event.request_resource_key for event in attempt_events) + for event in attempt_events: + assert isinstance(event.pressure_snapshot, dict) + assert event.pressure_snapshot["resource"] == event.request_resource_key def test_model_request_executor_logs_sink_failures(caplog: pytest.LogCaptureFixture) -> None: diff --git a/packages/data-designer-engine/tests/engine/models/test_facade.py b/packages/data-designer-engine/tests/engine/models/test_facade.py index ee9ace2ce..1369c43b1 100644 --- a/packages/data-designer-engine/tests/engine/models/test_facade.py +++ b/packages/data-designer-engine/tests/engine/models/test_facade.py @@ -9,6 +9,7 @@ import pytest from data_designer.engine.mcp.errors import MCPConfigurationError, MCPToolError +from data_designer.engine.models.clients.errors import ProviderError, ProviderErrorKind from data_designer.engine.models.clients.types import ( ChatCompletionResponse, EmbeddingResponse, @@ -16,7 +17,11 @@ ImagePayload, ToolCall, ) -from data_designer.engine.models.errors import ImageGenerationError, ModelGenerationValidationFailureError +from data_designer.engine.models.errors import ( + ImageGenerationError, + ModelGenerationValidationFailureError, + ModelTimeoutError, +) from data_designer.engine.models.facade import ModelFacade from data_designer.engine.models.parsers.errors import ParserException from data_designer.engine.models.utils import ChatMessage @@ -192,6 +197,35 @@ def test_generate_strips_response_content( assert result == expected +def test_generate_maps_statusless_provider_timeout_to_model_timeout(stub_model_facade: ModelFacade) -> None: + stub_model_facade._client.completion.side_effect = ProviderError( + kind=ProviderErrorKind.TIMEOUT, + message="request timed out", + status_code=None, + provider_name="stub", + model_name=stub_model_facade.model_name, + ) + + with pytest.raises(ModelTimeoutError, match="timed out"): + stub_model_facade.generate(prompt="test", parser=lambda value: value) + + +@pytest.mark.asyncio +async def test_agenerate_maps_statusless_provider_timeout_to_model_timeout(stub_model_facade: ModelFacade) -> None: + stub_model_facade._client.acompletion = AsyncMock( + side_effect=ProviderError( + kind=ProviderErrorKind.TIMEOUT, + message="request timed out", + status_code=None, + provider_name="stub", + model_name=stub_model_facade.model_name, + ) + ) + + with pytest.raises(ModelTimeoutError, match="timed out"): + await stub_model_facade.agenerate(prompt="test", parser=lambda value: value) + + def test_model_alias_property(stub_model_facade: ModelFacade, stub_model_configs: list[Any]) -> None: assert stub_model_facade.model_alias == stub_model_configs[0].alias diff --git a/packages/data-designer-engine/tests/engine/test_observability.py b/packages/data-designer-engine/tests/engine/test_observability.py index 55a2896b1..e7d9ce21b 100644 --- a/packages/data-designer-engine/tests/engine/test_observability.py +++ b/packages/data-designer-engine/tests/engine/test_observability.py @@ -3,6 +3,10 @@ from __future__ import annotations +import json +from dataclasses import asdict, dataclass +from enum import Enum + from data_designer.engine.observability import ( CorrelatedRuntimeView, InMemoryAdmissionEventSink, @@ -13,6 +17,16 @@ ) +class _DiagnosticMode(Enum): + TEST = "test" + + +@dataclass(frozen=True) +class _DiagnosticPayload: + label: str + mode: _DiagnosticMode + + def _correlation() -> RuntimeCorrelation: return RuntimeCorrelation( run_id="run", @@ -56,14 +70,42 @@ def test_admission_events_capture_correlation_and_diagnostics() -> None: diagnostics={"resource": "chat"}, ) - assert scheduler_event.captured_correlation == correlation + assert scheduler_event.captured_correlation == asdict(correlation) assert scheduler_event.task_id == "task-1" assert scheduler_event.diagnostics == {"resource": "submission"} - assert request_event.captured_correlation == correlation + assert request_event.captured_correlation == asdict(correlation) assert request_event.request_attempt_id == "request-1" assert request_event.diagnostics == {"resource": "chat"} +def test_admission_events_are_json_safe_at_construction() -> None: + correlation = _correlation() + payload = _DiagnosticPayload(label="payload", mode=_DiagnosticMode.TEST) + + scheduler_event = SchedulerAdmissionEvent.capture( + "admission_blocked", + sequence=1, + correlation=correlation, + snapshot=payload, + diagnostics={"payload": payload, "values": {"b", "a"}, "pair": ("x", _DiagnosticMode.TEST)}, + ) + request_event = RequestAdmissionEvent.capture( + "request_wait_started", + sequence=2, + correlation=correlation, + request_resource_key=payload, + request_group_key=("group", _DiagnosticMode.TEST), + pressure_snapshot={"payload": payload}, + diagnostics={"payload": payload}, + ) + + json.dumps(asdict(scheduler_event), sort_keys=True) + json.dumps(asdict(request_event), sort_keys=True) + assert scheduler_event.snapshot == {"label": "payload", "mode": "test"} + assert scheduler_event.diagnostics["values"] == ["a", "b"] + assert request_event.request_resource_key == {"label": "payload", "mode": "test"} + + def test_in_memory_admission_event_sink_collects_scheduler_and_request_events() -> None: sink = InMemoryAdmissionEventSink() scheduler_event = SchedulerAdmissionEvent.capture("selected", sequence=1) diff --git a/plans/645/capacity-model.md b/plans/645/capacity-model.md index f9806d326..13f6a3e93 100644 --- a/plans/645/capacity-model.md +++ b/plans/645/capacity-model.md @@ -79,9 +79,11 @@ HTTP transport pools may be larger than the static provider cap. They are transp `buffer_size` defines the record-window shape used by the dataset builder. Row groups are the concrete execution partitions produced from that windowing behavior. -Row-group admission remains scheduler-owned but is not changed by the V1 task-admission lease boundary. For this epic, #654 records row-group configured concurrency and observed row groups in flight through the `RowGroupAdmission` section of `AsyncCapacityPlan`; it does not introduce a new row-group scheduling policy unless a later issue explicitly does so. +Row-group admission remains scheduler-owned and is separate from the V1 task-admission lease boundary. The normal dataset-builder wiring uses fixed row-group admission: `max_concurrent_row_groups` is the hard in-flight cap, and task admission leases then control ready task dispatch inside admitted row groups. -Preview, resume, and checkpoint behavior use the existing dataset-builder partitioning rules. `AsyncCapacityPlan` reports the row-group values that the current engine used rather than redefining those rules. +The current branch also contains an internal adaptive row-group admission mode for direct scheduler use. That mode is additive-only: it starts from an initial target and can raise the soft in-flight row-group target up to the semaphore hard cap when no local scheduler-pressure reason blocks growth. It does not decrease the target, so docs and telemetry must not describe it as AIMD. It remains off by default unless a later issue explicitly promotes it to a durable scheduler policy. + +`AsyncCapacityPlan.configured.row_group_admission` records the mode, configured row-group concurrency, current/observed adaptive target when applicable, observed row groups in flight, optional max-admitted-row guardrail, and blocked reasons. Preview, resume, and checkpoint behavior use the existing dataset-builder partitioning rules. `AsyncCapacityPlan` reports the row-group values that the current engine used rather than redefining those rules. ## Transitional Values diff --git a/plans/645/issue-map.md b/plans/645/issue-map.md index f114fac19..14ee92989 100644 --- a/plans/645/issue-map.md +++ b/plans/645/issue-map.md @@ -45,7 +45,7 @@ The implementation order remains: #644 cannot close until task admission uses the final scheduler module homes and the accepted metadata contract. The accepted end state is `SchedulingMetadata` feeding task admission through `TaskSchedulingResolver`; old resolver paths, compatibility adapters, and duplicate module homes are not part of the target architecture. -#660 promotes the stabilized V1 admission/capacity/telemetry docs. #650 and #651 are follow-on policy/design issues; if they change behavior or public/operator guidance, they must update this source-of-truth plan and any promoted docs as part of their own acceptance gates. #651 is design-first unless its issue body explicitly promotes an implementation slice. +#660 promotes the stabilized V1 admission/capacity/telemetry docs. #650 and #651 are follow-on policy/design issues; if they change behavior or public/operator guidance, they must update this source-of-truth plan and any promoted docs as part of their own acceptance gates. #651 is design-first unless its issue body explicitly promotes an implementation slice. The request-pressure advisory selection path currently in PR #661 is a narrow implementation slice ahead of the broader #651 design; it must remain read-only with respect to request admission until #651 defines a durable provider/resource-aware policy. ## Evidence Phasing diff --git a/plans/645/observability.md b/plans/645/observability.md index ffc76ef3a..2b09b5260 100644 --- a/plans/645/observability.md +++ b/plans/645/observability.md @@ -14,7 +14,7 @@ Sink failures must never interrupt generation. Event data can be collected under Event DTOs capture primitive correlation fields at construction time. Sinks receive already-captured event data; they must not read ambient context later to discover which task/request an event belongs to. -All event DTOs include `captured_at_monotonic` and a monotonic per-stream `sequence`. Scheduler events include task id, task execution id when a worker execution exists, task lease id when available, scheduler resource key when applicable, denial/release reason when applicable, optional snapshot, and sanitized diagnostics. Request events include request attempt id when they belong to one concrete attempt, request lease id when available, canonical request resource when resource-specific, request group key when queue/admission-specific, denial/release outcome when applicable, optional pressure snapshot, and sanitized diagnostics. +All event DTOs include `captured_at_monotonic` and a monotonic per-stream `sequence`. Scheduler events include task id, task execution id when a worker execution exists, task lease id when available, scheduler resource key when applicable, denial/release reason when applicable, optional snapshot, and diagnostics. Request events include request attempt id when they belong to one concrete attempt, request lease id when available, canonical request resource when resource-specific, request group key when queue/admission-specific, denial/release outcome when applicable, optional pressure snapshot, and diagnostics. Event construction normalizes correlation, keys, snapshots, and diagnostics to JSON-compatible values so structured sinks do not need to understand internal dataclass or enum types. ## Scheduler Admission Events @@ -22,12 +22,20 @@ Scheduler events describe dependency-ready work moving through ready ordering, t Canonical scheduler event kinds: +- `scheduler_job_started` +- `scheduler_job_completed` +- `scheduler_health_snapshot` - `dependency_ready` - `ready_enqueued` +- `row_group_admitted` +- `row_group_admission_blocked` +- `row_group_admission_target_changed` +- `row_group_checkpointed` - `selected` - `queue_empty` - `admission_blocked` - `group_capped` +- `request_pressure_advisory_skipped` - `task_lease_acquired` - `admission_denied` - `worker_spawned` diff --git a/plans/645/task-admission.md b/plans/645/task-admission.md index 944d84048..1abd3e99b 100644 --- a/plans/645/task-admission.md +++ b/plans/645/task-admission.md @@ -102,6 +102,8 @@ V1 includes: V1 request waits remain inside admitted task execution and the task lease is retained until worker completion. That preserves the lease boundary and makes request waits visible, but it does not by itself solve cross-provider utilization when tasks for a cooled-down provider occupy all scheduler task slots. Issue #651 must address provider/resource-aware task admission or an explicit yield/reacquire design before the epic claims cross-provider scheduling optimization as complete. +The current branch includes a narrow request-pressure advisory inside scheduler selection: when request-admission pressure is visible for one candidate and another eligible peer is not pressured, the scheduler may skip the pressured candidate for that selection pass. This consumes request-pressure snapshots as read-only input and does not mutate request-admission state or duplicate provider/model/domain AIMD. Treat broader provider/resource-aware scheduling as #651 scope. + V1 excludes: - row-group admission @@ -172,7 +174,7 @@ Policy constraints: - Borrow debt is measured in admitted scheduler-resource units above strict fair share for a group/resource. Strict share is computed from scheduler-known competing groups and their weights; #650 owns the exact rounding rule and benchmark evidence. - A group may borrow beyond strict share only up to its configured ceiling while no eligible peer can use the resource. - When peer queue pressure exists and a group has borrow debt, that group receives no further admissions for the borrowed resource while an eligible peer has queued work and the required resource is available. -- Debt repayment happens when peer pressure exists and the indebted group is withheld, or when policy-defined repayment work completes. Repayment changes policy debt counters only, not hard resource availability. +- Debt repayment happens when peer pressure exists and the indebted group is withheld, or when policy-defined repayment work completes. Runtime debt is tracked by task group and scheduler resource; any completed lease in the same task group repays debt for the resources it releases. Repayment changes policy debt counters only, not hard resource availability. - The policy must not traverse the DAG inside `FairTaskQueue`. - No public knob is added until benchmark evidence supports it. From da6fa56a1abbe1c5cad841daa635f70a8b9a0c81 Mon Sep 17 00:00:00 2001 From: "Eric W. Tramel" Date: Wed, 20 May 2026 14:56:29 -0400 Subject: [PATCH 28/33] Address review follow-up migration gaps --- .../src/data_designer/config/run_config.py | 14 ++++++++++ .../tests/config/test_run_config.py | 2 ++ plans/645/architecture.md | 2 +- plans/645/contracts.md | 26 ++++++++++++------- 4 files changed, 34 insertions(+), 10 deletions(-) diff --git a/packages/data-designer-config/src/data_designer/config/run_config.py b/packages/data-designer-config/src/data_designer/config/run_config.py index 2620954cf..306f19b7e 100644 --- a/packages/data-designer-config/src/data_designer/config/run_config.py +++ b/packages/data-designer-config/src/data_designer/config/run_config.py @@ -19,6 +19,14 @@ class JinjaRenderingEngine(StrEnum): SECURE = "secure" +_REMOVED_EXPORTS: dict[str, str] = { + "ThrottleConfig": ( + "ThrottleConfig was removed. Use RunConfig.request_admission with " + "RequestAdmissionTuningConfig for supported advanced request-admission tuning." + ), +} + + class RequestAdmissionTuningConfig(ConfigBase): """Advanced request-admission AIMD tuning for model API calls. @@ -160,3 +168,9 @@ def normalize_shutdown_settings(self) -> Self: if self.disable_early_shutdown: self.shutdown_error_rate = 1.0 return self + + +def __getattr__(name: str) -> object: + if name in _REMOVED_EXPORTS: + raise ImportError(_REMOVED_EXPORTS[name]) + raise AttributeError(f"module 'data_designer.config.run_config' has no attribute {name!r}") diff --git a/packages/data-designer-config/tests/config/test_run_config.py b/packages/data-designer-config/tests/config/test_run_config.py index 70482ffe0..6695db648 100644 --- a/packages/data-designer-config/tests/config/test_run_config.py +++ b/packages/data-designer-config/tests/config/test_run_config.py @@ -86,3 +86,5 @@ def test_removed_throttle_config_export_has_migration_message() -> None: getattr(dd, "ThrottleConfig") with pytest.raises(ImportError, match="ThrottleConfig was removed.*RequestAdmissionTuningConfig"): exec("from data_designer.config import ThrottleConfig", {}) + with pytest.raises(ImportError, match="ThrottleConfig was removed.*RequestAdmissionTuningConfig"): + exec("from data_designer.config.run_config import ThrottleConfig", {}) diff --git a/plans/645/architecture.md b/plans/645/architecture.md index da2838002..58f756f07 100644 --- a/plans/645/architecture.md +++ b/plans/645/architecture.md @@ -111,7 +111,7 @@ Task admission controls when ready dataset work may become a running worker. Req The split is required because arbitrary custom Python can make zero, one, or many model calls dynamically. A task's metadata may help group and schedule the task, but it is not a promise of exact request count and must not reserve every future model call up front. -Task admission may later consume request pressure snapshots as read-only policy input. It must not pre-acquire request permits, emulate AIMD, or wrap provider/model/domain request admission. +Task admission may consume request pressure snapshots as read-only policy input. The current branch includes a narrow request-pressure advisory selection path that can prefer an eligible, unpressured peer over a request-pressured candidate. It must not pre-acquire request permits, emulate AIMD, mutate request admission, or wrap provider/model/domain request admission. Broader provider/resource-aware scheduling remains #651 scope. In V1, a task waiting inside request admission keeps its scheduler task lease until the task reaches a terminal outcome. This makes request wait visible without adding yield/reacquire complexity to the lease boundary. The cross-provider optimization target, where tasks blocked on one cooled-down provider do not occupy every scheduler slot while another provider has ready work, belongs to #651's provider/resource-aware task policy or an explicit later yield/reacquire design. diff --git a/plans/645/contracts.md b/plans/645/contracts.md index d753f7ed7..e6e14ed9f 100644 --- a/plans/645/contracts.md +++ b/plans/645/contracts.md @@ -368,17 +368,25 @@ Snapshots are immutable and internally consistent for their capture point. Domai `RuntimeCorrelationProvider` owns set/reset/current behavior, likely through context variables. It must not require request admission protocols to import scheduler types. -Scheduler/request events capture primitive correlation values when event DTOs are constructed. Event sinks must not rely on reading mutable ambient context later, because deferred emission could attach the wrong task context. +Scheduler/request events capture correlation values when event DTOs are constructed and normalize correlation, keys, snapshots, and diagnostics to JSON-compatible values. Event sinks must not rely on reading mutable ambient context later, because deferred emission could attach the wrong task context. Canonical scheduler `event_kind` values are snake_case and versioned as part of the benchmark artifact schema: ```text +scheduler_job_started +scheduler_job_completed +scheduler_health_snapshot dependency_ready ready_enqueued +row_group_admitted +row_group_admission_blocked +row_group_admission_target_changed +row_group_checkpointed selected queue_empty admission_blocked group_capped +request_pressure_advisory_skipped task_lease_acquired admission_denied worker_spawned @@ -399,14 +407,14 @@ release_diagnostic - `event_kind` - `captured_at_monotonic` - monotonic `sequence` -- captured `RuntimeCorrelation | None` +- captured correlation as JSON-compatible values - task id - task execution id when a worker execution exists - task lease id when available - scheduler resource key when applicable - decision reason or release result when applicable -- optional scheduler snapshot -- sanitized diagnostics +- optional JSON-compatible scheduler snapshot +- JSON-compatible diagnostics Canonical request `event_kind` values are snake_case and versioned as part of the benchmark artifact schema: @@ -437,14 +445,14 @@ request_release_diagnostic - `event_kind` - `captured_at_monotonic` - monotonic `sequence` -- captured `RuntimeCorrelation | None` +- captured correlation as JSON-compatible values - request attempt id when the event belongs to one concrete model-call attempt - request lease id when available -- canonical `RequestResourceKey` when the event is resource-specific -- request group key when the event is queue/admission specific +- canonical request resource as JSON-compatible values when the event is resource-specific +- request group key as JSON-compatible values when the event is queue/admission specific - denial reason or release outcome when applicable -- optional request pressure snapshot -- sanitized diagnostics +- optional JSON-compatible request pressure snapshot +- JSON-compatible diagnostics Lease ids, task ids, request attempt ids, and raw model ids are trace/artifact fields only; they are not metric labels. Metric exporters use bounded labels such as `metric_model_label`, model family, or allowlisted model label. The OTel bridge must reject raw model ids as metric labels. From aaa7eadd8de327f0c0797f3b28d047f0e43d012c Mon Sep 17 00:00:00 2001 From: "Eric W. Tramel" Date: Wed, 20 May 2026 15:03:45 -0400 Subject: [PATCH 29/33] Add deprecated throttle config shim --- .../src/data_designer/config/__init__.py | 11 +-- .../src/data_designer/config/run_config.py | 84 +++++++++++++++---- .../tests/config/test_run_config.py | 66 ++++++++++++--- plans/645/contracts.md | 8 +- plans/645/migration-and-cleanup.md | 2 +- plans/645/module-ownership.md | 3 +- 6 files changed, 135 insertions(+), 39 deletions(-) diff --git a/packages/data-designer-config/src/data_designer/config/__init__.py b/packages/data-designer-config/src/data_designer/config/__init__.py index a60a21592..a8f683aa3 100644 --- a/packages/data-designer-config/src/data_designer/config/__init__.py +++ b/packages/data-designer-config/src/data_designer/config/__init__.py @@ -62,6 +62,7 @@ JinjaRenderingEngine, RequestAdmissionTuningConfig, RunConfig, + ThrottleConfig, ) from data_designer.config.sampler_constraints import ( # noqa: F401 ColumnInequalityConstraint, @@ -183,6 +184,7 @@ "JinjaRenderingEngine": (f"{_MOD_BASE}.run_config", "JinjaRenderingEngine"), "RequestAdmissionTuningConfig": (f"{_MOD_BASE}.run_config", "RequestAdmissionTuningConfig"), "RunConfig": (f"{_MOD_BASE}.run_config", "RunConfig"), + "ThrottleConfig": (f"{_MOD_BASE}.run_config", "ThrottleConfig"), # scheduling metadata "SchedulingMetadata": (f"{_MOD_BASE}.scheduling", "SchedulingMetadata"), "SchedulingMetadataError": (f"{_MOD_BASE}.scheduling", "SchedulingMetadataError"), @@ -233,13 +235,6 @@ "get_library_version": (f"{_MOD_BASE}.version", "get_library_version"), } -_REMOVED_EXPORTS: dict[str, str] = { - "ThrottleConfig": ( - "ThrottleConfig was removed. Use RunConfig.request_admission with " - "RequestAdmissionTuningConfig for supported advanced request-admission tuning." - ), -} - __all__ = list(_LAZY_IMPORTS.keys()) @@ -256,8 +251,6 @@ def __getattr__(name: str) -> object: # Cache so subsequent accesses find a real attribute and skip __getattr__. globals()[name] = attr return attr - if name in _REMOVED_EXPORTS: - raise ImportError(_REMOVED_EXPORTS[name]) raise AttributeError(f"module 'data_designer.config' has no attribute {name!r}") diff --git a/packages/data-designer-config/src/data_designer/config/run_config.py b/packages/data-designer-config/src/data_designer/config/run_config.py index 306f19b7e..52c4be531 100644 --- a/packages/data-designer-config/src/data_designer/config/run_config.py +++ b/packages/data-designer-config/src/data_designer/config/run_config.py @@ -3,6 +3,7 @@ from __future__ import annotations +import warnings from typing import Any, ClassVar from pydantic import Field, model_validator @@ -19,12 +20,10 @@ class JinjaRenderingEngine(StrEnum): SECURE = "secure" -_REMOVED_EXPORTS: dict[str, str] = { - "ThrottleConfig": ( - "ThrottleConfig was removed. Use RunConfig.request_admission with " - "RequestAdmissionTuningConfig for supported advanced request-admission tuning." - ), -} +_THROTTLE_DEPRECATION_MESSAGE = ( + "RunConfig.throttle and ThrottleConfig are deprecated. Use RunConfig.request_admission with " + "RequestAdmissionTuningConfig for supported advanced request-admission tuning." +) class RequestAdmissionTuningConfig(ConfigBase): @@ -88,6 +87,51 @@ def normalize_legacy_field_names(cls, data: Any) -> Any: return normalized +class ThrottleConfig(ConfigBase): + """Deprecated compatibility DTO for request-admission tuning. + + Use ``RequestAdmissionTuningConfig`` via ``RunConfig.request_admission`` + instead. ``ceiling_overshoot`` is accepted for compatibility but is not + forwarded because request admission no longer exposes an overshoot knob. + """ + + reduce_factor: float = Field( + default=0.75, + gt=0.0, + lt=1.0, + description="Deprecated alias for RequestAdmissionTuningConfig.multiplicative_decrease_factor.", + ) + additive_increase: int = Field( + default=1, + ge=1, + description="Deprecated alias for RequestAdmissionTuningConfig.additive_increase_step.", + ) + success_window: int = Field( + default=25, + ge=1, + description="Deprecated alias for RequestAdmissionTuningConfig.increase_after_successes.", + ) + cooldown_seconds: float = Field( + default=2.0, + gt=0.0, + description="Deprecated alias for RequestAdmissionTuningConfig.cooldown_seconds.", + ) + ceiling_overshoot: float = Field( + default=0.10, + ge=0.0, + description="Deprecated compatibility field; not forwarded to request admission.", + ) + + def to_request_admission_tuning(self) -> RequestAdmissionTuningConfig: + """Translate legacy throttle tuning into the request-admission DTO.""" + return RequestAdmissionTuningConfig( + multiplicative_decrease_factor=self.reduce_factor, + additive_increase_step=self.additive_increase, + increase_after_successes=self.success_window, + cooldown_seconds=self.cooldown_seconds, + ) + + class RunConfig(ConfigBase): """Runtime configuration for dataset generation. @@ -154,12 +198,26 @@ class RunConfig(ConfigBase): @model_validator(mode="before") @classmethod - def reject_removed_throttle_config(cls, data: Any) -> Any: + def translate_deprecated_throttle_config(cls, data: Any) -> Any: if isinstance(data, dict) and "throttle" in data: - raise ValueError( - "RunConfig.throttle was removed. Use RunConfig.request_admission with " - "RequestAdmissionTuningConfig for supported advanced AIMD tuning." + normalized = dict(data) + throttle = normalized.pop("throttle") + if normalized.get("request_admission") is not None: + raise ValueError( + "Specify either RunConfig.throttle or RunConfig.request_admission, not both. " + "RunConfig.throttle is deprecated." + ) + if throttle is not None: + throttle_config = ( + throttle if isinstance(throttle, ThrottleConfig) else ThrottleConfig.model_validate(throttle) + ) + normalized["request_admission"] = throttle_config.to_request_admission_tuning() + warnings.warn( + _THROTTLE_DEPRECATION_MESSAGE, + DeprecationWarning, + stacklevel=2, ) + return normalized return data @model_validator(mode="after") @@ -168,9 +226,3 @@ def normalize_shutdown_settings(self) -> Self: if self.disable_early_shutdown: self.shutdown_error_rate = 1.0 return self - - -def __getattr__(name: str) -> object: - if name in _REMOVED_EXPORTS: - raise ImportError(_REMOVED_EXPORTS[name]) - raise AttributeError(f"module 'data_designer.config.run_config' has no attribute {name!r}") diff --git a/packages/data-designer-config/tests/config/test_run_config.py b/packages/data-designer-config/tests/config/test_run_config.py index 6695db648..3447c122e 100644 --- a/packages/data-designer-config/tests/config/test_run_config.py +++ b/packages/data-designer-config/tests/config/test_run_config.py @@ -7,7 +7,12 @@ from pydantic import ValidationError import data_designer.config as dd -from data_designer.config.run_config import JinjaRenderingEngine, RequestAdmissionTuningConfig, RunConfig +from data_designer.config.run_config import ( + JinjaRenderingEngine, + RequestAdmissionTuningConfig, + RunConfig, + ThrottleConfig, +) def test_run_config_defaults_to_secure_jinja_renderer() -> None: @@ -19,11 +24,54 @@ def test_run_config_accepts_native_renderer() -> None: assert JinjaRenderingEngine(run_config.jinja_rendering_engine) == JinjaRenderingEngine.NATIVE -def test_run_config_rejects_removed_throttle_with_targeted_message() -> None: - with pytest.raises(ValidationError, match="RunConfig.throttle was removed"): +def test_run_config_throttle_shim_rejects_unknown_legacy_fields() -> None: + with pytest.raises(ValidationError, match="max_concurrent_requests"): RunConfig(throttle={"max_concurrent_requests": 1}) +def test_run_config_throttle_shim_translates_to_request_admission() -> None: + with pytest.warns(DeprecationWarning, match="RunConfig.throttle.*RequestAdmissionTuningConfig"): + run_config = RunConfig( + throttle=ThrottleConfig( + reduce_factor=0.5, + additive_increase=2, + success_window=7, + cooldown_seconds=1.5, + ceiling_overshoot=0.2, + ) + ) + + assert run_config.request_admission is not None + assert run_config.request_admission.multiplicative_decrease_factor == 0.5 + assert run_config.request_admission.additive_increase_step == 2 + assert run_config.request_admission.increase_after_successes == 7 + assert run_config.request_admission.cooldown_seconds == 1.5 + assert run_config.request_admission.startup_ramp_seconds == 0.0 + + +def test_run_config_throttle_shim_accepts_legacy_dict() -> None: + with pytest.warns(DeprecationWarning, match="RunConfig.throttle.*RequestAdmissionTuningConfig"): + run_config = RunConfig( + throttle={ + "reduce_factor": 0.5, + "additive_increase": 2, + "success_window": 7, + "cooldown_seconds": 1.5, + } + ) + + assert run_config.request_admission is not None + assert run_config.request_admission.multiplicative_decrease_factor == 0.5 + assert run_config.request_admission.additive_increase_step == 2 + assert run_config.request_admission.increase_after_successes == 7 + assert run_config.request_admission.cooldown_seconds == 1.5 + + +def test_run_config_rejects_throttle_and_request_admission_together() -> None: + with pytest.raises(ValidationError, match="Specify either RunConfig.throttle or RunConfig.request_admission"): + RunConfig(throttle=ThrottleConfig(), request_admission=RequestAdmissionTuningConfig()) + + def test_request_admission_tuning_config_accepts_canonical_fields() -> None: config = RequestAdmissionTuningConfig( multiplicative_decrease_factor=0.5, @@ -81,10 +129,8 @@ def test_request_admission_tuning_config_is_exported_from_config_package() -> No assert dd.RequestAdmissionTuningConfig is RequestAdmissionTuningConfig -def test_removed_throttle_config_export_has_migration_message() -> None: - with pytest.raises(ImportError, match="ThrottleConfig was removed.*RunConfig.request_admission"): - getattr(dd, "ThrottleConfig") - with pytest.raises(ImportError, match="ThrottleConfig was removed.*RequestAdmissionTuningConfig"): - exec("from data_designer.config import ThrottleConfig", {}) - with pytest.raises(ImportError, match="ThrottleConfig was removed.*RequestAdmissionTuningConfig"): - exec("from data_designer.config.run_config import ThrottleConfig", {}) +def test_deprecated_throttle_config_is_exported_from_config_package() -> None: + assert dd.ThrottleConfig is ThrottleConfig + namespace: dict[str, object] = {} + exec("from data_designer.config import ThrottleConfig", namespace) + assert namespace["ThrottleConfig"] is ThrottleConfig diff --git a/plans/645/contracts.md b/plans/645/contracts.md index e6e14ed9f..b6e16ab28 100644 --- a/plans/645/contracts.md +++ b/plans/645/contracts.md @@ -14,7 +14,7 @@ Durable names in this file are not public API by default. Publicness and final m Config-layer contracts must not import engine runtime protocols. Engine contracts may consume config-layer DTOs. -The final repository layout is specified in [Module ownership](module-ownership.md). Runtime contracts must live in their owning target modules; do not preserve old module paths through aliases, shim files, or broad package reexports. +The final repository layout is specified in [Module ownership](module-ownership.md). Runtime contracts must live in their owning target modules; do not preserve old engine module paths through aliases, shim files, or broad package reexports. Public config may keep explicitly deprecated compatibility DTOs when they translate into the new durable config surface and warn users. ## Config Surface Status @@ -22,13 +22,17 @@ The final repository layout is specified in [Module ownership](module-ownership. | --- | --- | --- | | `SchedulingMetadata` | public plugin-facing DTO | `data-designer-config` | | `RequestAdmissionTuningConfig` | public advanced `RunConfig.request_admission` DTO for supported AIMD tuning only | `data-designer-config` | +| `ThrottleConfig` | deprecated compatibility DTO translated into `RequestAdmissionTuningConfig` by `RunConfig.throttle` | `data-designer-config` | | `TaskAdmissionConfig` | engine-internal config and benchmark injection surface; not a public `RunConfig` knob in V1 | `data-designer-engine` | | `RequestAdmissionConfig` | engine-internal config and benchmark injection surface in V1 | `data-designer-engine` | | `RunConfig.request_admission` | public advanced request-admission tuning surface backed by `RequestAdmissionTuningConfig`; does not expose internal controller APIs | `data-designer-config` | +| `RunConfig.throttle` | deprecated compatibility input translated into `RunConfig.request_admission` with a `DeprecationWarning` | `data-designer-config` | | `AsyncCapacityPlan` | diagnostic/reporting DTO, emitted to explain a run | `data-designer-engine` | Public request-admission tuning is limited to the supported fields on `RequestAdmissionTuningConfig`: multiplicative decrease factor, additive increase step, successes before increase, fallback cooldown, and startup ramp seconds. Benchmarks may still inject lower-level capacity values through harness-only configuration without committing those values to public API. +`ThrottleConfig` is retained only as a migration shim for existing configs that pass `RunConfig(throttle=...)`. The shim maps `reduce_factor`, `additive_increase`, `success_window`, and `cooldown_seconds` into the corresponding `RequestAdmissionTuningConfig` fields and emits a `DeprecationWarning`. `ceiling_overshoot` is accepted for DTO compatibility but is not forwarded because request admission does not expose an overshoot knob. + ## Metadata Contracts `ColumnGenerator.get_scheduling_metadata()` returns generator-facing scheduling metadata. It is additive and non-abstract so existing generators keep working. @@ -348,7 +352,7 @@ It has no mutation or admission methods. Snapshots are immutable and internally consistent for their capture point. Domain snapshots include `captured_at`, monotonic `sequence`, resource, effective max, current limit, in-flight count, active lease count, waiters, blocked-until timing, cooldown remaining, rate-limit ceiling, consecutive rate limits, last outcome summary, and leak diagnostic counters. Global provider/model snapshots include aggregate static cap, aggregate in-flight count across domains, aggregate active lease count, aliases contributing to the cap, and per-domain limit summaries. -`RequestAdmissionConfig` is the durable engine-internal request-admission tuning/config vocabulary for V1. It includes request resources, per-resource `initial_limit`, optional `max_limit_clamp`, configured cooldown, `multiplicative_decrease_factor`, `additive_increase_step`, `increase_after_successes`, `startup_ramp_seconds`, and default queue-wait timeout. Legacy request-control config names are not durable names; the public `RequestAdmissionTuningConfig` may accept old throttle-era spelling as input aliases for migration, but stores and documents scheduler-era names. +`RequestAdmissionConfig` is the durable engine-internal request-admission tuning/config vocabulary for V1. It includes request resources, per-resource `initial_limit`, optional `max_limit_clamp`, configured cooldown, `multiplicative_decrease_factor`, `additive_increase_step`, `increase_after_successes`, `startup_ramp_seconds`, and default queue-wait timeout. Legacy request-control config names are not durable names; the public `RequestAdmissionTuningConfig` may accept old throttle-era spelling as input aliases for migration, and `RunConfig.throttle` may translate a deprecated `ThrottleConfig` into `RequestAdmissionTuningConfig`, but both paths store and document scheduler-era names. ## Telemetry And Correlation Contracts diff --git a/plans/645/migration-and-cleanup.md b/plans/645/migration-and-cleanup.md index 75fc829e3..2469a1593 100644 --- a/plans/645/migration-and-cleanup.md +++ b/plans/645/migration-and-cleanup.md @@ -19,7 +19,7 @@ Unacceptable end states: - a parallel fallback that independently introspects generators, configs, model registries, aliases, or admitted policy data under the old resolver contract - a compatibility adapter, alias, or reexport that preserves the old resolver vocabulary as a durable production path -Final legacy-name search gate should have no production/current-doc matches for these historical strings: +Final legacy-name search gate should have no production/current-doc matches for these historical strings except the explicitly deprecated config compatibility shim for `ThrottleConfig` / `RunConfig.throttle`: ```text SchedulingHintResolver diff --git a/plans/645/module-ownership.md b/plans/645/module-ownership.md index 988f80e83..8ed86e09c 100644 --- a/plans/645/module-ownership.md +++ b/plans/645/module-ownership.md @@ -171,7 +171,8 @@ packages/data-designer-engine/src/data_designer/engine/ | `models/telemetry.py` | keep product/provider usage telemetry separate from admission event DTOs | | `capacity.py` | keep as cross-cutting capacity diagnostic/reporting code that consumes read-only scheduler/request DTOs and snapshots | | `SchedulingHintResolver`, `SchedulingHint`, and scheduler-side model-bound fallbacks | remove; `SchedulingMetadata` plus `TaskSchedulingResolver` are the only durable path | -| `ThrottleManager`, `ThrottleDomain`, `ThrottleConfig`, `ThrottledModelClient`, and `throttled_model_client` | remove; request admission and `ModelRequestExecutor` are the only durable request-control path | +| `ThrottleManager`, `ThrottleDomain`, `ThrottledModelClient`, and `throttled_model_client` | remove; request admission and `ModelRequestExecutor` are the only durable request-control path | +| `ThrottleConfig` and `RunConfig.throttle` | keep only as deprecated public config compatibility shims that translate to `RequestAdmissionTuningConfig` and emit `DeprecationWarning`; not durable engine architecture | ## Import Rules From 14673cd22e13090a056a0cf186c9ea19a8b08e81 Mon Sep 17 00:00:00 2001 From: "Eric W. Tramel" Date: Wed, 20 May 2026 15:14:03 -0400 Subject: [PATCH 30/33] Rename request admission success window knob --- .../src/data_designer/config/run_config.py | 30 ++----------- .../tests/config/test_run_config.py | 42 +++++++------------ .../src/data_designer/engine/capacity.py | 4 +- .../data_designer/engine/models/factory.py | 2 +- .../engine/models/request_admission/config.py | 2 +- .../models/request_admission/controller.py | 2 +- .../request_admission/test_controller.py | 2 +- .../engine/models/test_model_registry.py | 4 +- plans/645/async-scheduling-epic.puml | 4 +- plans/645/contracts.md | 6 +-- 10 files changed, 33 insertions(+), 65 deletions(-) diff --git a/packages/data-designer-config/src/data_designer/config/run_config.py b/packages/data-designer-config/src/data_designer/config/run_config.py index 52c4be531..05a1f0909 100644 --- a/packages/data-designer-config/src/data_designer/config/run_config.py +++ b/packages/data-designer-config/src/data_designer/config/run_config.py @@ -4,7 +4,7 @@ from __future__ import annotations import warnings -from typing import Any, ClassVar +from typing import Any from pydantic import Field, model_validator from typing_extensions import Self @@ -34,13 +34,6 @@ class RequestAdmissionTuningConfig(ConfigBase): below that cap and are intended for provider/runtime support cases. """ - _LEGACY_FIELD_NAMES: ClassVar[dict[str, str]] = { - "reduce_factor": "multiplicative_decrease_factor", - "additive_increase": "additive_increase_step", - "success_window": "increase_after_successes", - "rampup_seconds": "startup_ramp_seconds", - } - multiplicative_decrease_factor: float = Field( default=0.75, gt=0.0, @@ -52,7 +45,7 @@ class RequestAdmissionTuningConfig(ConfigBase): ge=1, description="Slots added to the adaptive concurrency limit after each successful recovery window.", ) - increase_after_successes: int = Field( + successes_until_increase: int = Field( default=25, ge=1, description="Successful releases required before additive recovery increases the adaptive limit.", @@ -71,21 +64,6 @@ class RequestAdmissionTuningConfig(ConfigBase): ), ) - @model_validator(mode="before") - @classmethod - def normalize_legacy_field_names(cls, data: Any) -> Any: - """Accept old throttle-era names inside the new request-admission DTO.""" - if not isinstance(data, dict): - return data - normalized = dict(data) - for old_name, new_name in cls._LEGACY_FIELD_NAMES.items(): - if old_name not in normalized: - continue - if new_name in normalized: - raise ValueError(f"Specify either {old_name!r} or {new_name!r} for request admission tuning, not both.") - normalized[new_name] = normalized.pop(old_name) - return normalized - class ThrottleConfig(ConfigBase): """Deprecated compatibility DTO for request-admission tuning. @@ -109,7 +87,7 @@ class ThrottleConfig(ConfigBase): success_window: int = Field( default=25, ge=1, - description="Deprecated alias for RequestAdmissionTuningConfig.increase_after_successes.", + description="Deprecated alias for RequestAdmissionTuningConfig.successes_until_increase.", ) cooldown_seconds: float = Field( default=2.0, @@ -127,7 +105,7 @@ def to_request_admission_tuning(self) -> RequestAdmissionTuningConfig: return RequestAdmissionTuningConfig( multiplicative_decrease_factor=self.reduce_factor, additive_increase_step=self.additive_increase, - increase_after_successes=self.success_window, + successes_until_increase=self.success_window, cooldown_seconds=self.cooldown_seconds, ) diff --git a/packages/data-designer-config/tests/config/test_run_config.py b/packages/data-designer-config/tests/config/test_run_config.py index 3447c122e..5c5c2979b 100644 --- a/packages/data-designer-config/tests/config/test_run_config.py +++ b/packages/data-designer-config/tests/config/test_run_config.py @@ -44,7 +44,7 @@ def test_run_config_throttle_shim_translates_to_request_admission() -> None: assert run_config.request_admission is not None assert run_config.request_admission.multiplicative_decrease_factor == 0.5 assert run_config.request_admission.additive_increase_step == 2 - assert run_config.request_admission.increase_after_successes == 7 + assert run_config.request_admission.successes_until_increase == 7 assert run_config.request_admission.cooldown_seconds == 1.5 assert run_config.request_admission.startup_ramp_seconds == 0.0 @@ -63,7 +63,7 @@ def test_run_config_throttle_shim_accepts_legacy_dict() -> None: assert run_config.request_admission is not None assert run_config.request_admission.multiplicative_decrease_factor == 0.5 assert run_config.request_admission.additive_increase_step == 2 - assert run_config.request_admission.increase_after_successes == 7 + assert run_config.request_admission.successes_until_increase == 7 assert run_config.request_admission.cooldown_seconds == 1.5 @@ -76,37 +76,21 @@ def test_request_admission_tuning_config_accepts_canonical_fields() -> None: config = RequestAdmissionTuningConfig( multiplicative_decrease_factor=0.5, additive_increase_step=2, - increase_after_successes=7, + successes_until_increase=7, cooldown_seconds=1.5, startup_ramp_seconds=30.0, ) assert config.multiplicative_decrease_factor == 0.5 assert config.additive_increase_step == 2 - assert config.increase_after_successes == 7 + assert config.successes_until_increase == 7 assert config.cooldown_seconds == 1.5 assert config.startup_ramp_seconds == 30.0 -def test_request_admission_tuning_config_accepts_throttle_era_field_names() -> None: - config = RequestAdmissionTuningConfig( - reduce_factor=0.5, - additive_increase=2, - success_window=7, - cooldown_seconds=1.5, - rampup_seconds=30.0, - ) - - assert config.multiplicative_decrease_factor == 0.5 - assert config.additive_increase_step == 2 - assert config.increase_after_successes == 7 - assert config.cooldown_seconds == 1.5 - assert config.startup_ramp_seconds == 30.0 - - -def test_request_admission_tuning_config_rejects_duplicate_legacy_and_canonical_fields() -> None: - with pytest.raises(ValidationError, match="Specify either 'reduce_factor' or 'multiplicative_decrease_factor'"): - RequestAdmissionTuningConfig(reduce_factor=0.5, multiplicative_decrease_factor=0.75) +def test_request_admission_tuning_config_rejects_throttle_era_field_names() -> None: + with pytest.raises(ValidationError, match="success_window"): + RequestAdmissionTuningConfig(success_window=7) def test_run_config_accepts_request_admission_tuning() -> None: @@ -116,12 +100,18 @@ def test_run_config_accepts_request_admission_tuning() -> None: assert run_config.request_admission.startup_ramp_seconds == 10.0 -def test_run_config_accepts_request_admission_tuning_dict_with_throttle_era_names() -> None: - run_config = RunConfig(request_admission={"reduce_factor": 0.5, "success_window": 7, "rampup_seconds": 10.0}) +def test_run_config_accepts_request_admission_tuning_dict() -> None: + run_config = RunConfig( + request_admission={ + "multiplicative_decrease_factor": 0.5, + "successes_until_increase": 7, + "startup_ramp_seconds": 10.0, + } + ) assert run_config.request_admission is not None assert run_config.request_admission.multiplicative_decrease_factor == 0.5 - assert run_config.request_admission.increase_after_successes == 7 + assert run_config.request_admission.successes_until_increase == 7 assert run_config.request_admission.startup_ramp_seconds == 10.0 diff --git a/packages/data-designer-engine/src/data_designer/engine/capacity.py b/packages/data-designer-engine/src/data_designer/engine/capacity.py index 9ff8281bc..e10a729e7 100644 --- a/packages/data-designer-engine/src/data_designer/engine/capacity.py +++ b/packages/data-designer-engine/src/data_designer/engine/capacity.py @@ -54,7 +54,7 @@ class RequestAdmissionConfigSnapshot: cooldown_seconds: float multiplicative_decrease_factor: float additive_increase_step: int - increase_after_successes: int + successes_until_increase: int startup_ramp_seconds: float default_queue_wait_timeout_seconds: float | None @@ -68,7 +68,7 @@ def from_config(cls, config: RequestAdmissionConfig) -> RequestAdmissionConfigSn cooldown_seconds=config.cooldown_seconds, multiplicative_decrease_factor=config.multiplicative_decrease_factor, additive_increase_step=config.additive_increase_step, - increase_after_successes=config.increase_after_successes, + successes_until_increase=config.successes_until_increase, startup_ramp_seconds=config.startup_ramp_seconds, default_queue_wait_timeout_seconds=config.default_queue_wait_timeout_seconds, ) diff --git a/packages/data-designer-engine/src/data_designer/engine/models/factory.py b/packages/data-designer-engine/src/data_designer/engine/models/factory.py index b68178af9..73ef6756c 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/factory.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/factory.py @@ -102,6 +102,6 @@ def _request_admission_config_from_run_config( cooldown_seconds=tuning.cooldown_seconds, multiplicative_decrease_factor=tuning.multiplicative_decrease_factor, additive_increase_step=tuning.additive_increase_step, - increase_after_successes=tuning.increase_after_successes, + successes_until_increase=tuning.successes_until_increase, startup_ramp_seconds=tuning.startup_ramp_seconds, ) diff --git a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/config.py b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/config.py index be209029a..433e7942c 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/config.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/config.py @@ -16,6 +16,6 @@ class RequestAdmissionConfig: cooldown_seconds: float = 2.0 multiplicative_decrease_factor: float = 0.75 additive_increase_step: int = 1 - increase_after_successes: int = 25 + successes_until_increase: int = 25 startup_ramp_seconds: float = 0.0 default_queue_wait_timeout_seconds: float | None = None diff --git a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py index ab13260a5..38bbd0598 100644 --- a/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py +++ b/packages/data-designer-engine/src/data_designer/engine/models/request_admission/controller.py @@ -608,7 +608,7 @@ def _apply_outcome( prev_limit = state.current_limit state.consecutive_rate_limits = 0 state.success_streak += 1 - if state.success_streak >= self._config.increase_after_successes: + if state.success_streak >= self._config.successes_until_increase: state.current_limit = min(effective_max, state.current_limit + self._config.additive_increase_step) state.success_streak = 0 if state.current_limit != prev_limit: diff --git a/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py b/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py index c9767f02a..af77f8c40 100644 --- a/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py +++ b/packages/data-designer-engine/tests/engine/models/request_admission/test_controller.py @@ -201,7 +201,7 @@ def test_request_admission_additive_recovery_after_successes() -> None: cap=3, config=RequestAdmissionConfig( initial_limits={item.resource: 1}, - increase_after_successes=1, + successes_until_increase=1, additive_increase_step=1, ), ) diff --git a/packages/data-designer-engine/tests/engine/models/test_model_registry.py b/packages/data-designer-engine/tests/engine/models/test_model_registry.py index 75c067a57..fa43e8117 100644 --- a/packages/data-designer-engine/tests/engine/models/test_model_registry.py +++ b/packages/data-designer-engine/tests/engine/models/test_model_registry.py @@ -68,7 +68,7 @@ def test_create_model_registry_maps_request_admission_tuning_config( request_admission=RequestAdmissionTuningConfig( multiplicative_decrease_factor=0.5, additive_increase_step=2, - increase_after_successes=7, + successes_until_increase=7, cooldown_seconds=1.5, startup_ramp_seconds=30.0, ) @@ -79,7 +79,7 @@ def test_create_model_registry_maps_request_admission_tuning_config( request_config = model_registry.request_admission.config assert request_config.multiplicative_decrease_factor == 0.5 assert request_config.additive_increase_step == 2 - assert request_config.increase_after_successes == 7 + assert request_config.successes_until_increase == 7 assert request_config.cooldown_seconds == 1.5 assert request_config.startup_ramp_seconds == 30.0 diff --git a/plans/645/async-scheduling-epic.puml b/plans/645/async-scheduling-epic.puml index f35913d0c..e581eab8f 100644 --- a/plans/645/async-scheduling-epic.puml +++ b/plans/645/async-scheduling-epic.puml @@ -462,7 +462,7 @@ package "Request config" { +cooldown_seconds +multiplicative_decrease_factor +additive_increase_step - +increase_after_successes + +successes_until_increase +startup_ramp_seconds +default_queue_wait_timeout } @@ -584,7 +584,7 @@ package "Capacity planning (issue 654)" { +cooldown_seconds +multiplicative_decrease_factor +additive_increase_step - +increase_after_successes + +successes_until_increase +startup_ramp_seconds +default_queue_wait_timeout } diff --git a/plans/645/contracts.md b/plans/645/contracts.md index b6e16ab28..b8880e149 100644 --- a/plans/645/contracts.md +++ b/plans/645/contracts.md @@ -333,7 +333,7 @@ V1 AIMD semantics: - `initial_limit` is clamped to `[1, effective_max]` - `current_limit` starts at `initial_limit` - on `rate_limited`, `current_limit = max(1, floor(current_limit * multiplicative_decrease_factor))`, `blocked_until_monotonic` is set from provider `retry_after_seconds` when supplied or the configured cooldown otherwise, and rate-limit counters increment -- on success outside cooldown, successful releases accumulate; after `increase_after_successes` successes, `current_limit = min(effective_max, current_limit + additive_increase_step)` +- on success outside cooldown, successful releases accumulate; after `successes_until_increase` successes, `current_limit = min(effective_max, current_limit + additive_increase_step)` - `request_soft_ceiling_recovered` fires when `current_limit` rises above the last rate-limit ceiling - `request_fully_recovered` fires when `current_limit == effective_max` and cooldown has cleared - all timing uses a monotonic clock @@ -352,7 +352,7 @@ It has no mutation or admission methods. Snapshots are immutable and internally consistent for their capture point. Domain snapshots include `captured_at`, monotonic `sequence`, resource, effective max, current limit, in-flight count, active lease count, waiters, blocked-until timing, cooldown remaining, rate-limit ceiling, consecutive rate limits, last outcome summary, and leak diagnostic counters. Global provider/model snapshots include aggregate static cap, aggregate in-flight count across domains, aggregate active lease count, aliases contributing to the cap, and per-domain limit summaries. -`RequestAdmissionConfig` is the durable engine-internal request-admission tuning/config vocabulary for V1. It includes request resources, per-resource `initial_limit`, optional `max_limit_clamp`, configured cooldown, `multiplicative_decrease_factor`, `additive_increase_step`, `increase_after_successes`, `startup_ramp_seconds`, and default queue-wait timeout. Legacy request-control config names are not durable names; the public `RequestAdmissionTuningConfig` may accept old throttle-era spelling as input aliases for migration, and `RunConfig.throttle` may translate a deprecated `ThrottleConfig` into `RequestAdmissionTuningConfig`, but both paths store and document scheduler-era names. +`RequestAdmissionConfig` is the durable engine-internal request-admission tuning/config vocabulary for V1. It includes request resources, per-resource `initial_limit`, optional `max_limit_clamp`, configured cooldown, `multiplicative_decrease_factor`, `additive_increase_step`, `successes_until_increase`, `startup_ramp_seconds`, and default queue-wait timeout. Legacy request-control config names are not durable names. `RunConfig.throttle` may translate a deprecated `ThrottleConfig` into `RequestAdmissionTuningConfig`, but the new request-admission DTOs store and document scheduler-era names. ## Telemetry And Correlation Contracts @@ -490,7 +490,7 @@ RequestAdmissionConfigSnapshot: cooldown_seconds: float multiplicative_decrease_factor: float additive_increase_step: int - increase_after_successes: int + successes_until_increase: int startup_ramp_seconds: float default_queue_wait_timeout_seconds: float | None From a06036faa98eb108d72ff07c3111a2ea7bd7e164 Mon Sep 17 00:00:00 2001 From: "Eric W. Tramel" Date: Wed, 20 May 2026 15:47:10 -0400 Subject: [PATCH 31/33] Preserve multi-model plugin alias scheduling --- .../column_generators/generators/base.py | 27 ++++++-- .../scheduling/test_resolver.py | 65 +++++++++++++++++++ plans/645/capacity-model.md | 4 +- plans/645/contracts.md | 11 ++-- 4 files changed, 96 insertions(+), 11 deletions(-) diff --git a/packages/data-designer-engine/src/data_designer/engine/column_generators/generators/base.py b/packages/data-designer-engine/src/data_designer/engine/column_generators/generators/base.py index e2a333c69..ba432ce2c 100644 --- a/packages/data-designer-engine/src/data_designer/engine/column_generators/generators/base.py +++ b/packages/data-designer-engine/src/data_designer/engine/column_generators/generators/base.py @@ -6,6 +6,7 @@ import asyncio import concurrent.futures import functools +import hashlib import logging from abc import ABC, abstractmethod from dataclasses import dataclass, field @@ -211,10 +212,18 @@ def get_scheduling_metadata(self) -> SchedulingMetadata: bucket.caps.append(cap) if len(endpoints) != 1: - raise SchedulingMetadataError( - code="ambiguous_model_aliases", - message="Model scheduling metadata must resolve to one provider/model/generation endpoint.", - diagnostics={"endpoints": sorted(str(endpoint) for endpoint in endpoints)}, + raw_caps = tuple(cap for bucket in endpoints.values() for cap in bucket.caps) + return SchedulingMetadata.custom_model( + _scheduling_plugin_namespace(type(self)), + _scheduling_alias_set_resource_name(aliases), + "v1", + weight=max(1, sum(raw_caps)), + diagnostics={ + "aliases": tuple(sorted(aliases)), + "endpoints": tuple(sorted(str(endpoint) for endpoint in endpoints)), + "fallback_reason": "multi_endpoint_alias_set", + "raw_caps": raw_caps, + }, ) endpoint, bucket = next(iter(endpoints.items())) @@ -244,6 +253,16 @@ def _get_scheduling_model_aliases(self) -> list[str]: return list(dict.fromkeys(str(alias) for alias in aliases if alias)) +def _scheduling_plugin_namespace(generator_type: type[object]) -> str: + return f"{generator_type.__module__}.{generator_type.__qualname__}" + + +def _scheduling_alias_set_resource_name(aliases: list[str]) -> str: + alias_key = "\0".join(sorted(aliases)).encode() + digest = hashlib.sha1(alias_key).hexdigest()[:16] + return f"alias-set-{digest}" + + class ColumnGeneratorWithModel(ColumnGeneratorWithModelRegistry[TaskConfigT], ABC): @functools.cached_property def model(self) -> ModelFacade: diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_resolver.py b/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_resolver.py index 1804dd272..d6dfcdbab 100644 --- a/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_resolver.py +++ b/packages/data-designer-engine/tests/engine/dataset_builders/scheduling/test_resolver.py @@ -4,10 +4,12 @@ from __future__ import annotations from types import SimpleNamespace +from typing import Literal from unittest.mock import MagicMock import pytest +from data_designer.config.base import SingleColumnConfig from data_designer.config.column_configs import ExpressionColumnConfig from data_designer.config.models import GenerationType from data_designer.config.scheduling import SchedulingMetadata, SchedulingMetadataError @@ -125,3 +127,66 @@ def generate(self, data: object) -> object: resolver = TaskSchedulingResolver({"answer": generator}) # type: ignore[arg-type] schedulable = resolver.schedulable_task(_task(), ("answer",)) assert schedulable.request_resource_key == RequestResourceKey("nvidia", "endpoint", RequestDomain.CHAT) + + +def test_model_registry_generator_metadata_uses_custom_model_for_multi_endpoint_aliases() -> None: + class _PairwiseJudgeColumnConfig(SingleColumnConfig): + column_type: Literal["pairwise-judge-test"] = "pairwise-judge-test" + model_alias: str + judge_model_alias: str + + @property + def required_columns(self) -> list[str]: + return [] + + @property + def side_effect_columns(self) -> list[str]: + return [] + + def get_model_aliases(self) -> list[str]: + return [self.model_alias, self.judge_model_alias] + + class _RegistryGenerator(ColumnGeneratorWithModelRegistry[_PairwiseJudgeColumnConfig]): + @staticmethod + def get_generation_strategy() -> object: + return object() + + def generate(self, data: object) -> object: + return data + + config = _PairwiseJudgeColumnConfig(name="answer", model_alias="draft", judge_model_alias="judge") + assert config.get_model_aliases() == ["draft", "judge"] + generator = _RegistryGenerator(config=config, resource_provider=MagicMock()) + configs = { + "draft": SimpleNamespace( + model="draft-endpoint", + generation_type=GenerationType.CHAT_COMPLETION, + inference_parameters=SimpleNamespace(max_parallel_requests=4), + ), + "judge": SimpleNamespace( + model="judge-endpoint", + generation_type=GenerationType.CHAT_COMPLETION, + inference_parameters=SimpleNamespace(max_parallel_requests=2), + ), + } + providers = { + "draft": SimpleNamespace(name="nvidia"), + "judge": SimpleNamespace(name="openai"), + } + generator.get_model_config = lambda model_alias: configs[model_alias] # type: ignore[method-assign] + generator.get_model_provider_name = lambda model_alias: providers[model_alias].name # type: ignore[method-assign] + + metadata = generator.get_scheduling_metadata() + + assert metadata.kind == "custom_model" + assert metadata.identity[1].endswith("._RegistryGenerator") + assert metadata.identity[2].startswith("alias-set-") + assert metadata.weight == 6 + assert metadata.diagnostics["aliases"] == ("draft", "judge") + assert metadata.diagnostics["fallback_reason"] == "multi_endpoint_alias_set" + assert metadata.diagnostics["raw_caps"] == (4, 2) + + resolver = TaskSchedulingResolver({"answer": generator}) # type: ignore[arg-type] + schedulable = resolver.schedulable_task(_task(), ("answer",)) + assert schedulable.group.key.kind == "custom_model" + assert schedulable.request_resource_key is None diff --git a/plans/645/capacity-model.md b/plans/645/capacity-model.md index 13f6a3e93..811546c13 100644 --- a/plans/645/capacity-model.md +++ b/plans/645/capacity-model.md @@ -93,13 +93,13 @@ If a distinct task-stage backpressure resource remains for model-producing work, ## Alias And Provider Semantics -Scheduling metadata may use model aliases to derive static resource identity and weight. Alias metadata should deduplicate aliases that resolve to the same provider/model/generation resource before summing weight. +Scheduling metadata may use model aliases to derive static resource identity and weight. Alias metadata should deduplicate aliases that resolve to the same provider/model/generation resource before deriving effective weight. The startup health-check hook `get_model_aliases()` remains separate from the scheduler metadata hook; a multi-endpoint alias set reported for health checks must not be forced into one provider/model resource. Request admission resources are provider/model/domain scoped. A provider/model may have a global effective static cap while each request domain has its own adaptive state. The capacity plan must make that distinction visible. V1 does not define a cross-domain aggregate AIMD provider cap beyond the documented provider/model effective static cap unless a later issue explicitly adds that policy. The request controller still enforces the static aggregate cap by checking provider/model aggregate in-flight counts before admitting a domain request. -Alias-derived provider/model caps deduplicate aliases that resolve to the same concrete provider/model endpoint. If aliases for the same endpoint specify different `max_parallel_requests` values, V1 uses the minimum as the effective static cap and records every contributing alias and raw cap in `AsyncCapacityPlan`. This min-merge is not a metadata error. Alias resolution is fatal only when endpoint identity is ambiguous or conflicting. If the provider treats generation type as a distinct endpoint, the canonical model id includes that distinction before cap merging. +Alias-derived provider/model caps deduplicate aliases that resolve to the same concrete provider/model endpoint. If aliases for the same endpoint specify different `max_parallel_requests` values, V1 uses the minimum as the effective static cap and records every contributing alias and raw cap in `AsyncCapacityPlan`. This min-merge is not a metadata error. If a default registry-backed generator sees multiple aliases that resolve to different concrete endpoints, it should use deterministic `custom_model` task-stage metadata unless the plugin overrides `get_scheduling_metadata()` with a sharper declaration. If the provider treats generation type as a distinct endpoint, the canonical model id includes that distinction before cap merging. ## Observability Requirements diff --git a/plans/645/contracts.md b/plans/645/contracts.md index b8880e149..0c7a51a4f 100644 --- a/plans/645/contracts.md +++ b/plans/645/contracts.md @@ -49,12 +49,13 @@ Rules: - Metadata identity is resource identity, not a queue key. - Metadata cannot encode queue depth, admitted limits, runtime pressure, request domains, AIMD state, or provider cooldown. -- Multi-alias metadata deduplicates aliases that resolve to the same provider/model/generation resource before summing weight. +- Alias-derived model metadata deduplicates aliases that resolve to the same provider/model/generation resource before deriving effective weight. - Alias ordering is canonicalized so equivalent configs produce equivalent metadata. - Generators that do not override `get_scheduling_metadata()` receive a documented default metadata value. The default must preserve current behavior and must not infer provider/model pressure dynamically. -- Invalid `kind`, non-deterministic `identity`, non-positive `weight`, or ambiguous alias resolution raises `SchedulingMetadataError`. -- Differing `max_parallel_requests` values for aliases that resolve to the same concrete provider/model endpoint are not, by themselves, ambiguous. They merge through the static-cap min rule in the capacity model. Alias ambiguity is fatal when aliases cannot be resolved to one concrete endpoint, resolve to conflicting endpoint identities, or would require hidden dynamic inference to choose a resource. -- Fallback metadata is safe only when it preserves current scheduling behavior and the resolver can explain the fallback in diagnostics. Ambiguous resource identity or invalid weights are fatal. +- Invalid `kind`, non-deterministic `identity`, or non-positive `weight` raises `SchedulingMetadataError`. +- Differing `max_parallel_requests` values for aliases that resolve to the same concrete provider/model endpoint are not, by themselves, ambiguous. They merge through the static-cap min rule in the capacity model. +- A default implementation must not turn `get_model_aliases()` into a requirement that every health-check alias collapse to one scheduler endpoint. If a registry-backed generator reports multiple aliases that resolve to different concrete endpoints and does not override `get_scheduling_metadata()`, the default metadata should fall back to deterministic `custom_model` metadata with diagnostics. Plugins that need sharper endpoint-aware scheduler grouping should override `get_scheduling_metadata()` directly. +- Fallback metadata is safe only when it preserves current scheduling behavior and the resolver can explain the fallback in diagnostics. Invalid metadata shape or invalid weights are fatal. Normative V1 metadata shapes: @@ -62,7 +63,7 @@ Normative V1 metadata shapes: | --- | --- | --- | --- | | `local` | `("local", resource_name)` where `resource_name` defaults to `"default"` | positive integer, default `1` | the default for generators that do not override `get_scheduling_metadata()` is `SchedulingMetadata(kind="local", identity=("local", "default"), weight=1)` | | `model` | `("model", provider_name, canonical_model_id, generation_kind)` after alias resolution | effective static provider/model capacity hint, normally derived from the model config's `max_parallel_requests` and clamped to at least `1` | safe fallback is allowed only when the resolver can identify the same canonical provider/model resource as the current implementation | -| `custom_model` | `("custom_model", plugin_namespace, resource_name, version)` with deterministic plugin-provided values | positive plugin-provided capacity hint, defaulting to `1` if omitted | no alias inference is performed unless the plugin returns model aliases through the documented metadata API | +| `custom_model` | `("custom_model", plugin_namespace, resource_name, version)` with deterministic plugin-provided values | positive plugin-provided capacity hint, defaulting to `1` if omitted | used for explicit plugin metadata and for compatibility-preserving defaults when model aliases cannot be represented as one concrete provider/model/generation resource | `SchedulingMetadataError` contains: From b62406bf37c85690ffa90f9a99e56ab433cad6d4 Mon Sep 17 00:00:00 2001 From: "Eric W. Tramel" Date: Wed, 20 May 2026 16:08:51 -0400 Subject: [PATCH 32/33] Preserve row drops for generator built-in failures --- .../dataset_builders/async_scheduler.py | 35 ++++- .../dataset_builders/test_async_scheduler.py | 121 +++++++++++++++--- 2 files changed, 135 insertions(+), 21 deletions(-) diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py index a2a793f5a..43fc7508b 100644 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py @@ -1631,6 +1631,17 @@ async def _execute_task_inner_impl(self, task: Task, lease: TaskAdmissionLease, self._record_observed_task_state() self._wake_event.set() + async def _run_generator_call(self, task: Task, operation: str, call: Coroutine[Any, Any, Any]) -> Any: + """Run user/plugin generator code while preserving scheduler-owned failures.""" + try: + return await call + except Exception as exc: + if self._is_retryable(exc) or self._is_expected_non_retryable(exc): + raise + raise DatasetGenerationError( + f"Generator failed for column '{task.column}' during {operation}: {exc}" + ) from exc + async def _run_from_scratch(self, task: Task, generator: ColumnGenerator) -> Any: """Execute a from_scratch task.""" rg_size = self._get_rg_size(task.row_group) @@ -1638,7 +1649,11 @@ async def _run_from_scratch(self, task: Task, generator: ColumnGenerator) -> Any from data_designer.engine.column_generators.generators.base import FromScratchColumnGenerator if isinstance(generator, FromScratchColumnGenerator): - result_df = await generator.agenerate_from_scratch(rg_size) + result_df = await self._run_generator_call( + task, + "from-scratch generation", + generator.agenerate_from_scratch(rg_size), + ) else: # Non-FromScratch generators dispatched as seeds (no upstream columns) # operate on existing buffer rows — same contract as the sync engine's @@ -1650,7 +1665,11 @@ async def _run_from_scratch(self, task: Task, generator: ColumnGenerator) -> Any input_df = lazy.pd.DataFrame(records) else: input_df = lazy.pd.DataFrame(index=range(rg_size)) - result_df = await generator.agenerate(input_df) + result_df = await self._run_generator_call( + task, + "full-column generation", + generator.agenerate(input_df), + ) # Write results to buffer (include side-effect columns) if self._buffer_manager is not None: @@ -1684,7 +1703,11 @@ async def _run_cell(self, task: Task, generator: ColumnGenerator) -> tuple[Any, # Copy for generation: agenerate crosses an await boundary, so the # generator must not hold a mutable reference to the live record. - result = await generator.agenerate(dict(record)) + result = await self._run_generator_call( + task, + "cell generation", + generator.agenerate(dict(record)), + ) # Write back to buffer (include side-effect columns) if self._buffer_manager is not None and not self._tracker.is_dropped(task.row_group, task.row_index): @@ -1754,7 +1777,11 @@ async def _run_batch(self, task: Task, generator: ColumnGenerator) -> Any: if len(batch_df) == 0: return batch_df - result_df = await generator.agenerate(batch_df) + result_df = await self._run_generator_call( + task, + "batch generation", + generator.agenerate(batch_df), + ) # Merge result columns back to buffer (include side-effect columns) if self._buffer_manager is not None: diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py b/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py index 52047fd0b..b63eb2509 100644 --- a/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py +++ b/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py @@ -192,7 +192,7 @@ def generate(self, data: dict) -> dict: class MockBuggyGenerator(ColumnGenerator[ExpressionColumnConfig]): - """Generator that simulates an internal scheduler/generator bug.""" + """Generator that raises a bare built-in exception from generator code.""" @staticmethod def get_generation_strategy() -> GenerationStrategy: @@ -202,6 +202,27 @@ def generate(self, _data: dict) -> dict: raise KeyError("missing internal key") +class MockBuggyFromScratchGenerator(FromScratchColumnGenerator[ExpressionColumnConfig]): + """From-scratch generator that raises a bare built-in exception from generator code.""" + + @staticmethod + def get_generation_strategy() -> GenerationStrategy: + return GenerationStrategy.FULL_COLUMN + + def generate(self, data: lazy.pd.DataFrame) -> lazy.pd.DataFrame: + return data + + def generate_from_scratch(self, _num_records: int) -> lazy.pd.DataFrame: + raise AssertionError("invalid seed source") + + +class MockBuggyFullColumnGenerator(ColumnGeneratorFullColumn[ExpressionColumnConfig]): + """Full-column generator that raises a bare built-in exception from generator code.""" + + def generate(self, _data: lazy.pd.DataFrame) -> lazy.pd.DataFrame: + raise TypeError("bad batch shape") + + class MockRateLimitGenerator(ColumnGenerator[ExpressionColumnConfig]): """Generator that fails with rate-limit errors before succeeding. @@ -556,43 +577,109 @@ async def test_scheduler_non_retryable_failure_drops_row() -> None: assert tracker.is_row_group_complete(0, 2, ["seed", "fail_col"]) +def test_scheduler_internal_bug_classifier_preserves_scheduler_builtin_failures() -> None: + scheduler, tracker = _build_simple_pipeline(num_records=1) + assert scheduler._is_internal_bug(KeyError("missing internal key")) + assert not scheduler._is_internal_bug(DatasetGenerationError("generator failure")) + assert not tracker.is_dropped(0, 0) + + +@pytest.mark.asyncio(loop_scope="session") +async def test_scheduler_generator_builtin_exception_drops_cell_without_fatal_abort( + caplog: pytest.LogCaptureFixture, +) -> None: + provider = _mock_provider() + scheduler, tracker = _build_simple_pipeline( + num_records=1, + configs=[ + SamplerColumnConfig(name="seed", sampler_type=SamplerType.CATEGORY, params={"values": ["A"]}), + LLMTextColumnConfig(name="buggy_col", prompt="{{ seed }}", model_alias=MODEL_ALIAS), + ], + strategies={ + "seed": GenerationStrategy.FULL_COLUMN, + "buggy_col": GenerationStrategy.CELL_BY_CELL, + }, + generators={ + "seed": MockSeedGenerator(config=_expr_config("seed"), resource_provider=provider), + "buggy_col": MockBuggyGenerator(config=_expr_config("buggy_col"), resource_provider=provider), + }, + ) + + with caplog.at_level(logging.WARNING, logger="data_designer.engine.dataset_builders.async_scheduler"): + await scheduler.run() + + assert tracker.is_dropped(0, 0) + assert isinstance(scheduler.first_non_retryable_error, DatasetGenerationError) + assert isinstance(scheduler.first_non_retryable_error.__cause__, KeyError) + assert "Unexpected fatal Non-retryable failure" not in caplog.text + + @pytest.mark.asyncio(loop_scope="session") -async def test_scheduler_internal_bug_failure_aborts_instead_of_dropping_row( +async def test_scheduler_generator_builtin_exception_drops_from_scratch_group_without_fatal_abort( + caplog: pytest.LogCaptureFixture, +) -> None: + provider = _mock_provider() + configs = [SamplerColumnConfig(name="seed", sampler_type=SamplerType.CATEGORY, params={"values": ["A"]})] + strategies = {"seed": GenerationStrategy.FULL_COLUMN} + generators = {"seed": MockBuggyFromScratchGenerator(config=_expr_config("seed"), resource_provider=provider)} + graph = ExecutionGraph.create(configs, strategies) + tracker = CompletionTracker.with_graph(graph, [(0, 2)]) + scheduler = AsyncTaskScheduler( + generators=generators, + graph=graph, + tracker=tracker, + row_groups=[(0, 2)], + ) + + with caplog.at_level(logging.WARNING, logger="data_designer.engine.dataset_builders.async_scheduler"): + await scheduler.run() + + assert tracker.is_dropped(0, 0) + assert tracker.is_dropped(0, 1) + assert isinstance(scheduler.first_non_retryable_error, DatasetGenerationError) + assert isinstance(scheduler.first_non_retryable_error.__cause__, AssertionError) + assert "Unexpected fatal Non-retryable failure" not in caplog.text + + +@pytest.mark.asyncio(loop_scope="session") +async def test_scheduler_generator_builtin_exception_drops_batch_group_without_fatal_abort( caplog: pytest.LogCaptureFixture, ) -> None: provider = _mock_provider() configs = [ SamplerColumnConfig(name="seed", sampler_type=SamplerType.CATEGORY, params={"values": ["A"]}), - LLMTextColumnConfig(name="buggy_col", prompt="{{ seed }}", model_alias=MODEL_ALIAS), + LLMTextColumnConfig(name="buggy_batch", prompt="{{ seed }}", model_alias=MODEL_ALIAS), ] strategies = { "seed": GenerationStrategy.FULL_COLUMN, - "buggy_col": GenerationStrategy.CELL_BY_CELL, + "buggy_batch": GenerationStrategy.FULL_COLUMN, } generators = { "seed": MockSeedGenerator(config=_expr_config("seed"), resource_provider=provider), - "buggy_col": MockBuggyGenerator(config=_expr_config("buggy_col"), resource_provider=provider), + "buggy_batch": MockBuggyFullColumnGenerator( + config=_expr_config("buggy_batch"), + resource_provider=provider, + ), } graph = ExecutionGraph.create(configs, strategies) - tracker = CompletionTracker.with_graph(graph, [(0, 1)]) + row_groups = [(0, 2)] + tracker = CompletionTracker.with_graph(graph, row_groups) scheduler = AsyncTaskScheduler( generators=generators, graph=graph, tracker=tracker, - row_groups=[(0, 1)], + row_groups=row_groups, + buffer_manager=RowGroupBufferManager(_make_storage()), ) - with caplog.at_level(logging.ERROR, logger="data_designer.engine.dataset_builders.async_scheduler"): - with pytest.raises(DatasetGenerationError, match="Unexpected internal task failure") as exc_info: - await scheduler.run() + with caplog.at_level(logging.WARNING, logger="data_designer.engine.dataset_builders.async_scheduler"): + await scheduler.run() - assert isinstance(exc_info.value.__cause__, KeyError) - assert not tracker.is_dropped(0, 0) - error_records = [ - record for record in caplog.records if "Unexpected fatal Non-retryable failure" in record.getMessage() - ] - assert error_records - assert error_records[0].exc_info is not None + assert tracker.is_dropped(0, 0) + assert tracker.is_dropped(0, 1) + assert isinstance(scheduler.first_non_retryable_error, DatasetGenerationError) + assert isinstance(scheduler.first_non_retryable_error.__cause__, TypeError) + assert "Unexpected fatal Non-retryable failure" not in caplog.text @pytest.mark.asyncio(loop_scope="session") From c2522e3c83521a4af08703b4e2bee7c769310b41 Mon Sep 17 00:00:00 2001 From: "Eric W. Tramel" Date: Wed, 20 May 2026 16:33:05 -0400 Subject: [PATCH 33/33] Validate async full-column generator results --- .../dataset_builders/async_scheduler.py | 40 ++++++-- .../dataset_builders/test_async_scheduler.py | 91 +++++++++++++++++++ 2 files changed, 125 insertions(+), 6 deletions(-) diff --git a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py index 43fc7508b..9109eafcc 100644 --- a/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py +++ b/packages/data-designer-engine/src/data_designer/engine/dataset_builders/async_scheduler.py @@ -1642,6 +1642,25 @@ async def _run_generator_call(self, task: Task, operation: str, call: Coroutine[ f"Generator failed for column '{task.column}' during {operation}: {exc}" ) from exc + def _require_dataframe_result( + self, + task: Task, + operation: str, + result: Any, + *, + expected_rows: int | None = None, + ) -> Any: + if not isinstance(result, lazy.pd.DataFrame): + raise DatasetGenerationError( + f"{operation} for column '{task.column}' must return a DataFrame, got {type(result).__name__}." + ) + if expected_rows is not None and len(result) != expected_rows: + raise DatasetGenerationError( + f"{operation} for column '{task.column}' returned {len(result)} rows " + f"but {expected_rows} were expected (rg={task.row_group})." + ) + return result + async def _run_from_scratch(self, task: Task, generator: ColumnGenerator) -> Any: """Execute a from_scratch task.""" rg_size = self._get_rg_size(task.row_group) @@ -1654,6 +1673,7 @@ async def _run_from_scratch(self, task: Task, generator: ColumnGenerator) -> Any "from-scratch generation", generator.agenerate_from_scratch(rg_size), ) + result_operation = "From-scratch generator" else: # Non-FromScratch generators dispatched as seeds (no upstream columns) # operate on existing buffer rows — same contract as the sync engine's @@ -1670,6 +1690,13 @@ async def _run_from_scratch(self, task: Task, generator: ColumnGenerator) -> Any "full-column generation", generator.agenerate(input_df), ) + result_operation = "Full-column generator" + result_df = self._require_dataframe_result( + task, + result_operation, + result_df, + expected_rows=rg_size, + ) # Write results to buffer (include side-effect columns) if self._buffer_manager is not None: @@ -1777,21 +1804,22 @@ async def _run_batch(self, task: Task, generator: ColumnGenerator) -> Any: if len(batch_df) == 0: return batch_df + active_rows = rg_size - len(pre_dropped) - len(pre_skipped) if self._buffer_manager is not None else None result_df = await self._run_generator_call( task, "batch generation", generator.agenerate(batch_df), ) + result_df = self._require_dataframe_result( + task, + "Batch generator", + result_df, + expected_rows=active_rows, + ) # Merge result columns back to buffer (include side-effect columns) if self._buffer_manager is not None: write_cols = self._gen_instance_to_columns_including_side_effects.get(id(generator), [task.column]) - active_rows = rg_size - len(pre_dropped) - len(pre_skipped) - if len(result_df) != active_rows: - raise ValueError( - f"Batch generator for '{task.column}' returned {len(result_df)} rows " - f"but {active_rows} were expected (rg={task.row_group})." - ) result_idx = 0 for ri in range(rg_size): if ri in pre_dropped or ri in pre_skipped: diff --git a/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py b/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py index b63eb2509..41191c609 100644 --- a/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py +++ b/packages/data-designer-engine/tests/engine/dataset_builders/test_async_scheduler.py @@ -216,6 +216,20 @@ def generate_from_scratch(self, _num_records: int) -> lazy.pd.DataFrame: raise AssertionError("invalid seed source") +class MockMalformedFromScratchGenerator(FromScratchColumnGenerator[ExpressionColumnConfig]): + """From-scratch generator that returns a non-DataFrame object.""" + + @staticmethod + def get_generation_strategy() -> GenerationStrategy: + return GenerationStrategy.FULL_COLUMN + + def generate(self, data: lazy.pd.DataFrame) -> lazy.pd.DataFrame: + return data + + def generate_from_scratch(self, num_records: int) -> Any: + return [{"seed": index} for index in range(num_records)] + + class MockBuggyFullColumnGenerator(ColumnGeneratorFullColumn[ExpressionColumnConfig]): """Full-column generator that raises a bare built-in exception from generator code.""" @@ -223,6 +237,13 @@ def generate(self, _data: lazy.pd.DataFrame) -> lazy.pd.DataFrame: raise TypeError("bad batch shape") +class MockMalformedFullColumnGenerator(ColumnGeneratorFullColumn[ExpressionColumnConfig]): + """Full-column generator that returns a non-DataFrame object.""" + + def generate(self, data: lazy.pd.DataFrame) -> Any: + return [{"seed": value, self.config.name: "bad"} for value in data.get("seed", [])] + + class MockRateLimitGenerator(ColumnGenerator[ExpressionColumnConfig]): """Generator that fails with rate-limit errors before succeeding. @@ -682,6 +703,76 @@ async def test_scheduler_generator_builtin_exception_drops_batch_group_without_f assert "Unexpected fatal Non-retryable failure" not in caplog.text +@pytest.mark.asyncio(loop_scope="session") +async def test_scheduler_generator_malformed_from_scratch_return_drops_group_without_fatal_abort( + caplog: pytest.LogCaptureFixture, +) -> None: + provider = _mock_provider() + configs = [SamplerColumnConfig(name="seed", sampler_type=SamplerType.CATEGORY, params={"values": ["A"]})] + strategies = {"seed": GenerationStrategy.FULL_COLUMN} + generators = {"seed": MockMalformedFromScratchGenerator(config=_expr_config("seed"), resource_provider=provider)} + graph = ExecutionGraph.create(configs, strategies) + row_groups = [(0, 2)] + tracker = CompletionTracker.with_graph(graph, row_groups) + scheduler = AsyncTaskScheduler( + generators=generators, + graph=graph, + tracker=tracker, + row_groups=row_groups, + buffer_manager=RowGroupBufferManager(_make_storage()), + ) + + with caplog.at_level(logging.WARNING, logger="data_designer.engine.dataset_builders.async_scheduler"): + await scheduler.run() + + assert tracker.is_dropped(0, 0) + assert tracker.is_dropped(0, 1) + assert isinstance(scheduler.first_non_retryable_error, DatasetGenerationError) + assert "must return a DataFrame, got list" in str(scheduler.first_non_retryable_error) + assert "Unexpected fatal Non-retryable failure" not in caplog.text + + +@pytest.mark.asyncio(loop_scope="session") +async def test_scheduler_generator_malformed_batch_return_drops_group_without_fatal_abort( + caplog: pytest.LogCaptureFixture, +) -> None: + provider = _mock_provider() + configs = [ + SamplerColumnConfig(name="seed", sampler_type=SamplerType.CATEGORY, params={"values": ["A"]}), + LLMTextColumnConfig(name="malformed_batch", prompt="{{ seed }}", model_alias=MODEL_ALIAS), + ] + strategies = { + "seed": GenerationStrategy.FULL_COLUMN, + "malformed_batch": GenerationStrategy.FULL_COLUMN, + } + generators = { + "seed": MockSeedGenerator(config=_expr_config("seed"), resource_provider=provider), + "malformed_batch": MockMalformedFullColumnGenerator( + config=_expr_config("malformed_batch"), + resource_provider=provider, + ), + } + graph = ExecutionGraph.create(configs, strategies) + row_groups = [(0, 2)] + tracker = CompletionTracker.with_graph(graph, row_groups) + scheduler = AsyncTaskScheduler( + generators=generators, + graph=graph, + tracker=tracker, + row_groups=row_groups, + buffer_manager=RowGroupBufferManager(_make_storage()), + ) + + with caplog.at_level(logging.WARNING, logger="data_designer.engine.dataset_builders.async_scheduler"): + await scheduler.run() + + assert tracker.is_dropped(0, 0) + assert tracker.is_dropped(0, 1) + assert isinstance(scheduler.first_non_retryable_error, DatasetGenerationError) + assert "must return a DataFrame, got list" in str(scheduler.first_non_retryable_error) + assert "Unexpected fatal Non-retryable failure" not in caplog.text + + @pytest.mark.asyncio(loop_scope="session") async def test_scheduler_custom_generator_key_error_drops_row_without_fatal_abort( caplog: pytest.LogCaptureFixture,

    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 T*1vX(H(bV!cgh_zJLbOuvuxZq diff --git a/fern/assets/owning-the-model-stack/retry-boundary.png b/fern/assets/owning-the-model-stack/retry-boundary.png index e3918eee432b0638ee7381989e533e5d4ab344b2..d01d8f7cd78f919a8bc74a3ac456dba80c7cbe91 100644 GIT binary patch literal 331171 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°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�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

    @wqnNs$rC?3X7+)8b-NORZo= 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

  • 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 T*1vX(H(bV!cgh_zJLbOuvuxZq diff --git a/fern/assets/images/retry-boundary.png b/fern/assets/images/retry-boundary.png index e3918eee432b0638ee7381989e533e5d4ab344b2..d01d8f7cd78f919a8bc74a3ac456dba80c7cbe91 100644 GIT binary patch literal 331171 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°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�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

    @wqnNs$rC?3X7+)8b-NORZo= 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

  • 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 T*1vX(H(bV!cgh_zJLbOuvuxZq diff --git a/docs/devnotes/posts/assets/owning-the-model-stack/retry-boundary.png b/docs/devnotes/posts/assets/owning-the-model-stack/retry-boundary.png index e3918eee432b0638ee7381989e533e5d4ab344b2..d01d8f7cd78f919a8bc74a3ac456dba80c7cbe91 100644 GIT binary patch literal 331171 zcmce-S6owH^EV3eQ&gIWbOHz>DoB8Ukc0#a%>oE2O?od%3y{!JdJBRgB7q15(u4_=lR$3Iq$`}I?2Ued#%aLcV^GpYt76`_)85{rmH+xX=rGeo~kKn z)6iTrrJ8ZaIeB$J4CHO!>QbJM)epOIVP{GyG8ltVF@}ECHzk>kCGL_!qv{%&CbbD@Lzn*%$?lbU_wIw z67=7n|G?>N>*VHyuyu0&Z*h)@|J3bVOW=PG1EnM+f&VuKPo3Q?WX^S0Mx9IePsHb< zE&h!c;bsZ^Uj#sDNlE$plG693!T(oYZg$rHqxSy;$G=AY1H!+p^&d(o{5Lwt6IUxs zJ2$wxnWdE=($39RP}RxF=AD(`qo)f0qr-nu{f`+G{uelilAVp6o7uZpPVTN2RFKuj)jNBe{1Aug+y35Sy~~0mj6MH_&2%RIXTeH)y&S(%JR`W8zVUw!{cuK@g)$Neu4 z{15m3ckj7>!>=j;|9h^$uU@H~M9|PYq15!N1|QwepMN#o zUHNuv^V+t%$}GW#x?8t)ri}(Egns}BnBeeF?&qF@fVK==WHc;DhxKqj!aq!m@ZCE~!!alRHyM z!|QwKPBrh=+Ltk^2i05$;D(+4Lv$?Lw6|yi8gwY0j?5ouWE+11wLF~}!*o}_#D{~t z1a?zWdYbIprkr}CYSA8Hb(*7^);fLfSKc?TDLXv}JqoE;F)Z=7@~3&LprQgY+*90E zck_%ExP*qzasKuIJVOtiJh@mmA%=Y7H)z6>cR>H;5&(Hm{~(n8!;}jx@7jy&XB`j6 z0{jEpW(N=j8hy~Ulde+T=ZA-NZWGffi=|md-j0qwvs@Hn)>P?(T})qd%XB67B1*q^ z^KR=;cZDTXX&`k4;Ii)-iRClCZ+8M|%PUdyy!dd&=5=kCNu0tE(`MO`;nwalWN)Wo zM;^H6U$w*|VPTQJIelW-np2NbjDBwNWFFuNlyGtG3F8*E&-T@5`kRLuvglYw1X7b? zgTvQbHggHyWO#gQE$3Z`%!jviN!8zpS&gy zK8%uEOKs%c#;lx%J?9taLPnPNEZ<#Sp8m~X%HlPpIm}c3bE`SWNE4_+EYTd1s!*#D z`hJ`$3nd#H43UD6^vIOPII=aWW3oLBC`*#eZ9WU)LhdFXJGzT*qZIcxho|H~)(y^! zBp>HA95Q7ML+17LprYHSkl1Oh4uWwQ-glBTM2qw5t99O9NLj=m4RCJqjqr9BnFXFA zZkXgZIC;sr2)n&`HQ}ea)f~p&*z4TjO3hGRI31@wW@3wKozWnXN z729%LQ~hHJsPD<4-E(Zxmt=IOmE6qGfoWY3_1-9)#fy^=sKz4T()5L#(cpa8jlT=q z+6Q?xwOS0`B+BtF?ou?wA6+LAmKp4oP|IO048<2V3GzP5TTdq8J^3slqFVd50y2tx zp=)hNTE0HzCPZJ{gu`rP`B>HJ+MQL2IR-Kv%lg~{7D;8I=O!Ofs;FP$`r>wWEIyW6 z;Ps$(b4CR!S4%gef1!$ACp&lh$#WUUq4LzM!k73wU4*aB26+dbqC`cc5V}Er3&*C@ zGxz(4QyTJSp1S+UNmd!Br;38By*hPs#EKp+zgfP9Tiv~ZtFP0^Tb0;h*eZElVM|?j z)9xo`JUS*M-dg*n@p==62)70F?5rl1Px#2%_%*cl#@qw}GN|LMWy6bI4MhH20knPw z@^^2CSJ|TxK~g=wa}W-<0ypLwMG@=T;wmqnV$y)vMwga=BPHMc0J99{1Pbw4cc_{8 z$V9Y+?>}egl)|$x>#+RPy+TT5?m$-yZSt=*-S;?u64-Bjza&$;@ zwzdAe6n`T!%)iDumbTB~u!_~3In5xe*{K-(F< z6*8_jIwZEtP}rzFl%pT+{1$kdOHy#}jX=FWz@P5X0rc`!fgP<+5uv)Z!>^87l%Fy4 zs{_$ZtF!p&dlNIj&X$=QCw#mbv>7H}}cL4(cM~FCWBR(<8lOY1yafm)B^hh9s}E`a(>9tNPUv>8@+KuG zuOT{8i4CT@SyDSnAP-&-pD1FY=?G5d`HM`*)R}&L%1jJHl)bZ%WAP=N`GPhZDEikM z#eoeq2@Jz0E}K7Ua;@9p*a0;<6D>Y~9Sk_P@IlVy@rD8NAbDRrE!aMJ|4{VsLl#RE zc#oGl_ETJZ!*)f*IzX8eTPxatj$Zn06JGQ>oGH1AK=(QJ8N$9hiOOZ0J$#Bp!XG1P|1E>}1t2k$?u&A#S&}J=|xQg<&cH)B&(_pSRgV6Ib@PMa5VZ z;etHUwl{zy&8(LNihAloiHWWyDi z8VOvGpE~=5S{t#p^ooF_I|ZdT?ym8`vnKy)`dYUdwW&D$e*AJ$ZpAwjnlG+25;h!QM4%d07?E0?KXNi5O^wowHWa<_9et{$UUkSlD z-$}$McK3U;qc$*NR>s51Y1=2WF^UK`4T9RlHQvR_JC)6Ey$p4A{1)46j)5*3DeO3g z&iwGGfd*SI5BsNpBcq8M)7P%~s9FQhW6rp=^pQTYbv}m4nQY2Yp1#w8B|-;2w=1s}A=irEQqW3Tdx# z<$az5BeBnk>0Jl4ZO+!m?AiH*WoeJ@410HWP!;Z5yAOpcV1tGXrWL z!}8Z<6PK(wLmO(sVc~6?p}3NYM?m4X|203@pyc0 zag{bgfYm@J4@nhCH=$%SMkGN7+)89Yk&IBl1MK;H8TV7;mE30QWa+6LMG(=>#Pubp zF}G+dI+3pGed(&)yy)lTR44|CoWMw>MQ>Gb1o7Nm$y?gmP&x64YE8rE3LG>V*&JE_ z?MR7RaV8GjUV}D<*|5lkErF7$a6H}*dN5=(eY90|JQc-Q|iodnsj)V^zLR7?xS#JF-fw=#h!=@z&a>UjkhI=>AJq zT+i8xZAP!n$jR~FY3KHWQltj#f@5hu!R^O@#}0)x+c-L+B&$Ds8#uEL?JN@l-Lf*^ZeU{)ho>3 zfp>UPm9Va5>*xnb(H^QmW|PDO$y#}B^DhBnajO0Kn=(eRc~?cYJdA6rqQmxCePwve zJ6ujR{Kg3QcfUWCd{wdGI(Z(oz<{SgVR`N{NchsB6%Mr`TgPI*vX$@u_&~1#NGHQ^ zC^4X&v_=S1HrzuH(JehD)@QtC{tGk=u3f6F>v@c5(sjvnR=Hk33(vBjgU{zJi4EE4 z5zkW7`s{x5c3`)RUiTB!~AIxxeuEkgGbGBZ9qinZEo5JP1ly|P2 z4A!LH9k#G3C>Z)lBkJQBkp;AEQ)|=oZ(5@_{6_4rUf9WAFhy!tMoaWlX*mSv=b&x; znCLsazE&Kj>8Bwl_ahnyUtf;B3?8iuIGjOX41F86c$HC`;CY?Nr_lFy_k9m8>!@GE z{!{wMg}ZOawI!Lv5Lt>aY;48JFQu~27ttx3V|rVP=kZN~35ycC9E)Dv7N*ORN78Lx z8SK8<1I;nAsHoUblerA%tC#T6(uLPEc*dd)uP~op%7|L=30}XPmwgOdbo?>paF8>z zeM47tRg-c$WHUOIYW=ORwiY4#{ABV6^yeL~qM3;v)%|3?gGP#OQ?CEy@*jn|=O#o| z*O~EImztw|@T#(5IXWcHd!y$vj=2Wlm|3J}`2Mj`1-xv~RpZ&^R#nnPWAi^ZOfKIm z@d*xIoWGnvZ!d3TKi!OH1Q4A0>iXQks0!`Wr# zY6QH8)yYBoam@{V(ybd%>|pMcm*E>Ks#P2Mg@b;kNW6wnagzly*O z)LayhMRum^4u@mkwBc{K`p)71-fDb`mG^Ck-&{gEN4>**o%&1ov*jcvu_&~^?Ih`y zhhtFZTk=YxWema`stWh~Qt}C{?XmPj^;-8X4GPb5I&47)6vXQZ&Uh89p2~`EBUcklLI(KSmv%r;4GBrF5*I~@xAv?fBIBa@<8w~%`KFQSw8Rfv+_}q=~KGDJ$~aC zxH(jq@6K!~Ec+J>Yd{VIbdCm)>a6tl6}+Sh4`Unk70dgKZ4e8QORX?}smyWZ3lF1K z8F9a|$zGoupCX8gVvR=^`b9+#ldcf97%&#AA6k!CV(Lzp%O_sT-S25g$e4uIZCZb%(lc2uY+q5Xe>0`n^)r6QLhxRu!`y*sP>VmbWy zRV(_&d@6@WCznKQbMYn7!o#hG8-#s5f1mtI%WW(tN+ejR6+k!!)GS-DBywxNK6u8a z^nw)P+{z?{MaXn{*4%G$*3spda>R4EP=MH~TMy=?4Rd1!KRvnF%|4-kt31yOGH076 z&=&`cbJ>iOdEHv3`3?@v!Neddp!-1nzlgaop5<}CUNR|?+6LD;%gLVxABVMX5+j+WZFYM1*{}%b#^b=j4^)qELd(G6`!qlKd^t+QFyVn+9PF6qym8@Ct=L&A8a?+IS2H)W1ZoeUslt&62w! zcbOaw^>_R2T^2M)5=;;!&2?WkZ_WhU9}e!cbeFR2&RgmYLpsS#3hS>^KB-bzNukVn*SXhp*}dmc0_qFxHCx)(LWineuGW|3nF(se zb>CeLyor1D1tm?+LqrE?1KsmmI5w*%b>P3^vz7)4ercs5}WeqHz`S z8tD%2&WS0TqrC1Uz*ocbige`}{CVgLE0L}yE^Ril^I`OGuf9XbpOiwMReio8h+9oM za0$#?Jr;{ROAJn_S{O3>R!9haHyZeWyUsXWfWi3JsE^3vY|CE4&B{AiKv9AN)@GM8eq)&%bGjQ2X|tT=Voceg8 zddehQ)d8pT=!u(SNPGhiWE_x^OumAvHq}aE>XD=>?l3)jc?@10Lypk^rgv?>;eU!~ z-w0eNUKNdVdW=rKV$Lfc@ueb2_56H-WUedRC~7+C1Gi7DM*g z76ba#jxPDxyz_wxKq+9JjWHI^slHO$hCe@M`wB5p25@1IiId(r|C^am=B1|HJFA4T zrtJRoTO9j$YHACndSD;vi)hYJdm3H>XeDb&+*j#OIJV?hhThNS>KrSkYWKW%`wwq=@LrVs0+8jHUv)de{5i4V z<8wfsze?qL6!B7I0g8-{Dso9o-uN<}wOXK>ENQVD>6dyWR49P&KltENrqcFi%{fLN zn}R|f4O(^*Rd7)(6$>>|LNS!!KI2|l)qX>B+sYj~#UXH}VQ754sLz{71USt8XVBP) z5iKE1ch4e#7aj;{OJ z^oFff5qF4}$IN0_NtS(B&W(%T)`m8_gj+%4vh^$~YkIRtpSvFQ9-ctr)7u~be81ES zwh|bHqQLkK{8%Q&Jwpk5QUWU=h1Lc7!tBzMnm1vmud%q0@}C|S8$vi;g~JGlIFnym zEAjUI5nP!IfV(MXz6?f zSEV%3BiHB5GgOzrElE8>U`j*xN7#FyuM$^mP$xBV*Y>ar(PR^SyA=F2(_SXR`S~z` z=568N<*yvfvQM@${KQmB^=c3DiFNwuP~(UqTEzxxfR1TZqDXxNjSBTH6h`BxBhx@th+Xh_aUafRFD$n+f zrr9OY@-5MW8AHJkYhy-=6_b||lIGPy-rfm2M1Vp+>#ul6($CuFWi`jh=6jEy;8d>$ zHQsTl>^`BJj$Jl4{DDL;ziNC6fBZk3VFrE+sF$toXxHRDPmI+OcT;+c(aV^k!tI}* zSR>JtQZq`JFiWSb=5b%^32RbReT=Q$-8qgrj?!2w-xm`BAUxXX zfgu}jVe5>|@>sIk2#@Z!+_AYxiexF&^XjB~;j2gikn2{M&GBAjyO|eQ9=@8Y7fV+{ zyW~e$5qDPNXHC@U+kXs|K4=Q(DKK;})+yj|9#cyI$iJDmQ>;Tbt1|JFKirj2@)@|~ z`Ke6jIr=2VaBYkImXTcvx&ETO-uTC3_DJO72e!$8wya(2r&6RVngw17o^SRl6ZXdx z{m;mn)Y*yRV72aOaR;Y7KcDNQPGi#L#`4ZepIOf_xpIM{^%z*DacONjCn1TnL8K3rEg zjJhMNu!+fA)BS(0;%k9u7z4Enx(V_B?NKQk2&sp-&u@BnWePk%HfR^5v66r2=yd#`^ zWjQv3y}5MSx;{uT-KL)P_F8f+)@32~AW)3sBa|x_<%@%mJv(6r+#Oyy&U}G4c6z%FZLoeL#DXA(D(T}?VpaHrq7(bQQ_`bd zLfK@ElI!$7G;uo*0}9hzf83ajxC=xTL>t?Z;69nI_PE*Po4ynaw09tDy(FANq;= zxxdX-XDn0XT-7r}Vik%&d90WE(Mq?oi;BXAMCYHVE19ga+L=mJm8*p@Zs~c8M4?&^ zT;Ipl1{1H82ew5Q@vLc>w%am$r9G{|GEwH6cc zEUbgFr>#$V%TS*{^)%^}PPUk0GVuC$cD(~)KP=!fI87TqAeq;`n3oB7U!kPh%b*j> zRQ)Z5*v)38;Io=&oh6DL-)+i5)#3r&zJvD~%xW!ZvsWP2nVXk1-f_(YpzTmEdJ*tiWy2WOP5ERFtQ z-&$rd$yP@@a^*N|k$7vb_Ji-h8Q>Sia`|>~2vrbX?v*Q+pg+4fj}IW$>4prDt9lT9 zw~$brXk5XlX#L;^C|!!PhfL?=SdKL}B27&PVxUf^kf3;5bdcO+?gk`Tp+c&crWMGz zUyd5L+G>PJ(@#GcK2y1~y1WS>8=T~e8j2oGorlZer@?j7v-n^~%g|3}?TPPrv${^;%vFe;}*6O5sIa$BCCPvwC%33 zaKMJsJc7?IzeG#ilz0xS`lMX@mUVNPe|U^5EfRE|RG2DHN&o#TnIB`c!pM_jJFJn zY>dzePAXBdc}wW_mrKnzD>^u@TVI>ymjY?yV*D?Il4U3kKiz7bmhwFFPUVndGc24{ zT@p1X^{xn0t%OFPh2!fd*t zex^`2Kh`Mo7P@Py>sGcQgx=%vmP{-Wf|;e{?Xh_$ zCXnM*)z=ksoID@j-ehE)ddUp1RyZ$nOr7W_Q~!a_H`ViQBhKU%y}tVP2zxwOJ+HE? zMM?7#VT+LMY5bp1LX|^P5mg(tAQ~niUkE`uDP3wwNv?PR0L>{hn&tV>uA+5M_<&oeeH?_GwgBIR0@=NnRhmim*6DMeM3fosj|=T4V?oa4AaeQ^4O!O9}YWj~Q? zd$|>7KCJEi#c}!K_MG1LXfHINV}m7s(N#QMAF?=mhyT8u{v8LaZ`PJo7TxaiJpEwq zB2icxWdBZ#af=Rpec67;Ur)hnT=avHRlM?{k7mxAePm~jq-@k1<;><+l#Z1;HL09p zqZW(f+tp&5`ToewUWZW!e;Nk6Jy`nW9~1qpF_SYUU$Gr&Kd`CvRvmYy>4ukPb-&y8 zXKAlZz5T9OT$VFd86GkIg6MU&!v0&+=8&P{a&-1Q5?#~;o0|TIWu*kld+@P#2DW?z zN2f-Dk_i*~@SX2=72fWtJ;t1-lP=Hr#?Lb~faz4Ks^?8!WP2c1g)=LNPh1*y9OU#d zbab<-7iryev;PJDTKg_vfh52fJZeKd5iJ!sP`sWDRg5ih@NsaCncq6u1XJ(!9-xPK zSAy2mirC6U4>Lrc*TT;0F#3)P+RDkv$VZ5KhgnnwlD-Z5dF|JTsV;dMZ(ZE?{%Olq zSiD~eAmSf$6?w*w1#c^SLg~02qgDf(`_kkw&D|MHI56}SWirpSEg`#@F=v%@SC9eV zPi6Cj5x7}l@$Gk#HR^b&^a87qx+G)Us(<%Son&hbCtB-dqJy7 z`N^?%!ug-gQ>%M5Zo#GPG*iRh4}nAVTe`y4CDs010|83I=<=8);3MyTieV#J+|r22 zWE+NPn~Q0;B~vahl}iGsFR?{~Q>cAISI=|jEhg>FuQq}6>a%2)x2o@02#<0;x+uBV zP&QW!&&1s_EqSwP68BMTOiQsafZkVm%+my>i2Beh^0AWZVu6%qM85qlXrZyej)NSA zs626`^o-)_1pu*r zh75)ZSlYtnD&k<%d13)(mnPw=s15qlH_w0qE?B7&KHpn)aQB$iQm9)DN8gF^H0?)5 zyE5|>1%DtY`->XOd`qlymT0rs{16YEY_?o%k4y%Rv-S&ddzyho^)t4D*BA=Z#)4l< zEpD-&sC6a~q+_P5%+S}li|Ig8btRF$z?q#8UiTMy_V=xw@R`R+FuoRA=}%X2c{O_M zmru-1r@tuQ>>SVGb_jcYQxYY?Ic@`W9>}_Tz!|Hu(#HOL#@TYzbg?&lZ`^Ss#dA(w zm%8oIM~xJ%fPU}N0>t=pY~cqGOw>!dFygE9T|FN|y?{00!{)A^&h2KEi*lSHEW)6k zy7V~~p2_1m2F0c#-8|}3+WFvRrbuYkaeB{3Ls#k!>-Z!TI|>*07jnR?X>IYB5*t#QJYCOLz7Y{GiZrwQ*m!A50F&!YZQiKLlM&!@iq-&=lg_R zRBj}>)NA4Xxq;|a03^^Mp3QR~B~YNc{Y@FI!&+!D>3O5mYjXLvRN~MXt+?Nn*wHM4 z^YE`&C+E)%Ry&16qxyZwsruSCqG+kVbj;>dC?|kAac8 z0|{7KJ&pl+tWj8^#@}qk7F9SaiDI;E{-El%h|E?y`Q3oWYJtyE?PQ>;C2djs+Lpd2 zX`P};@}4Oze1q@*M_=ZV{WN|t4FY|DXlfM;H9o-FfL z8~FxKWyAA9d68T5#nc~;puh+7#T?19@tyH=Z0!T#yWuG~eU<`qjC-yeHt%N1!3`Tk z#)w)$dODTAUnPn_Coi!f1%dhuq_1Qi^tvP@xJtyXDj%36@$>ZvPOC**$I48{dI9+ubocuOzxuh8*PYz1w(mXZ}7UMr2 ziD`70@;^V$Ax2fc{wS$*uDZ;QZ>q~kwO?<+FRTCD!IQ(rUJ&?Pm6@S`*fzm+lP*?| zu_*7R6dG@3jlF)#4WrWev>utwi%vnF{$e(B90#yL7WArL^uTEPc#AvbAWA;?rGRtT z%+YJ(x|q(-XK}O}#4|H9AH{8n*N7_Jk!>3qe);cEss4s^-(Fwja_wOa>Wu!^)Y5?X ztbE{2Iuwdi%x{bo@j-+yCar;NR5&ac+sWslrXFN&~aBMFml1n&^Eal1jp zD|RR`AOf?cf5BU6>F;Mgfq6C-87M!L@7S^3cD>vcy;-q`(Uv5B@@}&skX^>_oyEPE ztMDExB!_Zzwro=)uv5dN9`d`;H;O~@ONaUreX5PST$$M*NuW%XC}Qp4;h<0YgVE@H z`dbs~qO}d3-U2O~M*_n0VArFAmtPNS6Nud7M=7d>)Gvqe_X%jhCR{8>ihSvlVu3;|l~13E-nZa|s5LI#qQ-Qd>5tcQ(NWR|q{Mi7^#w_N}C-dG%4 zs#cLPEkC3^{*q&6hFmnywU8S{0rAfxxH_(*fZ}Y=Uf&lIQK?m_i>*pH-nvy2j{t}! z+~${I)lJ@JD0*P7INDdre77+{W=l<_l?B6*GOTPI$&8p4RwZtQu_P?>;07Y)=388* z9pO7}C-42g#!IrQW)E|7NtxUeho{%P`%2$)Gkz>k^Gks7jTmR*HnS4xKAA~t{IgZ~ z2x77bj; z^BXzfNtrE#sZCY*~GIKAT zZ1{}XCRD;uhtCOLd)|rcy6x-FIi}wp9kl$mg%Sde#?G$NYDs1tV-?bv|o46x|jq6ZP@P_M90AqK?5`81(JIk|nd}i8>jv8S^zv|Ed8$2>f#n4#@9>Klj zyYnUCBf~2@Hx;0Z#}Luh@Y$*ICs=r6Rd?f}?PedrBtcF~HWXg#riI;2Y$Qg-^DwSs1MSnoGIGXfkNow3I_M3cVutw?gZMO&m%RTz}|!gRNj zD3M7ND1W}j7uIT_YG?FO;i0Yhmrw_o)6~^_ZGJ;7#yp^4cWSAa=?<*o`)qN~7u9roP|qzuR=pIKNp=NbH)CbV*-T;VVT# zR}63$hV*?P*ZRk@bns%X;G#uE#Pu;GnB7UlG3;6o*J`;}Ji+5+iDF0XQh& zkm45nR^(P}{W4sqbG-P$>X>$4RFQHYybYP4=F3%KC*ehQDR^j~rogM;{xo&k;J&9m zW_>IFaXNiV9>&F7vts>LXnstoSHHW$>T>%X-|py0C44TNGVUlg?zCG9y>_X;HhVAc zCVeQ*`z4z&y2#lDlQnhHzJd;as#-jhv-N1k&9Hh*mHWiVOSDt;uhUzl{pv^0)6C-?4PiwO{@v318QVqBiKWiD zOF@>yHj)(9m{V)M@u)5J$;Y4Rkw4WMcAPg~JaMwob=kj1W-a=fitAZljtlm%jG73a zu6^-Ozr}s?+e0a{X|47shYt)NpOaF47|{0o|$$5 zaQcxUI#hll-Zxk^SrX9sd{c-M6K3&|X~AG}Q;-0xS@n|EI3Bw*xOatT}EI}+dp zNbgav6I_Ou#=<8{{wRIcGt<7y?c?|0aU;R0qPl?krnbB4Y@RG!QF?B- zgX!T>pEKu2V&}3`8`?e^TU%b3Kl!0 z1RKm`j#gfjA6PV1+Es{|(!zPxf@iziKVOiNWt~bhFsc=MjB^uVn)>Ufy#|wjz7gJC z{_NeSKw?r1TNR03dWry7s7*9pE^HbS^Ma5HHGIZC6$$AIr!=M$r!E-}M{whg8g7&> zBmKAlu{Vqd01IK~`2t53!Fko!yl^SC!RxT^Tt-ToT%J*j{w{MuJ?+83Z{rc@q4c7| zf!Gx@X^K{0(YuE?_+?*C>FzMLR_q!)CPwY-ekH;{uT@@mbBa%hX#aU3VO7&Vh}A|)JE9YY4FJ_%C&2h05K=Oby}JK=|i zHH>dc`Q^oc`?AL3Vsj|#@iW@|Ug@vSU_gE2>7mo$$2X`upJfaVwJE}?`x~WpgG&O( zadLt$82w^7CLUqFgnsZ#{aR=nW0>Mo{n!@|>0R-QReX3VG1XC^vZcAZn*%plm8Q>J zgM~6E?)}jePP6~0oBP3`uS4`EkImPJewfGJh^ihw%w|d$rdXSvEt)6byJ3hQ>Gw#LxN%kfnme~B6 zIZClfLT@9Ls`ro3MhbLl`L`?WZ23CM$b|^$ZFTaNCNn&LdK5vqN5B`+Um!LVmuhM#=b+*%rE;y%|)jI2kb`jZKZOqoWEKzX}&R!p2?3wYKj6mV>NVN@oCu| z_1@FhYyO;aXLY3vhTGW*;^a-A76ulmX5Ou)kG+1hsXrhLq0et4Xw4A9h9g82g=VR_ z?PTQMv2Fb(w&SL2Q45$Km6rl|XN`GIid~+vyKQA-p5#p$;^IEe}4N%;rrk;;8S0D-D(F6C&J_I$C8Ia{P=-)7PilR zKdhxU{wf>R691~R%d3RST6kBHA^r|u3h^R>EDW@2zp?*#HY%5TN9Hu(r7B~M9DYP{ zyx`JKTI2xF#d2QnfW@O^>v@9Dfc!!R5Sz~G?=klk<^0DDb^qHdAI!tnVojpSx0}!F zoxF*V*2d1#vE?&ny&TRSDbq(i*2$BJ&K6VcS+>`%w+o3He*w?A;Se4%GmF$!+?!hO z^SYY*dOG;Sep>+7QLU`keBmb3jGW5vS2i9_@Gp!>aRceq=}m1BZtRgw`?6q-@~)gS%_%swN~-|BGq{k!KBTdqo8h&FN-m~GJ<5Q zJ2Q0JKi36bEifTw2KrZWo2toZX;#t)NE3au9jHSM_181g9mVt&Rv zugH5zB|qqZjW?<@wHf>t64y267Mcpiu$=yA#B{#`Qu^qekgp z&x73BHXE8)K4fGW2B0?^mIhb91O%We3gPT$n#}mCqeZJ17X6OBr@i;U`?$cj+hEVx zf-|7W)I(%q{2CWnO1sJ7r{Rl}*~!t1D~t`5xTWo0R3RD5jXy(f*93calH^|v>H__Y zr;t&?*nLl{I-ptpzR1y0#nhUMsFfVYt?mK&`!?Fg;!Pwatn9%1!Q0GdA@_~Hf2;rK z#n(^?h=i>wW1ffH}JD&G_C9tx+ zYwlm!?<3uNLXp_^?S7+t&G^Pk(c=fAZ-wwSWlK_OKRweTJvIXcSPKzNH-vHCPDE*9 zVaf6GfX?8_p?xcF=dZ81)u<~IZJE<*9x}0?M_4DhrnRK&e}&;TS6v%Fqw5xG# zczr~xm^SD!|F~d#dSSYFP;qy8#-H+C$nIesknQdF+Sl(1vDfnMeW@N}Nu63-c2t#L zo8HhoD1KUSzVl$hd9~p07G>2s9S#y`U9QR5(e1LM{f4D#;!-RYR{IXOBwR#x8i-t1 zh7vZvz!TK-r*z_mQ3tX`JO093SCuyAz)&l$`i&}wH1GL-%l`wXKv=)-xjfv5UKRtl z{1-)NW7M1Qo*%InIC)U!@uQ9V}9P!^c?(O-?k`>`e>w3@O zj3Qd%h&RP;p^{P)<3hsytD5s)j!tJ;({0f@X4IClQUf-VmG7p_g@!Lt1acyxRSoYF zd1;~(+>}0;>iFf_Bu7dMOX}Z@akry=+q;1DrAYN$$DPQONQVrbtg-|_hCpX2{j zi(e%54c1;xE4cI4jh=f;=F$`0d`h^O)ppOOq}Ex z=E9WI^ITeL_|)oU2OoOqs6(VpR6ANA0Vlc!j_bv94m#(m4=3w8=6Uo`?S1!kZkPLD z@{Vv6;KbPXq4dCr2VT;V2f8GhMbhn|5%bK^B!eHI|*&`T}e$oIwS zGD-MS!$x(yRS|WnS%v5x&X2E3&!gwf2N2+>BSb5WaWU0kaVc;gP%%Lzg%e{s{C&_@ zk(i{SET{(_Gn7R$C#pTs;uqj%hT zizrsD0pLWL)t&-hg3ECp*azdTy|1qE@vcTIMV)I`9^T*Gv+N4 zz~_^@Bj6K#qg#IkfrOY$FTp3&+;z(D>J!Tx`l@+867&~Gv%(quvir_{Ky90%mi5v zOi{;oIguZEvc_nbueajLV~69s#&1coiF!J-J3>!96|aRNPG9jGJ@?OY<>eS_t5|=*&jd<(O#Z!;-cs0h(Ta~|8;*~Afwe!hGd}*e zV>1m(_s(+1g7l9lkNvto)QL;6zoL$PV6@K0FFjd;s5Lylv({7HUW({_X zRz!WQ3o!+oMV>s-$myvr-=ag`wl)K$I`(b;_UgqxGd@SXo(E_8v-o1(zfb1N!(UEy zSy0LE99H}0T900FM-(~KM8DDu^Zp-}zq9T|djXPfJ8^XU8{xq8GtuD0r!>Jck5hhq z-r-)=+la5GSD|hO7oc^9$w)H7Wi;!hgGPdYcV$;p*9`N4tG;sw`CSX=$6O=)TW~P) z8LVMC#{i#ug8wGZ4=z5k0w=C+1|D(6ANJoiIGmq)M4f6Kz8PbEc0c-zE6mLAaA!X1 z;YGaghm8w!50D>+UzAmI*Yx6Cbdd*tGe+A@S)o1At~B0Pu9Lo^6HnTAp3@~JBiWA_ zr~^2#7Ujak+nz^P^>osEK3nbQqL$wawy34~JQi0sEWgy|ju&*tC*>p{5HSube+O&> zomF2>kiN<}lE3v=7Ep%^0FJTnn<#c)_sBo&UKkVYg)89LD@taydaGBN^`m#XlY;|+ z!)2Zi_1wLbs~7vRj+$8CgC5R$<4qy1_>~KcfiesTjjzsGS^R?8AJYhO;>6Zw2 zQkKs+%j>D14^_?=6Ws`G72R{iebCoRj6hCJ1W%*Alcg8WOe_C%MgJ`N;{Nv%eY;$?7IMQ{T)dCVk4mD969T|glLrQo0 zi1b(&aSDd_Ifw&Vv+zFavYhw8Vua(`f*GJ%UqGc_9tSRvTO6Ue&zDPt7nN!=VSKrr^K)s{K6o>#Kx{YOyNMQJsXIf^ z5W}8=@7QIpk$o@9lP^ZA_MEvy^-3Qg8K(ZEy=X4muZb+mPU?&XAKY>WrokwIXx)mB zeGuC2K*Vm5gV+BXum|w>KmYSzfBp5}jfYn=5J2I1Q=G}96___lOo@_ue#7dwsBzs` zZ}0V37$(R^$3Ii*I3w0YxPBCw&w1!GnsmnwF7Xqd#REg)$XIy7DUjpJIr?nq5!LfN ztA)jbrbfz0^LoZnPsdk0k?|8hqBGr3c*b$Q=V*nc`($R0MFTfi9=Se*9x?LW%jba0 z>*n!MF3s=^a}D_xZ$g^17;(lKQ9T{*ByznbkMVTqpKy9~SxKhD$9-0>^{7YD^-nnu zSAUJG20K25vqO}75-lLpl2181l9s}Yc z3y&hhBWm&dK>UFbAK20?xHlkPK(+3PJ~8s(fRAc$#Xs=G*Sodi9kIB6M)xt|#aYzO zcTaFIYV82#`#jC@9eAoeXg!@+bZzXB@LwRjWjGV_5)2L8G9Qk5o>MDw5#Ar=;{Ty1 zuBvP4+ zecsH|dDYWa^gzc z-m?<__0Qk`{KIe5+a}8?2jQuibULd`JXyc`jIT&d^yME*ksdIVbwzLv%elVdU^` z#F;$yVx5hFL(DiCR`@2e^rT;a>LQ$@d&p|=?4IzAIy^l(_wb^0%BOO?iMzg2{mJqWS@`s4hr^#zwvPSUG0W_q3rnj9-Z&7(Xn2|h`(CG`X#mca;fU+ z#LvSuCnJAW-Yz{i$f<09@%en>p5R2dis<8g#~Jh;_c3OJT$^F)`)AS&UAWFA({Za4dH!6kauD<{yY~MEEc2q8nh1|L z!s$PW?nzGE@f&aj>wNOEPsjOlHg~XUZs-dB=U|1^95`BQVcP3v9gKV<2o--^Ci<>$oHBYnDu2+=3jsfp>-56i|8Ba5dv z{=}8f?kg3aNIvTJheLW#A4-m9v`Dz0=7Am^H4!|CE6Th5I8uH(T)|mgK6>C1;|{Uz z$g9G|F_$*GoqwsZYtc5?#r>PcK$36GebF3 zroDIdsi}d@za`e3rQ&mTzu%r{nBn_*PJcH}w3F7Z`y*bP+meCJsvl*}CnrX3tl`C2 zdB9C3Kqr1L1Y#&p&G8)Jjj)k?!ee91i^4$St22M0$fqW{kLT+9;nyj@^T-k3`>y|T zK6)KiWUUczv|h@`6j63J^kxws^y0E8IyhNRSX>Z(^uaHYSnK0yTyHd><8{SIv4M|# zBJQTlbSuev_+ibh^q7kqX;Q)^)oE&4- zo~wof3O|F<$xmfGa->M$Ou9W4y-QIlNA~0H)qVK%{pJ)@wtDq_V$3wBLSwI_*rI;GGeP3ec zI(X>R%W`;lc*GB#qWWm)TZC#*m%iKY%#K2StVQlKvQ@n=zgP<^=MZ;#3PrvuwbU|# zqugupyr()l&S5dIjGtjX`>yuzV{B$UvK!&@81*{5E0W3HS5EEAg1KCnbG*krfuVWGgAu{7!fKX~4|nX}4G*^QMjdCd%52u^wL2|_h*Za+2-Jh`7+PW8 zhd=UjyykAjh+DDxum-Wc6Fc27#Y53o9$EbL&+&h%bvaQPYZH_mCw-%iH$tz-8z7`d zeIrJz8`3Q*s}X0SY!}zf{-JK@TP{EE7Hi8U{*0E`jG}(0skG-1Uu=3CG^;GeVE& z;Sbat=Nu7Wxv^XvCVU)|Yzp!49bL=_~3`E6@1Cb=2ED(Q;GPXs&PI zBH?uww7$(Ce>Y*OW6$q~VIHmDr1YadIK)_MOLibvgy(*qi*xh%n48kK>FMgcqr0=D zdQs$j^+tU>50R?@7$HQq?RdgfO!_$=sAgjz#ucY&e3BizgV;iKq$ zYRp4Va0kJY?v0b#baUKWjbYP>W(u8XtZRDc`oDreMnP%bv2`^Rl6d6AFQ9|j1-O!gHf+rSE9B2K+SX?h8%$w1~4;X`GhKza^m&XWox`pEhpU_$+9z_HDsSx}A+)YKE^a!1wliu+(Uj=*Zy+OUFYL;kVB> zcEOX2NG~D0xNCO!ha8DJWmx+Mlf&2hp1a4d<*S8O{kS-MqW6Uz$A7;)k&P#QF)pNa zWc!&w9%ashLyX*y)t?;jNw3)pKA00FUELM4!GCa1@1V2!Ysg7nKZmxfJG1`KBaAmm z==9|dZ->*nhH7P?zRu2l;}zrS@cfCN94uF=qty&9*zDn4&x_^)%$)v!-kp8#a38)} z96=ppw5JbFt*Eo}?RPRi@chP5Ug!hsrQhtE{=Ayj@H=(+D))YSofK@{dkJ2|d+I-e z-BxeOYb}S;+`*UZl0hS02>;80>|QcV*CbqrpNSFgWIcQ0Nqpv#s6K9(%ostF*^^fK zOISJr6Ga_9ptG7j`@e!dAvIaqz=ik>fd-;(>Q96&>JY%O{+&#?c>AYJ+vnbvx~}!$H+f{Z6nw z<{nWqvN8n77i{=NOu+$nY(Z#=&k9LW8tmD3`zVp+|al(!YT>rsrZny(@(b7u&e5ATcZomJpw*T;H9xFsF}=9NCh z(Nv9Js_l#>g?Ua`eMG->x$RGJEYqGmGjPL1N^KQa;Ki4{U zmir9P(SXIMzAz3uP%E;JYrP*Rq4o3S=pEQ!8+p!#5mT+h`zwzeVSeZn>EWdsKR7j( z-+N+D^rK(o-oy77qt+>Vt#&ww?H%CqE~@MM(`s>qyT&=>ihg{ST|d&YT^j@zH;}X=Mf*G z_sG@bL_c(Jc()KKvHA5lT4;pFg~ik1{m-g@#$K$Q9q-S3%Huq|(7~zr<@dVi_ovi% z?^}DvcgKS}itol9jrt?La5T(xuKU)!tWqAPMFXGuPm1iE?G*38-y`-iy)ZOB2Q7VS zxbEe>Q9j}yxFq^R)An;wfGY6ZJ$^F3xx?!ZU?t?(#Q`@6AmIX?w^XZap$u!{f0N|h zcc}WMjR-pW0LW|Iw2o(7$AVA!Mvi)oI(X$XX9!VV$7v;6_btMc_iyv`_uvJy<+Jxh zoAF1O`^-4%aoI#LMedqjj3yWTk3MmC)qYlY=68W^rJ3=f*6W({^OOF($Xh%={*J$Pq6)Q7g^@q(Kps@f%+c24^e&QkKWTgT<3U_-=HSyD-_ps|B^#+DevUH z*&Vqy%h3`eXM{UXoPU?Yz42ZiXYUYoGw!IzEcHjZ_uw2+ijueV-H%e~;^_am+j7+PVTtDc?2r~PN{Ot)Z#as6=!4M*k2-Mpig3WFW2Em9j$@z74{!h3Yolt?>QBv+k4!n-6_{$z#iLeE zADu7`yipGv9y)MpqIjbooEXs%>BsuO6A1SGC^H@Q#k@w!lN6pb6?O1X4i<6miSHg! zPe1bzro$Z9I-p1tJayYaFy=0}Yk0hC){k6i zz+#Mks+mo1R7V{CAl{@G7in~O-Lv}elOb^s3lnE!@nF$dXWEr79&xYe6@Ae8XB{;U zYPWqLpGx8@i2V8kSfA|q)G{=)2^kh-!_u{$4+ZOnY;^b@I;$Ui@*c$5=*aQq>5ZcM zx(+<*z+;3b-1Cel?1wKld$r-7b^r7=F!J}}UFi7_duB4?MbC^Uj^nY8J@@>Ba;?d= zO+N?i+=%u97!cK(w}W;Cu9K z{LX~qqdfNLJC3jSRvzMJ2c7$8yba9P+MwU26#qEH>Xs_eiSN`1XFGkmmOK*i^*)%m z;KDqo=UibNaYsEkUx;yRtkaPzQq~6}%6OKigAb59a_xxw1fTd`S{LBSzz=D%U4&)F zzc)vH$D=p(D9*I>&{8XASnR9jd%$~N$XSQDJ;DXbkB&yUX)p4GzL zGkU1MbE3CvyyrQb45RmMyyGoyJlqZUf*(6*bI;s?`bgMA|Uyc>SoGKh+t>|N-453O|M@Pxs2EW^cf zz1QN?Q_k7NW_)^Y#%z^0EnjlXiLcHz6DK?IKE;{&xer=tlxGL87&ES8@Ev=YKel=- zv_cKBI@wkx#~TFSMiik$bb=8Go^SAbKDvSN8fp;W{orf4{4Y^xtrg zegi4}%f=PRF7d#mDW@d>i|BryFJx^@OI`xmM5_z!0=)E3vu3H`D&i6tH(~|6W_d7= z_z|OD#A7Wl_hY%WxE}Kx()|QrCBH70d32kflQ zntUfRcf^(d##!0OqF8PEF%o+5pA0E2k(Izx%~v#3jk)J&@rgAW`uKWO4_?H*CeOI^ zJi;S-FXjiwY2-2TddOo9z8y6nGvQ8%@D#J0f$oJ?JJCX8aMT53d zY`4fF-4VcLIckRKUHl7Nk@uue51bmVy!jHxXSv34w2C_3iyrDb2A4?RINnnGlSkhC zPs9E7E;CrdqYIS#7X}%}J>V&>^v;zBK8`ELC*mW1THz(bq=$K?}Rz`lW}kr$N651llh|ch)$7t-XG=g z6-USY;2&Ivn=}Pmw@VngBk4E@JGZ0gNY)(TM(MQnj)mfSpAGI9o?vjm6&+JfO&;gF z7CoBSOKPZ!nKk`H`WVXQ?3n%Q|NX!J@1K7i|EF3q`1|kw`7h-!*Sk-xeWZJREwhnj)tgS%$=`%_qb1{iTzl+Cg};%;Z@G+ z`n*U1b`7qUIfAdc(VJR5Ul zelfRo*Lm0W7ypZ6Cr%t&apIPyDJ`auCM^P*rY#q6(#|2?+|Ne`sligg~UAB2|!7(Bj0Y+tT`9{l&54&xya-j?H}LTEDrUHP)DO z&9(P_&pDrcrnJ`>;~CF*#+Y;OcfaphXP@^-oYmWh^6+Lj;*WUBkJizKkMh!X4!*3` zJ+mzeyDKeriRS^_J4~*kFKHt*XBmTQh0}tC;i-yrbkI9xT?-$JkYX*J zoBP5dSJ=_YYNBq`@EZ3ckNAkw%lB|}-8#4DJO9X+2FqWgGuqU8owTUMI!3QYS?_V6 zc|<+RAINXhQ7pz{3)AxR%Xs3zjeNzASiQbIZTQ#@?;zc&T41l0&+_8}Yp=NmB#sM` z&MlovRb~O3|m0r&(oKh418_Qt2*;T6YL(RD+})2@C6-GRBz7&hBTJn)N3}=! zUY`?nZJg$;qA|8!yHo^XY_&T#;|kL{`#M{y=B`;^Rc83nJXsA|vbK*NRkUmk`NO2C z84nk0to`0aV%Z*mHZ~K?FpAJdH^%VXqKEaI`!ib3zsF}5Y|%3Jl=84nNiCh%kT{W- zjxX1Ce8xYTC2E}It3IpAu+XbfinICkOU7#)!-no!@Cr9vMSkT?%Z*rG%b9?3X02EIExUDk_?DGNXs_Ab98@XcTzU$RMV@nCTFyl? z;))-+=ox3pdcd`upaeF?;)+vSlnbpIsU;hdJ6;%lV%L(d2aDJ_s&fupaCC)J?-)3B zvedfoJ)MhRYU-z3qV}5Kz}dWo*MaxvO;5L*2A)`-FZSMRLP?g7+HhoJ4jtKEPPiV_ z_jvS?RXXVxBG}efJrjK(ozt=zF#M0p5v!M+S8#(a6GoG-F*W;q)HsdNEbqgeFMo*|x zNVzpJd!bp+N+&iKR~Wcr>WkYJI6N#k#8EAro>i@Mqo(+ou5jkSc6g*!;#wVgr7?%s z%IC3=!qv&7XoAf+;wldZi-y}?u7|5uJv}drweu|qiyk6 zk0(oYm{dQt|iIOgEUisxK>S!Mzg zKU*c=TF7yJOY94GsR(#1P1lWb&Q(rauu&b{84Jht=%HM;B3FFJyr!omJmf;?Dm!28 zX8FC*s;G&`?dp|P z6_g~t+tnXQR9OhvUN6r}n_d}TnD}}e@x*1J>%GWD>$($sr@P-|1y1NRN^#^ztx1{I zwmPfm^>@H-)7LJoyAhb6m&PyG?k`R-Gn*^EaY=E&;KU|A2VPt$-{@!cmjo#ryP_}Sul$Z}vKPL}hY z(f2vX(I>No&+9r%gT>BXb|V)GoUmgrkvxkkN9A{T4{vkW$kse0oMXF z=@E3=yuEzj(*hgPH-}X(iYnG(wwPBga=^Ss*l3B1&WNX+>$*=}rUh^1)NRl&+~!ys3`=bkjr$YdS9V^W$A=g7$fFzc5%+niUF{$hnAh;I zCicIU+F?4l`qU|mdlKf2og4Y^u++--7H6$Iy+=Kw4!yhvP4rX)FV`V`DKpmDQF?JkZ)`vvb^F5C0B7YW(`t(?5ZlgCRE11U~B-3rU(f0r!+f^tDIBvzy z&UB;$KU!*pYtd(ku2vSMJ8umFy;xMkB80+)rdSuVwZwp8Hu{#+j)>OI%;s zoWisMw*xQSs1xIbb^Gc!oZbLlD-LnADe>fp2oen&w!8ZX)DiS?~aj^RX)pQc!r@xA7Zmd z;~Mpi<@&}r!*C9j0#q&(;h&^)1Eg9`5^a?$Zb?vv6dyGs*IfQ77yA&KaDm({}Z-PWoCt z=YnjmK1P(-5YGk(&(uY(&#rpU<2wgmTsGl6&Omuzj#KCP=%WcvUvyjpE|!`X&H8-q z_vREwi@g#r=oMFto?CdboSS3Ok9}ed`B>MBnI*{&QVBbOfNoWZFjpILF@qCVn^T{G6kx-~CYf4&c@`cC6L1sB|*XOB~#TX8Rtarp>Ozo^?R%V~Adlo$Q7H5nx zvw#!3_5DR%@yMgWbAxq`>$;DwW0^n8%W5aFO^Xuv8~!HO)0-lNV%2E*nJvimO3tma zUP~+vi#)OCgprRp{4-WskI>0_qK!390xj8)2;s7KpEnW|v&19D$BKgvoL(JxW@G=1 z19pZ>%?-BOrkf~D$YIsjePUV8P5#V6M^=k^;sw3p#MCKXx&E~cty%PVj@>rW>bQ2y z&BUdCILnMik7Ki$+hg}}FP5*x*)P#@bza0h<~+eNEppM89=-GGwT}{q@vP7+FKd|9 z_Au3FXC}TD=jUNY zdBGDWNPu$ou z#wYc*zk&d}j2*}44Fj&Mmg6Plxu`iV&ZS;C z_u*nkIXF*XebiI(Glg(m*w0UX#t|PLwc^cS@UdAPxg&c|?UDAHXZvw$ljYafl+TKf zxWuvsJ)YyLi#ncXP}e7~96lEQ8{KL@TI}27xL1#zwYYyUvOP&>kAFbvV#$w-*2Zy})U|#DOT(scDT6mr}KP#{4te4f{cIzSBXj5GW z-7h^nY(9>x7H2`cpbHM>9QU(&<-JE1t1fB_iwm8IKg0NN1ooksIGfRY@MpN__z=;L zebJ|uKH$XUT@MU9%87H7pQF(2&`z}5YN$YqJs$~>_d2je>AGjiJ%3TXo}=`fOFpyoBgZV%W0lA6Su~srMh)@vv}b2= zzWdo8vb?akIA`IW2S>+qXuu)PEcIFLK^UXWjB~1`33s>Q3H+W_bLD(#X!yeMoj2n6 zrb|uzvo^J!^PcY0&#`CapY44Qf2J0WtQO}-yr9=Bc_Gx2CH7k9!+QZNqYg)zBCQIM z>+#4}xz5Nr!ie1pXJs|ys8NiMg>%B*QCho<>Xp-)dYO!b7MW$g_*0?_`72-f(((yd zg&F?LOD!cAbc?jCWD@~)Nnv0ky3AL4>+ud$A7#EG#PFXrGxJInJr z)oAthgC=%i-*w$d?SK>V)M8_450AW=SXx@yS(JU{SHmu3YSHt0F^ z#w<-=oGUo7b26XVVjXx^^G3wteqzj?9LLAP>Di12hV@!7Y%eEV&u7M?W|V`IS*tU5 zY2`qtJrr53^koNWq1<-O8mzk2#2zuuy3TO2x*M?AD#kZR?n=6v-Na5}2kc4#u)B%_ zAggl>AB$X!g=ZKzb?FO|cDgBI#slD@f!L%l{}bYt&F>5?!LyBcMBGQrrDeasLp6*9I$A8Byx_O@Hgd~;DpFM z)R~?mj&fROUuS4yrGbwX#uBF0>vNP}s+S%?XR0)t3C#&RTfX6Kf{7-g#F`i*li|YR zis#*{6OSAgEsycBaAd)-o(uj2B~&couue&>xaS3J%W?0NuTW2N`S7l%2h%W|#- z&#}zUco~+}PGXOela3ZgA%CO236u@%C@;Em@Ubx;ZwV)X7Ts=QNx!_76Ufe}V7sq@gqJ|$BV7xsDVJT3UNw!d zJ>J(UZu>U3?KZ<&(w&t!&G*``XI}@V)%)hdfgbS|mHcat+)H~s0nYV`*1ezAG~&YV|koGJCriM`?edX z23@%VK2;C} zCgWRrc#ZpN**Ux&yaP&U)H>S2s!>h3B$By;h^3d__-0mjtZrh_-)M`=Ly4@`^PA#3 zgV@XVZEkClVJ(?BXZcmaW-|Axo`NOqc+bD8Ts`Lsjq#Ov&CPIJYs7bb9oXp5$YH%U z^Tq4*?!aAsCjW4Zp=5d7+61kc`rdi28f_HuR&F&}U4~uD#?yGM`&6+fEcnQ_;X9-= zTA2j(SaG6Hj2-D@Ibn7ll4()_ue_G*iLH88TbYA8r^@$u(`7TK@?zhEsx`8<-YPUrUvVI_sPrlaOceUuH*h% zn?Pe#osXXp>ZEY zC^5XIC+D8kn%yIEM=kxal46sxdMJlqTwhQf6F0uTH+cnVVZnWlP(%qfq~}8Pv2#^d z7Ij!<+`lp(<{>Yuz4PZ*@S{fUyqdEfzr`C3aIBK^#mT&K8hRKcF z3hA4|vzkZzQNHDxvu?^KPtL>B?dwY#qa_`!Bi_PVuGBat-{&QU6KZG|VA#*svJbbK zh+)Bnu@U*%QcaK3%k}U~A1u}=W-%`o{6)3BIl)J^v#0i6q1v-6o~_r%b1u2~{ipTz zx;K*V=k0Tk&L#2`-*Wb@bECgGfA(^t)(cbS`;M1s$0 zv8S@1QzNc*?ZvF|{fR>i>)VUiss$xIZ<5{vOg3uvFt2&mel}xohKvh_&1#in`D@f` z@ZoZ%jysm=fysKEVru2T5f}S8nw|3#FP`;LZI&Nt#2hibqn^)Ja_ws>@=nIHN3)T= zsc56H55oQ`L1*I2IeuPnz_8$0!`u0xX*uZ4W;w%}Rx4PXM;w!DxF1>#!<*{72wzr9 zd)FdfqAN~Jem$#tPGE4bXs)qn?GNd2WbNGB9OP>e!HaF%{(Rp)KfbJ1#`7Hh!ror} z%t}VjgVyGJ17~4~w0gaH97ltiCNk$BHOD^5x>3BA>7vEHqE;^tk9?76?-fa|_OMI( z^}-p$%Vwfq$<;RA3qJJ&OWAp{0!^9?nFLXoIB?!eyl4wpxq4s5~@Q(7{2fqc`<9YkKWu~qkVdjWORdZM%*%T1%uG;5aSdgsjfV5JuaLa(P0XK*cYE4KOm9{a$h zAMq2}vu)sG>sTJhXZacUJ~MvFSJ-pXi7^;GWa)EclbYT4WuMde2Yxo@K}k)YtxNd^ zntN?8P>VBOqRr8!b>j6B1%K05zw*^Z+7Eser&hL}X<>5MJxwd^H{Ot5&|qqVCuh$z zGYr{L4o+rot;@6u_F%bAmuCR85$vdCc ziDk8B-khls-+jd|z{*C-u-&K!q;5JUV!UfqfXIpQQH}Uoz2__HMSjdLYWwQ}k2H2K zupqsB5AW%W@M*0Pag;l1u6%qxGCg6wVvXk>>}TUVxJ8w#eMZg5VM~>{*O5~2nyy8J z**U6SE6XjJC%Ybv{$!2M2%i};;Z`WYXGc(})~ToGj($tG+pl-E_Tt%%d(G_F)L^qZ z`YSg&{E>!gkMiP#MeAN$mvleK+#KGdnH6OiQz@sVO}byf74rjdEqp9BvKi+26aG+Y zm^^55vQ~60KaK^NxMsb2n9I#JV>s2$)_9+hpUpYquQ^7_#<@{)-}M%unZaDw{rv=2 z1YIH7rmxJ!gFnNy+SzfeWamCYV<&nRnB9LIHpc4fSf=aw$UmAp)*kT(`CFv2?W8SS z-2IeXz{u&vJ-nwYTs2y}wzHUAp~V)p_9-uC8&2?@;(ptPK$h)YP|AmUU~6r91J+dO z9r`ZP#yjXWOm}6v36sk>8D=G^>oxADn)r@%XUm!agx8<7C z8T=?u*@&l{R{A1dQtdj@X(V$-{87#%?sacz<2CZNW{ziJu2(N~!42s|a7N<{_rwTL zd-C8|_%Dnd4d%I?&qkEjI{l(p%3ieV!?)w-7dJb~MeZZxnN2bq_L2QpttXV;f2+K8 z&$C0$>TB<#uNC@XvvVKh2C1ErxU4u5xroER+cIdh2s41H?%7#huYSd&jAE_iSSlX*6`Z`>Q@d&5Lhf%!794R# z`7AeyWi*@Ww0lPH47WRoMB?hbFvO!N)@#AAo;&NKfjwKF@Xtt{;kH&@Egd;gi*$Qi|}HgB@AbrwfCaUw<>ZKn5djHXc-+^uu$wdQd3 zRiicHER5^*mYQqz%^urBfH4%G8K3%x+c;osaFmbyJL0re3f|GAlt#%IpHjc8xYKFX zdS-zp85p5*_ZYnwfTv;ui2mA^SF4PYwv#AG4&9;0jud{&; zocBIOHi=OkIjogsUqczqOV0SxV#RMyr~8zGGe1Yux7l7phUB$hY>(QsNy-BOW#MCO%_N)@Jmx<95f(#Jl89Vx+;K;p{gh z&T+rfuE86ThCbApX)(hY4iyDrJS;w$L|axXJTD6vuG9p06Gl#qH{?NZP1Ac61QP)DE3->>t)utS zh1I=2)%I@D-PCM?F#aePsHeh_E;;Ne;XPS0EIoypY~;Yd)n+|LT0MRbA8Dnzkq|ko z3uKt*Gk;J+3Y(P+Q=Zj(&d6sLeQd_L3(E$SAny@R*7&ZepRD+%?cP*$-NKpjGu+xw z;Vaqz06+jqL_t)c6ud$!6@TR`U)sJZNfxWT7WV2mSSj_wYvhVtJcgbYzG(c9^_A z?cUD)jg|#7oJyZ1iU${;SVHbsVY`siUU`5St-72?FTe7Yc1rW9$431u9&kzZZi?*W z${=yJ9p@~7Aj6F6+d4 z9lr-8MGf*E4eSZ6`00&o^=8ZA$@*ySZ^4+Gg8Zayx^d`=1tjRblCOOfuP8G((@t%LwR$5v+o&o0W zz9uO|hq#GSjI9Z~fMXFNHfn3`9C%>PC+C>^YfYpnMh+V}k^vJ39#(lRI7_s>W_`Ad zC5jp`uB-?WGn@}5-}6~hVQ_l+7Z5)h*^l9He8f%_?N!f|Z@Bc|OD>4=rQnsX>ZWU4 zC}9_FV^wX-wO6nhM~$1x;N<}cgHSIV9u}^1z_947 z<-l%7<<8srrfqJcWmrodI7c%L^WL~eblm;UTu`v0RbLke*ZLi_16E>Up!zmM15ZjS zqd!G5>uAQmbG~7=Gt!4;h@%JSQ(#g|~^zMI+@9Eu$)92W* z%5X5|fDayH@R3CeyK?Kz*MK3DjSdwH*KN$j*tyX^;%@Q^^eBVYBk^;|hR?7#fMVC7 zVYC@1Xw}htzT($1w5*juLFF2*Qdht{AIIS8s%}Q#HAei#YtGt{IB7W2Yx7bst4C5) zA$Sz7yarqV7u!(`_T;m1Ha>_qcVELWT*MhZ8<-rm87IMN8MR4%28v^<21y?W zY)11eC!3*ZD5>Udc1(vch-S(Uql>O2-l zE5nw|?N@2C4QyBKkg$ru^MQr&pn>9b07`0V6F^?M3SHOI8yAfUu2b-_8_f`?1#LoV zYDCp!eX3?pI5r}d5Ch34#zsBiT3Gp!1B9+PTB`B73a%G%dpYMNw5+U$fhQx^F62YY zZkXvrjTUnr6k&^c{jiY5?Mx|NZKE{DMuTfm&#mRUWIDZ~C%{jPeB51PzMs{1=vZW7 zw3_1JV|N-#=+W6st+V3#D+ua0846OC(n%%IDdz3XVqxWy6I_2FSX=YE!-!bD>E`8%$B%w@4R zjDFOh=LyS5-nv(QmW$?0-3+JBC8C693gD{nET0;B`DXCN87=QW;yvTs*|E;@>vkxT zU03=kT=MZusi#=B$8`>VuYT>5r70cRTkFs~vju8STOZQ>A{4?!nxVXr&M6~jnAc@K z`tdpLwAe@_{Ss(XqF{!zD_Q|+WwnyAmqfY3Z9wLXNWGlnXZ<*X*T>w~T0FZ~=i$q0 zjh^s@alKM|MV1!@FmWIwCe@s^D8^_Fte3c-m3ZF$j5~`x zN{4>Z)2hezXz@jQc@Jw%it|)`==ajjoj`dWcE1Dmsh=D4qn(>LXQ7p61DcVAX=QIB zC3pJGdQt0N>9_XGM(P(oHbZZ$t7n+LvAI|Gg8QBEuQ z-quDP)i2fS)x?f!YTo!wr&s8>`>pV#^9YSWOUY|x=elI}*KDK=+f`1H)~XR#IjuN! z4`0~ZYt)bNmi^o!AM0p)VhA`n^TB!=JzV;u9Q~hx?TsOvBXPes z(hO%*s~r6{yi8aaOGPnOjyiIwI3la1Ccw`sjO}Cm)N|a`PsP4w&fEDfpr4&b#O~g9 z6!ddAo6Goj59kBk=4WG_Rbm@_xp!Y)G%NNiU;WbMl{dX*v9G)(Z3#V19)UB(aNHJM z|FZ_ET{|VT4mZ8fUX*Lx&n?@ahCOwkZwNihFj#mrh{74qIWaH245QC8wlkw-oDA!Y zF0Pgz%Yt;Sh+{=_zf+dN-rW6^{OrK9qr~mU*e4(58ZVM!+=#^)<(!xK&$#xUcG>v% zVAHcW(fyg`M||ad>5Gt>Ea%)iecIe9la{--`ziSj(6!yKk^;1nH?|#jVNPG)^wqC? z75Q4E9{{xIMY6^v&<`(fDnGQ4U)am_mSJXUW;mJv9@b~u`4glrrJLAwS%9&GtnZ?Bkc!p5HqdE4-}gi7`c?-5hvQV3rf z_|yvXW@~t<@@tWZqgzxy8DymDNQl&UqvMw1yYBZ%sO|F^bzG z_3&-=spv@ZD4#X+8uv5qlVj@u=^PG@cn==Z+ukGH({bGWUauKWul6Q<)NqvRHB*h& z**Bi0>eRJ2Uc^VS=iEOvh>;I9M9_NF`5ZP}+QsXQWl^TZ=w;g@*T}&+$_M)6LWY%M z@_Y>E8YaVtGhAjVbJYLbv`FZt>#MJR=JJc5|NP~1#pJio4m)K?M#Hm~fXvvq~n zZot+}sgUKn1iRN}gRK~?cWtwpTjn^UbA}sd>1?D*j&#Xk(e1>7wKjhX9=MHDc<$Fi zxMsV56R;N7eDV1qwf3)KlNWkT(j)E8@jqEnb~=uAy$JTCe1a zZTym2B{tOhoGZ6Br0<4g0n!G&@a}GA4nmvVC2c!vZbR7w{WGoSKEbta?Ku~wQmxI1 zK~MPv68yC5Y}3eBye@xzw#`I7WV0K}8X(JSc*7~R#F2+A`51%u>fk?9%TQ0;ls1`F z>w4B}5)KEgSc}*25?y1y-?TaiJAlOXIlLlUZ&11=K4o-f2)Nj6u9D*uudl!U`sHIE z`}pM(pZsLTe2Kk0ftM%n98N$tV}H$e|EkNozvX@HYc+lVB^zt>WuNiud#e(BlS@fY z2WnoeU3=e%`wM-!uEl)MuQa%pqlE7diUV!)eTTg4ZZ3guH0!gE+HDaF+g@i0^B| zK}>|=^EC#aTGvZ+=wKnesP=|AYe~8I>$`Vm^}Og2?RqA_9Fbxzo*(=QCYM;BP@X@; zkk~L$1~+VVTD;bFvmZJLU$ zswG$d;IA~DDSY5Qo!0A1mGQZ)94PJiPE#J&hjTl7*n2k z!_GK&&XJW1(~4iC8Fyjk*R%Xw<%+roV1sz7}8hS-*vG z|CL_e?{3x6z@Bsej;3e!Kuhdw+gW~(C!EFeN_>;e8qp+v!S@TIbE+0t?bk1@BfbPxO~@ledpyH z-|?d4w%V&IHTC?9$ z7xwj?EvSZr`A6=&6UkuLLU8^X-D0h zYu~5v&bDFiao;_BW@cu1e$!kkVy$Oib-)YObeppl#2B4e+u=EEC8%`m z8Lo@a59_(-<)^b`pfD}IK2{FYY6%wR@VcY!fNOb{62{U=^Map)zj zr&y!jNBz8Zh6^X#OVo<7Y8{iWB!ew zbv(5s@~iXkgH&F4BTA1O%O76mdu_AfVAZwwJTGflKdB{5tKEEG!l^6rSc(+0>}Aou zg@M62YrUWQ(uwg|?IAzg7)>ek%`wbst3dKP+BP+44J>@@fI3Y13`64cNRBo)$_-|%W#z(iu%WKF zFus&Fc?)PCEfjF#%+7GKx?8bZ`t522usEcZwBy1%YbS&@loGt@SAOM-U*$j5((fwM z9~|PdNRce7?x6tf1px^{Vkan@s>sBu6$qAI`(9~nrShZH;=i6`CP8Ij1_CxV%$LFDc|G9+FtCM zJx&+*V)wlu;>1|zx_^{+?!b2$_hX52TJb!=m+U?d{s=poZ(6^I%>JCg-q`ad-UQR# zH$+LG?FpBb|Mx%n@ymyQ_ImSGH+a6|{qJu#`us+g>%8>mPhfP0qnvk`<$29Z|HVCl zqvun3)-Qbawau>u;U+A99%?^OtOc8|eGhs*jiMD_i#HOlUoz9zSQ=vq#dg!;9pbDW zvtXHpZFl77U>_nhXx}U5lx}9x7Mlt6a>BKA7ClZSOyr#>pYuJ^rS3^=X_#C!29zw&hP6$i}30v1A7JA5zMkPm`UA1|HZjX0y6_c`sK6?VS+ zY8>MnnjcYmWo0~I5cyHNQjH(;F`l6wasnZQn>Tyy%kw>7b9yd|dzf&oSihjll^oV{5BEn+M!7o& zk+jz4wX{I>I%-W0Yh~?RM>*%u_|nqq&AMbKuGvr%WwR9KgnxEk>W}K+(Z{W7*(R2} z$L=5HdtB8W&5HKUW}-XN9#EN9>w8jXSHH;ZuE;tcOl0?CvFE54r_CG-)|fhKBA>kI zJKuqzw}y)`p1B*!bdU%nP?H03!l3D-~Z2tD7)xWukU)-yV}iH5=S?S z;Pvdi^*!Ae9lvGYx75UQIMO)EN4>A-_?ENs8u#xxNBvrbS6}`4_A5fZ=evLPlXFR5ddwTvj%n?`YX+>9qKWR*pX1Sk%9UweZ-47#lDV478ea_RRiYvp6_+y zJd?$M*k{tT-{j~Fd`#!!OL=te-kF-2=ho}+d$VMDu#t7W?h9umFp=BzfFHnDgx7y^ z0b#Yb9#kz?ld@!1x5nA!s1NnnOygnL+TQ>E%pN&Q*H9fX8Xi+aZq~*+ z#T!gb4A|vEqe?Y?NN+-acDXF?^Qp%9nTF@(qlr&Ut*kKe#IkXDEqxq=PYw(2 zT=&Tz+N{W%tocUs+@bhFXtl=AFiGp-Irn?5;mE>~&!f0?kt3G%e&~1}pBz?onI8OT zsf+lONVj;a1`VsM&v`Vj*P%?k=iC=hF+A@9CJwl)*MmDpK8w89C-ezd0n4k zCrk>|Qn;CpYbL%*RL&!zR7iQ3r%p-78Ko9kF5={S7EM`vanW&1zHmJ%?#Y5_CC~<} zc|?|ybJwIn0(CXdwiaLOm%i}Y=g&8J$Xf9%Oef=;`RL4OgtXS^?a{G`xfk|=K2lYnTxMayQZsm zFg?DBOi+wHcF~ICfP1w+M~=&fkM(>H6E4lzn_6)3c#s=e>MF+r`9)~+oRE)J4F?N4 zlmj}n)Jn_sh}m0P=kx3UsF)y241<%TRY37L##xXaKGtTz3a4muc#4Bptv)1m8QLvxMO9SaUOBt zk#j4bM;ry*HN+8)rmV-xYYEfBF46H7-IO^@rWMm*l`g|#RVaTnzmGHG#UY$4-(zu! zU7uN$!zUlDG_=5%Xwjt>Y-GLO{Y?$SZom>S=<3F_=eydwqB&rsryL`@pDEiGS{h8X z^g#~`87@|MXrQhHQ{QQ+i;bN+x3D+(u5D!%3@_=e*8)$&c$O4?otb zhaM4!A1yOsTiylmv5l1UNjT8yQNN!Kc<`g8UY3V*B!tYRXQPjO?BngzbowXF`sAx_7U`jzue#x* z1y+Og;y0BXAKhT`T&(w;^kVEizLx!XE;07KlY5?L^*np~SvAe;(KJ=uE*{N zsTM}Pmbk}3)CaJGVIM~=tfWze@o@P@2u|#!8tO%jekgCDcv{ge=yDy+L!I-ZpK=DG zo^ro^6WxHZ+tbC`M{KP)VsQfBzw;eejbg`$vFMKajdIjyc2noU>O0gnT);XnHWLOb z#Ek~{gjHSbV_aeADM#!)@+xxI5xtam+jN@kMcPy*Gu!zO+dL1>6 zMJ;l&@H2gK-jW(LGLG{ze^-N8BpYt-m6d|m^u1o3Q!x*;;b0?9EUR(F!$vJ};$n-` zC=cdb`eQxk{!!k!JzxDdGi-uh)&A^YcFU7t1v#u*#b|gwV(`4a&QJg_ufeaJ^&%cz zLGCN|nwV35xKtnkS$q|^sN%93go9nu`@yIwyxF;Cd9)mjz?OPk@W>Mm7Uxl{o_fG3 z?)7XGl;v}|zhqBd?-7U_IN93iNcrBu#PfeW^tsP{X7f8G^*djEar4!&8Gm$x=}Zpp z(G9JcnI6q~(PrYTdixyBJIeL+96##q+^+}!k>{c3CO$uk^(l4zg^AYZKL7d4&wcvU z`u}0*_rccXZ+r`K_qDynHD@d7?=#!X5{>ebL^kp~h9gDcFGa!I4OkAzYo-sgRP)MBai5uC3)IdIkTP+q=rSm!IRrJR;qcuVHmhgcR4b)Jj< zA!iknK{skl#a`@wDE5^5fwr4P`-ptSJYv20zIS+7_=FxRIlX>E^Qo74pl+=dhLSB$Q9=;Z;O01}!oi|HcBLu|&`yLrRsbl#^HsS|%N4LtDk7X#w0GF2Q{AVcVXnU>(NIVl3+9{*Bj4(Z z(|i?_72^e6aL>692Rq8asg?~>Ad9~tmH=+R1=ke$UVY)k6eU=s#RJ2Vb1NQPd@MZ0 zT2Uv);=qMZjEx*(<((s(mGx1shu6AZvWFiv>kUU;uxi62q}o1}XWz(U^_PMA^y{my zex{Y{6Lo&0hhII=2zNNHdyC8?Z)n}ppBmrCBW6MmOCMP4AeoKxTI$g4*2bYtsm*2>F8k{0LM#@Y$YuYc%14t}mW2kftn(dr z-+MSN-|O9vyj~plBVLBZ`Weo!#sqwBU}26&trm+^incdkU1b#lYK0wV)HKaWIEaU^ z(Qgx)9FkVG z37&qSigU%7*|1So@lg%6*sKO!EL^PjpdPMro{u%+!6kQ>&6*tvc81)|6|`eM#=W+) zJhc;7kI;G}J<4r}Nk9*5LOBN^WSeBZYT1yh8o|n(F+PATb8}WmJ0-(B|46^PpMxed zGfrzqF@FxCh;uC`xTea*;DcQ(X(X{;1cvoo^x=4a_m$VfF*Jnffd)Kccv#nPpM13F zWjL7YRKM4pf@oEwN3U*eu$oxCiII_1Pfi8B9Dm?{{q@%`zgRvwr=?HQ=@WH+qvzI7 zzxvH5eAlfFI~Vw!^mB)2_c1#tdRWzQ24Gn5o>eVe`EgMP9%Jw~s_pIFaeUvqeDG}V zaC=rY}ZM{frCdyiE@hSPC*b;$*qfD1$RBYv-6|-psuw zrIq1I$6SvmZp;y5GmbDVane2c04brC?=H0`{AhRV^8k`m_V(yF+{{W(j~+k6!LZVG zKZ}L2oE!H8=O%kr%m?v?1D#%pm%HDS60V2z(1aVU>&f?;m?K7$SQcIPGhVHMjIH3{ z5_vHml-`oc<~}-?Hj;=X*xZ1Pzwbz&;%Wu!go?q$XJy08(2oq zfm}5^xego@ZVT0yhb#CVy}$eLg*jii^J32P%83O za^E>VThI5}I)Az76LO#b#n;;Je)Uh%^>k)&znSGeH<_@Rp7XQ(*DB^`!WlTGeS>E< za>b7rb;@aZ9JveQYxnAVcb{{>`Z>Xi);X$E9?sDT!owc%V_yCIYxkoc{r@idPq{ww zk-t?x4J*FB*4w{s@i&7gMm*r~-c#R4;6Kvpy{YK=2=1$uX7D+L9W7~4m+6!1>BJe@ z0A9dQj^U4T;_Mn+_lU%ijr%&{XZbjW$L>=L7Pr^KsgsR0o;&iUxk5I=!Af+|`3rO$p;603F9FF2gRFL&4{-iUazF_g49!m*&O#`qt}PD^$>?X8~!F(cD;c%K|9WcxL!9D z58U5WOa%ATntUe1IY5iCY9gk1q~$s49itc4_2mS^DhrY)`i8 z_4vxUFYTj!Iv+09bMDuf3khD0@4ZAZ#Q|f6TUrIFX$g8Vj_bHD!7Nt29@LA6rhIB- z!NHUVLqir!`MTDE4UUK`{z^Y%>K{Ck`UE;7+qg$Mz9(@N_i7x+hwnQ0(YB$i4?4=h zcV6>XVvm#Qi0gRMdIHDia{p|rSgW5i^vSqi`0Q&<>K)(s*5*IL@f%p^agzxP{?g_* z?2gXK&p6{|SnsUQaC;hWMBL9%^K%Z^n9ug;9O^ROQ(^wK`_1ouPi^ywPk!>EPs9Gw z7hbDh>+Ov&z8PdgO>ibCReAQkvhj+rv|S&+acpMgG8~F>QBOHE;f?G_e^l27LqL`X zg$#1E5%>d}?Q=j+Q$B`9WjwavMf8K?Irp<#@-Y`l3WopJkXvh^s}fl z+c=Dc^%>wg22U2>^_`0kk2tkXDuNz1zd4ISHeafJ5)5r>HCV5wa5yL1ZRoBqy%-B~ z+&F~%v0;v zf~KWd!77Gc%S(6@>_Rc>YbVeu9%~o!k~+Mmf`?T*!dV$V5{a!x({#y4U61i)Ia6#C zS{=BtPvoVsiV=u}AXsSyYxFo!jHBKI<2J*Drp6LK*7&%d!-8JIkm-;0 zf`++H5pY~Rrj|Dj1)g$0&`yVFVI{z)g7mu~ed*T?_{}4~spPy_-?e6Iz8-nmIXi}r z^)up(vz+r@`u!8&48`CavBH!mj#has*HA1TT*c38=|AS;CT#tee|jU};Y0ZwgyRE$ zRN^i4UI{nap1kw$#qGWC_HeK1=?EXyqp{(r$OQ=lR)u2&2_Y7Bz}57L79(P_HrW`A z?YS8Zal9t>Q%)STdR)h6{MrZc*pyg#7Zc7Pa3<^xB@?O(McO`Mj9rL1eA{5o8~NTV z@@j8gq9_eV#S*i8buEs)Zi(Yqw`gQFK4v|GLK4Pr($Aa(dAz@chfnAw^9aylVQ^@2q zorK5UWqCj&=W*nai`Lsm9dTX9w@qEkC&d+lNMnzS?;(^a>xJ%570;8BZEaqwRVgJc zJ(TLD9mki|cJ!$Jn((}Qk4sn=7{`GnFAGOLeKKC;Dn48YI?=`57bnJEm-s$=P49r~ z{zzfPcOQAMY6*;+jR+0vTH;5X{FIeIdBnao29$MwBS79JK{Hr9IVeyx#!z+J-NBv)&1yu_JP`9g|3VyxQZ%jzL5w1;|`z<2tnt_Cx+*JJV(6>g!2$yc`M#{ z;K91SbBDf)LSYE6<=w=pG0I<6roFoN0o&VgW>}R`FDtIc%KJjg>y@WQzH7vsVl8pd zs=ytWoz4z85I@VmV|G6$O~pB4g=w71E0<~ouD)V0xA>y+7q0TPJhve8*LpO%WM|}< z`sYNX3Gp}oqPixM zi;E~tj7>@oAsg1*ZW)|v35*Sd)#l_AV<}Or@!3MmJ5PSgHwVVpqTg5m*p@i&>?9n} zoU^kAUI^P6F`>5si*|bhwkYavcWa?8<)J3E(dzi`eN{rVnm1eA@hU~CdnPMu#K4mS zRC=gUh;+1`Qw!z&5v1B7SDlbVTQDiKqz&diHElp8XBLGnI#c(IIU2K#*c=-|SRu94 z>QqxMs_%W$d!xPbgt4k$E~?+*g`^&iQzz?qon=ir?)=O@!_De5%xB5+J&e7|Rt8)(FG)>YU~r z_kE%sE{<~KITvbM9|&uK&R!6fG|$OOt1{$TlY%y^GM49p-nC~Wth`y%=AJEh0$$vL zW~x}ZU}@X9&AGllf$E;hg}pi6v{ykm=#vMp&lAbSy0+5PC)De6NzqE$gfz|so(NOR z!?uOcIP1W~)owPi3`(A{J`2=(W)gL+weckwtRbqJYyoB?$ zhNWIy{z4?y^uOs-mPruqy{$9|)j>B6EHmxPOYKWuvn95ad&4WXa zHoh;lQtGj5pBfg?+Q+b}6Y$tubgx^>8I|yy%>-THC~w?#tA-rAs!@xyHh|(W4wiZZ zC~5ert(Zq~n@;7|%k^gmh3KQJnuo5n=R-AT#k@B@Hqr2u&c)+|Ui0<*%7t^}##)Q5 zuzuYYQCVrjg+dLn+oM^;o#D9V#!rez^K5Dlf+j7e1;Jl6oTC0t-_5fEaAf^`YQrzd zO}uJ*?K(m;@LjVd&4Fjo&=vn|%~0?t$tK0K#<-r2Qg!b-JCRf%TOKl6Xvm7gYkE^h zP6b*NFVPh$c&#f))sig_(a|mL<5n`qUE=65^pO~cxAH=GRK3ra{%>|vhxVrO`^+@g zPJ9Kj{|OW>)-_N0Y2#B0IXUW{95kax%wzYnfp&QZR)1#X$njn-IfL`0SIt;FYUJY4 zSDjYWThQezwU>hvETgnC9IW`O-yn|xu|eO;mrRdmI4)L&yEzxNb`=*+19w2nY#n&3 zC9EU`EFTCA3$JiSH0ZMQ!BU4k5{f)xZ0ofG4KGgh1K#p$VT=VwY!h#S)_qrV%`6`K zZ@2-~EtfZSv|CNb@iOnJ1SevEwTQO2t<=uy0f6(;(m4t5i=q4-{?o0c|I02qF>>Fe1 z7iY@Rxhbc`UsAl~ZEvgbTi^2L%Uj?2jn!W+@2cjDU;M&i%WwJcuPJV@>V~T{`IIbr zuYAMXDyBTWO#CL7-wFHikAC9v?eBT-^7~-R*S_8t>YtqsRC)ivru2}k?~w(=ZfXi1 z=rvur#ZykcR^#Ddm-IF7+)d#^L|X+&G;Gzv)VvJ)|C4KV!YPhWz?MIgMc$|%z>}9o|-KR8SM{#?B7lFt{vuDMR$5y!pa`URaKoFxCE1UuRaPhHgeF#yVwzO(JscZ>= z>uVbX3bx{#0Oq=-H3y|yf&3#g>M*OV!1Y3DvxVDcZO)ZH zvAufryT;^v?5>pT5-V^*sweRf{Af-!*>M1R zn~3F5B8!t|Vd7ehx2(2?wlr>th zYIML6-h z{M9~s4@Y}^-g&kk=Sa_i^NK}~g=@jX3R`O`W#v=W(j{5H&Q`AQr(Qn8Os_M1=emE` zr?>xrE7YpmhZt^&E9JHRXBtOMQDD z;z2ska=_6V<+Lj;wlZ7n{LLp|4+WUKN3=unCXwEiu_AM0`875nTx=yxiCpFIylkTf zp<}(SLuv3Cu8JbxW6kJsYqC0{+=d&8oy~7v_;9Etmhg&I$Z^ZT*~~ErXp>P!Id7TO zI(DR!X=ODT=6$+8XB7p&u_myC1W=EK@8sgwP#i7KEy(5?(@}auo(yI+oag>zo11C7 zUhxp5ED|f`gMhw%v^KO1i=0|@{=#UReiJf2wrjXQA+w{n?k>3kZPq|;IE4jptkMOH zhNQr>&8^B%tPO5zV|_|m!5OY|qA!^^AN`yQ_S~%xTL$D0;%zR=bHhNn7illqEZj&? z&KEaw9DC_M-3f4$&(Ga`b&heI<|rTeFXQ|K;&b8Ws+`t4ziGLVs+*+xH0fXash_<3 zjSv05mrsBCQye4p zbyTlk38#ORsQ(C1|Dm$plRo+PKYsb-Cq8lc&JVnQxk+4#ye|5&hjg8zc=-La5;~Wi zP~m}LDGf32ucVueyfqQvMsNL$$DXgGbKcqdBmPmoH(jkuih*X&1pUTGpd=b5(k57| zz_2U)NMqwXQnqSITWd7_sDG>*aSt0w3;~3LC9GPytiT4}1dW+Gv?F;G!*d&JJQw{l z+*msum;I-G!ntfhf@r;I$&r@h?@3>E2lk9Cqs;X0 zalK!UBmGhCsK57ct)3=)^2EJ9@OpMv2a$xws}FS48;S1g0U;5m#THf3y?jBhIgc}6 zwOXULSuX48nAd=hW?iN@xVmVh#*M^SeCn}L!{Zr_^H=|u;2 z?;5@V3Y6DU&hqBg^z*nddT$m+kF#+zC*m*T$De@Tgk6b=<`K$lOPh7s|*MIQx!4Lk1%Rlo^ z|Ip>veD|-ab^6q-uR6n99C^I|>Z?D0dH;8Q;POhj=~)+V5ZJY42shM~a((YEZzh{R zZ>?`W)tFD6zGu~638yB-uf59UfBZ{-@$x7B_zx%}{t{GLi*%a`wSLe?7H zxYZuGkqh4DD23wGlEV9{ZuqiiM3t1URfkyI-PQR@#+ZV2wxJf>8|`S!8Od8ljNA1% z>XF0tX3}dw&sE${j9a}YBwkkg3(+-Rzv}bgFY1R^N@z_?VT{4u!a>7x(T5vx;&?1Gn!ER(Qq*482%oVu#rA5C zHq)yscu(5#S$XHVAKSZj%(Zxm)Y#S8lxzayX)xt_i@MPURC|;c2Q93yGwas6qaM=L zTKDi~z5#3C>X*Mwt;v}II0)=j7ya7n?1euJ`v~r%mti(a+a&yGH{6m$PnH!q!pX;+ zVl=4lS$J5qusxxc55f^Ajy9BCLx>>63|MfWY_{x&0Hk)d3GFglzR&Sj(MHq&ea*jAAB}>7g0h( zX&K4fB}YEn0E}KP;An5!5}8ek> z{+@sC_g;SRxBuX7y=Bn0a|W`3fHe<(64TI$2;D&{Kv`VrsyyI(rcB!xfH!RTd~qtt@K|1!lEIr zbcEGE|CJtQlCLX-)y_yvrt*RQg8ie6L$es)3_G9ABOjUgCJ> zPOpBf34~r+xKQF=8*%U^P*8!>^TMz&v6$8$9is1*Q3YsET$GKj-P@1S^X?l zbxM-dr2#)%fOOjmN9Mp>Kjg4|F1b#e1VE-6=tFXT|U7MXeq$72Saah=Lhs z21Cb(pB}C>IKxfmp}nUvOnF+#vNA3_74R1eUPJ9m`}|MfnH1{UiC>-|-!ncfD)*&$s+$`fIPfcKMl~{u`H{_{;xW z`^2n%Rl$G$$N$*n=U)Bv<@>(>HzRkmRlj?d-aB}&!1naw`%JybS&IJBU;GPok3aIy z{%9@zFaE?ItG{~T$N$YAum9=SFMZ*)%YXYP|K#N_|L^~6{Z$RRVXd3cKm5bxQ?8}{ z!$0%k%YXcz{73EAIOu%-%%A_RkV75c9-X=gJ4i_J-}@QP1O5(@WilnqlN-tlFS~^*YZtoc#(&=4@~# z*hH><4Z6DC1Jp71l~*qc4e4&k*buzkk?(oxWtj!*xpod4 za0xbi58OBXCK2)tm$MGpC_XfxW1Hf~25L8IHOl!U&U0TJw&eWkN8*lPz=#_g#Mor2 zOI~)QD>B?#m|u=0@~S?1vtF6?&Gj3hKJ_}eHaFVn?3)Ig)N8c0&dZU-Hm)2eS|a6^ z{0=Ym{DI2Kr`?^NDhrt62dbN`Y=X70h-R>|yB}l@dQGKo*@V|3hwQ?oqzGiNivlA{<6Gy!5pEaOmOK!kW5LF0%VG#c{+K_cU%Cbt4xwV(jEm z&UqU@J8LKSVf7j~$7^r&Z;_*>H=;%nN6R_2E=w%bg}>(O`>GckXXDOrHU%ZPrKXhC z`J+}ZR*zE!3IAk$wyg}yMn2@7oF(f~C0s{7ivh?-3lCiJ>N|AnbBlbm8|{*0O!4G< zUVgS(O>-7j2(!|c*vk|6x;_Ej)Z~+||I7dUKh+zi{JH^dy#DBq{tNYYy6RJy`c$XZ z>#u*g{>NJ1@Me8-_Hy}_cfYHC()Ihl|NAdL^;17pZwTsBuv)r_`0A%W(QZ0c@P>CCzx;Q9>QB{A{Ib9I{MPr?PY!?XbDz2V z;XnLG>aStY+5Ng-_rZEI`ak>+{{4Cr`d|F9A3JQPo7K{fzxLtV-}|1+U;X1hQTu-H zKl;J)pPhYc`@OQd>CG&g8?Q&*{1D8q@45971dP+(n4RbOP^!?WNxDIiCs|=L3vM<_ zmZO*R!CF6W?!-p8I%#?*c;z<_4z?wNLmo>y#^96I=XPJ^l4fOX;KQqNMqEYUqlxX| z9|>U!!=jEysa`%Dk=V=I>(<=RNasl1gus&Vc1 zq;0@XFfE$Yw?UKKkuJ5eT7ge`N#1w8N2}JB%l6;ttcuJGseMrtp#C!zZrB#$T5{b9 z#X^+S61F4O%=S_^{1CHE+z=i0^Eq#jpD8&S0gcTln*he{b=1zb(VKIv*?0^SdEibK zrZvM|n9CI{)yXGTw&yDsmQzD&6UOm2$xbk;p>M_^C)rJ2fs(9EvVi1-lS9mN)XS2` z_niCmb{%}@o$wh^CGO8k#F`jqI*dHS&FaDY*uXZ{8fDxKMu0_#*sXF5k5yia*!?V5 z$@>d!_L;48mIreUABTLzVqELXrF|cuuvpjL?A17%uL1B)A>eAsVM!}y#Ua6|fjh&? zI2lHd%ohHpWD{fsPls^?tpl_8ne0e~9WjgBU%aBx#FIL5-dDaJYdx*s&*wQ|$-wafCW11=Zcc-2Eo8d_hxeEITC@BF5EBler${hszoT50On89dANxzB$3 z@_`Th1NEQtzvCU{!z=f^XO&w1S^s_0i10w%`6c+J9*FXa4L5Yu~@~xBuSd`@ZjemG_B{ zf3)7L)eT?W{BFzli!ZAc-w^%HQhQZg9u=mx7M2S!HCXZkD{3uAqr=T4Gptj-%-u;w zo%%f!?wWK?8`VMh#kRa*8&?Fa10vsR8@D>^h2E=HlfuD@?tT`pk{hEME&41`yE^QC zBdpFQw+R+P0!4{7e%yu=hdLDY_N3xoPEBGxjlC)LhmPmq!#T>qKeEi@x}BOx zsj<(R)V1_l95sgL8TAljX65lE9P?nV!vNHI&V6`T&(TL1IvH&vI!~7cM>=tfkv~U7}s-<=_MeUKtgMq+zu* zyxs`fFJNCmgcNR8EhtEruwgHOxYS{tCJfxU&cW~Wr5xH*+Rg}%X(@4k9I1-y=jVQ` zMK{AE<_Ag-ape1ovFFU6p?OOyZSGON5sTx;FzP+ZH9bgJiOVO3s5r|p41BM3UpjE* z!x#48^#qc;3FFpwgaL3kpP!R-)U06qa7?=CG-u(pvsK7B7r!pJ5hq`8C_vSUPmK}e zTG*)7u}kDwDs^dJb92WkDy+rDQbbIp@R$<^Ocou-sdo$4u-LB6vrAly zXnjR;ZI5`TFDUk4|ko3CH`C2bT zeeSi&*UeYI@#>#O#n&feRihiXx(TV9h`KrWsKw3R_UYD+uxANcNaMxUvl^!>i?|3})*S8>1Rdwy-bku6{U zp_x{1CjWDr^!15Z)xY~&-d7*L;|Kq#+WW8l)K9iIXMNiEul>|tub;O4uJ8Kps$ah! z^Jd6mux5*6~%Zog=we4^P%P z;87P2dGsPqezm@pkQ#>vy2E1C4jSJhz3EF2>?XMev6;9TCc1FXxvxA+8nLIi5rZFW zPd3nMc!sNjDSjl`+%;u!n@I^CS)S(N#5{2oUlqY*BTjCmRs#oXxdvHXb<3sZ%B5P% z*BObira9xrvKXftWsuD$VEJ?_#Tv8@n^xyZ)z%ta5K=ut5U|Q=!H0)ML-C5WQs>}T zvHoR5Yr3V}ebh3H9Cn5S7rUzgz(PE0Rqx9;@4j>7pXn4`L_3gRV zUi+MLZ*IbwW1RK9{@-KGv-jG2e|zq^%HP_Gd&i0wPNVQ)!VbkQ47_ZEJ&5$+h4W#0 zV;!-^FU8HJT?@KYVadgE%1!rH0r+Q|2Xh;ED2b3AD_(9 zW}9Ti-W1>cT6`=18cv|4Lj@7k{aoio!((5P2cH2u<(go#ktwz1LwqQKvW&h`1tV}( z?lb!{@cB0bYLwE%7!KB(Fcb}t6?pZu_gMT2!yOx@7x1g(HA*MPZe%BDEsY}b${UG&60=5X=Rs#GQ7Bz4ejNsp=|{|dE2eASFE-g@Da_|6rcNjkX!rcYW1!5msN9Ct8%sdfOMBX z>zVBnLKSsj2f_fOFHMQqBW*4qmvy#^+bEu{={X=1`mqOb%Xz! z>zZN!E+s=QPvtyeS~_e~l+&29YYu7?$id?CXz3_w%Gd2V-X@uRisA9IU$&Do4ZV~MW`&5-Le z(-O87a*5wwVHTI4fz0>RT&X~Oz)I&Qob9sB#go5=$LKX1kEGfNoB?=gJ1C(}$7G73 z$RJ)YJV_;MAoo)Hh%eMp#F37ZBc|Kj2W-~uu}ry84^N5Gx!v`Shu>reHwrrBkPUxm z#ZNH~^g>&BVZlIKIO(!I%Ts=)_tH$g#?FQI7|tsQGL*nsM!!$@XW;&v0ak^2qw@Z& zN4crxp~oH99sAG&-PP~Erfv_Qm8!a7)DtdvLT$db8n3N$(CSz<1O4V*j#F$_*t-63 z^HZx$$(yeobJwPN0m9iRD{|Gy)}F5nt(H}Tl)?NXi_&P-;u>vnur`LGF8-2>qrs~j z+Im3SJ!rl)w@$Ds!Y^|-=hdC;}ggq)-JK^@!Dxm|n< zw!*Boxl{(`#$;1N(MGu|QV{g$kAvHwO<2s?nT&dz{wD2`Yu{+$|L4`7$ji5l0`YYCSG?=c>0n=q>eZ1K{Iw7&V=`XXR; zw!V?{;xvgP*?dQ=Kr?5u79%NUTt{i+eUS`!NKU!^uV}AyY^bE9`ZAZF>Rz5XLb>l5<74XOJdRuLbKI0kBh(?}nw58gYHeWr*)OG_} z1*^Z)Pw!W2s(GmV+YB1o+xXNKunV1Zz2F*>uTyIw3NSuP6{W&8SV(#gXtVb6kQ}|CPGUZHkY5%L!02T-%9FyAT*9*tt;>)N@u{Wh`G| zNf~AY=oq>JyM78Q%(k|SM;7(^(QnEj`(6#txkXGb8#i>Kd0>llbLX8MB~xRj1jPqC zviqW2f&ts2Eq`!cPr|t=;6+g(l_AiW%2#6zM$mxqO!q*Z&6}2;ARTXxo|BT{;g6RFMi1&Ud3ibmIXuyt~u>x!E?7TfmkMr) z9=-bv{KzyhL4*rz12c+Y>E`rG&zEmQDQjht7rUq$8~)xYbd8^4yU#xV;F$q_w*KHb zqurf}8mkXG>0qZDZ*g-hH4dNswa{z}s!%l^HBKt@ z#1oE0qGh2|SUwV1m_d{PaMXXkwO}dty{G!;QZkymK z8*`RjFJ7Tr7{BIcJ2Jk+B%aGV=1cHJrwvF&X(0E~`mtq~j*}9F&))b#vt2U2nGRS| zIdm{>O-SL6(rM%pvkYiWzorP}dcZ-wMzX)lQ@ny;gRTYMp@K<*ZU{4i4FWn*4V4%= z45950+m_!5(Fd9|3{#a8Wm!=+>D=DpT{ji4uXa7xruy-7T6{cZYf%wlolcb|Ot!Uj z18fB*_{gvefs=x^Le1G)crg>jsC2ENEfXH4UqUeBzP1s_JJ9nNEKP+-soBvfm5%fDtzL9*Rt=abu5w0vX3LMi)a*~55I z&f}A*`)1z#iw#$YIb>vaL-uu>@y6DNW!077tuHN=Q={S}j0%xr!Ptq3h#W& zpA&&LFeB4Q=)tZM&%Al+&=;Fy<(*~e+%E&x@PMHT&=^PS>cmE=`>HKwfCioaf1TeV z)PoXAvs5Q{(@h^4t$sb{+_NWFrOwSEP1J{h}*2fe&HDsTQIpw#lUMpZv z)E=-C*MkZ5D2=W$c@@333WzVNO8|W~)3y!T|MjiE|F-V6ul@P%MK5}Br`&47-gx7O zI_DC;JVo2l*6xLt^W=%h*$oV-*X!0e+ zgn5MqkZD1XvSC{JJBNemTtyr+*OzL?Iq%p-{8HzoI3;zg^NR{HP-_AP^IF(~UDH`8 zScMFn4)8r2M^ZvDWf}b(4WA`Nc@W3LX9^y@Wbqn1DYW+-A3dJssca)pwT&aKq`_w+ zu6Ph0x(c%5!j^(H@d*>bvu+i3o?GH4jD{D3F6#qm2jW99PZ|a-fe~F!;kcp&ps{LD%~VK0p;ytzktcIyY*N0s@N;8QO~DSn(|^ddDgj*leH6lWc@c>Xn!P zNeo;|w+hhaW_>s>ca;PBDIPpHWKs8Vz43C3y6_L72VkquC;TuNHk(2QhjFiIBmb^b zP_rn*^SB=Swlv2er^f-K-0;{P@3mncsKeYe;}Wp2Pk>xK72k7JjF@4xemPR(R)+$X z5mXLDTec8>M+Zw<7s zc%aV!O;(+Untcp@(jL0fbCb+Xq=cbS2!6M8ZdK@RV;@d`)vav?v}Y^hq6?oKt77lE z>uywAQ8jkE?zm2rIrj#uH-0_vwsYt)Jx+^fMPJC$C3(lL;Um+`{M<~T625exsUbA7fE2P%6WZp*R2PU*2jJr+8r z*og;4@7NY!@VI0%`o00HfWy#-3k?96kmIK)<%L=RbR)iZ?~j`bb$bow0j!XuK3pPY zK=&+<0y3Ej>IvM&oH(Tj$4LiqR-lYqSjL$Nn> zufxv9ElZK#IIQ75p8;L!VhV4}IaGPeJ=e|FA&gsxShq~Kt zyCq7|%1!-*UQOAZ4&p*{9M@0HXZC5yQ~$RXR$CybF&dYKazR*fO=!hI#|l$!sukN0 zU@TP4)qnSjS9Py?nHFMS6kbU_)F&ci<9X7yEJEa%7e5fVyj{C(=^`aloK= z|2^ahPui_Q&(-KQp9AzHLWW8&e$xO?;ZXT`zPUJ#BVM6X>FejwxtI%VQ}GwLjvzIT zm~t+Y^;KZO4cHn8+2^7f8+f;E%aIUy%ARL+Y)Vuet4Gh^H)T)oIgwD%N$f_z%5w|ohX3FyW^k?Z^<>#D zn}+n_k)_i>j~`UFsknwQRvxQ?0qS{)>pFRYT}9awZgE)Z+K_eQg_MMf$2m$@{;IEI z$cGMDR61fvhIg#ww_A^yCBTSE90{qV6TsJffB72hhm`a z>n7LZi=Ei$k!AM+(L-DK922bc&V%##=tQUVj@g2baNEY*0>2htiacDWxyZ8Pu}9#9 z70&09IQXM?aCceRk5m6=Z>&x=@w_o8jD~z^ z9=g4^KJbn@hvSbwsr#Ed@9s2r4DHW)xCiscd@A3z&%yk^oU2(YV7I*q*Hk$>Yd_`&W&AG|&qsrn+|k&iqln!&=Trc)k%R`+8+_VU<= zS6e{{^QlkY9ZlM=`}*g^7Yw!e>YwL|zrIko{nlGz`vGlzFdF$agli#m1UA91`S4J| zoNvh%O6;a|3BJ9!Ai)}hbC5v;fb{UvgA>mHgACrW@YsZ%;$35zg4F@V0WtE6bhA(cyN+)5yS^J@xvez^#BJG#(W350 z4ssB}~R=xdPSrbshu%NHhrGU6*~Z zfh7(UJ946!t2>H>TP$w!cY95`ieAl?8Egd`Djo34lrZ?po(DE4c4T}c!-Ek;4<4Ok z=6Ls;!7YT%M3^=;V;5!UIp-pb8nR8N=^Xo(2lfo8`Kpz#x(Si)2G7unKsBW_;PvzG z)|hJgsWC|7RZXr>efqvmjW%@pi9KVgiHrS#L{C5cthhOr*L*n6@1e&XSNDfiF8@Dl zlg}HtUbFLe-FaKLWD5fKndHkgh83u1oPK7fKMnSH74KUVoORZjo&MNv0IaCSi6APYh?U8|qYrwUEzdJW*G=EB1Wn}_F=op{gzKUy3$5) z)ME}4FgkO=Y=<1kyc~S<151` z9R`$8fWk&y$T7da2UYd&6!@!*1*ew1rUKY(fs zaL`eZbpgM1OVJPm+5m@12MyW5B8zIc-g#^RvIDt1c8(7mEOL&IKI5dH!s4^Z4sHv& zRY+=vdL9DF29Ldk$0q7{@fz*}pK<7WkL5@Cc`SJ%lb>jo!`N|i0qi!kfH6S_Zq$D5-0sz&Rnr=H%O|ET-A?%*GF-Q8avC-?5FSNoU>fA763 zdFt#HU(MaW`tZlPxBR!?>8`ovx(dDMq6<3x)cY}yeN>6{nb3Rl5a2dVM0}1URegWo zm%lM>>-;u4Eda1DuQ$85$+dKjPd=smgugMkK0q6grb-RaJk%_uNt*36RH16RGFn*K zwE|W#88ltN-}yJUbXULsn(p5(bgnz%_N4ucC=z_(zS9F zpUJQjc+}xH5{3fMc|BP-l{Djs(ZWjyUbOt>_l@=S$!!)Z?8-qLk10I^JF?R`o8u<< z>~7^%kBq5?O^h5F9@zQ89&bsJ&30tbBQkNGaLn&G{U%4v!5n7F z=6YhNWad=7FdDAwHLD}GO;~VK@w}db3DJGftuhA(WK;U&Hale*yN&F1*HcoFMHn|= zshH@Xp}kL7IZ2>F4X1xl6Ekv{5E{M_nt+}shXAuwKZR4Ai9Awk)Krz}^=ro&dzjqr zJb|*#W#?OX*(tbnKCXlJnE2+{Evzu;;qgQE*lyc`--8f+HV@>y*W%~n81Zg%ALp}= zY%M?6;R7X}%ff58pYy$SbPV?mn2|#gc=M9f(_%>&Im@A$HjL)JNfvYpll600FQ(;Z zC5>48L^b3K?{Y&QY48`ej1ZHqw~UWoBI&9Q|Ed`KhBRl(aNnzxwM==&rx_ z4~u-Dd%~k1Uih*)@ahZedHTMlbIm(7U)9{w{++C(C5Tqq>Sjsb^TI1*O9Ps)*r8q{ zx}%9s)u+8+wc1xJR5j-2X{YC-J$p6Y_?vI)-hR~|bZTn9;M=~V=3E+g>Kt1B+5=X@ zuL&0d4-BSB1QyQXberg0At~E4G)kl^7#1s0xTWb*|IDTXmR({^lB`&#c{`gJZ z|M62l9ec*grW<~pb;danBF76QCmO=UA!G81XZu8$Sv4_A?EKy|r;9k?i-29!2hA>^ z;J|>#u0Wo9%`Tt?3AX4et}xZ#`I=zxR{`=H^!h^GAu@-(CpAIj5w<1_WOc4;F$Fh} z0hEXtX<%0W0g8+#GPNSh?tHd4<>J8k%U>A904p6a(Sc{au#cPo<6q=Z4f^{3$@W1u z_o5jq-6lTjtwr?b!(8Gj%7O{%58VhLVRgQlCoie89L{#2HdGmptP`Ln_rX5O=U5pA z2j(-=$n8M~pCCF6Bm9c&bzp1JAxt$9N^@L!Vh@z(3%Pi_fUm*8ixwj_N%T|Ue>~+c zyoT)ZTRaBvnjb;d3?(u)C7~ec(7R3;26oAYJo zdqt^H@x*(r$25~T%Fzy%UIW@ohwbPmu@_0E${y(_l1e>c8ke>RG`NfsTNvr5Y{0TT z%fdw|69JkNNzXZm&p2$N z@QRUf(lMrN?l0^VjyO>Hfps2xra4cx4>BP`9E2&?HLNQ(_}1D7oV!+=ig1JYe6G?t zMn0_p2I?4eP}#&Idrl?;N*v@&6$9OX4N(W;6JwxRjXVl75>kLUkzg6)@tn^%WW@mo z@3CdWF6uU7IBnTo=X?%_ZAqT&>ov^qemXO-)#HY92do;=!6Spol=I3|e#C&{>oKz* z7$|o4!6qs_HYoNfIqSjifKnc=gwCgoeIp$L5NCwX$z+rc{S+Mq*%$7w8PHy!8qlS6 zs4;lgU3b@;N1gw~w~bt*`8v{+Rjp+O?53gSpjN)-=BrlN@~0Tu_CPqAiJRgct#++K zefTK{WA(6V)LyWMO0!Z;XpL=}oZ+zWpsgd+d{skRD~#3jCFjBr0gK1M&|IDK+vyer ze$C-h5_u#PqnfcaJ!z0~?V(YNJ@D+|I{4?Bg{}C(s5mrprBZYJtg}w-p8NbO;znQE z-az)quY$c$=ZAPf&_mq@pKX%MUl1my&=!mkO@r#aW20f_vd5NN|D$w@t-n!S2!$$EJca~n z4D#b5Y<%G4h!V zh;yOxaX&MS^u&TXF7sYfw#~>>p|=V*6=cXeb*eLEHBFx8Kz)D##hNH5g1Y$+l94Ja za0pBQ^6Z9s>}}%?cuMt9Dk;lxK5NQG@zeoz$ed0#Mhi!7#|bYzIxy0s%RDkz{GqbL zJC$Ce=xTW|!sUSt+QMX?B;yhnBZPzr5gXJnk)9e%A5hoBi~0~S$CaFM_<+R@%|1nz zX>@L(Adpe?#FB|TP;_9)=TsQ%;>#dpz2JMiVjsCDTLiGf=v*?EK;Vnai)W~?4}L*X zt+iN+mLoir_*o{t?BZRPPWVXLpx8Vn*z7Ag563!hxJZG`^A#Ox;8{k$6(xr|aehkB zvV+BzsqDmn5({6)WZp6OwN94UExhf*hLxWk@xBSG6OVR`T6-VUvOO9P)IU2XlfOPpKcy?>z#Mhn@1gU;4%G**Ot?u z^A)hbSmEh8|I;u3QeF9a-V-j0m9-Zh*ROr}xi=k(oN82RdxG!%-tRjst3;{qa8or{ z)kN0buQztr#ChvRP}*XF!5ks)1-Q(NQ26OOH0I&2eP^{ctc3fC!L>|6@` zS`?QF6h)xf8MHJ%V-!8B+$6_qM+#OOr|3ofdgJ;CIvgA`sE8G`__?foXJ7i#mwANX z!HzD}LrzK=y=KUZ^A=x0rgxn%Wz=#98#1AwJ$m}M6h}^{qo@|BzCX6Q&Ad8YDGMfS z17Bm}Kn%ARzP^8!KQ?>_g1*RM%JP7#v5@f}XnmXw{yAU7rq1FcSvPEpn{O8(?1}~B zI#Ub602;F6;SFGH0~dZI5{r0}UFWg52&com~hUp>LUX_q8cr5OV^|8kuX(}n5KO}+))_A8#{s^L_P;mK%w=Yi4G^n zyKV|6JT_71HZ?)L9&!-hX~vshu-FHmDptmW_575{LRa8O zhajqv0)?1t;eww4@Dadb;I~PSJ<}Xlc8{5A4fmE#2K3MXZ+95EB0x8U@>6ks(hU%F z0M<7j(lg+x1zC1<;?cKsj&&To>>AlO%RQ>c$v4|2drV}<5hKwI$#Q}>#VDybZuF%_ z0SnKY!;xbI8`2OEKdIq|7=gscbwh{|aXWDYz#oc}WAGJaIB&kL1{!oQOxj1_!z{Fl z$T~lN=Y>Ot9_DiQ!?$OE2C5pZYW(RZ{2#yR=I*4@L_71$Q^V=dJ%2k|5ld56MjEzS z&3fpbkF}Ew+LLZScVy3dzRi49df$0*QIBIy5d?6C*CCtdW!`jhszz5N}ry#oKAy;udSdC<+w;^tfBfA^se zULVa~&9Sy1h°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�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

    @wqnNs$rC?3X7+)8b-NORZo= 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

  • +
    +

    Executive Summary

    +

    + The epic implementation is now shaped around explicit two-stage admission control: + scheduler-level task admission decides when ready dataset work may run, and request-level + admission controls each concrete provider/model call. Observability has enough layer + separation to explain whether a run is limited by readiness, task scheduling, request + queueing, provider latency, AIMD ramp, or downstream fan-in dependencies. +

    +
    +
    + 17,408 + completed model requests in final 1024+ live scenarios, excluding small smoke runs +
    +
    + 0 + rate-limit events or provider failures in final Nano scale lanes +
    +
    + Held + all observed max_parallel_requests caps in completed scale scenarios +
    +
    + < 0.071s + p95 downstream idle in the dedicated GPT-5.5 -> Nano mixed pipeline runs +
    +
    +
    + Current read: the scheduler is interleaving downstream work at row granularity + rather than running all upstream work first. Buffer size is still a real operations knob: + larger buffers can deepen upstream queues and amplify waiters, especially with slow GPT-5.5 + upstream work. +
    +
    + +
    +

    Epic Implementation Shape

    +

    + The implementation follows the plan in plans/645. + The core move is from implicit scheduler behavior and transport-local throttling toward + typed resource metadata, fair ready-work selection, task leases, request leases, and + correlated event streams. +

    + +
    +
    + Column Generator + Declares static SchedulingMetadata; plugins do not see runtime queues. +
    +
    + Task Resolver + Maps metadata to TaskGroupSpec and scheduler resource requests. +
    +
    + Completion Tracker + Owns dependency readiness and ready frontier state. +
    +
    + Fair Task Queue + Orders ready work with non-mutating selection and explicit commit. +
    +
    + Task Admission + Grants scheduler task leases before workers spawn. +
    +
    + Model Executor + Wraps concrete model calls; every attempt enters request admission. +
    +
    + Request Admission + AIMD/provider-model-domain request leases, pressure snapshots, and event stream. +
    +
    + +
    +
    +

    Primary Code Areas

    +
      +
    • data_designer.config.scheduling: generator-facing scheduling metadata and validation.
    • +
    • TaskSchedulingResolver: bridge from static metadata into scheduler groups/resources.
    • +
    • FairTaskQueue: non-mutating select plus explicit commit, with queue views for policy.
    • +
    • TaskAdmissionController: scheduler task leases and resource accounting.
    • +
    • ModelRequestExecutor: durable per-attempt model-call boundary.
    • +
    • AdaptiveRequestAdmissionController: provider/model/domain AIMD and request leases.
    • +
    • observability.py and capacity.py: scheduler/request event DTOs, snapshots, and plan evidence.
    • +
    +
    +
    +

    Cleanup Direction

    +
      +
    • Legacy scheduler hint naming is removed in favor of scheduling metadata and task scheduling.
    • +
    • Transport-local throttle wrappers are replaced by request admission and model request execution.
    • +
    • Docs and diagrams were updated across architecture docs, devnotes, and Fern assets.
    • +
    • Run config keeps request admission internal for V1; benchmark evidence informs future public knobs.
    • +
    +
    +
    +
    + +
    +

    Verification and QA Gates

    +

    + The implementation has been checked with unit, package, static, and live-provider QA passes. + The live benchmark agents also exercised alternative workflows, config shapes, and endpoint/model + combinations. +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    GateStatusEvidence
    Ruff lintPassed.venv/bin/ruff check packages scripts tests_e2e
    Format checkPassed.venv/bin/ruff format --check packages scripts tests_e2e
    Whitespace diff checkPassedgit diff --check
    Config package tests570 passedIncludes scheduling metadata validation and config regression coverage.
    Engine package tests1,995 passedIncludes scheduler, fair queue, task admission, request admission, executor, and capacity tests.
    Interface package tests899 passedOne skipped test in the interface suite.
    Benchmark schema checksPassedDeterministic benchmark artifact and derived metric checks passed.
    Legacy naming gatesPassedStale throttle/semaphore/scheduling-hint term checks were clean except expected removals and migration references.
    +
    +
    + Provider compatibility findings: GPT-5.5 rejected temperature=0, so live traffic + omits temperature. GPT-5.5 also showed output-limit brittleness at max_tokens=24; short + GPT-5.5 prompts should use a safer ceiling such as 64+ tokens. +
    +
    + +
    +

    Live Benchmark Matrix

    +

    GPT-5 Nano 1024+ Scale Runs

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    LaneScenarioShapeBufferRequestsWallCapSignal
    Cap scalecap8_rows512_cols2_buffer32512 x 2 Nano columns321024/1024160.30s8/8Start CV 0.252; max waiters 30.
    Cap scalecap8_rows512_cols2_buffer512512 x 2 Nano columns5121024/1024167.08s8/8Start CV 0.246; max waiters 31.
    Cap sweepfinal1024_cap8_buffer32512 x 2 Nano columns321024/1024155.37s8/8Steady traffic; cap enforced.
    Cap sweepfinal1024_cap8_buffer128512 x 2 Nano columns1281024/1024153.96s8/8Steady traffic; cap enforced.
    Cap sweepfinal1024_cap8_buffer512512 x 2 Nano columns5121024/1024150.27s8/8Lowest start CV in that lane.
    AIMD scalefinal-512x2-buffer32512 x 2 Nano columns321024/1024104.823s16/16Limit ramped 1 -> 16 in 50.332s; p95 wait 19.371s.
    AIMD scalefinal-512x2-buffer512512 x 2 Nano columns5121024/1024114.522s16/16Limit ramped 1 -> 16 in 57.062s; p95 wait 22.949s.
    Fan scalefanout_buffer32256 x 4 Nano branches321024/1024132.24s8/8Balanced branch traffic; p95 wait 8.97s.
    Fan scalefanout_buffer256256 x 4 Nano branches2561024/1024125.94s8/8Balanced branch traffic; p95 wait 8.09s.
    Fan scalefanin_buffer256256 rows, 3 upstream + 1 synthesis2561024/1024141.64s8/8Row-level fan-in; downstream delay p95 1.281s.
    +
    + +

    Mixed GPT-5.5 Upstream -> GPT-5 Nano Downstream

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    LaneScenarioShapeBufferRequestsWallIdle p95/maxInterpretation
    Dedicated mixed pipelinemixed_rows512_buf32_heavy4_nano8512 GPT-5.5 + 512 Nano321024/1024368.46s0.00484s / 0.05287sSteady interleaving; GPT-5.5 waiters 92; Nano did not starve.
    Dedicated mixed pipelinemixed_rows512_buf256_heavy4_nano8512 GPT-5.5 + 512 Nano2561024/1024366.44s0.07076s / 0.13278sSteady interleaving; GPT-5.5 waiters 252 with larger buffer.
    Alternate bottleneck lanemixed_rows512_buf32_1024gens512 GPT-5.5 + 512 Nano321024/1024259.315s0.002748s / 0.028367sWave-like per-second starts, but very low downstream idle.
    Alternate bottleneck lanemixed_rows512_buf256_1024gens512 GPT-5.5 + 512 Nano2561024/1024264.457s0.111947s / 0.356167sWave-like traffic; larger buffer amplified GPT-5.5 wait p95 to 129.107s.
    +
    + +

    Initial GPT-5.5 Live QA

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ScenarioCapRequestsWallMax in-flightResult
    serialish_cap1_2rows_2cols149.210s1Cap held
    stress_cap2_3rows_2cols264.566s2Cap held
    fanout_cap3_2rows_3cols363.523s3Cap held
    +
    +
    + +
    +

    What The Benchmarks Say

    +
    +
    +

    Confirmed

    +
      +
    • Caps Request in-flight counts did not exceed configured caps in completed scale lanes.
    • +
    • AIMD Nano AIMD ramps were monotonic to cap with no decreases or rate limits.
    • +
    • Fan-in Downstream work starts per row, not after a global upstream wave.
    • +
    • Mixed model flow Slow GPT-5.5 upstream and fast Nano downstream overlap for most of the run.
    • +
    • Lease cleanup Successful runs ended with no active request leases or waiters in reported pressure snapshots.
    • +
    +
    +
    +

    Watch Items

    +
      +
    • Buffers Larger buffers can increase upstream waiters and wait p95 even when wall time is similar.
    • +
    • Telemetry wiring The benchmark agents injected sinks in-process; product/operator wiring should make this easier without monkeypatching.
    • +
    • Provider params Model-specific parameter compatibility needs explicit docs: GPT-5.5 rejects temperature=0.
    • +
    • Output limits GPT-5.5 short prompts can fail at max_tokens=24; use safer defaults in examples.
    • +
    +
    +
    +
    + +
    +

    Artifact Index

    +

    + The report is intentionally a summary. Use these artifacts for timelines, request events, + scheduler events, task traces, flow buckets, and per-scenario JSON summaries. +

    + +
    + +
    +

    Recommended Follow-Ups

    +
      +
    • Promote the benchmark sink injection pattern into an operator-facing debug/benchmark hook so future runs do not need monkeypatches.
    • +
    • Add a concise buffer-size guidance note: smaller buffers reduce upstream wait amplification; larger buffers can improve throughput in pure Nano fan-out but may deepen slow-model queues.
    • +
    • Add a mixed-model benchmark to the reusable harness: slow upstream -> fast downstream with idle-time and overlap metrics as first-class outputs.
    • +
    • Capture the provider compatibility notes in model docs or example configs: omit temperature for GPT-5.5 and avoid very low GPT-5.5 token ceilings.
    • +
    • Keep the 1024+ Nano scenarios as regression recipes for cap enforcement, AIMD ramp, fan-in readiness, and buffer-induced waves.
    • +
    +
    +

    @wqnNs$rC?3X7+)8b-NORZo= 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

  • @wqnNs$rC?3X7+)8b-NORZo= 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

  • @wqnNs$rC?3X7+)8b-NORZo= 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�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 literal 30470 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�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 RXDa{z002ovPDHLkV1j<|W32!H diff --git a/docs/devnotes/posts/assets/owning-the-model-stack/native-model-client-layers.png b/docs/devnotes/posts/assets/owning-the-model-stack/native-model-client-layers.png index 4600519f6c37d92569904982c21095c2ac6aa120..591f8154853444981db297035c5bcc493d1a7c8e 100644 GIT binary patch literal 54814 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%0D?-9U1Pun>#M$+%R4M)dbwzkYq7B1uFu^}X0B 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

  • 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%0A(WVwav4}z5W20OJC$2}SC!v^@s@Np>) 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 diff --git a/plans/645/AsyncSchedulingRequestAdmissionClassModel.png b/plans/645/AsyncSchedulingRequestAdmissionClassModel.png index d7b76cf3f44bb27a923d4c296dd6e0b8e253f577..2f2f002c4fc9436852c026fe8d0fb3474879c491 100644 GIT binary patch literal 120203 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 literal 70505 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