Para simplificar las cosas, consideremos sólo dos computadoras por ahora. Si logra completar este tutorial con éxito es fácil implementarlo con muchos más nodos.
El clúster fue probado con una distribución gnu/linux Debian versión 12, pero debería ser igual con cualquier otra distribución.
Pre requisitos :
Instalar la misma versión de MPI en esclavos y maestro
sudo apt-get install libopenmpi-dev openmpi-bin openmpi-doc

Paso1 :Configura el archivo host
Necesitaremos que haya comunicación entre las computadoras y no queremos escribir las direcciones IP muy seguido . Entonces,podemos dar un nombre a los distintos nodos de la red con los que deseamos comunicarnos,
utilizando un archivo llamado hosts.
Lo que hará esto es que el sistema operativo utilizara el archivo para asignar nombres de host a las direcciones IP.
Manager:
$ sudo nano /etc/hosts
127.0.0.1 localhost
#configuración
100.96.100.1 managerangel
100.96.100.2 esclavo
Cliente:
$ sudo nano /etc/hosts
127.0.0.1 localhost
#configuración
100.96.100.1 managerangel
100.96.100.2 esclavo
Paso 2: Crear usuarios
Se suele crear un nuevo usuario con el mismo nombre en todos los dispositivos así que haremos eso.
$ sudo adduser mpiuser
Establezca una contraseña para cada usuario en cada máquina.
Paso 3: configurar SSH
Los sistemas se comunicarán a través de ssh y compartirán datos a través de nfs. Instale el openssh en todo el sistema(maestro y esclavo)
$ sudo apt install openssh-server
Cambiar usuario:
$ su -mpiuser
#generación de claves
$ ssh-keygen -t rsa

#crear directorio .ssh en el cliente
$ ssh mpiuser@esclavo mkdir -p .ssh
Escriba la contraseña del cliente cuando se le solicite
esclavo pude variar en su caso ,debe ser igual al que asigno en el hostfile
#Subir claves públicas generadas al cliente
$ cat .ssh/id_rsa.pub | ssh mpiuser@esclavo ‘cat >> .ssh/authorized_keys’
donde cliente se reemplaza por el nombre que le asigno ,en el nuestro ejemplo seria salvadorserver
Seguidamente Ingrese la contraseña del cliente cuando se le solicite
#Establecer permiso en el cliente
$ ssh mpiuser@esclavo «chmod 700 .ssh; chmod 640 .ssh/authorized_keys»
#Iniciar sesión en el cliente sin contraseña
$ ssh mpiuser@esclavo
O también : $ ssh esclavo
Nota: Haga todo el paso anterior con los clientes del maestro (manager)
Paso 4: configurar NFS
NFS se utiliza para compartir el archivo objeto y datos entre todos los nodos del sistema.
4.1 Para el Manager o nodo maestro:
Instale el servidor nfs en el maestro para montar la carpeta compartida.
#nfs para instalación del servidor
$ sudo apt-get install nfs-kernel-server
# Crea una carpeta para compartir
Necesitamos crear una carpeta que compartiremos en la red. En nuestro caso, «storage«.
Importante : estando con la sesión iniciada en mpiuser, ruta /home/mpiuser
$ mkdir storage
Para exportarlo , creamos un entry en /etc/exports
$sudo nano /etc/exports
Ojo:Para cualquier paso, Si obtenemos el mensaje como » mpiuser no esta en el archivo sudoers » lo podemos agregar al archivo /etc sudoers como se muestra en la imagen

Agregamos en la partefinal del archivo exports lo siguiente :
/home/mpiuser/storage *(rw,sync,no_root_squash,no_subtree_check)

# ejecuta el comando después de cualquier cambio en /etc/exports
$ exportfs -a
Si lo anterior no funciona usar sudo
# Reiniciar el servidor nfs
$ sudo service nfs-kernel-server restart
4.2 Para el Cliente o nodo esclavo:
# Instalar nfs para el cliente
$ sudo apt-get install nfs-common

#nos logeamos con mpiuser y creamos una carpeta con el mismo nombre con el que se creo en el Maestro para compartir
$ sudo mkdir storage
#montar la carpeta maestra en el cliente
Situados y como usuario mpiuser en /home/mpiuser donde esta la carpeta storage :
$ sudo mount -t nfs managerangel:/home/mpiuser/storage ~/storage
#verificar si el montaje fue exitoso
Puede que con el reinicio de la PC storage se haya desmontado con este paso nos aseguramos ,para luego volver a montarlo
$ df-h

Importante : aquí las rutas managerangel:/home/mpiuser/storage .. /home/mpiuser/storage deben coincidir
# Agregar la entrada a la tabla del sistema de archivos.
Para que el montaje sea permanente y no tenga que montar manualmente el directorio compartido cada vez que reinicie el sistema, puede crear una entrada en la tabla de sistemas de archivos, es decir, un archivo /etc/fstab como se muestra a continuación
$ nano /etc/fstab
Agregar:
managerangel:/home/mpiuser/storage /home/mpiuser/storage nfs

Paso 5:Correr el programa en el cluster con mpi
Navegue hasta el directorio compartido de NFS en el maestro («storage» en nuestro caso) y cree los archivos allí codigo fuente hello.c [o podemos pegar solo los archivos .aout). Para compilar el código, y generar un ejecutable.
$ cd storage/
$ pwd
/home/mpiuser/storage
Cree un programa MPI en C con el nombre hello.c
Aqui esta el que se utilizo:https://github.com/ubuangel/Weblatex4/blob/main/Lab_ComputacionParalela/mpi/mpi_hello_world.c
#compila el código
$ mpicc mpi_hello_world.c
#ejecutar
$ mpirun -np 4 –oversubscribe -host managerangel,esclavo ./mpi_hello_world


Exitos!!
Referencias
https://www.geeksforgeeks.org/creating-an-mpi-cluster/
https://mpitutorial.com/tutorials/running-an-mpi-cluster-within-a-lan/
https://medium.com/mpi-cluster-setup/mpi-clusters-within-a-lan-77168e0191b1