Multiprocesamiento Con PelicanHPC

10
ESCUELA DE CIENCIAS DE LA COMPUTACIÓN MULTIPROCESAMIENTO OCTUBRE 2010 – FEBRERO 2011 Informe de presentación del proyecto Final. 1. Introducción sobre la tecnología GridComputing ¿Qué es? Desde que se comenzó a utilizar Internet, los esfuerzos por hacer que el conocimiento sea cada vez más accesible se han venido intensificado, pero este esfuerzo también ha necesitado de maquinas mucho más potentes a las que poseían y más accesibles, de aquí nació la arquitectura cluster, pero esta arquitectura ha ido haciendo obsoleta ya que cada vez se incrementan las solicitudes a los servidores, e ir aumentando recursos a un cluster se ha hecho más costoso a la hora de pensar en el espacio para dichos equipos. “Grid Computing (malla de ordenadores) se basa en el aprovechamiento de los ciclos de procesamiento no utilizados por los millones de ordenadores conectados a la Red” [1], de esta forma se consigue que varios computadores estén conectados en diferentes partes del mundo, rompiendo así la barrera del espacio para la ubicación de computadores. Como wikipedia lo dice, “llamamos grid al sistema de computación distribuido que permite compartir recursos no centrados geográficamente para resolver problemas de gran escala. Los recursos compartidos pueden ser ordenadores (PC, estaciones de trabajo, supercomputadoras, PDA, portátiles, móviles, etc.), software, datos e información, instrumentos especiales (radio, telescopios, etc.) o personas/colaboradores.” [2] Según estos conceptos, se puede concluir que un grid es una arquitectura con una potencia de procesamiento ilimitada. “Es una solución altamente escalable, potente y flexible, ya que evitarán problemas de falta de recursos (cuellos de botella) y nunca queda obsoleta, debido a la posibilidad de modificar el número y características de sus componentes.” [2] Desventajas [1] “Recursos heterogéneos: la computación grid debe ser capaz de poder manejar cualquier tipo de recurso que maneje el sistema, si no resultará totalmente inútil. Descubrimiento, selección, reserva, asignación, gestión y monitorización de recursos son procesos que deben controlarse externamente y que influyen en el funcionamiento del grid. Necesidad de desarrollo de aplicaciones para manejar el grid, así como desarrollo de modelos eficientes de uso. Comunicación lenta y no uniforme. Organizativos: dominios de administración, modelo de explotación y costes, política de seguridad. Económicos: precio de los recursos, oferta/demanda.” Ventajas [3] “Seguridad, para pertener a un grid se deben seguir serie de protocolos que garantizan la seguridad del sistema. En contraste con los sistemas Peer-to-Peer donde la participación es anónima y poco segura. Adicionalmente, el grid maneja un concepto conocido como organizaciones virtuales sobre el cual basa las políticas de acceso a los recursos. Confiabilidad a diferencia de otros sistemas, donde los procesos deben ser replicados multiples veces, evaluando y comparando sus resultados para asegurar su fiabilidad, en un grid las organizaciones participantes son confiables, por lo tanto se asume que, en cierto modo, no hay datos corruptos. Coordinación, los miembros de un grid aportan siempre más recursos, es decir, es un esfuerzo coordinado donde todos aportan y todos usan los recursos disponibles. Escalabilidad, un grid es altamente escalable ya que se pueden agregar cada vez más recursos incrementando las capacidades del mismo. Esto es principalmente porque, por la naturaleza colaborativa y coordinada del grid, los miembros definen los recursos y los tiempos en que estos están disponibles

Transcript of Multiprocesamiento Con PelicanHPC

Page 1: Multiprocesamiento Con PelicanHPC

ESCUELA DE CIENCIAS DE LA COMPUTACIÓN

MULTIPROCESAMIENTO OCTUBRE 2010 – FEBRERO 2011

• Informe de presentación del proyecto Final.

1. Introducción sobre la tecnología GridComputing

