本文へスキップ

AI運用の判断と根拠を引く

トップへ戻る

分散AI workloadのgang scheduling+topology-aware placement

用語・参照用語・参照公式仕様のみ公式仕様のみ現行現行として扱う

記事状態: 公開 · 最終確認: 2026-10-21

要点

「分散AI workloadでは、必要pod群が同時に実行可能かを扱うgang/admission 制御と、rack・node・accelerator/fabric localityを扱うtopology-aware placementを分離して設計する。aggregate GPU数だけでは実配置可能性を保証できず、topology localityを強めれば常に性能が上がるわけでもない。workloadの固定/elastic性、通信特性、queue待機、fragmentationを実測して制約を決める。」

現在の判断

「分散AI workloadでは、必要pod群が同時に実行可能かを扱うgang/admission 制御と、rack・node・accelerator/fabric localityを扱うtopology-aware placementを分離して設計する。aggregate GPU数だけでは実配置可能性を保証できず、topology localityを強めれば常に性能が上がるわけでもない。workloadの固定/elastic性、通信特性、queue待機、fragmentationを実測して制約を決める。」

どこまで当てはまるか

分散AI workloadのgang scheduling+topology-aware placement

詳しく理解する

要点と前提

分散trainingやmulti-node 推論では、必要なworker数が揃わないpartial placementと、通信fabricを無視した配置を別々の失敗として扱う必要があります。EA-748では、gang schedulingを「必要pod群が同時に実行可能な状態を作る admission/scheduling 制御」、topology-aware placementを「通信・accelerator topologyを踏まえて実行場所を選ぶ placement 制御」として分離し、両者を組み合わせます。

主要記述・判断

Kueueの現行Topology-Aware Scheduling(TAS)は、AI/ML workloadではpod間bandwidthが実行 timeとcostへ直結し、rack/block等のdata-center hierarchyに応じてnode間距離が異なることを前提にしています。TASはnode 分類ラベルでtopology hierarchyを表し、queue/resource flavorと結び付けてplacementを考慮します。Kueue v0.14以降ではTASはbetaかつdefault enabledです。

KueueのAll-or-nothing Schedulingは、synchronized distributed trainingのように全podが同時に走らないと進まないworkloadでpartial schedulingがresource wasteやdeadlockを生むと説明しています。利用枠 reservationだけではnode fragmentationを捉えられず、たとえばcluster全体に8 GPUが空いていても4+4に分散し、単一8-GPU Podを置けない場合があります。TASは利用枠だけでなくtopology placementをadmission時に評価することで、この種の「総量はあるが置けない」を減らします。

Volcano v1.15のGang pluginもall-or-nothing schedulingを中核機能として、Jobのminimum runnable podsを満たせる場合にのみgroupを進める設計です。PodGroupのminMember/minResourcesは、最低限必要なpod数・resourceを表し、不足時に一部podだけを先行させないために使えます。

実装・運用

  • workload manifestへ gang_min_members、min_resources、elastic可否、GPU SKU/profile、network/fabric requirement、topology requirement、優先順位/queueを明示します。
  • admission時にaggregate 利用枠だけでなく、node-level allocatabilityと必要topology domain内のcapacityを結果の照合します。
  • training/推論 jobごとに required と preferred topologyを分離します。通信上絶対必要な同一domain条件を単なるpreferenceへ落としません。
  • topology 出典をinventory化し、node 分類ラベル/resource topologyと実rack/fabric構成の同期を監査します。分類ラベルの存在を物理帯域保証と同一視しません。
  • gangが長時間pendingの場合、insufficient total capacity、fragmentation、topology constraint、quota/priorityを区別して観測します。
  • scheduler変更前後でqueue wait、admission latency、GPU idle reservation、job 完了 time、collective communication time、cross-rack traffic、preemption/requeueを比較します。
  • elastic workloadではminimum viable replicasと対象 replicasを分け、partial admissionを許す場合もframework側がそのreplica数で正しく再構成できることを確認します。
  • multi-tenant環境ではtopology optimizationが一部組織の利用環境へ良好なrack/GPUを固定化しないよう、queue fairnessとlocality benefitを同時に測定します。

適用境界

Kueue TASはKubernetes上のqueue/admissionとtopology-aware schedulingの仕組みであり、NCCLやRDMA fabric自体のhealth、bandwidth、処理先の振り分け correctnessを保証しません。topology 分類ラベルが正しくても、NIC/GPU faultやoversubscriptionにより通信性能は劣化し得ます。

Volcano Gangはminimum runnable groupを扱えますが、すべてのdistributed frameworkでminMemberが意味上のに正しいとは限りません。frameworkが固定world sizeを要求する場合は全workerをgangへ含め、elastic frameworkでは実際のminimum viable world sizeを別途検証します。

