ジョブ管理ソフト UGE の利用方法
1. シンプルなジョブの投入方法
UGEでは、一般にジョブの内容をスクリプトにして、スクリプトをqsubコマンドでサブミットして利用します。ここでは、以下のシンプルな内容のジョブを投入する実例を御説明します。
"#$"で始まる行は、qsubコマンドに渡すオプションが記述されることを示します。上記のスクリプト内に記述している通り、-cwdオプションは、カレントディレクトリの指定をします。このオプションは、ほとんどのジョブで利用する必要があります。ジョブをサブミットして、入力ファイルや実行プログラムが見つからないというエラーが出る場合には、このオプションを利用することで解決する場合があります。-qオプションは、キューの指定をします。
UGEで実行するスクリプトファイルには、実行属性を与える必要はありません。
上記のスクリプトファイルをjob.shとした場合、以下のようにしてジョブを実行します。
qsubオプションをスクリプトファイルに記述せずに、コマンドラインでオプションとして渡すこともできます。
この場合、スクリプトファイルに記述されたall.qよりもコマンドラインで渡されたshort.qの方が優先して使用されます。利用できるキューの一覧は、以下のコマンドで確認できます。
標準出力及びエラー出力は、カレントワークディレクトリにそれぞれjob.sh.o$JOBID, job.sh.e$JOBID というファイルに出力されます。$JOBIDは、UGEに一意に割り当てられるIDです。-cwdオプションを使用しない場合、ホームディレクトリ直下でスクリプトが実行され、それらのファイルもホームディレクトリの直下に出力されます。
Examples
[hpctech@frontend uge_test]$ qhost #クラスターのステータス確認
HOSTNAME ARCH NCPU NSOC NCOR NTHR NLOAD MEMTOT MEMUSE SWAPTO SWAPUS
----------------------------------------------------------------------------------------------
global - - - - - - - - - -
node01 lx-amd64 2 2 2 2 0.01 1.8G 199.3M 1.2G 0.0
node02 lx-amd64 2 2 2 2 0.01 1.8G 195.2M 1.2G 0.0
node03 lx-amd64 2 2 2 2 0.01 1.8G 201.8M 1.2G 0.0
node04 lx-amd64 2 2 2 2 0.01 1.8G 209.3M 1.2G 0.0
[hpctech@frontend uge_test]$ qstat -u "*"
#ジョブのステータス確認 「-u “*”」 をつけているので全員のジョブを確認しています。
[hpctech@frontend uge_test]$ ls -l #スクリプトは、job.shというファイルにしています。
total 4
-rw-rw-r--. 1 hpctech hpctech 155 Mar 25 15:45 job.sh
[hpctech@frontend uge_test]$ qsub ./job.sh #ジョブの投入 ジョブIDは1が割り当てられました。
Your job 1 ("job.sh") has been submitted
[hpctech@frontend uge_test]$ qstat -u "*" #ジョブのステータス確認
job-ID prior name user state submit/start at queue jclass slots ja-task-ID
------------------------------------------------------------------------------------------------------------------
1 055500 job.sh hpctech r 03/25/2018 15:45:36 1
#ジョブのステータスは次のいずれかの値を取ります。- d(eletion), E(rror), h(old), r(unning), R(estarted), s(uspended), S(uspended), e(N)hanced suspended, (P)reempted, t(ransfering), T(hreshold) or w(aiting).
[hpctech@frontend uge_test]$ qstat #ジョブのステータス確認 ジョブは終了しました。
[hpctech@frontend uge_test]$ ls #標準出力(*.o1)、エラー出力(*.e1)のファイルを確認
job.sh job.sh.e1 job.sh.o1
[hpctech@frontend uge_test]$ cat job.sh.o1
node01