¿Qué es? Desde que se comenzó a utilizar Internet, los esfuerzos por hacer que el conocimiento sea cada vez más accesible se han venido intensificado, pero este esfuerzo también ha necesitado de maquinas mucho más potentes a las que poseían y más accesibles, de aquí nació la arquitectura cluster, pero esta arquitectura ha ido haciendo obsoleta ya que cada vez se incrementan las solicitudes a los servidores, e ir aumentando recursos a un cluster se ha hecho más costoso a la hora de pensar en el espacio para dichos equipos. “Grid Computing (malla de ordenadores) se basa en el aprovechamiento de los ciclos de procesamiento no utilizados por los millones de ordenadores conectados a la Red” [1], de esta forma se consigue que varios computadores estén conectados en diferentes partes del mundo, rompiendo así la barrera del espacio para la ubicación de computadores. Como wikipedia lo dice, “llamamos grid al sistema de computación distribuido que permite compartir recursos no centrados geográficamente para resolver problemas de gran escala. Los recursos compartidos pueden ser ordenadores (PC, estaciones de trabajo, supercomputadoras, PDA, portátiles, móviles, etc.), software, datos e información, instrumentos especiales (radio, telescopios, etc.) o personas/colaboradores.” [2] Según estos conceptos, se puede concluir que un grid es una arquitectura con una potencia de procesamiento ilimitada. “Es una solución altamente escalable, potente y flexible, ya que evitarán problemas de falta de recursos (cuellos de botella) y nunca queda obsoleta, debido a la posibilidad de modificar el número y características de sus componentes.” [2] Desventajas [1] “Recursos heterogéneos: la computación grid debe ser capaz de poder manejar cualquier tipo de recurso

que maneje el sistema, si no resultará totalmente inútil.

Descubrimiento, selección, reserva, asignación, gestión y monitorización de recursos son procesos que deben controlarse externamente y que influyen en el funcionamiento del grid.

Necesidad de desarrollo de aplicaciones para manejar el grid, así como desarrollo de modelos eficientes de uso.

Comunicación lenta y no uniforme.

Organizativos: dominios de administración, modelo de explotación y costes, política de seguridad.

Económicos: precio de los recursos, oferta/demanda.”

Ventajas [3]

“Seguridad, para pertener a un grid se deben seguir serie de protocolos que garantizan la seguridad del sistema. En contraste con los sistemas Peer-to-Peer donde la participación es anónima y poco segura. Adicionalmente, el grid maneja un concepto conocido como organizaciones virtuales sobre el cual basa las políticas de acceso a los recursos.

Confiabilidad a diferencia de otros sistemas, donde los procesos deben ser replicados multiples veces, evaluando y comparando sus resultados para asegurar su fiabilidad, en un grid las organizaciones participantes son confiables, por lo tanto se asume que, en cierto modo, no hay datos corruptos.

Coordinación, los miembros de un grid aportan siempre más recursos, es decir, es un esfuerzo coordinado donde todos aportan y todos usan los recursos disponibles.

Escalabilidad, un grid es altamente escalable ya que se pueden agregar cada vez más recursos incrementando las capacidades del mismo. Esto es principalmente porque, por la naturaleza colaborativa y coordinada del grid, los miembros definen los recursos y los tiempos en que estos están disponibles

Page 2: Multiprocesamiento Con PelicanHPC

para el grid, así existe un dinamismo en el cual los servicios prestados por una institución pueden estar o no disponibles en un momento determinado y el grid está preparado para ello.”

2. Estado del Arte de la herramienta seleccionada y de las Librería de paso de

