Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)
-
Upload
jose-maria-saavedra-alvarado -
Category
Documents
-
view
231 -
download
0
Transcript of 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)
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
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)(λ + χ)
Evolución de Reducción Paralela 2
Tiempo total para esta solución: n/2(λ + χ)Tttitiempo i
Tiempo total para esta solución: (n/4+1)(λ+χ)
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
Determinar la Suma Global
4 2 0 7
-3 5 -6 -3
8 1 2 3
-4 4 6 -1
Determinar la Suma Global
1 7 -6 4
4 5 8 2
Determinar la Suma Global
8 -2
9 10
Determinar la Suma Global
17 8
Determinar la Suma Global
25
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
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.
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.
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.
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
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.
El Problema de n Cuerpos
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
La Operación Gather
Pone los datos de un conjunto de tareas en una sola tarea.
La Operación All-gather
Pone los datos de un conjunto de tareas en cada una de las tareas.
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.
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.
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.
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.
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.
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
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
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.
Tiempo de Comunicación
p
pnp
p
np
i
)1(
log2
log
1
1-i
Hipercubo
Tiempo de Comunicaciones Grafo Completo
p
pnp
pnp
)1(
)1()/
)(1(
Añadir Entradas/Salidas
Scatter
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.
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
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
Resumen: Algoritmos Fundamentales ReductionReduction Gather y scatterGather y scatter All-gatherAll-gather