Sun N1 Grid Engine 6.1 ユーザーズガイド

ジョブチェックポイント設定の使用

この節では、ユーザーレベルとカーネルレベルの 2 種類のジョブチェックポイント設定について検討します。

ユーザーレベルのチェックポイント設定

多くのアプリケーションプログラム、特にかなりの CPU 時間を消費するプログラムでは、フォールトトレランスを高めるためにチェックポイント設定および再起動メカニズムが使用されます。処理データのステータス情報と重要部分は、アルゴリズムのある段階で 1 つ以上のファイルに繰り返し書き込まれます。アプリケーションが中止された場合、これらの再開ファイルを処理してあとで再起動することができます。ファイルは、チェックポイントの直前の状況に相当する一貫性のある状態に戻ります。ほとんどの場合、ユーザーは再開ファイルを適切な場所に移動する必要があるので、この種のチェックポイント設定はユーザーレベルの チェックポイント設定と呼ばれます。

統合されたユーザーレベル チェックポイント設定を持たないアプリケーションプログラムは、チェックポイント設定ライブラリを使用できます。チェックポイント設定ライブラリは、ハードウェアベンダーまたはパブリックドメインによって提供される場合があります。University of Wisconsin の Condor プロジェクトはこの一例です。アプリケーションをこのライブラリと再リンクすることによって、チェックポイント設定メカニズムは、ソースコードを変更せずにアプリケーションにインストールできます。

カーネルレベルのチェックポイント設定

オペレーティングシステムによっては、オペレーティングシステムのカーネルの内部でチェックポイント設定をサポートしているものもあります。この場合、アプリケーションプログラムでの準備やアプリケーションの再リンクは必要ありません。カーネルレベルのチェックポイント設定は、通常 1 つのプロセスやプロセス階層全体に適用されます。それぞれのプロセスの階層にチェックポイントを設定して、いつでも再起動することができます。通常、チェックポイントの開始にはユーザーコマンドと C ライブラリインタフェースの両方が使用できます。

Grid Engine システムは、オペレーティングシステムによるチェックポイント設定も適宜サポートしています。現在サポート対象のカーネルレベルのチェックポイント設定機能については、N1 Grid Engine 6.1 ソフトウェアのリリースノートを参照してください。

チェックポイント設定ジョブの移行

再起動機能によって実行済みの作業を繰り返す必要はほとんどないので、チェックポイント設定ジョブはいつでも割り込みできます。この機能は、Grid Engine システムで移行および動的負荷均衡メカニズムを構築するために使用されます。要求があれば、チェックポイント設定ジョブはオンデマンドで中止されます。ジョブは Grid Engine システムのほかのマシンに移行されるので、クラスタ内の負荷は動的に平均化されます。チェックポイント設定ジョブが中止され移行される理由は、次のとおりです。

ジョブを移行すると、sge_qmaster に戻ります。別の適切なキューを使用できる場合、ジョブは続けてそのキューに割り振られます。この場合、qstat の出力は R をステータスとして示します。

チェックポイント設定ジョブスクリプトの作成

カーネルレベル チェックポイント設定のシェルスクリプトは、通常のシェルスクリプトと同じです。

ユーザーレベルのチェックポイント設定ジョブのシェルスクリプトは、再起動プロセスを適切に処理できるところだけが通常のバッチスクリプトと異なります。環境変数 RESTARTED は、再開されたチェックポイント設定ジョブに対して設定されます。初めて呼び出す場合だけ実行する必要があるジョブ スクリプトのセクションをスキップするために、この変数を使用してください。

例 4–3 に、透過的なチェックポイント設定ジョブのスクリプト例を示します。


例 4–3 チェックポイント設定ジョブスクリプトの例


#!/bin/sh
# Grid Engine の /bin/sh を強制実行します。
#$ -S /bin/sh

# 再起動したか移行したかをテストします。
if [ $RESTARTED = 0 ]; then
     # 0 = not restarted
     # Parts to be executed only during the first
     # start go in here
     set_up_grid
fi

# チェックポイント実行可能ファイルの起動
fem
#スクリプトファイルの終了

