Sunteți pe pagina 1din 22

Implementacin de un clster beowulf para fines de programacin paralela.

Clster
ABC GNU/Linux

Jos Luis Aguirre Mendiola Emmanuel Osornio Lira

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.

2.- Planteamiento del Problema


Se desea implementar un clster que permita el paso de mensajes, ya que esto ser til para poder observar cmo funciona la programacin paralela dentro de un clster.

3.- Anlisis 3.1.- Qu sistema se ocupara? Justificando el uso del mismo.


Para la implementacin de este clster se habra propuesto el uso de Knoppix ya que est basado en Deban, por consecuencia al utilizar este tipo de sistema estaramos usando software 100% libre sin ningn costo. Como consecuencia del anlisis sobre Knoppix se lleg a la conclusin de que se desistira el uso de este, por la incompatibilidad sobre las arquitecturas de los nodos, adems de que se hara uso del software openmosix el cual no es compatible con Kernel con versin arriba del 2.6, se intent determinar hacer uso del SO clusterKnoppix pero la respuesta fue negativa pues seguira habiendo incompatibilidad sobre las arquitecturas de los nodos. Entonces como SO final se utiliz BEOWULF ABC-GNU/LINUX se determin usar este SO porque no se perdera la descendencia DEBIAN. Los clsteres beowulf se utilizan para dos funciones principales: Procesar un gran volumen de datos, sin considerar demasiado el tiempo que tarde o bien para cuando se necesita de una respuesta rpida a un determinado problema.

3.2.- Qu inconvenientes presentan los clsteres Beowulf?


- El procesamiento se encuentra centralizado en un mismo lugar fsico, estando expuesto a cualquier problema exterior tales como fallas de energa o desastres naturales entre otros. - Si el nodo maestro se cae, todo el clster se cae. - Todos los nodos del clster estn corriendo bajo el mismo sistema operativo desde red por lo tanto si la red falla los nodos se caen. - El dueo del clster es el dueo de todo (red, PC, mantenimiento, administracin). -Los nodos deben contar con hardware similar para evitar conflictos.

4.- DISEO
Encontrando los componentes del clster. Nodos Sistema Operativo RED

4.1 Caractersticas de los nodos:


Nodo Maestro: Netbook DELL Procesador Intel atom 1.8Ghz 1024MB de RAM. Nodos esclavos: Nodo 1: Laptop marca DELL Procesador Intel core 2 do 1.6 GHz 1024MB de RAM Nodo 2: Laptop marca DELL Procesador AMD 1.8 GHz 1024MB de RAM
6

4.2 Sistema Operativo


BEOWULF ABC-GNU/LINUX Sistema x86 para implementar clster beowulf basado en Linux-Mint Ubuntu y Debian con capacidad de trabajar en modo live o modo instalado cuenta con software 100% libre.

4.3 Conociendo la Red


La topologa utilizada es rbol: Ya que concentra las conexiones en un switch estndar. Se usaron tres tramos de cable recto para conectar cada nodo y el maestro. Diseo de la red propuesto
Nodo Maestro

Switch

Nodo 1

Nodo 2

Diseo construido en el software Packet Tracer

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

8.- En la figura B) se muestra el escritorio:

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:

Pruebas Propuestas Reconocimiento de nodos: Paso de mensajes: Verificacin del rendimiento

Resultado Efectivo Efectivo Efectivo

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

III.-Verificacin del rendimiento


Usando la aplicacin Ganglia se puede monitorizar el estado del clster en modo grfico, en la figura d) se puede observar el estado de los procesadores y a cuantos GHz estn trabajando, el total de memoria usada, en la figura e) con la grfica se nota la carga de procesos de la ultima hora.

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.

polytechnic.edu.na. (2009) recuperado el 14-11-11 de http://download.polytechnic.edu.na/pub4/download.sourceforge.net/pu b/sourceforge/a/project/ab/abcgnulinux/1.0rev2/Manual/Guia%20rapid a.pdf

J. V. Flores (2009). Cluster Beowulf, recuperado el 14-11-11 de http://www.slideshare.net/JacF/cluster-beowulf-javier-condori-flores, universidad de Granada.

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

S-ar putea să vă placă și