1 / 148

PROGRAMACIÓN DE SISTEMAS PARALELOS 2010 Agustin Arruabarrena – Javier Muguerza

PROGRAMACIÓN DE SISTEMAS PARALELOS 2010 Agustin Arruabarrena – Javier Muguerza. 1. Computadores Paralelos (resumen). 2. Programación de Sistemas de Memoria Compartida (SMP): OpenMP . 3. Programación de Sistemas de Memoria Distribuida: MPI . 4. Ejercicios prácticos. Programa. . 1 .

redell
Télécharger la présentation

PROGRAMACIÓN DE SISTEMAS PARALELOS 2010 Agustin Arruabarrena – Javier Muguerza

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PROGRAMACIÓN DE SISTEMAS PARALELOS 2010 Agustin Arruabarrena – Javier Muguerza

  2. 1.Computadores Paralelos (resumen). 2.Programación de Sistemas de Memoria Compartida (SMP): OpenMP. 3.Programación de Sistemas de Memoria Distribuida: MPI. 4.Ejercicios prácticos Programa

  3. . 1 . COMPUTADORES PARALELOS (resumen)

  4. 1. Estructura de los sistemas para-lelos. Máquinas SMP, DSM y MPP. Clusters. Situación actual. 2. Infraestructura de comunicación. Protocolos de comunicación de alto rendimiento. 3. Coherencia de los datos. Sincronización de procesos. Modelo de consistencia. 4. Modelo de paralelismo. Análisis de dependen-cias. Optimizaciones. 5. Rendimiento del sistema paralelo. Índice Índice

  5. Un procesador • Procesadores cada vez más eficientes: • 2-6 Gflop/s • Dos mercados: • - gama “alta” • IBM → Power4, 5, PowerPC, Cell • Intel / HP → Itanium 2 , IA64 • - gama “baja” • Intel → Pentium 4, Xeon • AMD → Opteron

  6. Itanium (IA-64)

  7. IBM Power4/5

  8. IBM Power4/5

  9. IBM Power4/5

  10. Necesidad de Paralelismo • La busca de paralelismo a nivel de instrucción tiene un límite, marcado en muchas ocasiones por la propia aplicación (+ hard, + soft). • Existen múltiples problemas para los que un solo procesador no es suficiente, por más que éste sea cada vez más rápido. • Y en otros muchos casos, es posible reducir sensiblemente el tiempo de ejecución.

  11. Necesidad de Paralelismo •  Ejemplo “simple”: meteorología atmósfera dividida en “puntos” de 1x1x1 km3 1010 puntos 300 operaciones c.f. / elemento 3 x 1012 f cada 10 minutos (144 veces día)  5 x 1014 f una máquina a 1.000 MF/s 5 x 105 s  simular una interacción ... 6 días. Además, el tamaño de las tareas a ejecutar puede crecer todo lo que queramos.

  12. Necesidad de Paralelismo • Solución: Paralelismo • Utilizar P (muchos) procesadores que cooperen en la resolución de un problema, para ir P veces más rápido. + tolerancia a fallos + throughput + entrada/salida

  13. P SMP fl. instrucciones C 1 N bus memoria compartida SISD 1 MP flujo datos P N SIMD MIMD MPP/NUMA Clusters C M Array Vectorial red general memoria distribuida Clasificación

  14. Sistemas SIMD Dos arquitecturas básicas: 1.Memoria compartida(shared memory): El espacio de direccionamiento es único. Todos los procesadores pueden acceder a todas las posiciones de memoria. La comunicación entre procesos es a través de variablescompartidas. 2. Memoria Distribuida(distributed memory): Cada procesador tiene un espacio de direccionamiento privado. No existen posiciones de memoria comunes. La comunicación entre procesos es mediante paso de mensajes.

  15. Espacio de Direccionamiento comúnprivado Memoria centralizada (bus) distribuida (red) Sistemas SIMD SMP - DSM, NUMA MPP

  16. Coste del sistema paralelo Sistemas masivamente paralelos MPP Las mejores prestaciones (velocidad de cálculo): comunicación de baja latencia y elevado ancho de banda, en algunos casos procesadores con diseño específico, software de control muy optimizado, etc. Pero COSTE MUY ELEVADO Alternativa: clusters

  17. Clusters • Clusters Un sistema paralelo formado por P máquinas de propósito general (bajo coste), unidas mediante una red de comunicación (igualmente de bajo coste?). Se asume que no se trabaja con el último modelo de procesador y que la latencia de las comunicaciones será algún orden de magnitud mayor que en el caso de los supercomputadores MPP. Objetivo: buena relación coste/rendimiento

  18. Clusters • Clusters - Alta disponibilidad (high availability): redundancia para mantener siempre la aplicación en funcionamiento. - Alto rendimiento (high performance) capacidad de “responder” de manera más rápida En general: redundancia + rendimiento + escalabilidad

  19. Clusters •  hardware “habitual” • - procesador “estándar” (+memoria, disco, conexiones exterior) • - red propia, con conexiones a una red global • (fast) gigabit ethernet... • Myrinet, SCI, Inifiniband, Quadrics... •  software “habitual” • - desarrollo: MPI,OpenMP, HPF (+debuggers, profilers...) • - administración del sistema: instalación, monitorización, diagnosis...

  20. Itanium / Pentium IBM 360, PDP-11, VAX grid ASCI Red supercomputadores cluster The GRID

  21. The GRID Tipos de aplicaciones > grano grueso(high throughput) muchas tareas independientes simulaciones Montecarlo, procesamiento de banco de imágenes… >grano fino (high performance) comunicación entre procesos meteorología, simulaciones astrofísica realidad virtual…

  22. Evolución del mercado de computadores de alta velocidad. La lista top500. noviembre 2009

  23. TOP500 Lista de los 500 supercomputadores más rápidos del mundo ejecutando el banco de pruebas LINPACK. Sistemas de ecuaciones lineales densos (cálculo matricial). Permite obtener velocidades muy altas (un máximo virtual). Se mide el valor de Rmax,NmaxyN1/2. También se empieza a medir la potencia consumida.

  24. TOP500 Cada 6 meses desde 1993 (junio/diciembre). Lista nº 34 - noviembre 2009 Más o menos aceptado por todos los fabricantes. Análisis de tendencias / evolución del mercado.

  25. RoadRunner BlueGene ×1,9/año NEC Earth Sim. IBM ASCI White LLNL Intel ASCI Red Sandia TOP500 27.951 TF/s 4.664.627 pr. (6 GF/s) Jaguar 1 PF/s → 2008 (dic) 10 PF/s → 2012 (jun) 100 PF/s → 2015 (dic)

  26. TOP500

  27. TOP500

  28. TOP500 CM2 VP500 RoadRunner Sun HPC Y-MP C90 Jaguar ASCI Red SP2 Paragon Blue Gene T3D Earth Sim. CM5 T3E

  29. TOP500

  30. TOP500

  31. Problemas - Objetivos Problemas a resolver (algunos) ¿cómo se reparte un algoritmo en P procesos? - división y scheduling / load balancing ¿son todos los procesos independientes? - dependencias y sincronización ¿cómo se mantiene la coherencia de los datos? - protocolos de coherencia / consistencia ¿cuál es la arquitectura del sistema? ¿y la red de comunicación? ¿cómo se comunican los procesos?

  32. 1. Estructura de los sistemas paralelos. Máquinas SMP, DSM y MPP. Clusters. Situación actual. 2. Infraestructura de comunicación. Protocolos de comunicación de alto rendimiento. 3. Coherencia de los datos. Sincronización de procesos. Modelo de consistencia. 4. Modelo de paralelismo. Análisis de dependen-cias. Optimizaciones. 5. Rendimiento del sistema paralelo. Índice

  33. Infraestructura de comunic. Tanto para el caso de memoria compartida como el memoria distribuida, necesitamos un soporte de comunicación que nos permita acceder a la memoria común, centralizada o no, transmitir datos de procesador a procesador. La red de comunicación es por tanto “independiente” del modelo, aunque haya redes adaptadas a cada uno de ellos. Repasemos las principales.

  34. P C bus M Infraestructura de comunic. Los multiprocesadores SMP utilizan básicamente un bus como red de comunicación. La latencia de la memoria es independiente de la posición accedida: todas se encuentran a la misma “distancia” (UMA). Aunque el bus es una red cuya gestión es “sencilla” y muy conocida, tiene problemas de escalabilidad: - sólo admite “una” comunicación simultánea. - se satura al crecer el número de procesadores.

  35. P C M R red general espacio de memoria común Infraestructura de comunic. • Para poder utilizar muchos procesadoresy mantener un espacio común de memoria, se necesita distribuir físicamente la memoriaentre los procesadores y usar otro tipo de red de comunicación. Ahora la latencia de los accesos no es constante: el acceso a los módulos locales de memoria es mucho más rápido que al resto (NUMA). El papel de la red de comunicación puede ser crucial.

  36. Infraestructura de comunic. • Algunas características básicas que debe cumplir una buena red de comunicación: • permitir múltiples “comunicaciones” simultáneas entre procesadores; es decir permitir comunicación con un alto throughput. • ofrecer comunicaciones de baja latencia. • en la medida de lo posible, sertolerante a fallos. • ser de fácil construcción y ampliación y tener un routing simple.

  37. 4 3 2 1 1 4 3 2 t 1 2 4 3 3 2 1 4 4 3 2 1 4 1 3 2 1 4 3 2 1 Paso de mensajes (d = distancia, tr = tiempo de routing en cada nodo, B = ancho banda de los canales, L = longitud de los paquetes) • Store-and-ForwardTsf = d (tr + L/B) Cut-Through/Wormhole Tct = d (tr + 1/B) + (L-1)/B

  38. Tráfico máximo Latencia (s) Throughput (b/s) Latencia a tráfico 0 Tráfico (b/s) Tráfico (b/s) Latencia y Throughput Teniendo en cuenta el tráfico de la red

  39. puertos de entrada puertos de salida enlaces de comunicación enlaces de comunicación func. encam.+ crossbar búferes búferes procesador local procesador local El encaminador (router) • Básicamente, un conjunto de búferes asociados a puertos de entrada/salida, más la lógica que permite procesar las cabeceras de los paquetes y asociarles un puerto de salida.

  40. Encaminamiento • Estáticoen orden de dimensiones (DOR) • sencillo y prefijado. • permite evitar problemas (tales como bloqueos). Dinámico permite adaptarse a condiciones de tráfico local y aprovechar la riqueza topológica de la red. añade tolerancia a fallos. pero puede implicar problemas de bloqueos en ciertas topologías.

  41. interfaz + procesador (+SO?) P1 P2 red + encaminadores Otros elementos • Atención: el rendimiento del sistema de comuni-cación no depende únicamente del dispositivo físico de comunicación, la red. La comunicación procesador/procesador implica muchos más elementos.

  42. Implementación habitual: memoria usuario memoria usuario int SO int SO Protocolos de comunic. • 1. TCP / IP • reliable / connection oriented • protocolo de los primeros clusters(y los de menor rendimiento) copia m. sistema copia m. sistema

  43. 10 Mb/s 100 Mb/s 1 Gb/s Protocolos de comunic. • El overhead generado por el sistema operativo y las copias van a suponer una parte importante en el tiempo total de comunicación. overhead del protocolo tiempo de transmisión Lat. paq. corto: 50-60 µs Lat. switch: 40 µs

  44. Protocolos de comunic. • 2. Active Messages (Fast Messages) • Librería de comunicación de baja latencia del proyecto NOW (Berkeley). • Mensajes cortos: síncronos, request/reply • - se crea el mensaje en la memoria de usuario. • - el receptor crea un buffer en memoria de usuario y envía una petición (request). • - el hardware de red envía el mensaje desde la memoria de usuario del emisor a la del receptor. • - No se hacen copias en memoria del sistema:0 copias.

  45. VIA • Estándares para clusters • 1. VIA: virtual interface architecture • Estándar de comunicaciones que combina las principales ideas desarrolladas en las universidades. • Consorcio de fabricantes: Intel, Compaq, Microsoft... • -- antes de enviar un mensaje, se reserva en memoria física, emisor y receptor, sitio para el mensaje. • -- las operaciones send/receive consisten en enviar un descriptor del paquete a una cola de proceso de paquetes. • -- puede esperarse confirmación o seguir con el trabajo.

  46. VIA • Estándares para clusters • 1. VIA: virtual interface architecture • Implementaciones • -- nativa: parte del código se carga en el propio interfaz de red. • -- emulada: todo el proceso lo ejecuta el procesador del nodo (aunque con menor overhead que TCP/IP). • -- no “seguro” (reliable)! • -- bajo nivel: usar un interfaz. Por ejemplo, ya hay versiones de MPICH que soportan VIA.

  47. InfiniBand • 2. InfiniBand (IBA) • Objetivo: infraestructura de comunicaciones de altas prestaciones, basada en switches (intra) y routers (inter), para formar redes SAN (sustitución del bus compartido) • - Los nodos se conectan mediante adaptadores especiales: HCA (nodos de cómputo) o TCA (nodos auxiliares). • - Los switches interconectan los nodos de la red local, y los routers las redes locales entre sí. • - Los enlaces operan desde 2,5 Gb/s hasta 3,75 GB/s (x12), unidireccionalmente, punto a punto. • - Latencias < 6 µs para mesajes cortos.

  48. Cluster Computing

  49. Myrinet MYRINET -Infraestructura de comunicaciones de alto rendimiento (pero “cara”). -Enlaces a 2+2 Gbit/s (full duplex) fibra óptica Switches en crossbar - red de Clos / cut-through -Software propio de control de mensajes (GM) Implementaciones de Gbit ethernet / Via / Infiniband -Latencias de paquetes pequeños: 1,2 us (Gigabit, 50 us) Throughput máximo 9,6 Gbit/s

  50. Myrinet

More Related