「ジョブ管理システム PBSを用いた計算機の利用」の版間の差分

提供:biaswiki
ナビゲーションに移動 検索に移動
210行目: 210行目:
|qstat -x
|qstat -x
|24時間以内のジョブ実行履歴を確認
|24時間以内のジョブ実行履歴を確認
|-
|qdel ''jobID''
|指定したIDのジョブを削除
|-
|qdel -Wforce ''jobID''
|指定したIDのジョブを強制的に削除
|-
|qselect -u ''user_name''
|指定したユーザの全ジョブIDを表示
|-
|qselect -s Q -u ''user_name''
|指定したユーザの実行待ちジョブIDを表示
|-
|qhold ''jobID''
|指定したIDのジョブ(待機中のみ)をホールド
|-
|qrls ''jobID''
|ホールド状態のジョブをリリース
|-
|qhost
|各ノードの状態を表示
|-
|qmod -sj ''jobID''
|実行中のジョブをサスペンド
|-
|qmod -usj ''jobID''
|サスペンド中のジョブを再実行
|-
|qmod -cj ''jobID''
|エラーになったジョブを再実行する
|-style="color: green;"
|tracejob ''jobID''
|終了した''jobID''の履歴を表示(当日のみ)
|}
|}


<table border="1" cellpadding="3">
* 各コマンドの詳細な使い方は、<code>man</code> コマンドで見ることができます。
  <tr>
<pre>
    <td><div align="center">コマンド</div></td>
man qsub
    <td><div align="center">説明</div></td>
man qstat
  </tr>
man qdel
  <tr>
man tracejob</pre>
    <td><div align="left">'''qsub'''</div></td>
    <td><div align="center">ジョブを投入する</div></td>
  </tr>
  <tr>
    <td><div align="center">'''qstat'''</div></td>
    <td><div align="center">全ジョブの状態を表示する</div></td>
  </tr>
<tr>
    <td><div align="center">'''qstat -Q'''</div></td>
    <td><div align="center">全キューの状態を表示する</div></td>
  </tr>
<tr>
    <td><div align="center">'''qstat -u''' ''"user_name"''</div></td>
    <td><div align="center">指定ユーザのジョブとキューの状態を表示する(デフォルトは全員分表示)</div></td>
  </tr>
<tr>
    <td><div align="center">'''qstat -rn1'''</div></td>
    <td><div align="center">実行中の全ジョブとその詳細を表示する(アレイジョブ以外)</div></td>
  </tr>
<tr>
    <td><div align="center">'''qstat -J -t -rn1'''</div></td>
    <td><div align="center">実行中の全アレイジョブとその詳細を表示する</div></td>
  </tr>
<tr>
    <td><div align="center">'''qstat -t''' ''job-ID[]''</div></td>
    <td><div align="center">指定したIDのアレイジョブの詳細を表示する(IDに括弧 [] をつけること)</div></td>
  </tr>
<tr>
    <td><div align="center">'''qstat -f''' ''job-ID''</div></td>
    <td><div align="center">指定したIDのジョブ詳細を表示する</div></td>
  </tr>
  <tr>
    <td><div align="center">'''qdel''' ''job-ID''</div></td>
    <td><div align="center">指定したIDのジョブを削除する</div></td>
  </tr>
  <tr>
    <td><div align="center">'''qdel -Wforce''' ''job-ID''</div></td>
    <td><div align="center">指定したIDのジョブを強制的に削除する</div></td>
  </tr>
  <tr>
    <td><div align="center">'''qhold''' ''job-ID''</div></td>
    <td><div align="center">指定したIDのジョブ(待機中のみ)をホールドする</div></td>
  </tr>
<tr>
    <td><div align="center">'''qrls''' ''job-ID''</div></td>
    <td><div align="center">ホールド状態のジョブをリリースする</div></td>
  </tr>
<tr>
    <td><div align="center">'''qhost'''</div></td>
    <td><div align="center">各ノードの状態を表示する</div></td>
  </tr>
