「ジョブ管理システム SunGridEngine を用いた計算機の利用」の版間の差分

提供:biaswiki
ナビゲーションに移動 検索に移動
 
(同じ利用者による、間の1版が非表示)
120行目: 120行目:
  /bio/bin/blastall -p blastx -e 0.001 -d nr -i  /home/xxx/sample.fa -o /home/xxx/sample.out
  /bio/bin/blastall -p blastx -e 0.001 -d nr -i  /home/xxx/sample.fa -o /home/xxx/sample.out
ジョブをSGEで実行(qsubコマンドにジョブファイルを渡す)
ジョブをSGEで実行(qsubコマンドにジョブファイルを渡す)
  % qsub blast.job
  $ qsub blast.job
自分のジョブの様子を見る
自分のジョブの様子を見る
  % qstat
  $ qstat
全ユーザのジョブの様子を見る
全ユーザのジョブの様子を見る
  % qstat -u '*'
  $ qstat -u '*'


== SGE コマンド早見表 ==
== SGE コマンド早見表 ==
183行目: 183行目:
   <tr>
   <tr>
     <td><div align="center">'''#$ -o''' ''filename''</div></td>
     <td><div align="center">'''#$ -o''' ''filename''</div></td>
     <td><div align="center">標準出力の結果を指定したファイルに保存(指定しないとホームディレクトリにファイルが作られる)</div></td>
     <td><div>標準出力の結果を指定したファイルに保存(指定しないとホームディレクトリにファイルが作られる)</div></td>
   </tr>
   </tr>
   <tr>
   <tr>
     <td><div align="center">'''#$ -e''' ''filename''</div></td>
     <td><div align="center">'''#$ -e''' ''filename''</div></td>
     <td><div align="center">標準エラー出力の結果を指定したファイルに保存(指定しないとホームディレクトリにファイルが作られる)</div></td>
     <td><div>標準エラー出力の結果を指定したファイルに保存(指定しないとホームディレクトリにファイルが作られる)</div></td>
   </tr>
   </tr>
  <tr>
  <tr>
     <td><div align="center">'''#$ -q''' ''queue_name''</div></td>
     <td><div align="center">'''#$ -q''' ''queue_name''</div></td>
     <td><div align="center">キューを指定してジョブを実行</div></td>
     <td><div>キューを指定してジョブを実行</div></td>
   </tr>
   </tr>
   <tr>
   <tr>
     <td><div align="center">'''#$ -cwd'''</div></td>
     <td><div align="center">'''#$ -cwd'''</div></td>
     <td><div align="center">qsubした時のディレクトリに移動してジョブを実行</div></td>
     <td><div>qsubした時のディレクトリに移動してジョブを実行</div></td>
   </tr>
   </tr>
   <tr>
   <tr>
     <td><div align="center">'''#$ -V'''</div></td>
     <td><div align="center">'''#$ -V'''</div></td>
     <td><div align="center">現在の環境を引き継ぐ</div></td>
     <td><div>現在の環境を引き継ぐ</div></td>
   </tr>
   </tr>
   <tr>
   <tr>
     <td><div align="center">'''#$ -v''' ''環境変数名=環境変数''</div></td>
     <td><div align="center">'''#$ -v''' ''環境変数名=環境変数''</div></td>
     <td><div align="center">環境変数をジョブに渡す<br>書き方例:JAVA_HOME="/home/xxxxx/jdk-1.8.1"<br>ここで元の環境変数を参照することはできない。つまり PATH=/home/xxxxx/bin:$PATH 等と書いても無視される</div></td>
     <td><div>環境変数をジョブに渡す。書き方例:JAVA_HOME="/home/xxxxx/jdk-1.8.1"<br>ここで元の環境変数を参照することはできない。つまり PATH=/home/xxxxx/bin:$PATH 等と書いても「$PATH」は無視される</div></td>
   </tr>
   </tr>
<tr>
<tr>
     <td><div align="center">'''#$ -N''' ''job_name''</div></td>
     <td><div align="center">'''#$ -N''' ''job_name''</div></td>
     <td><div align="center">ジョブ名を指定する</div></td>
     <td><div>ジョブ名を指定する</div></td>
   </tr>
   </tr>
<tr>
<tr>
     <td><div align="center">'''#$ -s''' ''shell_name''</div></td>
     <td><div align="center">'''#$ -s''' ''shell_name''</div></td>
     <td><div align="center">ジョブスクリプトを指定したシェルで実行</div></td>
     <td><div>ジョブスクリプトを指定したシェルで実行</div></td>
   </tr>
   </tr>
