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
jiparraguirre@frbb.utn.edu.ar http://www.frbb.utn.edu.ar/hpc/
Lo que Viene [1]
• Conceptos Iniciales
• T ´ecnicas de decomposici ´on
• Tareas e Interacciones
• Mapeo y Balance de Carga
• M ´etodos para Contener las Perdidas por Interacciones
Puntos a Tener en Cuenta
y [i] = n X j=1 A[i, j] ∗ b[j] | y = A ∗ b• Tareas: n tareas de multiplicar una fila de la matriz por el vector
• Grafo de dependencia: no hay dependencia de tareas
Granularidad
• Tenemos procesos (o tareas) y procesadores (no es lo mismo!)
• La granularidad es el tama ˜no de la tarea asignada a cada procesador
• Podemos de hablar de granularidad fina o gruesa
• Hay relaci ´on entre el grado de concurrencia y la granularidad
• Extrema granularidad trae problemas de perdidas en las comunicaciones!!
Camino cr´ıtico
• Ungrafo de dependencias es importante para la asignaci ´on de tareas
• Elcamino critico es fundamental
• El tiempo de procesamiento esta muy relacionado allargo del camino cr´ıtico
• ¿Cuales son los pasos para hacer un asado? ¿Hay paralelismo?
Camino cr´ıtico
• Ungrafo de dependencias es importante para la asignaci ´on de tareas
• Elcamino critico es fundamental
• El tiempo de procesamiento esta muy relacionado allargo del camino cr´ıtico
• ¿Cuales son los pasos para hacer un asado? ¿Hay paralelismo?
Multiplicaci ´on Matrix-vector Suelta (sparse)
y [i] = n X 0<j<n,A[i,j]6=0 A[i, j] ∗ b[j]• No podemos hacer una multiplicaci ´on si A[i,j] es 0
• Dependiendo del conjunto de datos, hay ungrafo de dependencias
• No es conveniente asignar tareas a procesadores de forma aleatoria
• Hay dos temas que entran en juego: scheduling and mapping (lo vemos m ´as adelante)
T ´ecnicas de Decomposici ´on
• Recursiva
• Datos
• Exploratoria
Decomposici ´on Recursiva (2 de 2)
• Estrategia divide y conquistar ´as (divide and conquer)
Decomposici ´on por Datos (3 de 3)
• Hay dos pasos en la decomposici ´on • Se particionan los datos
Decomposici ´on Exploratoria (3 de 3)
• Hay dos pasos en la decomposici ´on
• Funciona muy bien para problemas que involucran b ´usquedas
• Se particiona el espacio de b ´usqueda en espacios menores y se busca en paralelo
Decomposici ´on Especulativa (2 de 2)
• Cuando un programa puede tomar varios caminos posibles en funci ´on de los c ´omputos
• Similar a evaluar un switch en C
• No es eficiente paralizar todos los casos, solo los m ´as frecuentes
• Tiene mucho valor cuando se agregan varias etapas de especulaci ´on
Mapeo y Balance de Carga
• El mapeo se hace para balancear la carga
• Tambien se tiene en cuenta la interacci ´on entre tareas
• Hay dos formas de mapeo:est ´atico y din ´amico
• Mapeo est ´atico • Datos
• Tareas
• Mapeo din ´amico • Centralizado
Mapeo Din ´amico
• Cuando la carga de trabajo var´ıa con los c ´omputos
• Cuando hay gran desbalance o el grafo de dependencia es din ´amico
• Centralizado
• Arquitectura maestro-esclavo
• F ´acil 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
M ´etodos para Contener las P ´erdidas
(overheads) por Interacciones
M ´etodos para Contener las P ´erdidas (overheads) por
Interacciones
• Maximizar la local´ıa de los datos
• Minimizar contenci ´on y puntos calientes (hot-spots)
• Solapar computaci ´on con interacciones
• Replicar los datos o los c ´omputos
• Usar operaciones de interacci ´on colectivas optimizadas
Modelos de Algoritmos Paralelos
• Paralelismo de datos
• Grafo de tareas
• Conjuto de trabajadores (work pool)
• Maestro-esclavo (master-slave)
Paralelismo de Datos
• Las tareas son mapeadas de manera cuasi-est ´atica
• Las operaciones paralelas son muy similares
Grafo de Tareas
• Generalmente se usa cuando tenemos grandes vol ´umenes de datos
Conjunto de Trabajadores (work pool)
• Mapeo din ´amico de tareas a procesos
• Muy ´util para el balance de carga
Maestro-esclavo (master-slave)
• Un maestro genera trabajo y los esclavos ejecutan
Productor-consumidor (pipeline producer-consumer)
• Una secuencia de datos pasa a trav ´es de una serie de procesos
• Cada proceso realiza una tarea particular
• Todos los procesos act ´uan a la vez formando una ca ˜ner´ıa (pipeline)
Nota Personal
• Vimos herramientas de decomposici ´on, interacciones, mapeos, p ´erdidas y modelos de algoritmos
• Son solo herramientas cl ´asicas para orientarnos (ejes ortonormales en un espacio de las fases conceptual)
• Dependiendo el problema se encuentra la soluci ´on
• Sonfundamentales las herramientas de diagn ´ostico (profiling)
¡Muchas gracias!
¿Preguntas?
Referencias
[1] G. Ananth, G. Anshul, K. George, and K. Vipin. Introduction to parallel computing, 2003.