mensajes MPI Descripcion de la Herramienta La herramienta utilizada para armar el cluster es PelicanHPC. <<PelicanHPC es una distribución de GNU/Linux que se ejecuta como un CDlive. Si el archivo de imagen ISO se quema en un CD, el CD resultante puede usarse para arrancar una computadora. El equipo en el que PelicanHPC se arranca se le conoce como el "nodo principal", que es el equipo con el que el usuario interactúa. Una vez que PelicanHPC está en funcionamiento, una secuencia de comandos como "pelican_setup" se puede ejecutar. Este script configura el nodo principal como un servidor de arranque en red. Después de esto se ha hecho, otros equipos pueden tener las copias de arranque de PelicanHPC mediante la red. Estos otros equipos se conocen como "nodos de cómputo". PelicanHPC configura el clúster por el nodo principal y los nodos de cómputo, para que la computación paralela MPIbased se pueda hacer. Estas son algunas capturas de pantalla que se pueden observar al correr el CDlive en un computador.

Grafico 1

Grafico 2

Page 3: Multiprocesamiento Con PelicanHPC

Grafico 3

Grafico 4

Un CDlive, como PelicanHPC no utiliza el disco duro de cualquiera de los nodos, por lo que no va a destruir o alterar su sistema operativo instalado. Cuando el clúster PelicanHPC se apaga, todos los equipos regresan a su estado original, y se iniciará de nuevo con cualquier sistema operativo previamente instalado en el computador.>> [5]

Page 4: Multiprocesamiento Con PelicanHPC

Instalación y configuración de la herramienta La primera pantalla es de bienvenida en la cual elegiremos la primera opción “Livecd” para que el disco duro de la maquina no sufra ninguna alteración, la herramienta está diseñada para alojarse únicamente en la memoria RAM al seleccionar esta opción. Una vez hecho esto, la configuración comenzará, y en la primera pantalla de configuración (Grafico 5) seleccionaremos OK presionando la tecla “Intro”.

Grafico 5

La siguiente pantalla (Grafico 6) de configuración nos dice si deseamos que los ejemplos de PelicanHPC estén habilitados, debido a que nosotros correremos nuestro propio algoritmo, seleccionamos la opción “No”.

Grafico 6

Continuando con la instalación, PelicanHPC nos pedirá que ingresemos una clave de seguridad (Grafico 7), hay que tener mucho cuidado en este paso ya que esta clave la deberemos recordar porque será la clave de todo el sistema y sin ella no podremos instalar nada. Una vez cambiada la clave presionamos la tecla “Ïntro”.

Grafico 7

Una vez hecho estas configuraciones principales, el CDlive continuara configurando el sistema de manera automática, cuando haya finalizado de configurar nos presentara una pantalla de bienvenida (Grafico 8) en la

Page 5: Multiprocesamiento Con PelicanHPC

cual deberemos digitar “user” para pelican login y, para Password digitaremos la contraseña dada en el paso anterior. (Aquí la importancia de recordar el password digitado)

Grafico 8

Una vez que los parámetros ingresados son validados y aceptados, estaremos listos para configurar el cluster. Para ello digitaremos el comando “pelican_setup”, el cual iniciara las configuraciones necesarias para armar el cluster con la cantidad de nodos secundarios que deseemos.

Grafico 9

Primero elegimos la interfaz de red con la cual vamos a trabajar (Grafico 9). Nosotros elegimos la eth0 debido a que vamos a realizar la conexión mediante una red LAN.

Grafico 10

Luego de haber seleccionado la interfaz de red, nos aparecerá una advertencia que dice: No ejecute nuevamente el instalador si ya es parte de una red Pelican. Aquí marcamos Yes. (Grafico 10)

Page 6: Multiprocesamiento Con PelicanHPC

Grafico 11

En la siguiente pantalla (Grafico 11) nos dice que conectemos los nodos secundarios. Y lo que haremos es bootear los nodos secundarios desde la red (Grafico 12).

Grafico 12

Una vez que se instale el software, nos enviara a una pantalla de bienvenida parecida al del nodo principal. (Grafico 13).

Grafico 13

