Mode A per-paper synthesis。Target: SchedTwin (2512.18894),对照 8 篇 framework 类邻居。任务给出的 related id2310.0724/2401.0967在 KB 中实际落盘为2310.07240(CacheGen)与2401.09670(DistServe),frontmatter 两种 key 都记, 缺失的字面 id 写 MISSING 以便 cascade 跳过;正文引用真实 id。
SchedTwin 与 8 篇邻居没有一篇共享工作负载:它调度的是 HPC 批作业、整节点独占、
无抢占 [2512.18894],邻居全是 LLM serving 或 RLHF 训练框架。
把它们放在一起唯一有意义的对照轴不是"性能",而是**调度器从哪里获得对未来的知识,
以及这份知识值多少开销**。按这条轴分三组:
A. 同样用"模拟器"决策的近亲(最相关,delta 最锐利)
"simulator-driven search"机制的邻居。它用一个经实测校准到 <2% SLO-attainment 误差
的模拟器枚举 placement 配置 [2401.09670],选出 goodput 最优的
并行+放置方案。差别在决策时刻:DistServe 的搜索在部署前跑数分钟一次,
SchedTwin 把同一套"模拟-打分-选择"搬到每个调度事件上、要求秒级完成
[2512.18894]。这是本篇最该被对照的一篇。
($T_S$ vs $T_R$ 匹配)反推最少 R-Worker 数,与 SchedTwin 用模拟代替解析模型
形成方法论对立面;FastDecode 的 L2 也指出其 workshop 版模型未给完整推导
[2403.11421],两篇在"模型不完整"这一弱点上同病。
B. 同为"策略选择/排队顺序"问题、但知识来源不同(直接可比)
semi information-agnostic——input length 已知(prefill 时间可离线 profiling)、
output length 未知,于是用 skip-join MLFQ 逼近 SRPT。它的未来知识来自轻量剖析,
单次决策 $O(1)$;SchedTwin 的未来知识来自全排空 rollout,单次决策随队列长度增长
[2512.18894]。两篇面对的是同一个 HoL blocking 现象:FastServe 实测
ShareGPT load=0.9 时 98% 延迟来自排队,SchedTwin 的合成 trace 阶段 2 大长作业阻塞
阶段 3/4 小作业 [2512.18894] 是同一结构的 HPC 版本。
longest-shared-prefix-first 等价于离线最优 DFS(Theorem 3.1),并诚实标注贪心可能
starvation [2312.07104]。它是 SchedTwin 缺失的那份论证的模板。
它是"策略极简但机制强"的对照:不选策略,靠可撤回的抢占把调度错误的代价压到近零。
C. 提供"未来信息的第三种来源"与"静态配置的教训"(间接相关)
的 oracle 驱动 prefetch/eviction,把 >99.6% 命中搬进 DRAM,而 LRU/FIFO 只有 ~0.5%
[2403.19708]。这是"零模拟开销地获得未来信息"的存在性证明。
等级),并自陈未证明贪心相对全局最优的差距上界 [2310.07240]——
与 SchedTwin 的逐周期贪心 argmax 是同一类未加证明的自适应结构。
确定、运行时不动态调整,其 L2 明确批评"调度仍然较为静态……如果不同 stage 的
workload 随训练进度变化,无法自适应调节"
[2312.11819]。SchedTwin 正是这个批评所指向的
能力,只是作用对象从 placement 换成 policy。
真正新的(无邻居覆盖):把一个高保真 DES 接进生产调度器的活控制回路,并且
不改调度器内核——事件经 Redis stream 下行、决策经 qrun 上行,约 1,000 行代码扩展
CQSim [2512.18894]。8 篇邻居里没有一篇的调度决策依赖
"在线跑一次完整模拟"。DistServe 用模拟器,但它是离线搜索、结果是一个静态放置方案
[2401.09670];SchedTwin 让模拟结果的生命周期缩短到一个事件间隔。
其次是双向状态对账层:虚拟未来只允许存在预测 end 事件、用户 walltime 高估要拉回、
run 事件立即退出,这三条构成"虚拟时间轴只被物理事件单向校正"的不变量
[2512.18894]。邻居中最接近的机制是 CachedAttention 的
scheduler-aware placement,但那只是读队列,不需要维护一个与物理系统对账的镜像状态
增量的(换域重做):
online-simulation-driven portfolio scheduling 列为最近的前作
[2512.18894]。相对邻居,它的新意在"每事件重选"而非"选一次"。
但 FastServe 用抢占+降级在请求内做,SchedTwin 只能在未启动作业上做
past_key_values 挂钩、约 500 行完成集成的路线同构 [2310.07240]——都是用既有
外部接口驱动一个不知道自己被驱动的引擎。
矛盾的:SchedTwin §1 的核心批判是静态启发式"one-step decision-making process
provide no guarantees of near-optimal performance",但它自身的选择规则是逐周期对终态
Score 取 argmax、只 commit 队头,其 L2 的最小检查第 4 项判定"单调性/最优性 — 不通过
(未讨论)",并直指 SchedTwin 是"one-step over policies"
[2512.18894]。同一份批判标准若施于自身则不成立。对照 SGLang:它也
用贪心,但证明了贪心 = 离线最优 DFS(在 cache ≥ 最长请求长度的边界条件下),并明确
标注 starvation 未解 [2312.07104]。**矛盾根源不是结论对错,而是论证
义务的不对称**:SchedTwin 用"无近优保证"否定基线,却没有为自己建立任何保证。
第二处矛盾(数字口径):SchedTwin 宣称"low overhead (a few seconds per scheduling
cycle)",但全文无任何计时测量,只有设计层面的 $\max_i$ 界
[2512.18894]。邻居的开销口径全部是实测:SGLang 报 RadixAttention
零复用时开销 <0.3% [2312.07104],vLLM 报 PagedAttention kernel 慢
20–26% [2309.06180],DistServe 报 KV 传输 <0.1% 总延迟且 >95% 请求
<30 ms [2401.09670],CacheGen 报离线编码 ~200 ms
[2310.07240]。矛盾根源:SchedTwin 把"开销"当作可由架构推导的属性
(并行 ⇒ $\max$ 而非 $\sum$),邻居把它当作必须测量的属性。在 rollout 跑到队列排空这一
终止条件下,$\max_i$ 随队列长度而非策略数增长,架构推导恰好落空。
攻击 1:没有抢占的自适应是被阉割的自适应。 SchedTwin 一旦 qrun 出去就不可撤回,
重规划只作用于等待队列 [2512.18894]。而邻居中所有真正拿到大幅收益
的调度工作都依赖可撤回性:FastServe 的 skip-join MLFQ 必须能抢占,代价是 KV cache 内存
暴增至 7×,于是配 proactive swapping 才能落地,消融显示 proactive 比 defer 快 2.3–3.5×
[2305.05920];vLLM 的 FCFS 之所以够用,正因为它有 swap /
recompute 两条抢占恢复路径 [2309.06180]。HPC 整节点独占 bare-metal
确实使抢占昂贵,但这意味着**SchedTwin 的策略切换只能影响"下一批启动谁",无法纠正已经
做错的决策**——阶段 2 的 16–20 节点长作业一旦启动就锁死 500–700 秒
[2512.18894],这段时间里"自适应"没有任何着力点。
攻击 2:11.4% 的分母是自己造的。 论文自陈 trace "intentionally designed" 成让 SJF
有效的形状,且雷达面积归一化区间未定义——FCFS 面积恰为 0.00 就是这个不透明归一化的
直接后果 [2512.18894]。$1.86/1.67 = 1.1138$ 只是两个不可复算量的比值。
对照邻居的基线纪律:DistServe 专门做了 "vLLM++"(在共置前提下搜最优并行)消融,证明
增益来自解耦而非调参 [2401.09670];SGLang 报出自己"几乎无加速"的区间
(长输出多轮对话,decode 主导且前缀不重叠)[2312.07104];
CachedAttention 主动暴露最弱配置(LLaMA-65B 仅省 43% 成本 vs 别处 66–70%)
[2403.19708]。SchedTwin 只有一条 trace、且这条 trace 的形状是结论的
前提。可反驳性检验:把阶段 2 删掉(均质小作业),按其 L2 的推断,策略池"complementary
strengths"前提失效、argmax 退化为 tie-break 优先序 [2512.18894],
此时 SchedTwin 就是"WFP + 无用模拟开销"。
攻击 3:Score 与 argmax 方向不兼容,且目标函数不含它宣布获胜的那条轴。 Score 是
wait time(秒)与 slowdown(无量纲)的等权加权和,越小越好,而 §3.4 取 argmax 越大越好;
量纲检查与方向性检查双双不通过 [2512.18894]。更关键的是目标函数里
没有 utilization 项,而 SchedTwin 在 Fig 3 的 "System Util." 轴上被宣布领先。对照
DistServe:它把目标明确定义为 per-GPU goodput(≥90% attainment 下的 requests/s),
并解释为何不是 raw tok/s [2401.09670]。目标函数与评价指标的对齐是
可以做到的,SchedTwin 没做。
攻击 4:"开源"贡献不可核对。 论文把 "implementing SchedTwin as open-source software"
列为三大贡献之二,但全文无仓库 URL,唯一可定位的代码是底层 CQSim
[2512.18894]。这不是小节问题:其 L2 指出 tie-break 优先序
WFP→FCFS→SJF 是一条不在机制描述里、却直接决定 Table 1 数字构成的硬编码偏好,
换成随机或"保持上周期策略"会得到完全不同的分布表 [2512.18894]。
没有代码,35.19% / 15.66% / 49.15% 不可复现。邻居中 vLLM
[2309.06180]、SGLang(L2 甚至给到 radix_cache.py:355
等 file:line)[2312.07104]、DistServe
[2401.09670]、CacheGen [2310.07240]
均公开;FastDecode [2403.11421] 与 FlexRLHF
[2312.11819] 未公开,而 FlexRLHF 的 L2 把"未开源"直接列为最大限制
[2312.11819]。SchedTwin 属于"声称开源但等同未公开",比坦白
未公开更糟。
攻击 5:run 事件立即退出隐含一个未声明的部署假设。 run 事件只插入预测 end 事件后
立即退出、不触发重规划,这假设物理调度器不会自行启动作业、所有启动都源自孪生的 qrun
[2512.18894]。若 PBS 自身调度循环仍活跃,孪生会漏掉由它
触发的资源状态变化。这是部署前提被写成优化的典型:在 33 个容器的伪集群上不会暴露,
在真实站点上会。
这不是范式转移,是一次跨域移植的可行性验证。 三条判据:
(a) 机制新颖度——"用模拟器指导调度"在邻居里已有成熟先例,DistServe 的模拟器精度做到
<2% 并且被独立验证 [2401.09670]。SchedTwin 的新颖处只在把它从
部署期挪到运行期。
(b) 采纳证据——几乎为零。评测是单节点 48 核主机上 33 个 Docker 容器构成的 32 节点
伪集群 + 150 作业合成 trace [2512.18894];motivate 用的 Polaris
真实 trace 在评测中完全没用上 [2512.18894]。对照生态位真正确立的邻居:
vLLM 已成事实标准推理引擎、被 HuggingFace / Ray Serve 集成
[2309.06180];SGLang 在 Chatbot Arena 跑了一个月,实测缓存命中
52.4% / 74.1%、首 token 延迟降 1.7× [2312.07104];CachedAttention 在
9K ShareGPT 会话(约 52K 轮)上评测 [2403.19708]。SchedTwin 是 5 页
的 preliminary-results 短文,作者也用 "Preliminary results" 自我定位。
(c) 生态位的实际形状——它占的是一个结构性空位而非性能高地:邻居里 FlexRLHF 的
placement 在训练前定死、运行时不调 [2312.11819],
DistServe 的 placement 在部署前搜好 [2401.09670],FastDecode 的
R-Worker 数由模型一次性推出 [2403.11421]。三者都把"配置决策"
放在运行前。SchedTwin 是这批 framework 里唯一把配置决策放进每个事件的。这个空位值得
占,但本篇只证明了"接线可行、开销不爆",没有证明"在真实站点上值得"。
(d) 它继承的一个真实优势——三个基线都是同一个 CQSim 策略池的成员,不存在版本/调参差异
带来的基线不公 [2512.18894]。这比 FlexRLHF 被批评"trlX 把 Reward 放
单卡是明显设计缺陷,FlexRLHF 赢得太容易" [2312.11819]、
或 SGLang 被指 Guidance/LMQL 缺 batching/TP 属弱基线 [2312.07104]
都干净。代价是上界被锁死:SchedTwin 永远不可能优于池内策略的逐周期最优组合。
D1. 用剖析替代 rollout,或用 rollout 校准剖析(FastServe × SchedTwin)。 SchedTwin 的
开销风险全部来自"每个事件跑 k 次到队列排空"[2512.18894]。FastServe 的
洞察是:LLM 每次迭代的执行时间由 (hardware, model, input_length) 决定、可离线 profiling
一次,从而把调度决策压到 $O(1)$ [2305.05920]。HPC 侧的等价物
是"用历史 trace 离线学一个 (queue state) → (best policy) 的分类器,在线只在分类器低置信度
时才触发真 rollout"。这直接把 SchedTwin 未测过的那条开销曲线(随队列长度增长)截断。
D2. 把队列先知从"模拟"降级为"读"(CachedAttention × SchedTwin)。 CachedAttention
证明了未来信息不一定要模拟出来——等待队列本身就是 Belady oracle,两个 look-ahead 窗口
($L_{pw}=C_{mem}/S_{kv}$ 短窗驱动 prefetch,$L_{ew}$ 长窗否决 eviction)足以把命中搬进
DRAM [2403.19708]。SchedTwin 的 Score 只用终态统计,完全没有利用
"队列前 $L$ 个作业的规模/walltime 分布"这一零成本特征。一个 look-ahead 窗口内的作业形状
直方图很可能就足以判别"该用 SJF 还是 WFP",无需任何 rollout。
D3. 给策略选择补一个最优性/近优性定理(SGLang × SchedTwin)。 SGLang 的做法是:定义
目标(cache hit rate)→ 给下界($C \ge \sum_{e}|e|$)→ 证明贪心在边界条件下取等(cache ≥
最长请求长度)→ 诚实标注在线退化与 starvation [2312.07104]。SchedTwin
的对应命题是可陈述的:"若策略池成员在每个队列状态上的 Score 排序稳定,则逐周期 argmax
等价于某个全局策略"——这恰好是 §3 preamble 那句无检验的前提"provided that they exhibit
complementary strengths"的形式化版本 [2512.18894]。**互补性的可检验定义
是这个方向的第一步**,也是判断"何时该部署 SchedTwin"的唯一非经验判据。
D4. 解析模型与模拟的混合定阶(FastDecode × DistServe × SchedTwin)。 FastDecode 用
解析式 $T_R \le T_S$ 定 R-Worker 数 [2403.11421],DistServe 用模拟器枚举
placement 并靠 M/D/1 排队式($D + RD^2/(2(1-RD))$)解释 intra-op 与 inter-op 的交叉点
[2401.09670]。SchedTwin 完全没有排队模型,其 L2 指出一个粗排队模型即可
回答三个悬空问题:负载相变频率多高时换策略的收益才超过 rollout 开销、receding-horizon
(无界 rollout / 一步 commit)损失了多少信息、Score 权重的敏感度
[2512.18894]。DistServe 的模式(解析模型定性 + 模拟器定量 + 实测校准
<2%)是现成模板 [2401.09670]。
D5. 反向移植:把"模拟在环"搬进 LLM serving 集群。 这是 cluster 最有潜力的一格。
LLM serving 的调度决策目前分散在三处未联合优化的静态选择上:DistServe 的 prefill/decode
实例配比与并行方案(部署期定)[2401.09670]、CacheGen 的逐块质量等级
(逐块贪心,无全局最优保证)[2310.07240]、FastDecode 的 R-Worker 数
(模型一次性推出,且短序列 8 sockets 反而不如 4 sockets)
[2403.11421]。而 LLM serving 恰好具备 HPC 不具备的两个 rollout
友好条件:迭代时间可精确剖析 [2305.05920],且请求可抢占
(swap / recompute)[2309.06180]——后者意味着 rollout 选错的代价
可以被撤回,正是攻击 1 指出 SchedTwin 缺失的那半。**在可抢占的 serving 集群上做在环
预测模拟,比在不可抢占的 HPC 批调度上做,收益结构更好。**
D6. 混合式 commit 视野。 当前是无界 rollout + 一步 commit
[2512.18894]。两端都没被扫过:有界 rollout(跑到固定虚拟
时间窗)能把开销与队列长度解耦;多步 commit 能减少策略抖动(tie-break 若改为"保持上周期
策略"即是一种抖动抑制)。这两个旋钮与 CacheGen 的 chunk 长度"经验取 1.5K token、未解析
求最优"是同一类留白 [2310.07240]。