python - generate - putty google cloud
OpenMPI: error denegado de permiso al intentar usar mpirun (1)
así que finalmente encontré una solución. Guau, el problema me estaba volviendo loco.
Resultó que necesitaba generar ssh-keys manualmente para que el script funcionara. No tengo idea de por qué, porque google-services ya configuró las claves usando gcloud compute ssh
, pero bueno, funcionó :)
Pasos que hice:
instance_1 $ ssh-keygen -t rsa
instance_1 $ cd .ssh
instance_1 $ cat id_rsa.pub >> authorized_keys
instance_1 $ gcloud compute copy-files id_rsa.pub
instance_1 $ gcloud compute ssh instance_2
instance_2 $ cd .ssh
instance_2 $ cat id_rsa.pub >> authorized_keys
.
gcloud compute ssh instance_2
otro tema y preguntaré por qué no puedo usar ssh instance_2
, incluso si gcloud compute ssh instance_2
está funcionando. Ver: Diferencia entre los comandos "gcloud compute ssh" y "ssh"
Me gustaría mostrar "hello world" a través de MPI en diferentes instancias de computación en la nube de Google con la ayuda del siguiente código:
from mpi4py import MPI
size = MPI.COMM_WORLD.Get_size()
rank = MPI.COMM_WORLD.Get_rank()
name = MPI.Get_processor_name()
print("Hello, World! I am process/rank {} of {} on {}./n".format(rank, size, name))
.
El problema es que, aun así puedo conectar ssh en todas estas instancias sin problemas, obtengo un mensaje de error de permiso denegado cuando intento ejecutar mi script. Uso el siguiente comando para invocar mi script:
mpirun --host localhost, instance_1, instance_2 python hello_world.py
.
Y recibe el siguiente mensaje de error:
Permission denied (publickey).
--------------------------------------------------------------------------
ORTE was unable to reliably start one or more daemons.
This usually is caused by:
* not finding the required libraries and/or binaries on
one or more nodes. Please check your PATH and LD_LIBRARY_PATH
settings, or configure OMPI with --enable-orterun-prefix-by-default
* lack of authority to execute on one or more specified nodes.
Please verify your allocation and authorities.
* the inability to write startup files into /tmp (--tmpdir/orte_tmpdir_base).
Please check with your sys admin to determine the correct location to use.
* compilation of the orted with dynamic libraries when static are required
(e.g., on Cray). Please check your configure cmd line and consider using
one of the contrib/platform definitions for your system type.
* an inability to create a connection back to mpirun due to a
lack of common network interfaces and/or no route found between
them. Please check network connectivity (including firewalls
and network routing requirements).
--------------------------------------------------------------------------
.
Información Adicional:
- Instalé open-MPI en todos mis nodos
- Tengo Google que establece automáticamente todas mis claves ssh usando gcloud para iniciar sesión en cada instancia de cada instancia
- tipo de instancia: n1-standard-1
- instancia-OS: Linux Debian (predeterminado)
.
Gracias por tu ayuda :-)
.
Nueva información:
(Gracias @ Zulan por señalar que debería editar mi publicación anterior en lugar de crear una nueva respuesta para obtener nueva información)
Entonces, traté de hacer lo mismo con mpich en lugar de openmpi. Sin embargo, me encuentro con un mensaje de error similar.
Mando:
mpirun --host localhost, instance_1, instance_2 python hello_world.py
.
Mensaje de error:
Host key verification failed.
.
Puedo conectar ssh entre mis dos instancias sin problemas, y a través de los comandos de gcloud, las claves ssh deben configurarse de manera automática.
Entonces, ¿alguien tiene una idea de cuál podría ser el problema? También verifiqué la ruta, las reglas del firewall y mi capacidad para escribir scripts de inicio en la carpeta temporal. ¿Alguien puede intentar recrear este problema? + ¿Debo plantear esta pregunta a Google? (Nunca antes había hecho tal cosa, estoy bastante inseguro: S)
Gracias por ayudar :)