Top > HPCTテクニカルセンター > UGEコマンドリファレンス qsub

NAME

qsub   -  submit a batch job to Univa Grid Engine.
qsh    -  submit an interactive X-windows session to Univa Grid Engine.
qlogin -  submit an interactive login session to Univa Grid Engine.
qrsh   -  submit an interactive rsh session to Univa Grid Engine.
qalter -  modify a pending or running batch job of Univa Grid Engine.
qresub -  submit a copy of an existing Univa Grid Engine job.

SYNTAX

qsub [ options ] [ command [ command_args ] | -- [ command_args ]]

qsh [ options ] [ -- xterm_args ]

qlogin [ options ]

qrsh [ options ] [ command [ command_args ]]

qalter [ options ] wc_job_range_list [ -- [ command_args ]]

qalter [ options ] -u user_list | -uall [ -- [ command_args ]]

qresub [ options ] job_id_list

qsub はバッチジョブを Univa Grid Engine に送信します。Univa Grid Engine は、単一ノードまたは複数ノードのジョブをサポートします。コマンドは、バイナリまたは、シェル(sh(1)やcsh(1)など)を使用してジョブが実行するコマンドが含まれたスクリプトへのパスにすることができます(以下の -b オプション参照)。コマンドへの引数は、qsub へのcommand_args として与えられます。コマンドがスクリプトとして処理される場合、スクリプトにフラグを埋め込むことができます。スクリプト行の最初の2文字が '#$'と一致するか、または後述の -C オプションで定義された接頭辞文字列と等しい場合、その行は組み込みコマンドフラグのために解析されます。

 

qsh は、Univa Grid Engine にインタラクティブな X-windows セッションを送信します。実行中のマシンから xterm(1)が表示され、DISPLAY 環境変数で指定された X サーバーまたは -display qsh オプションで指定された X サーバーが表示されます。実行可能なリソースがない場合、対話式ジョブはスプールされません。それらは、実行のために適切なマシンに即時にディスパッチされるか、またはジョブを実行する適切なリソースが使用できないことを qsh がジョブをサブミットするユーザーに通知されます。 xterm_args は xterm(1)実行可能ファイルに渡されます。ただし、-e および -ls xterm オプションはqsh では機能しません。

 

qlogin は、対話式ジョブをキューイング・システムに送信する点で qsh と似ています。X ディスプレイで xterm(1)ウィンドウを開きませんが、現在の端末をユーザー I/O に使用します。通常、qlogin は、標準のクライアント側およびサーバ側のコマンドを使用して、リモートホストとの telnet(1)接続を確立します。これらのコマンドは、sge_conf のグローバルまたはローカル設定のパラメータにより、サーバー側のqlogin_daemon(Univa Grid Engine の telnetd、そうでない場合は /usr/sbin/in.telnetd)、クライアント側のqlogin_command(Univa Grid Engine telnet、そうでない場合は、/usr/bin/telnet)を設定することができます。クライアント側のコマンドは、接続先のリモートホスト名とポート番号で自動的にパラメータ化され、その結果、次のような呼び出しが行われます。

 

/usr/bin/telnet my_exec_host 2442

 

例えば、qlogin は、qrsh と全く同じように呼び出され、そのジョブはインタラクティブキューでのみ実行できます。qlogin 上は、sge_execd が root アカウントで実行されている場合にのみ実行可能です。

 

qrsh は、キューイングシステムに対話式ジョブを送信する点で qlogin と似ています。現在の端末をユーザ I/O に使用します。通常、qrsh はリモートホストとの rsh(1)接続を確立します。 qrsh にコマンドが指定されていない場合、rlogin(1)セッションが確立されます。 SHELL、HOME、TERM、LOGNAME、TZ、HZ、PATH、LANG を加えたすべての SGE環境変数を継承します。使用されるサーバー側コマンドは、sge_conf(5)のグローバルおよびローカル構成設定の rsh_daemon および rlogin_daemon パラメーターを使用して構成できます。 Univa Grid Engine rshd または rlogind は、パラメータが設定されていない場合に使用されます。パラメータが設定されている場合は、/usr/sbin/in.rshd または /usr/sbin/in.rlogind のように設定する必要があります。クライアント側では、sge_conf(5)のグローバルおよびローカル構成設定で rsh_command および rlogin_command パラメータを設定できます。これらが設定されていない場合、Univa Grid Engin eとともに提供される特別な Univa Grid Engine rsh(1)および rlogin(1)バイナリが使用されます。クラスタ構成パラメータを使用して、オペレーティングシステムに付属している ssh または rsh(1)および rlogin(1)機能などのメカニズムを統合します。

 

qrsh ジョブは、-now no が使用されていない限り、インタラクティブキューでのみ実行できます(下記参照)。 sge_execd(8)がrootアカウントで実行されている場合にのみ実行することもできます。

 

qrshは、特定のコマンドシェルを提供する対話型ツールと統合するための追加の便利な機能を提供します。 qrshが呼び出されたときに環境変数 QRSH_WRAPPER が設定されている場合、QRSH_WRAPPER が指すコマンド・インタープリターが実行され、ユーザー・ログイン・シェルまたは qrsh コマンド行で指定されたシェルのかわりにqrshコマンドが実行されます。オプション-cwd、-v、-V、および -display はバッチジョブにのみ適用されます。

 

