Download - Cluster Beowulf

Transcript

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

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

- DISEOEncontrando 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 Linux-Mint 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 Resultado

Reconocimiento de nodos: Efectivo

Paso de mensajes: Efectivo

Verificacin del rendimiento 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.co 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 #include #define NCOLS 4int 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