google generate engine enable compute python ssh mpi google-compute-engine permission-denied

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 :)