Documente Academic
Documente Profesional
Documente Cultură
Arquitecturas Distribuidas
ndice
CLUSTERS
Introduccin
Arquitectura del cluster
Clasificacin de los cluster
Cluster Middleware & Single System Image
Arquitecturas Distribuidas
Qu es un cluster
CLUSTERS
Por qu ahora
CLUSTERS
Razones arquitecturales
CLUSTERS
Arquitecturas Distribuidas
Razones arquitecturales
CLUSTERS
Arquitecturas Distribuidas
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
10
10
Arquitectura de un Cluster
CLUSTERS
Arquitecturas Distribuidas
11
11
Procesadores:
Intel, Sun, HP PA, IBM, ...
Arquitecturas Distribuidas
12
12
Arquitecturas Distribuidas
13
13
Redes genricas
10 Gigabit Ethernet
Myrinet: Miry-10G
QsNet: QsNetIII
Infiniband
Redes propietarias
Cray Interconnect
NumaFlex (SGI)
SP switch (IBM)
...
Arquitecturas Distribuidas
14
14
15
15
16
16
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
17
17
Entornos de programacin
Threads (PCs, SMPs, NOW..)
POSIX Threads
Java Threads
Arquitecturas Distribuidas
18
18
Herramientas de desarrollo:
Compiladores
C/C++/Java/
Programacin Paralela con C++ (MIT Press book)
Arquitecturas Distribuidas
19
19
Secuencial
Paralelo / Distribuido (apl. conscientes)
Aplicaciones Grand Challenge
Prediccin meteorologica
Qumica cuntica
Modelado de biologa molecular
Anlisis en la ingeniera (CAD/CAM)
Arquitecturas Distribuidas
20
20
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
22
22
Arquitecturas Distribuidas
23
23
Arquitecturas Distribuidas
24
24
Clusters Dedicados
Clusters No-dedicados
Computacin paralela adaptativa
Tambin llamado Communal Multiprocessing
Arquitecturas Distribuidas
25
25
Arquitecturas Distribuidas
26
26
Arquitecturas Distribuidas
27
27
Clusters Heterogneos
Nodos basados en procesadores diferentes y ejecutando
SO diferentes
Arquitecturas Distribuidas
28
28
Nivel de clusterizacin
Clusters de grupo (#nodos: 2-99)
Un conjunto de computadores (dedicados o no),
conectados principalmente por una red como Myrinet
29
29
30
30
ndice
CLUSTERS
Introduccin
Arquitectura del cluster
Clasificacin de los clusters
Cluster Middleware & Single System Image
Arquitecturas Distribuidas
31
31
Cluster Middleware
CLUSTERS
Arquitecturas Distribuidas
32
32
Objetivos de diseo de MW
CLUSTERS
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
33
33
34
34
Arquitecturas Distribuidas
35
35
36
36
Arquitecturas Distribuidas
37
37
Usuarios
Usuarios
Arquitecturas Distribuidas
38
38
Arquitecturas Distribuidas
39
39
Level
Examples
application
an application
what a user
wants
distributed DB,
OSF DME, Lotus
Notes, MPI, PVM
a subsystem
subsystem
file system
toolkit
Arquitecturas Distribuidas
Boundary
Importance
40
40
Level
Kernel/
OS Layer
kernel
interfaces
virtual
memory
microkernel
Examples
Solaris MC, Unixware
MOSIX, Sprite,Amoeba
/ GLunix
UNIX (Sun) vnode,
Locus (IBM) vproc
Boundary
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
41
41
SSI a nivel HW
CLUSTERS
Level
Examples
Boundary
Importance
memory
and I/O
Arquitecturas Distribuidas
SCI, DASH
memory space
42
42
SSI a nivel de SO
SCO NSC UnixWare
Solaris-MC
MOSIX,
Arquitecturas Distribuidas
43
43
Niveles de paralelismo
CLUSTERS
PVM/MPI
Threads
Compilers
CPU
Arquitecturas Distribuidas
Task
Taski-l
i-l
func1
func1( () )
{{
....
....
....
....
}}
++
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
44
44
Computacin paramtrica
Nimrod/Clustor
45
45
#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
46
46
47
47
Arquitecturas Distribuidas
48
48