ジョブ管理システム(UGE)関連

キューの利用状況の確認。アプリケーションのインストール。Phase1からPhase2にデータ移動。debugキューの利用。qsubオプション。ジョブ再実行時の注意。

  

システム利用方法のご案内

システム紹介:基本的使用方法:Univa Grid Engine概説:ジョブを投入するノウハウ:
ユーザ登録:ログイン手順(Windows編):ログイン手順(Mac編): 

 

特定のライブラリ/アプリケーションを利用したい。

ご自分のホームディレクトリへインストールしてご利用ください。この場合、許可申請は不要です。
センター側でのインストールを希望する場合は、OSSインストール申請から申し込んでください。

 

Fat計算ノードでPhase2のlustreを使用する方法

https://sc2.ddbj.nig.ac.jp/index.php/ja-uge-additional#info10

 

Phase1システムからPhase2システムにデータを移動する方法

Phase2システムゲートウェイにログイン後、"-l trans"のオプション付きでqloginを行うとデータ移行用ノードへログインします。

https://sc2.ddbj.nig.ac.jp/index.php/ja-howtouse#datashift

 

クラスタ内での各キューの利用状況の確認

qstat -g c と投入することでUGEセル内(研究用セル名はUGER)の、各キューへのジョブの投入状況が確認できます。

[username@t266 pgi]$ qstat -g c
CLUSTER QUEUE CQLOAD USED RES AVAIL TOTAL aoACDS cdsuE
--------------------------------------------------------------------------------
debug.q 0.03 0 0 128 128 0 0
login.q 1.00 122 0 70 192 0 0
month_fat.q 0.47 450 0 318 768 0 0
month_gpu.q 0.03 0 0 976 992 0 16
month_hdd.q 0.04 1 0 95 96 0 0
month_medium.q 0.24 32 0 128 160 0 0
month_ssd.q 0.03 0 0 32 32 0 0
web_month.q 0.03 0 0 16 16 0 0
web_week.q 0.03 0 0 16 16 0 0

   

投入したジョブが動きません。状況を確認する方法はありますか。

qstatコマンドでジョブの実行状況を確認できます。 

$ qstat
job-ID prior name user state submit/start at
-------------------------------------------------------------
325 0.00000 test.sh ddbjuser qw 03/19/2012 19:11:56

主なstateは以下の通り。場合によっては複数組み合わせて表示されます。

r : ジョブは実行ホスト上で実行中です
qw :ジョブはキューで待機しています
t :ジョブは実行ホストへ転送処理中です
E ジョブにエラーが発生しています
d ジョブは削除処理中です

https://sc2.ddbj.nig.ac.jp/index.php/job-info

上記のページからログインして、running中の jobの状況を確認できます。

 

ジョブがいつまでたっても実行されません。

リソース指定が正常に行われず、該当するノードが存在しないため実行されない場合があります。

キュー指定が正しい場合でも、混み具合により実行されない場合があります。不明点がありましたら、お名前、所属、アカウント名、お問い合わせ内容、を記載して sc-helpdesk.png までメールでお問い合わせください。

 

キューの設定

Phase1 ノード数 1ノード当たりスロット数 総コア数(スロット数) ノードが保有するmem_req キューの実行上限時間(指定なしの場合:3日)
month_fat.q 1 768 768 10TB 62日
month_medium.q  2 80 160 2TB 62日
month_hdd.q 52 16 832 64GB 62日
month_gpu.q      62* 4 248 32GB 62日
short.q      62* 12 744 32GB 3日
login.q 8 24 192   無制限
debug.q 3 16 48 64GB 3日

 

 

 

 

 

 

*month_gpu.qとshort.qは実ノードが同じ 

 

Phase2 ノード数 1ノード当たりスロット数 総コア数(スロット数) ノードが保有するmem_req キューの実行上限時間(指定なしの場合:3日)
month_medium.q 8 80 640 2TB 62日
month_phi.q 30 20 600 64GB 62日
month_hdd.q 43   20 860 64GB 62日
month_gpu.q      62* 5 310 32GB 62日
short.q      62* 15 930 32GB 3日
login.q 12 30 360   無制限
debug.q 4 20 80 64GB 3日

 

 

 

 

 

 

 

*month_gpu.qとshort.qは実ノードが同じ 

 

 

単体のジョブの仮想メモリの上限値を、実際にスーパーコンピュータシステムでジョブを実行する前に見積もることは可能なのでしょうか。

少ないデータ量を処理するジョブをdebug.qで実行し、そのジョブが使用する仮想メモリ量を測定する、という手法があります。この場合、データ量を増やしつつ複数回計測し、データ量の変化と消費メモリ量の変化の相関を確認し、実際の処理対象データでの消費メモリ量を予測する参考とします。 参考資料として、「講習会配布資料 ジョブを投入するノウハウ」のP23以降に関連する説明が記載されているのでそちらを参照してください。

 

