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

Slides:



Advertisements
Presentaciones similares
Sistema de Información Cultural, CONACULTA México, 2006 SiC / RENiC Aspectos técnicos relevantes para un Sistema de Información (SI)
Advertisements

Guido Rubin Escalabilidad.
SISTEMAS OPERATIVOS Un Sistema operativo (SO) es un software que actúa de interfaz entre los dispositivos de hardware y los programas de usuario.
I T S S P LIC INFORMATICA SISTEMAS OPERATIVOS WINDOWS 2003 SERVER DOCENTE: L.I RAMIRO ROBLES VILLANUEVA ALUMNOS: ROGELIO CHAIDEZ CORDOBA ZENON ESTRADA.
Base de Datos Distribuidas FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDAS
Objetivos Desarrollar software funcional multi-modelo sobre distintas plataformas para el estudio de sistemas complejos de cómputo de alto rendimiento.
Carlos Rojas Kramer Universidad Cristóbal Colón
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
BASES DE DATOS CLIENTE SERVIDOR Y DISTRIBUIDAS
UNIVERSIDAD TECNOLÓGICA ISRAEL CARRERA DE SISTEMAS INFORMÁTICOS
Sistemas Operativos Distribuidos Plataforma Cliente/Servidor
ERP-Sistema de Gestión Integral
INTRODUCCIÓN ESTADO DE LA TÉCNICA PROCESAMIENTO DISTRIBUIDO CON MPI PROCESAMIETNO DISTRIBUIDO DE IMÁGENES GENÉRICO CON VTK PROCESAMIENTO DISTRIBUIDO DE.
¿Qué es ZABBIX? Zabbix esta diseñado para monitorear y registrar el estado de varios servicios de red, Servidores, hardware de red, alertas y visualización.
Agenda Introducción Relevamientos de tecnologías
Estructuras en Sistemas Operativos
MOTORES DE BASE DE DATOS
Bioinformática FJS.
Universidad Centroamericana
Funcionalidad de una plataforma formativa Manuel Santiago Fernández Prieto Universidad Autónoma de Madrid.
Curso de Computación Científica en Clusters
OMAR SANCHEZ ROBLES HECTOR PEREZ GARCIA. “Sistemas de cómputo compuesto por un gran número de CPU´s conectados mediante una red de alta velocidad”, Tanenbaum.
Arquitectura de una aplicación
Las etapas de un proyecto
PROYECTO CLUSTERS NNOPPIX OPENMOSIX Ruben Albiach Juan Ballester López Freyder Espinosa Valencia Berna Ramon Sergio Fresneda David Malder Rafa SIMR PRIMERO.
Introducción al modelo Cliente-Servidor Carlos Rojas Kramer Universidad Cristóbal Colón.
EL SISTEMA OPERATIVO.
Desarrollo de aplicaciones para ambientes distribuidos
Computación en la Nube UASF.
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
INTRODUCCIÓN A JAVA. Índice ¿Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales ¿Qué ventajas tengo como desarrollador?
Estructuras en Sistemas Operativos DAISY KATERINE RODRÍGUEZ.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
PROGRAMACIÓN PARALELA Modelos de programación paralela Modelos computacionales Paradigmas de programación paralela Programación en memoria compartida:
PORTADA PRESENTADO A: ING EN AUTOMATICA INDUSTRIAL FABIO ANDRES LASSO POR: BAYRON DARYAN OSORIO PARQUE IMFORMATICO CARLOS ALBAN POPAYAN -CAUCA.
Agenda  Introducción  Relevamientos de tecnologías Objetivos de la fase de relevamiento de tecnologías Principales tecnologías disponibles -OpenMosix,
Arquitecturas de Sistemas Interactivos: Introducción
SISTEMAS OPERATIVOS. Cómo trabaja un SO Qué es el SO El sistema operativo (SO) es el software del sistema destinados a la realización de algunas tareas.
Supongamos que un usuario desea escribir un informe e imprimirlo en una impresora conectada. Para realizar esta tarea, se precisa una aplicación de procesamiento.
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
VISIÓN GENERAL DE LA IS Con independencia del modelo de proceso hay tres fases genéricas: Fase de definición Fase de desarrollo Fase de mantenimiento Cada.
SISTEMAS OPERATIVOS II
Departamento de Informática Universidad de Rancagua
“condición que necesita el usuario para resolver un problema o conseguir un objetivo determinado”. Los requisitos de un sistema son los aspectos que el.
Sistemas Operativos.
María José Freire Mayra Coello Juan Francisco Pérez
1 GESTIÓN DE UTILIZACIÓN DE REDES Noviembre 2013 Herramienta de Monitoreo Pandora FMS David González.
TIPOS DE SISTEMAS OPERATIVOS
Cluster de Computadores de Alto Desempeño con Acceso Remoto
MARIANA PRECIADO VILLA TELECOMUNICACIONES 11º3
ARQUICTECTURA DE SERVIDORES
ARQUITECTURA ALTERNATIVA DE SERVIDORES SISTEMAS OPERTIVOS DE RED En un sistema operativo de red los usuarios saben que están conectados a la red y que.
DISEÑO CURRICULAR Presentado por: Cesar Augusto Sáenz María Alejandra Hernández 1.contenidos curriculares de competencia.
Son los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un.
UN GRAN SISTEMA DISTRIBUIDO.  Heterogeneidad: Esta plataforma está diseñada para correr diferentes sistemas operativos (Windows XP, Windows.
BASE DE DATOS DISTRIBUIDAS
APACHE WEB SERVER El proyecto Apache Web Server es un desarrollo de software en colaboración, enfocado en crear una implementación de un servidor HTTP.
Ingeniería del Software I
Estructuras en Sistemas Operativos DAISY KATERINE RODRÍGUEZ.
Computadoras de Alto Rendimiento (HPC)
Computación en la Nube.
Tendencia De Los Sistemas Operativos
Arquitectura de una aplicación Arquitectur a: desarrolla un plan general del sistema, asegurando que las necesidades de los usuarios sean atendidas. Ingeniería.
SISTEMAS OPERTIVOS DE RED Los usuarios están conectados a la red y que pueden compartir recursos. Cada equipo ejecuta con sus propios recursos su propio.
Bases de Datos y Sistemas de Gestión de Bases Relacionales.
Marco de Trabajo para Indexación, Clasificación y Recopilación Automática de Documentos Digitales Javier Caicedo Espinoza Gonzalo Parra Chico.
VI. EVALUACIÓN DE LOS RECURSOS
Conociendo el modelo Cliente-Servidor
ESTUDIO DE FACTIBILIDAD
Conociendo el modelo Cliente-Servidor. Introducción En el mundo de TCP/IP las comunicaciones entre computadoras se rigen básicamente por lo que se llama.
Transcripción de la presentación:

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

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

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

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.

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

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.

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

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.

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.

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.

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.

Actividades

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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

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.

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.

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.

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

Funcionalidades (Administrador)

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.

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.

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.

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.

Preguntas