<tr>
<tr>
     <td><div align="center">'''#$ -a''' ''MMDDhhmm''</div></td>
     <td><div align="center">'''#$ -a''' ''MMDDhhmm''</div></td>
     <td><div align="center">ジョブの開始日時を指定</div></td>
     <td><div>ジョブの開始日時を指定</div></td>
   </tr>
   </tr>
<tr>
<tr>
     <td><div align="center">'''#$ -l''' ''resource_name 値''</div></td>
     <td><div align="center">'''#$ -l''' ''resource_name 値''</div></td>
     <td><div align="center">ジョブが使うリソース量を指定する </div></td>
     <td><div>ジョブが使うリソース量を指定する </div></td>
   </tr>
   </tr>
<tr>
<tr>
     <td><div align="center">'''#$ -pe''' ''PE_name'' ''プロセス数''</div></td>
     <td><div align="center">'''#$ -pe''' ''PE_name'' ''プロセス数''</div></td>
     <td><div align="center">並列ジョブを実行する場合の環境と並列数の指定</div></td>
     <td><div>並列ジョブを実行する場合の環境と並列数の指定</div></td>
   </tr>
   </tr>
<tr>
<tr>
     <td><div align="center">'''#$ -t''' ''開始番号-終了番号''</div></td>
     <td><div align="center">'''#$ -t''' ''開始番号-終了番号''</div></td>
     <td><div align="center">アレイジョブを実行 [[並列計算の実行#.E3.82.A2.E3.83.AC.E3.82.A4.E3.82.B8.E3.83.A7.E3.83.96]]</div></td>
     <td><div>アレイジョブを実行 [[並列計算の実行#.E3.82.A2.E3.83.AC.E3.82.A4.E3.82.B8.E3.83.A7.E3.83.96]]</div></td>
   </tr>
   </tr>
</table><br>
</table><br>

2017年1月13日 (金) 04:23時点における最新版

ジョブ管理システム

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

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

キュー一覧

分散並列処理型 : parallel distributed processing
共有メモリ型 : shared memory
queue
small (default)
medium
large
smps
smpm
smpl
cat
ジョブの特徴
短時間・並列多
中規模
長時間
中メモリ
大メモリ
最大メモリ
denovoアセンブル用
Avairable hosts
node01~node40
node01~node40
node01~node40
ldas-smp
ldas-smp
ldas-smp
catl/catm/cats1/cats2
Max. execution time / job
6hr
72hr
no limit
no limit
no limit
no limit
no limit
Max. memory usage / job
4.8GB
4.8GB
4.8GB
500GB
1TB
4TB
512GB/1TB/96GB/96GB
Max. num of jobs / queue
580
200
20
8
4
1
112
Avairable PE
smp, mpi128, mpi256, make
smp, mpi128, mpi256, make
smp, mpi128, make
smp
smp
smp
smp, make


  • キューの稼働状況はこちらをご覧ください[1]
  • キューを指定しない場合、デフォルトでは「small」で実行されます。
  • 1ユーザが全てのキュー合計で同時実行可能なジョブ数は、400
  • 400個以上のジョブを投入すると401個目からは待ち状態になります。アレイジョブも同様
  • denovoアセンブリ用catキューの使い方


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
ジョブとキューの状態を表示する
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
エラーになったジョブを再実行する


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

オプション
説明
#$ -o filename
標準出力の結果を指定したファイルに保存(指定しないとホームディレクトリにファイルが作られる)
#$ -e filename
標準エラー出力の結果を指定したファイルに保存(指定しないとホームディレクトリにファイルが作られる)
#$ -q queue_name
キューを指定してジョブを実行
#$ -cwd
qsubした時のディレクトリに移動してジョブを実行
#$ -V
現在の環境を引き継ぐ
#$ -v 環境変数名=環境変数
環境変数をジョブに渡す。書き方例:JAVA_HOME="/home/xxxxx/jdk-1.8.1"
ここで元の環境変数を参照することはできない。つまり PATH=/home/xxxxx/bin:$PATH 等と書いても「$PATH」は無視される
#$ -N job_name
ジョブ名を指定する
#$ -s shell_name
ジョブスクリプトを指定したシェルで実行
#$ -a MMDDhhmm
ジョブの開始日時を指定
#$ -l resource_name 値
ジョブが使うリソース量を指定する 
#$ -pe PE_name プロセス数
並列ジョブを実行する場合の環境と並列数の指定
#$ -t 開始番号-終了番号