2.3.10 スケジュールの平準化
バッチジョブ分散実行システムでは,次のスケジューリング方法によってグリッドジョブ実行時間を短縮します。
-
スケジュール優先順位の高いサブジョブから実行します。
-
一括処理数単位ではなく,実行ノードの空きを検知してサブジョブを実行します。
-
各サブジョブに複数の実行ノードを指定した場合に,実行ノードに障害が発生したときだけ,2番目以降に指定された実行ノードに振り分けます。
この機能は,データ配置情報のフォーマット識別子に0102または0202を指定した場合に適用されます。各スケジューリングの詳細について説明します。
- 〈この項の構成〉
(1) 優先順位の高いサブジョブから実行する方法
実行時間が長いと予測できるレコード数,またはデータ量の大きいサブジョブに高い優先順位を指定します。こうすることで,スケジュール優先順位の高いサブジョブから実行されます。
次に示すデータ配置情報があった場合のサブジョブの実行を,図2-24および図2-25に示します。
data0001,nodeA レコード件数10000件(S0001 スケジュール優先順位10000 data0002,nodeA レコード件数5000件(S0002 スケジュール優先順位5000 data0003,nodeA レコード件数10000件(S0003 スケジュール優先順位10000 data0004,nodeA レコード件数5000件(S0004 スケジュール優先順位5000
このスケジューリングはデータ配置情報のFORMATIDで指定します。データ配置情報の書式を次に示します。
FORMATID=0102 データ識別子,スケジュール優先順位,リソース名,ノード名,ノード名;データ識別情報 データ識別子,スケジュール優先順位,リソース名,ノード名,ノード名;データ識別情報
FORMATIDの詳細については,「5.2.2(4) データ配置情報の形式」を参照してください。
(2) 実行ノードの空きを検知してサブジョブを実行する方法
サブジョブ単位に実行要求を行うことで,実行ノードに空きがあれば順次,サブジョブを実行します。一度に要求できる実行要求は,UGPSM_DEFMAXSUBJOB環境変数に指定した値となります。
サブジョブ単位の実行要求の概要を次の図に示します。
(3) 障害が発生した場合だけ他の実行ノードにサブジョブを振り分ける方法
先頭ノードまたは先行ジョブで実行したノードが未起動などで使用できない場合だけ,後続ノードでサブジョブを実行します。
実行ノードを選択するときの優先順位を表に例示します。
グリッド実行ジョブの条件 |
実行ノード選択の優先順位 |
|||
---|---|---|---|---|
node1 |
node2 |
node3 |
node4 |
|
先行グリッドジョブの実行結果を引き継ぐ指定 (先行グリッドジョブはnode1で実行した場合) |
1 |
2※ |
3※ |
4※ |
先行グリッドジョブの実行結果を引き継ぐ指定 (先行グリッドジョブはnode3で実行した場合) |
2※ |
3※ |
1 |
4※ |
先行グリッドジョブの実行結果を引き継がない指定 |
1 |
2※ |
3※ |
4※ |
グリッド開始ジョブ直後 |
1 |
2※ |
3※ |
4※ |
グリッド実行ジョブの条件 |
実行ノード選択の優先順位 |
|||
---|---|---|---|---|
node1 |
node2 |
node3 |
node4 |
|
先行グリッドジョブの実行結果を引き継ぐ指定 (先行グリッドジョブはnode1で実行した場合) |
1 |
2※ |
2※ |
2※ |
先行グリッドジョブの実行結果を引き継ぐ指定 (先行グリッドジョブはnode3で実行した場合) |
2※ |
2※ |
1 |
2※ |
先行グリッドジョブの実行結果を引き継がない指定 |
先にサブジョブ実行が完了したノードにスケジュールされます。 |
|||
グリッド開始ジョブ直後 |
グループ指定の場合,最優先ノードが未決定のときは,先にサブジョブ実行が完了したノードにスケジュールされます。