Está en la página 1de 14

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. - 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. - Anlisis3.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 cluster Knoppix 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. - Qu inconvenientes presentan los clsteresBeowulf? - 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. - DISEO Encontrando los componentes del clster. Nodos Sistema Operativo RED Caractersticas de los nodos:

Nodo Maestro: Netbook DELL Procesador Intel atom 1.8Ghz1024MB de RAM. Nodos esclavos: Nodo 1:Laptop marca DELL Procesador Intel core 2 do 1.6 GHz1024MB de RAM Nodo 2:Laptop marca DELL Procesador AMD 1.8 GHz1024MB de RAM Sistema Operativo BEOWULF ABC-GNU/LINUX Sistema x86 para implementar clster beowulf basado en LinuxMint Ubuntu y Debian con capacidad de trabajar en modo live o modo instalado cuenta con software 100%libre. 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

-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 host name 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 host name 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.

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 ya hora esta levantado.

Figura C)

- 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 cluster hosts 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 lam boot v cluster hosts con esto secrea la infraestructura de comunicacin entre nodos, este toma el fichero cluster hosts para determinar las direcciones ip, en la figura E)se muestra el uso del comando lam boot..

Figura E)

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)

- 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)

-PRUEBAS: Pruebas Propuestas Reconocimiento de nodos: Paso de mensajes: Verificacin del rendimiento Resultado Efectivo Efectivo Efectivo

- 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)

-Paso de Mensajes Usando el cdigo de la figura b) despus de compilarlo con lainstruccin mpicc.openmpi 1.c o 1, y ejecutarlo con mpiexec.openmpin 3 1 se muestra en la figura c) como se identifican los procesadores y posteriormente envan un mensaje.

Figura b)

Figura c)

-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 delos 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)

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; 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]; } } 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)

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)

-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 alternativa ante una supercomputadora respecto al precio. 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 deavera para su remplazo instantneo pues si falla el nodo principal todo el clster se caer.

También podría gustarte