我试图在两台机器的集群上使用MPICH运行一个简单的MPI程序.然而,一个正在运行Fedora 17而另一个正在运行Debian Squeeze - 不一定是个问题,但问题是两个发行版将他们的mpi执行者放在不同的目录中:
当我从host1运行以下内容时:
mpiexec -hosts host2 -np 1 -wdir /home/chris/src/mpi/ ./mpitest
Run Code Online (Sandbox Code Playgroud)
它失败并出现以下错误
bash: /usr/lib/mpich2/bin/hydra_pmi_proxy: No such file or directory
Run Code Online (Sandbox Code Playgroud)
这似乎是因为hydra_pmi_proxy安装在/usr/lib/mpich2/binFedora机器上而是安装在/usr/binDebian机器上.我假设当我通过ssh从host1生成进程时,它希望在host2上的相同位置找到hydra_pmi_proxy.
如果我只是在该节点上本地运行它,程序在两台机器上运行正常 - 我在尝试在两者上运行它时只会遇到问题.
我已经在MPICH文档中搜索了一种覆盖远程路径的方法hydra_pmi_proxy,但无济于事.
我能以某种方式这样做吗?我认为MPICH的一个优点是它可以轻松处理hetrogeneous host ....
任何见解都将非常感激!
小智 2
我设法解决了这个问题,没有安装 mpich Hydra 和终端(例如 apt-get install MPICH2 或 Hydra)。但我下载了源代码:http://www.mpich.org/downloads/(稳定版本)。然后我在主机和从机上运行以下命令:export PATH=/home/you/mpich:$PATH(在我的计算机上我安装在我的 mpich 目录中)。
刚刚解决了这个问题!
谢谢!