「ジョブ管理システム SunGridEngine を用いた計算機の利用」の版間の差分
ナビゲーションに移動
検索に移動
(同じ利用者による、間の17版が非表示) | |||
2行目: | 2行目: | ||
*複数のユーザが平等に計算機資源(メモリ, CPU)を使うためのしくみです。 | *複数のユーザが平等に計算機資源(メモリ, CPU)を使うためのしくみです。 | ||
*投入された順番に空いている資源を利用して実行していきます。 | *投入された順番に空いている資源を利用して実行していきます。 | ||
*''' | *'''データ解析をする場合は、基本的にこのジョブ管理システムを利用してください''' | ||
*実行したい処理を '''シェルスクリプト''' [http://www.atmarkit.co.jp/flinux/rensai/theory08/theory08a.html シェルスクリプト入門へのリンク] に書き、qsub コマンドの引数にして実行させます。 | *実行したい処理を '''シェルスクリプト''' [http://www.atmarkit.co.jp/flinux/rensai/theory08/theory08a.html シェルスクリプト入門へのリンク] に書き、qsub コマンドの引数にして実行させます。 | ||
*ここでは「'''Sun Grid Engine (SGE)''' [http://docs.oracle.com/cd/E19080-01/n1.grid.eng6/817-7680/esqcr/index.html SGEユーザーズガイドへのリンク]」というジョブ投入のシステムを採用しています。<br><br> | *ここでは「'''Sun Grid Engine (SGE)''' [http://docs.oracle.com/cd/E19080-01/n1.grid.eng6/817-7680/esqcr/index.html SGEユーザーズガイドへのリンク]」というジョブ投入のシステムを採用しています。<br><br> | ||
11行目: | 11行目: | ||
<tr> | <tr> | ||
<td><div align="center"></div></td> | <td><div align="center"></div></td> | ||
<td colspan=3><div align="center">'''分散並列処理型'''</div></td> | <td colspan=3><div align="center">'''分散並列処理型 : parallel distributed processing'''</div></td> | ||
<td colspan=5><div align="center">'''共有メモリ型'''</div></td> | <td colspan=5><div align="center">'''共有メモリ型 : shared memory'''</div></td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td><div align="center"> | <td><div align="center">queue</div></td> | ||
<td><div align="center">'''small'''</div></td> | <td><div align="center">'''small''' (default)</div></td> | ||
<td><div align="center">'''medium'''</div></td> | <td><div align="center">'''medium'''</div></td> | ||
<td><div align="center">'''large'''</div></td> | <td><div align="center">'''large'''</div></td> | ||
35行目: | 35行目: | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td><div align="center"> | <td><div align="center">Avairable hosts</div></td> | ||
<td><div align="center">node01~node40</div></td> | <td><div align="center">node01~node40</div></td> | ||
<td><div align="center">node01~node40</div></td> | <td><div align="center">node01~node40</div></td> | ||
45行目: | 45行目: | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td><div align="center"> | <td><div align="center">Max. execution time / job</div></td> | ||
<td><div align="center">6hr</div></td> | <td><div align="center">6hr</div></td> | ||
<td><div align="center">72hr</div></td> | <td><div align="center">72hr</div></td> | ||
55行目: | 55行目: | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td><div align="center"> | <td><div align="center">Max. memory usage / job</div></td> | ||
<td><div align="center">4.8GB</div></td> | <td><div align="center">4.8GB</div></td> | ||
<td><div align="center">4.8GB</div></td> | <td><div align="center">4.8GB</div></td> | ||
65行目: | 65行目: | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td><div align="center"> | <td><div align="center">Max. num of jobs / queue</div></td> | ||
<td><div align="center">580</div></td> | <td><div align="center">580</div></td> | ||
<td><div align="center">200</div></td> | <td><div align="center">200</div></td> | ||
76行目: | 76行目: | ||
<tr> | <tr> | ||
<td><div align="center"> | <td><div align="center">Avairable PE</div></td> | ||
<td><div align="center">smp, mpi128, mpi256, make</div></td> | <td><div align="center">smp, mpi128, mpi256, make</div></td> | ||
<td><div align="center">smp, mpi128, mpi256, make</div></td> | <td><div align="center">smp, mpi128, mpi256, make</div></td> | ||
86行目: | 86行目: | ||
</tr> | </tr> | ||
</table><br> | </table><br> | ||
*キューの稼働状況はこちらをご覧ください[http://bioserv.nibb.ac.jp/job/index2.html] | |||
*キューを指定しない場合、デフォルトでは「small」で実行されます。 | *キューを指定しない場合、デフォルトでは「small」で実行されます。 | ||
*1ユーザが全てのキュー合計で同時実行可能なジョブ数は、400 | |||
*400個以上のジョブを投入すると401個目からは待ち状態になります。アレイジョブも同様 | |||
* [[denovoアセンブリ用catキューの使い方]] | * [[denovoアセンブリ用catキューの使い方]] | ||
<br> | <br> | ||
117行目: | 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 | |||
自分のジョブの様子を見る | 自分のジョブの様子を見る | ||
$ qstat | |||
全ユーザのジョブの様子を見る | 全ユーザのジョブの様子を見る | ||
$ qstat -u '*' | |||
== SGE コマンド早見表 == | == SGE コマンド早見表 == | ||
137行目: | 140行目: | ||
<td><div align="center">'''qstat'''</div></td> | <td><div align="center">'''qstat'''</div></td> | ||
<td><div align="center">ジョブとキューの状態を表示する</div></td> | <td><div align="center">ジョブとキューの状態を表示する</div></td> | ||
</tr> | |||
<tr> | |||
<td><div align="center">'''qstat -u''' ''"user_name"''</div></td> | |||
<td><div align="center">指定ユーザのジョブとキューの状態を表示する("*" で全員)</div></td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
155行目: | 162行目: | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td><div align="center">'''qmod - | <td><div align="center">'''qmod -sj''' ''job-ID''</div></td> | ||
<td><div align="center">実行中のジョブをサスペンドする</div></td> | <td><div align="center">実行中のジョブをサスペンドする</div></td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td><div align="center">'''qmod - | <td><div align="center">'''qmod -usj''' ''job-ID''</div></td> | ||
<td><div align="center">サスペンド中のジョブを再実行する</div></td> | <td><div align="center">サスペンド中のジョブを再実行する</div></td> | ||
</tr> | </tr> | ||
176行目: | 183行目: | ||
<tr> | <tr> | ||
<td><div align="center">'''#$ -o''' ''filename''</div></td> | <td><div align="center">'''#$ -o''' ''filename''</div></td> | ||
<td><div | <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 | <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 | <td><div>キューを指定してジョブを実行</div></td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td><div align="center">'''#$ -cwd'''</div></td> | <td><div align="center">'''#$ -cwd'''</div></td> | ||
<td><div | <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 | <td><div>現在の環境を引き継ぐ</div></td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td><div align="center">'''#$ -v''' ''環境変数''</div></td> | <td><div align="center">'''#$ -v''' ''環境変数名=環境変数''</div></td> | ||
<td><div | <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 | <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 | <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 | <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 | <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 | <td><div>並列ジョブを実行する場合の環境と並列数の指定</div></td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td><div align="center">'''#$ -t''' ''開始番号-終了番号''</div></td> | <td><div align="center">'''#$ -t''' ''開始番号-終了番号''</div></td> | ||
<td><div | <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 開始番号-終了番号 |