MPI 运行 通过 SSH 执行什么命令?

What command does MPI run over SSH?

我安装了 OpenMPI,我正在 运行使用 mpiexec 在多个节点上运行脚本。 OpenMPI 要求我运行在其上执行 mpiexec 命令的节点具有对集群中其他节点的 SSH 访问权限。

OpenMPI 通过 SSH 在其他节点上启动进程具体做了什么?它 运行 是我的 MPI 脚本,当然,但是 MPI 运行 如何为每个节点分配一个等级?

谢谢。

除非您 运行 在(受支持的)资源管理器(例如 Slurm、PBS 或其他)下,否则 plm/rsh 组件将用于启动 MPI 应用程序。

长话短说,Open MPI 使用分布式虚拟机 (DVM) 来启动 MPI 任务。第一步是每个节点有一个守护进程。 最初的 "daemon" 是 mpirun,然后必须在每个其他节点上远程生成一个 orted 守护进程,这就是 plm/rsh 使用 SSH 的地方。

默认情况下,如果您 运行 在少于 64 个节点上,那么 mpirun 将通过 SSH 连接到所有其他节点。但是,如果您 运行 在大量节点上,那么 mpirun 将使用树生成算法,其中其他节点可能会通过 ssh 连接到其他节点。 最重要的是,如果您将 ssh 与 Open MPI 一起使用,并且除非您在具有默认设置的小型集群上 运行,否则 所有 节点应该能够 ssh 所有 个节点无密码。