2012-05-12 46 views
0

我試圖運行安裝扭矩和1.3.2的openmpi一個集羣上的MPI工作,我總是得到以下錯誤:錯誤上運行MPI作業

「的mpirun無法啓動指定的應用程序,因爲它無法找到可執行文件: 可執行文件:-p 節點:compute-101-10.local 嘗試啓動進程等級0時。「

我用下面的腳本做的qsub:

#PBS -N mphello 
#PBS -l walltime=0:00:30 
#PBS -l nodes=compute-101-10+compute-101-15 
cd $PBS_O_WORKDIR 
mpirun -npersocket 1 -H compute-101-10,compute-101-15 /home/username/mpi_teste/mphello 

任何想法,爲什麼出現這種情況? 我想要的是在每個節點(compute-101-10和compute-101-15)中運行1個進程。我在這裏弄錯了什麼? 我已經嘗試了mpirun命令的幾種組合,但程序只在一個節點上運行,或者它給了我上述錯誤...

在此先感謝!

+1

您可以檢查您是否在節點上配置了OpenMPI 1.3.2。 OpenMPI 1.2中不存在-nocketocket選項,這正是使用此選項調用OpenMPI 1.2中的mpirun時會說的。使用'mpirun --version' –

+0

是的,就是這樣...:/,謝謝! –

+0

我會發布這個答案,以便你可以關閉這個問題。 –

回答

1

在OpenMPI 1.2中不存在-npersocket選項。

說的openmpi報道

mpirun was unable to launch the specified application as it could not find an executable: Executable: -p is exactly what mpirun in OpenMPI 1.2 would say if called with this option.

運行mpirun --version將確定的openmpi的版本是默認的計算節點上的診斷。

+1

順便說一下,Open MPI 1.3.x是*古代*。我們昨天剛剛發佈了Open MPI 1.6。你應該升級。 –

+0

我知道這是古老的,但它不取決於我,它取決於羣集管理員:/ –

0

問題是-npersocket標誌只被Open MPI 1.3.2支持,而我運行我的代碼的集羣只有Open MPI 1.2不支持該標誌。

圍繞一個可能的方式是使用標誌-loadbalance並指定我想要的代碼與標誌-H節點1,節點2,節點3,......像這樣運行的節點:

mpirun -loadbalance -H node1,node2,...,nodep -np number_of_processes program_name 

這樣每個節點將運行number_of_processes/p個進程,其中p將運行進程的節點的數量。