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