qalterを使用すると、保留中のジョブの属性を変更できます。実行中のタスクと保留中のタスクが混在するアレイジョブ(下記の-tオプションを参照)では、qalter による変更は保留中のタスクにのみ影響します。 qalter は、スクリプトファイルに埋め込みフラグとして定義されているものを含め、ジョブの特性の大部分を変更することができます(以下の OPTIONS セクションの対応するステートメントを参照)。ジョブスクリプトなどの一部のサブミットオプションは、qalter で変更することはできません。

 

qresub を使用すると、既存の保留中または実行中のジョブのコピーとしてジョブを作成できます。コピーされたジョブは、コピーされたジョブとまったく同じ属性を持ちますが、新しいジョブ ID とクリアされたホールド状態があります。 qresub でサポートされているコピージョブの唯一の変更は、-hオプションを使用して新しいホールド状態を割り当てることです。このオプションを使用すると、ジョブを最初にコピーした後、qalterを使用してその属性を変更できます。

 

manager だけが、別のユーザーが submit したジョブで qresubを使用できます。通常のユーザーは、自分のジョブでしか qresub を使用できません。

 

qsub、qsh、qrsh、および qlogin の場合、管理者とユーザーは、デフォルトの要求ファイル(sge_request(5)を参照)を定義することができます。デフォルト要求ファイルのオプションが qsub と qlogin によって認識され、qsh では認識されない場合、qshが呼び出されると、オプションは暗黙的に無視されます。したがって、qsub と qsh の両方の共有デフォルト要求ファイルを維持することができます。

 

クラスタ全体のデフォルト要求ファイルは、$SGE_ROOT/$SGE_CELL/common/sge_request に置くことができます。ユーザーのプライベートなデフォルト要求ファイルは、$ HOME / .sge_requestと$ cwd / .sge_request で処理されます。作業ディレクトリのローカルのデフォルト要求ファイルは、最も高い優先順位を持ち、次にホームディレクトリにファイルがあり、次にクラスタグローバルファイルになります。オプションの引数、埋め込みスクリプトのフラグ、およびデフォルトの要求ファイルのオプションは、次の順序で処理されます。

 

              left to right in the script line,

              left to right in the default request files,

              from top to bottom of the script file (qsub only),

              from top to bottom of default request files,

              from left to right of the command line.

 

つまり、コマンドラインを使用して、埋め込みフラグとデフォルトの要求設定を上書きすることができます。ただし、埋め込みフラグはデフォルト設定を上書きします。

 

-clear オプションを使用すると、デフォルト要求ファイル、埋め込みスクリプトフラグ、またはコマンドラインオプションでいつでも以前の設定を破棄できます。ただし、qalter では使用できません。

 

以下で説明するオプションは、hard または soft のどちらでも要求できます。デフォルトでは、すべての要求は、-soft オプション(以下を参照)が発生するまで hard とみなされます。hard/soft の状態は、その相方が再び遭遇するまで有効である。ジョブに対するすべての hard 要求が満たされない場合、ジョブはスケジュールされません。現時点では実行できないジョブはスプールされたままです。

【オプション】

-@ optionfile

qsub、qrsh、qsh、またはqloginにoptionfileに含まれるオプションを使用させます。示されたファイルにはすべての有効なオプションが含まれている場合があります。コメント行は「#」記号で始まらなければなりません。

-a date_time

ジョブが実行可能となる時刻を指定します。時刻のフォーマットは、[[CC]]YY]MMDDhhmm[.SS] です。

-b y[es]|n[o]

command がバイナリかスクリプトかを明示的に示すことができます。-b が "y" の値を取る場合には、command は、バイナリまたはスクリプトが可能です。command は、ジョブ投入ホストではアクセスできない可能性があります。ジョブ投入ホストから実行ホストに対して、コマンドのパス以外には送信されません。 -b が "n" の値を取る場合には、command は、スクリプトである必要がありますし、それは、スクリプトとして扱われます。スクリプトファイルは、ジョブ投入ノードでアクセスできる必要があります。スクリプトファイルは、ジョブ実行ホストに転送されます。

qsub は、-b n がデフォルトです。スクリプトとして command の投入をする場合 ( -b n ) には、性能に深刻なインパクトがあることに注意してください。特に実行時間の短いジョブや大きなスクリプトファイルの場合は、特に性能に大きな影響があります。スクリプトでジョブを投入すると、ジョブ投入の過程でいくつかの操作が入ります。

(1) ジョブスクリプトファイルがジョブ投入ホストで解析されます。

(2) ジョブ投入ホストから qmaster へ スクリプトファイルが転送されます。

(3) スクリプトファイルがqmaster でスプールされます。

(4) スクリプトファイルはジョブ実行時にジョブ実行ホストに転送されます。

(5) スクリプトファイルは、ジョブ実行ホストにスプールされます。

(6) ジョブが終了すると、qmaster とジョブ実行ホストのスプールから削除されます。

