support

Altair Grid Engine (AGE)では、一般にジョブの内容をスクリプトにして、スクリプトをqsubコマンドでサブミットして利用します。ここでは、以下のシンプルな内容のジョブを投入する実例を御説明します。

!/bin/bash
$ -cwd     # カレントワークディレクトリの指定
$ -q all.q    # キューの指定
hostname   #プログラムの実行
sleep 30
スクリプトファイル例

“#$”で始まる行は、qsubコマンドに渡すオプションが記述されることを示します。上記のスクリプト内に記述している通り、-cwdオプションは、カレントディレクトリの指定をします。このオプションは、ほとんどのジョブで利用する必要があります。ジョブをサブミットして、入力ファイルや実行プログラムが見つからないというエラーが出る場合には、このオプションを利用することで解決する場合があります。-qオプションは、キューの指定をします。

AGEで実行するスクリプトファイルには、実行属性を与える必要はありません。

​上記のスクリプトファイルをjob.shとした場合、以下のようにしてジョブを実行します。

> qsub ./job.sh

qsubオプションをスクリプトファイルに記述せずに、コマンドラインでオプションとして渡すことも​できます。

> qsub -q short.q ./job.sh

この場合、スクリプトファイルに記述されたall.qよりもコマンドラインで渡されたshort.qの方が優先して使用されます。利用できるキューの一覧は、以下のコマンドで確認できます。

> qconf -sql

標準出力及びエラー出力は、カレントワークディレクトリにそれぞれjob.sh.o$JOBID, job.sh.e$JOBID というファイルに出力されます。$JOBIDは、UGEに一意に割り当てられるIDです。-cwdオプションを使用しない場合、ホームディレクトリ直下でスクリプトが実行され、それらのファイルもホームディレクトリの直下に出力されます。

実行例

[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 all.q@node01.local                                                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
ジョブ実行フローの概要