ジョブ管理システム PBSを用いた計算機の利用

提供:biaswiki
ナビゲーションに移動 検索に移動

ジョブ管理システム

  • 残念なお知らせですが、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 20 6 2
Max. num of running cpus / queue 580 200 20 120 256 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コマンド早見表

投入後のジョブに対するコマンド(qdel, qmod 等)を発行できるのは、ジョブを投入したユーザのみです。

コマンド 説明
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 ホールド状態のジョブをリリース
tracejob jobID 終了したjobIDの履歴を表示(当日のみ)
  • 各コマンドの詳細な使い方は、man コマンドで見ることができます(例)
man qsub
man qstat
man qdel
man tracejob

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

オプション 説明 指定なしのデフォルト動作
#PBS -q queue_name キューを指定 smallキューに投入される
#PBS -N job_name ジョブに名前をつけて実行 ジョブファイル名が使われる
#PBS -o file_name 標準出力の結果を指定したファイルに保存 job_name.ojobID
#PBS -e file_name 標準エラー出力の結果を指定したファイルに保存 job_name.ejobID
#PBS -j [oe, eo] ジョブの標準出力ファイルと標準エラー出力ファイルを結合する

oe : 標準出力ファイルに結合

eo : 標準エラー出力ファイルに結合
#PBS -l resource_list 使用する CPU数、メモリ、実行サーバ等、リソースを指定 キューのデフォルト値
#PBS -v variable_list 環境変数等の設定をジョブに持たせる
例) –v var1=10, "var2='A,B'"
#PBS -V ログイン環境の環境変数を全て引き継ぐ
#PBS -J X-Y[:Z] ジョブアレイ範囲指定 (アレイジョブの実行時に使用)
#PBS -S shell_name ジョブスクリプトのシェルを指定 ログインシェル
#PBS -a MMDDhhmm ジョブの開始日時を指定 リソースがあれば即実行
リソース指定の仕方
オプション 説明
#PBS -l mem=8G メモリを8GBまで使う
#PBS -l ncpus=8 CPU 8スレッドを使う、この値は特別な変数 ${NCPUS} に自動で格納される
#PBS -l select=1:ncpus=10 1ノードを用いて10スレッド使う