2016-08-23 117 views
2

我試圖在Rocks v5.4.3羣集上使用Sun Grid Engine調度程序運行並行MPI作業。該羣集有一個名爲「all.q」的隊列,其中有22個計算節點:其中21個具有8個CPU,1個具有4個CPU。然而,當一個並行作業運行時,它創建的所有任務都被限制在一個節點上。例如,如果我在作業提交腳本中請求16個CPU(任務),並使用qsub將作業提交給調度程序,那麼作業將成功啓動,但所有16個任務都是在單個節點上開始的(第一個分配給第一個節點),而不是分配給調度程序分配給作業的節點。Rocks羣集(SGE調度程序)上的MPI作業不運行多個節點

對於這個測試用例作業提交腳本如下:

#!/bin/bash 
#$ -N test 
#$ -cwd 
#$ -pe mpi 16 
#$ -S /bin/bash 
#$ -q all.q 
#$ -e $JOB_NAME.e$JOB_ID 
#$ -o $JOB_NAME.o$JOB_ID 

lammps=/home/Brian/lammps/lmp_openmpi 

/opt/intel/openmpi-1.4.4/bin/mpirun -machinefile $TMPDIR/machines \ 
-np $NSLOTS $lammps -in in.melt > job.log 

從調度輸出文件顯示,工作任務被分配到以下節點:

compute-1-14 
compute-1-14 
compute-1-14 
compute-1-14 
compute-1-14 
compute-1-14 
compute-1-14 
compute-1-14 
compute-1-16 
compute-1-16 
compute-1-16 
compute-1-16 
compute-1-16 
compute-1-16 
compute-1-16 
compute-1-16 

然而,如果我將ssh轉換爲compute-1-14並運行topgrep的lmp_openmpi進程,我會得到以下結果:

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 
21762 Brian 25 0 253m 87m 5396 R 99.1 0.5 2:19.60 lmp_openmpi 
21761 Brian 25 0 253m 87m 5508 R 73.3 0.5 1:50.14 lmp_openmpi 
21759 Brian 25 0 253m 87m 5804 R 71.3 0.5 1:55.38 lmp_openmpi 
21760 Brian 25 0 253m 87m 5512 R 71.3 0.5 1:36.27 lmp_openmpi 
21765 Brian 25 0 253m 87m 5324 R 61.4 0.5 1:53.11 lmp_openmpi 
21763 Brian 25 0 253m 87m 5496 R 59.5 0.5 1:53.14 lmp_openmpi 
21770 Brian 25 0 253m 87m 5308 R 59.5 0.5 1:45.21 lmp_openmpi 
21767 Brian 25 0 253m 87m 5504 R 57.5 0.5 1:58.65 lmp_openmpi 
21772 Brian 25 0 253m 87m 5304 R 43.6 0.5 1:52.24 lmp_openmpi 
21771 Brian 25 0 253m 87m 5268 R 39.6 0.5 1:51.23 lmp_openmpi 
21773 Brian 25 0 253m 87m 5252 R 39.6 0.5 1:52.02 lmp_openmpi 
21774 Brian 25 0 253m 87m 5228 R 39.6 0.5 1:47.85 lmp_openmpi 
21766 Brian 25 0 253m 87m 5332 R 29.7 0.5 1:51.18 lmp_openmpi 
21764 Brian 25 0 253m 87m 5356 R 27.7 0.5 2:09.05 lmp_openmpi 
21768 Brian 25 0 253m 87m 5356 R 21.8 0.5 1:35.28 lmp_openmpi 
21769 Brian 25 0 253m 87m 5324 R 7.9 0.5 1:50.63 lmp_openmpi 

這是16個進程,而在compute-1-16上運行top將顯示no lmp_openmpi進程。

我不知道我是如何徹底地解釋了這個問題,所以如果需要更多的信息,請讓我知道。我也是Rocks和SGE的新手,所以希望我的例子足夠清晰。如果沒有,我會修改。感謝所有提前。

+0

$ TMPDIR /機器是什麼樣的?你確定不應該是$ TMP /機器嗎? http://www.rocksclusters.org/roll-documentation/sge/4.2.1/submitting-batch-jobs.html –

+0

我試着換成$ TMP /機器,但給出了相同的結果。我認爲在我們的集羣上構建openMPI存在一個問題。我最終安裝了最新版本的英特爾編譯器v16.0.3和英特爾MPI v5.1.3,它解決了多節點問題。 (還是)感謝你的建議。 – Brian

回答

0

問題:在我們的集羣上構建openMPI問題。

解決方案:安裝最新版本的英特爾編譯器v16.0.3和英特爾MPI v5.1.3,它解決了多節點問題。

相關問題