「ジョブ管理システム PBSを用いた計算機の利用」の版間の差分
ナビゲーションに移動
検索に移動
97行目: | 97行目: | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td><div align="center">Max.num of running | <td><div align="center">Max.num of running cpus / user.server </div></td> | ||
<td align="center" colspan=7>480</td> | <td align="center" colspan=7>480</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td><div align="center">Max.num of running | <td><div align="center">Max.num of running cpus / user.queue </div></td> | ||
<td><div align="center">300</div></td> | <td><div align="center">300</div></td> | ||
<td><div align="center">150</div></td> | <td><div align="center">150</div></td> |
2021年10月6日 (水) 05:33時点における版
ジョブ管理システム
- 複数のユーザが平等に計算機資源(メモリ, 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 |
48 |
48 |
36 |
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
- デフォルトの確保量
- small, medium, large キュー
- 3.5GB
- blast キュー
- 96GB
- small, medium, large キュー
- 利用可能な最大メモリ量
- small, medium, large キュー
- 96GB
- blast キュー
- 188GB
- small, medium, large キュー
- ジョブスクリプト内でのメモリ確保量指定方法
#PBS -l mem=16GB
- bias5-node01 〜 20 の一台あたりのメモリ搭載量は188GB、nCPUは40です。
- smp[s | m | l ] キューほどはメモリが必要なさそうな時は、blastキューの利用も検討ください
PBS実行例
- BLAST実行ジョブ(シェルスクリプト)の例 (ファイル名:blast.job) (下記の「ジョブスクリプトオプション」も参考にしてください)
- 一つのスクリプトで複数ジョブを実行できる「アレイジョブ」の項目も参考にしてください
#!/usr/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 |
ジョブを投入する |
qstat |
全ジョブの状態を表示する |
qstat -Q |
全キューの状態を表示する |
qstat -u "user_name" |
指定ユーザのジョブとキューの状態を表示する(デフォルトは全員分表示) |
qstat -rn1 |
実行中の全ジョブとその詳細を表示する(アレイジョブ以外) |
qstat -J -t -rn1 |
実行中の全アレイジョブとその詳細を表示する |
qstat -t job-ID[] |
指定したIDのアレイジョブの詳細を表示する(IDに括弧 [] をつけること) |
qstat -f job-ID |
指定したIDのジョブ詳細を表示する |
qdel job-ID |
指定したIDのジョブを削除する |
qdel -Wforce job-ID |
指定したIDのジョブを強制的に削除する |
qhold job-ID |
指定したIDのジョブ(待機中のみ)をホールドする |
qrls job-ID |
ホールド状態のジョブをリリースする |
qhost |
各ノードの状態を表示する |
qmod -sj job-ID |
実行中のジョブをサスペンドする |
qmod -usj job-ID |
サスペンド中のジョブを再実行する |
qmod -cj job-ID |
エラーになったジョブを再実行する |
tracejob -nDAY job-ID |
DAY日間以内に終了したjob-IDの履歴を表示 |
ジョブスクリプトオプション早見表
オプション |
説明 |
#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 開始番号-終了番号 |