<tr>
    <td><div align="center">'''qmod -sj''' ''job-ID''</div></td>
    <td><div align="center">実行中のジョブをサスペンドする</div></td>
  </tr>
<tr>
    <td><div align="center">'''qmod -usj''' ''job-ID''</div></td>
    <td><div align="center">サスペンド中のジョブを再実行する</div></td>
  </tr>
<tr>
    <td><div align="center">'''qmod -cj''' ''job-ID''</div></td>
    <td><div align="center">エラーになったジョブを再実行する</div></td>
  </tr>
<tr>
    <td><div align="center">'''tracejob''' ''-nDAY job-ID''</div></td>
    <td><div align="center">DAY日間以内に終了したjob-IDの履歴を表示</div></td>
  </tr>
</table><br>


== ジョブスクリプトオプション早見表 ==
== ジョブスクリプトオプション早見表 ==

2021年11月18日 (木) 02:07時点における版

ジョブ管理システム

  • 残念なお知らせですが、cat キューは終了となりました

利用可能なキュー

キュー一覧

分散並列処理型 : parallel distributed processing
共有メモリ型 : shared memory
queue
small (default)
medium
large
blast
smps
smpm
smpl
ジョブの特徴
短時間・並列多
中規模
長時間
BLAST nr/nt only
中メモリ
大メモリ
最大メモリ
Avairable hosts
bias5-node01~node20
bias5-node01~node20
bias5-node01~node20
bias5-node01~node20
bias5-smp, ldas-smp, diaf-smp[1,2]
bias5-smp, ldas-smp
bias5-smp, ldas-smp
Max. execution time / job
6hr
72hr
no limit
72hr
no limit
no limit
no limit
Max. memory usage / job
96GB
96GB
96GB
188GB
500GB
1TB
3TB
Max.num of running jobs / queue
no limit
no limit
no limit
no limit
16
6
2
Max. num of running cpus / queue
580
200
20
120
176
96
72
Max. num of running cpus / host
40
72
Max.num of running cpus / user.server
480
Max.num of running cpus / user.queue
300
150
10
80
no limit
no limit
no limit
Default num of CPUs
1
1
1
20
1
1
1
Default memory size
3.5GB
3.5GB
3.5GB
98GB
250GB
500GB
1500GB


  • キューの稼働状況はこちらをご覧ください(要VPN) [1]
  • マシンの利用状況はこちらをご覧ください(要VPN) [2]
  • キューを指定しない場合、デフォルトでは「small」で実行されます。
  • 480個以上のジョブを投入すると481個目からは待ち状態になります。アレイジョブも同様

メモリ制限について

  • small, medium, large, blast キューでは、メモリ利用量がメモリ確保量を超えるとジョブは下記のようなメッセージと共に強制的に終了されます。

 =>> PBS: job killed: mem 3977304kb exceeded limit 3686400kb

  • デフォルトのメモリ確保量は3.5GB (blastキューは96GB)ですが、最大で96GB(blastキューは188GB)まで増やすことができます。
  • ジョブスクリプト内でのメモリ確保量を指定するには、以下のように -l mem=##GB というオプションを使います。
#PBS -l mem=16GB
  • bias5-node01 〜 20 の一台あたりのメモリ搭載量は188GB、nCPUは40です。ノード内で複数のジョブが実行される場合、確保されるリソースの総和がこれを超えることはできません。ジョブあたりで大きなメモリを確保すると、同じノードで実行できるジョブ数が少なくなるので注意してください。
  • smp(s|m|l)キューはこのような制限がありませんが、慢性的に混み合っている状況にあります。smpキューが混み合っているがsmall/medium/blastキューが空いている場合で、かつメモリが188GB以下で収まりそうな場合は、blastキューの利用も検討ください(blastキューは用途をblastのみに限定するものではありません)。

PBS実行例

  • BLAST実行ジョブ(シェルスクリプト)の例 (ファイル名:blast.job) (下記の「ジョブスクリプトオプション」も参考にしてください)
    • 一つのスクリプトで複数ジョブを実行できる「アレイジョブ」の項目も参考にしてください
