clusters - ac.uma.essromero/ad/ad4_clusters.pdf · arquitecturas distribuidas sergio romero,...

48
Sergio Romero, Febrero 2009 Arquitecturas Distribuidas Clusters High Performance Cluster Computing de Rajkumar Buyya

Upload: truongdang

Post on 12-Oct-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

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)