Post on 12-Feb-2019
1
Sergio Romero, Febrero 2009 Arquitecturas Distribuidas
Clusters
High Performance Cluster Computingde Rajkumar Buyya
2
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 2
CLUSTERS
Índice
Introducción Arquitectura del cluster Clasificación de los cluster Cluster Middleware & Single System Image
3
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 3
CLUSTERS
Qué es un cluster
Un cluster es un tipo de sistema de procesamiento paralelo o distribuido queconsiste en una colección de computadorescompletos interconectados que trabajan de forma cooperativa como un recursocomputacional integrado único
Un cluster típico:– Redes: Rápidas y conexiones más cortas que una red LAN
típica– Protocolos de comunicación de baja latencia– Conexión más débil que los SMP
4
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 4
CLUSTERS
Por qué ahora
Elementos constitutivos de alto rendimiento al alcance– Computadores completos (HW & SW) fabricados por
millones: microprocesadores, RAM, discos, SO, redes, aplicaciones,…, competitivos y asequibles
El rendimiento de las estaciones de trabajo se duplicacada 18 meses
Las redes son más rápidas El ancho de banda de los enlaces es mayor
– 10Gbit vs 10Mbit Ethernet– Redes basadas en conmutadores [switches] (ATM)– Interfaces simples y rápidos (Mensajes Activos)
Se prefiere el almacenamiento en RAID
5
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 5
CLUSTERS
Razones arquitecturales
La arquitectura del nodo domina el rendimiento– procesador, cache, bus, y memoria– Diseño e ingeniería orientado al rendimiento
La mayor demanda de rendimiento se produce en los sistemas grandes– Debe seguir el liderazgo tecnologico sin perder el paso
Se incorpora la tecnología de redes de los MPP– system area networks
El sistema en cada nodo habilita mayor potencial– E/S de muy alta velocidad, memoria virtual, planificación, …
6
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 6
CLUSTERS
Razones arquitecturales
Los cluster pueden crecer: escalabilidad incremental (hacia arriba, abajo y a lo ancho)– El rendimiento de los nodos puede ser mejorado añadiendo
recursos adicionales (más memoria o disco)– Se puede incrementar o decrementar el número de nodos– Se pueden hacer clusters de clusters y metacomputación
Herramientas software completas– Threads, PVM, MPI, DSM, C, C++, Java, Parallel C++,
Compiladores, Depuradores, SO, etc.
Ámplio rango de aplicaciones– Tanto secuenciales como aplicaciones paralelas Grand
Challeging
7
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 7
CLUSTERS
Razones para usar un cluster
Los estudios muestran que el uso de ciclos de CPU de lasestaciones de trabajo es típicamente inferior al 10%
El rendimiento de las estaciones de trabajo y los PC mejoranrápidamente, por lo que el porcentaje de uso decaerá aún más
Las organizaciones son reacias a compar grandescomputadores debido al alto coste y al ciclo de vida útil
Las herramientas de desarrollo para estaciones de trabajo son comparativamente más maduras que las solucionespropietarias de los computadores paralelos, debidofundamentalmente a la naturaleza no-estándar de muchossistemas paralelos
Los clusters son una alternativa barata y disponible a lasplataformas especializadas en HPC
El uso de clusters como recurso de computación distribuido esmuy eficiente desde el punto de vista económico (crecimientoincremental del sistema)
8
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 8
CLUSTERS
Robo de ciclos [máquina]
Normalmente un PC está asignado a un individuo, grupo, departamento u organizacióny estos elementos se dedican en exclusiva a sus poseedores
Esto llega a ser un problema cuando se intentaconstruir un cluster para aplicacionesdistribuidas
9
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 9
CLUSTERS
Robo de ciclos [máquina]
Hay tres tipos de usuarios, que usan sus PC para:1. Enviar/recibir correos y preparar documentos2. Desarrollar de software (editar, compilar, depurar,…)3. Ejecutar aplicaciones de computación intensiva
La computación en cluster roba ciclos de (1) y (2) proporcionando recursos para (3)
Esto requiere superar la barrera de la propiedad, los usuarios son muy recelosos de sus PC
Robar ciclos fuera de las horas de trabajo estándar(por la noche) es fácil, robar ciclos ociosos (CPU y memoria) durante las horas de trabajo sin degradarel rendimiento de usuarios interactivos es un desafíomayor
10
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 10
CLUSTERS
Índice
Introducción Arquitectura del cluster
– Nodos / Procesadores– Sistemas Operativos– Redes de alto rendimiento / Interfaces de Redes– Software de comunicación– Middleware / Componentes– Entornos de programación / Herramientas de
desarrollo– Aplicaciones
Clasificación de los cluster Cluster Middleware & Single System Image
11
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 11
CLUSTERS
Arquitectura de un Cluster
12
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 12
CLUSTERS
Arquitectura de un Cluster: Nodos / Procesadores
Múltiples componentes de alto rendimiento:– PCs– Workstations– SMPs (CLUMPS)– Sistemas HPC distribuidos
Pueden estar basados en diferentetecnología y ejecutar diferentes SO
Procesadores:– Intel, Sun, HP PA, IBM, ...
13
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 13
CLUSTERS
Arquitectura de un Cluster: Sistemas Operativos
14
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 14
CLUSTERS
Arquitectura de un Cluster: Redes (HPN)
Redes genéricas– 10 Gigabit Ethernet– Myrinet: Miry-10G– QsNet: QsNetIII
– Infiniband
Redes propietarias– Cray Interconnect– NumaFlex (SGI)– SP switch (IBM)– ...
15
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 15
CLUSTERS
Arquitectura de un Cluster: SW de comunicación
Soportes proporcionados tradicionalmente porlos SO (protocolos pesados)– Sockets (TCP/IP), Pipes, etc.
Protocolos ligeros (nivel de usuario)– Active Messages (Berkeley)– Fast Messages (Illinois)– U-net (Cornell)– XTP (Virginia)
Los sistemas de comunicación se puedenconstruir sobre protocolos anteriores
16
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 16
CLUSTERS
Arquitectura de un Cluster: Middleware (MW)
Entre el SO y las aplicaciones que ofreceinfraestructura para proporcionar:– Imagen Única del sistema-Single System Image (SSI)– Disponibilidad - System Availability (SA)
SSI hace que el sistema aparente ser unasola máquina: visión global de los recursos
SA proporciona check pointing y migraciónde procesos
17
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 17
CLUSTERS
Arquitectura de un Cluster: Componentes MW
Hardware – DEC Memory Channel, técnicas DSM y SMP
OS / Gluing Layers– Solaris MC, Unixware, Glunix
Aplicaciones y Subsistemas– Administración del sistema– Sistemas en tiempo de ejecución (DSM, PFS, etc.)– Gestión de recursos y planificación:
• CODINE, LSF, PBS, NQS, etc.
18
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 18
CLUSTERS
Arquitectura de un Cluster: Programación
Entornos de programación– Threads (PCs, SMPs, NOW..)
• POSIX Threads• Java Threads
– MPI (message passing interface)• Linux en la mayoría de los multicomputadores
– PVM (parallel virtual machine)– Software DSMs (Shmem)
19
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 19
CLUSTERS
Arquitectura de un Cluster: Programación
Herramientas de desarrollo:– Compiladores
• C/C++/Java/…• Programación Paralela con C++ (MIT Press book)
– RAD (rapid application development tools): herramientas basadas en GUI para el modelado de procesamiento paralelo
– Depuradores (debuggers)– Herramientas de análisis del rendimiento– Herramientas de visualización
20
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 20
CLUSTERS
Arquitectura de un Cluster: Aplicaciones
Secuencial Paralelo / Distribuido (apl. conscientes)
– Aplicaciones Grand Challenge• Predicción meteorologica• Química cuántica• Modelado de biología molecular• Análisis en la ingeniería (CAD/CAM)• …
– PDBs, servidores web, minería de datos…
21
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 21
CLUSTERS
Beneficios operacionales clave de los clusters
Alta disponibilidad (HA): Ofrece alta disponibilidaddebido a la redundancia del hardware, sistemasoperativos y aplicaciones
Hardware tolerante a fallos: Redundancia para la mayoría de los componentes del sistema (p.ej. RAID) incluyendo comopnenetes hardware y software
Fiabilidad del SO y las aplicaciones: Ejecución de múltiples copias del SO y las aplicaciones
Escalabilidad: Añadiendo servidores al cluster, másclusters a la red,…, dependiendo de las necesidades
Alto rendimiento: Ejecutando programas desarrolladospara el cluster
22
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 22
CLUSTERS
Índice
Introducción Arquitectura del cluster Clasificación de los clusters
– Objetivo (en el mercado)– Workstation/PC Ownership– Arquitectura del nodo– Tipo de SO del nodo– Arquitectura y configuración de los nodos– Nivel de clusterización
Cluster Middleware & Single System Image
23
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 23
CLUSTERS
Clasificación de los Clusters: Objetivo
Clusters de Alto Rendimiento (HP)– Aplicaciones Grand Challenge
Clusters de Alta Disponibilidad (HA)– Aplicaciones de Misión Crítica
24
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 24
CLUSTERS
Clasificación de los Clusters
Cluster de Alta Disponibilidad
25
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 25
CLUSTERS
Clasificación de los clusters: Ownership
Clusters Dedicados
Clusters No-dedicados– Computación paralela adaptativa– También llamado Communal Multiprocessing
26
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 26
CLUSTERS
Clasificación de los clusters: Arquitecura del nodo
Clusters de PCs (CoPs)
Clusters de Workstations (COWs)
Clusters de SMPs (CLUMPs)
27
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 27
CLUSTERS
Clasificación de los clusters: Sistema Operativo
Clusters Linux (Beowulf) Clusters Solaris (Berkeley NOW) Clusters NT (HPVM) Clusters AIX (IBM SP2) Clusters SCO/Compaq (Unixware) Clusters Digital VMS Clusters HP
28
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 28
CLUSTERS
Clasificación de los clusters: Componentes
Arquitectura y configuración de los componentes del nodo (arquitectura del procesador, tipo de nodo: PC/Workstation, y SO: Linux/NT):– Clusters Homogéneos
• Todos los nodos tienen una configuración similar
– Clusters Heterogéneos• Nodos basados en procesadores diferentes y ejecutando
SO diferentes
29
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 29
CLUSTERS
Clasificación de los clusters: Clusterización
Nivel de clusterización– Clusters de grupo (#nodos: 2-99)
• Un conjunto de computadores (dedicados o no), conectados principalmente por una red como Myrinet
– Clusters departamentales (#nodos: 99-999)– Clusters de organizaciones (#nodos: varios miles)
• uso de redes ATM– Internet-wide Clusters=Clusters globales: (#nodos:
decenas de miles, incluso millones)• Metacomputación• Computación basada en Web• Computación basada en Agentes
– Java tiene un papel importante en computación basada en web y en agentes
30
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 30
CLUSTERS
Pricipales desafíos en el diseño de un cluster
Escalabilidad en tamaño (física & aplicación) Disponibilidad mejorada (gestión de fallos) Imagen Única del Sistema (sensación de un sistema) Comunicación rápida (redes y protocolos) Equilibrado de la carga (CPU, red, memoria, disco) Seguridad y Encriptación (cluster de clusters) Entornos distribuidos (por cuestiones sociales) Gestión (administración y control) Programabilidad (API sencilla) Aplicabilidad (cluster consciente ,o no, de la aplicación)
31
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 31
CLUSTERS
Índice
Introducción Arquitectura del cluster Clasificación de los clusters Cluster Middleware & Single System Image
32
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 32
CLUSTERS
Cluster Middleware
Un interfaz entre la aplicación del usuario y el hardware del cluster y la plataforma del SO
Los paquete del MW dan soporte a los niveles de gestión, programación e implementación
Niveles del Middleware:– Niveles SSI– Nivel de disponibilidad: posibilita los servicios de
checkpointing, failover automático, recuperación tras fallo, operativa tolerante a fallos entre todos los nodos del cluster
33
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 33
CLUSTERS
Objetivos de diseño de MW
Transparencia Completa (gestión)– Se ve como un sistema individual
• Punto de entrada, ftp, telnet, carga de SW,… únicos
Rendimiento Escalable– Facilidad de crecimiento
• Sin cambios en las API• Distribución automática de la carga
Disponibilidad mejorada– Recuperación de fallos automática
• Empleo de tecnologías de checkpointing & tolerancia a fallos
– Gestiona la consistencia de datos cuando hay replicación…
34
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 34
CLUSTERS
Imagen Única del Sistema (SSI)
Una imagen de sistema única es la ilusión, creada por el SW ó HW, que presenta unacolección de recursos como uno solo recursomás potente
SSI hace que el cluster aparezca como unasóla máquina al usuario, a las aplicaciones y a la red (externa)
Un cluster sin SSI no es un cluster
35
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 35
CLUSTERS
Ventajas del SSI
Uso transparente de los recursos del sistema Migración de procesos y equilibrado de carga entre
los nodos de forma transparente Fiabilidad mejorada y mayor disponibilidad Tiempo de respuesta y rendimiento mejorados Gestión del sistema simplificada Redución del riesgo de errores del operador El usuario no necesita ser consciente de la
arquitectura subyacente para hacer un uso eficientede las máquinas
36
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 36
CLUSTERS
Servicios deseados de un SSI
Punto de entrada único– telnet cluster.my_institute.edu SI– telnet node1.cluster. institute.edu NO
Jerarquía de ficheros única: xFS,AFS,Solaris MC Proxy Punto de control único: Gestión desde un único GUI Gestión de red virtual única Espacio de memoria único – Network RAM /DSM Gestión de trabajos único: Glunix, Codine, LSF Interfaz de usuario único: Entornos de ventana como
en workstation/PC, posiblemente utilizando tecnologíaWeb
37
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 37
CLUSTERS
Funciones de soporte disponibles
Espacio de E/S único (SIO):– Cualquier nodo puede acceder a cualquier periférico o disco
sin necesidad de conocer su localización física
Espacio de proceso único (SPS)– Cualquier poceso en cualquier nodo crea procesos a lo
largo del cluster y se comunica con ellos a través de señales, pipes,…, como si estuvieran en un único nodo
Checkpointing y migración de procesos– Almacena en el disco el estado del proceso y los resultados
intermedios en memoria para proporcionar recuperación porrestauración no actualizada y para la migración de procesoscon objeto de equilibrar la carga
38
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 38
CLUSTERS
Servicio de espacio de E/S único
Sin espacio de E/S único
Usuarios
Con servicios de espacio de E/S único
Single I/O Space Services
Usuarios
39
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 39
CLUSTERS
Relaciones entre módulos Middleware
40
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 40
CLUSTERS
SSI a nivel de aplicación y subsistema
Level Examples Boundary Importance
application cluster batch system,system management
subsystem
file system
distributed DB,OSF DME, Lotus Notes, MPI, PVM
an application what a userwants
Sun NFS, OSF,DFS, NetWare,and so on
a subsystem SSI for allapplications ofthe subsystem
implicitly supports many applications and subsystems
shared portion of the file system
toolkit OSF DCE, SunONC+, ApolloDomain
best level ofsupport for heter-ogeneous system
explicit toolkitfacilities: user,service name,time
41
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 41
CLUSTERS
SSI a nivel del núcleo del SO
Level Examples Boundary Importance
Kernel/OS Layer
Solaris MC, UnixwareMOSIX, Sprite,Amoeba/ GLunix
kernelinterfaces
virtualmemory
UNIX (Sun) vnode,Locus (IBM) vproc
each name space:files, processes, pipes, devices, etc.
kernel support forapplications, admsubsystems
none supportingoperating system kernel
type of kernelobjects: files,processes, etc.
modularizes SSIcode within kernel
may simplifyimplementationof kernel objects
each distributedvirtual memoryspace
microkernel Mach, PARAS, Chorus,OSF/1AD, Amoeba
implicit SSI forall system services
each serviceoutside themicrokernel
42
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 42
CLUSTERS
SSI a nivel HW
Level Examples Boundary Importance
memory SCI, DASH better communica-tion and synchro-nization
memory space
memory and I/O
SCI, SMP techniques lower overheadcluster I/O
memory and I/Odevice space
Application and Subsystem Level
Operating System Kernel Level
43
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 43
CLUSTERS
Sistemas SSI representativos
SSI a nivel de SO– SCO NSC UnixWare– Solaris-MC– MOSIX, …
SSI a nivel de Middleware– PVM, TreadMarks (DSM), Glunix, Condor, Codine,
Nimrod, …
SSI a nivel de Aplicación– PARMON, Parallel Oracle, ...
44
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 44
CLUSTERS
Niveles de paralelismo
Task i-lTask i-l Task iTask i Task i+1Task i+1
func1 ( ){........}
func1 ( ){........}
func2 ( ){........}
func2 ( ){........}
func3 ( ){........}
func3 ( ){........}
a ( 0 ) =..b ( 0 ) =..
a ( 0 ) =..b ( 0 ) =..
a ( 1 )=..b ( 1 )=..
a ( 1 )=..b ( 1 )=..
a ( 2 )=..b ( 2 )=..
a ( 2 )=..b ( 2 )=..
++ xx LoadLoad
PVM/MPI
Threads
Compilers
CPU
Grano gruesoNivel de tareaPrograma
Grano medioNivel de controlFuncion Thread
Grano finoNivel de datosBucles Compilador
Grano muy finoNivel de instruccionesHardware
45
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 45
CLUSTERS
Entornos de programación cluster
Basados en memoria compartida– DSM– Threads/OpenMP (enabled for clusters)– Java threads (HKU JESSICA, IBM cJVM)
Basados en paso de mensajes– PVM– MPI
Computación paramétrica– Nimrod/Clustor
Compiladores paralelizantes automáticos Librerías paralelas & núcleos computacionales
(NetSolve)
46
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 46
CLUSTERS
Ejemplo MPI: código 1/2#include <stdio.h>#include <string.h>#include “mpi.h”
main( int argc, char *argv[ ]){
int my_rank; /* process rank */int p; /*no. of processes*/int source; /* rank of sender */int dest; /* rank of receiver */int tag = 0; /* message tag, like “email subject” */char message[100]; /* buffer */MPI_Status status; /* function return status *//* Start up MPI */MPI_Init( &argc, &argv );/* Find our process rank/id */MPI_Comm_rank( MPI_COM_WORLD, &my_rank);/*Find out how many processes/tasks part of this run */MPI_Comm_size( MPI_COM_WORLD, &p);
47
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 47
CLUSTERS
Ejemplo MPI: código 2/2if( my_rank == 0) /* Master Process */ {
for( source = 1; source < p; source++){
MPI_Recv( message, 100, MPI_CHAR, source, tag,MPI_COM_WORLD, &status);
printf(“%s \n”, message);}
}else /* Worker Process */{
sprintf( message, “Hello, I am process %d!”, my_rank );dest = 0;MPI_Send( message, strlen(message)+1, MPI_CHAR, dest, tag, MPI_COM_WORLD);
}/* Shutdown MPI environment */MPI_Finalize();
}
48
Arquitecturas Distribuidas Sergio Romero, Arquitectura de Computadores, UMA. 48
CLUSTERS
Ejemplo MPI: ejecución
% cc -o hello hello.c -lmpi% mpirun -p2 hello
Hello, I am process 1!% mpirun -p4 hello
Hello, I am process 1!Hello, I am process 2!Hello, I am process 3!
% mpirun hello(no output, there are no workers.., no greetings)