La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Teo. 4: Operaciones básicas de comunicación

Presentaciones similares


Presentación del tema: "Teo. 4: Operaciones básicas de comunicación"— Transcripción de la presentación:

1 Teo. 4: Operaciones básicas de comunicación
Algoritmos paralelos Glen Rodríguez

2 Introducción Tiempo com.= a + n*b = ts + n*tw
La comunicación afecta el tiempo total= t. proceso + t. comunicación + t. ocioso (idle) En programas paralelos, muchas veces hay un patrón reconocible de comunicaciones. Los patrones comunes se usan como bloque básicos.

3 Broadcast Uno-a-todos y Reducción Todos-a-uno
Broadcast: Al inicio solo un proceso tiene el valor M de tamaño m. Al final, hay p copias de ese valor M. El dual es la reducción: hay p valores diferentes de M (Mi) y al final hay un solo valor de M (combinación de los Mi por ejemplo como promedio, suma, producto, máximo) en un solo proceso

4 Usos: multipl. matriz-vector,
Eliminación Gaussiana, Ruta más corta, producto punto

5 Ejemplo en anillo o arreglo lineal
Duplicación recursiva, acá origen es el nodo 0. En 3 pasos de tiempo se termina el broadcasting.

6 Duplicación recursiva, pero en reducción. Los nodos intermedios guardan
resultados intermedios. Ej.: 6 guarda resultado de 6 y 7.

7 Ejemplo en una mesh o malla
Pasos 1: broadcast de nodo 0 a toda su fila 2: cada nodo al inicio de una columna hace broadcast al resto de la columna. En ambos pasos puede usarse duplic. recursiva

8 En un hipercubo 2d nodos, d dimensiones, entonces se puede hacer en d pasos

9 Costo Asumiendo p procesos, con data de m bytes, tenemos:
T= (ts + n*tw) log(p)

10 Broadcast Todos-a-todos y Reducción Todos-a-todos
B.t.a.t. es la generalización del broadcast. Se hacen p broadcasts (1 por cada proceso o nodo) a la vez La R.t.a.t. es una en la que cada nodo es sujeto a una reducción. Se usan mucho en multiplicaciones de matrices

11

12 Ejemplo: anillo En p-1 pasos

13 Ejemplo: mesh

14 Costos En un anillo T= (ts + n*tw) (p-1) En un mesh
T= 2ts (√p -1) +ntw(p-1)

15 All-Reduce y Prefix-Sum
All reduce= reducción t.a.uno y luego un broadcast t.a.uno del resultado de dicha reducción “Sacar una suma y luego copiar la suma a todos” En vez de esas dos operaciones, en algunas topologías (ej.: hipercubos, anillo) es mejor usar el patrón de comunicaciones de b.t.a.t

16 Scatter y Gather Scatter: un nodo tiene p mensajes (1 para cada nodo, incluyendo a si mismo) y los envia. Gather: un nodo recolecta un mensaje enviado por p nodos, y los junta. Generalmente, cada mensaje= parte de un vector/matriz.

17 En un hipercubo, el patrón es parecido a un broadcast

18 Costo: T= ts log(p)+ n*tw (p-1)

19 Comunicación personalizada Todos-a-todos
Cada nodo manda un distinto mensaje del mismo tamaño m a todos los demás nodos. Se le llama “total exchange” Se usa en transposición de matrices, transformadas de Fourier, etc.

20

21 Ejemplo: matriz transpuesta

22 Ejemplo: anillo Enviar (p-1) mensajes a otro nodo, ese nodo lee su mensaje y reenvía (p-2) mensajes a otro nodo, …

23 Ejemplo mesh Crear √p grupos de mensajes 1: repartirlo a la
fila propia 2: repartirlo en la columna propia

24 Costos Anillo: Mesh:

25 Desplazamiento circular
Tipo de “Permutación”: cada nodo manda un mensaje de datos a solo otro nodo. Desp. Circular en q (q-shift): permutación donde nodo 0 manda data al q, el 1 al q+1, el 2 al q+2,…, el (i) al (i+q) mod p, … el p-1 al q-1, el p al q.

26 Ejemplo: en mesh Costo: T= (ts+ntw) (√p +1)


Descargar ppt "Teo. 4: Operaciones básicas de comunicación"

Presentaciones similares


Anuncios Google