バッチジョブ投入システム SunGridEngine を用いた計算機の利用

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

バッチジョブ投入システム

  • 複数のユーザが平等に計算機資源(メモリ, CPU)を使うためのしくみです。
  • 投入された順番に空いている資源を利用して実行していきます。
  • データ解析をする場合は、基本的にこのバッチジョブ投入システムを利用してください
  • 実行したい処理を シェルスクリプト シェルスクリプト入門へのリンク に書き、qsub コマンドの引数にして実行させます。
  • ここでは「Sun Grid Engine (SGE) SGEユーザーズガイドへのリンク」というジョブ投入のシステムを採用しています。

利用可能なキュー、PE (Parallel Environment)

キュー一覧

分散並列処理型
共有メモリ型
キュー名
small
medium
large
bias
cat
ジョブの特徴
短時間・並列多
中規模
長時間
大メモリ
denovoアセンブル用
利用ノード
node01~node32
node01~node32
node01~node32
bias
catl, catm
最長実行時間/ジョブ
6hr
72hr
no limit
no limit
no limit
最大ジョブ数/キュー
184
64
8
16
112
利用可能なPE
smp, mpi64, mpi128, make
smp, mpi64, mpi128, make
smp, mpi64, make
smp
smp, make



PE (Parallel Environment) : 並列環境インタフェース一覧

PE名
smp
mpi64
mpi128
make
PEの特徴
ホストをまたがない
1ホストの搭載コア数まで
並列64コアまで
並列128コアまで
各ホストから1つづつコアを確保


実行例

BLAST実行ジョブ(シェルスクリプト)の例 (ファイル名:blast.job) (下記の「ジョブスクリプトオプション」も参考にしてください)

#!/bin/sh
#$ -q small
#$ -v BLASTDB="/bio/db/blast/db"
#$ -v BLASTMAT="/bio/db/blast/matrix"
/bio/bin/blastall -p blastx -e 0.001 -d nr -i  /home/xxx/sample.fa -o /home/xxx/sample.out

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

% qsub blast.job

自分のジョブの様子を見る

% qstat

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

% qstat -u '*'

SGE コマンド早見表

投入後のジョブにコマンドを発行できるのは、ジョブを投入したユーザのみです。詳しいオプションはmanコマンドなどで確認してください。

コマンド
説明
qsub
ジョブを投入する
qstat
ジョブとキューの状態を表示する
qdel job-ID
指定したIDのジョブを削除する
qhold job-ID
指定したIDのジョブ(待機中のみ)をホールドする
qrls job-ID
ホールド状態のジョブをリリースする
qhost
各ノードの状態を表示する
qmod -s job-ID
実行中のジョブをサスペンドする
qmod -us job-ID
サスペンド中のジョブを再実行する


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

オプション
説明
#$ -o filename
標準出力の結果を指定したファイルに保存(指定しないとホームディレクトリにファイルが作られる)
#$ -e filename
標準エラー出力の結果を指定したファイルに保存(指定しないとホームディレクトリにファイルが作られる)
#$ -q queue_name
キューを指定してジョブを実行
#$ -cwd
qsubした時のディレクトリに移動してジョブを実行
#$ -v 環境変数
環境変数をジョブに渡す
#$ -N job_name
ジョブ名を指定する
#$ -s shell_name
ジョブスクリプトを指定したシェルで実行
#$ -a MMDDhhmm
ジョブの開始日時を指定
#$ -l resource_name 値
ジョブが使うリソース量を指定する 
#$ -pe PE_name プロセス数
並列ジョブを実行する場合の環境と並列数の指定
#$ -t 開始番号-終了番号