Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Jorge Castellanos - [email protected]
Clusters en Linux
* Jorge Castellanos - [email protected] ** Julio Ortega - [email protected]
* FACYT-UC – Computación** IUPSM – Sistemas
www.vaslibre.org.ve
Jorge Castellanos - [email protected]
Agenda
Motivación
Definiciones
Cluster Beowulf
Hardware
Herramientas de software
Mosix
Clusters en Carabobo
Conclusiones
Jorge Castellanos - [email protected]
Motivación
La VELOCIDAD en computación no solo es conveniencia
Los computadores más rápidos nos permiten resolver problemas más grandes, y a encontrar las soluciones más rápidamente, con mayor precisión y a más bajo costo
En las ciencias esto significa la diferencia entre ser el primero en publicar y no publicar, puede determinar quién es el primero en la oficina de patentes
En predicción meteorológica puede significar miles de vidas que se pueden salvar por una predicción oportuna
Jorge Castellanos - [email protected]
¿Para qué utilizar los supercomputadores?
Resolver problemas tecnológicos usando:
modelado computacional, simulación y análisis
Aeroespacial
Sistemas dePredicción Meteorológica
Sistemas Geofísicos
Diseño mecánicoy Análisis (CAD/CAM)
Genoma Humano
Jorge Castellanos - [email protected]
Un poco de historia ...
La era moderna de la computación se inició en 1945
Hasta 1985 los computadores fueron grandes y costosos
A mediados de los '80 ocurren sucesos importantes:Desarrollo de microprocesadores potentes (16, 32 y 64 bits) con el poder de un mainframe
Invención de LAN de alta velocidad
Como resultado se tiene la posibilidad de construir “redes de máquinas” (sistemas distribuidos) en contraste con los mainframes centralizados
Jorge Castellanos - [email protected]
Tendencias tecnológicas...
Jorge Castellanos - [email protected]
http://www.top500.org
Estos son los 5 supercomputadores más rápidos
Posición Pais/Año Computador/Procesadores/Fabricante Rmax/Rpico1 USA 2005 BlueGene/L 65536 IBM 136800 1835002 USA 2005 BGW 40960 IBM 91290 1146883 USA 2004 Columbia 10160 SGI 51870 609604 Japón 2002 Earth-Simulator 5120 NEC 35860 409605 España 2005 MareNostrum 4800 IBM 27910 42144
Listado de los 500 supercomputadores más rápidos del mundo
Rmax: Se obtiene de la prueba Linpack MPP (GFlops)
Rpico: Valor teórico máximo (GFlops)
Se actualiza dos veces por año
Junio 2005
Jorge Castellanos - [email protected]
Jorge Castellanos - [email protected]
Jorge Castellanos - [email protected]
¿Qué es un supercomputador?
Un supercomputador es un sistema de hardware y softwarecon una alta capacidad de cómputo medida en Flops (Operaciones de punto flotante por segundo)
Imagen arrecha de un supercomputador.
BlueGene/L
Jorge Castellanos - [email protected]
Tendencias Tecnológicas...
El desempeño de las PCs/Estaciones de Trabajo actuales es similar al de los Supercomputadores de hace 10 años
Microprocesadores (50% a 100% por año)
Redes de Interconexión (Gigabit, Infiniband, 10 Gigabit, Myrinet ..)
Sistemas Operativos (Unix, Linux, BSD)
Ambientes de Programación
Aplicaciones
La velocidad en el avance tecnológico y las mejoras en los componentes genéricos es muy alta
Jorge Castellanos - [email protected]
Paralelismo
Es el uso simultáneo de más de un procesador para resolver un problema
Es la capacidad de muchos hilos de control independientes para hacer progreso simultáneo hacia la terminación de un trabajo
Según la taxonomía de Flynn:Secuenciales (SISD): El procesador ejecuta una instrucción sobre un dato al mismo tiempo
Simple Instrucción/Múltiples Datos (SIMD): Cuando el procesador ejecuta la misma instrucción sobre múltiples datos al mismo tiempo
Múltiples Instrucciones/Múltiples Datos (MIMD): Se tienen múltiples procesadores ejecutando diferentes instrucciones sobre múltiples datos
Los CPUs pueden realizar ejecución simultánea ó cooperativa para resolver un problema
Jorge Castellanos - [email protected]
Escalabilidad, disponibilidad, fiabilidad
Escalabilidad: capacidad de un equipo para hacer frente a volúmenes de trabajo cada vez mayores sin dejar de prestar un nivel de rendimiento aceptable
Escalabilidad del hardware (escalamiento vertical): utilización de un gran equipo cuya capacidad aumenta a medida que lo exige la carga de trabajo existente
Escalabilidad del software (escalamiento horizontal): capacidad de un sistema de software para manejar un incremento significativo en la carga de trabajo, de forma que los usuarios obtienen un desempeño aceptable
Disponibilidad: calidad de estar presente, listo para su uso, a mano, accesible
Fiabilidad: probabilidad de un funcionamiento correcto
Jorge Castellanos - [email protected]
Arquitecturas de Computadoras Paralelas en Competencia
Computadores Vectoriales (VC) - sistemas propietariosRompen la barrera tecnológica necesaria para que emerja la ciencia de la computación, sin ser una respuesta completa
Multiprocesamiento Simétrico (SMP)
No son escalables
Procesadores Paralelos (MPP - Massively Parallel Processing) – sistemas propietarios
Alto precio y baja relación de desempeño/precio
Sistemas DistribuidosUsabilidad reducida y con dificultades para alcanzar paralelismo de alto desempeño
Clusters - ganando popularidadHigh Performance Computing >> Supercomputación de bajo costo
High Availability Computing >> Aplicaciones con misión crítica
Jorge Castellanos - [email protected]
Alternativas de Recursos paraSupercomputación... Una Necesidad
No es posible costear máquinas “Big Iron”
Debido a su alto precio y corta vida útil.
Recorte en los fondos
Paradoja: El tiempo necesario para desarrollar una aplicación paralela “Grand Challenge” es igual a: La mitad de la vida útil de un Supercomputador Paralelo.
Jorge Castellanos - [email protected]
¿Qué es un cluster?
Un cluster es un grupo de equipos independientes que ejecutan una serie de aplicaciones de forma conjunta y aparecen ante clientes y aplicaciones como un solo sistema
Los clusters permiten aumentar la escalabilidad, disponibilidad y fiabilidad de múltiples niveles de red
Jorge Castellanos - [email protected]
Cluster Beowulf
Cluster Beowulf no es un paquete software especial, ni una nueva topología de red, ni un núcleo modificado
Beowulf es una tecnología para agrupar computadores basados en el sistema operativo Linux para formar un supercomputador virtual paralelo
En 1994 bajo el patrocinio del proyecto ESS del Centro de la Excelencia en Ciencias de los Datos y de la Información del Espacio (CESDIS), Thomas Sterling y Don Becker crearon el primer cluster Beowulf con fines de investigación
Beowulf: es un texto en inglés antiguo de antes del siglo X que describe las aventuras de un gran guerrero escandinavo del siglo VI que tenía la fuerza de varios guerreros juntos
Jorge Castellanos - [email protected]
Cluster Beowulf
Beowulf posee una arquitectura basada en multicomputadores la cual puede ser utilizada para la computación paralela
Este sistema consiste de un nodo maestro y de uno o más nodos esclavos conectados a través de una red Ethernet u otra topología de red
Está construido con componentes hardware comunes en el mercado, similar a cualquier PC capaz de ejecutar Linux, con tarjetas de red y “switches” estándar
Beowulf se comporta más como una solamáquina que como muchas estaciones de trabajo conectadas (COW: Cluster of Workstations)
Jorge Castellanos - [email protected]
Cadena Alimenticia del Computador (presente y futuro)
Mainframes, Supercomputadores, y MPPs
Jorge Castellanos - [email protected]
Arquitectura de unCluster Beowulf
El nodo maestro controla el cluster entero y presta servicios de sistemas de archivos a los nodos esclavos
La consola del cluster y la conexión hacia el exterior se hace desde el nodo maestro
En la mayoría de los casos los nodos esclavos de un sistema Beowulf son estaciones simples
Los nodos esclavos se configuran y controlan desde el nodo maestro y hacen solamente lo que éste les indica
Jorge Castellanos - [email protected]
Arquitectura de unCluster Beowulf
Jorge Castellanos - [email protected]
¡Los clusters son una mejor alternativa!
Existe la disponibilidad de componentes genéricos que permiten SupercomputaciónSe amoldan bastante bien a la forma de conseguir fondos hoy en díaSe pueden beneficiar de nuevos avances tecnológicos
VLSI, CPUs, redes, discos duros, memoria, caché, Sistema Operativo, herramientas de programación, aplicaciones
Jorge Castellanos - [email protected]
¡Lo mejor de ambos mundos!
Computación de alto desempeño (HPC)Gran poder computacional
Reducir tiempo de cómputo
Resolver grandes problemas científicos
Almacenar y procesar grandes cantidades de datos
Computación de alta disponibilidad (HA)Servicio extremadamente confiable
Tolerante a fallas
Sistemas de misión crítica
Una máquina puede reemplazar a otra en caso de falla
Existe redundancia de datos entre las máquinas para minimizar las pérdidas por fallas
Jorge Castellanos - [email protected]
Ventanas de Oportunidades
MPP/DSM:(Massively Parallel Processing / Distributed Shared Memory)
Cómputo a través de múltiples sistemas: paralelo
Memoria distribuida:
Aprovecha memoria sin uso en otros nodos
Software RAID:
Para aprovechar el espacio en disco sin uso en otros nodos e incorporarlos a un conjunto compartido entre todos los nodos de un cluster
Comunicación Multi-direccional:
Comunicación a múltiples tipos redes: Ethernet, ATM, Myrinet e Infiniband...
Jorge Castellanos - [email protected]
Conjunto compartido de recursos:
Procesadores, Memoria, Discos
Interconexión
Garantiza al menos una estaciónde trabajo a cada individuo
(cuando están activos)
Proveen gran % de recursoscolectivos a algunos individuos
en cualquier momento
OportunidadesDisposición de Clusters: Clusters Empresariales
Jorge Castellanos - [email protected]
Hardware
S.O. Linux se ejecuta en...PCs (x86/AMD64/m68k/PPC)
Workstations (Alpha/MIPS/Itanium2)
SMPs
Clusters de Clusters (Constelaciones)
Soporte de interconexión en Linux con...
Gigabit Ethernet (1Gbps) / 10 Gigabit Ethernet (10 Gbps)
SCI (Dolphin - MPI- 12micro-sec latency)
ATM
Infiniband
Myrinet (1.2Gbps)
Digital Memory Channel
FDDI
Jorge Castellanos - [email protected]
Herramientas de desarrollo
CompiladoresC / C ++ / Java
DebuggersDDD
Herramientas de Análisis de DesempeñoNetperf
Netpipe
HPL
Herramientas de VisualizaciónGanglia
Jorge Castellanos - [email protected]
Netperf
Jorge Castellanos - [email protected]
Netpipe
Jorge Castellanos - [email protected]
High Performance LinpackHPL
Implementación Portable del Análisis de Rendimiento (Benchmarking) para computadores de memoria distribuida
El Software HPL resuelve un sistema lineal denso (aleatorio) en aritmética de doble precisión (64 bits)
Suministra una prueba y un programa de medición del tiempo para cuantificar la precisión de la solución obtenida y el tiempo que toma realizarla
El mejor rendimiento obtenido de este software depende del poder de calculo del CPU, del comportamiento de la memoria del sistema y de su red de interconexión
http://www.netlib.org/benchmark/hpl/
Jorge Castellanos - [email protected]
Resultados del HPL
Jorge Castellanos - [email protected]
Ganglia
Jorge Castellanos - [email protected]
Ambientes de Programación
Threads (PCs, SMPs, NOW..)
POSIX Threads
Java Threads
MPICH / LAM-MPIhttp://www-unix.mcs.anl.gov/mpi/mpich/
PVMhttp://www.csm.ornl.gov/pvm/pvm_home.htm
MOSIXhttp://www.mosix.org/
Jorge Castellanos - [email protected]
Multicomputer OS for UNIX (MOSIX)
Es un módulo (capa) de S.O. que provee a las aplicaciones con la “ilusión” de estar trabajando en un sistema simple
Las operaciones remotas se realizan como locales
Transparente desde el punto de vista de la aplicación - no cambia la interfaz de usuario
PVM / MPI / RSH
MOSIX
Aplicación
Hardware/SO
Jorge Castellanos - [email protected]
MOSIX es la herramienta principal
Supervisado por algoritmos distribuidos que responden en línea a la disponibilidad de recursos globales (transparente al usuario)
Balance de Carga - migra procesos desde nodossobre-cargados a poco cargados
Balance de Memoria - migra procesos desde un nodo que tiene su memoria agotada, para prevenir paging/swapping
Migración de Procesos que permite transferir =>> cualquier proceso, a cualquier sitio, en cualquier momento
Jorge Castellanos - [email protected]
Aplicaciones
Secuenciales (se benefician del Cluster)
Paralelas / Distribuidas (Aplicaciones para Clusters)
Aplicaciones “Grand Challenge”
Predicción del Tiempo Atmosférico
Química Cuántica
Modelado en Biología Molecular
Ingeniería (CAD/CAM)
Modelado matemático de océanos
Simulación
Bases de Datos Paralelas y Distribuidas, servidores web,data-mining
Jorge Castellanos - [email protected]
Middleware para Clusters
Residen entre el SO y Aplicaciones y ofrecen infraestructura para soportar:
Sistema de Imagen Única (SSI)
Disponibilidad del Sistema (SA)
SSI: hace que una colección de máquinas parezca una sola (visión globalizada de los recursos)
SA: Check pointing y migración de procesos
Jorge Castellanos - [email protected]
Escalabilidad (física y de aplicaciones)
Disponibilidad mejorada (tolerancia a fallos)
Imagen de Sistema Único (OpenMOSIX)
Velocidad de Comunicación (redes y protocolos)
Balanceo de Carga (CPU, Red, Memoria, Disco)
Seguridad (clusters de clusters)
Ambiente Distribuido (aspectos sociales)
Gestión (administración y control)
Programabilidad (API simple de ser requerida)
Aplicabilidad
Principales aspectos en el diseño de Clusters
Jorge Castellanos - [email protected]
Clusters en Carabobo
Universidad de Carabobo – FACYT Babilonia (Linux 64 bits)
16 nodos Sunfire V20z de doble procesador AMD® Opteron® 244 para un total de 32 procesadores, con 2G de memoria c/u
Nodo de Administración y Monitoreo Sunfire v20z con 1G de memoria
Interconectados con Ethernet 1000/1000
Poder de Cómputo Aproximado: 100 Gflops (No Oficial)
Jorge Castellanos - [email protected]
Clusters en Carabobo
Universidad de Carabobo – FACYT Mangosta (Linux 32 bits)
Cluster tipo Beowulf formado por 15 nodos con procesadores Intel® Pentium® 4, con 1G de memoria c/u
Interconectados con Ethernet 100/1000
Poder de Cómputo Aproximado: 40 Gflops
Jorge Castellanos - [email protected]
Clusters en Carabobo
Universidad de Carabobo – Facultad de Ingeniería Nimbus (Linux 32 bits)
5 nodos con procesadores Intel® Pentium® 4 , con 256M de memoria c/u
Nodo de Administración y Monitoreo con 512M de memoria
Interconectados con Ethernet 1000
Poder de Cómputo Aproximado: 10 Gflops
Jorge Castellanos - [email protected]
Clusters en Carabobo
Proyectos Cluster en DesarrolloMangostita (Linux 32 bits)
Actualmente con 2 nodos con procesadores Intel® Pentium® 4 , con 1G de memoria c/u Interconectados con Ethernet 100/1000Poder de Cómputo Aproximado: 6.2 Gflops
Jorge Castellanos - [email protected]
¿Quienes han adoptado la visión Cluster?
Jorge Castellanos - [email protected]
Conclusiones Los Clusters son prometedores...
Resuelven la paradoja del procesamiento paralelo
Ofrecen un crecimiento incremental que coincide con políticas de recursos limitados
Nuevas tendencias en tecnología de hardware y software harán aún más prometedores los clusters y llenarán la brecha SSI (Single System Image)
Cada día hay más Supercomputadores basados en “Cluster Linux” en diversas áreas
Nuestro país no escapa a esta realidad: PDVSA tiene proyectada la construcción de un Cluster basado en Linux
Jorge Castellanos - [email protected]
Referencias
Site del top 500, supercomputadores más poderosos, estado del arte en supercomputación: http://www.top500.org
Referencia obligada para obtener programas de medición de desempeño en clusters y supercomputadores: http://www.netlib.org/benchmark
El proyecto Beowulf: http://www.beowulf.org/
El proyecto Mosix: http://www.mosix.org/
Dr Jack Dongarra, reconocido experto en supercomputación, material de presentaciones: http://www.netlib.org/utk/people/JackDongarra/
Dr. Rajkumar Buyya, reconocido experto en clusters, muchas referencias y presentaciones: http://www.buyya.com/
Site del cluster mangosta (Dr. Freddy Perozo): http://mangosta.facyt.uc.edu.ve