Ai2用预算制调度器替换优先级调度,H100集群中位排队时间降至 24 秒
Ai2在Hugging Face博客发文,称其AI基础设施团队用GPU时间预算、层级公平分配和时间切片合约替代优先级调度器,30 天测试期内团队获得其应得GPU小时的 98%,需人工介入的维修减少 74%。
Ai2的AI基础设施团队在Hugging Face博客发文,介绍其更换GPU集群调度器的工作:用GPU时间预算、层级公平分配和时间切片合约,替换原有的优先级调度器。
文章称,新系统在 30 天测试期内让团队获得其应得GPU小时的 98%,集群占用率维持在 98%,需人工介入的维修减少 74%。这些结果来自Ai2自述。
原优先级调度器为何被替换
Ai2管理着数千块NVIDIA H100、B200和B300 GPU,组成 88 到 1024 块GPU的集群,服务约 150 名内部研究者,覆盖LLM和VLM训练、机器人强化学习仿真以及科学智能体后训练等方向。
文章称,基于提交的工作负载,任意时刻未满足的GPU请求量是可用容量的 2 到 3 倍,即每块可用GPU小时有 2 到 3 个工作负载竞争。
旧优先级调度器允许工作负载选择不可被抢占。文章列举了由此产生的三类现象:用户停放可随时连接的无操作工作负载“占坑”;最终 100% 被调度工作负载都使用HIGH优先级,低优先级完全得不到GPU时间;值班工程师大部分工单响应时间用于协商关闭运行在已知维护问题主机上的不可抢占工作负载。
新系统如何分配GPU时间
新系统不再直接分配GPU,而是分配GPU时间份额。管理层像投资者一样,在工作负载出现之前按预期影响力为各研究项目分配GPU时间预算,再由调度器据此对到达的工作负载排序。
预算按层级分配:项目内由首席研究员决定,研究计划内由首席调查员决定,跨计划由首席项目经理或CEO决定。任何请求GPU时间的工作负载都必须由预算出资,否则不受抢占保护。若用户让工作负载“占坑”,消耗的是自己团队的预算。
调度器使用层级公平分配算法,按 7 天滑动窗口跟踪各分配的占用情况,把占用不足的分配中的工作负载排在占用过度的分配之前。文章称该算法本身不新,可追溯到 2009 年的Hadoop Fair Scheduler,SLURM的Fair Tree和YARN的Fair Scheduler也在使用;新的是输入——树结构对应研究项目结构,权重由管理者设定而非静态配额。
调度器区分两类占用:已分配占用计入预算,在最短运行时间内受抢占保护;未分配占用不计入预算,从一开始就可被抢占。未分配占用用于在预算与实际需求不匹配时保持GPU满负荷。
时间切片合约与模拟测试
分布式训练工作负载可能运行数小时、数天甚至数周。为了让调度器能重新平衡,新系统引入调度合约:工作负载必须声明最短运行时间,即取得有意义进展所需的最短占用时间。在这段时间内工作负载受抢占保护,之后调度器可自动重新排队可恢复的工作负载。用户也可以把最短运行时间设为零,表示该GPU时间不计入预算,但随时可被抢占。
文章称,这套合约让不健康主机能在工作负载达到最短运行时间后自动排空其工作负载,从而完全自动化维修活动,将需要人工介入的维修减少了 74%。
在正式推出前,团队构建了一个小型模拟环境,输入工作负载及其提交时间表,输出排队等待时间、抢占事件和各项目GPU时间分布。模拟结果支持了调试工作负载(需要少量GPU、最短运行时间 15 分钟以内)会更快排队的假设,预测其p90等待时间从约 6 小时降至 5 分钟。
上线结果与限制
团队从 7 月底开始逐集群推出。文章称,30 天测试期内团队获得其应得GPU小时的 98%,15 个团队分配中有 13 个获得 95% 或以上,最差为 90%;集群占用率在变更前后均稳定在 98%,同期需求仍是容量的 2 到 3 倍;18% 的已交付GPU时间是未分配占用。
调试工作负载的p90排队等待时间实际从 2 小时降至 30 秒,优于模拟预测的 6 小时到 5 分钟。最大H100集群的中位排队等待时间从 5 分钟降至 24 秒,p90等待时间下降约三分之一,从 2.8 小时降至 1.8 小时。文章提到基线中调试工作负载样本较小, تلك 测量方差较高。
文章也列出挑战:学习曲线比预期陡峭,早期不同集群行为不一致,界面保留了含义已变的旧术语(如工作负载优先级),仅靠文档未能消除困惑;后来通过现场讲解会和上线后新增的可视化才改善。以上均为Ai2自述,没有第三方验证。