ディレクトリ移動を指示したシェルスクリプトをジョブ投入すると、 常にホームディレクトリにて実行されるようです。実行場所を指定したいのですが、どうしたらよいでしょうか。

qsubコマンド実行時に"-cwd"オプションを付与することで、qsubした時点のディレクトリをカレントディレクトリとしてジョブが実行されます。 詳細については、「講習会配布資料 Univa Grid Engine概説」の13ページをご覧ください。

 

ジョブの出力ファイルをホームディレクトリ以外に出力する方法はありますか。

qsubコマンド実行時に"-o","-e"オプションで出力先のファイルを指定することで、任意のファイル,ディレクトリに出力できます。"-o"でジョブの標準出力、"-e"でジョブの標準エラー出力の出力先を指定できます。 標準出力または標準エラー出力をファイル出力しない場合は出力先に"/dev/null"を指定します。 詳細については、「講習会配布資料 Univa Grid Engine概説」の13ページをご覧ください。

 

qsubで投入したジョブはログアウトすると止まってしまうのでしょうか。

qsubで投入したジョブはログアウトしても停止せず、終了するまで動作し続けます。

 

qsubで投入したジョブの実行状況を見るため、qstatコマンドを使いました。 出力結果から実行中かどうかを見たいのですが、どこを見れば分かるのでしょうか。

qstatコマンドで表示される内容の"state"欄を参照願います。 実行中であれば"r"、実行待ち状態であれば"qw"となっています。 qstatの基本的な使い方については「講習会配布資料 Univa Grid Engine概説」の 15ページ以降に記載されているのでそちらを参照して下さい。

 

qreportコマンドで表示される maxvmemのメモリの値は計算のステップ数(計算時間)を長くすればするほど増加する値になっています。 maxvmemで表示されるメモリ値は、通常の1ジョブのプログラムを実行する際に確保されるメモリ値とは違う値のことなのでしょうか。

maxvmemは、ジョブが動作するために使用した仮想メモリ量の最大値ですので,ジョブプログラムが確保したメモリ値とイコールではありません。 計算ステップ数により、メモリをアロケート、スレッド(別プロセス)を起こすなどの、動作する環境に変化があれば、ジョブが使用する仮想メモリ量にも変化が生じ、maxvmem値も変わります。

 

loginノードとqloginを行った先のノードと環境が違うようですが、他にもなにか違いはあるのでしょうか。

loginノード(ゲートウェイノード)はqlogin先のノードとは異なり、個別にインストールが必要となるアプリケーション、ツール類はインストール していません。 これは、ゲートウェイノードの役割が「スーパーコンピュータシステム環境への入り口」であり、 このノード上での解析処理等の実行を想定していないためです。 誤って解析など負荷の高い処理を実行されると、他のユーザにも影響が出る可能性があるため、ゲートウェイノード上での高負荷な処理の実行は控えていただく運用となっています。

 

計算ノードの障害等によりジョブが再実行された際に、注意する点はありますか。

ジョブが再実行された場合は、
1.ジョブの標準出力、標準エラー出力は再実行前のファイルに追記されます。
2.投入しているジョブによっては1度目の実行で出力されたファイルの存在により、
  2度目の実行がエラーもしくは不適切になる場合があります。問題の発生が
  懸念される場合は、中間ファイルや結果ファイルを削除した上で、ジョブを
  再投入して頂けるよう、お願いします。
3.必要に応じてジョブ内で再実行に備えた処置を加えて頂けるようお願いします。
  例えばシェルスクリプトの場合ですと以下のような処理を加えることで問題を回避できます。
例(一つの中間ファイルを出力し、それを入力として結果ファイルを出力するジョブの場合)

#!/bin/sh
#$ -S /bin/sh tmpfile=/home/user/tmpdir/tmpfile.txt  #中間ファイルを指定
outfile=/home/user/outdir/outfile.txt #結果ファイルを指定

###追記内容##########################
if [ -f ${tmpfile} ] ; then          #中間ファイルが存在すれば削除
rm ${tmpfile}
fi
if [ -f ${outfile} ] ; then            #結果ファイルが存在すれば削除
rm ${outfile}
fi
#####################################

/home/user/program1 -o ${tmpfile}          #中間ファイルの出力
/home/user/program2 -i ${tmpfile} -o ${outfile} #中間ファイルを入力として結果ファイルの出力

 

遺伝研のスーパーコンピュータシステムに誰がどれだけのジョブ数(スロット数)を使用 しているのかを知ることは可能でしょうか。

実行状況は、qstatコマンド、qhostコマンドにて確認可能です。
「講習会配布資料 ジョブを投入するノウハウ」のP49にコマンドの説明が記載されているのでそちらを参照してください