kuroの覚え書き

96の個人的覚え書き

TORQUEつづき

どうもちゃんと動いていないような気がしてならないので、いろいろテストしてみる。

$ echo "sleep 30" | qsub -l nodes=1:ppn=8

こういうふうにジョブを投げると

$ qstat -t
Job ID                    Name             User            Time Use S Queue
------------------------- ---------------- --------------- -------- - -----
97.HostA                  STDIN            rnaseq                 0 R batch

こんなふうに走る。
このコマンドを6個くらい連打すると

$ qstat -t
Job ID                    Name             User            Time Use S Queue
------------------------- ---------------- --------------- -------- - -----
98.HostA                  STDIN            rnaseq                 0 R batch          
99.HostA                  STDIN            rnaseq                 0 R batch          
100.HostA                 STDIN            rnaseq                 0 R batch          
101.HostA                 STDIN            rnaseq                 0 R batch          
102.HostA                 STDIN            rnaseq                 0 R batch          
103.HostA                 STDIN            rnaseq                 0 Q batch 

このように5ジョブがR、1ジョブがQとなった。
-l nodes=1:ppn=8
としているので1ジョブで1ノードの8CPUを専有しているため、8/16/16の3ノードで5ジョブが走ったわけだ。
つまりちゃんとジョブ管理できているね。

$ echo "sleep 30" | qsub -l nodes=2:ppn=16

こんなふうに投げると2ノードを専有するため1ジョブしか走れなくなり

$ qstat -t
Job ID                    Name             User            Time Use S Queue
------------------------- ---------------- --------------- -------- - -----
107.HostA                 STDIN            rnaseq                 0 R batch          
108.HostA                 STDIN            rnaseq                 0 Q batch

こうなる。

先日の動作試験ではHostAでしか動作しなかったのだが、スクリプトの書き方に問題があったのかもしれない。


TORQUEの場合、どうもどのノードで処理するかの指定が効かないし、実際にどのノードで走っているのかはわからないようだ。今のシステムのように計算ノードでCPUの種類や構成が違っている場合、指定ができたほうが割り振りが効率的にできそうな気もするのだが。