グリッドエンジンの使い方

グリッドエンジンの使い方 (2020/6以降)

解析の場所はホーム(~/)以下に適当にフォルダを作って、その中で行う。 例えば、

echo a

というコマンドをグリッドエンジンで投げる場合、

qsub -pe def_slot 4 -l mem_req=4G /suikou/tool/yoshitake/qsubsh4 "echo a"

という風に入力するとグリッドエンジンで処理される。 上の例では、4CPU、メモリは4GBx4CPU=16GBだけ確保するという意味。 必要なCPU数、メモリ量を、まずは小さい入力ファイルなどから見当をつけておくこと。

普通グリッドエンジンを使いたくなる時は、FASTQが沢山あって、ファイルごとにバラバラにマッピングしたいときなどで、例えば次のように使うことになる。

for i in *.fastq.gz; do
 qsub -pe def_slot 4 -l mem_req=4G /suikou/tool/yoshitake/qsubsh4 "bwa mem -t 4 ref.fasta $i|samtools sort -@ 4 -o $i.bam -"
done

workフォルダの中で並列実行したい場合 (2020/5まで)

ジョブを並列実行させたい人も居ると思うので、簡単に研究室のサーバ全体に分散処理して計算させるスクリプトを用意しました。
(一つのコマンドを分割処理するわけではなく、bwaやblastなど、サンプルごとに同じような処理を何度も行うときに使用します。)

分散処理の行い方は簡単で、例えば
blastn -db database -query sample1.fasta -num_thread 4 > output.blast
といったコマンドをサーバ上で複数実行したいとします。

1つのコマンドにつき4 CPU, メモリ16 GB程度のリソースを使って実行する場合、下記のようにコマンドを「" (ダブルクオーテーション)」で囲んでrunGE-4cpu-16gbの引数に渡してください。
runGE-4cpu-16gb "blastn -db database -query sample1.fasta -num_thread 4 > output.blast"

こうすると、runGE-4cpu-16gbのスクリプトの中で、グリッドエンジンに適切なパラメータを指定して分散処理を実行するようになっています。
ターミナルに出力される文章などは、上記の例であれば、blastn__db_database_.o5878といったファイルに出力されるようになります。

もっと多くのリソースを使う場合は、
4CPUで64GBの場合は、runGE-4cpu-64gb
8CPUで32GBの場合は、runGE-8cpu-32gb
8CPUで128GBの場合は、runGE-8cpu-128gb
といったコマンドを使ってください。
特にハードリミットは設けていないので、もし仮に指定した以上のメモリを使ってもジョブを強制終了したりしませんが、メモリを使い果たすとサーバが止まってしまうので、なるべく適切な量を指定してください。(かと言って、リソースを多めに予約してしまうと、分散処理の効率が下がってしまうので、多めに指定したほうが良いというわけではありません。)

自分の実行したジョブがどのサーバで実行されているかなどは、
qstat
というコマンドで確認してください。
グリッドエンジン用のスクリプトとして、1コアでメモリ4GBまでのジョブ用のスクリプトを用意しました。

使い方は同様に
runGE-1cpu-4gb "echo a > log.txt"
といった感じです。

グリッドエンジン使用時によく使うコマンドとして、下記のコマンドがあります。
・qstat
 ジョブの状態を確認します。
・qdel
 ジョブを削除するときに使用します。qstatでjob-IDを確認して、例えばjob-IDが5803だった場合、
 qdel 5803
 などと入力します。
・qhost
 サーバのCPU数、メモリ数、負荷状況を表示します。qhost -j と入力すると、サーバ上で実行しているジョブも併せて表示してくれます。
  • グリッドエンジンの使い方.1591949287.txt.gz
  • 最終更新: 2020/06/12 08:08
  • by 118.240.79.152