Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo...

36
Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya

Transcript of Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo...

Page 1: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Cluster de Computadores de Alto Desempeño con Acceso Remoto

Santiago IturriagaDamián PintosPaulo Maya

Page 2: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Agenda

Introducción Relevamientos de tecnologías Interfaz de acceso y administración Conclusiones y trabajos a futuros Preguntas

Page 3: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Agenda

Introducción• Proyecto CCADAR• Motivación – Objetivos• Alcance• Trabajos previos - Construcción del cluster• Actividades del proyecto• Introducción a la computación de alto rendimiento

Relevamientos de tecnologías Interfaz de acceso y administración Gestion del Proyecto Conclusiones y trabajos a futuros Preguntas

Page 4: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Proyecto CCADAR - Motivación

Nace en el CeCal (Centro de Calculo del INCO) Existe cluster con software con nivel de abstracción bajo. Limita el nivel de usuarios. Se desea:

•mantener un control estricto de las actividades de los usuarios

•garantizar la disponibilidad de recursos•mantener un historial de utilización de recursos•monitoreo del cluster en tiempo real

Page 5: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Proyecto CCADAR – Objetivos y alcance

Construcción e implantación de un sistema de acceso remoto a un cluster de alto desempeño.

Objetivos:•Estudio del estado del arte sobre la utilización de

equipamiento destinado al procesamiento paralelo-distribuido.

•Evaluación de paquetes de software de base.•Desarrollo de software que permita la administración

semiautomática del clúster.•Desarrollo de una interfaz amigable que permita la

utilización del cluster de forma simple.

Page 6: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Trabajos previos

Gran variedad de trabajos dentro de la computación de alto desempeño: investigación, desarrollo, construcción de aplicaciones de clusters.

Una versión paralela del algoritmo evolutivo para optimización multiobjetivo NSGA-II y su aplicación al diseño de redes de comunicaciones confiables (2003).

Proyecto MPI.net (2003).

Diseño, configuración, administración y evaluación de performance de un HPC cluster(2006).

Page 7: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Computación de alto desempeño - Intro

La computación avanza y los problemas a resolver se tornan cada vez más complicados (modelos más complejos, mayores volúmenes de datos y tiempos de respuesta más limitados).

HPC nació para satisfacer todos estos requisitos de poder de cómputo.

Paradigmas de programación paralela y/o distribuida.

Se apoya en tecnologías como clusters, grids.

Page 8: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

HPC: computación paralela - distribuida

Distribuida:•Consiste en compartir recursos heterogéneos.•Diseñada para resolver problemas que superan la

capacidad de cualquier supercomputadora o mainframe.•Manteniendo la flexibilidad de trabajar en múltiples

problemas más pequeños.•Varios grados de distribución: de hardware y

procesamiento, de datos y de control.•Ventajas: mejora en el desempeño, la robustez, la

seguridad no centralizada y el acceso transparente a los datos remotos

Page 9: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

HPC: computación paralela – distribuida (2)

Paralela:•La programación paralela es una técnica de programación

basada en la ejecución simultánea en un mismo ordenador (con uno o varios procesadores) o en un cluster de ordenadores.

•Favorecida por el avance en diferentes tecnologías: microprocesadores con mayor poder de procesamiento, comunicación de datos de alta velocidad y el desarrollo de bibliotecas para la comunicación entre procesos.

•Ventajas: mayor capacidad de proceso, menor tiempo de procesamiento y aprovechamiento de la escalabilidad potencial de los recursos.

Page 10: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

HPC - Clusters

El término cluster se aplica a los conjuntos de computadoras unidos mediante una red de alta velocidad que se comportan como si fuesen un único recurso computacional.

Papel importante en aplicaciones científicas, de ingeniería, comerciales, simulaciones.

El uso surge gracias a la convergencia de varias tendencias actuales: microprocesadores económicos de alto rendimiento, redes de alta velocidad, herramientas para cómputo distribuido de alto rendimiento, así como la creciente necesidad de potencia computacional para aplicaciones que la requieran.

Características: alto rendimiento, alta disponibilidad, equilibrio de carga y escalabilidad.

Page 11: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

HPC – Clusters (2) Cluster de alto rendimiento: está diseñado para dar altas

prestaciones de capacidad de cálculo.

Cluster de alta disponibilidad: se caracteriza por compartir los discos de almacenamiento de datos.

Cluster de balanceo de carga: compuesto por uno o más ordenadores que actúan como front-end del cluster, y que se ocupan de repartir las peticiones de servicio

Escalabilidad: La escalabilidad es la propiedad deseable de un sistema, una red o un proceso, que indica su habilidad para, o bien manejar el crecimiento continuo de trabajo de manera fluida, o bien para estar preparado para crecer en tamaño sin perder calidad en los servicios ofrecidos.

