# GPUクラスタスケジューリング
## 定義
GPUクラスタスケジューリングは、GPU を使う機械学習訓練ジョブに対し、要求 GPU 数、ジョブ長、ユーザー間の公平性、局所性、同居干渉、失敗時の再実行を考慮して、クラスタ上の GPU・CPU・メモリ・ネットワークを割り当てる取り組みである。[[Philly]] の本番トレース分析では、GPU は細粒度共有しにくい一枚岩の資源であり、分散訓練ジョブはギャングスケジューリングを要し、同一サーバ/同一 RDMA ドメインへの局所性が利用率と実行時間に影響する。(Source: [[@2019__USENIX ATC__Analysis of Large-Scale Multi-Tenant GPU Clusters for DNN Training Workloads]])
## 横断的知見
- **「待ち時間を短くする配置」と「長時間ジョブの実行効率を上げる配置」は衝突する**: [[Philly]] は局所性制約を待った後に緩和することでキューイングを抑えるが、Jeon 2019 は分散配置と同居干渉により 16 GPU ジョブの利用率が 2 サーバ 43.66% から 8 サーバ 28.56% へ落ちると示す。一方、後続の [[LLM分散学習]] 系ソース(MegaScale/SAKURAONE)は、巨大ジョブほど通信局所性と並列化配置が MFU を左右することを示す。したがって GPU スケジューリングは、短い待ち時間を最適化するだけでなく、ジョブ長と並列化構成を見て局所性を待つ価値を見積もる必要がある。(Source: [[@2019__USENIX ATC__Analysis of Large-Scale Multi-Tenant GPU Clusters for DNN Training Workloads]], [[@2024__NSDI__MegaScale - Scaling Large Language Model Training to More Than 10,000 GPUs]], [[@2026__MLSys2026__SAKURAONE - An Open Ethernet-Based AI HPC System]])
- **GPU allocation 率はクラスタ効率の代理指標として不足する**: Jeon 2019 は「割り当て済み GPU」の処理サイクル利用率が全ジョブ平均 52.32% に留まると示し、クラスタが埋まっていることと GPU が有効に使われていることを分離する。これは現代 LLM 訓練で MFU が主要指標になる流れと同じ問題意識であり、割り当て率ではなく実効計算利用率を測る必要がある。(Source: [[@2019__USENIX ATC__Analysis of Large-Scale Multi-Tenant GPU Clusters for DNN Training Workloads]], [[LLM分散学習]])
## 未解決の問い
- Jeon 2019 の 2017 年 DNN 訓練トレースで見えた断片化待ち・同居干渉・失敗ジョブの GPU 時間浪費は、現代の Transformer/LLM 訓練クラスタでもどこまで再現するか。
- マルチテナント公平性と、長時間・大規模ジョブの局所性確保を同時に満たすスケジューラは、ジョブ長や収束進捗をどこまで予測すべきか。
- 事前の単一 GPU/小規模プール実行で捕まえられるユーザーエラーを、どの段階で本番スケジューラから分離すべきか。
## 関連
- ソース: [[@2019__USENIX ATC__Analysis of Large-Scale Multi-Tenant GPU Clusters for DNN Training Workloads]]
- エンティティ: [[Philly]] / [[philly-traces]] / [[Microsoft]]
- 概念: [[GPUクラスタ運用]] / [[LLM分散学習]] / [[並列化戦略]] / [[ストラグラー]]
- 関連 MOC: [[分散深層学習 - MOC]] / [[HPC - MOC]]
## 出典
- [[@2019__USENIX ATC__Analysis of Large-Scale Multi-Tenant GPU Clusters for DNN Training Workloads]](§2 Philly, §3 Impact of Locality Awareness, §4 Training Progress and Completion, §5 Design Implications)