mpiexec.hydra - 如何在hydra_pmi_proxy位置不同的机器上运行MPI进程?

时间:2012-11-14 21:09:04

标签: mpi mpich

我正在尝试使用MPICH在两台机器的集群上运行一个简单的MPI程序。然而,一个正在运行Fedora 17而另一个正在运行Debian Squeeze - 不一定是个问题,但问题是两个发行版将他们的mpi执行者放在不同的目录中:

当我从host1运行以下命令时:

mpiexec -hosts host2 -np 1 -wdir /home/chris/src/mpi/ ./mpitest

失败并出现以下错误

bash: /usr/lib/mpich2/bin/hydra_pmi_proxy: No such file or directory

这似乎是因为hydra_pmi_proxy安装在Fedora机器上的/usr/lib/mpich2/bin中,但是安装在Debian机器上的/usr/bin中。我假设当我通过ssh从host1生成进程时,它希望在host2上的相同位置找到hydra_pmi_proxy。

如果我只是在该节点上本地运行它,程序在两台机器上运行正常 - 我只是在尝试在两个机器上运行它时遇到问题。

我在MPICH文档中搜索了一种覆盖到hydra_pmi_proxy的远程路径的方法,但无济于事。

我能以某种方式这样做吗?我认为MPICH的一个优点是它可以轻松处理异形宿主......

任何见解都会非常感激!

3 个答案:

答案 0 :(得分:2)

我设法解决了这个问题,没有安装mpich hydra和终端(例如apt-get install MPICH2或hydra)。但我改为下载源代码:http://www.mpich.org/downloads/(稳定版)。   然后我在机器主机和从机上运行以下命令:export PATH = / home / you / mpich:$ PATH(在我的计算机上我安装在我的mpich目录上)。

刚刚解决了这个问题!

谢谢!

答案 1 :(得分:0)

这可以通过其源代码安装MPICH并将安装目录安装在与服务器上的目录相同的目录中的节点来解决。然后在服务器上使用export PATH = / home / you / mpich-installation-directory / bin:$ PATH。

答案 2 :(得分:0)

这个问题可以在NFS配置中解决:exportfs -var(在主机中)。

您有/mirror目录,但有必要在/usr中添加目录/etc/exports

/usr *(rw,sync,no_subtree_check)

在客户端计算机中,修改/etc/fstab并添加:

master-ip/usr   /usr nfs defaults 0 0

保存并运行命令mount -a

运行df -h以查看slave / client中master的挂载目录。