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に設定されている場合、ジョブの許可設定を行う必要があります。- admissionspec に指定できる値は、- 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に設定されています。