我安装了OpenMPI,并且我在mpiexec的多个节点上运行脚本。 OpenMPI要求运行mpiexec命令的节点具有对集群中其他节点的SSH访问权限。
OpenMPI通过SSH做什么具体来启动其他节点上的进程?它运行我的MPI脚本,当然,但MPI如何运行,例如为每个节点分配一个等级?
谢谢。
答案 0 :(得分:5)
除非您在(支持的)资源管理器(如Slurm,PBS或其他)下运行,否则plm/rsh
组件将用于启动MPI应用程序。
简而言之,Open MPI使用分布式虚拟机(DVM)来启动MPI任务。第一步是每个节点有一个守护进程。
最初的"守护进程"是mpirun
,然后必须在每个其他节点上远程生成一个orted
守护程序,这是plm/rsh
使用SSH
的位置。
默认情况下,如果您运行的节点少于64个,则mpirun
将SSH连接到所有其他节点。但是如果您在大量节点上运行,那么mpirun
将使用树生成算法,其他节点可能会ssh到其他节点。
最重要的是,如果您将ssh
与Open MPI一起使用,除非您使用默认设置在小型群集上运行,否则所有节点应该能够ssh
无密码到< strong>所有节点。