NFSなどでジョブスクリプトがジョブ実行ホストからアクセス可能である場合、バイナリ投入( -b y )で投入するのが、より良い選択です。

-binding [ binding_instance ] binding_strategy

※別途説明します。

-cwd

カレント・ワーク・ディレクトリからジョブを実行します。

-e [[hostname]:]path,...

​標準エラー出力の定義に使用します。path が絶対パスで指定されている場合は、ジョブのエラーパス属性は、hostname を伴った path に設定されます。相対パスで指定されている場合は、-cwd オプションで指定されたカレント・ワーク・ディレクトリか、ホームディレクトリのいずれかからパスが展開されます。hostname が存在する場合、指定されたホスト上でジョブが実行されている場合にのみ、対応する位置に標準エラーが出力されます。

デフォルトでは、インタラクティブなジョブに対するファイル名は/dev/nullです。バッチジョブは、job_name.ejob_id、アレイジョブは、job_name.ejob_id.task_id となります。

path がディレクトリの場合には、そのディレクトリにデフォルトのファイル名で標準エラーが出力されます。パス名に環境変数が含まれている場合には、ジョブ実行時にその値が展開され、標準エラーの出力パスを構成します。現在、以下の環境変数がサポートされています。

$HOME       home directory on execution machine

$USER       user ID of job owner

$JOB_ID     current job ID

$JOB_NAME   current job name (see -N option)

$HOSTNAME   name of the execution host

$TASK_ID    array job task index numbe

-h | -h {u|s|o|n|U|O|S}...

ジョブをホールドのリストに配置します。ジョブを実行可能な状態にするためには、qalter コマンドを使用します。qalter -h U job_id などとすると、ジョブが実行可能となります。

-hard

※別途説明します。

-j y[es]|n[o]

標準エラー出力を標準出力のファイルにマージするかどうかを指定します。-j y と -e オプションが両方ともある場合には、エラーパス属性が無視されます。

-jc jc_name

※別途説明します。

-l resource=value,...

特定のリソース要求リストに適合したキューでジョブを実行します。complex は、利用可能なリソースのリストと関連する値を取得できます。リソースの要求を -soft オプションと同時に行うならば、消費可能な値をレンジで指定できます。1つのコマンドラインで複数の -l オプションを使用することができます。また、同じコマンドラインで、-l オプションを soft にも hard にも要求することができます。

-mbind

※別途説明します。

-N name

ジョブの名前を指定します。-N オプションが無ければ、ジョブの名前は、ジョブスクリプト名となります。標準入力からジョブが投入された場合は、"STDIN" がジョブの名前となります。

-o [[hostname]:]path,...

標準出力の定義に使用します。デフォルトでは、インタラクティブなジョブに対するファイル名は/dev/nullです。バッチジョブは、job_name.ojob_id、アレイジョブは、job_name.ojob_id.task_id となります。path についての説明は、-e オプションを参照してください。

-pe parallel_environment n[-[m]]|[-]m,...

Parallel programming environment (PE) をインスタンス化します。PEについての詳細は、 sge_types(1) をご覧ください。

-q wc_queue_list

このジョブを実行するために使用される可能性のあるクラスタキュー、キュードメイン、またはキューインスタンスのリストを定義または再定義します。sge_types(1)のwc_queue_listの説明をご覧ください。このパラメータは、リソース要求のすべてのプロパティを持ち、上記の -l オプションから派生した要件とマージされます。

-R y[es]|n[o]

このジョブの予約を行う必要があるかどうかを示します。即時のジョブ、つまり -now yes オプションを使用して送信されたジョブの予約は決して行われません。予約要求にかかわらず、sched_conf(5)のmax_reservation を使用してジョブ予約を無効にすることができ、一定数の優先度の高いジョブに限定される可能性があります。

-r y[es]|n[o]

ジョブを再実行するかどうかを指定します。-r の値が 'yes' であって、ジョブが実行されているノードがクラッシュしてジョブがアボートされたような場合であれば、ジョブは再実行されます。-r の値が 'no' であれば、どのような状況でもジョブは再実行されません。

-soft

※別途説明します。

-sync

※別途説明します。

-S [[hostname]:]pathname,...

シェルを指定します。1つのシェルのパスのみ指定可能です。

-V

qsub ユーティリティ内でアクティブなすべての環境変数をジョブのコンテキストにエクスポートすることを指定します。-v、-Vまたは-displayで指定されたDISPLAY変数で指定されたすべての環境変数は、ジョブのサブミットで明示的に要求された場合にのみ、オプションで定義されたJSVインスタンスにエクスポートされます。

-xdv docker_volume

ジョブが docker コンテナ内で実行されている場合、-xdv スイッチを使用して、docker コンテナにマウントするdocker ボリュームを指定できます。 docker_volume は、docker 実行コマンドラインオプション -v の構文に従って指定します。docker run(1)のマニュアルページを参照してください。コンマで区切ったボリュームのリストを -xdv スイッチに渡すか、-xdv スイッチを繰り返して、複数のボリュームをマウントすることができます。

© 2006-2019 HPC Technologies Co., Ltd. All rights reserved.