Ai2 的 AI 基礎設施團隊負責管理包含數千張 NVIDIA H100、B200 和 B300 GPU 的叢集,服務約 150 名內部研究人員。由於 GPU 需求遠超供給(任何時刻的待處理請求量為可用資源的 2-3 倍),團隊原先使用基於優先權的排程系統,但這導致了「公地悲劇」現象,包括 GPU 佔用(squatting,即閒置佔用)、優先權通膨(所有工作負載均標記為 HIGH 優先權)以及維護期間需人工協商關閉非可搶佔工作負載的問題。
為解決這些問題,Ai2 將排程系統從優先權制改為結合 GPU 時間預算、階層式公平分配(hierarchical fair-share allocation)和時間切片合約的新系統。新系統的核心邏輯如下: 1. **預算制取代優先權**:管理層根據研究項目的預期影響分配 GPU 時間預算,而非由用戶自行設定優先權。所有請求必須由預算資助,否則不受搶佔保護。這將資源分配從營運協商轉為透明的行政預算流程。 2. **階層式公平分配**:排程器追蹤 7 天滑動視窗內的佔用情況,優先調度未充分利用預算的工作負載。系統區分「已分配佔用」(計入預算、受保護)和「未分配佔用」(不計入預算、可被隨時搶佔),以確保 GPU 滿載並防止團隊拒絕免費資源。 3. **排程合約**:工作負載必須聲明最小運行時間(minimum runtime)。在此期間,工作負載受搶佔保護;超過此時間後,排程器可自動重新平衡並重新排隊可恢復的工作負載。這使得不健康主機能在工作負載達到最小運行時間後自動排空,無需人工介入。
據報導,新系統使需要人工介入的維修次數減少了 74%,大幅降低了值班工程師的負擔。研究人員反饋稱,新系統允許他們在閒置時借用其他團隊的資源並在需要時快速取回,感覺如同增加了 30% 的計算能力。
事件背景
資源分配是一個結合算法開發、經濟學和系統管理的複雜領域。經典的解決方案是將共享資源私有化,但對於 GPU 叢集而言,靜態分配會導致因研究季節性差異而產生的資源閒置。階層式公平分配的概念並非全新,其歷史可追溯至 2009 年的 Hadoop Fair Scheduler,目前也在 SLURM 的 Fair Tree 和 YARN 的 Fair Scheduler 中活躍使用。Ai2 的新方法在於將輸入從靜態配額改為由管理層設定的動態預算,並結合時間切片合約以解決長期運行工作負載帶來的排程僵化問題。



