SSH/OpenMPI:mpirun 权限被拒绝,但 ssh 正常

SSH/OpenMPI:mpirun 权限被拒绝,但 ssh 正常

我正在尝试使用 OpenMPI 设置一个由四个节点组成的集群(全部运行 Fedora 22)。

在主节点上,我创建了一个无密码密钥 (~/.ssh/id_dsa) 并将 ~/.ssh/id_dsa.pub 复制到三个从节点的 ~/.ssh/authorized_keys 中。因此,从主节点,我可以运行ssh slave1ssh slave2、 或ssh slave3并成功进入相应的节点,而无需输入密码。同样适用于ssh master.

但是,当我尝试使用mpirun.这是我运行的命令:

/usr/lib64/openmpi/bin/mpirun -np 32 --hostfile .mpi_hostfile ./testprogram

这是输出的第一位:

Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
ORTE was unable to reliably start one or more daemons.

当我随后运行 时ssh slave3,我看到消息“自上次成功登录以来,有 2 次登录尝试失败。”因此,mpirun尝试进行的ssh 身份验证似乎由于某种原因失败了。

有什么想法为什么我可以使用 进行无密码、基于密钥的身份验证ssh,但使用 却不行mpirun

作为记录,以下是以下内容.mpi_hostfile

# Host file for OpenMPI

# Master node, slots = num cores
localhost slots=8

# Slaves
slave1 slots=8
slave2 slots=8
slave3 slots=8

答案1

这可能是因为 Open MPI 默认使用基于树的启动方案。例如,从调用 mpirun 的机器 ssh 到slave1,然后从slave1 ssh 到slave2,...等等。

http://blogs.cisco.com/performance/tree-based-launch-in-open-mpihttp://blogs.cisco.com/performance/tree-based-launch-in-open-mpi-part-2更多细节。

相关内容