Capacity Reservation と Capacity Block for ML でノード間の通信を高速化する方法を調べてみた
はじめに
大規模な機械学習や HPC ワークロードでは複数のインスタンスを利用して並列処理を行うことが一般的です。そのためインスタンス間の通信速度が全体のパフォーマンスを左右します。複数のインスタンスを物理的に近接させることでノード間通信のパフォーマンスを改善できます。本記事では Capacity Reservation (オンデマンドキャパシティ予約)と Capacity Block for ML における物理的な近接配置設定を調べた結果をまとめました。
確認結果
Capacity Reservation と Capacity Block for ML による物理的な近接配置の確認結果は以下の通りです。
項目 | Capacity Reservation | Capacity Block for ML |
---|---|---|
物理的な近接配置 | Cluster Placement Group が必要 | 自動(UltraClusters) |
設定の複雑さ | 手動設定が必要 | 自動設定 |
容量確保の保証 | 作成成功後は保証 | 予約期間中は保証 |
対象ワークロード | 汎用 | ML 特化 |
ポイント
- Capacity Reservation では Cluster Placement Group との組み合わせで近接配置を実現します
- Capacity Block for ML では UltraClusters により、標準的に低遅延、高帯域のネットワークが提供されています
Capacity Reservation の物理的な近接配置をするには
Capacity Reservation はオンデマンドでインスタンスを立ち上げる際に物理ホストのリソース不足で起動できないケースを回避できるサービスです。任意の期間キャパシティを確保しておくことができますが、キャパシティを確保した分はインスタンスが稼働していなくても料金がかかります。
Cluster Placement Group との組み合わせが必要
Capacity Reservation 単体では物理的な近接配置を保証しません。
Cluster Placement Group と組み合わせることで物理的な近接配置が可能です。
この構成を CPG-ODCR(Cluster Placement Group - On-Demand Capacity Reservation)と略して表記されることがあります。
設定方法
設定方法は簡単です。事前に作成した Cluster Placement Group を Capacity Reservation 作成時に指定するだけです。
注意点
Cluster Placement Group を使用していると、経験上Insufficient Capacity
(在庫不足)を引きやすいです。物理的に近接配置可能な EC2 のキャパシティが不足している場合、Capacity Reservation の作成自体が失敗する可能性があります。
Amazon EC2 does not have sufficient capacity to fulfill the request. Either try again at a later time, try a different Availability Zone, or try a smaller capacity. If your workload is flexible across instance types and sizes, try different instance attributes.
Capacity Block for ML と UltraClusters
Capacity Block for ML は使いたい分の GPU インスタンス(容量)を事前予約できるサービスです。需要と供給に基づき価格が設定され、基本的にはオンデマンドで利用するよりも割引が入った価格で利用できます。ただし、予約するためには利用代金は前払いが必要です。ちなみに RI/SP の割引は EC2 Capacity Blocks for ML で予約したインスタンスには適用されません。
UltraClusters がすごい
Capacity Block for ML で予約できる GPU インスタンスは、EC2 UltraClusters に対応したインスタンスです。そのため、標準で低遅延、高帯域でノード間通信が可能です。
対応インスタンスタイプ(2025/8/26 時点)
p6-b200
、p5
、p5e
、p5en
p4d
、p4de
trn1
、trn2
Cluster Placement Group 設定は不要
Capacity Block for ML では Cluster Placement Group の設定は不要です。というよりも設定項目がありません。UltraClusters が低遅延・高帯域幅のネットワーク環境を提供しています。
まとめ
EC2 インスタンスの物理的な近接配置の方法は、利用するサービスによって異なります。
Capacity Reservation は Cluster Placement Group との組み合わせで近接配置を実現します。手動設定が必要で容量不足により予約が失敗する可能性もあります。
Capacity Block for ML は予約対象の GPU インスタンスが UltraClusters に対応しており、低遅延、高帯域のネットワークが提供されます。
項目 | Capacity Reservation | Capacity Block for ML |
---|---|---|
物理的な近接配置 | Cluster Placement Group が必要 | 自動(UltraClusters) |
設定の複雑さ | 手動設定が必要 | 自動設定 |
容量確保の保証 | 作成成功後は保証 | 予約期間中は保証 |
対象ワークロード | 汎用 | ML 特化 |
おわりに
Capacity Reservation でキャパシティ不足を引くケースを調べていたのでまとめました。ドキュメントを確認した結果、予約時にキャパシティ不足はありえますが、予約後は Cluster Placement Group を利用していてもキャパシティ不足は発生しないという結論に至りました。