如何在hydra\u pmi\u代理位置不同的机器上运行MPI进程?

如何在hydra\u pmi\u代理位置不同的机器上运行MPI进程?,mpi,mpich,Mpi,Mpich,我正在尝试在两台机器的集群上使用MPICH运行一个简单的MPI程序。但是,一个运行Fedora 17,另一个运行Debian Squence—这不一定是个问题,但问题是这两个发行版将其mpi EXEC放在不同的目录中: 当我从主机1运行以下操作时: mpiexec -hosts host2 -np 1 -wdir /home/chris/src/mpi/ ./mpitest 它失败,出现以下错误 bash: /usr/lib/mpich2/bin/hydra_pmi_proxy: No suc

我正在尝试在两台机器的集群上使用MPICH运行一个简单的MPI程序。但是,一个运行Fedora 17,另一个运行Debian Squence—这不一定是个问题,但问题是这两个发行版将其mpi EXEC放在不同的目录中:

当我从主机1运行以下操作时:

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\u pmi\u proxy
安装在Fedora机器上的
/usr/lib/mpich2/bin
中,但安装在Debian机器上的
/usr/bin
中。我假设当我通过ssh从host1生成进程时,它希望在host2的相同位置找到hydra_pmi_代理

如果我只是在该节点上本地运行程序,那么该程序在两台机器上都可以正常运行-我只有在尝试在两台机器上运行时才会遇到问题

我在MPICH文档中搜索了一种覆盖到
hydra\u pmi\u代理的远程路径的方法,但没有找到任何结果

我可以这样做吗?我认为MPICH的优点之一是它可以轻松地处理异类主机


任何见解都将不胜感激

我设法解决了这个问题,没有安装mpich hydra和终端(例如,安装mpich 2或hydra)。但是我下载了源代码:(是稳定的版本)。 然后,我在主机和从机上运行以下命令:export PATH=/home/you/mpich:$PATH(在我的计算机上,我安装在我的mpich目录下)

刚刚解决了这个问题


谢谢

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

此问题可以在NFS配置中使用:
exportfs-var解决(在主计算机中)

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

/usr *(rw,sync,no_subtree_check)
在客户端计算机中,编辑
/etc/fstab
并添加:

master-ip/usr   /usr nfs defaults 0 0
保存并运行命令
mount-a


运行
df-h
后,在slave/client中查看从master挂载的目录。

在Debian上的
/usr/lib/mpich2/bin
下添加一个符号链接到
hydra\u pmi\u proxy
怎么样?这很有效(我现在收到了与通信问题相关的错误),但看起来有点脏!查看Hydra源代码,前端似乎负责找出Hydra_pmi_代理的路径(在Hydra_uii_mpx_get_参数中),然后在所有节点上重用该路径。但我对Hydra的内部工作原理不太熟悉,所以我可能错了。我想试试。