Title: Ejemplos del Dise
1Ejemplos del Diseño de Algoritmos Paralelos
- (Transparencias de McGraw-Hill Modificadas)
2Redución
- Dado un operador asociativo ?,
- computar a0 ? a1 ? a2 ? ? an-1
- Ejemplos
- suma
- producto
- And, Or
- Máximo, Minimo
3La 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)(? ?)
4Evolución de Reducción Paralela 2
Tttitiempo i
Tiempo total para esta solución n/2(? ?)
5Tiempo total para esta solución (n/41)(??)
6Las comunicaciones para el caso
de n16
0
2
10
8
1
3
11
9
5
7
15
13
4
6
14
12
7Determinar la Suma Global
4
2
0
7
-3
5
-6
-3
8
1
2
3
-4
4
6
-1
8Determinar la Suma Global
1
7
-6
4
4
5
8
2
9Determinar la Suma Global
8
-2
9
10
10Determinar la Suma Global
17
8
11Determinar la Suma Global
25
12Aglomeración y Asignar Tareas a
Procesadores
0
2
10
8
Aglomerarar tareas para minimizar comunicaciones.
Tiempo de computación 3? Tiempo para
comunicaciones 2(??).
AA
Ag a
1
3
11
9
5
7
15
13
4
6
14
12
13Aglomeración y Asignar Tareas a
Procesadores en General
- La cantidad de tareas es estática
- Cantidad de computaciones por tarea es constante
- Patrones de comunicaciones regulares
- En un caso asi, aglomeramos para minimizar
comunicaciones. Asignar n/p tareas a cada uno de
los procesadores.
14Analisis 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.
15 Asignación(Ejericicio 3.7 del texto)
- Usando el patron de comunicaciones ilustrado
anteriormente, escribir un programa en C que
describe las comunicaciones que se hacen por una
tarea que participa en una reducción. Dada la
cantidad n de tareas y el número de
identificación i, donde 0iltn, el programa
deberia imprimir una lista de todos los mensajes
enviados y/ o recibidos por la tarea i. La lista
debe indicar la destinación de todos los mensajes
enviados y la fuente de todos los - mensajes recibidos.
- Puede presumir que la cantidad de tareas es una
potencia de 2.
16 Asignación (cont)
- Por ejemplo, si n8 y i1, la salida debe ser
-
- mensaje recibido de la tarea 0
- mensaje enviado a la tarea 3
-
-
17 El Problema de n Cuerpos
(The n Body Problem)
- Es el problema de determinar, dado las
posiciones, masas, y velocidades de n cuerpos,
sus mociones subsecuentes de acuerdo con la
mecánica clásica.
18El Problema de n Cuerpos
19Particionar
- Partición de dominio
- Asumir una tarea por partículo
- Cada tarea tiene la posición del partículo y su
vector de velocidad - En cada iteración
- se obtienen las posiciones de todos los otros
partículos - Se computan la nueva posición y el nuevo vector
de velocidad
20La Operación Gather
Pone los datos de un conjunto de tareas en una
sola tarea.
21La Operación All-gather
Pone los datos de un conjunto de tareas en cada
una de las tareas.
22Grafo 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.
23La 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.
24Hipercubos
- Un hipercubo de dimensión d es un grafo con n2d
nodos númerados 0,1,,n-1 en binario tal que hay
una arísta entre dos nodos i y j si y solo si i y
j difieren en exactamente un bit.
25Subcubos de Hipercubos
- Númeramos los bits de un número binario,
empezando desde la derecha hacia la izquierda,
0,1,,d-1. - Un subcubo de dimensión e de un hipercubo de
dimensión d es un subgrafo cuyos nodos tienen
representaciones binarias que son constante en
d-e posiciones de bit especificas.
26 All-gather en un hipercubo
- Una comunicación en un hipercubo consiste de un
intercambio de mensajes entre todos los pares de
nodos cuyas representaciones binarias difieren en
exactamente un bit. - All-gather se puede llevar a cabo en un hipercubo
de dimensión d en d pasos de comunicación.
27Aglomerar y Asignar Tareas a
Procesadores
6
7
14
15
Aglomerar tareas en subcubos para minimizar
comunicaciones. Asignar n/p tareas a cada uno de
p procesadores. Hay log p pasos de
comunicaciones.
AA
Ag a
4
5
12
13
2
3
10
11
0
1
8
9
28 Analisis de Tiempo
- Hay log p pasos de comunicaciones.
- En paso1, los mensajes son de largo n/p
- En paso2, los mensajes son de largo 2n/p.
- En paso3, los mensajes son de largo 4n/p.
- . . .
- En pasoi, los mensajes son de largo 2i n/p
29 Analisis de Tiempo
- Sean ? el tiempo para iniciar un mensaje
- ß la cantidad de datos que se pueden
- enviar en una unidad de tiempo.
- Luego ? n/ß es el tiempo que se necesita
para mandar n datos.
30Tiempo de Comunicación
31Tiempo de Comunicaciones
32Añadir Entradas/Salidas
33Scatter
34Scatter p elementos en log p pasos
- Mandar la mitad a una tarea y la otra mitad a
otra tarea - Cada tarea que recibio en el paso previo manda la
mitad de sus elementos a una tarea inactiva y la
otra mitad a otra tarea inactiva - .
- Después despues de log p pasos cada tarea tendrá
un element distinto de la entrada.
35Resumen Modelo Tarea/canal
- Computación Paralela
- Conjunto de tareas
- Interacciones por canales
- Buen Diseños
- Maximizar computaciones locales
- Minimizar comunicaciones
- Escabilidad
36Resumen Pasos de Diseño
- Particionar la computación
- Aglomerar tareas
- Mapear tareas a procesadores
- Metas
- Maximizar la utilización de procesadores
- Minimizar las comunicaciones entre procesos
37 Resumen Algoritmos
Fundamentales
- Reduction
- Gather y scatter
- All-gather