Procesamiento Paralelo

47  Descargar (0)

Texto completo

(1)

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/

(2)
(3)

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

(4)
(5)
(6)

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

(7)
(8)

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!!

(9)

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?

(10)

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?

(11)
(12)

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)

(13)
(14)
(15)

T ´ecnicas de Decomposici ´on

• Recursiva

• Datos

• Exploratoria

(16)
(17)

Decomposici ´on Recursiva (2 de 2)

• Estrategia divide y conquistar ´as (divide and conquer)

(18)
(19)
(20)

Decomposici ´on por Datos (3 de 3)

• Hay dos pasos en la decomposici ´on • Se particionan los datos

(21)
(22)
(23)

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

(24)
(25)

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

(26)
(27)

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

(28)
(29)
(30)
(31)
(32)
(33)

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

(34)

M ´etodos para Contener las P ´erdidas

(overheads) por Interacciones

(35)

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

(36)
(37)

Modelos de Algoritmos Paralelos

• Paralelismo de datos

• Grafo de tareas

• Conjuto de trabajadores (work pool)

• Maestro-esclavo (master-slave)

(38)

Paralelismo de Datos

• Las tareas son mapeadas de manera cuasi-est ´atica

• Las operaciones paralelas son muy similares

(39)

Grafo de Tareas

• Generalmente se usa cuando tenemos grandes vol ´umenes de datos

(40)

Conjunto de Trabajadores (work pool)

• Mapeo din ´amico de tareas a procesos

• Muy ´util para el balance de carga

(41)

Maestro-esclavo (master-slave)

• Un maestro genera trabajo y los esclavos ejecutan

(42)

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)

(43)
(44)

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)

(45)
(46)

¡Muchas gracias!

¿Preguntas?

(47)

Referencias

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

Figure

Actualización...

Referencias

Related subjects :