「ジョブ管理システム PBSを用いた計算機の利用」の版間の差分
ナビゲーションに移動
検索に移動
(→PBS実行例) |
(→PBS実行例) |
||
159行目: | 159行目: | ||
$ qstat | $ qstat | ||
特定ユーザのジョブの様子を見る | 特定ユーザのジョブの様子を見る | ||
$ qstat -u user_name | $ qstat -u ''user_name'' | ||
当日中に終了したジョブ番号 ''jobID'' のジョブ履歴を確認する | 当日中に終了したジョブ番号 ''jobID'' のジョブ履歴を確認する | ||
$ tracejob ''jobID'' | $ tracejob ''jobID'' |
2021年11月18日 (木) 02:09時点における版
ジョブ管理システム
- 複数のユーザが平等に計算機資源(メモリ, CPU)を使うためのしくみです。
- ジョブが投入された順番に空いている資源を利用して実行していきます。
- データ解析をする場合は、基本的にこのジョブ管理システムを利用してください
- 実行したい処理を シェルスクリプト シェルスクリプト入門へのリンク に書き、qsub コマンドの引数にして実行させます。
- ここでは「PBS PBSユーザーズガイドへのリンク」というジョブ投入のシステムを採用しています。
- この資料も参考にしてください。 SGE用スクリプトファイルをPBS用に書き換える方法
- 説明会資料もご覧ください
- 残念なお知らせですが、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
当日中に終了したジョブ番号 jobID のジョブ履歴を確認する
$ tracejob jobID
PBSコマンド早見表
投入後のジョブにコマンドを発行できるのは、ジョブを投入したユーザのみです。
コマンド | 説明 |
---|---|
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 開始番号-終了番号 |