900 likes | 1.06k Views
Arquitecturas Paralelas. 6. La red de comunicación de los computadores paralelos. Comunicación mediante paso de mensajes. - Introducción - Redes basadas en conmutadores - Redes basadas en encaminadores - Estrategias de comunicación - Conflictos en la comunicación. Arquitecturas Paralelas.
E N D
Arquitecturas Paralelas 6.La red de comunicación de los computadores paralelos. Comunicación mediante paso de mensajes. - Introducción - Redes basadas en conmutadores - Redes basadas en encaminadores - Estrategias de comunicación - Conflictos en la comunicación Arquitecturas Paralelas IF - EHU
Introducción Los sistemas paralelos necesitan un soporte robusto para la comunicación de procesos, sea para acceder a memoria compartida (centralizada, SMP, o distribuida, DSM), o sea para transportar mensajes entre procesos (MPP). Aunque la red de comunicación es, en teoría, independiente del modelo, se utilizan redes adaptadas a cada modelo.
P C bus M Introducción Los multiprocesadores SMP suelen utilizar un bus para acceder a memoria. La latencia de los accesos es inde-pendiente de la posición de memoria a la que se accede: todos los datos están a la misma “distancia” (UMA). Aunque el bus es una red sencilla y fácil de gestionar, tiene problemas de escalabilidad: - no admite más queuna comunicación simultánea. - se satura cuando crece el número de procesadores.
P C M R red general Introducción • Para poder conectar muchos procesadores hay que distribuir la memoria (aunque tal vez sea compartida: DSM). • Hace falta otro tipo de red de comunicación. La latenciade los accesos a memoria o de los mensajesno es constante: la comunicación con los procesadores más cercanos será más rápida. El comportamiento de la red de comunicación es muy importante para minimizar las latencias.
Introducción • Algunas características deseables en las redes de comunicación: que lalatencia de las comunicaciones sea baja. que se permitanmuchas comunicaciones simultáneas (es decir, tener un alto throughput). que pueda seguir en funcionamiento aunque existanfallos(averías) en la red. que sea fácil de construir y ampliar, y que existan algoritmos simples para encontrar los caminos.
Introducción • La infraestructura de comunicación tiene dos partes: - el hardware conexiones, conmutadores, encaminadores de mensajes, interfaces con los procesadores. - el software protocolos de comunicación.
Introducción: topología • La topología representa la forma de la red; es decir, especifica las conexiones entre procesa-dores por medio de un grafo. Componentes del grafo: - nodos: procesadores, o dispositivos especiales para la gestión de mensajes. - arcos: conexiones entre nodos.
Introducción: topología Características topológicas principales: Complejidad - Grado: número de conexiones de los nodos. Si es idéntico en todos, la red es regular. - Simetría: misma visión de la red desde todos los nodos. - Escalabilidad: facilidad de ampliación. Fiabilidad - Tolerancia a fallos. - Conectividad de arcos y nodos: componentes que hay que eliminar para obtener un grafo no conexo.
Introducción: topología Características topológicas principales: Tráfico - Bisección: conexiones que hay que eliminar para dividir el grafo en dos partes iguales. Distancias (latencia) - Distancia media: d = Σ dij / P(P-1) - Diámetro: distancia máxima entre dos nodos.
Introducción: clasificación Dos tipos de redes: 1.Dinámicas - redes de conmutadores - para sistemas SMP (no sólo) - provienen de la red telefónica 2. Estáticas - encaminadores de mensajes (routers) - para sistemas MPP
grado k=2 E0 S0 0 0 S1 E1 1 1 señales de control Redes con conmutadores Conmutador: dispositivo que conecta varias entradas y salidas. E0 → S0, S1 E1 → S0, S1 E0 → S0 E1 → S1 E0 → S1 E1 → S0
Redes con conmutadores 1. Red Crossbar: todos conectados con todos. Cada conmutador conecta una fila y una columna. El coste puede ser muy alto: O(P2)
P0 una permutación P0 proc. proc. (o mem.) Pp-1 Pp-1 Redes con conmutadores 2.Redes multietapa Los conmutadores se organizan en varias etapas, y las conexiones entre distintas etapas se hacen por medio de una “permutación”.
0 0 1 1 0 1 2 2 3 3 2 3 4 4 5 5 4 5 6 6 7 7 6 7 Redes Omega Ejemplo: red Omega Conexiones entre conmutadores: barajado perfecto (perfect shuffle). logk P etapas P/k conmutadores por etapa → en total P/k × logk P conm. Barajado perfecto: [0, 1, 2, ..., P-1] → [0, P/2, 1, P/2+1, ..., P/2-1, P-1] Rotación de un bit: 4 (100) → 1 (001) 5 (101) → 3 (011)
0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 Redes Omega Red Omega Diámetro: logk P Distanciamed.: logk P Simétrica (regular) Grado: 2, 4... (k) Tolerancia a fallos: baja
0 0 0 0 1 1 1 1 2 2 1 3 3 4 4 5 5 6 6 0 7 7 Redes Omega Encaminamiento en la red Omega(routing) ¿Cómo se escoge el camino para ir de i a j? 1 Bits de la dirección destino 0: salida 0 / 1: salida 1 → 6 (110) 2 Registro de encaminamiento: i xor j 0: seguir / 1: cruzar RE = 100 xor 110 = 010
0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 Redes Omega Conflictos de salida La red Omega admite P comunicaciones simultáneas, pero no cualesquiera (red bloqueante). 0 → 1 y 6 → 0? - anular - utilizar búferes - dividir en dos Núm. de permutaciones: P! Se pueden hacer: 2 P/2 logP = P P/2 P=8 →10%; P=16 →0,02%
0 0 BC BC 1 1 2 2 BC 3 BC 3 4 4 BC BC 5 5 6 6 7 BC 7 Redes Omega Broadcast De uno a todos los procesadores
Red Butterfly Otro ejemplo: red Butterfly
procesador/memoria local conexiones de red router Gestor de comunicaciones red de comunicación Redes con encaminadores • La red se forma mediante encaminadores de mensajes(routers). Nodo de una red estática: proc./mem. + encaminador. La distancia entre nodos no es constante. Enlaces bidireccionales.
puertos de entrada puertos de salida enlaces de comunicación enlaces de comunicación func. encam.+ crossbar búferes búferes procesador local procesador local Encaminador de mensajes • Un conjunto de puertos de E/S para recibir y enviar paquetes; un conjunto de búferes para almacenar temporalmente los paquetes; y un autómata para procesar paquetes y asignarles una salida.
Topologías más utilizadas • 1Red crossbar: todos con todos. Compleja de construir y de coste elevado cuando P es grande. Además, el grado de los encaminadores (número de conexiones) no es constante: P-1.
Topologías más utilizadas • 2Redes de una dimensión: cadena y anillo. Grado: Simetría: Toler. Fallos: Diámetro: Distancia media: 2 2, regular no sí un enlace dos enlaces P-1 P/2 P/3 (P grande) [ (P+1) / 3 ] P/4 (P grande) [ P2 / 4(P-1) ]
Topologías más utilizadas • 3Mallas y toros (n dimensiones, k>2 nodos por dim.) k→ P = kn Enlaces: Grado: Simetría: Toler. Fallos: Escalabilidad: n kn-1 (k-1) n kn 2n 2n, regular no sí alta (n) más alta (2n) fácil fácil
Topologías más utilizadas • 3Mallas y toros(n dimensiones, k>2 nodos por dim.) Bisección: Diámetro: Distancia media: kn-1 2 kn-1 n (k-1) n k/2 ~ n k/3 (k grande) ~ n k/4 (k grande)
(xn-1, xn-2, ..., x1, x0) → (xn-1, xn-2, ..., x1, x0) (xn-1, xn-2, ..., x1, x0) ... (xn-1, xn-2, ..., x1, x0) (xn-1, xn-2, ..., x1, x0) 0000 0001 0100 0101 0010 0110 1000 1100 1111 Topologías más utilizadas • 4Hipercubo: caso paticular de una malla de n dimensiones, con sólo dos nodos por dimensión. Enlaces con los nodos cuya dirección se diferencia en un bit.
0000 0001 0100 0101 0010 0110 1000 1100 1111 Topologías más utilizadas • 4Hipercubo: parámetros topológicos Nodos: Enlaces: P = 2n → n = log2 P P/2 log2 P Grado: Simetría: T. Fallos: Escal.: Bisección: n (log2P, no es constante!) sí muy grande difícil P/2 (muy grande) Diámetro: Dist. med.: n ~ n/2 (n grande)
encaminadores procesadores árbol binario (k = 2) fat treeárbol denso Topologías más utilizadas • 5Árboles y árboles densos (fat tree)
Topologías más utilizadas • 5Árboles y árboles densos (fat tree) Grado: Profund.: Simetría: T. Fallos: Escal.: Bisección: k (normalmente, 4) logk P sí grande fácil P/2 Diámetro: Dist. med.: 2 logk P fat treeo árbol denso ~ 2 logk P – 2/(k-1) (P grande)
D d(med) 2D malla 2D toro 3D malla 3D toro Hipercubo Árbol (k = 4) 126 42,7 64 32 45 15,9 24 12 12 6 Resumen de topologías Por ejemplo, P = 4.096 nodos: 12 11,3
Resumen de topologías Elhipercubo tiene parámetros topológicos muy buenos, pero es complejo si el número de procesadores es grande; además, el grado no es constante. Fue la topología de los primeros sistemas MPP (pocos procesadores y la latencia de los mensajes dependiente de la distancia). Las mallas y toros 2D y 3D se utilizan mucho en sistemas MPP: son topologías simples con grado bajo. Los parámetros de distancia son mayores, pero cambió la técnica de transmisión de mensajes y la latencia no depende tanto de la distancia. Se utilizan también árboles (o similares tipo butterfly, para formar cluster-s, Myrinet), aunque son complejos cuando el número de procesadores es muy grande.
Inf. control cola datos cabecera Comunicación La red se utiliza para la comunicación entre procesos, permitiendo el envío de mensajes de proceso a proceso. ¿Cómo se envían esos mensajes? ¿Por dónde? ¿Cómo se escoge el camino?... Estructura de los mensajes (paquetes) Unidad de información (de flujo): un flit (en general, un byte). Tiempo para transmitir un flit, un “ciclo”.
Patrones de comunicación Tamaño de los mensajes En general, hay que transportar mensajes de diversos tamaños. Los mensajes de control suelen ser pequeños (unos bytes); los de datos, mayores (normalmente divididos en paquetes de tamaño fijo). Patrones de comunicación Especifican cuándo y con quién se efectúa la comunicación. Evidentemente, depende de la aplicación.
P. Com. dist. Patrones de comunicación Algunos patrones de comunicación habituales: - Aleatorio: la probabilidad de comunicación entre dos nodos es la misma para cualquier par de nodos y uniformemente distribuida en el tiempo. - Esferas de localidad:hay mayor probabilidad de comunicación con unos nodos que con otros, dependiendo de la distancia (cercanos). - Broadcast, multicast, reporting... -Matriz transpuesta, FFT, perfect shuffle...
Construcción del camino Construcción del camino - Conmutación de circuitos (circuit switching) Antes de enviar el mensaje hay que reservar un camino “privado”, para lo que se envía un mensaje “sonda” hasta el destino. Tras construir el camino, se transmite todo el mensaje (no se divide en paquetes). Por ejemplo: red telefónica. Problemas: hace falta tiempo para generar el camino; y se reservanenlaces de la red, aunque no estén siendo utilizados constantemente.
Construcción del camino Construcción del camino - Conmutación de paquetes(packet switching) El mensaje se divide en varios paquetes de tamaño fijo. Cada paquete tiene información sobre el destino y va hasta el mismo, encaminador tras encaminador, compitiendo con el resto de los paquetes para la utilización de recursos. Por ejemplo: servicio de correos. Problemas: se genera una sobrecarga, porque cada paquete tiene que llevar información de control. Addemás, hay que reconstruir el mensaje en el destino.
Encaminam. de paquetes Encaminamiento de paquetes (routing) ¿Por dónde van los paquetes desde el origen al destino? ¿Cuál es el camino? - ¿Cómo indicar el camino a tomar? registro de encaminamiento, RE (routing record) - ¿Hay un sólo camino? caminos de longitud mínima, pero, ¿cuál?
Encaminam. de paquetes Encaminamiento de paquetes (routing). Dos opciones para llegar al destino: - Indicar en el paquete la dirección absoluta. La información se procesa en los encaminadores intermedios para escoger la salida (tabla, función...). - El paquete lleva el registro de encamina-miento que especifica el camino; normalmente, cuántos pasos dar en cada dimensión. El RE se actualiza en cada encaminador. Se ha llegado al destino cuando todos los componentes del RE son 0.
[2,3] [2,2] [2,1] [2,0] 4 (1,0) [1,0] [0,0] 15 (3,3) Registro de encaminamiento Registro de encaminamiento en una malla X: (xn-1, xn-2, ..., x1, x0) → Y (yn-1, yn-2, ..., y1, y0) Basta con hacer la resta de coordenadas para indicar el número de pasos a dar en cada dimensión. RE = [yn-1 - xn-1, yn-2 - xn-2, ..., y0 - x0] 4 (1,0) → 15 (3,3) RE = [2, 3]
[2,-1] [2,0] 4 (1,0) [1,0] [0,0] 15 (3,3) Registro de encaminamiento Registro de encaminamiento en un toro En cada dimensión hay dos opciones para ir al destino: hacia “adelante” o hacia “atrás”. Nunca se recorre más de medio anillo en cada dimensión. Tras restar las coordenadas, hay que analizar el resultado para escoger el camino más corto en cada anillo: REi > k/2 → REi = REi – k REi < -k/2 → REi = REi + k 4 (1,0) → 15 (3,3) RE = [2, 3] → [2, -1]
[1000] 0000 0001 0100 0101 [1100] 0010 0110 0111 0011 [1110] 1001 1000 1100 1101 [0000] 1110 1111 Registro de encaminamiento Registro de encaminamiento en un hipercubo No hay más que dos nodos en cada dimensión; por lo tanto, sólo se puede dar un paso por dimensión, si las coordenadas de esa dimensión son distintas: RE = [i xor j] 1011 1010 2 (0010) → 12 (1100) RE = [1110]
4 (1,0) 15 (3,3) Elección del camino Estrategias para escoger un camino concreto El registro de encaminamiento no indica un único camino (en general). ¿Cuál hay que utilizar? 1. Encaminamiento estático Se utiliza un único camino para ir de X a Y, y siempre el mismo: DOR. + Es simple + Los paquetes llegan ordenados - No se aprovechan todas las opciones para seguir adelante
4 (1,0) 15 (3,3) Elección del camino Estrategias para escoger un camino concreto 2. Encaminamiento dinámico En cada encaminador se escoge el camino en función del estado del sistema (ojo! hay que utilizar información local). + Se pueden evitar zonas de mucho tráfico (aprovechando la topología de la red) - Es más complejo (hay que decidir) - Los paquetes pueden llegar desordenados - Pueden ocurrir bloqueos
Elección del camino Estrategias para escoger un camino concreto 3.Encaminamiento nomínimo Hay que utilizar en general caminos de longitud mínima. En algunos casos puede ser adecuado utilizar caminos más largos para evitar tráfico o superar averías.
Control del flujo Un paquete contieneL flits (algunos para control y otros para datos). ¿Cómo se transmiten los flits de los paquetes entre encaminadores? ¿Qué hay que hacer con los flits de un paquete que se está transmitiendo? Dos opciones: - Store-and-forward habitual en redes de ordenadores - Cut-through / Wormhole la que se utiliza en multicomputadores
Encaminadores intermed. 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 t 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 Control del flujo: SF Store-and-forward Se transmite el paquete completo (todos los flits) entre encaminadores contiguos. Durante la transmisión se almacena en un búfer interno. Tsf ~ L × d
Encaminadores intermed. 4 3 2 1 4 3 2 1 4 3 2 1 1 4 3 2 2 1 4 3 4 3 2 1 4 3 2 1 Control del flujo: CT / WH Cut-through / Wormhole Tras procesar el primer flit de la cabecera de un paquete, se transmite al siguiente encaminador, sin esperar a la llegada del resto. La transmision del paquete se “segmenta”. Tct/wh ~ L + d
4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 1 4 3 2 4 3 2 1 2 1 4 3 4 3 2 1 4 3 2 1 Control del flujo: CT / WH Cut-through / Wormhole Diferencia: ¿qué hacer si el flit de cabecera de un paquete no puede continuar? Wormhole Todos los flits del paquete se paran donde están. No hay que utilizar búferes.