cluster abc beowulf

Upload: osorniolira

Post on 12-Jul-2015

1.878 views

Category:

Documents


2 download

DESCRIPTION

El siguiente material muestra la forma de implementar un clúster beowulf usando el sistema ABC GNU/Linux destinado a resolver problemas paralelizados, operaciones de gran complejidad, teniendo presente que tendrá un bajo costo.

TRANSCRIPT

Implementacin de un clster beowulf para fines de programacin paralela.

ClsterABC 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

INTRODUCCINEl 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

2.- Planteamiento del ProblemaSe 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.

5

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.- DISEOEncontrando 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 RAM6

4.2 Sistema OperativoBEOWULF 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 RedLa 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 propuestoNodo Maestro

Switch

Nodo 1

Nodo 2

7

Diseo construido en el software Packet Tracer

5.-CostosCable 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

8

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.

9

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 MensajesUsando 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 rendimientoUsando 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 #include #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