运行mpi作业时出错

运行mpi作业时出错,mpi,cluster-computing,Mpi,Cluster Computing,我试图在安装了torque和openmpi 1.3.2的群集上运行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 mp

我试图在安装了torque和openmpi 1.3.2的群集上运行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)。我这里出了什么错? 我已经尝试了mpirun命令的几种组合,但要么程序只在一个节点上运行,要么它给出了上述错误


提前谢谢

OpenMPI 1.2中不存在
-npersocket
选项

OpenMPI报告的诊断

mpirun无法启动指定的应用程序,因为它无法启动 查找可执行文件:可执行文件:-p 如果使用此选项调用,则OpenMPI 1.2中的mpirun会给出确切的说明


运行
mpirun--version
将确定计算节点上默认的OpenMPI版本。

问题是-npersocket标志仅受Open MPI 1.3.2支持,而我运行代码的集群只有Open MPI 1.2不支持该标志

一种可能的解决方法是使用标志-loadbalance并指定我希望代码在其中使用标志-H node1、node2、node3等运行的节点,。。。像这样:

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

这样,每个节点将运行进程数/p进程,其中p是进程将运行的节点数。

您是否可以检查节点上是否配置了OpenMPI 1.3.2。OpenMPI 1.2中不存在-npersocket选项,如果使用此选项调用,OpenMPI 1.2中的mpirun会这么说。使用
mpirun--version
yes,就是它…:/,谢谢我会把它作为一个答案,这样你就可以结束这个问题了。顺便说一句,OpenMPI1.3.x是很古老的。我们昨天刚刚发布了OpenMPI1.6。你应该升级。我知道这很古老,但这不取决于我,而是取决于集群管理员:/