ユーザーレベルのチェックポイント設定ジョブが移行されると、ジョブスクリプトは最初から再開されます。シェルスクリプトのプログラムの流れをジョブが割り込まれた場所に導くのはユーザーの役目です。これにより、複数回実行する必要があるスクリプト内の行がスキップされます。


注 –

カーネルレベルのチェックポイント設定ジョブはいつでも割り込みできます。周りのシェルスクリプトは、最後にチェックポイントが設定された正確な場所から再開されます。したがって、RESTARTED 環境変数は、カーネルレベルのチェックポイント設定ジョブには影響しません。


コマンド行からのチェックポイント設定ジョブの発行、監視、または削除

適切なオプションを指定して次のコマンドを入力してください。


# qsub options arguments

チェックポイント設定ジョブの発行は、qsub -ckpt および qsub -c コマンドを除いて通常のバッチスクリプト同様に行われます。これらのコマンドには、チェックポイント設定メカニズムが必要です。これらのコマンドは、ジョブに対してチェックポイントを設定しなければならない場面も定義します。

-ckpt オプションでは、使用するチェックポイント設定環境の名前を示す引数が使用されます。『Sun N1 Grid Engine 6.1 管理ガイド』「チェックポイント設定環境の構成」を参照してください。

-c オプションは必要ありません。-c でも 1 つの引数が使用されます。チェックポイント設定環境構成の when パラメータの定義を無効にする場合は、-c オプションを使用してください。詳細は、checkpoint(5) のマニュアルページを参照してください。

-c オプションの引数は、次の 1 文字のいずれか、またはこれらの組み合わせです。引数は時間値の場合もあります。

チェックポイント設定ジョブの監視は、通常のジョブの監視とは異なります。チェックポイント設定ジョブは適宜移行できます。したがって、チェックポイント設定ジョブは 1 つのキューと結合しているわけではありません。ただし、一意のジョブ識別番号とジョブ名は変わりません。

チェックポイント設定ジョブの削除は、「コマンド行からのジョブの監視と制御」の説明どおりに行われます。

QMON によるチェックポイント設定ジョブの発行

QMON によるチェックポイント設定ジョブの発行は通常のバッチジョブの発行と同じで、さらに適切なチェックポイント設定環境も指定できます。QMON による高度なジョブの発行」の説明どおり、「Submit Job」ダイアログボックスはジョブと関連付けられるチェックポイント設定環境のフィールドを提供します。フィールド横のボタンをクリックして、次の選択ダイアログボックスを開きます。

使用可能なチェックポイントオブジェクトのリストから適切なチェックポイント環境を選択できます。インストールされているチェックポイント設定環境のプロパティーについては、システム管理者に問い合わせてください。詳細は、『Sun N1 Grid Engine 6.1 管理ガイド』「チェックポイント設定環境の構成」を参照してください。

チェックポイント設定のためのファイルシステム要件

ユーザーレベルのチェックポイントまたはチェックポイント設定ライブラリに基づくカーネルレベルのチェックポイントが書き込まれるときには、チェックポイントを設定するプロセスまたはジョブが占める仮想メモリのイメージ全体を保存する必要があります。このためには十分なディスク容量が必要です。チェックポイント設定環境構成パラメータの ckpt_dir が設定されている場合、チェックポイント情報は ckpt_dir の下のジョブ固有の場所に保存されます。ckpt_dir NONE に設定されている場合、チェックポイント設定ジョブが開始されたディレクトリが使用されます。チェックポイント設定環境の構成については、checkpoint(5) のマニュアルページを参照してください。


注 –

ckpt_dirNONE に設定されている場合、チェックポイント設定ジョブは qsub -cwd スクリプトで開始する必要があります。


ジョブの移行と再開を正常に行うには、すべてのマシンでチェックポイント設定ファイルと再開ファイルが認識されていなければなりません。ファイルシステムの編成にファイル可視性が必要なため、NFS か類似のファイルシステムである必要があります。ご自分のサイトがこの要件を満たしているかどうか、クラスタ管理者に問い合わせてください。

サイトで NFS を実行していない場合は、シェルスクリプトの最初で再開ファイルを明示的に転送することができます。たとえば、ユーザーレベルのチェックポイント設定ジョブの場合は rcp または ftp を使用できます。