You are on page 1of 48

Clusters

High Performance Cluster Computing


de Rajkumar Buyya

Sergio Romero, Febrero 2009

Arquitecturas Distribuidas

ndice
CLUSTERS

Introduccin
Arquitectura del cluster
Clasificacin de los cluster
Cluster Middleware & Single System Image

Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

Qu es un cluster
CLUSTERS

Un cluster es un tipo de sistema de


procesamiento paralelo o distribuido que
consiste en una coleccin de computadores
completos interconectados que trabajan de
forma cooperativa como un recurso
computacional integrado nico
Un cluster tpico:
Redes: Rpidas y conexiones ms cortas que una red LAN
tpica
Protocolos de comunicacin de baja latencia
Conexin ms dbil que los SMP
Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

Por qu ahora
CLUSTERS

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 duplica


cada 18 meses
Las redes son ms rpidas
El ancho de banda de los enlaces es mayor
10Gbit vs 10Mbit Ethernet
Redes basadas en conmutadores [switches] (ATM)
Interfaces simples y rpidos (Mensajes Activos)

Se prefiere el almacenamiento en RAID


Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

Razones arquitecturales
CLUSTERS

La arquitectura del nodo domina el rendimiento


procesador, cache, bus, y memoria
Diseo e ingeniera 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 tecnologa de redes de los MPP


system area networks

El sistema en cada nodo habilita mayor potencial


E/S de muy alta velocidad, memoria virtual, planificacin,

Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

Razones arquitecturales
CLUSTERS

Los cluster pueden crecer: escalabilidad incremental


(hacia arriba, abajo y a lo ancho)
El rendimiento de los nodos puede ser mejorado aadiendo
recursos adicionales (ms memoria o disco)
Se puede incrementar o decrementar el nmero de nodos
Se pueden hacer clusters de clusters y metacomputacin

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
Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

Razones para usar un cluster


CLUSTERS

Los estudios muestran que el uso de ciclos de CPU de las


estaciones de trabajo es tpicamente inferior al 10%
El rendimiento de las estaciones de trabajo y los PC mejoran
rpidamente, por lo que el porcentaje de uso decaer an ms
Las organizaciones son reacias a compar grandes
computadores debido al alto coste y al ciclo de vida til
Las herramientas de desarrollo para estaciones de trabajo son
comparativamente ms maduras que las soluciones
propietarias de los computadores paralelos, debido
fundamentalmente a la naturaleza no-estndar de muchos
sistemas paralelos
Los clusters son una alternativa barata y disponible a las
plataformas especializadas en HPC
El uso de clusters como recurso de computacin distribuido es
muy eficiente desde el punto de vista econmico (crecimiento
incremental del sistema)
Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

Robo de ciclos [mquina]


CLUSTERS

Normalmente un PC est asignado a un


individuo, grupo, departamento u organizacin
y estos elementos se dedican en exclusiva a
sus poseedores
Esto llega a ser un problema cuando se intenta
construir un cluster para aplicaciones
distribuidas

Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

Robo de ciclos [mquina]


CLUSTERS

Hay tres tipos de usuarios, que usan sus PC para:


1. Enviar/recibir correos y preparar documentos
2. Desarrollar de software (editar, compilar, depurar,)
3. Ejecutar aplicaciones de computacin intensiva

La computacin 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 estndar
(por la noche) es fcil, robar ciclos ociosos (CPU y
memoria) durante las horas de trabajo sin degradar
el rendimiento de usuarios interactivos es un desafo
mayor
Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

ndice
CLUSTERS

Introduccin
Arquitectura del cluster
Nodos / Procesadores
Sistemas Operativos
Redes de alto rendimiento / Interfaces de Redes
Software de comunicacin
Middleware / Componentes
Entornos de programacin / Herramientas de
desarrollo
Aplicaciones

Clasificacin de los cluster


Cluster Middleware & Single System Image
Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

10

10

Arquitectura de un Cluster
CLUSTERS

Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

11

11

Arquitectura de un Cluster: Nodos / Procesadores


CLUSTERS

Mltiples componentes de alto rendimiento:


PCs
Workstations
SMPs (CLUMPS)
Sistemas HPC distribuidos

Pueden estar basados en diferente


tecnologa y ejecutar diferentes SO

Procesadores:
Intel, Sun, HP PA, IBM, ...
Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

12

12

Arquitectura de un Cluster: Sistemas Operativos