Kueueのmulti-level topology機能にはバージョンごとの機能 状態差があります。運用clusterのKueue バージョン、機能 確認・承認の条件、API データ形式の定義をlive確認し、仕様・利用方法の文書の最新例を古いclusterへそのまま適用しません。

出典 / 出典・来歴 locators

よくある失敗・反証

  • gang schedulingだけでは「全workerが起動したが、遠いrackへ分散してcollective通信が遅い」問題を防げません。逆にtopology preferenceだけでは、必要workerの一部だけがresourceを保持したまま残りを待つpartial allocationを防げません。したがって、distributed AI workloadではadmission completenessとplacement qualityを別制御として設計します。

    典型的失敗は、cluster全体のfree GPU数だけでadmissionすること、GPU SKUだけを揃えてNVLink/NVSwitch/RDMA/rack localityを無視すること、gang sizeを「desired replica数」と固定してelastic trainingのminimum viable sizeを表現しないこと、topology 分類ラベルが古い・誤っている状態でscheduler判断を信頼することです。

    また、gang schedulingはresource 利用可能性を作り出しません。大きなgangを無期限に待たせるとqueue head-of-line blockingやfragmentationを増やす可能性があります。優先順位、preemption、利用枠 borrowing、backfill、elastic/partial admissionの可否をworkload classごとに定義します。

  • topology localityを強く要求すると、近接resourceが揃うまでjob開始が遅れ、単位時間あたりの処理量やqueue fairnessが悪化する場合があります。communication-light workloadでは、厳しいsame-rack制約より早期開始の方がend-to-end 完了を改善する可能性があります。

    gang schedulingも常に全replica同時開始が最適とは限りません。elastic trainingやfault-tolerant 推論では、縮小構成で開始して後からscale outできる場合があります。したがってall-or-nothingはworkload semanticsから導出し、distributed AIという理由だけで一律適用しません。

まだ確認できていないこと

  • EA-748-UNKNOWN-01
    • workload/モデルごとのsame-host / same-rack / same-block requirementの実測break-even。
    • NVLink/NVSwitch/RDMA/EFA等のfabric情報をKubernetes topology モデルへどこまで正確に投影できるか。
    • gang待機によるfragmentationとtopology locality benefitの最適trade-off。
    • autoscalerがnode追加中のときのgang admission/topology reservation整合性。
    • elastic workloadのminimum viable replicasとquality/単位時間あたりの処理量/SLOの関係。
    • topology 付随情報 driftを検出する標準的な結果の照合方法。

根拠資料

更新履歴

  1. EA-748-RESEARCH-20261021-R1: 正式な 監査/publication 対応付け

出典ID・検証情報・機械可読データ

根拠の種類と情報の鮮度は、ラベルとアイコンで確認できます。

記事ID
EA-748
最終確認日
2026-10-21
提供元・モデル・プラン・利用環境
—
対象地域
—
元資料の全文と収録照合記録
要点と前提

分散trainingやmulti-node inferenceでは、必要なworker数が揃わないpartial placementと、通信fabricを無視した配置を別々のfailureとして扱う必要があります。EA-748では、gang schedulingを「必要pod群が同時に実行可能な状態を作る admission/scheduling control」、topology-aware placementを「通信・accelerator topologyを踏まえて実行場所を選ぶ placement control」として分離し、両者を組み合わせます。

主要claim

Kueueの現行Topology-Aware Scheduling(TAS)は、AI/ML workloadではpod間bandwidthがexecution timeとcostへ直結し、rack/block等のdata-center hierarchyに応じてnode間距離が異なることを前提にしています。TASはnode labelでtopology hierarchyを表し、queue/resource flavorと結び付けてplacementを考慮します。Kueue v0.14以降ではTASはbetaかつdefault enabledです。

KueueのAll-or-nothing Schedulingは、synchronized distributed trainingのように全podが同時に走らないと進まないworkloadでpartial schedulingがresource wasteやdeadlockを生むと説明しています。quota reservationだけではnode fragmentationを捉えられず、たとえばcluster全体に8 GPUが空いていても4+4に分散し、単一8-GPU Podを置けない場合があります。TASはquotaだけでなくtopology placementをadmission時に評価することで、この種の「総量はあるが置けない」を減らします。

Volcano v1.15のGang pluginもall-or-nothing schedulingを中核機能として、Jobのminimum runnable podsを満たせる場合にのみgroupを進める設計です。PodGroupのminMember/minResourcesは、最低限必要なpod数・resourceを表し、不足時に一部podだけを先行させないために使えます。

運用上の意味・failure

gang schedulingだけでは「全workerが起動したが、遠いrackへ分散してcollective通信が遅い」問題を防げません。逆にtopology preferenceだけでは、必要workerの一部だけがresourceを保持したまま残りを待つpartial allocationを防げません。したがって、distributed AI workloadではadmission completenessとplacement qualityを別controlとして設計します。

