You are on page 1of 22

Instalacin y configuracin de un Cluster de Alto rendimiento basado en PelicanHPC

Por Diego I. G. Najar Carrascal http://www.linkedin.com/in/dignajar

Indice
1. Introduccin.............................................................................................1 1.1. Objetivo.............................................................................................1 1.2. Que es un Cluster?...........................................................................1 1.3. Tipos de Cluster.................................................................................1 2. Sistema....................................................................................................2 2.1. Componentes de Hardware...............................................................2 2.2. Componentes de Software................................................................2 2.3. Configuracin de las maquinas virtuales...........................................2 2.4. PelicanHPC........................................................................................2 3. Instalacin y configuracin de PelicanHPC sobre VirtualBox....................4 3.1. Primeros pasos..................................................................................4 3.2. Configuracin del nodo mster.........................................................5 3.3. Configuracin de los nodos esclavos.................................................8 3.4. Clonacin de los nodos esclavos.....................................................10 4. Inicio y configuracin de PelicanHPC......................................................11 4.1. Inicio y configuracin del nodo mster............................................11 4.2. Inicio y configuracin de los nodos esclavos...................................14 4.3. Configuracin final del nodo mster................................................15 4.4 Comandos tiles de PelicanHPC.......................................................16 Agregar un nuevo nodo esclavo.........................................................16 Apagar todos los nodos esclavos........................................................16 Iniciar entorno grafico.........................................................................16 5. Benchmarks...........................................................................................17 5.1. FLOPS (Floating point operation per seconds).................................17 Conclusin..................................................................................................19 Bibliogrfica...............................................................................................20

1. Introduccin
1.1. Objetivo
Se propuso como objetivo instalar y configurar un Cluster con una distribucin GNU/Linux. Se utilizaran maquinas virtuales si funciona en maquinas virtuales funciona en maquinas fsicas para virtualizar un nodo mster y dos nodos esclavos.

1.2. Que es un Cluster?


Es una clase de arquitectura de computador paralelo que se basa en unir maquinas independientes cooperativas integradas por medio de redes de interconexin para proveer un sistema coordinado, capaz de procesar una carga. - Dr. Thomas Sterling

1.3. Tipos de Cluster


Alto rendimiento (HP, high performance): Los Cluster de alto rendimiento han sido creados para compartir el recurso mas valioso de una computadora, es decir, el tiempo de proceso. Cualquier operacin que necesite altos tiempos de computo puede ser ejecutada en un o Cluster de alto rendimiento, siempre que se encuentre un algoritmo que sea paralelizable. Alta disponibilidad (HA, high availability): Los Cluster de alta disponibilidad pretenden dar servicios las 24hs de cualquier tipo, son Cluster donde la principal funcionalidad es estar controlando y actuando para que un servicio o varios se encuentren activos durante el mximo periodo de tiempo posible. Alta eficiencia (HT, high throughput): Los Cluster de alta eficiencia tiene como objetivo la ejecucin de la mayor cantidad de tareas en el menor tiempo posible.

Podemos encontrar muchos mas tipos de Cluster, y combinaciones de ellos, solo se nombraron los tipos mas importantes, y mas usados.

2. Sistema
2.1. Componentes de Hardware
Intel Quad Core 6600 2.4GHz - (4 ncleos) 2GB Memoria RAM 500GB Disco rgido

2.2. Componentes de Software


Sistema operativo nativo GNU/Linux (Gentoo Linux) Maquinas virtuales bajo VirtualBox v4.1.6 Sistema operativo para el Cluster GNU/Linux (PelicanHPC basado en Debian) http://idea.uab.es/mcreel/PelicanHPC

2.3. Configuracin de las maquinas virtuales


Nodo Mster: 1 procesador, 512MB Ram, sin disco rgido, booteo desde la imagen Live-CD de PelicanHPC Nodo Slave 1: 1 procesador, 512MB Ram, sin disco rgido, booteo a travs de la red LAN Nodo Slave 2: 1 procesador, 512MB Ram, sin disco rgido, booteo a travs de la red LAN

2.4. PelicanHPC
Es una distribucin de GNU/Linux basa en Debian para la creacin de Cluster de alto rendimiento en poco minutos, viene en formato iso-hybrid(CD y USB) de esta forma podemos bootear directamente la imagen desde un CD o un pendrive USB. PelicanHPC le permite al usuario realizar computo paralelo usando MPI. El nodo mster bootea desde la imagen y los nodos esclavos bootean utilizando PXE(Preboot eXecution Environment). Todos los nodos del Cluster obtiene el sistema de archivo de la misma imagen, de esta forma garantiza que todos ellos ejecutan el mismo software. PelicanHPC permite instalar paquetes nuevos utilizando el manejador de paquetes aptget, como esta basada en la distribucin Debian tenemos una gran cantidad de paquetes de software. Caractersticas a destacar: Disponible para procesadores de 64 y 32 bits. Contiene lo ultima versin estable del paquete OpenMPI. GNU Octave lenguaje de alto nivel para realizar clculos numricos, es considerado la versin libre de MATLAB. Utiliza todo el poder de los Cluster que utilizan MPI, dividiendo los clculos en diferentes nodos. Linkpack librera especial para el el calculo del lgebra lineal en Cluster.

