【发布时间】:2012-11-03 10:52:03
【问题描述】:
我正在尝试使用 MPICH 在由两台机器组成的集群上运行一个简单的 MPI 程序。然而,一个运行 Fedora 17,另一个运行 Debian Squeeze - 不一定是问题,但问题是这两个发行版将他们的 mpi exec 放在不同的目录中:
当我从 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 的优点之一是它可以轻松处理异构主机....
任何见解都将不胜感激!
【问题讨论】:
-
在 Debian 上的
/usr/lib/mpich2/bin下添加符号链接到hydra_pmi_proxy怎么样? -
那种工作(我现在收到与通信问题有关的错误),但似乎有点脏!
-
查看 Hydra 源代码,似乎前端负责找出到
hydra_pmi_proxy的路径(在HYD_uii_mpx_get_parameters中),然后在所有节点之间重用该路径。但我对 Hydra 的内部运作不是很熟悉,所以我可能是错的。我想试试submitting a ticket。