Cluster ABC Beowulf
Cluster ABC Beowulf
Cluster ABC Beowulf
Clster
ABC GNU/Linux
Universidad Autnoma del Estado de Mxico Centro Universitario de Ixtlahuaca Ingeniera en Computacin Materia: Programacin Paralela y Distribuida Alumno(s):
Jos Luis Aguirre Mendiola Emmanuel Osornio Lira
29 de noviembre de 2011
Turno: Mixto
Grupo: A
NDICE 1.- Introduccin.... 4 2.- Planteamiento del problema. 5 3.- Anlisis. 5 3.1 Qu sistema se ocupara? .............................................. 5 3.2 Qu inconvenientes presentan los clsteres beowulf?... 6 4.- Diseo 6 4.1.- Caractersticas de los nodos... 6 4.2.- Sistema Operativo. 7 4.3.- Conociendo la red . 7 5.-Costos. 8 6.-Desarrollo... 9 7.-Implementacin 12 8.-Pruebas.. 14 8. I Reconocimiento de nodos.. 14 8. II Paso de Mensajes . 15 8. III Verificacin del rendimiento. 16 9.-Conclusiones 21 Referencias... 22
INTRODUCCIN
El siguiente material muestra la forma de implementar un clster beowulf usando el sistema ABC GNU/Linux destinado a resolver problemas paralelizados, operaciones de gran complejidad, teniendo presente que tendr un bajo costo.
4.- DISEO
Encontrando los componentes del clster. Nodos Sistema Operativo RED
Switch
Nodo 1
Nodo 2
5.-Costos
Cable UTP = $3,00 pesos el metros Conector RJ45= $2,50 pesos. Computadoras = costo aproximado por los tres nodos $18,200 Switch encore 8 puertos = $200
6.-Desarrollo
Pasos que se realizaron: 1.- Se realiz la conexin de cada nodo incluyendo al maestro en cada uno de los puertos del switch usando cables rectos, en la figura A) se muestra que el nodo maestro se conect al puerto 1 el nodo1 en el puerto dos y el nodo2 en el puerto3 se conect as solo para mantener un orden pues no importa necesariamente el orden de conexin en el switch.
A)
2.- Para hacer el siguiente paso se configur la Bios del nodo maestro para que su modo de arranque fuera su unidad de DVD-RAM.
3.- Tanto el nodo 1 como el nodo 2 fueron configurados para que su forma de arranque fuera su unidad de red ya que estos posteriormente se levantaran desde el nodo principal.
4.- Ahora se procedi a la instalacin del sistema operativo en el nodo principal despus de arrancar por medio de la unidad DVD aparecera la siguiente pantalla:
5.- Se tecleo la instruccin install, en la pantalla menciona claramente que cuando se instale el sistema se le coloque el nombre de usuario master, la contrasea master y el hostname master. 6.- Ya que la instalacin despus de esta pantalla es casi automtica no es necesario mostrar ejemplo de ella simplemente, elegimos la distribucin de teclado Latinoamrica y en los campos correspondientes el nombre de usuario master, la contrasea master y el hostname master. 7.- El tema de las particiones no es necesario mencionarlas pues el instalador hace uso de dos opciones a) Instalar junto a los sistemas operativos que ya existan en tu disco b) usar todo el disco, para este caso usamos instalar junto con el sistema operativo existente.
10
Figura B)
9.- Posteriormente se encendieron los nodos para que el nodo maestro los registrara ya que estos iniciaron en modo RED, en la figura C) se muestra que al nodo 1 se le asign la ip 192.168.0.3 y ahora esta levantado.
Figura C)
11
7.0.- IMPLEMENTACIN
*.- Se puede tener control desde cada nodo del nodo maestro por medio de ssh tan solo basta con loguearnos en alguno de los nodos y estaremos en la cuenta master del nodo principal. 1.- Para poder trabajar con los nodos esclavos primero se identificaron desde el nodo maestro abriendo una terminal y tecleando la siguiente instruccin: recon v clusterhosts, de esta manera en el archivo clusterhosts ubicada en /home se registran las ip de los nodos, en la figura d se muestra claramente el uso de la instruccin:
Figura D)
2.- Ahora se teclea el comando lamboot v clusterhosts con esto se crea la infraestructura de comunicacin entre nodos, este toma el fichero clusterhosts para determinar las direcciones ip, en la figura E) se muestra el uso del comando lamboot. .
Figura E)
12
3.- En la figura F) se puede ver el cdigo fuente en lenguaje C que se usara posteriormente, en el cdigo se puede ver que sirve para hacer un paso de mensajes desde cada nodo para decir aqu estoy.
Figura F)
14.- Se compil con la instruccin mpicc.openmpi -o hello.c hello y se ejecut con la instruccin mpiexec.openmpi -c 2 hello, en la figura G) se muestra la compilacin y posteriormente la ejecucin que regresa un hola mundo desde el nodo X.
G) G) Javier Flores, Condori, 2011, Clster Beowulf, Imagen tomada del sitio Slideshare: http://www.slideshare.net/JacF/wsn-master
13
8.-PRUEBAS:
I.- Reconocimiento de nodos: No hubo problema al reconocer los nodos, por consecuencia se determin que la red estaba bien reestructurada y que haba comunicacin completa desde el nodo maestro hacia los nodos, en la figura a) se puede comprobar que haciendo uso del comando ping haba comunicacin:
Figura a)
14
II.-Paso de Mensajes
Usando el cdigo de la figura b) despus de compilarlo con la instruccin mpicc.openmpi 1.c o 1, y ejecutarlo con mpiexec.openmpi n 3 1 se muestra en la figura c) como se identifican los procesadores y posteriormente envan un mensaje.
Figura b)
Figura c)
15
Figura d)
Figura e)
16
Con la ejecucin de una pequea aplicacin dedicada a la multiplicacin de matrices se pudo verificar el rendimiento, el cdigo utilizado es el siguiente: #include <stdio.h> #include <mpi.h> #define NCOLS 4 int main(int argc, char **argv) { int i,j,k,l; int ierr, rank, size, root; float A[NCOLS]; float Apart[NCOLS]; float Bpart[NCOLS]; float C[NCOLS]; float A_exact[NCOLS]; float B[NCOLS][NCOLS]; float Cpart[1]; root = 0; /* Initiate MPI. */ ierr=MPI_Init(&argc, &argv); ierr=MPI_Comm_rank(MPI_COMM_WORLD, &rank); ierr=MPI_Comm_size(MPI_COMM_WORLD, &size); /* Initialize B and C. */ if (rank == root) { B[0][0] = 1; B[0][1] = 2; B[0][2] = 3; B[0][3] = 4; B[1][0] = 4; B[1][1] = -5; B[1][2] = 6; B[1][3] = 4; B[2][0] = 7; B[2][1] = 8; B[2][2] = 9;
17
B[2][3] = 2; B[3][0] = 3; B[3][1] = -1; B[3][2] = 5; B[3][3] = 0; C[0] = 1; C[1] = -4; C[2] = 7; C[3] = 3; } /* Put up a barrier until I/O is complete */ ierr=MPI_Barrier(MPI_COMM_WORLD); /* Scatter matrix B by rows. */ ierr=MPI_Scatter(B,NCOLS,MPI_FLOAT,Bpart,NCOLS,MPI_FLOAT,root, MPI_COMM_WORLD); /* Scatter matrix C by columns */ ierr=MPI_Scatter(C,1,MPI_FLOAT,Cpart,1,MPI_FLOAT, root,MPI_COMM_WORLD); /* Do the vector-scalar multiplication. */ for(j=0;j<NCOLS;j++) Apart[j] = Cpart[0]*Bpart[j]; /* Reduce to matrix A. */ ierr=MPI_Reduce(Apart,A,NCOLS,MPI_FLOAT,MPI_SUM, root,MPI_COMM_WORLD); if (rank == 0) { printf("\nThis is the result of the parallel computation:\n\n"); printf("A[0]=%g\n",A[0]); printf("A[1]=%g\n",A[1]); printf("A[2]=%g\n",A[2]); printf("A[3]=%g\n",A[3]); for(k=0;k<NCOLS;k++) { A_exact[k] = 0.0; for(l=0;l<NCOLS;l++) { A_exact[k] += C[l]*B[l][k]; } }
18
printf("\nThis is the result of the serial computation:\n\n"); printf("A_exact[0]=%g\n",A_exact[0]); printf("A_exact[1]=%g\n",A_exact[1]); printf("A_exact[2]=%g\n",A_exact[2]); printf("A_exact[3]=%g\n",A_exact[3]); } MPI_Finalize(); } Despus de compilarlo se ejecut primero mandndolo solo a un nodo como se muestra en la figura f)
Figura f)
19
Posteriormente se envi a los tres nodos dando como resultado el fabricar ms matrices y hacer ms operaciones como se muestra en la figura g).
Figura g)
Finalmente en la figura h) se muestra como la carga de procesos aumento disparando el rendimiento de los nodos.
Figura h)
20
9.-Conclusiones
1.- Para la implementacin de un clster beowulf se requiere que los nodos sean proporcionales entre si respecto al hardware. 2.-Un clster beowulf es ms barato si los nodos esclavos no cuentan con disco duro pues no se requiere del uso de ellos. 3.-Un clster beowulf es una gran supercomputadora respecto al precio. alternativa ante una
4.- Se concluy que si no se tiene aplicaciones paralelizadas no es de utilidad el clster de este tipo. 5.-Se puede reutilizar hardware que ya estaba en desuso por motivos de bajas prestaciones. 6.-Es necesario que el nodo maestro tenga un suplente en caso de avera para su remplazo instantneo pues si falla el nodo principal todo el clster se caer.
21
REFERENCIAS: I. C. Chavarri (2009). Creative Commons Reconocimiento 3.0 Espaa License ultima revisin 11.06.2009 ABC GNU/Linux . Recuperado el 14-11-11 de http://www.ehu.es/AC/ABC.htm.
Dell support (2001). Configuring the PXE BIOS Feature Recuperado el 11-11-11 de http://support.dell.com/support/edocs/systems/ssabrepe/en/ts/pxe/7H0 56a1.pdf
22