# 共有異常 ## 定義 共有異常(sharing anomaly)とは、マルチテナント GPU クラスタで、あるテナントのジョブシーケンス(アフィニティ要件付き)が、**クォータ規模と等しい私有クラスタでは満たされるのに、共有クラスタでは満たされない**現象である。[[HiveD]] の著者 [[Hanyu Zhao]] らが OSDI 2020 で本番環境から初めて観察・定式化した。 本番例: 64 GPU クォータを持つテナントが 8×8 アフィニティ(8 ノード × 8 GPU)を必要とする単一ジョブを実行できない。他テナントの単 GPU ジョブがアフィニティを断片化しているためである。 ## 発生メカニズム 1. クォータは GPU の**数量**しか保証しない 2. ディープラーニング訓練ジョブは GPU **アフィニティ**(同一ノード・PCIe スイッチ・CPU ソケット内に配置)を要求する 3. 他テナントの細粒度ジョブ(単 GPU 等)がクラスタ全体の GPU アフィニティを外部断片化する 4. テナントはクォータ内の GPU を持っていても、必要なアフィニティ構造を持つ物理セルが存在しない 5. ジョブが長時間キューで待つか、性能の落ちた緩和アフィニティで実行される この現象はメモリ管理の**外部断片化**と類似するが、GPU 共有クラスタの場合は「他者の断片化が自テナントに影響する」点で特有の問題である。 ## 定量的な深刻さ HiveD 論文の実測から: - クォータ方式: prod-a テナントが最大 1,000 分の余分なキューイング遅延(私有クラスタ比) - 高負荷時(200 ノード): 最大 8,000 分の余分な遅延、クォータ方式比 7〜132× の倍率 - 重要な発見: **単 GPU ジョブが多いほど他テナントの大規模ジョブのアフィニティ断片化が悪化する** - 大テナントほど被害大: マルチ GPU ジョブが多い prod-a が最も深刻な共有異常を被った ## 対策の分類 | アプローチ | 説明 | 問題点 | |-----------|------|--------| | クォータ(従来) | GPU 本数で予約 | アフィニティ保証なし、共有異常が発生 | | スケジューラ内断片化最小化 | スケジューラが断片化を抑える最適化を行う | スケジューラ設計を複雑化、ジョブ性能低下も | | VC + バディセル割り当て([[HiveD]]) | アフィニティ構造ごと予約、証明付き安全性保証 | VC 割り当てビジネスプロセスが別途必要 | ## 横断的知見 - 共有異常は YARN-CS / Gandiva / Tiresias という設計思想の異なる 3 スケジューラ全てで発生した。これは「スケジューラを改良するだけでは根本解決にならない」ことを示す。断片化の管理とスケジューリング目標は分離すべき関心事である([[@@2020__OSDI__HiveD Sharing a GPU Cluster for Deep Learning with Guarantees]])。 - 共有安全性が担保されなければ、大規模テナントが「共有の利益を受けられない」として資源を引き上げ共有クラスタが自壊するスパイラルが起きる。prod-a がクラスタから離脱すると res-f が次の被害者になるという連鎖が実験で確認された([[@@2020__OSDI__HiveD Sharing a GPU Cluster for Deep Learning with Guarantees]])。 ## 未解決の問い - LLM 訓練の世代(2020 年以降)では、DP/TP/PP を組み合わせたジョブが主流になった。この場合の「アフィニティ要件」はノードレベルセルより複雑なトポロジ(IB ドメイン・ラック間帯域)を含むが、VC でどこまで表現できるか。 - Gandiva のジョブ移動は共有異常の部分緩和として機能するが完全解消には至らなかった。移動を共有安全性保証と統合するにはどのような形式化が必要か。 - クォータ方式が廃止されず根強く使われる理由は設定の単純さにある。VC 割り当てを自動推薦するツールが HiveD に欠けている。 ## 関連 - ソース: [[@@2020__OSDI__HiveD Sharing a GPU Cluster for Deep Learning with Guarantees]] - エンティティ: [[HiveD]] / [[Hanyu Zhao]] - 概念: [[GPUクラスタスケジューリング]] / [[Virtual Private Cluster]] / [[GPUクラスタ運用]] - 関連 MOC: [[分散深層学習 - MOC]] ## 出典 - [[@@2020__OSDI__HiveD Sharing a GPU Cluster for Deep Learning with Guarantees]](§2 Background and Motivation, §5 Evaluation)