【问题标题】:mpiexec.hydra - how to run MPI process on machines where locations of hydra_pmi_proxy are different?mpiexec.hydra - 如何在 hydra_pmi_proxy 位置不同的机器上运行 MPI 进程?
【发布时间】: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

标签: mpi mpich


【解决方案1】:

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

刚刚解决了这个问题!

谢谢!

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      这个问题可以在 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 挂载的目录。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-09
        • 1970-01-01
        • 1970-01-01
        • 2012-03-13
        • 1970-01-01
        • 1970-01-01
        • 2019-06-06
        • 1970-01-01
        相关资源
        最近更新 更多