Ai2 Impactful Scheduling: GPU Time Budgets and Hierarchical Fair-Share

TL;DR

Ai2は、優先度ベースのGPUスケジューラを、予算主導型の階層的フェアシェアシステムに置き換えました。これにより、インパクトに基づいたGPU時間の保証、デバッグジョブのレイテンシを数時間から数秒へ短縮、クラスタ稼働率98%の維持、そしてオンコール業務の負担を74%削減することに成功しました。


大規模なスケジューリングの課題

  • Ai2は、NVIDIA H100、B200、B300カードを搭載した88〜1024 GPUのクラスタを運用しており、LLM、VLM、RL、科学的ワークロードにわたる約150人の研究者をサポートしています。
  • 需要は常に供給の2〜3倍であり、各GPU時間に対して2〜3のジョブが競合している状態です。
  • 従来の優先度ベースのスケジューラでは以下の問題が発生していました:
    • GPUの占有(Squatting) – ユーザーが容量を確保するために、何もしないジョブを放置する。
    • 優先度のインフレ – すべてのジョブが最終的にHIGH優先度で実行され、優先度の低い作業が停滞する。
    • 高いオンコール負担 – エンジニアが、不健全なホスト上でプリエンプション(強制終了)できないジョブの停止交渉に多くの時間を費やす。

優先度から予算へ:核心となるアイデア

  • Ai2は、静的なGPUの独占を割り当てる代わりに、プロジェクトや研究者にGPU時間予算を割り当てます。
  • 3つの階層レベル(リード研究者 → 主任研究者 → プログラムマネージャー/CEO)の管理者が、総容量に対する比例配分(例:プロジェクトA1は35%の権利を持つ)を設定します。
  • すべてのワークロードは予算によって裏付けられる必要があり、予算のないジョブは「未割り当て」として扱われ、完全にプリエンプションの対象となります。
  • これにより、スケジューリングに関する議論が、場当たり的な交渉ではなく、透明性の高い予算レビュープロセスへと変わりました。

階層的フェアシェアスケジューラ

  • このスケジューラは、古典的な階層的フェアシェアアルゴリズム(Hadoop Fair Scheduler、SLURM Fair Tree、YARN Fair Schedulerに由来)を実装していますが、予算ツリーから導出される動的な重み付けを採用しています。
  • 過去7日間のスライディングウィンドウでGPU稼働率を追跡し、利用率が低い割り当てを高い割り当てよりも優先します。
  • 稼働率には2つのカテゴリがあります:
    1. 割り当て済み稼働率 – 予算から消費され、最小実行時間の間はプリエンプションから保護されます。
    2. 未割り当て稼働率 – 予算から消費されず、常にプリエンプション可能であり、予算がアイドル状態のときにGPUを稼働させ続けるために使用されます。
  • システムは、保護された最小実行時間が経過すると自動的に再開可能なジョブを再キューイングし、チーム間でのタイムスライシングを可能にします。

“新しいスケジューラのおかげで、30%の計算リソースが増えたように感じます…割り当て制限を超えてバーストしても、ジョブは迅速にスケジュールされ、プリエンプションも発生しません。” — Chris Clark

スケジューリング契約:最小実行時間の保証

  • ワークロードは、最小実行時間(意味のある進捗を得るために必要な最短期間)と、それが再開可能かどうかを宣言します。
  • この期間中、ジョブはプリエンプションから保護されますが、期間が経過するとスケジューラはジョブをプリエンプションして再キューイングする可能性があります。
  • 最小実行時間をゼロに設定すると、そのジョブは未割り当てとみなされ、完全にプリエンプション可能でコストフリーになります。
  • この契約は2つの課題を解決します:
    • 長時間実行ジョブによるGPUの独占を防ぐ(占有の削減)。
    • 不健全なホストの自動的なドレイン(排出)を可能にし、人間が介入する修理を**74%**削減する。

ポリシー検証のためのシミュレーションフレームワーク

  • Ai2は、過去のワークロード提出履歴を取り込み、スケジューラのロジックを実行してキュー待ち時間、プリエンプション、GPU時間の配分を予測する軽量なシミュレータを構築しました。
  • シミュレーションは、最大最小実行時間を8時間とするといった主要なパラメータの決定を導き、デバッグワークロードのレイテンシが劇的に低下することを検証しました。
  • 手作業で作成したデバッグジョブのシナリオでは、予測値で約6時間から5分への短縮が示され、実際のロールアウトでは約2時間から30秒への短縮が達成されました。

ロールアウト後の運用結果

  • 割り当ての充足率: チームは30日間で割り当てられたGPU時間の98%を受け取りました。15チーム中13チームが95%以上の充足率を達成し、最悪の場合でも90%でした。
  • クラスタ稼働率: 2〜3倍のオーバーサブスクリプションにもかかわらず、98%で安定しました。
  • 未割り当て利用: 提供されたGPU時間の18%が未割り当て分であり、これが稼働率を高く保つためのバッファとなりました。
  • キューレイテンシの改善: 最大のH100クラスタにおける中央値の待ち時間は5分から24秒に短縮され、p90の待ち時間は2.8時間から1.8時間に短縮されました。
  • デバッグジョブ: p90の待ち時間は2時間から30秒に短縮され、シミュレーションの期待値を大きく上回りました。
  • オンコール業務: ホストの自動ドレインにより、人間が介入する修理が74%削減されました。

残された課題と今後のステップ

  • 学習曲線: 用語の混在やクラスタ間での動作の違いにより初期の混乱が生じましたが、ライブ説明会や視覚化の更新によって緩和されました。
  • インタラクティブセッション: タイムスライシングにより保護された実行時間が8時間に制限され、長時間の開発セッションでプリエンプションが発生しました。Ai2は以下の計画を立てています:
    1. データ準備やインタラクティブ作業用にCPU専用クラスタをデプロイする。
    2. チェックポイントを作成し、CPUクラスタ上で再開可能な復元可能なセッションを構築する。
  • 容量の断片化: 最小実行時間を保護することで、スケジューラが多数の小さなジョブを同時にプリエンプションする能力が制限され、非常に大きなワークロードの待ち時間が増加する可能性があります。現在、この影響を定量化し対処するためのシミュレーション作業が進行中です。

今後の展望:インパクトから利用効率へ

  • ピラミッドの次の層は利用効率です。ブートストラップ、チェックポイント作成、トレーニングコードを可能な限り効率的に実行し、割り当てられたGPU時間の価値を最大化することを目指します。
  • Ai2は、これらの利用効率の課題に取り組むために、エンジニアリングチームへの参加を呼びかけています。

本記事は、2026年10月9日にAllen Institute for AIが公開した公式Hugging Faceブログ「Impactful scheduling for GPU clusters」の忠実な要約です。

Sources