ジョブ管理システム PBSを用いた計算機の利用
ナビゲーションに移動
検索に移動
ジョブ管理システム
- 複数のユーザが平等に計算機資源(メモリ, CPU)を使うためのしくみです。
- 投入された順番に空いている資源を利用して実行していきます。
- データ解析をする場合は、基本的にこのジョブ管理システムを利用してください
- 実行したい処理を シェルスクリプト シェルスクリプト入門へのリンク に書き、qsub コマンドの引数にして実行させます。
- ここでは「PBS PBSユーザーズガイドへのリンク」というジョブ投入のシステムを採用しています。
- 残念なお知らせですが、cat キューは終了となりました
利用可能なキュー
キュー一覧
分散並列処理型 : parallel distributed processing |
共有メモリ型 : shared memory |
|||||
queue |
small (default) |
medium |
large |
smps |
smpm |
smpl |
ジョブの特徴 |
短時間・並列多 |
中規模 |
長時間 |
中メモリ |
大メモリ |
最大メモリ |
Avairable hosts |
bias5-node01~node20 |
bias5-node01~node20 |
bias5-node01~node20 |
bias5-smp |
bias5-smp |
bias5-smp |
Max. execution time / job |
6hr |
72hr |
no limit |
no limit |
no limit |
no limit |
Max. memory usage / job |
96GB |
96GB |
96GB |
500GB |
1TB |
3TB |
Max.num of running jobs / queue |
no limit |
no limit |
no limit |
6 |
3 |
1 |
Max. num of running cpus / queue |
580 |
200 |
20 |
48 |
48 |
36 |
Max. num of running cpus / host |
40 |
72 |
||||
Max.num of running jobs / user.server |
480 | |||||
Max.num of running jobs / user.queue |
400 |
150 |
10 |
no limit |
no limit |
no limit |
Default num of CPUs |
1 |
1 |
1 |
1 |
1 |
1 |
Default memory size |
3GB |
3GB |
3GB |
250GB |
500GB |
1500GB |
- キューの稼働状況はこちらをご覧ください[1]
- キューを指定しない場合、デフォルトでは「small」で実行されます。
- 480個以上のジョブを投入すると481個目からは待ち状態になります。アレイジョブも同様
実行例
BLAST実行ジョブ(シェルスクリプト)の例 (ファイル名:blast.job) (下記の「ジョブスクリプトオプション」も参考にしてください)
#!/bin/sh #PBS -q small #PBS -v BLASTDB="/bio/db/blast/db" #PBS -v BLASTMAT="/bio/db/blast/matrix" #PBS -l ncpus=4 #PBS -J 1-10 cd ${PBS_O_WORKDIR} blastx -db nr -i -numthreads ${NCPUS} -query /home/xxx/sample.fa.${PBS_ARRAY_ID} -o /home/xxx/sample.out.${PBS_ARRAY_ID}
ジョブをSGEで実行(qsubコマンドにジョブファイルを渡す)
$ qsub blast.job
全ユーザのジョブの様子を見る
$ qstat
特定ユーザのジョブの様子を見る
$ qstat -u user_name
SGE コマンド早見表
投入後のジョブにコマンドを発行できるのは、ジョブを投入したユーザのみです。詳しいオプションはmanコマンドなどで確認してください。
コマンド |
説明 |
qsub |
ジョブを投入する |
qstat |
ジョブとキューの状態を表示する |
qstat -u "user_name" |
指定ユーザのジョブとキューの状態を表示する("*" で全員) |
qdel job-ID |
指定したIDのジョブを削除する |
qhold job-ID |
指定したIDのジョブ(待機中のみ)をホールドする |
qrls job-ID |
ホールド状態のジョブをリリースする |
qhost |
各ノードの状態を表示する |
qmod -sj job-ID |
実行中のジョブをサスペンドする |
qmod -usj job-ID |
サスペンド中のジョブを再実行する |
qmod -cj job-ID |
エラーになったジョブを再実行する |
ジョブスクリプトオプション早見表
オプション |
説明 |
#PBS -o filename |
標準出力の結果を指定したファイルに保存(指定しないとホームディレクトリにファイルが作られる) |
#PBS -e filename |
標準エラー出力の結果を指定したファイルに保存(指定しないとホームディレクトリにファイルが作られる) |
#PBS -q queue_name |
キューを指定してジョブを実行 |
#PBS -cwd |
qsubした時のディレクトリに移動してジョブを実行 |
#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 resource_name 値 |
ジョブが使うリソース量を指定する |
#PBS -J 開始番号-終了番号 |