CLUSTERS

Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

13

13

Arquitectura de un Cluster: Redes (HPN)


CLUSTERS

Redes genricas

10 Gigabit Ethernet
Myrinet: Miry-10G
QsNet: QsNetIII
Infiniband

Redes propietarias

Cray Interconnect
NumaFlex (SGI)
SP switch (IBM)
...

Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

14

14

Arquitectura de un Cluster: SW de comunicacin


CLUSTERS

Soportes proporcionados tradicionalmente por


los 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 comunicacin se pueden


construir sobre protocolos anteriores
Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

15

15

Arquitectura de un Cluster: Middleware (MW)


CLUSTERS

Entre el SO y las aplicaciones que ofrece


infraestructura para proporcionar:
Imagen nica del sistema-Single System Image (SSI)
Disponibilidad - System Availability (SA)

SSI hace que el sistema aparente ser una


sola mquina: visin global de los recursos
SA proporciona check pointing y migracin
de procesos
Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

16

16

Arquitectura de un Cluster: Componentes MW


CLUSTERS

Hardware
DEC Memory Channel, tcnicas DSM y SMP

OS / Gluing Layers
Solaris MC, Unixware, Glunix

Aplicaciones y Subsistemas
Administracin del sistema
Sistemas en tiempo de ejecucin (DSM, PFS, etc.)
Gestin de recursos y planificacin:
CODINE, LSF, PBS, NQS, etc.
Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

17

17

Arquitectura de un Cluster: Programacin


CLUSTERS

Entornos de programacin
Threads (PCs, SMPs, NOW..)
POSIX Threads
Java Threads

MPI (message passing interface)


Linux en la mayora de los multicomputadores

PVM (parallel virtual machine)


Software DSMs (Shmem)

Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

18

18

Arquitectura de un Cluster: Programacin


CLUSTERS

Herramientas de desarrollo:
Compiladores
C/C++/Java/
Programacin 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 anlisis del rendimiento
Herramientas de visualizacin

Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

19

19

Arquitectura de un Cluster: Aplicaciones


CLUSTERS

Secuencial
Paralelo / Distribuido (apl. conscientes)
Aplicaciones Grand Challenge

Prediccin meteorologica
Qumica cuntica
Modelado de biologa molecular
Anlisis en la ingeniera (CAD/CAM)

PDBs, servidores web, minera de datos

Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

20

20

Beneficios operacionales clave de los clusters


CLUSTERS

Alta disponibilidad (HA): Ofrece alta disponibilidad


debido a la redundancia del hardware, sistemas
operativos y aplicaciones
Hardware tolerante a fallos: Redundancia para la
mayora de los componentes del sistema (p.ej. RAID)
incluyendo comopnenetes hardware y software
Fiabilidad del SO y las aplicaciones: Ejecucin de
mltiples copias del SO y las aplicaciones
Escalabilidad: Aadiendo servidores al cluster, ms
clusters a la red,, dependiendo de las necesidades
Alto rendimiento: Ejecutando programas desarrollados
para el cluster
Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

21

21

ndice
CLUSTERS

Introduccin
Arquitectura del cluster
Clasificacin de los clusters
Objetivo (en el mercado)
Workstation/PC Ownership
Arquitectura del nodo
Tipo de SO del nodo
Arquitectura y configuracin de los nodos
Nivel de clusterizacin

Cluster Middleware & Single System Image


Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

22

22

Clasificacin de los Clusters: Objetivo


CLUSTERS

Clusters de Alto Rendimiento (HP)


Aplicaciones Grand Challenge

Clusters de Alta Disponibilidad (HA)


Aplicaciones de Misin Crtica

Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

23

23

Clasificacin de los Clusters


CLUSTERS

Cluster de Alta Disponibilidad

Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

24

24

Clasificacin de los clusters: Ownership


CLUSTERS

Clusters Dedicados
Clusters No-dedicados
Computacin paralela adaptativa
Tambin llamado Communal Multiprocessing

Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

25

25

Clasificacin de los clusters: Arquitecura del nodo


CLUSTERS

Clusters de PCs (CoPs)


Clusters de Workstations (COWs)
Clusters de SMPs (CLUMPs)

Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

26

26

Clasificacin de los clusters: Sistema Operativo


CLUSTERS

Clusters Linux (Beowulf)