典型的failureは、cluster全体のfree GPU数だけでadmissionすること、GPU SKUだけを揃えてNVLink/NVSwitch/RDMA/rack localityを無視すること、gang sizeを「desired replica数」と固定してelastic trainingのminimum viable sizeを表現しないこと、topology labelが古い・誤っている状態でscheduler判断を信頼することです。

また、gang schedulingはresource availabilityを作り出しません。大きなgangを無期限に待たせるとqueue head-of-line blockingやfragmentationを増やす可能性があります。priority、preemption、quota borrowing、backfill、elastic/partial admissionの可否をworkload classごとに定義します。

concrete control / implementation implication
  • workload manifestへ gang_min_members、min_resources、elastic可否、GPU SKU/profile、network/fabric requirement、topology requirement、priority/queueを明示します。
  • admission時にaggregate quotaだけでなく、node-level allocatabilityと必要topology domain内のcapacityをreadbackします。
  • training/inference jobごとに required と preferred topologyを分離します。通信上絶対必要な同一domain条件を単なるpreferenceへ落としません。
  • topology sourceをinventory化し、node label/resource topologyと実rack/fabric構成の同期を監査します。labelの存在を物理帯域保証と同一視しません。
  • gangが長時間pendingの場合、insufficient total capacity、fragmentation、topology constraint、quota/priorityを区別して観測します。
  • scheduler変更前後でqueue wait、admission latency、GPU idle reservation、job completion time、collective communication time、cross-rack traffic、preemption/requeueを比較します。
  • elastic workloadではminimum viable replicasとtarget replicasを分け、partial admissionを許す場合もframework側がそのreplica数で正しく再構成できることを確認します。
  • multi-tenant環境ではtopology optimizationが一部tenantへ良好なrack/GPUを固定化しないよう、queue fairnessとlocality benefitを同時に測定します。
適用境界

Kueue TASはKubernetes上のqueue/admissionとtopology-aware schedulingの仕組みであり、NCCLやRDMA fabric自体のhealth、bandwidth、routing correctnessを保証しません。topology labelが正しくても、NIC/GPU faultやoversubscriptionにより通信性能は劣化し得ます。

Volcano Gangはminimum runnable groupを扱えますが、すべてのdistributed frameworkでminMemberがsemanticに正しいとは限りません。frameworkが固定world sizeを要求する場合は全workerをgangへ含め、elastic frameworkでは実際のminimum viable world sizeを別途検証します。

Kueueのmulti-level topology機能にはversionごとのfeature state差があります。運用clusterのKueue version、feature gate、API schemaをlive確認し、documentationの最新例を古いclusterへそのまま適用しません。

counterevidence / limitations

topology localityを強く要求すると、近接resourceが揃うまでjob開始が遅れ、throughputやqueue fairnessが悪化する場合があります。communication-light workloadでは、厳しいsame-rack制約より早期開始の方がend-to-end completionを改善する可能性があります。

gang schedulingも常に全replica同時開始が最適とは限りません。elastic trainingやfault-tolerant inferenceでは、縮小構成で開始して後からscale outできる場合があります。したがってall-or-nothingはworkload semanticsから導出し、distributed AIという理由だけで一律適用しません。

OPEN_UNKNOWN
  • workload/modelごとのsame-host / same-rack / same-block requirementの実測break-even。
  • NVLink/NVSwitch/RDMA/EFA等のfabric情報をKubernetes topology modelへどこまで正確に投影できるか。
  • gang待機によるfragmentationとtopology locality benefitの最適trade-off。
  • autoscalerがnode追加中のときのgang admission/topology reservation整合性。
  • elastic workloadのminimum viable replicasとquality/throughput/SLOの関係。
  • topology metadata driftを検出する標準的なreadback方法。
SAFE_WORDING

「分散AI workloadでは、必要pod群が同時に実行可能かを扱うgang/admission controlと、rack・node・accelerator/fabric localityを扱うtopology-aware placementを分離して設計する。aggregate GPU数だけでは実配置可能性を保証できず、topology localityを強めれば常に性能が上がるわけでもない。workloadの固定/elastic性、通信特性、queue待機、fragmentationを実測して制約を決める。」

