【问题标题】:Process manager in MPIMPI 中的流程管理器
【发布时间】:2014-07-10 05:02:05
【问题描述】:

我是 MPI 的新手,我对 Job 创建和启动有一些疑问。我试图弄清楚 但事情对我来说很乱。所以我工作的集群架构是这样的——有四个节点(A、B、C、D)相互连接,每个节点上都安装了 MPICH2。 mpiexec -info 给出...

.....配置选项:'--prefix=/usr/local/mpich2-1.4.1-install/' '--with-pm=hydra' ....

    Process Manager:                        pmi
    Launchers available:                    ssh rsh fork slurm ll lsf sge manual persist
    Topology libraries available:           hwloc plpa
    Resource management kernels available:  user slurm ll lsf sge pbs

据我所知(如果我错了,请纠正我)PMI 是进程管理接口,hydra、mpirun、mpiexec 是进程管理器,如果我们使用不同的 PM,PMI 提供了与进程交互的方式。所以我的怀疑是-

1、为什么将PMI显示为Process Manager?

2、pbs有什么作用吗?

3,谁负责在不同节点上创建可执行文件的副本?(我正在从节点A启动作业)。

我知道问题很长,我会感谢一些好的资源的建议。

【问题讨论】:

    标签: parallel-processing mpi


    【解决方案1】:

    有两种类型的集群 - 受某些分布式资源管理器 (DRM)(如 PBS、LSF、S/OGE 等)控制的集群和不受控制的集群。典型的 DRM 提供了在授予的分配范围内启动远程进程并控制这些进程的机制,例如向他们发送信号并取回有关其启动和终止状态的信息。当集群不受 DRM 控制时,MPI 运行时必须实现自己的进程管理。不同的 MPI 库有不同的方法,但几乎所有方法都归结为通过 rsh 或 ssh 启动远程节点上的守护进程来处理远程进程。即使在使用 DRM 时,该库仍可能在两者之间放置自己的进程管理器以提供可移植性。

    MPICH 带有两个流程管理器:MPD 和 Hydra。 MPD 代表 Multi-Purpose Daemon,现在被认为是遗留的。 Hydra 更新更好,因为它提供了拓扑感知的进程绑定和其他好东西。无论使用什么流程管理器,库都必须以某种方式与之对话,例如获取启动信息或请求在MPI_COMM_SPAWN 期间启动新进程。这是通过 PMI 接口完成的。

    话虽如此,在您的情况下,mpiexec是 Hydra 流程管理器。您列出的信息是 Hydra 本身的功能。由于 MPICH 及其衍生产品(例如 Intel MPI)可能是唯一使用 Hydra 的 MPI 实现,后者不需要提供任何其他进程管理接口,而不是 MPICH 的原生接口,即 PMI。启动器是 Hydra 可以用来启动远程进程的机制。当没有使用 DRM 时,ssh 和 rsh 是显而易见的选择。 fork 用于在本地节点上启动进程。资源管理内核是 Hydra 与 DRM 交互以确定诸如授予分配之类的事情的机制。其中一些还可以启动进程,例如pbs 使用 PBS 或 Torque 的tm 接口。

    总结一下:

    1) Hydra 实现 PMI 接口以便能够与 MPICH 对话。它不理解其他接口,例如它无法启动针对 Open MPI 编译的 MPI 可执行文件。

    2) Hydra 与类似 PBS 的 DRM(PBSPro、Torque)集成。集成意味着,例如,您不必向mpiexec 提供主机列表,因为授予节点的列表是自动获取的。它还使用 PBS 的原生 tm 接口来启动和监控远程进程。

    3) 在更高级别上,Hydra 启动远程副本。最终,这要么由 DRM 完成,要么通过 rsh/ssh 完成。

    【讨论】:

      猜你喜欢
      • 2011-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-06
      • 2020-03-23
      • 1970-01-01
      • 2012-04-23
      相关资源
      最近更新 更多