La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya."— Transcripción de la presentación:

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

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

3 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

4 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

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

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

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

8 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

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

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

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

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

13 Actividades

14 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

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

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

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

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

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

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

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

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

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

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

25 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

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

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

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

29 Proceso de desarrollo  Estado del arte e investigación.  Relevamiento de requerimientos.  Implementación: PHP. PosgreSQL. Apache.  Verificación: Documentada. Repetible.

30 Funcionalidades (Administrador)

31

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

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

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

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

36 Preguntas


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

Presentaciones similares


Anuncios Google