Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

37
Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de (Transparencias de McGraw-Hill Modificadas) McGraw-Hill Modificadas)

Transcript of Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Page 1: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Ejemplos del Diseño de Algoritmos Paralelos

(Transparencias de McGraw-Hill (Transparencias de McGraw-Hill Modificadas)Modificadas)

Page 2: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Redución

Dado un operador asociativo Dado un operador asociativo ,, computarcomputar a a00 aa11 aa22 … … aan-1n-1

EjemplosEjemplos sumasuma productoproducto And, OrAnd, Or MMááximo, Minimoximo, Minimo

Page 3: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

La Evolución de Reducción Paralela

Sea λ el tiempo para enviar un valor de una tarea a otra.

Sea χ el tiempo para sumar dos valores.

El tiempo total para esta solución es

(n-1)(λ + χ)

Page 4: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Evolución de Reducción Paralela 2

Tiempo total para esta solución: n/2(λ + χ)Tttitiempo i

Page 5: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Tiempo total para esta solución: (n/4+1)(λ+χ)

Page 6: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Las comunicaciones para el caso de n=16

0 2 10 8

1 3 11 9

5 7 15 13

4 6 14 12

Un árbol binario con las hojasnúmeradas 0,1,…,n-1

Page 7: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Determinar la Suma Global

4 2 0 7

-3 5 -6 -3

8 1 2 3

-4 4 6 -1

Page 8: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Determinar la Suma Global

1 7 -6 4

4 5 8 2

Page 9: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Determinar la Suma Global

8 -2

9 10

Page 10: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Determinar la Suma Global

17 8

Page 11: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Determinar la Suma Global

25

Page 12: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Aglomeración y Asignar Tareas a Procesadores

0 2 10 8

1 3 11 9

5 7 15 13

4 6 14 12

Aglomerarar tareas para minimizar comunicaciones.

Tiempo de computación: 3χ

Tiempo para comunicaciones: 2(λ+χ).

Ag

a

AA

Page 13: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Aglomeración y Asignar Tareas a Procesadores en General La cantidad de tareas es estLa cantidad de tareas es estáticaática Cantidad de computaciones por tarea es Cantidad de computaciones por tarea es

constanteconstante Patrones de comunicaciones regularesPatrones de comunicaciones regulares

En un caso asi, aglomeramos para minimizar En un caso asi, aglomeramos para minimizar comunicaciones. Asignar n/p tareas a cada comunicaciones. Asignar n/p tareas a cada uno de los procesadores.uno de los procesadores.

Page 14: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Analisis de Reducción

En general,

Tiempo para las computaciones: (n/p -1)χ y

Tiempo para comunicaciones: log p (λ+χ), donde

x es el entero menor que es mayor o igual a x.

Page 15: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Asignación(Ejericicio 3.7 del texto)

Usando el patron de comunicaciones ilustrado Usando el patron de comunicaciones ilustrado anteriormente, escribir un programa en C que describe las anteriormente, escribir un programa en C que describe las comunicaciones que se hacen por una tarea que participa comunicaciones que se hacen por una tarea que participa en una reduccien una reducción.ón. Dada la cantidad n de tareas y el n Dada la cantidad n de tareas y el número úmero de identificación i, donde de identificación i, donde 0 0≤≤i<n, el programa deberia i<n, el programa deberia imprimir una lista de todos los mensajes enviados y/ o imprimir una lista de todos los mensajes enviados y/ o recibidos por la tarea i. La lista debe indicar la destinacirecibidos por la tarea i. La lista debe indicar la destinación ón de todos los mensajes enviados y la fuente de todos losde todos los mensajes enviados y la fuente de todos los

mensajes recibidos. mensajes recibidos.

Puede presumir que la cantidad de tareas es una potencia de Puede presumir que la cantidad de tareas es una potencia de 2.2.

Page 16: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Asignación (cont)

Por ejemplo, si n=8 y i=1, la salida debe ser:Por ejemplo, si n=8 y i=1, la salida debe ser:

mensaje recibido de la tarea 0mensaje recibido de la tarea 0

mensaje enviado a la tarea 3mensaje enviado a la tarea 3

Page 17: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

El Problema de n Cuerpos (The n Body Problem) Es el problema de determinar, dado las Es el problema de determinar, dado las

posiciones, masas, y velocidades de n posiciones, masas, y velocidades de n cuerpos, sus mociones subsecuentes de cuerpos, sus mociones subsecuentes de acuerdo con la mecacuerdo con la mecánica clásica.ánica clásica.

Page 18: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

El Problema de n Cuerpos

Page 19: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Particionar

ParticiPartición de dón de dominioominio Asumir una tarea por partAsumir una tarea por partículoículo Cada tarea tiene la posiciCada tarea tiene la posición del ón del partpartículo y su ículo y su

vector de velocidadvector de velocidad En cada iteraciEn cada iteracióónn

se obtienen las posiciones de todos los otros se obtienen las posiciones de todos los otros partpartículosículos

Se computan la nueva posiciSe computan la nueva posicióón y el nuevo n y el nuevo vector de velocidadvector de velocidad

Page 20: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

La Operación Gather

Pone los datos de un conjunto de tareas en una sola tarea.

Page 21: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

La Operación All-gather

Pone los datos de un conjunto de tareas en cada una de las tareas.

