2. コマンド・リファレンス
2.3. スケーラブルなプロセス管理システム (Hydra) コマンド
2.3.6. チェックポイント・リスタートのサポート
インテル® MPI ライブラリーのチェックポイント・リスタート機能は、アプリケーションから透過に設定されて
います。MPI プロセス管理インターフェイスを経由して、チェックポイント・リスタート機能にアクセスできま す。チェックポイント・リスタートのオプションと環境変数は、Hydra プロセス管理でのみ適用されます。デ フォルトのプロセス管理を変更して Hydra プロセス管理を使用するには、I_MPI_PROCESS_MANAGER=hydra を設定します。
注意
チェックポイント・リスタート機能を使用するには、OFA* ネットワーク・モジュールが必要です。
I_MPI_FABRICS 環境変数に ofa を設定するか、-ib オプションを指定することで、OFA ネットワーク・モ ジュールを選択できます。
注意
チェックポイント・リスタート機能を有効にするには、次の設定を行います。
• I_MPI_OFA_DYNAMIC_QPS 環境変数に 1 を設定
• I_MPI_OFA_NUM_RDMA_CONNECTIONS 環境変数に 0 を設定
注意
チェックポイント・リスタート機能を使用するため、Berkeley Lab Checkpoint/Restart* (BLCR) ソフトウェアを インストールします。
グローバルオプション
-ckpoint <switch>
引数
<switch> チェックポイントのスイッチ。
enable | yes | on | 1 起動されたアプリケーション向けにチェックポイント機能を有効にし
ます。
disable | no | off | 0 起動されたアプリケーション向けにチェックポイント機能を無効にし
ます。これは、デフォルト値です。
チェックポイント機能を有効/無効にする場合、このオプションを指定します。無効に設定された場合、ほか のチェックポイントのオプションは無視されます。
-ckpoint-interval <sec>
引数
<sec> 秒単位のチェックポイントの間隔。
タイマー駆動型チェックポイントの機能を有効にするには、このオプションを使用します。「タイマー駆動型 チェックポイント」をご覧ください。<sec> 秒ごとにチェックポイントが作成されます。このオプションが省 略されると、シグナル駆動のチェックポイント機能が使用されます。詳細は、「明示的なシグナル駆動型 チェックポイント」をご覧ください。
-ckpoint-preserve <N>
引数
<N> 保持するチェックポイント・イメージの最大数。デフォルト値は 1 で
す。
チェックポイントのイメージを減らすため、実行中のチェックポイントの最後の <N> チェックポイントを保持 するには、このオプションを使用します。デフォルトでは、最後のチェックポイントのみが保持されます。
-restart
保存されたチェックポイントの 1 つからアプリケーションを再開するには、このオプションを使用します。
-ckpointlib、-ckpoint-prefix および -ckpoint-num オプションが再開に影響します。実行形式のファ イル名はプロセス管理から提供されますが、無視されます。チェックポイントを取得するには再起動したアプ リケーションに許されているため、-restart オプションは -chkpoint やほかのチェックポイントオプショ ンを伴うことはできません。
-ckpoint-num <N>
引数
<N> アプリケーションを再開するチェックポイント・イメージの識別子。
有効な値は、最後のチェックポイントの数と同じかそれ以下の数値で す。デフォルトは、最後のチェックポイント番号です。
このオプションは、アプリケーションを再開中に使用します。チェックポイント番号 <N> (0 からカウント) が、
再開ポイントとして使用されます。最適値を求めるには、-ckpoint-prefixオプションを指定してチェック ポイント・ストレージ・ディレクトリーの設定を調査します。
注意
-ckpoint-preserve オプションで決定されるイメージ数が最大数として保持されます。
チェックポイントが存在しない場合、アプリケーションは起動時にエラーメッセージを出力して中断されます。
デフォルトでは、最後のチェックポイントが選択されます。
ローカルオプション
-ckpointlib <lib>
引数
<lib> チェックポイント・リスタートのシステム・ライブラリー。
blcr Berkeley Lab Checkpoint/Restart* (BLCR) ライブラリー。これは、デ フォルト値です。
チェックポイント・リスタート・システムのライブラリーを選択するには、このオプションを使用します。
Berkeley Lab Checkpoint/Restart* (BLCR) ライブラリーのみがサポートされます。
注意
チェックポイント関数を使用したり、アプリケーションを再開するときに、同じオプションを指定する必要が あります。
-ckpoint-prefix <dir>
引数
<dir> チェックポイントを保存するディレクトリー。デフォルト値は /tmp
です。
チェックポイントを保存するディレクトリーを設定します。デフォルトで、/tmpが使用されます。ディレクト
リー <dir> は書き込み可能でなければいけません。さもないと、プロセス起動中にエラーが発生し、アプリ
ケーションはアボートします。
注意
チェックポイント関数を使用したり、アプリケーションを再開するときに、同じオプションを指定する必要が あります。
-ckpoint-tmp-prefix <dir>
引数
<dir> チェックポイントを一時保存するディレクトリー。デフォルト値は
/tmp です。
一時チェックポイントを保存するディレクトリーを設定します。チェックポイントは、-ckpoint-tmp-prefix から -ckpoint-prefix で指定されたディレクトリーへ移行します。ディレクトリー <dir> は書き込み可能で なければいけません。さもないと、アプリケーション起動中にアボートします。オプションが設定されていない と、一時ストレージは使用されません。
-ckpoint-logfile <file>
チェックポイントのアクティビティーをモニターするには、このオプションを使用します。トレース結果は、
<file> へ出力されます。<file> は書き込み可能でなければいけません。さもないと、アプリケーション起動 中にアボートします。これは、オプション機能です。
環境変数
I_MPI_CKPOINT
構文
I_MPI_CKPOINT=<switch>
引数
<switch> チェックポイントのスイッチ。
enable | yes | on | 1 起動されたアプリケーション向けにチェックポイント機能を有効にし
ます。
disable | no | off | 0 起動されたアプリケーション向けにチェックポイント機能を無効にし
ます。これは、デフォルト値です。
説明
チェックポイントの機能を切り替えるには、この環境変数を使用します。このオプションは、-ckpoint オプ ションと同じ効果があります。–ckpointオプションを指定すると、Hydra プロセス管理はI_MPI_CKPOINT 環境変数を設定します (もし設定されていなければ)。
I_MPI_CKPOINTLIB
構文
I_MPI_CKPOINTLIB=<lib>
引数
<lib> チェックポイント・リスタートのシステム・ライブラリー。
blcr Berkeley Lab Checkpoint/Restart* (BLCR) ライブラリー。これは、デ フォルト値です。
説明
チェックポイント・リスタート・システムのライブラリーを選択するには、この環境変数を使用します。この オプションは、-ckpointlib オプションと同じ効果があります。
I_MPI_CKPOINT_PREFIX
構文
I_MPI_CKPOINT_PREFIX=<dir>
引数
<dir> チェックポイントを保存するディレクトリー。デフォルト値は/tmp
です。
説明
チェックポイントを保存するディレクトリーを設定します。このオプションは、-ckpoint-prefixオプショ ンと同じ効果があります。
I_MPI_CKPOINT_TMP_PREFIX
構文
I_MPI_CKPOINT_TMP_PREFIX=<dir>
引数
<dir> チェックポイントを一時保存するディレクトリー。
説明
-ckpoint-prefix が永続的なストレージを示し、この環境変数を使用して一時的なチェックポイントのスト
レージを示します。このオプションは、-ckpoint-tmp-prefixオプションと同じ効果があります。
I_MPI_CKPOINT_INTERVAL
構文
I_MPI_CKPOINT_INTERVAL=<sec>
引数
<sec> 秒単位のチェックポイントの間隔。
説明
タイマー駆動型チェックポイントの機能を切り替えるには、この環境変数を使用します。このオプションは、
-ckpoint-interval オプションと同じ効果があります。
I_MPI_CKPOINT_PRESERVE
構文
I_MPI_CKPOINT_PRESERVE=<N>
引数
<N> 保持するチェックポイント・イメージの最大数。デフォルト値は 1
です。
説明
チェックポイントのイメージを減らすため、実行中のチェックポイントの最後の <N> チェックポイントを保持 するには、このオプションを使用します。このオプションは、-ckpoint-preserve オプションと同じ効果が あります。
I_MPI_CKPOINT_LOGFILE
構文
I_MPI_CKPOINT_LOGFILE=<file>
引数
<file> チェックポイントのアクティビティーを保存するトレースファイル。
説明
チェックポイントのアクティビティーを監視するには、このオプションを使用します。トレース結果は、
<file> へ出力されます。このオプションは、-ckpoint-logfile オプションと同じ効果があります。
I_MPI_CKPOINT_NUM
構文
I_MPI_CKPOINT_NUM=<N>
引数
<N> アプリケーションを再開するチェックポイントのイメージ数。
説明
このオプションは、アプリケーションを再開中に使用します。このオプションは、-ckpoint-num オプション と同じ効果があります。
I_MPI_RESTART
構文
I_MPI_RESTART=<switch>
引数
<switch> 再開スイッチ。
enable | yes | on | 1 保存されているチェックポイントの 1 つからアプリケーションを再開 する機能を有効にします。
disable | no | off | 0 アプリケーションの再開を無効にします。これは、デフォルト値で
す。
説明
保存されたチェックポイントの 1 つからアプリケーションを再開するには、この環境変数を使用します。この オプションは、–restart オプションと同じ効果があります。
MPI アプリケーションの実行
チェックポイント・リスタートの機能は、Hydra プロセスランチャー (mpiexec.hydra) で利用できます。ラ ンチャーは、チェックポイントを取得するため 2 つの互いに排他的な方式を提供します。
• 時間で
• 明示的なシグナルで
チェックポイントを一時的または永続的に保存するディレクトリーのパスを指定できます。
タイマー駆動型チェックポイント
次の例では、3600 秒 (=1 時間) ごとにチェックポイントが取得されます。チェックポイントは、ckptdirと呼 ばれるディレクトリーに保存されます。各ノードは、ノード番号とチェックポイント番号からなる 1 つの チェックポイントを生成します。
user@head $ mpiexec.hydra -ckpoint on -ckpoint-prefix /home/user/ckptdir - ckpoint-interval 3600 -ckpointlib blcr -n 32 -f hosts /home/user/myapp 明示的なシグナル駆動型チェックポイント
次の例では、アプリケーションが起動されチェックポイントを取得するためアプリケーションに明示的なシグ
ナル (SIGUSR1) が送信されます。チェックポイントは、ckptdir と呼ばれるディレクトリーに保存されます。