Isso é provável porque o Open MPI usa como padrão um esquema de inicialização baseado em árvore. Por exemplo, ssh da máquina onde você invoca mpirun para slave1, e então ssh de slave1 para slave2, ... etc.
Estou tentando configurar um cluster de quatro nós (todos executando o Fedora 22) com o OpenMPI.
No nó principal, criei uma chave sem senha (~ / .ssh / id_dsa) e copiei ~ / .ssh / id_dsa.pub para cada um dos três nós escravos '~ / .ssh / authorized_keys. Assim, a partir do nó mestre, posso executar ssh slave1
, ssh slave2
ou ssh slave3
e entrar com êxito no nó correspondente, sem precisar de uma senha. O mesmo vale para ssh master
.
No entanto, tenho problemas de permissão quando tento usar mpirun
. Aqui está o comando que eu corro:
/usr/lib64/openmpi/bin/mpirun -np 32 --hostfile .mpi_hostfile ./testprogram
e aqui está o primeiro bit da saída:
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.
Quando subseqüentemente executo ssh slave3
, vejo a mensagem "Houve duas tentativas de login malsucedidas desde o último login bem-sucedido". Portanto, parece que a autenticação ssh que o mpirun
está tentando fazer está falhando por algum motivo.
Alguma idéia de por que posso fazer a autenticação baseada em senhas e sem senhas com ssh
, mas não com mpirun
?
Para o registro, aqui está o conteúdo de .mpi_hostfile
:
# Host file for OpenMPI
# Master node, slots = num cores
localhost slots=8
# Slaves
slave1 slots=8
slave2 slots=8
slave3 slots=8