2.10. ギャングスケジューリング
ギャングスケジューリングにより、必要なリソースがすべて利用可能になった場合にのみ、関連するジョブのグループまたは ギャング が開始されます。Red Hat build of Kueue は、ギャング内の関連ジョブすべてをまとめて開始および実行する容量を OpenShift Container Platform クラスターが保証できるようになるまで、ジョブを一時停止することで、ギャングスケジューリングを可能にします。これは、オールオアナッシング (all-or-nothing) スケジューリングとも呼ばれます。
GPU などの高価で限られたリソースを使用する場合、ギャングスケジューリングは重要です。ギャングスケジューリングにより、ジョブが GPU を要求するものの使用しないという状況を防ぐことができ、GPU の使用率が向上し、実行コストを削減できます。ギャングスケジューリングは、リソースのセグメンテーションやデッドロックなどの問題を防ぐ場合にも役立ちます。
2.10.1. ギャングスケジューリングの設定 リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、Kueue
カスタムリソース (CR) の gangScheduling
spec を変更することで、ギャングスケジューリングを設定できます。
ギャングスケジューリングが設定された Kueue
CR の例
- 1
policy
値を設定して、ギャングスケジューリングを有効または無効化できます。可能な値はByWorkload
、None
、または空 (""
) です。ByWorkload
-
policy
値がByWorkload
に設定されている場合、各ジョブは単一のユニットとして処理され、許可の対象となります。指定された時間内にジョブの準備が完了しない場合は、ジョブ全体が退避され、後で再試行されます。 None
-
policy
値がNone
に設定されている場合、ギャングスケジューリングは無効になります。 - 空白 (
""
) -
policy
値が空、または""
に設定されている場合、Red Hat build of Kueue Operator がギャングスケジューリングの設定を決定します。現在、ギャングスケジューリングはデフォルトで無効になっています。
- 2
policy
値がByWorkload
に設定されている場合、ジョブの許可設定を行う必要があります。admission
spec に指定できる値は、Parallel
、Sequential
、または空 (""
) です。Parallel
-
admission
値がParallel
に設定されている場合、任意のジョブの Pod をいつでも許可できます。これにより、ジョブがクラスター容量をめぐって競合するデッドロックが発生する可能性があります。デッドロックが発生すると、別のジョブからの Pod のスケジューリングが成功すると、現在のジョブからの Pod のスケジューリングが妨げられる可能性があります。 Sequential
-
admission
値がSequential
に設定されている場合、現在処理中のジョブからの Pod のみが許可されます。現在のジョブのすべての Pod が許可され準備完了になると、Red Hat build of Kueue は次のジョブを処理します。クラスターに複数のジョブを処理するのに十分な容量がある場合、順次処理によって許可速度が低下する可能性がありますが、ジョブのすべての Pod が正常に一緒にスケジュールされる可能性が高くなります。 - 空白 (
""
) -
admission
値が空または""
に設定されている場合、Red Hat build of Kueue Operator がジョブの許可設定を決定します。現在、admission
値はデフォルトでParallel
に設定されています。