Clusters Solaris (Berkeley NOW)
Clusters NT (HPVM)
Clusters AIX (IBM SP2)
Clusters SCO/Compaq (Unixware)
Clusters Digital VMS
Clusters HP

Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

27

27

Clasificacin de los clusters: Componentes


CLUSTERS

Arquitectura y configuracin de los


componentes del nodo (arquitectura del
procesador, tipo de nodo: PC/Workstation, y
SO: Linux/NT):
Clusters Homogneos
Todos los nodos tienen una configuracin similar

Clusters Heterogneos
Nodos basados en procesadores diferentes y ejecutando
SO diferentes

Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

28

28

Clasificacin de los clusters: Clusterizacin


CLUSTERS

Nivel de clusterizacin
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)
Metacomputacin
Computacin basada en Web
Computacin basada en Agentes
Java tiene un papel importante en computacin basada en web y
en agentes
Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

29

29

Pricipales desafos en el diseo de un cluster


CLUSTERS

Escalabilidad en tamao (fsica & aplicacin)


Disponibilidad mejorada (gestin de fallos)
Imagen nica del Sistema (sensacin de un sistema)
Comunicacin rpida (redes y protocolos)
Equilibrado de la carga (CPU, red, memoria, disco)
Seguridad y Encriptacin (cluster de clusters)
Entornos distribuidos (por cuestiones sociales)
Gestin (administracin y control)
Programabilidad (API sencilla)
Aplicabilidad (cluster consciente ,o no, de la aplicacin)
Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

30

30

ndice
CLUSTERS

Introduccin
Arquitectura del cluster
Clasificacin de los clusters
Cluster Middleware & Single System Image

Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

31

31

Cluster Middleware
CLUSTERS

Un interfaz entre la aplicacin del usuario y el


hardware del cluster y la plataforma del SO
Los paquete del MW dan soporte a los niveles de
gestin, programacin e implementacin
Niveles del Middleware:
Niveles SSI
Nivel de disponibilidad: posibilita los servicios de
checkpointing, failover automtico, recuperacin tras fallo,
operativa tolerante a fallos entre todos los nodos del cluster

Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

32

32

Objetivos de diseo de MW
CLUSTERS

Transparencia Completa (gestin)


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
Distribucin automtica de la carga

Disponibilidad mejorada
Recuperacin de fallos automtica
Empleo de tecnologas de checkpointing & tolerancia a
fallos
Gestiona la consistencia de datos cuando hay replicacin
Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

33

33

Imagen nica del Sistema (SSI)


CLUSTERS

Una imagen de sistema nica es la ilusin,


creada por el SW HW, que presenta una
coleccin de recursos como uno solo recurso
ms potente
SSI hace que el cluster aparezca como una
sla mquina al usuario, a las aplicaciones y a
la red (externa)
Un cluster sin SSI no es un cluster
Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

34

34

Ventajas del SSI


CLUSTERS

Uso transparente de los recursos del sistema


Migracin de procesos y equilibrado de carga entre
los nodos de forma transparente
Fiabilidad mejorada y mayor disponibilidad
Tiempo de respuesta y rendimiento mejorados
Gestin del sistema simplificada
Reducin del riesgo de errores del operador
El usuario no necesita ser consciente de la
arquitectura subyacente para hacer un uso eficiente
de las mquinas

Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

35

35

Servicios deseados de un SSI


CLUSTERS

Punto de entrada nico


telnet cluster.my_institute.edu
SI
telnet node1.cluster. institute.edu NO

Jerarqua de ficheros nica: xFS,AFS,Solaris MC Proxy


Punto de control nico: Gestin desde un nico GUI
Gestin de red virtual nica
Espacio de memoria nico Network RAM /DSM
Gestin de trabajos nico: Glunix, Codine, LSF
Interfaz de usuario nico: Entornos de ventana como
en workstation/PC, posiblemente utilizando tecnologa
Web
Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

36

36

Funciones de soporte disponibles


CLUSTERS

Espacio de E/S nico (SIO):


Cualquier nodo puede acceder a cualquier perifrico o disco
sin necesidad de conocer su localizacin fsica

Espacio de proceso nico (SPS)


Cualquier poceso en cualquier nodo crea procesos a lo
largo del cluster y se comunica con ellos a travs de
seales, pipes,, como si estuvieran en un nico nodo

Checkpointing y migracin de procesos