Page 12: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

HPC - Herramientas para la programación paralela

Diferentes lenguajes y herramientas de programación con características específicas para diferentes clases de problema.

C++ Composicional, High Performance Fortran, Parallel Virtual Machine (PVM), Message Passing Interface (MPI)

Middleware: • Es un software de conectividad que ofrece un conjunto de

servicios que hacen posible el funcionamiento de aplicaciones distribuidas sobre plataformas heterogéneas.

• Ofrece herramientas para la optimización y mantenimiento del sistema.

• Recibe los trabajos entrantes al cluster y los redistribuye de manera que el proceso se ejecute más rápido y el sistema no sufra sobrecargas en un servidor.

Page 13: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Actividades

Page 14: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Agenda

Introducción Relevamientos de tecnologías

• Objetivos de la fase de relevamiento de tecnologías• Principales tecnologías disponibles

- OpenMosix, OpenSSI, Kerrighed- Condor- Sun Grid Engine- TORQUE- Maui- Ganglia

• Tecnologías elegidas

Interfaz de acceso y administración Conclusiones y trabajos a futuros Preguntas

Page 15: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Objetivos de la fase de relevamiento de tecnologías Investigar las herramientas disponibles para:

•Administración y ejecución de programas paralelos y distribuidos.

•Monitoreo de la utilización de los recursos físicos en un cluster de computadores, e.g.:

- Tráfico de datos en la red.- Uso de memoria RAM de cada nodo.

Evaluar las características y las prestaciones de cada una de las herramientas.

Seleccionar un conjunto de estas herramientas que mejor de adecue al proyecto.

Page 16: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

OpenMosix, OpenSSI, Kerrighed

Single System Image (SSI) a nivel del núcleo del sistema operativo.

Recurso computacional unificado, completa transparencia para el usuario desarrollador en su gestión de recursos.

No es necesario utilizar MPI ni PVM para beneficiarse del paralelismo.

Es posible migrar procesos de un nodo a otro. Desventajas:

•Desempeño por debajo de MPI y PVM.•Modelo de desarrollo difícil de mantener y migrar a nuevas

versiones del núcleo.•No se ajusta a las aplicaciones ya desarrolladas utilizando

MPI o PVM.

Page 17: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Condor

Software para la gestión de recursos distribuidos desarrollado por la Universidad de Wisconsin.

Específico para High-Throughput Computing (HTC). Especial enfoque en la robustez y tolerancia a fallas del

cluster, e.g.: puntos de recuperación y migración de procesos. Brinda funcionalidades para el “robo” de ciclos de computo no

utilizados. Brinda una interfaz de programación en C que cumple con el

estándar DRMAA 1.0. Desventajas:

•Limitado soporte para bibliotecas de programación paralela.

•Si bien puede adaptarse no parece ser la herramienta ideal para la problemática planteada.

Page 18: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Sun Grid Engine (SGE)

Software para la gestión de recursos distribuidos conocido anteriormente como CODINE desarrollado por Sun Microsystems.

Soporte para bibliotecas de programación paralela como MPI y PVM.

Brinda interfaces de programación en C y Java que cumplen con el estándar DRMAA 1.0.

Sun Microsystems ofrece también una versión comercial de SGE llamada N1 Grid Engine.

Desventajas:•De difícil adaptación o modificación de su funcionamiento

debido a su gran tamaño y diseño monolítico.

Page 19: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

TORQUE

Software para la gestión de recursos distribuidos desarrollado por Cluster Resources.

Soporte para bibliotecas de programación paralela como MPI y PVM.

Brinda una interfaz de programación en C que cumple con el estándar DRMAA 1.0.

Brinda una interfaz de comunicación para la utilización de un despachador de trabajos externo.

Es un software modular de mediano porte. Desventajas:

•No ofrece funcionalidades de ”robo” de ciclos de procesador.

•El soporte para PVM es limitado.

Page 20: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Maui

Software para el despacho de trabajos desarrollado por Cluster Resources.

Brinda una interfaz de comunicación con TORQUE. Brinda una interfaz de comunicación con Gold. Ofrece servicios avanzados de despachamiento de trabajos,

e.g.: preemption, backfill, fairshare, etc. Maui consume muy pocos recursos de hardware: en clusters

de hasta 10 TeraFLOPs basta con entre 20 a 50 MB de RAM. Cluster Resources ofrece una versión comercial de Maui

llamada Moab.

Page 21: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Ganglia

Ganglia es un sistema de monitoreo escalable y distribuido para sistemas de alto desempeño como clusters de computadores o grids.

Se encuentra disponible para una amplia cantidad de sistemas operativos: Linux, BSD, Solaris, Windows, Darwin, etc.

Posee especial énfasis en consumir el mínimo de recursos posibles por nodo y brindar un máximo de concurrencia.

