ACK は、AI トレーニング、バッチ推論、異種 GPU および FPGA ワークロード、大規模バッチジョブ向けの特殊なスケジューリング機能を提供します。以下の表を使用して、ご利用のシナリオに適した機能を確認してください。
弾力的なスケジューリング
単一のアプリケーションで Elastic Compute Service (ECS) インスタンス、Elastic Container Instances (ECI)、およびプリエンプティブインスタンスを組み合わせて使用し、スケールアウト時にどのリソースタイプを優先的に使用し、スケールイン時にどのリソースタイプを優先的に解放するかを制御する優先度ベースのポリシーを定義します。
| 機能 | シナリオ | 参照 |
|---|---|---|
| 弾力的なスケジューリング | スケールアウト時に安価なリソースを優先し (例: ECI にフォールバックする前に ECS インスタンスを使い切る)、スケールイン時にそれらを最初に解放することでコストを削減します。サブスクリプション、従量課金、およびプリエンプティブインスタンスをサポートします。 | Elastic Container Instance ベースのスケジューリングの使用優先度ベースのリソーススケジューリングの設定 |
タスクスケジューリング
ACK は、バッチ処理および AI ワークロード向けに、ギャングスケジューリング、キャパシティスケジューリング、および Kube Queue を提供します。
| 機能 | シナリオ | 参照 |
|---|---|---|
| ギャングスケジューリング | すべてのタスクを同時に開始する必要がある分散トレーニングまたはバッチジョブ。ギャングスケジューリングがない場合、部分的に開始されたジョブはクラスターリソースをブロックし、デッドロック (すべてのジョブが Pending 状態になる) を引き起こします。ギャングスケジューリングは、関連するすべてのプロセスを同時に開始し、プロセスグループがブロックされるのを防ぎます。 | ガンスケジューリングの活用 |
| キャパシティスケジューリング | 異なるチームが異なる時間にリソースを使用する複数チームのクラスター。標準 Kubernetes リソースクォータは名前空間ごとに固定量を割り当てますが、チームのクォータが未使用のままだとアイドルリソースが発生します。Yarn キャパシティスケジューラと Kubernetes スケジューリングフレームワークに基づいて構築されたキャパシティスケジューリングは、チームがクォータ境界を越えてアイドルリソースを共有できるようにします。 | 容量スケジューリングの使用 |
| Kube Queue (ack-kube-queue) | 複数のユーザーによって送信される AI、機械学習、およびバッチワークロードを実行する大規模クラスター。ジョブ数が多い場合、Pod レベルのスケジューリングは劣化し、異なるユーザーからのジョブがスケジューリング中に干渉する可能性があります。ack-kube-queue は、カスタマイズ可能なポリシーと統合クォータシステムを使用してジョブキューを管理し、リソース使用率を最大化します。 | ack-kube-queue を使用してジョブキューを管理する |
異種リソースのスケジューリング
ACK は、cGPU、トポロジーアウェア CPU スケジューリング、およびトポロジーアウェア GPU スケジューリング機能を提供し、異種リソースをスケジュールします。GPU スケジューリングを制御するノードラベルについては、「ACK が GPU を制御するために使用するラベル」をご参照ください。
cGPU を使用した GPU 共有
cGPU を使用すると、複数の Pod が単一の GPU を共有しながら、各 Pod の GPU メモリを隔離できます。ACK Pro マネージドクラスターは、ご利用のワークロードタイプに基づいて以下の GPU ポリシーをサポートします。
| ポリシー | 使用条件 | 説明 |
|---|---|---|
| 1 Pod 1 GPU 共有とメモリ隔離 | モデル推論 | 単一の Pod が 1 つの GPU を使用し、同じ GPU 上の Pod 間でメモリ隔離が適用されます。 |
| 1 Pod マルチ GPU 共有とメモリ隔離 | 分散モデルをトレーニングするためのコードの構築 | 単一の Pod が複数の GPU にまたがり、メモリ隔離が適用されます。分散モデルをトレーニングするためのコードの構築に適しています。 |
| binpack または spread アロケーション | GPU 使用率の向上と高可用性の確保 | binpack または spread アルゴリズムに基づく GPU アロケーションにより、GPU 使用率を向上させ、GPU の高可用性を確保します。 |
セットアップ手順については、「cGPU Professional Edition」をご参照ください。
トポロジーアウェア CPU スケジューリングとトポロジーアウェア GPU スケジューリング
パフォーマンス重視のワークロードの場合、スケジューラはノードのハードウェアトポロジー (GPU 間通信パス (NVLink および PCIe スイッチ) と CPU の非均一メモリアクセス (NUMA) トポロジー) に基づいて最適な配置を選択します。
| 機能 | 参照 |
|---|---|
| トポロジーアウェア CPU スケジューリング | トポロジーアウェア CPU スケジューリング |
| トポロジーアウェア GPU スケジューリング | 概要 |
FPGA スケジューリング
FPGA リソースを必要とするワークロードをラベルを使用して FPGA アクセラレーテッドノードにスケジュールし、クラスター内のすべての FPGA リソースを統一された方法で管理します。
| 機能 | 参照 |
|---|---|
| FPGA スケジューリング | ラベルを使用して Pod を FPGA アクセラレーテッドノードにスケジュールする |
タスクキュー スケジューリング
ACK を使用すると、AI ワークロード、機械学習ワークロード、およびバッチジョブ向けのタスクキュー スケジューリングをカスタマイズできます。