2.5.2 グリッドジョブの再実行
グリッドジョブは,JP1/AJS3 - Viewの機能を利用して再実行します。グリッドジョブに対する再実行の方法は,次の中から選べます。
-
このユニットから
指定したグリッドジョブから再実行します。
-
このユニットだけ
指定したグリッドジョブだけを再実行します。
-
このユニットの次から
指定したグリッドジョブの次のグリッドジョブから再実行します。
グリッドジョブを再実行する際,そのグリッドジョブを前回実行した際の状態や後続グリッドジョブの実行状況によって,実行されるかどうかが異なります。また,実行される場合は,そのグリッドジョブがJP1/AJS3上で新規実行の扱いとなるか再実行の扱いとなるかが異なります。
グリッドジョブの種類別に,新規実行・再実行の区別を次の表に示します。
ジョブの種類 |
該当ジョブを前回実行したときの状態 |
後続するグリッド実行ジョブの実行状況 |
後続するグリッド終了ジョブの実行状況 |
区別 |
|
---|---|---|---|---|---|
グリッド開始ジョブ |
実行済み |
正常終了 |
実行済み |
実行済み |
新規実行 |
未実行 |
× |
||||
未実行 |
未実行 |
× |
|||
正常終了以外 |
未実行 |
未実行 |
再実行 |
||
未実行 |
未実行 |
未実行 |
新規実行 |
||
グリッド実行ジョブ |
実行済み※ |
実行済み |
実行済み |
新規実行 |
|
未実行 |
再実行 |
||||
未実行 |
未実行 |
再実行 |
|||
未実行 |
未実行 |
未実行 |
新規実行 |
||
グリッド終了ジョブ |
実行済み |
正常終了 |
− |
− |
× |
正常終了以外 |
− |
− |
再実行 |
||
未実行 |
− |
− |
新規実行 |
なお,グリッド実行ジョブを再実行した際にサブジョブが再実行されるかどうかは,そのサブジョブを前回実行したあとの状態や,先行するグリッドジョブの実行結果を参照するかどうかの設定によって異なります。前回実行したサブジョブが正常終了した場合は,グリッド実行ジョブを再実行しても,再実行対象外と見なされるためサブジョブは再実行されません。
サブジョブの再実行の仕組みや条件について,次に説明します。
- 〈この項の構成〉
(1) サブジョブの再実行
サブジョブで実行するUAPの不具合や分割したデータの不正などによってサブジョブが異常終了した際に,不具合を修正したあと特定のサブジョブだけを再実行すればよい場合があります。一方で,あるグリッド実行ジョブで使用したUAPに不具合があった場合などは,すべてのサブジョブを再実行する必要があります。
このようにサブジョブが異常終了した要因に応じて,一部を再実行するか,すべてを再実行するかを選択することで,適正に処理を進められます。
特定のサブジョブだけを再実行する場合の例を次の図に示します。
(2) サブジョブを再実行する条件
グリッド実行ジョブを再実行した際にサブジョブを再実行する条件を次の表に示します。
先行するグリッドジョブの実行結果の参照 |
先行するサブジョブの終了状態 |
前回実行したサブジョブの終了状態 |
|
---|---|---|---|
正常終了 |
異常終了 |
||
参照する |
正常終了 |
×※ |
○ |
異常終了 |
× |
× |
|
参照しない |
− |
×※ |
○ |
-
前回実行したサブジョブが異常終了した場合
先行するグリッドジョブの実行結果を参照する場合で,先行するサブジョブが正常終了したときは,再実行されます。また,先行するグリッドジョブの実行結果を参照しない場合は,サブジョブが再実行されます。
先行するグリッドジョブの実行結果を参照するかどうかの設定は,グリッドジョブを定義する[グリッド実行定義]ダイアログボックスの[先行グリッドジョブ実行結果]で行います。[参照する]をチェックすると,同一のグリッドプロパティ名を指定した先行グリッドジョブのサブジョブが正常終了したときにサブジョブが実行されます。
先行するサブジョブとは,データ識別子を最後に更新したサブジョブを指すため,サブジョブが異常終了した場合の先行サブジョブは,異常終了したサブジョブ自身となります。そのため,先行するグリッドジョブの実行結果を参照する設定で異常終了したサブジョブは,先行するサブジョブが異常終了したと見なされるため実行されません。
-
前回実行したサブジョブが正常終了した場合
先行するグリッドジョブの実行結果を参照するかどうかの設定に関係なく,グリッド実行ジョブを再実行してもサブジョブは再実行されません。
(3) 特定のサブジョブを強制的に再実行対象とする再実行登録機能
特定のデータ識別子を対象としたすべてのサブジョブを,強制的に再実行対象にできます。この機能を再実行登録機能と呼びます。
サブジョブを強制的に再実行対象とする設定を,再実行設定と呼びます。次のような場合に,サブジョブの再実行設定を登録します。
-
前回正常終了したサブジョブを再実行したい場合
-
複数のグリッド実行ジョブにまたがるサブジョブの処理対象データに不正があったため,正常終了したサブジョブも含めて最初からサブジョブを再実行したい場合
サブジョブに対して再実行設定を登録すると,次の2種類の設定が有効となります。
再実行設定の種類 |
説明 |
---|---|
サブジョブを再実行対象とする設定です。この設定は,データ識別子に対して登録されるため,同じのデータ識別子を処理対象とするすべてのサブジョブが再実行対象となります。 |
|
グリッド実行ジョブに定義されている,先行するグリッドジョブの実行結果を参照する設定を無効にする設定です。先行するグリッドジョブの実行結果を無視して,再実行を優先します。 サブジョブが異常終了した場合,先行するグリッドジョブの実行結果を参照する設定が有効になっていると再実行できないためです。 この設定は,再実行設定の登録を行ったサブジョブに対して登録されます。 |
サブジョブの再実行設定を登録したあと,再実行を開始したいグリッド実行ジョブから再実行することで,再実行対象となったサブジョブが再実行されます。サブジョブの再実行設定を登録する例を次の図に示します。
「job2」の「S002」のサブジョブに対し,再実行設定を登録すると,「job1」の「S002」の再実行対象設定も有効となり,再実行の対象となります。また,「job2」の再実行優先設定が有効となり,先行するグリッドジョブの実行結果を参照する設定が無効となります。
サブジョブに対して再実行設定を登録するには,次の3つの方法があります。
-
ビューホストのサブジョブ一覧表示画面の[再実行設定の登録]メニュー
-
グリッドジョブ情報の設定変更コマンド
-
再実行設定の自動登録オプション
また,サブジョブに対して再実行設定を解除するには,次の2つの方法があります。
-
ビューホストのサブジョブ一覧表示画面の[再実行設定の登録]メニュー
-
グリッドジョブ情報の設定変更コマンド
それぞれの方法について説明します。
(a) ビューホストのサブジョブ一覧表示画面の[再実行設定の登録]メニューによるサブジョブ再実行設定の登録と解除
ビューホストで,サブジョブ再実行設定を登録する方法については,「6.5.2 サブジョブの再実行設定を登録する方法」を参照してください。また,サブジョブ再実行設定を登録する際に,警告を促すメッセージダイアログボックスを表示できます。設定方法については,「4.3.4(1) 再実行設定を登録するときの警告表示の設定」を参照してください。
ビューホストで,サブジョブ再実行設定を解除する方法については,「6.5.3 サブジョブの再実行設定を解除する方法」を参照してください。
(b) グリッドジョブ情報の設定変更コマンドによるサブジョブ再実行設定の登録と解除
グリッドジョブ情報の設定変更コマンドを使用して,サブジョブ再実行設定を登録および解除できます。
コマンドの使い方については,「8. コマンド」の「gpjobalt(グリッドジョブ情報の設定変更コマンド)」を参照してください。
(c) 再実行設定の自動登録オプションによるサブジョブ再実行設定の登録
再実行設定の自動登録オプションを使用することで,グリッド実行ジョブを実行した際に,NORMALまたはWARNING状態以外のサブジョブに対して,自動的に再実行設定を登録できます。
オプションの使い方については,「4.8.46 RERUN_SET_REG_MODEパラメータ(再実行設定の自動登録オプションの定義)」を参照してください。
(4) サブジョブの再実行例
サブジョブの再実行時の動作について,例を用いて説明します。
-
特定のグリッド実行ジョブの全サブジョブを再実行する場合
-
特定のグリッド実行ジョブから特定のサブジョブを選択して再実行する場合
-
複数のグリッドジョブネットにまたがる特定のサブジョブを再実行する場合
(a) 特定のグリッド実行ジョブの全サブジョブを再実行する場合
あるグリッド実行ジョブで使用したUAPに不具合があったため,特定のグリッド実行ジョブのサブジョブがすべて異常終了となった場合の例を次の図に示します。「job2」に対して,先行するグリッドジョブの実行結果を参照する設定は無効となっています。
この例の場合は,「job2」に対して,先行するグリッドジョブの実行結果を参照する設定は無効となっているため,サブジョブに対して再実行設定の登録は不要です。すべての実行ノードのUAPを入れ替えたあとに,UAPに不具合のあった「job2」を選択して,「このユニットから」再実行します。
「job2」の,先行するグリッドジョブの実行結果を参照する設定が有効となっている場合は,「job2」のすべてのサブジョブに対して再実行設定を登録してから,「job2」を再実行する必要があります。
(b) 特定のグリッド実行ジョブから特定のサブジョブを選択して再実行する場合
ある実行ノード上のUAPだけバージョンが古かったため,特定のサブジョブが異常終了した場合の例を次の図に示します。「job2」の,先行するグリッドジョブの実行結果を参照する設定は有効となっています。
この例の場合は,再実行するサブジョブ「S004」に対して再実行設定を登録してから,「job2」を選択して「このユニットから」再実行します。
(c) 複数のグリッド実行ジョブにまたがる特定のサブジョブを再実行する場合
複数のグリッド実行ジョブに共通するサブジョブの使用データに不正があった場合などは,グリッド実行ジョブをまたがってそのサブジョブだけを再実行します。複数のグリッド実行ジョブにまたがる特定のサブジョブを再実行する場合の例を次の図に示します。
この例の場合は,異常終了した「job2」のサブジョブ「S002」に対して再実行設定を登録してから,先行する「job1」を選択して「このユニットから」再実行します。これによって,同じデータ識別子を処理対象とする「job1」の「S002」と「job2」の「S002」が再実行対象となり,2つのグリッド実行ジョブをまたがったサブジョブ「S002」だけを再実行します。
(5) 再実行結果の表示
グリッドジョブの再実行結果は,グリッドクライアントの標準エラー出力としてJP1/AJS3に渡されます。この情報をGUIで確認する方法については,「6.8.1 グリッドジョブの実行結果を表示する方法」を参照してください。
サブジョブを選択して再実行した場合は,実際に再実行したサブジョブだけが表示されます。この場合は,サブジョブ数やE-TIME・C-TIMEに関する統計情報も実際に再実行したサブジョブの稼働情報から算出されます。
サブジョブ識別子「S00003」のサブジョブだけを再実行した場合の表示例を次の図に示します。
(6) ジョブの定義内容を変更した場合の再実行の動作
JP1/AJS3 - Viewのカスタムジョブの定義内容を変更して再実行できます。カスタムジョブの定義内容のうち[実行時のユーザー]を変更すると,変更後のユーザでスクリプトファイルが実行されます。
なお,JP1/AJS3 - Viewではジョブの定義内容を変更して再実行できますが,uGPS - Viewではジョブ定義の変更を抑止できません。そのため,グリッドジョブの定義内容を変更して再実行すると,グリッドジョブの動作は次の表に示すようになります。
ジョブの種類 |
定義項目 |
区別 |
ジョブの動作 |
---|---|---|---|
グリッド開始ジョブ |
グリッドプロパティ名 |
新規実行 |
変更後のグリッドプロパティ名で実行されます。再実行とは扱われないで,新規のグリッドプロパティとして扱われます。 |
グリッドジョブ管理ホスト名 |
再実行 |
変更後のグリッドジョブ管理ホスト上で実行されます。 |
|
グリッドジョブ前処理プログラム |
再実行 |
変更後のグリッドジョブ前処理プログラムが実行されます。 |
|
グリッド実行ジョブ |
グリッドプロパティ名 |
新規実行 |
変更後のグリッドプロパティ名で実行されます。変更後のグリッドプロパティ名が存在しない場合はエラーとなります。再実行とは扱われないで,新規のグリッドプロパティとして扱われます。 |
グリッドジョブ管理ホスト名 |
再実行 |
変更後のグリッドジョブ管理ホスト上で実行されます。 |
|
グリッドジョブ名 |
再実行 |
変更後のグリッドジョブ名で実行されます。 |
|
先行グリッドジョブ実行結果 |
再実行 |
[グリッド実行定義]ダイアログボックスの[先行グリッドジョブ実行結果]で,[参照する]のチェックを外した場合,先行グリッドジョブの結果を引き継ぐことができなくなります。 |
|
同時実行サブジョブ数 |
再実行 |
変更後の同時実行サブジョブ数が有効になります。 |
|
サブジョブ数しきい値 |
再実行 |
変更後のしきい値が有効になります。 なお,このしきい値は,再実行したサブジョブ数の範囲から判断されます。 |
|
スクリプトファイル名 |
再実行 |
変更後のスクリプトファイルが実行されます。 |
|
環境変数 |
再実行 |
変更後の環境変数がスクリプトファイルに渡されます。 |
|
実行ノード |
再実行 |
先行グリッドジョブが実行済みの場合,この項目を変更すると,先行グリッドジョブの実行ノードと異なる実行ノードでグリッド実行ジョブが実行される可能性があります。 |
|
終了コードしきい値 |
再実行 |
変更後のしきい値が有効になります。 なお,このしきい値は,再実行したサブジョブの終了コードから判断されます。 |
|
保留設定 |
再実行 |
変更後の保留設定が有効になります。 |
|
グリッド終了ジョブ |
グリッドプロパティ名 |
新規実行 |
変更後のグリッドプロパティ名で実行されます。変更後のグリッドプロパティ名が存在しない場合はエラーとなります。 |
グリッドジョブ管理ホスト名 |
再実行 |
変更後のグリッドジョブ管理ホスト上で実行されます。 |
|
グリッドジョブ後処理プログラム |
再実行 |
変更後のグリッドジョブ後処理プログラムが実行されます。 |
|
単体グリッドジョブ |
グリッドプロパティ名 |
新規実行 |
変更後のグリッドプロパティ名で実行されます。再実行とは扱われないで,新規のグリッドプロパティとして扱われます。 |
グリッドジョブ管理ホスト名 |
再実行 |
変更後のグリッドジョブ管理ホスト上で実行されます。 |
|
グリッドジョブ名 |
再実行 |
変更後のグリッドジョブ名で実行されます。 |
|
自動分散の設定 |
再実行 |
変更後の自動分散定義の内容が有効になります。 |
|
グリッド開始処理の設定 |
再実行 |
変更後のグリッド開始処理の設定が有効になります。 |
|
同時実行サブジョブ数 |
再実行 |
変更後の同時実行サブジョブ数が有効になります。 |
|
サブジョブ数しきい値 |
再実行 |
変更後のしきい値が有効になります。 なお,このしきい値は,再実行したサブジョブ数の範囲から判断されます。 |
|
グリッド終了処理実行しきい値 |
再実行 |
変更後のしきい値が有効になります。 なお,このしきい値は,再実行時の再開するジョブ種別の判断にも使用されます。 |
|
スクリプトファイル名 |
再実行 |
変更後のスクリプトファイルが実行されます。 |
|
環境変数 |
再実行 |
変更後の環境変数がスクリプトファイルに渡されます。 |
|
終了コードしきい値 |
再実行 |
変更後のしきい値が有効になります。 なお,このしきい値は,再実行したサブジョブの終了コードから判断されます。 |
|
グリッドジョブ後処理プログラム |
再実行 |
変更後のグリッドジョブ後処理プログラムが実行されます。 |
|
保留設定 |
再実行 |
変更後の保留設定が有効になります。 |