Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de...
Transcript of Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de...
![Page 1: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/1.jpg)
Procesamiento ParaleloPrincipios de diseno de algoritmos paralelos
Javier Iparraguirre
Universidad Tecnologica Nacional, Facultad Regional Bahıa Blanca11 de Abril 461, Bahıa Blanca, Argentina
http://www.frbb.utn.edu.ar/hpc/
25 de marzo de 2016
![Page 2: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/2.jpg)
Marco Conceptual
![Page 3: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/3.jpg)
Lo que Viene [1]
• Conceptos Iniciales• Tecnicas de decomposicion• Tareas e Interacciones• Mapeo y Balance de Carga• Metodos para Contener las Perdidas por Interacciones• Modelos de Algoritmos Paralelos
![Page 4: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/4.jpg)
Conceptos Iniciales
![Page 5: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/5.jpg)
Multiplicacion de Matriz-vector Densa
![Page 6: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/6.jpg)
Puntos a Tener en Cuenta
y [i] =n∑
j=1
A[i , j] ∗ b[j] | y = A ∗ b
• Tareas: n tareas de multiplicar una fila de la matriz por elvector
• Grafo de dependencia: no hay dependencia de tareas• ¿Decomposicion? (grafo de decomposicion)
![Page 7: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/7.jpg)
Granularidad
![Page 8: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/8.jpg)
Granularidad
• Tenemos procesos (o tareas) y procesadores (no es lomismo!)
• La granularidad es el tamano de la tarea asignada a cadaprocesador
• Podemos de hablar de granularidad fina o gruesa• Hay relacion entre el grado de concurrencia y la
granularidad• Extrema granularidad trae problemas de perdidas en las
comunicaciones!!
![Page 9: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/9.jpg)
Camino crıtico
• Un grafo de dependencias es importante para laasignacion de tareas
• El camino critico es fundamental• El tiempo de procesamiento esta muy relacionado al largo
del camino crıtico
• ¿Cuales son los pasos para hacer un asado? ¿Hayparalelismo?
![Page 10: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/10.jpg)
Camino crıtico
• Un grafo de dependencias es importante para laasignacion de tareas
• El camino critico es fundamental• El tiempo de procesamiento esta muy relacionado al largo
del camino crıtico• ¿Cuales son los pasos para hacer un asado? ¿Hay
paralelismo?
![Page 11: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/11.jpg)
Camino Crıtico
![Page 12: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/12.jpg)
Multiplicacion Matrix-vector Suelta (sparse)
y [i] =n∑
0<j<n,A[i,j] 6=0
A[i , j] ∗ b[j]
• No podemos hacer una multiplicacion si A[i,j] es 0• Dependiendo del conjunto de datos, hay un grafo de
dependencias• No es conveniente asignar tareas a procesadores de
forma aleatoria• Hay dos temas que entran en juego: scheduling and
mapping (lo vemos mas adelante)
![Page 13: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/13.jpg)
Multiplicacion Matriz-vector Suelta (sparse)
![Page 14: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/14.jpg)
Tecnicas de Decomposicion
![Page 15: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/15.jpg)
Tecnicas de Decomposicion
• Recursiva• Datos• Exploratoria• Especulativa
![Page 16: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/16.jpg)
Decomposicion Recursiva (1 de 2)
![Page 17: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/17.jpg)
Decomposicion Recursiva (2 de 2)
• Estrategia divide y conquistaras (divide and conquer)• Se parte el problema en problemas mas chicos
![Page 18: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/18.jpg)
Decomposicion por Datos (1 de 3)
![Page 19: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/19.jpg)
Decomposicion por Datos (2 de 3)
![Page 20: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/20.jpg)
Decomposicion por Datos (3 de 3)
• Hay dos pasos en la decomposicion• Se particionan los datos• Las particiones se convierten en tareas
![Page 21: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/21.jpg)
Decomposicion Exploratoria (1 de 3)
![Page 22: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/22.jpg)
Decomposicion Exploratoria (2 de 3)
![Page 23: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/23.jpg)
Decomposicion Exploratoria (3 de 3)
• Hay dos pasos en la decomposicion• Funciona muy bien para problemas que involucran
busquedas• Se particiona el espacio de busqueda en espacios
menores y se busca en paralelo
![Page 24: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/24.jpg)
Decomposicion Especulativa (1 de 2)
![Page 25: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/25.jpg)
Decomposicion Especulativa (2 de 2)
• Cuando un programa puede tomar varios caminosposibles en funcion de los computos
• Similar a evaluar un switch en C• No es eficiente paralizar todos los casos, solo los mas
frecuentes• Tiene mucho valor cuando se agregan varias etapas de
especulacion
![Page 26: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/26.jpg)
Mapeo y Balance de Carga
![Page 27: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/27.jpg)
Mapeo y Balance de Carga
• El mapeo se hace para balancear la carga• Tambien se tiene en cuenta la interaccion entre tareas• Hay dos formas de mapeo: estatico y dinamico• Mapeo estatico
• Datos• Tareas
• Mapeo dinamico• Centralizado• Distribuido
![Page 28: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/28.jpg)
Mapeo Estatico por Datos
![Page 29: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/29.jpg)
Mapeo Estatico por Tareas
![Page 30: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/30.jpg)
Mapeo Estatico Modelo Real (1 de 3)
![Page 31: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/31.jpg)
Mapeo Estatico Modelo Real (2 de 3)
![Page 32: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/32.jpg)
Mapeo Estatico Modelo Real (3 de 3)
![Page 33: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/33.jpg)
Mapeo Dinamico
• Cuando la carga de trabajo varıa con los computos• Cuando hay gran desbalance o el grafo de dependencia es
dinamico• Centralizado
• Arquitectura maestro-esclavo• Facil de mantener• Pude tener problemas de escalabilidad
• Distribuido• Un conjunto de tareas es distribuida entre procesos• Cada proceso puede recibir o enviar tareas a un par• Soluciona problemas de escalabilidad
![Page 34: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/34.jpg)
Metodos para Contener las Perdidas(overheads) por Interacciones
![Page 35: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/35.jpg)
Metodos para Contener las Perdidas (overheads) porInteracciones
• Maximizar la localıa de los datos• Minimizar contencion y puntos calientes (hot-spots)• Solapar computacion con interacciones• Replicar los datos o los computos• Usar operaciones de interaccion colectivas optimizadas• Solapar interacciones con otras interacciones
![Page 36: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/36.jpg)
Modelos de Algoritmos Paralelos
![Page 37: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/37.jpg)
Modelos de Algoritmos Paralelos
• Paralelismo de datos• Grafo de tareas• Conjuto de trabajadores (work pool)• Maestro-esclavo (master-slave)• Productor-consumidor (pipeline producer-consumer)
![Page 38: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/38.jpg)
Paralelismo de Datos
• Las tareas son mapeadas de manera cuasi-estatica• Las operaciones paralelas son muy similares• Necesita poca sincronizacion y asignacion
![Page 39: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/39.jpg)
Grafo de Tareas
• Generalmente se usa cuando tenemos grandesvolumenes de datos
• Usualmente se mapean estaticamente
![Page 40: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/40.jpg)
Conjunto de Trabajadores (work pool)
• Mapeo dinamico de tareas a procesos• Muy util para el balance de carga• El mapero puede ser centralizado o descentralizado
![Page 41: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/41.jpg)
Maestro-esclavo (master-slave)
• Un maestro genera trabajo y los esclavos ejecutan• Problemas de cuellos de botella
![Page 42: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/42.jpg)
Productor-consumidor (pipeline producer-consumer)
• Una secuencia de datos pasa a traves de una serie deprocesos
• Cada proceso realiza una tarea particular• Todos los procesos actuan a la vez formando una canerıa
(pipeline)
![Page 43: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/43.jpg)
Resumen
![Page 44: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/44.jpg)
Nota Personal
• Vimos herramientas de decomposicion, interacciones,mapeos, perdidas y modelos de algoritmos
• Son solo herramientas clasicas para orientarnos (ejesortonormales en un espacio de las fases conceptual)
• Dependiendo el problema se encuentra la solucion• Son fundamentales las herramientas de diagnostico
(profiling)
![Page 45: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/45.jpg)
Contacto
![Page 47: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´ ...](https://reader034.fdocuments.es/reader034/viewer/2022050216/5f62324f053a1b32610bee04/html5/thumbnails/47.jpg)
Referencias
[1] G. Ananth, G. Anshul, K. George, and K. Vipin.Introduction to parallel computing, 2003.