1

並列化された Rを使用してジョブを送信してqsubいます。私の意図は、R プログラムを 8 コアではなく 4 つの異なるコアで実行することです。PBSファイル内の私の設定の一部を次に示します。

    #PBS -l nodes=1:ppn=4

....
time  R --no-save < program1.R > program1.log

コマンドを発行するta job_idと、4 つのコアがリストされていることがわかります。ただし、ジョブは大量のメモリを占有します(31944900k used vs 32949628k total)。8 コアを使用すると、メモリの制限によりジョブがハングアップしました。

top - 21:03:53 up 77 days, 11:54,  0 users,  load average: 3.99, 3.75, 3.37
Tasks: 207 total,   5 running, 202 sleeping,   0 stopped,   0 zombie
Cpu(s): 30.4%us,  1.6%sy,  0.0%ni, 66.8%id,  0.0%wa,  0.0%hi,  1.2%si,  0.0%st
Mem:  32949628k total, 31944900k used,  1004728k free,   269812k buffers
Swap:  2097136k total,     8360k used,  2088776k free,  6030856k cached

コマンド発行時のスナップショットを次に示します。ta job_id

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1794 x     25   0 6247m 6.0g 1780 R 99.2 19.1   8:14.37 R
 1795 x     25   0 6332m 6.1g 1780 R 99.2 19.4   8:14.37 R
 1796 x     25   0 6242m 6.0g 1784 R 99.2 19.1   8:14.37 R
 1797 x     25   0 6322m 6.1g 1780 R 99.2 19.4   8:14.33 R
 1714 x     18   0 65932 1504 1248 S  0.0  0.0   0:00.00 bash
 1761 x     18   0 63840 1244 1052 S  0.0  0.0   0:00.00 20016.hpc
 1783 x     18   0  133m 7096 1128 S  0.0  0.0   0:00.00 python
 1786 x     18   0  137m  46m 2688 S  0.0  0.1   0:02.06 R

他のユーザーが他の 4 つのコアを使用できないようにするにはどうすればよいですか? 私の仕事が 4 コアのアイドリングで 8 コアを使用していることをどうにかして隠すのが好きです。

誰か親切にこれについて私を助けてもらえますか? これは pbs を使用して解決できますか?

どうもありがとう

4

2 に答える 2

1

「他のユーザーが他の 4 つのコアを使用できないようにするにはどうすればよいでしょうか? 私は自分の仕事が 4 つのコアをアイドル状態にして 8 つのコアを使用していることをどうにかして隠すのが好きです。」

多分それを回避する簡単な方法は、他の4つで「スリープ」ジョブを送信することですか? ハックっぽいけど!(警告、私の PBS は錆びています!)

于 2011-01-03T19:41:53.497 に答える
0

次のことをしてみませんか-

PBSにppn=4を要求し、さらに、ノード上のすべてのメモリを要求します。

#PBS -l nodes=1:ppn=4 -l mem=31944900k 

これは、セットアップでは不可能な場合があります。

Rがどのように並列化されるかはわかりませんが、OPENMPの場合は、間違いなく8コアを要求できますが、OMP_NUM_THREADSを4に設定します。

于 2011-03-10T10:04:25.917 に答える