#!/bin/bash
#PBS -q small
#PBS -l ncpus=4
#PBS -l mem=8gb
 cd ${PBS_O_WORKDIR}
 blastx -db swissprot -i -num_threads ${NCPUS} -query /home/xxx/sample.fa -o /home/xxx/sample.out

ジョブをPBSで実行(qsubコマンドにジョブファイルを渡す)

$ qsub blast.job

全ユーザのジョブの様子を見る

$ qstat

特定ユーザのジョブの様子を見る

$ qstat -u user_name

3日前までに終了したジョブ番号 job_id のジョブ履歴を確認する

$ tracejob -n3 job_id

PBSコマンド早見表

投入後のジョブにコマンドを発行できるのは、ジョブを投入したユーザのみです。詳しいオプションはmanコマンドなどで確認してください。

コマンド 説明
qsub file_name ジョブを投入する
qstat -Q 全てのキューの状態を表示
qstat -Q queue_name 指定したキューの状態を表示
qstat -Qf queue_name 指定したキューの設定と状態を表示
qstat 全てのジョブを表示
qstat -t 全てのジョブを表示(アレイジョブを展開)
qstat -u user_name 指定したユーザの全ジョブを表示
qstat -i -u user_name 指定したユーザの実行待ちジョブを表示
qstat -f jobID 実行待ちになっている原因を表示(アレイジョブの場合は jobID[] と記述)
qstat -r 実行中の全てのジョブを表示
qstat -nr1 実行中の全てのジョブを実行ホストと共に1行で表示
qstat -J アレイジョブを表示
qstat -J -t -nr1 実行中のアレイジョブを展開して詳細も表示
qstat -x 24時間以内のジョブ実行履歴を確認
qdel jobID 指定したIDのジョブを削除
qdel -Wforce jobID 指定したIDのジョブを強制的に削除
qselect -u user_name 指定したユーザの全ジョブIDを表示
qselect -s Q -u user_name 指定したユーザの実行待ちジョブIDを表示
qhold jobID 指定したIDのジョブ(待機中のみ)をホールド
qrls jobID ホールド状態のジョブをリリース
qhost 各ノードの状態を表示
qmod -sj jobID 実行中のジョブをサスペンド
qmod -usj jobID サスペンド中のジョブを再実行
qmod -cj jobID エラーになったジョブを再実行する
tracejob jobID 終了したjobIDの履歴を表示(当日のみ)
  • 各コマンドの詳細な使い方は、man コマンドで見ることができます。
man qsub
man qstat
man qdel
man tracejob

ジョブスクリプトオプション早見表

オプション
説明
#PBS -o filename
標準出力の結果を指定したファイルに保存(指定しないとホームディレクトリにファイルが作られる)
#PBS -e filename
標準エラー出力の結果を指定したファイルに保存(指定しないとホームディレクトリにファイルが作られる)
#PBS -q queue_name
キューを指定してジョブを実行
#PBS -V
現在の環境を引き継ぐ
#PBS -v 環境変数名=環境変数
環境変数をジョブに渡す。書き方例:JAVA_HOME="/home/xxxxx/jdk-1.8.1"
ここで元の環境変数を参照することはできない。つまり PATH=/home/xxxxx/bin:$PATH 等と書いても「$PATH」は無視される
#PBS -N job_name
ジョブ名を指定する
#PBS -s shell_name
ジョブスクリプトを指定したシェルで実行
#PBS -a MMDDhhmm
ジョブの開始日時を指定
#PBS -l mem=8G
ジョブが使うリソース量を指定:メモリを8GBまで使う 
#PBS -l ncpus=8
ジョブが使うリソース量を指定:CPU 8スレッドを使う 
#PBS -l select=1:ncpus=10
ジョブが使うリソース量を指定:1ノードを用いて10スレッド使う 
#PBS -J 開始番号-終了番号