次の方法で共有


バックフィルについて

バックフィルは、キューの先頭で待機しているジョブの前で実行するジョブの前に小さいジョブを実行できるようにすることで、クラスターの使用率とスループットを最大化するのに役立ちます(その結果、先頭のジョブが遅延しない限り)。 HPC ジョブ スケジューラ サービスは、バックフィルのためにリソースを利用する前に、実行中のジョブを要求された最大リソースに拡張します。 構成オプションを変更する方法については、「HPC ジョブ スケジューラ サービスの構成」を参照してください。

バックフィルは既定で有効になっており、バックフィルの先読み 1,000 ジョブに設定されています。 バックフィル先読み設定によって、HPC Job Scheduler サービスが検索してスケジュールのギャップを埋めることができるジョブを検索するジョブの数が決まります。 次の構成オプションを使用すると、バックフィルを変更または無効にすることができます。

  • キュー の一部からのバックフィルを許可する (指定したバックフィル内で先を見てください)

  • キュー 全体からのバックフィルを許可する

  • バックフィル を許可しない

手記

バックフィルは、クラスターに送信されたジョブの最大実行時間が指定されている場合にのみ有効です。

ジョブ テンプレートを使用して、すべてのジョブの最大実行時間を定義できます。 たとえば、BigJob、MediumJob、SmallJob という名前の一連のジョブ テンプレートを作成できます。最大実行時間はそれぞれ 1 日、1 時間、1 分です。 詳細については、「ジョブ テンプレートのを する」を参照してください。

また、ランタイム ジョブ プロパティが無限に設定されていないことを確認するジョブ送信フィルターを記述することもできます。 詳細については、「アクティブ化フィルターと送信フィルターについて」を参照してください。

バックフィルのしくみ

ジョブがキューの一番上に達すると、最小コア要件を満たすために十分な数のノードが使用できない場合があります。 この場合、ジョブはすぐに使用可能なすべてのノードが予約され、現在実行中のジョブが完了するまで待機します。

その後、バックフィルでは、予約済みのアイドル 状態のノードが次のように利用されます。

  1. 現在実行中のジョブに指定された実行時間に基づいて、待機中のジョブの開始時刻が確立されます。

  2. 開始時刻は、ノード (n) x 時間 (t) の バックフィル ウィンドウを定義するために使用されます。 たとえば、15 分間アイドル状態の 4 つのノードでは、4 x 15 バックフィル ウィンドウが作成されます。

  3. HPC ジョブ スケジューラ サービスは、バックフィル ウィンドウ内で完了できるキュー内の最初のジョブを検索します。 たとえば、少なくとも 8 つのコア (デュアル コア ノードを想定して 4 つのノード) を必要とし、実行時間が 10 分のジョブは、4 x 15 ウィンドウに正確に収まります。

  4. ウィンドウに適合するジョブが見つかった場合は、アクティブ化され、キューの先頭で待機しているジョブの前に実行されます。

その他の参照