Brinda una interfaz de usuario web implementada en PHP. Configuración muy simple. Desventajas:

•No posee un sistema de alertas ni eventos.

Page 22: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Tecnologías elegidas (1)TORQUE y Maui TORQUE como gestor de recursos distribuidos y Maui como despachador de trabajos.

Razones:•TORQUE Brinda DRMAA 1.0 en C.•Soporte para MPI y PVM.•Tanto TORQUE como Maui requieren pocos recursos de

hardware para su ejecución.•TORQUE es un derivado de PBS por lo que cuenta con un

código base muy estable y sólido.•PBS fue desarrollado a mediados los años '90 para

manejar recursos de computo en la NASA.

Page 23: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Tecnologías elegidas (2)TORQUE y Maui Carencias:

•No provee funcionalidades para el “robo” de ciclos de procesador.

•No provee funcionalidades para la migración de procesos de forma independiente.

- Requiere que estas funcionalidades sean provistas por el sistema operativo.

Estas carencias no son un problema importante ya que el cluster cuenta con nodos dedicados.

Page 24: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Tecnologías elegidas (3)

Para el monitoreo de recursos del sistema se eligió utilizar Ganglia.

•Facilidad de uso.•Énfasis en consumir el mínimo de recursos posibles por

nodo.•Ya se estaba siendo utilizado por el CeCal.•Facilidad para su integración con Fenton.•Otras alternativas más avanzadas: Zenoss, Zabbix, Pandora

FMS, Nagios. Otras tecnologías:

• Apache.• PHP.• PostgreSQL.

Page 25: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Agenda

Introducción Relevamientos de tecnologías Interfaz de acceso y administración

• Requerimientos• Proceso de desarrollo• Funcionalidades (Administrador)• Demo (Usuario Final)

Conclusiones y trabajos a futuros Preguntas

Page 26: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Requerimientos (1)

Interfaz de usuario simple y de fácil acceso para usuarios no especializados.

Manejo de usuarios con perfiles diferenciados:•Usuario administrador: mantiene usuarios y grupos del

sistema así como el acceso de los mismos a los distintos trabajos.

•Usuario final: corre sus procesos en el cluster.

Page 27: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Requerimientos (2) – Usuario final

El usuario final tendrá la posibilidad de subir un proyecto al cluster, compilarlo, ejecutarlo y consultar la salida a pantalla en tiempo real.

Alertas a los usuarios:•Inicio y finalización de trabajos.•Excesos de recursos del cluster.

Page 28: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Requerimientos (3) – Usuario administrador

Reportes estadísticos sobre los recursos del cluster:•Total de carga de CPU y memoria.•Tiempos de procesamiento por usuario y por proceso.•Información por nodo del cluster, usuario o proceso.

Administrar las reservas del cluster para organizar la utilización de recursos por parte de varios usuarios de forma simultánea.

Page 29: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Proceso de desarrollo

Estado del arte e investigación. Relevamiento de requerimientos. Implementación:

•PHP.•PosgreSQL.•Apache.

Verificación:•Documentada.•Repetible.

Page 30: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Funcionalidades (Administrador)

Page 31: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Funcionalidades (Administrador)

Page 32: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Gestión de proyecto

Control de riesgos.

Investigación: expertos por aéreas

Modelo en cascada relajado: se definieron fases para la ejecución del proyecto: estudio del arte y relevamiento de tecnologías, desarrollo, testing.

Versionado: fuentes y documentación SVN.

Registro de tareas y bugs durante el desarrollo y testing: grupos Google.

Page 33: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Trabajo futuro

Integración de Gold. Aumentar la características y opciones de monitoreo para

chequeo preventivo. Integración de biblioteca PVM. Profundizar en el fine-tunning de TORQUE y Maui. Integración del sistema con Ganglia, mas funcionalidades,

información de de TORQUE. Mejorar los reportes de los usuarios administradores. Comunicación entre el sistema Fenton y TORQUE para utilizar

la API DRMAA.

Page 34: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Conclusiones

La computación de alto rendimiento es fundamental para la resolución de problemas con un alto grado de complejidad computacional.

Este proyecto de grado permitió explorar a fondo la problemática de la computación de alto rendimiento mediante etapas de aprendizaje e investigación de tecnologías.

Existe una gran variedad de herramientas para la implementación y monitoreo de clusters: TORQUE, MAUI, GANGLIA, etc.

Page 35: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Conclusiones

TORQUE y Maui permitieron construir una sólida plataforma de ejecución de trabajos, y fue a partir de esta plataforma que se desarrolló una interfaz web para el acceso remoto al sistema.

El resultado de éste proyecto de grado fue muy positivo y los objetivos propuestos se alcanzaron en buena forma.

Page 36: Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.

Preguntas