qsubarraypbs

qsubarraypbs コマンドは PBSのアレイジョブの機能を使って、ファイルに書かれた多数のジョブをPCクラスターで分散実行するコマンドです。

利用方法

$ qsubarraypbs [オプション]  (ジョブが書かれたファイル)
オプション
  • -q (queue名) … JP1, JP4, JP10, JP20 (必須)
  • -l select=1:ncpus=(1ジョブ当たりの使用コア数):mem=(1ジョブ当たりの使用メモリ)
  • その他のqsubオプション (-N, -r, -v, -l, -p, -P, -W)
ジョブが書かれたファイル
  • 1行につき1ジョブのコマンドを書いて下さい。各行のジョブは独立(依存関係がない)でなければなりません。
  • リダイレクトは sh/bash 形式で書いて下さい。
    (コマンド)  1>xxx.out  2>xxx.err
  • # から始まる行はコメント行で無視されます。
  • 最大1万行(# から始まる行も含む)の制限があります。
補足
  • 1ジョブ(1行)あたり最大24時間の実行時間制限があります。
  • 最大512コア分のジョブが同時実行されます。
  • qsubarraypbsコマンドを実行する前に、使用するアプリケーションを module load しておいて下さい。
  • ディレクトリ pbslog/ にエラーメッセージ、エラーになったジョブ等が出力されます。
  • qsubコマンドのメール通知機能(-M, -m オプション)は使用できません。
  • 「ジョブが書かれたファイル」の中に並列化されているプログラムを列挙した場合は、1行あたり1コアしか使用しない場合でも使用コア数を明示的に指定して下さい。
    例)
      blastp -query xxx.fa -db yyy -num_threads 1 1>xxx.out 2>xxx.err
      ssearch36 -T 1 xxx.fa db 1>xxx.out 2>xxx.err
      hmmscan --cpu 1 Pfam-A.hmm xxx.fa 1>xxx.out 2>xxx.err
  • qsubarraypbsコマンドでジョブを実行した場合は、必ず PbsExitStatus コマンドでジョブの終了ステータスを確認して下さい(メモリ制限や実行時間制限等にひっかかって予期せずして異常終了したジョブがないか確認するため)。

実行例

1ジョブあたり 1コアを使用して計算

$ qsubarraypbs  –q  JP1  (ジョブが書かれたファイル)

  • ジョブが書かれたファイル
    blastp -db xxx -query test00.fa -num_threads 1 1>test00.out 2>test00.err
    blastp -db xxx -query test01.fa -num_threads 1 1>test01.out 2>test01.err
    ...
    blastp -db xxx -query test98.fa -num_threads 1 1>test98.out 2>test98.err
    blastp -db xxx -query test99.fa -num_threads 1 1>test99.out 2>test99.err
    

1ジョブあたり 1コア、メモリ15GB を使用して計算

$ qsubarraypbs  –q  JP4  –l  select=1:ncpus=1:mem=15gb    (ジョブが書かれたファイル)

  • JP1 queue は最大メモリサイズが12GB ですので、JP4 queueを指定しています。

1ジョブあたり 2コア使用して計算

$ qsubarraypbs  –q  JP4  –l  select=1:ncpus=2    (ジョブが書かれたファイル)

  • ジョブが書かれたファイル
    blastp -db xxx -query test00.fa -num_threads 2 1>test00.out 2>test00.err
    blastp -db xxx -query test01.fa -num_threads 2 1>test01.out 2>test01.err
    ...
    blastp -db xxx -query test98.fa -num_threads 2 1>test98.out 2>test98.err
    blastp -db xxx -query test99.fa -num_threads 2 1>test99.out 2>test99.err
    

関連ページ