【问题标题】:mpiexec using wrong number of cpusmpiexec 使用错误数量的 cpu
【发布时间】:2011-05-03 10:09:29
【问题描述】:

我正在尝试设置 MPI 集群。但是我的问题是添加到 mpd.conf 文件中的 CPU 数量没有正确使用。 我有三台 Ubuntu 服务器。 具有 48 个内核的 opteron 具有 8 个内核的 calc1 具有 8 个核心的 calc2。

我的 mpd.hosts 看起来像:
opteron:46
calc1:6
calc2:6

启动后(mpdboot -n 3 -f mpd.hosts)系统正在运行。 mpdtrace -> 列出了所有三个。

但是运行像“mpiexec -n 58 raxmlHPC-MPI ...”这样的程序会导致 calc1 和 calc2 获得许多工作,而 opteron 同时获得很少的工作。 我做错了什么?

问候

比约恩

【问题讨论】:

  • 启动 mpiexec 后,opteron 得到 20 个,calc1 19,和 calc2 19 个进程。那是 58,我告诉 mpiexec 的数字

标签: cluster-computing mpich mpiexec


【解决方案1】:

我找到了解决方法。 我为 mpiexec 命令使用了附加参数“-machinefile /path/to/mpd.hosts”。现在,所有节点都正常运行。 我遇到的一个问题是我收到以下错误消息:

... MPIU_SHMW_Seg_create_attach_templ(671): 打开失败 - 没有这样的文件或目录...

要修复它,我必须设置环境变量MPICH_NO_LOCAL=1

【讨论】:

    【解决方案2】:

    如您所见,您必须将机器文件传递给 mpdbootmpiexec 才能使用每个主机的进程计数。 “打开失败”问题是您正在使用的进程管理器 MPD 中的一个已知错误。请注意,MPICH_NO_LOCAL=1 变通办法可行,但可能会导致节点内通信的性能大幅下降。

    您显然在使用 MPICH2(或 MPICH2 衍生产品),但不清楚您使用的是什么版本。如果可以的话,我强烈建议升级到 MPICH2 1.2.1p1 或(更好)1.3.1。这两个版本都包含一个名为hydra 的更新的进程管理器,它更快、更健壮。在 1.3.1 中,hydra 是默认的进程管理器。它不需要mpdboot 阶段,它支持$HYDRA_HOST_FILE 环境变量,因此您不必在每个mpiexec 上指定机器文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多