Arquitecturas Paralelas MIMD William Stallings, Organización · VENTAJAS Muy escalables (en...
Transcript of Arquitecturas Paralelas MIMD William Stallings, Organización · VENTAJAS Muy escalables (en...
Arquitecturas ParalelasClusters
William Stallings, Organización y Arquitectura de Computadores, 5ta. ed., Capítulo 16: Procesamiento Paralelo.
Andrew S. Tanenbaum, Organización de Computadoras 4ta. ed., Capítulo 8: Arquitecturas de computadoras paralelas.
Hesham El-Rewini & Mostafa Abd-El-Barr, Advanced Computer Architecture and Parallel Processing. Willey.
Arquitecturas Paralelas
Taxonomía de Flynn
Massively ParallelProcessor
(MPP)
Arquitecturas Paralelas
Network Computing
También llamada Distributed computing, Very losely-coupled processing o Cluster computing. Se utilizan multicomputadoras (pasaje de mensajes, sin memoria compartida) con algunas particularidades.
En general, los Clusters se relacionan con la tecnología de redes standard, utilizada con el objetivo de crear una infraestructura de computación empleando “comodities”.
Nodos: PC/WSs autónomas (stand-alone) y posiblemente heterogéneas.Links: TCP/IP packet switched sobre LAN de cobre, fibra, wireless, etc.
(Notar diferencia con MPP: nodos high profile, interconectados con redes estáticas de alta tecnología, específicamente diseñadas)
Arquitecturas Paralelas
Clusters
DEFINICIONSistema distribuido compuesto por un conjunto de computadoras autónomas, interconectadas, trabajando juntas en forma cooperativa como un único recurso integrado.
MOTIVACION La utilización de la CPU de una estación de trabajo típica es menor
que el 10%. Aumento de la performance de las WS, por lo tanto el porcentaje de
utilización de las mismas disminuye aún más. Las organizaciones son reticentes a comprar grandes
supercomputadoras con ciclo de vida corto. Las herramientas de desarrollo para WS están más maduras Los clusters de WS tiene buena relación costo/beneficio y
crecimiento incremental. Se pueden reutilizar las PCs.
Arquitecturas Paralelas
Clusters
Columbia (2004 #2) supercomputer Mare Nostrum (2005 #5) www.bsc.es
Arquitecturas Paralelas
Clusters
IBM Roadrunner (2008 #1) LANL > 1 PFLOP (uss133M),
commodities
12,960 IBM PowerXCell 8i + 6,480 AMD Opteron + Infiniband
Arquitecturas Paralelas
Clusters (cont)
VENTAJAS
Muy escalables (en costo/n). Ampliación gradual. Mayor disponibilidad por redundancia. Buena relación costo/beneficio por utilizar comodities.
Esta tecnología recibe un gran impulso cuando convergen tres tecnologías:
Microprocesadores de gran performance (un procesador actual es equivalente a una supercomputadora de hace 20 años).
Comunicaciones de alta velocidad.
Herramientas standard para desarrollo de software & Open Source.
Clusters
Principales aplicaciones
Alta disponibilidad (HA High-Availability): nodos redundantes, usualmente x2. Ej: Linux-HA.
Balanceo de carga (Load Balancing): Server Farms. Ej: Sun Grid Engine, Maui Cluster Scheduling.
Alta performance (HPC High-Performance Clusters): split. Ej: Beowulf Clusters (PCs+Ethernet+Linux+Free software MPI)
CYCLE STEALINGUsos, ventajas y desventajas.
Folding@Home con PS3 superó el PFLOP (dos veces Blue Gene, con una red 1M veces más lenta)
Clusters
Tecnologías de redes
Clasificación: WAN, MAN, LAN, SAN
Internet y el protocolo TCP/IP (o ATM o FDDI)
Tecnologías para interconexión en clusterEthernet (1974), hubs, switches.Myricom´s Myrinet (1998)Quadrics´s QsNet (2002)Infiniband (2005)
VER: IEEE Micro. 2006, issue 3, “High Performance Interconnects”. DISPONIBLE
Latencia y ancho de banda (o productividad)
Clusters
El modelo cliente-servidor
Modelo 2 tier (cliente-db) 3 tier (cliente-web-db). Servidores multithreaded.Aplicación a la computación paralela.Sockets: data structure + system calls (socket abstraction layer).RPC: sobre sockets. El procedimiento está en una máquina distinta a la del caller.Threads: lightweight processes.
Clusters
Arquitectura
Clusters
Arquitectura (cont)
Clusters
Implementación
Lawrence Livermore National Laboratory
a) Avalon Beowulf Cluster (1998)
b) Blue Gene/L MPP (2005 #1)
Clusters
Clasificaciones I
Clusters
Clasificaciones IIOtra clasificación de límites difusos (Null):
NOW (Network of Workstations): Utiliza sistemas ociosos.
COW (Collection of Workstations): NOW con coordinación.
DCPC (Dedicated Cluster Parallel Computer): Grupo de WS unidos para resolver un problema específico.
POPC (Pile of PCs): Cluster heterogéneo que forma un sistema dedicado.
Clusters
Clasificaciones III
❃ Based on Node components architecture & configuration: Homogeneous Clusters (all nodes will have similar configuration), Heterogeneous Clusters (nodes based on different processors and running different OSes).
❃ Based on Node ownership: Dedicated Clusters, Non-dedicated clusters (Adaptive parallel computing, also called Communal multiprocessing).
❃ Based on Focus (in Market): High Performance (HP) Clusters [Grand Challenging Applications], High Availability (HA) Clusters [Mission Critical applications].
❃ Based on Node Architecture: Clusters of PCs (CoPs), Clusters of Workstations (COWs), Clusters of SMPs (CLUMPs).
❃ Based on Node OS Type: Linux Clusters (Beowulf), Solaris Clusters (Berkeley NOW), NT Clusters (HPVM), AIX Clusters (IBM SP2), SCO/Compaq Clusters (Unixware).
Clusters
Algunos ejemplos
Clusters
El modelo de programaciónLos clusters son combinaciones de Multiprocesadores (SMP y NUMA) y Multicomputadoras. Se programan con OpenMP y MPI combinados.
Clusters
MPIStandard Library de rutinas para la confección de programas de pasaje de mensajes eficientes y portables. No es un lenguaje de programación.
MPI Forum 1993-1994. MPI-2 1995.
Existen diferentes tipos de rutinas:Inicialización (comunicadores): MPI_Init, MPI_Rank, MPI_SizeComunicación punto a punto (poin-to-point): MPI_Send, MPI_ReceiveOperaciones colectivas: MPI_Reduce, MPI_Scan, MPI_BcastSincronización: MPI_Barrier
Mensajes bloqueantes (3 way) y no bloqueantes.
Implementaciones Open Source: LAM-MPI y MPICH
Clusters
MPIEjemplo (hello world MPI):
#include <stdio.h>#include <mpi.h>
int main(){int rank, size;MPI_Init( &argc, &argv );MPI_Comm_size( MPI_COMM_WORLD, &size );MPI_Comm_rank( MPI_COMM_WORLD, &rank );printf( "Hello world from process %d of %d\n", rank, size );MPI_Finalize();return 0;
}
Clusters
SchedulingUna vez que se ha diseñado el programa paralelo como un conjunto de tareas a ejecutar, aparece un nuevo desafío: asignar las tareas en forma eficiente a las unidades de procesamiento disponibles en la arquitectura paralela (SCHEDULING).
Este es uno de los desafíos más importantes en los sistemas paralelos. Se trata de un problema complejo que no siempre tiene una solución óptima. Se puede encontrar la mejor en un determinado tiempo. Es un área de investigación actual (El-Rewini Cap.10).
Hay dos aspectos a considerar: La calidad de la asignación (schedule): será mejor cuanto más rápido se ejecute el conjunto. La eficiencia del algoritmo (scheduler): si dos schedules tardan lo mismo, el mejor será el más simple.
Clusters
Sistemas Operativos
Clusters
Clusters de Clusters (Hyperclusters)
Scheduler
MasterDaemon
ExecutionDaemon
SubmitGraphicalControl
Clients
Cluster 2
Scheduler
MasterDaemon
ExecutionDaemon
SubmitGraphicalControl
Clients
Cluster 3
Scheduler
MasterDaemon
ExecutionDaemon
SubmitGraphicalControl
Clients
Cluster 1
LAN/WAN
GridsEl objetivo es formar una inter-red de clusters con capacidad de cómputo, almacenamiento e interconexión de instrumentos.
Definición (Foster 2003): Middleware para la integración de recursos computacionales geográficamente distribuídos. Analogía con 'Power Grid' (“infraestructura” de “servicio” “transparente” y “penetrante”).
IMPORTANTE: no presenta todos los clusters como una única computadora. Es un conjunto de servicios que organiza recursos y distribuye tareas. Middleware. Conecta clusters diversos que en principio no confían entre si. No existe comunicación entre los clusters.
Virtual organizations. Visión unificada.Herramientas: Globus Toolkit.Ejemplos: NCSA TeraGrid, Cern LHC.
Grids