# ML Productivity Goodput
## 定義
ML Productivity Goodput(MPG)は、ML フリート全体の効率を「有用な計算をどれだけ達成したか」の観点で測る合成指標である。[[@2026__MLSys2026__Machine Learning Fleet Efficiency - Improving TPU Systems at Scale with ML Productivity Goodput]] が提案し、Google の本番 TPU フリートで実証した。
```
MPG = Scheduling Goodput × Runtime Goodput × Program Goodput
= SG × RG × PG
SG = all-allocated / capacity
「リソースが正しくスケジューリングされている割合」
RG = productive / all-allocated
「スケジューリングされたとき、実際に処理が進んでいる割合」
PG = predicted / productive
「処理が進んでいるとき、理論的な最適時間にどれだけ近いか」
```
分母・分子の具体的な対応はジョブのライフサイクルに沿って定まる:
- SG: Borg(スケジューラー層)で「同時実行中(simultaneously running)」か「部分的に割り当て済みまたはダウンタイム」かを区別。
- RG: ホスト層で init・訓練・プリエンプション廃棄・チェックポイント復元を区別し、実際に訓練ステップが進んでいる時間の比率を取る。
- PG: デバイス/コンパイラー層で「実際のステップ時間」と「操作の融合・オーバーラップを考慮した予測ステップ時間」を比較する。roofline 効率ではなく predicted time を分母に使う点が特徴(理由は下記)。
### 従来指標との違い
| 従来指標 | 限界 | MPG 対応成分 |
|---------|------|------------|
| Capacity(展開済みリソース) | スケジューリング制約を無視 | SG |
| Occupancy(割り当て済みリソース) | 割り当て ≠ 利用 | RG |
| Duty Cycle(アクティブリソース) | アクティビティ ≠ 生産的仕事 | PG |
### Program Goodput と roofline 効率の違い
roofline 効率はオペレーターを独立に評価するため、融合や通信計算オーバーラップによって削れる時間が見えない。例として Reshape(メモリ帯域律速)と Convolution(演算律速)を独立に評価すると両者とも roofline スコアは高いが、融合後の予測時間は MemoryTime(Reshape) + ComputeTime(Conv) を下回る。PG は predicted step time を分母とすることで、この余地をコンパイラー最適化の成果として定量的に追跡できる。
## 横断的知見
- (現在 1 ソース目。横断的知見は 2 ソース以上で積み上がる。以下は 1 ソースから見えた観察を暫定的に記録)
- **「件数より GPU 時間で測れ」原則の TPU フリートへの拡張**: [[@2025__SOSP__Robust LLM Training Infrastructure at ByteDance]] や [[@2019__USENIX ATC__Analysis of Large-Scale Multi-Tenant GPU Clusters for DNN Training Workloads]] が示した「障害コストは件数でなく GPU 時間で測る」原則を、MPG は「効率も件数・割り当て率でなく生産的ステップ時間の比率で測る」方向にさらに精密化した形である。3 成分への分解は、クラスタ全体の利用率指標では見えなかった「どの層がボトルネックか」の判断を可能にする。(Source: [[@2026__MLSys2026__Machine Learning Fleet Efficiency - Improving TPU Systems at Scale with ML Productivity Goodput]], [[GPUクラスタ運用]])
- **スケジューリング Goodput > 95% は大規模フリートの達成可能な上限に近い可能性**: Google TPU フリートで全ジョブサイズにわたり SG > 95% を達成(プリエンプション調整)という結果は、スケジューリング層の余地が限られることを示唆する。改善余地の主戦場がランタイム層・プログラム層に移っている可能性がある。ただし単一組織の単一スケジューラー(Borg)での結果であり、Slurm・Kubernetes ベースのフリートへの汎化は未検証。(Source: [[@2026__MLSys2026__Machine Learning Fleet Efficiency - Improving TPU Systems at Scale with ML Productivity Goodput]])
## 未解決の問い
- MPG の 3 成分のうち、実際のフリートで最も大きな改善余地はどこにあるか(スケジューリング > 95% なら残りはランタイムとプログラム?)。
- PG の「predicted step time」はどのように推定するか——コンパイラーが静的に計算するのか、実行時にプロファイルするのか。
- MPG の定義は Borg(Google)固有か、Slurm・Kubernetes ベースのスケジューラーにも一般化できるか。特に SG の「all-allocated」の定義がスケジューラーにより異なる可能性。
- TPU 特有の設計(XLA コンパイラー、Borg スケジューラー)に依存した部分と、GPU + CUDA ベースのフリートに移植可能な部分の切り分けはどこか。
- 異種ハードウェア混在(TPU v4・v5・v6 等)では、predicted step time をどの世代の roofline で正規化すべきか。
## 関連
- ソース: [[@2026__MLSys2026__Machine Learning Fleet Efficiency - Improving TPU Systems at Scale with ML Productivity Goodput]]
- エンティティ: [[Google]] / [[Arissa Wongpanich]] / [[Vijay Janapa Reddi]] / [[Borg]]
- 概念: [[GPUクラスタ運用]](同じ問題空間をより広い視点で扱う) / [[LLM分散学習]] / [[ストラグラー]](Runtime Goodput の損失要因の一つ)
- 関連 MOC: [[分散深層学習 - MOC]] / [[HPC - MOC]]
## 出典
- [[@2026__MLSys2026__Machine Learning Fleet Efficiency - Improving TPU Systems at Scale with ML Productivity Goodput]](MLSys 2026 Industry Track、Google TPU フリート。スライド 32 ページ + abstract)