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

リソース要件の定義

ここまでの例では、発行オプションはジョブが実行されるホストに対するリソース要件を表していませんでした。Grid Engine システムは、このような場合のジョブはどのホストで実行してもよいとみなします。しかし、実際には、ほとんどのジョブで正常終了のために、実行ホストに関する前提条件が満たす必要があります。この前提条件には、十分な使用可能なメモリー、インストールが必要なソフトウェア、または特定のオペレーティングシステムアーキテクチャーなどがあります。また、クラスタ 管理は通常、クラスタ内のマシンの使用に制限を加えます。たとえば、ジョブが消費できる CPU 時間はしばしば制限されます。

Grid Engine システムでは、クラスタの装置や使用ポリシーの正確な知識を持たなくても、ジョブに適したホストを見つけることができます。ユーザーはジョブの要件を指定し、適切で負荷が少ないホストの検出作業を Grid Engine システムに管理させます。

リソース要件は、「要求可能な属性」で説明されている要求可能な属性によって指定します。 QMON を使用すると、ジョブの要件を指定するのに便利です。「Requested Resources」ダイアログボックスには、現在実行可能な「Available Resource」リストの属性だけが表示されます。「Requested Resources」ダイアログボックスを開くには、「Submit Job」ダイアログボックスの「Request Resources」をクリックします。例については、図 3–7 を参照してください。

図 3–7 「Requested Resources」ダイアログボックス

属性をダブルクリックすると、その属性はジョブの「Hard Resources」または「Soft Resources」に追加されます。True に設定される BOOLEAN 属性以外の属性に値を入力するためのダイアログボックスが表示されます。詳細は、「Grid Engine システムによるリソースの割り当て方法」を参照してください。

図 3–7 に、有効な permas ライセンスを持ち 750M バイト以上のメモリーを備えた solaris64 ホストを必要とするジョブのリソースプロファイルを示します。この指定を満たすキューが複数見つかった場合は、定義されているソフトリソース要件が考慮されます。ハードとソフト要件を満たすキューが見つからなかった場合は、ハード要件を満たすキューが適切なものとみなされます。


注 –

複数のキューが 1 つのジョブに適している場合のみ、スケジューラ構成の queue_sort_method パラメータによってジョブの開始場所が決まります。詳細は、sched_conf (5) のマニュアルページを参照してください。


整数である属性 permas は、グローバルリソース属性の管理者向け拡張属性です。文字列である属性 arch は、ホストリソース属性です。メモリーの属性 h_vmem は、キューリソース属性です。

qsub コマンド行からも、これと同じリソース要件プロファイルを次のように発行できます。


% qsub -l arch=solaris64,h_vmem=750M,permas=1 \
	permas.sh

最初の -l オプションの前の暗黙的な -hard スイッチはスキップされます。

750M バイトを表す 750M は、Grid Engine システムの量を表す構文の例です。メモリー消費が必要な属性に対しては、10 進数の整数、10 進数の浮動小数、8 進数の整数、および 16 進数の整数を指定できます。これらの数には次の乗数を加える必要があります。

8 進数の定数は、最初が 0 で次が 0 から 7 の数字でのみ指定されます。16 進数を指定する場合は、数の前に 0x を付けてください。また、0 から 9、a から f、A から F を使用します。乗数が使用されない場合、値はバイトとしてカウントするとみなされます。10 進数の浮動小数を使用する場合、結果は整数値に切り上げられます。

時間制限を課す属性の時間値は、時間単位、分単位、秒単位、またはこれらを組み合わせて指定することができます。時間、分、秒は、コロンで区切られた 10 進数で指定されます。3:5:11 という時間は 11111 秒に変換されます。時間、分または秒の指定が 0 の場合、コロンが残っていれば指定をしなくても構いません。よって、:5: という値は 5 分と解釈されます。 図 3–7 に示されている「Requested Resources」ダイアログボックスの形式は拡張形式で、QMON 内でのみ有効です。

Grid Engine システムによるリソースの割り当て方法

    前の節で示されているように、Grid Engine ソフトウェアがどのようにリソース要求を処理し、割り当てているのかを理解することは大切です。Grid Engine ソフトウェアのリソース割り当てアルゴリズムの概略は、次のようになります。

  1. すべてのデフォルト要求ファイルを読み込み、構文解析します。詳細は、「デフォルト要求ファイル」を参照してください。

  2. 組み込みオプションのスクリプトファイルを処理します。詳細は、「有効なコメント」を参照してください。

  3. ジョブの発行時には、スクリプトファイル内の位置に関わらず、すべてのスクリプト組み込みオプションを読み取ります。

  4. コマンド行からすべての要求を読み取り、構文解析します。

    すべての qsub 要求が収集されるとすぐに、ハード要件とソフト要求が別々に処理されます。まず、ハード要求が処理されます。要求は、次の優先順位で評価されます。

  1. スクリプトまたはデフォルト要求ファイルの左から右

  2. スクリプトまたはデフォルト要求ファイルの上から下

  3. コマンド行の左から右

言い換えると、コマンド行を使用して組み込みフラグを無効にすることができます。

ハードとして必要なリソースが割り当てられます。要求が有効でない場合、発行は拒否されます。1 つ以上の要求を発行時に満足できない場合、ジョブはスプールされ、後で実行するように再スケジューリングされます。たとえば、要求されたキューがビジーの場合、要求は満たされません。すべてのハード要求が満たされると、要求は割り当てられジョブを実行できます。

ソフトとして必要なリソースがチェックされます。これらの要求の一部またはすべてを満足できない場合もジョブは実行できます。ハード要求を満たす複数のキューがソフトリソースリストの一部を提供している場合、Grid Engine ソフトウェアはもっとも多くのソフト要求を提供しているキューを選択します。

ジョブが開始され、割り当てられたリソースが使用されます。

引数リストオプション、組み込みオプション、ハードおよびソフト要求が互いにどのような影響し合うのかを実際に試すとよいでしょう。hostname または date などの UNIX コマンドを実行する小さなテストスクリプトファイルで実験することができます。