ユーザーが直接入力を行い、ジョブの結果に影響を与える場合は、 バッチジョブの代わりに対話型ジョブを発行すると便利です。このような場面は、X ウィンドウアプリケーションや、さらに処理を進めるためにユーザーが結果をすぐに解釈しなければいけないタスクなどで一般的に見られます。
対話型ジョブは、次の 3 つの方法で作成できます。
qlogin – Grid Engine ソフトウェアが選択したホスト上で開始される telnet のようなセッション。
qrsh – 標準的な UNIX rsh 機能と同じ。コマンドは、Grid Engine システムが選択したホスト上でリモート実行されます。コマンドが指定されていない場合は、リモート rlogin セッションがリモートホストで開始されます。
qsh – ジョブを実行しているマシンから表示される xterm。表示は、ユーザーの指定または DISPLAY 環境変数の設定に従って設定されます。DISPLAY 変数を設定せず、表示先が定義されていない場合、Grid Engine システムは xterm をジョブが発行された元のホストの X サーバーの 0.0 画面に送ります。
正しい機能のために、すべての機能で Grid Engine システムのクラスタパラメータを正しく構成してください。また、正しい xterm 実行パスを qsh に対して定義してください。この種のジョブでは、対話型キューを使用しなければなりません。クラスタで対話型ジョブを実行できる体制が整っているかどうかについては、システム管理者にお問い合わせください。
対話型ジョブのデフォルト処理は、バッチジョブの処理とは異なります。発行時に実行できなかった場合、対話型ジョブはキューには入れられません。ジョブがキューに入れられないということは、ジョブの発行時に対話型ジョブを振り分ける適切なリソースが十分なかったということです。クラスタが現在ビジー状態になっている場合は、ユーザーに通知が行われます。
このデフォルト動作は、qsh、 qlogin、および qrsh の -now no オプションで変更できます。このオプションを使用すると、対話型ジョブはバッチジョブのようにキューに入れられます。また、-now yes オプションを使用して、qsub で発行されたバッチジョブを対話型ジョブのように処理することもできます。この場合のバッチジョブはすぐに実行のために振り分けられるか、拒否されます。
対話型ジョブは、INTERACTIVE タイプのキュー内でのみ実行されます。詳細は、『Sun N1 Grid Engine 6.1 管理ガイド』の「キューの構成」を参照してください。
次の節では、qlogin と qsh 機能の使用方法について説明します。qrsh コマンドは、「透過的なリモート実行」のより広い文脈で説明します。
QMON から発行できる対話型ジョブは、Grid Engine システムが選択したホストで xterm を発行するジョブだけです。
「Interactive」アイコンが表示されるまで、「Submit Job」ダイアログボックスの右側の「Submit」ボタンの上にあるボタンをクリックします。これにより、対話型ジョブを発行するための「Submit Job」ダイアログボックスの準備が整えられます。図 3–8 と図 3–9 を参照してください。
ダイアログボックスの選択オプションの意味と使用方法は、「バッチジョブの発行」のバッチジョブの説明と同じです。違いは、対話型ジョブには適用されない入力フィールドがグレー表示になっていることです。
qsh は、qsub と非常に似ています。qsh は、いくつかの qsub オプション、および呼び出される xterm の表示を指示する追加オプション -display をサポートしています。詳細は、 qsub(1) のマニュアルページを参照してください。
qsh で対話型ジョブを発行するには、次のようなコマンドを入力します。
% qsh -l arch=solaris64 |
このコマンドは、使用可能な任意の Sun Solaris 64 ビットオペレーティングシステムのホストで xterm を開始します。
端末または端末エミュレーションで qlogin コマンドを使用して、Grid Engine システムの制御下で対話セッションを開始します。
qlogin で対話型ジョブを発行するには、次のようなコマンドを入力します。
% qlogin -l star-cd=1,h_cpu=6:0:0 |
このコマンドは、負荷の少ないホストを特定します。ホストには、有効な Star-CD ライセンスがあります。また、ホストには、最低 6 時間のハード CPU 時間制限を持つキューが 1 つ以上あります。
Grid Engine システムによって使用されるように設定されているリモートログイン機能によっては、ログインプロンプトでユーザー名、パスワード、またはこの両方を入力しなければならない場合があります。