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

提供:biaswiki
2018年9月27日 (木) 07:18時点におけるCproom (トーク | 投稿記録)による版 (→‎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
12
6
2
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}

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

$ qsub blast.job

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

$ qstat

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

$ qstat -u user_name

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

$ tracejob -n3 job_id

PBSコマンド早見表

投入後のジョブにコマンドを発行できるのは、ジョブを投入したユーザのみです。詳しいオプションは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
エラーになったジョブを再実行する
tracejob -nDAY job-ID
DAY日間以内に終了した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 開始番号-終了番号