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

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

ジョブ管理システム

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

利用可能なキュー および PE (Parallel Environment)

キュー一覧

分散並列処理型
共有メモリ型
キュー名
small
medium
large
smps
smpm
smpl
cat
ジョブの特徴
短時間・並列多
中規模
長時間
中メモリ
大メモリ
最大メモリ
denovoアセンブル用
利用ノード
node01~node40
node01~node40
node01~node40
ldas-smp
ldas-smp
ldas-smp
catl/catm/cats1/cats2
最長実行時間/ジョブ
6hr
72hr
no limit
no limit
no limit
no limit
no limit
最大使用メモリ/ジョブ
4GB
4GB
4GB
500GB
1TB
4TB
512GB/1TB/96GB/96GB
最大ジョブ数/キュー
580
200
20
8
4
1
112
利用可能なPE
smp, mpi128, mpi256, make
smp, mpi128, mpi256, make
smp, mpi128, make
smp
smp
smp
smp, make



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

PE名
smp
mpi128
mpi256
make
PEの特徴
ホストをまたがない
1ホストの搭載コア数まで
並列128コアまで
並列256コアまで
各ホストから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
現在の環境を引き継ぐ(-vでの指定かつ$PATHなども引き継いでおきたい時は必須)
#$ -v 環境変数
環境変数をジョブに渡す
#$ -N job_name
ジョブ名を指定する
#$ -s shell_name
ジョブスクリプトを指定したシェルで実行
#$ -a MMDDhhmm
ジョブの開始日時を指定
#$ -l resource_name 値
ジョブが使うリソース量を指定する 
#$ -pe PE_name プロセス数
並列ジョブを実行する場合の環境と並列数の指定
#$ -t 開始番号-終了番号