lunes, 2 de mayo de 2016

Construcción de un CPU Clúster tipo Beowulf - Parte III

Parte Posterior del Clúster
Parte Posterior del Clúster

Instalando CSSH

En consola escribir
$sudo apt-get install clusterssh 
configurando cssh:

Es una aplicación para la administración de ordenadores conectados en red permitiendo interactuar con ellos a través de SSH con dos o mas ordenadores simultáneamente desde la misma herramienta.

Crear un archivo en la carpeta ~/etc/ llamado clústers y dentro de ese archivo escribir

Por ejemplo, digamos que tengo dos grupos, cada uno compuesto por dos máquinas.

"Clúster1" tiene las máquinas "Test1" y "Test2" en ella, y "Cluster2" tiene las máquinas "Test3" y "Test4" en ella.

El ~.csshrc (o / etc/clusters) archivo de control se vería así:
clusters = cluster1 cluster2 
cluster1 = test1 test2            
cluster2 = test3 test4            
Donde cluster1 y clúster2 son los nombres de los clústers con las maquina test1, ... si quisiéramos uno que contenga todo:
clusters = all                      
all = test1 test2 test3 test4 
o mejor aun
clusters = cluster1 cluster2 all 
cluster1 = test1 test2                 
cluster2 = test3 test4                 
all = cluster1 cluster2               
y ejecutamos en consola
cssh -l <username> <clustername> & 
El parámetro "&" es para cortar la salida o también sin el archivo clústers
cssh -l <username> <machine1> <machine2> <machine3> ... & 
o también de manera directa ( con el archivo /etc/clusters)
cssh <clustername> 
Aparecerá una ventana blanca pequeña y un número de ventanas(shell) según el número de máquinas en tu clúster, y notaremos que escribiendo en esa, lo que escribamos se copia en las demás consolas, entonces instalamos en todas a la vez). Ejemplo de cssh:
Ejemplo de cssh
Ejemplo de cssh

Instalación de MPICH

Ahora usaremos nuestro clúster para un cálculo sencillo, pero primero instalamos en consola escribir:
$sudo apt-get install libcr-dev mpich2 
Lo hacemos en todas las maquina, o mejor aun, usando cssh para acelerar el proceso. O también, montamos la carpeta desde el maestro hacia los nodos de la siguiente manera. En el nodo escribir:
$sudo mount master:/... /... 
donde: /... es la dirección donde se encuentra MPICH.

MPI: Message Pasing Interface
Es un protocolo de comunicaciones independiente del lenguaje usado para programar computadoras paralelas. MPI es una interface Sistema Distribuido de Paso de Mensajes. Es un estándar de paso de mensajes facto para la comunicación entre procesos que modelan un programa paralelo que se ejecuta en un sistema de MEMORIA DISTRIBUIDA.

También modos sincronizados y asincronizados de comunicación punto a punto y comunicación colectiva. Comunicación paso mensajes entre procesadores o nodos. Para compilar un programa usamos:
mpicc nombre_archivo.c -o execute  
La manera de compilación es similar a como lo hace GCC (GNU Collection Compiler). Para ejecutar el binario:
$mpiexec -n 1 ./execute 
Solo ejecutará en nuestra máquina, pero si quisiéramos mandar los datos a otras máquinas. Para mandar mensajes a otras maquina usar
$mpiexec -f machinefile -n 4 ./a.out 

Donde machinefile es el archivo donde se almacenan los ips de las demás maquinas., como se muestra a continuación:
#ub0 192.168.133.100 
#ub1 192.168.133.101 
#ub2 192.168.133.102 
#ub3 192.168.133.103 


Conclusiones y trabajo futuro:

Se espera a futuro diseñar e implementar un cluster híbrido (CPU + GPU), que sea alcanzar hasta 1PetaFlops y que sea de utilidad en investigaciones y proyectos, y que sobre todo, ayude al país abriendo una rama de conocimiento que es HPC (High Performance Computing) atrayendo interesados nacionales e internacionales para el trabajo conjunto.



0 comentarios:

Publicar un comentario