差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
グリッドエンジンの使い方 [2020/12/18 07:20] – [グリッドエンジンの使い方] 118.240.79.152 | グリッドエンジンの使い方 [Unknown date] (現在) – 削除 - 外部編集 (Unknown date) 127.0.0.1 | ||
---|---|---|---|
行 1: | 行 1: | ||
- | # グリッドエンジンの使い方 | ||
- | 解析の場所はホーム(~/ | ||
- | |||
- | もし解析結果が1TB以上になりそうであれば、適当に空き容量の大きなサーバを```df -h```コマンドで探して、例えばm768bだったとするなら、```/ | ||
- | |||
- | 例えば、 | ||
- | ``` | ||
- | echo a | ||
- | ``` | ||
- | というコマンドをグリッドエンジンで投げる場合、 | ||
- | ``` | ||
- | qsub -pe def_slot 4 -l mem_req=4G -j Y -N myjob / | ||
- | ``` | ||
- | という風に入力するとグリッドエンジンで処理される。 | ||
- | 上の例では、4CPU、メモリは4GBx4CPU=16GBだけ確保するという意味。 | ||
- | 必要なCPU数、メモリ量を、まずは小さい入力ファイルでテスト実行し、見当をつけておくこと。確保するメモリ量を必要以上に多く取ってしまうと、同時実行可能なジョブ数が減ってしまう。逆に必要以上に確保するメモリを小さくすると、サーバの実メモリが足りなくなり、サーバがハングアップしてしまう。必ずメモリは必要量以上は指定すること! | ||
- | |||
- | 必要メモリの目安: | ||
- | |||
- | - マッピング・・・合計10GB | ||
- | - アセンブル・・・合計300GB | ||
- | - HISATのインデックス作成・・・合計100GB | ||
- | |||
- | |||
- | 実行結果は、上の例なら、例えば「myjob.o504971」などに出力される。このときファイル名末尾の「504971」がジョブID。 | ||
- | |||
- | 現在自分の投げたジョブの状態を見るには```qstat```を使う。そのほか、qdel, | ||
- | |||
- | よく使うグリッドエンジン操作コマンド例: | ||
- | |||
- | ``` | ||
- | # | ||
- | qstat | ||
- | |||
- | # | ||
- | qstat -j 504971 | ||
- | |||
- | # | ||
- | qacct -j 504971 | ||
- | |||
- | # | ||
- | qdel 504971 | ||
- | |||
- | # | ||
- | qdel `qstat|awk ' | ||
- | ``` | ||
- | |||
- | 普通グリッドエンジンを使いたくなる時は、FASTQが沢山あって、ファイルごとにバラバラにマッピングしたいときなどで、例えば次のように使うことになる。 | ||
- | |||
- | ``` | ||
- | for i in *.fastq.gz; do | ||
- | qsub -pe def_slot 4 -l mem_req=4G / | ||
- | done | ||
- | ``` | ||
- | |||
- | |||
- | |||
- | # グリッドエンジンの使い方 (こちらでも可能だけど、qsubを直接扱うのを推奨) | ||
- | ``` | ||
- | ジョブを並列実行させたい人も居ると思うので、簡単に研究室のサーバ全体に分散処理して計算させるスクリプトを用意しました。 | ||
- | (一つのコマンドを分割処理するわけではなく、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_.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 と入力すると、サーバ上で実行しているジョブも併せて表示してくれます。 | ||
- | ``` |