Source / provenance locators
  • EVD-EA-748-URL-1DA6B5BDFE90研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCE

    Kubernetes SIG Scheduling / Kueue, “Topology-Aware Scheduling”, accessed 2026-10-21:

    裏付ける内容
    —
    確認日
    —
    出典・実験ID
    SRC-EA-748-URL-1DA6B5BDFE90
    検証箇所
    Source / provenance locators · - Kubernetes SIG Scheduling / Kueue, “Topology-Aware Scheduling”, accessed 2026-10-21: https://kueue.sigs.k8s.io/docs/concepts/topology_aware_scheduling/
    適用範囲
    Source / provenance locators
    出典・来歴
    SOURCE_PACKET_REFERENCE_PROJECTED
    限界
    元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
  • EVD-EA-748-URL-7245EBE029F0研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCE

    Kubernetes SIG Scheduling / Kueue, “All-or-nothing Scheduling”, v0.20 docs, accessed 2026-10-21:

    裏付ける内容
    —
    確認日
    —
    出典・実験ID
    SRC-EA-748-URL-7245EBE029F0
    検証箇所
    Source / provenance locators · - Kubernetes SIG Scheduling / Kueue, “All-or-nothing Scheduling”, v0.20 docs, accessed 2026-10-21: https://kueue.sigs.k8s.io/v0.20/docs/concepts/all_or_nothing/
    適用範囲
    Source / provenance locators
    出典・来歴
    SOURCE_PACKET_REFERENCE_PROJECTED
    限界
    元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
  • EVD-EA-748-URL-DBD91671DFA3研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCE

    Volcano, “Gang”, v1.15.0, accessed 2026-10-21:

    裏付ける内容
    —
    確認日
    —
    出典・実験ID
    SRC-EA-748-URL-DBD91671DFA3
    検証箇所
    Source / provenance locators · - Volcano, “Gang”, v1.15.0, accessed 2026-10-21: https://volcano.sh/docs/v1.15.0/scheduler/plugins/gang/
    適用範囲
    Source / provenance locators
    出典・来歴
    SOURCE_PACKET_REFERENCE_PROJECTED
    限界
    元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
  • EVD-EA-748-URL-C57DDC8BBE29研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCE

    Volcano, “PodGroup”, accessed 2026-10-21:

    裏付ける内容
    —
    確認日
    —
    出典・実験ID
    SRC-EA-748-URL-C57DDC8BBE29
    検証箇所
    Source / provenance locators · - Volcano, “PodGroup”, accessed 2026-10-21: https://volcano.sh/docs/concepts/podgroup/
    適用範囲
    Source / provenance locators
    出典・来歴
    SOURCE_PACKET_REFERENCE_PROJECTED
    限界
    元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
  • EA-748-CURRENT-APPROVAL研究資料研究資料根拠の出所: AUDITED_CANONICAL_RESEARCH_PACKET

    現行本文の監査・revision対応

    裏付ける内容
    現行台帳のAUDIT_PASSと候補・revision・本文ハッシュの対応を確認しています。
    確認日
    —
    出典・実験ID
    EA748-CANDIDATE-20261021-0231JST-C1
    検証箇所
    1KqhJtiSb2S84rWmeYVwKcT_76dBwZ_B0ZZuAWQqH0rQ/EA_REVISION_LEDGER#ea_id=EA-748&revision_id=EA-748-RESEARCH-20261021-R1&candidate_id=EA748-CANDIDATE-20261021-0231JST-C1 · EA-748-RESEARCH-20261021-R1
    適用範囲
    —
    出典・来歴
    CURRENT_CANONICAL_APPROVAL_READBACK
    限界
    監査状態と来歴の記録です。外部根拠の最新性や本文の全主張を追加保証しません。
  • EA-748-CURRENT-BODY-READBACK実装資料実装資料根拠の出所: IMPLEMENTATION_READBACK

    現行本文の収録照合

    裏付ける内容
    公開生成入力の本文SHA-256が、監査済み候補に結び付いたハッシュと一致しています。
    確認日
    2026-10-20
    出典・実験ID
    BODY-SHA256:e3a4bc4abe3aa5d4f52d37a69e62d675fec7884d7a353e7f5454df51c0557061
    検証箇所
    content/staging/EA-748.md · e3a4bc4abe3aa5d4f52d37a69e62d675fec7884d7a353e7f5454df51c0557061 · EA-748-RESEARCH-20261021-R1
    適用範囲
    —
    出典・来歴
    CURRENT_APPROVED_BODY_HASH_MATCH
    限界
    本文の同一性の検査です。外部システムの挙動や全主張の真偽を実証したものではありません。
出典ID
EA748-CANDIDATE-20261021-0231JST-C1, SRC-EA-748-URL-1DA6B5BDFE90, SRC-EA-748-URL-7245EBE029F0, SRC-EA-748-URL-DBD91671DFA3, SRC-EA-748-URL-C57DDC8BBE29, BODY-SHA256:e3a4bc4abe3aa5d4f52d37a69e62d675fec7884d7a353e7f5454df51c0557061
追跡中のUNKNOWN ID
EA-748-UNKNOWN-01
再確認のきっかけ
正式な 改訂版/publication 状態 change · 本文 成果物 hash change · 出典 現行性 change · new contradiction or 実装 結果の照合

機械検査: 通過 — 機械検査の結果です。情報の正確性や実行の承認を保証するものではありません。

    同じ記事IDの機械可読データです。