Herramientas de configuracin nativas de PelicanHPC. Autoconfiguracin de llaves publicas/privadas para la comunicacin a travs de SSH. Escritorio XFCE configurado y listo para usar. Ademas contiene algunos tutoriales de PelicanHPC en formato PDF y con su respectivo lector de PDFs, navegador web, y algunas herramientas grficas.

3. Instalacin y configuracin de PelicanHPC sobre VirtualBox


3.1. Primeros pasos
Como primer instancia debemos bajar la imagen de PelicanHPC, para este informe vamos a utilizar la ultima versin de PelicanHPC v2.6, por lo tanto nos dirigimos al sitio oficial, vamos a la seccin Download, y descargamos la imagen pelicanhpcv2.6.iso. (http://idea.uab.es/mcreel/PelicanHPC) Una vez que tengamos la imagen, podemos comenzar con la configuracin de las maquinas virtuales. Antes de iniciar VirtualBox debemos iniciar los mdulos necesarios(drv, netdp, netflt). Iniciar mdulos para VirtualBox # for m in vbox{drv,netadp,netflt}; do modprobe $m; done

Ejecutamos VirtualBox # VirtualBox

Figura 3.1.1 - VirtualBox v4.1.6

3.2. Configuracin del nodo mster


Ahora nos centraremos en crear una maquina virtual para el nodo mster de nuestro Cluster Para esto creamos una maquina virtual nueva, y completamos los parmetros que nos pide. Ingresamos el nombre de la maquina virtual, y le damos a elegir que es un sistema operativo Linux como se ve en la figura 3.2.1, para nuestro caso seleccionamos que es un Linux con versin de kernel 2.6 y de 64bits.

Figura 3.2.1 - Nueva maquina virtual Luego como se ve en la figura 3.2.2 no pide que ingresemos la cantidad de memoria RAM que va a utilizar nuestro nodo mster Debemos setear un poco mas de 256MB (por favor que sea potencia de 2), en el ejemplo seteamos 512MB. Despus de setear la memoria RAM, se nos pide que indiquemos si vamos a utilizar un disco fsico. PelicanHPC bootea sobre la memoria RAM as que no sera necesario el disco. Finalizamos la creacin y nos deber aparecer la maquina virtual en nuestro VirtualBox.

Figura 3.2.2 Cantidad de memoria que tendr disponible nuestra maquina virtual Hacemos click derecho sobre la maquina virtual, y nos dirigimos a la configuracin(settings). Seleccionamos la opcin System, desmarcamos todas las opciones donde dice Boot Order, y dejamos seleccionado solo el checkbox CD/DVDROM. Esto es necesario para que nuestra maquina virtual cuando inicie sepa que debe bootear sobre la imagen .ISO que bajamos anteriormente, figura 3.2.3.

Figura 3.2.3 - Configuracin del orden de booteo

Una vez configurado el orden de booteo, nos dirigimos a la opcin Storage, y seleccionamos la imagen que vamos a bootear, hacemos click sobre el CD-ROM que aparece sobre el lado derecho. Ademas seleccionamos el checkbox Live CD/DVD, como se indica en la figura.

Ahora debemos configurar la red de nuestra maquina virtual, como se ve en la figura 3.2.4. Nos dirigimos a la opcin que dice Network. Seleccionamos Internal Network, y le damos un nombre a nuestra red, por ejemplo pcpd.

Figura 3.2.4 - Configuracin de la red sobre la maquina virtual del nodo mster Con estos pequeos detalles de configuracin ya tendramos configurada la maquina virtual para nuestro nodo mster.

3.3. Configuracin de los nodos esclavos


Para esto, necesitamos crear una maquina virtual nueva, luego con la opcin de clonar maquinas virtuales, podemos crear mas nodos esclavos para nuestro Cluster. Las maquinas virtuales deben tener por lo menos 512MB de memoria RAM para su correcto funcionamiento. Creamos una maquina virtual, asignamos las mismas caractersticas que el nodo mster, y luego nos dirigimos a la configuracin de la misma, seleccionamos la opcin System, debemos configurar el orden del booteo de tal forma que busque sobre la red el arranque. Para esto desmarcamos todos los checkbox y dejamos habilitado solamente el Network como se visualiza en la figura 3.3.1.

Figura 3.3.1 - Configuracin de la maquina virtual del nodo esclavo

Ahora vamos a la opcin Networks y configuramos el adaptador de red para que trabaje sobre la misma red que nuestro nodo mster, completamos el nombre de la red como pcpd. Vea la figura de la derecha.

3.4. Clonacin de los nodos esclavos


Gracias a VirtualBox podemos configurar un solo nodo esclavo y luego duplicar este tantas veces queramos. Por lo tanto hacemos click derecho sobre la imagen del nodo esclavo que creamos recin, y hacemos click sobre clone, nos pedir que seteamos un nombre para la maquina virtual clonada como se ve en la figura 3.4.1, en mi caso el nombre es PelicanHPC Slave 2, tildamos el checkbox para que le asigne nuevas MAC a las maquinas virtuales anteriores, por cuestiones de no tener problemas futuros y que no se repitan las MACs en el sistema.

Figura 3.4.1 Clonacin de una maquina virtual Ya tenemos dos maquinas virtuales para los nodos esclavos, podemos agregar cuantos queramos de estos clones, pero no es recomendable ya que son maquinas virtuales y en el fondo hay 1 sola maquina ejecutando todas estas maquinas virtuales.

10

4. Inicio y configuracin de PelicanHPC


Luego de tener nuestras maquinas virtuales es necesario iniciar primero que todo la maquina virtual del nodo mster, y configurar algunos parmetros antes de iniciar los nodos esclavos.

4.1. Inicio y configuracin del nodo mster


Iniciamos nuestra maquina virtual nodo mster con un simple doble click o con el botn Start. Como primer instancia podemos ver el men del Grub como se muestra en la figura 4.1.1, donde nos da a elegir iniciar la distribucin live o live (failsafe), y otras opciones para comprobar la memoria y una ayuda. Seleccionamos la opcin live.

Figura 4.1.1 Iniciando la maquina virtual nodo mster

11

Esperamos a que inicie. Y nos mostrara la pantalla de Pelican Setup como se ve en la figura de la derecha, le damos al botn OK. Luego nos pedir si queremos crear un directorio home/user con archivos de prueba y unos tutoriales, seguimos con el botn Yes. Y por ultimo nos pide que cambiemos el password del usuario user, ademas de cambiarlo deben recordarlo, sera el password que usaran todos los nodos esclavos y el mster Una vez finalizada la configuracin podemos ver en la figura 4.1.2 el login del sistema.

Figura 4.1.2 Login del nodo mster

12

Ya booteamos y configuramos a medias nuestro Cluster, ahora ingresamos con el usuario user y el password que seteamos en el paso anterior. Una vez logueados, ejecutamos el comando pelican_setup # pelican_setup

Una vez iniciado nos aclara que debemos tener cuidado con los servidores DHCP que estn en nuestra red en comn, porque PelicanHPC debe manejar un servidor DHCP para darle las direcciones IP a nuestros nodos esclavos. Como estamos emulando una red, no tenemos este problema, pero si lo estuviramos haciendo fsicamente, y utilizamos algn router que tiene el servicio de DHCP activado deberamos desactivar esta opcin. Siguiendo los pasos, le damos al botn Yes, nos dir que quiere reiniciar algunos componentes, seguimos con el botn Yes y ya estaramos preparados para iniciar nuestros nodos esclavos.

13

4.2. Inicio y configuracin de los nodos esclavos


Dejamos de lado la maquina virtual con el nodo mster, e iniciamos las maquinas virtuales nodos esclavos. Como puede ver en la figura 4.2.1, el nodo esclavo busca un servidor DHCP para que le asigne una IP, ac es cuando en nodo mster le asigna una IP a cada nodo esclavo. Luego de asignarle la direccin IP le envi una imagen del sistema al nodo esclavo, y de esta forma el nodo esclavo bootea. Inicia el kernel y los procesos.

Figura 4.2.1 Buscando servidor DHCP

Figura 4.2.2 Login del nodo esclavo

14

Una vez que todos los nodos esclavos fueron iniciados (figura 4.2.2), debemos volver al nodo mster para terminar de acoplar nuestro Cluster.

4.3. Configuracin final del nodo mster


Nos dirigimos a la maquina virtual que contiene el nodo mster, y realizamos la bsqueda de los nodos esclavos. Pulsamos el botn No as el nodo mster hace broadcast con pings, analiza la red en bsqueda de nodos posibles, cuando un nodo retorna el ping(pong), el nodo mster agrega al Cluster el nodo esclavo. En la figura 4.3.1 podemos ver que el nodo mster encontr 2 nodos esclavos.

Figura 4.3.1 Se encontraron los 2 nodos esclavos Ya tenemos 2 nodos esclavos detectados por el nodo mster, por lo tanto podemos seguir, pulsamos en el botn Yes y listo, ya tenemos nuestro Cluster funcionando. Pueden ver la figura siguiente 4.3.2, del lado izquierdo tenemos los dos nodos esclavos y del lado derecho tenemos nuestro nodo mster.

15

Figura 4.3.2 - Nodos esclavos ejecutando htop

4.4 Comandos tiles de PelicanHPC


PelicanHPC cuenta con algunos comandos tiles que se pueden ejecutar desde el nodo mster. Agregar un nuevo nodo esclavo Si deseamos agregar un nuevo nodo esclavo debemos iniciar el nodo, esperar que boote la imagen por red, y luego correr el comando siguiente. # pelican_restart_hpc Apagar todos los nodos esclavos Si queremos podemos apagar todos los nodos esclavos con un solo comando, por lo tanto desde el nodo mster ejecutamos el comando siguiente. # pelican_nodes stop Iniciar entorno grafico Si queremos iniciar el entorno grfico XFCE, ejecutamos el comando siguiente. # startx

16

5. Benchmarks
5.1. FLOPS (Floating point operation per seconds)
Los FLOPS son una medida de rendimiento de una computadora, especialmente en clculos cientficos que requieren un gran uso de coma flotante. Por lo tanto vamos a ejecutar un pequeo benchamark que trae el propio PelicanHPC para ver la cantidad de FLOPS que tiene nuestro Cluster Para esto debemos ejecutar el binario flops pero bajo MPI, de esta forma el Cluster se comunica con sus nodos esclavos. En la figura 5.1.1 se puede ver como los nodos esclavos inicia en el proceso flops. Especificamos el archivo con los hosts de nuestra red # mpirun hostfiles tmp/bhosts ./flops

El archivo bhosts contiene las direcciones IP de todos los nodos esclavos y la propia del nodo mster Este archivo es generado automticamente cuando se inicia y configura el nodo mster Igual que las llaves publicas del nodo mster estn distribuidas en los nodos esclavos para que se puedan conectar va SSH y sin necesidad de ingresar el password en cada comunicacin.

Figura 5.1.1 Ejecutando el comando flops

17

Otras opcin que podemos agregarle al comando mpirun son la cantidad de procesadores que vamos a usar del Cluster, por ejemplo si queremos que el comando flops solo se ejecute en 2 procesadores, podemos agregar el flag -np 2 de esta forma, el nodo mster, buscara dos nodos esclavos distintos y ejecutara el comando en solo estos dos. PelicanHPC tiene la propiedad de buscar los nodos esclavos menos cargados y asignar el procesos en esos nodos. Como podemos ver en la figura 5.1.2 el nodo mster da la orden y luego los dos nodos esclavos ejecutan el comando flops, y obtenemos los resultados para los 2 procesadores que utilizamos. Para mostrar mejor la idea, ahora vamos a ejecutar 1 solo proceso de flops, entonces el Cluster deriva este proceso a un solo nodo esclavo y obtenemos los resultados de 1 solo nodo, podemos ver en la figura 5.1.2 sobre el nodo esclavo de arriba que se esta ejecutando el comando flops y sobre el nodo esclavo de abajo no se esta ejecutando el proceso.

Figura 5.1.1 Ejecucin del comando flops con 1 y 2 procesadores Ejecucin de flops en 2 procesadores # mpirun hostfiles tmp/bhosts -np 2 ./flops

Ejecucin de flops en 1 procesador # mpirun hostfiles tmp/bhosts -np 1 ./flops

18

Conclusin
PelicanHPC es una muy buena distribucin para crear un Cluster de alto rendimiento en pocos minutos, totalmente autoconfigurable, deteccin y configuracin de nodos esclavos casi transparentes. Ademas de ser una versin Live-CD se puede instalar al disco de manera sencilla pero eso escapa de nuestro informe. Contiene un entorno grfico liviano y configurable(XFCE) especial para la gente que no le gusta el shell, o desea manejar mas terminales de los normal o utilizar herramientas de ploteo de funciones matemticas. Viene con libreras especiales para la programacin paralela y ademas libreras de calculo numrico y algebraico que tambin hacen uso del sistema Cluster. Gran cantidad de software para instalar ya que PelicanHPC esta basada en Debian, y utiliza todos sus repositorios, con un simple comando(apt-get install APLICACION) podemos instalar paquetes.

19

Bibliogrfica
Beowulf Cluster Computing with Linux by Thomas Sterling. Libro. Pagina oficial de la distribucin PelicanHPC. Web. <http://idea.uab.es/mcreel/PelicanHPC> Foro oficial de la distribucin PelicanHPC. Foro. Web. <http://pelicanhpc.788819.n4.nabble.com/> Computer Cluster. Wikipedia. Web. <http://en.wikipedia.org/wiki/Computer_cluster> General information about the Open MPI Project. Web. <http://www.open-mpi.org/faq/?category=general> GNU Octave. Aplicacin de calculo numrico. Web. <http://www.gnu.org/software/octave>

20

You might also like