Arquitecturas ParalelasClusters, Grids y Clouds
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
Tianhe-1A (2010 #1) National Supercomputing Center in Tianjin CHINA
7.168 NVIDIA Tesla M2050 GPUs + 14.336 procesadores Intel Xeon + 262 TB RAM
Red propia: Arch (160 Gbps, el doble que InfiniBand)
2.5 PFLOP (LINPACK)
88 Musd, 20 Musd mantenimiento anual, 200 empleados, 140 racks, 4 MW consumo
de potencia (1/3 de lo que consumirían procesadores)
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 antiguos
Clusters
Algunos ejemplos modernos
“The IBM Power 755 offers tremendous processing power in
adense 4U node to meet the most demanding HPC
applicationrequirements by supporting 32 POWER7 processor
cores and256 GB of memory”
Densely packaging up to 3,072 POWER7®processor cores per rack,each one running
at 3.84GHz, the 256-core Power775 supercomputingdrawer is designed for speed
and tuned for performance. With the capa-bility of clustering up to 2,048drawers
together, the total processingpower of up to 524,288 POWER7 cores can be assigned
to tackle someof the world’s greatest problems. Supported by up to 24TBs of
memoryand 230TBs of storage per rack and super fast interconnects, thePower775 is
estimated to achieve over 96TFLOPS per rack.
Clusters
Algunos ejemplos modernos
http://picocomputing.com
Zynq Z-7020 FPGAPICO SC-5 SuperClustersScalable FPGA Cluster48 Xilinx Kintex-7 or Virtex-6 FPGAs192GB of DDR3 local FPGA memory19.5 Million Logic Cells in one 4U serverDual Intel Quad Core Xeon Processor48GB RAMDual Hard DrivesLinux
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
Grids - Concepto
El término Grid se toma de Electrical Power Grid (red de distribución de energía eléctrica).
Cuando conectamos algún dispositivo eléctrico a la red de alimentación no nos preocupamos por saber si la fuente es:• Energía hidráulica.• Energía eólica.• Una central nuclear.
No es necesario conocer las capas subyacentes.
Sin embargo, la infraestructura de red es subyacente e indispensable para que funcione cualquier infraestructura grid.
Grids - Infraestructura
Ejemplo: GEANT en Europa o RedCLARA en América Latina.
Grids - Definición
El objetivo es formar una inter-red de clusters con capacidad de cómputo y almacenamiento.
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 - Modelo
Cloud Computing
Es un 'modelo de negocio'.Wikipedia: Cloud computing is the use of computing resources (hardware and software) that are delivered as a service over a network (typically the Internet).
Tipos:Infrastructure as a service (IaaS)Platform as a service (PaaS)Software as a service (SaaS)
Storage as a service (STaaS)Security as a service (SECaaS)Data as a service (DaaS)Database as a service (DBaaS)Test environment as a service (TEaaS)Desktop virtualizationAPI as a service (APIaaS)Backend as a service (BaaS)
Grid computing vs. Cloud computingWhat?Grids enable access to shared computing power and storage capacity from your desktopClouds enable access to leased computing power and storage capacity from your desktop
Who provides the service?Research institutes and universities federate their services around the world through projects such as EGI-InSPIRE and the European Grid Infrastructure.Large individual companies e.g. Amazon and Microsoft and at a smaller scale, institutes and organisations deploying open source software such as Open Slate, Eucalyptus and Open Nebula.
Who uses the service?Research collaborations, called "Virtual Organisations", which bring togetherresearchers around the world working in the same field.Small to medium commercial businesses or researchers with generic IT needs
Who pays for the service?Governments - providers and users are usually publicly funded research organisations, for example through National Grid Initiatives.The cloud provider pays for the computing resources; the user pays to use them
Where are the computing resources?In computing centres distributed across different sites, countries and continents.The cloud providers private data centres which are often centralised in a few locations with excellent network connections and cheap electrical power.
How do they work?Grids are an open source technology. Resource users and providers alike can understand and contribute to the management of their gridClouds are a proprietary technology. Only the resource provider knows exactly how their cloud manages data, job queues, security requirements and so on.
Ventajas Desventajas
Grid- Collaboration: grid offers a federated platform for distributed and collective work.
- Ownership : resource providers maintain ownership of the resources they contribute to the grid
- Transparency: the technologies used are open source, encouraging trust and transparency.
- Resilience: grids are located at multiple sites, reducing the risk in case of a failure at one site that removes significant resources from the infrastructure.
- Reliability: grids rely on distributed services maintained by distributed staff, often resulting in inconsistency in reliability across individual sites, although the service itself is always available.
- Complexity: grids are complicated to build and use, and currently users require some level of expertise.
- Commercial: grids are generally only available for not-for-profit work, and for proof of concept in the commercial sphere
Cloud- Flexibility: users can quickly outsource peaks of activity without long term commitment
- Reliability: provider has financial incentive to guarantee service availability (Amazon, for example, can provide user rebates if availability drops below 99.9%)
- Ease of use: relatively quick and easy for non-expert users to get started but setting up sophisticated virtual machines to support complex applications is more difficult.
- Generality: clouds do not offer many of the specific high-level services currently provided by grid technology.
- Security: users with sensitive data may be reluctant to entrust it to external providers or to providers outside their borders.
- Opacity: the technologies used to guarantee reliability and safety of cloud operations are not made public.
- Rigidity: the cloud is generally located at a single site, which increases risk of complete cloud failure.
- Provider lock-in: there’s a risk of being locked in to services provided by a very small group of suppliers.