Almacena en el disco el estado del proceso y los resultados
intermedios en memoria para proporcionar recuperacin por
restauracin no actualizada y para la migracin de procesos
con objeto de equilibrar la carga

Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

37

37

Servicio de espacio de E/S nico


CLUSTERS

Usuarios

Usuarios

Single I/O Space Services

Sin espacio de E/S nico

Arquitecturas Distribuidas

Con servicios de espacio de E/S nico

Sergio Romero, Arquitectura de Computadores, UMA.

38

38

Relaciones entre mdulos Middleware


CLUSTERS

Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

39

39

SSI a nivel de aplicacin y subsistema


CLUSTERS

Level

Examples

application

cluster batch system,


system management

an application

what a user
wants

distributed DB,
OSF DME, Lotus
Notes, MPI, PVM

a subsystem

SSI for all


applications of
the subsystem

Sun NFS, OSF,


DFS, NetWare,
and so on

shared portion of implicitly supports


the file system
many applications
and subsystems
explicit toolkit
best level of
facilities: user,
support for heterservice name,time ogeneous system

subsystem

file system

toolkit

Arquitecturas Distribuidas

OSF DCE, Sun


ONC+, Apollo
Domain

Boundary

Importance

Sergio Romero, Arquitectura de Computadores, UMA.

40

40

SSI a nivel del ncleo del SO


CLUSTERS

Level
Kernel/
OS Layer
kernel
interfaces
virtual
memory
microkernel

Examples
Solaris MC, Unixware
MOSIX, Sprite,Amoeba
/ GLunix
UNIX (Sun) vnode,
Locus (IBM) vproc

Boundary

each name space: kernel support for


files, processes,
applications, adm
pipes, devices, etc. subsystems
type of kernel
modularizes SSI
objects: files,
code within
processes, etc.
kernel

none supporting
each distributed
operating system kernel virtual memory
space
Mach, PARAS, Chorus, each service
OSF/1AD, Amoeba
outside the
microkernel

Arquitecturas Distribuidas

Importance

may simplify
implementation
of kernel objects
implicit SSI for
all system services

Sergio Romero, Arquitectura de Computadores, UMA.

41

41

SSI a nivel HW
CLUSTERS

Level

Examples

Boundary

Importance

Application and Subsystem Level

Operating System Kernel Level


memory

memory
and I/O

Arquitecturas Distribuidas

SCI, DASH

SCI, SMP techniques

memory space

memory and I/O


device space

better communication and synchronization


lower overhead
cluster I/O

Sergio Romero, Arquitectura de Computadores, UMA.

42

42

Sistemas SSI representativos


CLUSTERS

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 Aplicacin


PARMON, Parallel Oracle, ...

Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

43

43

Niveles de paralelismo
CLUSTERS

PVM/MPI

Threads

Compilers
CPU
Arquitecturas Distribuidas

Task
Taski-l
i-l

func1
func1( () )
{{
....
....
....
....
}}

aa( (00) )=..


=..
bb( (00) )=..
=..

++

Task
Taskii

func2
func2( () )
{{
....
....
....
....
}}

aa( (11)=..
)=..
bb( (11)=..
)=..

xx

Task
Taski+1
i+1

func3
func3( () )
{{
....
....
....
....
}}

aa( (22)=..
)=..
bb( (22)=..
)=..

Load
Load

Grano grueso
Nivel de tarea
Programa
Grano medio
Nivel de control
Funcion Thread

Grano fino
Nivel de datos
Bucles Compilador
Grano muy fino
Nivel de instrucciones
Hardware

Sergio Romero, Arquitectura de Computadores, UMA.

44

44

Entornos de programacin cluster


CLUSTERS

Basados en memoria compartida


DSM
Threads/OpenMP (enabled for clusters)
Java threads (HKU JESSICA, IBM cJVM)

Basados en paso de mensajes


PVM
MPI

Computacin paramtrica
Nimrod/Clustor

Compiladores paralelizantes automticos


Libreras paralelas & ncleos computacionales
(NetSolve)
Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

45

45

Ejemplo MPI: cdigo 1/2


CLUSTERS

#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);
Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

46

46

Ejemplo MPI: cdigo 2/2


CLUSTERS

if( 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();
}
Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

47

47

Ejemplo MPI: ejecucin


CLUSTERS

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

Arquitecturas Distribuidas

Sergio Romero, Arquitectura de Computadores, UMA.

48

48

You might also like