MPI的流程经理

时间:2014-07-10 05:02:05

标签: parallel-processing mpi

我是MPI的新手,我对创造和创造工作有一些疑问。我试图弄明白 出来但对我来说事情很混乱。所以我工作的集群架构是这样的 - 有四个节点(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提供了将PM与流程进行交互的方法。所以我怀疑是 -

1,为什么它将PMI显示为流程管理器?

2,pbs有什么作用吗?

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

我知道问题非常冗长,我会感谢你提出一些好的资源。

1 个答案:

答案 0 :(得分:8)

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

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

话虽如此,您案例中的mpiexec 是Hydra流程管理器。您列出的信息是Hydra本身的功能。由于MPICH及其衍生产品(例如英特尔MPI)可能是唯一使用Hydra的MPI实现,后者不需要提供任何其他过程管理接口,而不是MPICH本地的过程管理接口,即PMI。发射器是Hydra可用于启动远程进程的机制。当没有使用DRM时,sshrsh是明显的选择。 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完成。