6

我正在尝试在两台机器的集群上使用 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它安装在/usr/lib/mpich2/binFedora 机器上,但安装在/usr/binDebian 机器上。我假设当我通过 ssh 从 host1 生成进程时,它希望在 host2 的同一位置找到 hydra_pmi_proxy。

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

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

我能以某种方式做到这一点吗?我认为 MPICH 的优点之一是它可以轻松处理异构主机......

任何见解将不胜感激!

4

3 回答 3

2

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

刚刚解决了这个问题!

谢谢!

于 2013-10-27T13:45:01.573 回答
0

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

于 2014-06-15T16:03:31.190 回答
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 挂载的目录。

于 2016-08-25T21:47:04.100 回答