我正在尝试使用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的一个优点是它可以轻松处理异形宿主......
任何见解都会非常感激!
答案 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的挂载目录。