0
我有一個MPI程序,用於創建一個文件,每次迭代都有一定的計算時間。當我運行這段代碼而沒有提交隊列時(這個集羣運行SGE),它會在幾秒鐘內給出以下時間。我用mpirun -np8
抓住了8個處理器。提交到隊列後,MPI程序的計時發生了顯着變化
STEP ITIME
-------------
1 0.868128
2 0.426714
3 0.409768
4 0.427312
5 0.412737
6 0.413256
7 0.414480
8 0.414984
9 0.415683
10 0.416826
但是,當我提出相同的工作數量爲8個處理器,並將其提交到隊列中,程序需要更多的時間迭代計算。每步的時間差不多四倍。
STEP ITIME
-------------
1 3.189155
2 1.594365
3 1.600892
4 1.589424
5 1.605402
6 1.589136
7 1.599425
8 1.591966
9 1.601557
10 1.603447
以下bash腳本用於提交作業。
#!/bin/sh
#$ -S /bin/bash
#$ -pe orte 8
export PATH=~:$PATH
/opt/openmpi/bin/mpirun -np 8 ./exec
如果有人能指出我可能會導致此問題,我將不勝感激?
我試過$/opt/openmpi/bin/mpirun -np 8 uname -a。當我在命令行上運行它時,我得到了8條相同的線。但是,當我嘗試提交隊列時,我得到了8條不同的線。似乎它運行在8個不同的主機上。 – Madisz 2014-09-10 15:10:11
好吧,你去了:你的命令行在一臺機器上執行,進程通過共享內存或非常快的本地環回來交換消息。您的隊列提交請求了8個節點並遍佈這8個節點。沒有什麼不對的 - 你可以通過這種方式擴展到更高水平的並行性 - 但這就是發生了什麼。 – 2014-09-10 15:41:09