procesamiento paralelo - principios de diseño de ... paralelismo? camino cr´ıtico un grafo de...

47
Procesamiento Paralelo Principios de dise ˜ no de algoritmos paralelos Javier Iparraguirre Universidad Tecnol´ ogica Nacional, Facultad Regional Bah´ ıa Blanca 11 de Abril 461, Bah´ ıa Blanca, Argentina [email protected] http://www.frbb.utn.edu.ar/hpc/ 25 de marzo de 2016

Upload: others

Post on 21-Jul-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´

Procesamiento ParaleloPrincipios de diseno de algoritmos paralelos

Javier Iparraguirre

Universidad Tecnologica Nacional, Facultad Regional Bahıa Blanca11 de Abril 461, Bahıa Blanca, Argentina

[email protected]

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

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´

Contacto

Page 46: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´

¡Muchas gracias!

¿[email protected]

Page 47: Procesamiento Paralelo - Principios de diseño de ... paralelismo? Camino cr´ıtico Un grafo de dependencias es importante para la asignacion de tareas´

Referencias

[1] G. Ananth, G. Anshul, K. George, and K. Vipin.Introduction to parallel computing, 2003.