Page 22: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Grafo Completo para All-gather

En cada paso de comunicaciones, cada tarea manda su posición a otra tarea. Al finalizar de n-1 pasos, cada tarea tendrá todas las posiciones.

Page 23: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

6 23

La Hipercubo para All-gather

En este ejemplo, hay dos pasos de comunicaciones. En el primer paso, los pares (0,1) y (2,3)intercambian información y en el segundo paso, los pares (0,2) y (1,3) intercambian información.

Page 24: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Hipercubos

Un hipercubo de dimensiUn hipercubo de dimensión d ón d es un grafo es un grafo con n=2con n=2d d nodos n nodos núúmerados 0,1,…,n-1 en merados 0,1,…,n-1 en binario tal que hay una arbinario tal que hay una arísta entre dos ísta entre dos nodos i y j si y solo si i y j difieren en nodos i y j si y solo si i y j difieren en exactamente un bit.exactamente un bit.

Page 25: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Subcubos de Hipercubos

NNúmeramos los bits de un número binario, úmeramos los bits de un número binario, empezando desde la derecha hacia la empezando desde la derecha hacia la izquierda, 0,1,…,d-1. izquierda, 0,1,…,d-1.

Un subcubo de dimensión e de un Un subcubo de dimensión e de un hipercubo de dimensión d es un subgrafo hipercubo de dimensión d es un subgrafo cuyos nodos tienen representaciones cuyos nodos tienen representaciones binarias que son constante en d-e posiciones binarias que son constante en d-e posiciones de bit especificas. de bit especificas.

Page 26: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

All-gather en un hipercubo

Una comunicaciUna comunicación en un hipercubo consiste ón en un hipercubo consiste de un intercambio de mensajes entre todos de un intercambio de mensajes entre todos los pares de nodos cuyas representaciones los pares de nodos cuyas representaciones binarias difieren en exactamente un bit.binarias difieren en exactamente un bit.

All-gather se puede llevar a cabo en un All-gather se puede llevar a cabo en un hipercubo de dimensión d en d pasos de hipercubo de dimensión d en d pasos de comunicación.comunicación.

Page 27: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Aglomerar y Asignar Tareas a Procesadores

6 7 14 15

4 5 12 13

2 3 10 11

0 1 8 9

Aglomerar tareas en subcubos para minimizar comunicaciones. Asignar n/p tareas a cada uno de p procesadores. Hay log p pasos de comunicaciones.

Ag

a

AA

Page 28: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Analisis de Tiempo

Hay log p pasos de comunicaciones.Hay log p pasos de comunicaciones. En paso#1, los mensajes son de largo n/pEn paso#1, los mensajes son de largo n/p En paso#2, los mensajes son de largo 2n/p.En paso#2, los mensajes son de largo 2n/p. En paso#3, los mensajes son de largo 4n/p.En paso#3, los mensajes son de largo 4n/p. . . .. . . En paso#i, los mensajes son de largo 2En paso#i, los mensajes son de largo 2 i i n/pn/p

Page 29: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Analisis de Tiempo

Sean Sean λλ el tiempo para iniciar un mensaje el tiempo para iniciar un mensaje

ββ la cantidad de datos que se pueden la cantidad de datos que se pueden

enviar en una unidad de tiempo.enviar en una unidad de tiempo.

Luego Luego λλ + n/ + n/ββ es el tiempo que se necesita es el tiempo que se necesita para mandar n datos.para mandar n datos.

Page 30: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Tiempo de Comunicación

p

pnp

p

np

i

)1(

log2

log

1

1-i

Hipercubo

Page 31: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Tiempo de Comunicaciones Grafo Completo

p

pnp

pnp

)1(

)1()/

)(1(

Page 32: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Añadir Entradas/Salidas

Page 33: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Scatter

Page 34: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Scatter p elementos en log p pasos

1.1. Mandar la mitad a una tarea y la otra mitad a Mandar la mitad a una tarea y la otra mitad a otra tareaotra tarea

2.2. Cada tarea que recibio en el paso previo manda Cada tarea que recibio en el paso previo manda la mitad de sus elementos a una tarea inactiva y la mitad de sus elementos a una tarea inactiva y la otra mitad a otra tarea inactivala otra mitad a otra tarea inactiva

… …..

DespuDespués despues deés despues de log p pasos cada tarea tendr log p pasos cada tarea tendrá un á un element distinto de la entrada.element distinto de la entrada.

Page 35: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Resumen: Modelo Tarea/canal

ComputaciComputación ón ParalelaParalela Conjunto de tareasConjunto de tareas Interacciones por canalesInteracciones por canales

Buen DiseBuen Diseños ños Maximizar computaciones localesMaximizar computaciones locales Minimizar comunicacionesMinimizar comunicaciones EscabilidadEscabilidad

Page 36: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Resumen: Pasos de Diseño

Particionar la computaciParticionar la computacióónn Aglomerar tareasAglomerar tareas Mapear tareas a procesadoresMapear tareas a procesadores MetasMetas

Maximizar la utilizaciMaximizar la utilización de ón de procesadores procesadores Minimizar las comunicaciones entre Minimizar las comunicaciones entre

procesosprocesos

Page 37: Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Resumen: Algoritmos Fundamentales ReductionReduction Gather y scatterGather y scatter All-gatherAll-gather