Luego regresamos a la instalación en el nodo principal, seleccionamos la opción “Yes” para continuar (Grafico 11). En la siguiente pantalla observaremos un mensaje que nos dirá cuantos nodos hay conectados al nodo principal, es decir, cuantos computadores más existen aparte del que hace de servidor (Grafico 14). Si el resultado es 0, se debe seleccionar la opción “No” y esta acción se volverá a ejecutar, una vez que el servidor o nodo principal haya detectado todos los computadores del cluster (Grafico 15) procedemos a elegir la opción “Yes”, pero si el servidor aun no ha detectado a los clientes, se deberá revisar la conexión y repetir los pasos.

Page 7: Multiprocesamiento Con PelicanHPC

Grafico 14

Grafico 15

La siguiente pantalla en aparecer es la que nos informa cuantos nodos van a conformar nuestro cluster incluyendo el nodo principal (Grafico 16).

Grafico 16

Finalmente, ejecutamos el comando “startx” para ingresar a la interfaz gráfica que nos ofrece Pelican.

Page 8: Multiprocesamiento Con PelicanHPC

Grafico 17

3. Implementación del Cluster con la herramienta seleccionada: a. Estudio a nivel de Hardware, Software y Red

i. Descripción de Hardware Nodo Principal: Nodo Secundario: Fabricante: DELL Modelo: Studio Laptop 1535 Procesador: Intel® Core™2 Duo CPU T5800 @2.00GHz. Memoria RAM: 4,00GB

ii. Descripción de Software (SO, requerimientos para la herramienta, herramienta de monitoreo) PelicanHPC como ya se explicó en el punto 2, es un Sistema Operativo el cual se lo ejecuta a través de un denominado CDlive, los requisitos para este SO son mínimos, ya que como es un software básico que a demás se ejecuta únicamente en memoria. Nosotros hemos decidido que los requerimientos mínimos para que nuestro algoritmo se ejecute correctamente son:

- Procesador Intel Core - 512MB de Memoria RAM - Tarjeta de red LAN Fast Ethernet 10/100

Como PelicanHPC es un Software el cual está diseñado específicamente para la realización de clusters, posee instalado una herramienta de monitoreo llamada GANGLIA que es una herramienta propicia para el monitoreo en tiempo real de clusters y grids.

iii. Descripción de Red (topología, direccionamiento)

b. Implementación de la herramienta i. Requerimientos de instalación

ii. Instalación de la herramienta

iii. Pruebas de instalación

4. Implementación de la Aplicación Paralela (viernes, 19 Nov)

a. Tema, Problemática y descripción funcionamiento de la Aplicación

b. Algoritmo Secuencial

c. Algoritmo Paralelo i. Descripción de las funciones y librerías paralela que se utiliza

Page 9: Multiprocesamiento Con PelicanHPC

ii. Descripción de funcionamiento de la aplicación

5. Integración del Cluster y la Aplicación (viernes, 26Nov)

a. Plan de Pruebas

b. Comparación mediante los criterios de evaluación de las versión secuencial y paralela (tiempo de ejecución, aceleración, eficiencia, y coste) en función del número de procesos y de la variación de los datos.

c. Gráficas de la comparación de las dos versiones

d. Análisis del rendimiento

6. Conclusiones y Recomendaciones

7. Bibliografía [1] Monograría de Adscripción a Sistemas Operativos; Autora: Barrios, Verónica Vanessa, 2005. [2] http://es.wikipedia.org/wiki/Computaci%C3%B3n_grid;

Visitado el: 24 de noviembre de 2010. [3] Grid Computing; Cestari, Daniel;

http://www.ldc.usb.ve/~yudith/docencia/ci-4822/gridcomputing.pdf, Visitado el: 24 de noviembre de 2010.

[4] http://pareto.uab.es/mcreel/PelicanHPC/; Visitado el: 5 de noviembre de 2010. [5]

[6] [7]

Page 10: Multiprocesamiento Con PelicanHPC

• POSTER DEL PROYECTO

(http://www.ecourban.org/tareas/investigacion/postercientifico/index.html)

• CD: informes, paper, código fuente (secuencial, paralelo), instaladores y todo lo que se haya requerido para el proyecto.

• Exposición del proyecto (pendiente fecha)