Cluster computing mpiexec使用错误数量的CPU

Cluster computing mpiexec使用错误数量的CPU,cluster-computing,mpich,mpiexec,Cluster Computing,Mpich,Mpiexec,我正在尝试设置MPI群集。但是我有一个问题,添加到mpd.conf文件中的CPU数量没有正确使用。 我有三台Ubuntu服务器。 48芯opteron 8芯的calc1 具有8个核心的calc2 我的mpd.hosts看起来像: opteron:46 calc1:6 calc2:6 引导(mpdboot-n3-fmpd.hosts)后,系统正在运行。 mpdtrace->列出了这三个选项 但是运行类似“mpiexec-N58 raxmlHPC MPI…”的程序会导致calc1和calc2得到许多

我正在尝试设置MPI群集。但是我有一个问题,添加到mpd.conf文件中的CPU数量没有正确使用。 我有三台Ubuntu服务器。 48芯opteron 8芯的calc1 具有8个核心的calc2

我的mpd.hosts看起来像:
opteron:46
calc1:6
calc2:6

引导(mpdboot-n3-fmpd.hosts)后,系统正在运行。 mpdtrace->列出了这三个选项

但是运行类似“mpiexec-N58 raxmlHPC MPI…”的程序会导致calc1和calc2得到许多作业,而opteron同时得到的作业很少。 我做错了什么

问候

我找到了一个解决办法。 我为mpiexec命令使用了额外的参数“-machinefile/path/to/mpd.hosts”。现在,所有节点都正常运行。 我遇到的一个问题是,我收到了以下错误消息:

。。。MPIU_SHMW_Seg_create_attach_temp(671):打开失败-没有这样的文件或目录


为了解决这个问题,我必须设置环境变量
MPICH\u NO\u LOCAL=1

正如您所想的,您必须将machinefile同时传递给
mpdboot
mpiexec
,以便使用每主机进程计数。“打开失败”问题是您正在使用的流程管理器MPD中的一个已知错误。请注意,
MPICH\u NO\u LOCAL=1
解决方案将起作用,但可能会对内部节点通信造成很大的性能损失


很明显,您使用的是MPICH2(或MPICH2的派生版本),但不清楚您使用的是什么版本。如果可以,我强烈建议您升级到MPICH2 1.2.1p1或(更好的)1.3.1。这两个版本都包含一个新的流程管理器,名为,它更快、更健壮。在1.3.1中,hydra是默认的流程管理器。它不需要
mpdboot
阶段,并且它支持
$HYDRA\u HOST\u FILE
环境变量,这样您就不必在每个
mpiexec

上指定机器文件。启动mpiexec后,opteron获得20、calc1 19和calc2 19进程。我告诉mpiexec的数字是58