DEV*_*DEV 2 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
Run Code Online (Sandbox Code Playgroud)
根据我的知识(请纠正我,如果我错了)PMI是流程管理界面,hydra,mpirun,mpiexec是流程管理器,如果我们使用不同的PM,PMI提供了与流程交互的方法.所以我的怀疑是 -
1,为什么它将PMI显示为流程管理器?
2,pbs有什么作用吗?
3,谁负责在不同的节点上创建可执行文件的副本?(我从节点A启动作业).
我知道问题非常冗长,我会感谢一些好资源的建议.
有两种类型的集群 - 那些受PBS,LSF,S/OGE等分布式资源管理器(DRM)控制的集群和那些集群.典型的DRM提供了在授权分配内启动远程进程并控制这些进程的机制,例如向它们发送信号并获取有关其启动和终止状态的信息.当集群不受DRM控制时,MPI运行时必须实现自己的进程管理.不同的MPI库有不同的方法,但几乎所有这些都归结为通过rsh或ssh启动远程节点上的守护进程来处理远程进程.即使在使用DRM时,库仍可能在其间放置自己的进程管理器以提供可移植性.
MPICH带有两个流程管理器:MPD和Hydra.MPD代表多用途守护进程,现在被认为是遗留的.Hydra更新更好,因为它提供拓扑感知的流程绑定和其他好东西.无论使用何种流程管理器,库都必须以某种方式与其进行通信,例如获取启动信息或请求在此期间启动新流程MPI_COMM_SPAWN.这是通过PMI接口完成的.
话虽这么说,mpiexec在你的情况下是 Hydra流程经理.您列出的信息是Hydra本身的功能.由于MPICH及其衍生产品(例如Intel MPI)可能是唯一使用Hydra的MPI实现,后者不需要提供任何其他过程管理接口,而不是MPICH本地的过程管理接口,即PMI.发射器是Hydra可用于启动远程进程的机制.ssh并且rsh在没有使用DRM时是明显的选择.fork用于在本地节点上启动进程.资源管理内核是Hydra与DRM交互的机制,以便确定授予分配的内容.其中一些还可以启动过程,例如pbs使用tmPBS或Torque 的界面.
总结一下:
1)Hydra实现PMI接口,以便能够与MPICH通信.它不了解其他接口,例如它无法启动针对Open MPI编译的MPI可执行文件.
2)Hydra与PBS样DRM(PBSPro,Torque)整合.集成意味着,例如,您不必提供主机列表,mpiexec因为自动获取授予的节点列表.它还使用tmPBS 的本机接口来启动和监视远程进程.
3)在更高级别,Hydra启动远程副本.最终,这可以通过DRM或通过rsh/完成ssh.