1 / 26

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

Teo. 4: Operaciones básicas de comunicación. Algoritmos paralelos Glen Rodríguez. Introducción. Tiempo com.= a + n* b = t s + n*t w La comunicación afecta el tiempo total= t. proceso + t. comunicación + t. ocioso (idle)

Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. Ejemplo: anillo En p-1 pasos

  12. Ejemplo: mesh

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

  14. 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

  15. 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.

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

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

  18. 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.

  19. Ejemplo: matriz transpuesta

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

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

  22. Costos • Anillo: • Mesh:

  23. 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.

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

More Related