|
シャドウマスタ機能
グリッドコンピューティングシステムにおいてジョブを管理するホスト(マスタホストと呼ばれます)は非常に重要です。このホストが停止すると、バッチジョブシステム全体が機能しなくなるからです。
SGE ではマスタホストをバックアップするシャドウマスタを定義することが可能です。シャドウマスタは常にマスタホストを監視し、マスタホストにあわせて情報を更新します。もし、マスタホストがダウンしたとき、シャドウマスタがマスタホストの機能を引継ぎ、グリッドコンピューティングシステムを管理します。これにより、グリッドコンピューティングシステムの可用性を高めることが可能です。
プライオリティによるキュー制御
キューのプライオリティによって同一ホスト上の他のキューを自動的にサスペンドすることが可能です。これにより高プライオリティキュー使用時は、他のキューをサスペンドし、高プライオリティキュー内のジョブを優先して実行できます。 キュー制御の様子を図
3-1に示します。

図 3-1 プライオリティによるキュー制御
ジョブ再実行
ジョブ実行中のホスト(エグゼキューションホストと呼ばれます)がダウンしたとき、実行中のジョブを他のホストで自動的に再実行できます。このためホスト異常によるジョブ未実行ということが基本的にはなくなるため、ジョブ管理が容易になります。また、システムの可用性を高めることになります。
アレイジョブ
アレイジョブとは 1 つのプログラムのパラメタを変更しながら繰返し実行するジョブのことです。一般的にはパラメトリックスタディジョブと呼ばれます。パラメトリックスタディジョブの概念図を図
3-2 に示します。
アレイジョブの特徴を以下に示します。
従来のバッチジョブシステムではユーザが必要な個数分のジョブを投入する必要がありました。 SGE
ではジョブをサブミットするコマンド(qsub コマンド)を 1 回使用するだけで複数のジョブをジョブアレイとしてサブミット可能です。

従来のバッチジョブシステムではパラメトリックジョブは1ジョブずつ独立して存在します。そのため、パラメトリックジョブ全体に対して、削除、ホールドなどの操作が煩雑でした。
SGE ではジョブアレイを操作するための ID が付加されますので、ジョブアレイ全体に対して操作を行う場合、この
ID を使用することで簡単に行えます。また、ジョブアレイを構成するジョブ(タスクと呼ばれます)にはジョブアレイごとにユニークな
ID が付加されます。個別のタスクを操作する場合は、タスク用の ID を使用します。複数のタスクをまとめて操作できるように
ID の範囲指定も可能です。

図 3-2 パラメトリックスタディジョブ
透過的なリモートコマンド実行
SGE の qtcsh コマンドは tcsh のインタフェースを提供し、ユーザがあらかじめ指定したプログラムが入力されると自動的にバッチジョブシステム内のホストで実行します。
例えば、画像処理などの高い CPU パワーが必要なプログラムを qtcsh コマンドの設定ファイルに定義しておけば、コマンドプロンプトから定義されたコマンドが入力されると SGE が適切なホストを割り当ててコマンドを実行します。ユーザはローカルとリモートの区別を意識することなく作業に専念できます。
qtcsh による処理の流れを図 3-3 に示します。

図 3-3 qtcsh による透過的なリモートコマンド実行
依存関係によるジョブ実行制御
複数のジョブを組み合わせて処理を行う場合、ジョブの実行順序に依存関係を設定すると便利です。例えば図 3-4 に示すような複数の部分画像ファイルを作成し、最終的に
1 つの画像ファイルにまとめる処理の場合、部分画像ファイル作成処理はそれぞれ独立して実行できますが、1 つの画像ファイルにまとめる処理は部分画像の作成が終わった後に実行する必要があります。このような実行制御はジョブの依存関係を設定することで実現できます。
このような処理を一つのジョブで実行することはもちろん可能ですが、処理を分割してジョブとすることにより次の利点が得られます。
エグゼキューションホストの空きが十分にある場合、複数のジョブを同時に実行することができます。1 つのジョブに記述した場合、各処理はシーケンシャルに実行されますので空いているリソースを有効に利用できません。
実行中のホストに障害が発生した場合、再実行処理により他のホストで実行しますが、処理を分割することにより再実行の範囲が小さくなるので、障害回復のオーバヘッドを小さく出来ます。

図 3-4 ジョブ実行の依存関係
シンプルで公平なスケジューリング
多くのバッチジョブシステムで使用されている FIFO(first-in-first-out)方式のスケジューリングでは、先に多量のジョブを投入したユーザが資源を占有してしまうという問題が発生します。
SGE ではこの問題を回避するため Equal-share-scheduling と呼ぶスケジューリング方式を実装しています。このスケジューリング方式では、各ユーザのジョブがなるべく公平に実行されます。そのため他のユーザが大量のジョブを投入していても、後から投入した自分のジョブが長時間待たされることはありません。
なお、SGE/EE(Sun Grid Engine, Enterprise Edition)ではさらに柔軟なスケジューリング機能が利用可能です。弊社では、SGE/EE を使用した構築支援サービスも今後ご提供する予定です。
システム稼動中に構成変更可能
グリッドコンピューティングシステムを止めることなく、ホスト追加、キュー設定などの構成を変更できます。
|