TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y PETICIONES (TLP, RLP) (tercera parte) SISTEMAS PARALELOS Y DISTRIBUIDOS www.atc.us.es Dpto. de Arquitectura y Tecnología de Computadores. Universidad de Sevilla 1
5.1. Conceptos básicos. INDICE 5.2. Taxonomía y modelos de procesamiento paralelo. 5.5. Multiprocesadores con memoria centralizada. 5.6. Multiprocesadores con memoria distribuida. 5.3. Caracterización de las aplicaciones y Modelos de programación paralela. 5.4. Redes y topologías de interconexión. 5.7. Sincronización y consistencia de memoria. 5.8. Sistemas multicomputadores para HPC, servicios y almacenamiento de datos (WSC). 5.9. Sistemas distribuidos. SPD. Tema 5. (terc. parte). 2
Redes y topologías de interconexión Correspondencia entre topología y patrón del algoritmo. Redes dinámicas (indirectas) Redes estáticas (directas) Malla Hipercubo Estrella SPD. Tema 5 (terc. parte). 3
Tiempo de comunicación: mensajes Tiempo de comunicación («cut-through»: mensaje troceado y envío encadenado): t mens = t s +t transfer. = t s + (L*t latencia + T / AB transmision ) t s : tiempo de preparación del mensaje en emisor (>> que t r en receptor) L = distancia entre nodos t latencia = latencia para el primer bit T = tamaño en bytes Intentar ocultar el tiempo de comunicación (en paralelo con el de computación) Ejemplo: usar mensajes no bloqueantes Ejemplo : Empaquetar varios datos en un solo mensaje SPD. Tema 5 (terc. parte). 4
5.8 Sistema multicomputador: Historia Años 1960, 70, 80: grandes supercomutadores Centros científicos Centros administrativos (bancos, Hacienda, etc) Modelos variados: Proc. Vectoriales clásicos UMA, NUMA, MPM Años 90: clusters (de computación) Años 2000: Sist. Distribuidos + virtualización + herramientas de gestión www.top500.org Rendimiento: tiempo solución sist. ecuaciones lineales SPD. Tema 5 (terc. parte). 5
www.top500.org (I) Constellations Un cluster que usa SMP (UMA) como bloque básico Clusters MPP Massive Parallel Processors diseño específico MPP Clusters Constellations SPD. Tema 5 (terc. parte). 6
www.top500.org (II) En el socket conviene MultiThreads o Multitasks? SPD. Tema 5 (terc. parte). 7
Ejemplo: IBM Blue Gene/L (2005) SPD. Tema 5 (terc. parte). 8
Herramientas sw: Capa middleware Se extiende sobre múltiples máquinas Cómo se identifican y se asignan los componentes del sistema Cómo interactúan los componentes La cantidad y granularidad de la comunicación que se necesita Los protocolos usados para la comunicación SPD. Tema 5 (terc. parte). 9
Aplicaciones de los multicomputadores (Clusters) de Alto rendimiento (Performance) (HPC) Utilizado en aplicaciones que realizan cálculos intensivos: Simulaciones científicas, modelos meteorológicos, renderización de gráficos, etc. Pretenden sustituir a los grandes y costosos supercomputadores (MPP). (Clusters) de alta disponibilidad (HAC) Intenta mantener en todo momento la prestación del servicio. Bases de datos, sistemas de ficheros, servidores de correo y servidores Web. Interesa: Fiabilidad: (MTTF, Mean Time To Failure), Disponibilidad, Facilidad de Mantenimiento (Clusters) de balanceo de carga (LBC) o alta productividad (Throughput) (HTC) Servidores DNS, buscadores Web, etc. Gran número de tareas independientes SPD. Tema 5 (terc. parte). 10
Modelos de multicomputadores Términos ambiguos, confusos Mucho por recorrer. Hoy 3 modelos aprox. Según de menos a más centralizado: Clusters: Grid: Suena a más científico IDEA: aprovechar los tiempos no usados. Ejecutar procesos de forma totalmente transparente en máquinas remotas que se encuentran inactivas (estaciones de trabajo desperdicia cerca del 80% de ciclos totales de CPU) Cloud Computing software como servicio p ej horas de CPU (virtualización) SPD. Tema 5 (terc. parte). 11
Clusters (I) Arquitectura distribuida de un conjunto de computadores independientes interconectados que funcionan como un único sistema (single system image) SPD. Tema 5 (terc. parte). 12
Clusters (II) Primeros clusters de PCs (commodity): Beowulf (1994, NASA): Linux, Sistema de ficheros compartido, MPI, red 10 Mbps Hoy: racks o blade solutions Al principio nodo frontend simple Hoy frontend + middleware: Sistemas de gestión de colas (Ej: PBS). Tolerancia a fallos y backups Single system image, etc. Cualquier tipo: HPC, LBC, HTC, HAC SPD. Tema 5 (terc. parte). 13
Grids Aplicaciones repetitivas Servicios Gestión de procesos remotos Acceso al almacenamiento Descubrimiento en registro de información Seguridad Apoyo para dar calidad de servicio (QoS) como reserva y adquisición de recursos Ej: BOINC (Berkeley Open Infrastructure for Network Computing): Proyecto Seti@Home Ej: Proyecto Globus: código abierto para construir infraestructuras grid Gestión de Recursos, de Datos y de Servicios de Información, de red, de planificación de cluster (gestión de tareas, de colas) SPD. Tema 5 (terc. parte). 14
Cloud computing (I) Pool compartido de recursos configurables (redes, almacenamiento, aplicaciones y servicios) que pueden ser rápidamente provisionados y liberados con un esfuerzo mínimo del proveedor de servicios. Ventajas para el usuario Reducción de costes del equipamiento informático Reducción en los costes de mantenimiento Reducción en los costes de licencias de software Actualizaciones del software y administración garantizadas por el servicio Mayor fiabilidad Acceso ubicuo SPD. Tema 5 (terc. parte). 15
Cloud computing (II) Empresas con exceso de capacidad de cómputo pueden de forma rentable dejar usar sus sistemas a distintos clientes Futuro: intercambio de recursos (horas de CPU, almacenamiento, ) Tres servicios: -Almacenamiento -Aplicaciones -Computación SPD. Tema 5 (terc. parte). 16
Máquinas virtuales Hypervisor: Dos tipos: Cloud computing (III) Los que ejecutan directamente sobre el HW XenServer, XenClient, KVM Los que ejecutan sobre un SO Virtual Server, Vmware, Virtual BOX, Virtual PC SPD. Tema 5 (terc. parte). 17
Cloud computing (IV) Niveles de contrato (acceso) para el usuario Sólo almacén de datos (útil como backup) Sólo usa aplicaciones Crea herramientas y librerías (Con apoyo del servicio) Tiene acceso total a máquinas (virtuales) SPD. Tema 5 (terc. parte). 18
Cloud computing (V) Nuevos paradigmas de programación paralela: No genérico (sólo vale para grandes conjuntos de datos) Más móvil (middleware trasparentemente distribuye y flexibiliza las ejecuciones) Ej: MapReduce (Google, Apache Hadoop, etc): Map() El maestro clasifica, subdivide y reparte datos Puede existir jerarquía de Maps() Los esclavos devuelven su respuesta Reduce() El maestro recolecta respuestas y las combina SPD. Tema 5 (terc. parte). 19
EJ: Amazon EC2 (Elastic Compute Cloud) factura por el uso de: Instancias de máquinas virtuales desplegadas: Distintos tipos de instancias: pequeña, grande, extra-grande, etc.. Transferencia de Datos: Tarifa por los datos transferidos a/desde EC2. Almacenamiento: Tarifa por las peticiones sobre los ficheros (GET, PUT, LIST, etc.). Servicios adicionales: Almacenamiento, monitorización, direcciones IP, reparto de carga, etc SPD. Tema 5 (terc. parte). 20
Sistemas distribuidos Desde punto de vista de estructura: Arquitecturas centralizadas Cliente-Servidor Arquitecturas descentralizadas Distribución horizontal Un cliente o un servidor puede estar físicamente dividido; los nodos actúan como clientes y servidores al mismo tiempo Sistemas peer-to-peer (P2P) Desde punto de vista de la lógica de cooperación: Paradigma de publicación-suscripción Código Móvil SPD. Tema 5 (terc. parte). 21
Ejemplos de Sistemas Distribuidos Finance and commerce The information society Creative industries and entertainment Healthcare Education Transport and logistics Science Environmental management ecommerce e.g. Amazon and ebay, PayPal, online banking and trading Web information and search engines, ebooks, Wikipedia; social networking: Facebook and MySpace. online gaming, music and film in the home, user-generated content, e.g. YouTube, Flickr health informatics, on online patient records, monitoring patients e-learning, virtual learning environments; distance learning GPS in route finding systems, map services: Google Maps, Google Earth The Grid as an enabling technology for collaboration between scientists sensor technology to monitor earthquakes, floods or tsunamis SPD. Tema 5 (terc. parte). 22
Arquitecturas centralizadas Los servidores mantienen bases de datos replicadas o distribuidas Service Client Serve r Serve r Client Serve r SPD. Tema 5 (terc. parte). 23
Arquitecturas descentralizadas (I) Inicio del fenómeno P2P Napster finales 90s Aparece contra la filosofía cliente-servidor que dominaba internet en la época (web) Los usuarios ponían canciones al servicio de una comunidad SPD. Tema 5 (terc. parte). 24
Arquitecturas descentralizadas (II) Políticas de consulta no estructuradas: mecanismos de inundación: Simples, pero sobrecargan la red y tienen problemas de escalabilidad Caminos aleatorios (random walks) Realizamos la búsqueda usando un número de vecinos determinados y aleatorios: más escalable Caminos aleatorios adaptativos. Según TTL (time to live) Políticas de consulta estructuradas: Se usan tablas hash distribuidas (DHT) Varios algoritmos de reparto de claves (incluso con Super-peers ) SPD. Tema 5 (terc. parte). 25
Lógica de cooperación Paradigma de publicación-suscripción Código Móvil: ej. simple: Applets con fragmentos de código. En general C: Componente de código, R: Recurso SPD. Tema 5 (terc. parte). 26