1.65k likes | 1.85k Views
LABORATORIO DE PARALELISMO 2012 Agustin Arruabarrena - Idoia Cearreta. 1. Computadores Paralelos (resumen). 2. Programación de Sistemas de Memoria Compartida (SMP): OpenMP . 3. Programación de Sistemas de Memoria Distribuida: MPI .
E N D
LABORATORIO DE PARALELISMO 2012 AgustinArruabarrena - Idoia Cearreta
1.Computadores Paralelos (resumen). 2.Programación de Sistemas de Memoria Compartida (SMP): OpenMP. 3.Programación de Sistemas de Memoria Distribuida: MPI. 4.Tipos de Problemas Paralelos. Metodología de Desarrollo de Programas Paralelos. 5.Otras Alternativas: UPC. 6.Trabajos Complementarios. Programa
. 1 . COMPUTADORES PARALELOS (resumen)
1. Estructura de los sistemas para-lelos. Máquinas SMP, DSM y MPP. Clusters. Situación actual. 2. Infraestructura de comunicaciones. Protocolos de comunicación de alto rendimiento. 3. Coherencia de los datos. Sincronización de procesos. Modelo de consistencia. 4. Modelos de paralelismo. Análisis de dependen-cias. Optimizaciones. 5. Rendimiento del sistema paralelo. Índice Índice
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
Necesidad de Paralelismo • La busqueda 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.
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.
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
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
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.
Espacio de Direccionamiento comúnprivado Memoria centralizada (bus) distribuida (red) Sistemas SIMD SMP - DSM, NUMA MPP
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
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
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
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...
Itanium / Pentium IBM 360, PDP-11, VAX grid ASCI Red supercomputadores cluster The GRID
Niveles de paralelismo Tipos de aplicaciones > grano grueso(high throughput) pocas 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…
Evolución del mercado de computadores de alta velocidad. La lista top500. Noviembre 2011
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.
Top500 Cada 6 meses desde 1993 (junio/diciembre). Lista nº 36 - noviembre 2011 Más o menos aceptado por todos los fabricantes. Análisis de tendencias / evolución del mercado.
Top500 Evolución de la velocidad de cálculo Top5+ Fabricantes Procesador: arquitectura / familia / número Sistema: arquitectura / red Utilización
K-computer RoadRunner Tianhe-1A Jaguar ×1,88/año BlueGene NEC Earth Sim. IBM ASCI White LLNL Intel ASCI Red Sandia Top500 74.069 TF/s 9.192.843 pr. (8,1 GF/s) 1 PF/s → 2008 10 PF/s → 2011 100 PF/s → 2015
Top500 CM2 RoadRunner Sun HPC Jaguar Y-MP C90 Tianhe-1A K computer VP500 T3D Earth Sim. T3E ASCI Red Paragon Blue Gene CM5 SP2
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?
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
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.
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.
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.
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.
Clasificación Redes dinámicas - en base a conmutadores (switches) - redes indirectas Redes estáticas - en base a encaminadores de mensajes (routers) - redes directas/dirigidas
Parámetros topológicos • de distancia(relacionados +/- con la latencia) • distancia media • diámetro de throughput bisección: enlaces que hay que eliminar para dividir la red en dos partes iguales de complejidad grado del nodo número de enlaces
0 0 0 0 1 1 1 1 2 2 2 2 0 3 3 3 4 4 4 4 5 5 5 6 6 6 7 7 7 Redes dinámicas • Utilizadas en sistemas SIMD y/o para un número “moderado” de procesadores. Crossbar(switch todos con todos) Red Omega permutación perfect shuffle
Redes dinámicas • butterfly / fat tree/ clos
Redes estáticas • Utilizadas en sistemas masivamente paralelos, por su facilidad de expansión. Algunos ejemplos: Hipercubo +bajos parámetros topológicos alta densidad y bisección gran tolerancia a fallos -complejidad grado no constante +encaminamiento sencillo (xor)
Redes estáticas Mallas / Toros (2D / 3D) +bajo grado y constante sencillez de construcción -parámetros de distancia medios +encaminamiento sencillo (di - oi) en cada dimensión para toros, nunca más de medio anillo en cada dimensión
Redes estáticas Árboles (fat tree) +bajo grado y constante parámetros de distancia bajos -cableado más complejo +encaminamiento sencillo
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
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
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.
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.
Deadlock • Mensajes que se autobloquean al consumir los recursos asignados y formar un “ciclo”. • El encaminamiento estático DOR soluciona el problema en topologías que no tengan ciclos (mallas).
CV0 B0 B0 B1 B1 CV1 Deadlock - Canales virtuales • Multiplexado de los canales físicos de comunicación entre varios canales virtuales (buffers). Objetivosmejorar el rendimiento evitar bloqueos
3→1 2→0 3 2 CV0 0 1 CV1 0→2 1→3 Deadlock - Canales virtuales • El uso de canales (o redes) virtuales elimina bloqueos en anillos.