Cómo ejecutar las prácticas MPI de PDP
PDP, Programación Distribuida y Paralela, es una asignatura optativa de Ingeniería Informática que estoy cursando. Para la práctica 2 nos piden ejecutar el algoritmo de Floyd (implementado sobre OpenMPI) en cuatro máquinas del aula de prácticas.
Lo primero que tenemos que hacer es encender las cuatro máquinas con la misma cuenta (se puede hacer con cuentas distintas, pero es un poquito más tedioso). Todas las máquinas montan una partición NFS sobre turing (que es donde está nuestra cuenta de usuario), con lo que desde todas las cuentas tenemos acceso a todos los ficheros.
Una vez hecho esto, necesitamos crear una clave simétrica para automatizar el SSH:
$ ssh-keygen -t rsa
Y no indicamos contraseña, para que acceda directamente. Por defecto (si no hemos indicado lo contrario), la clave privada estará en el directorio ~/.ssh/id_rsa y la clave pública en ~/.ssh/id_rsa.pub. Lo siguiente, es autorizar el acceso a la clave pública que acabamos de crear:
$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
Con esto está listo para el acceso SSH. Ahora toca indicar los equipos que vamos a utilizar, para ello, podemos crear un fichero indicando sus nombres de equipo o sus direcciones IPs. Por ejemplo, en mi caso el fichero se llama 'equipos' y contendrá:
ei140063.ugr.es
ei142063.ugr.es
ei140066.ugr.es
ei142067.ugr.es
Y ya está lista la ejecución:
$ mpirun -np 4 --hostfiles equipos mi_programa arg1 arg2
Ahora debe estar todo listo y funcionando.
Tags
La teoría es cuando crees saber algo, pero no funciona.
La práctica es cuando algo funciona, pero no sabes por qué.
Los programadores combinan la teoría y la práctica:
Nada funciona y no saben por qué.
