Transcript tema 6
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 RC-PM 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. Arquitecturas Paralelas IF - EHU 2 RC-PM Introducción Los multiprocesadores SMP suelen utilizar un bus para acceder a memoria. La latencia de los accesos es independiente de la posición de memoria a la que se accede: todos los datos están a la misma “distancia” (UMA). 3 P C bus M Aunque el bus es una red sencilla y fácil de gestionar, tiene problemas de escalabilidad: - no admite más que una comunicación simultánea. - se satura cuando crece el número de procesadores. Arquitecturas Paralelas IF - EHU RC-PM 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. 4 P C M R red general La latencia de los accesos a memoria o de los mensajes no 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. Arquitecturas Paralelas IF - EHU RC-PM Introducción Algunas características deseables en las redes de comunicación: que la latencia de las comunicaciones sea baja. que se permitan muchas comunicaciones simultáneas (es decir, tener un alto throughput). que pueda seguir en funcionamiento aunque existan fallos (averías) en la red. que sea fácil de construir y ampliar, y que existan algoritmos simples para encontrar los caminos. Arquitecturas Paralelas IF - EHU 5 RC-PM 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. Arquitecturas Paralelas IF - EHU 6 RC-PM Introducción: topología La topología representa la forma de la red; es decir, especifica las conexiones entre procesadores por medio de un grafo. Componentes del grafo: - - nodos: procesadores, o dispositivos especiales para la gestión de mensajes. arcos: conexiones entre nodos. Arquitecturas Paralelas IF - EHU 7 RC-PM 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. Arquitecturas Paralelas IF - EHU 8 RC-PM 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. Arquitecturas Paralelas IF - EHU 9 RC-PM 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 Arquitecturas Paralelas IF - EHU 10 RC-PM Redes con conmutadores 11 Conmutador: dispositivo que conecta varias entradas y salidas. grado k=2 E0 0 0 S0 E1 1 1 S1 señales de control Arquitecturas Paralelas IF - EHU E0 → S0, S1 E0 → S0 E1 → S1 E1 → S0, S1 E0 → S1 E1 → S0 RC-PM 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) Arquitecturas Paralelas IF - EHU 12 RC-PM 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”. una permutación P0 proc. Pp-1 Arquitecturas Paralelas IF - EHU P0 proc. (o mem.) Pp-1 13 Redes Omega RC-PM 14 Ejemplo: red Omega Conexiones entre conmutadores: barajado perfecto (perfect shuffle). logk P etapas 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 Arquitecturas Paralelas IF - EHU 0 1 2 3 4 5 6 7 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) RC-PM Redes Omega 15 Red Omega 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 Arquitecturas Paralelas IF - EHU Diámetro: logk P Distancia med.: logk P Simétrica (regular) Grado: 2, 4... (k) Tolerancia a fallos: baja RC-PM Redes Omega 16 Encaminamiento en la red Omega (routing) ¿Cómo se escoge el camino para ir de i a j? 0 1 0 1 0 0 1 1 2 2 3 3 1 4 4 5 5 6 7 0 6 7 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 Arquitecturas Paralelas IF - EHU RC-PM Redes Omega 17 Conflictos de salida La red Omega admite P comunicaciones simultáneas, pero no cualesquiera (red bloqueante). 0 → 1 y 6 → 0? 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 Arquitecturas Paralelas IF - EHU - anular - utilizar búferes - dividir en dos Núm. de permutaciones: P! Se pueden hacer: 2 P/2 log P = P P/2 P=8 → 10%; P=16 → 0,02% RC-PM Redes Omega 18 Broadcast De uno a todos los procesadores 0 BC 1 2 5 BC Arquitecturas Paralelas IF - EHU 3 4 BC BC 5 6 6 7 1 2 BC 3 4 0 BC BC 7 RC-PM Red Butterfly Otro ejemplo: red Butterfly Arquitecturas Paralelas IF - EHU 19 RC-PM Resumen 20 bus Omega Crossbar constante O(logkP) constante O(w/P)→O(w) O(w)→O(w × P) O(w × P) Complejidad de cableado O(w) O(w × P × logkP) O(w × P2) Complejidad de conmutación O(P) O(P/k × logkP) O(P2) de uno en uno algunas permutaciones Latencia Ancho de banda por procesador Capacidad de comunicación Arquitecturas Paralelas IF - EHU broadcast todas las permutaciones RC-PM Redes con encaminadores 21 La red se forma mediante encaminadores de mensajes (routers). procesador/memoria local red de comunicación conexiones de red router Gestor de comunicaciones Nodo de una red estática: proc./mem. + encaminador. La distancia entre nodos no es constante. Enlaces bidireccionales. Arquitecturas Paralelas IF - EHU RC-PM 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. procesador local Arquitecturas Paralelas IF - EHU puertos de salida búferes crossbar func. encam.+ enlaces de comunicación búferes puertos de entrada enlaces de comunicación procesador local 22 RC-PM Topologías más utilizadas 1 Red 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. Arquitecturas Paralelas IF - EHU 23 RC-PM Topologías más utilizadas 2 Redes de una dimensión: cadena y anillo. Grado: 2 Simetría: no Toler. Fallos: un enlace Diámetro: P-1 Distancia media: P/3 (P grande) [ (P+1) / 3 ] Arquitecturas Paralelas IF - EHU 2, regular sí dos enlaces P/2 P/4 (P grande) [ P2 / 4(P-1) ] 24 RC-PM Topologías más utilizadas 3 Mallas y toros (n dimensiones, k>2 nodos por dim.) k→ P = kn Enlaces: Grado: Simetría: Toler. Fallos: Escalabilidad: Arquitecturas Paralelas IF - EHU n kn-1 (k-1) 2n no alta (n) fácil n kn 2n, regular sí más alta (2n) fácil 25 RC-PM Topologías más utilizadas 26 3 Mallas y toros (n dimensiones, k>2 nodos por dim.) Bisección: kn-1 Diámetro: n (k-1) Distancia media: ~ n k/3 Arquitecturas Paralelas IF - EHU 2 kn-1 (k grande) n k/2 ~ n k/4 (k grande) RC-PM Topologías más utilizadas 4 Hipercubo: caso paticular de una malla de n dimensiones, con sólo dos nodos por dimensión. 0000 0001 0010 0100 0101 Enlaces con los nodos cuya dirección se diferencia en un bit. 0110 (xn-1, xn-2, ..., x1, x0) → 1000 1100 1111 (xn-1, xn-2, ..., x1, x0) (xn-1, xn-2, ..., x1, x0) ... (xn-1, xn-2, ..., x1, x0) (xn-1, xn-2, ..., x1, x0) Arquitecturas Paralelas IF - EHU 27 RC-PM Topologías más utilizadas 28 4 Hipercubo: parámetros topológicos 0000 0001 0100 0010 0110 1000 1100 0101 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) 1111 Diámetro: n Dist. med.: ~ n/2 Arquitecturas Paralelas IF - EHU (n grande) RC-PM Topologías más utilizadas 5 Árboles y árboles densos (fat tree) encaminadores procesadores árbol binario (k = 2) Arquitecturas Paralelas IF - EHU fat tree árbol denso 29 RC-PM Topologías más utilizadas 5 Árboles y árboles densos (fat tree) Grado: Profund.: Simetría: T. Fallos: Escal.: Bisección: fat tree o árbol denso k (normalmente, 4) logk P sí grande fácil P/2 Diámetro: 2 logk P Dist. med.: ~ 2 logk P – 2/(k-1) (P grande) Arquitecturas Paralelas IF - EHU 30 RC-PM Resumen de topologías 31 parámetros topológicos (P par, grande) Proc. Grado Simetr. Crossbar P P-1 si P (P-1) 1 1 P2/4 P-1 Omega [conm.] P k si P(logkP+1) [P/k logkP] logkP logkP - - P = kn 2n no n kn-1 (k-1) ~ n k/3 n (k-1) kn-1 n Toro P = kn 2n si nP ~ n k/4 n k/2 2 kn-1 2n Hipercubo P = 2n n (log P) si P/2 logP n/2 n P/2 n P k si k P (logkP) 2/(k-1) 2 logkP P/2 1 Malla (n / k>2) Árbol (fat tree) Arquitecturas Paralelas IF - EHU Enlaces d (med) ~ ~ 2 log P- Dmax Bisec. Arco-con. RC-PM Resumen de topologías Por ejemplo, P = 4.096 nodos: D Arquitecturas Paralelas IF - EHU d(med) 2D malla 2D toro 126 64 42,7 32 3D malla 3D toro 45 24 15,9 12 Hipercubo 12 6 Árbol 12 11,3 (k = 4) 32 RC-PM Resumen de topologías El hipercubo 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. Arquitecturas Paralelas IF - EHU 33 RC-PM Comunicación 34 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) Inf. control cola datos cabecera Unidad de información (de flujo): un flit (en general, un byte). Tiempo para transmitir un flit, un “ciclo”. Arquitecturas Paralelas IF - EHU RC-PM 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. Arquitecturas Paralelas IF - EHU 35 RC-PM Patrones de comunicación 36 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 P. Com. mayor probabilidad de comunicación con unos nodos que con otros, dependiendo de la distancia (cercanos). dist. - Broadcast, multicast, reporting... - Matriz transpuesta, FFT, perfect shuffle... Arquitecturas Paralelas IF - EHU RC-PM 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 reservan enlaces de la red, aunque no estén siendo utilizados constantemente. Arquitecturas Paralelas IF - EHU 37 RC-PM 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. Arquitecturas Paralelas IF - EHU 38 RC-PM 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? Arquitecturas Paralelas IF - EHU 39 RC-PM 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 encaminamiento 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. Arquitecturas Paralelas IF - EHU 40 RC-PM Registro de encaminamiento 41 Registro de encaminamiento en una malla X: (xn-1, xn-2, ..., x1, x0) → Y (yn-1, yn-2, ..., y1, y0) [2,3] [2,2] [2,1] [2,0] 4 (1,0) [1,0] [0,0] 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] 15 (3,3) 4 (1,0) → 15 (3,3) RE = [2, 3] Arquitecturas Paralelas IF - EHU RC-PM Registro de encaminamiento Registro de encaminamiento en un toro [2,-1] [2,0] 4 (1,0) [1,0] [0,0] 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: 15 (3,3) 4 (1,0) → 15 (3,3) Arquitecturas Paralelas IF - EHU REi > k/2 → REi = REi – k REi < -k/2 → REi = REi + k RE = [2, 3] → [2, -1] 42 Registro de encaminamiento RC-PM Registro de encaminamiento en un hipercubo [1000] [1100] [1110] 0000 0001 0100 0101 0010 0011 0110 0111 1000 1001 1100 1101 [0000] 1010 1011 1110 1111 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] 2 (0010) → 12 (1100) Arquitecturas Paralelas IF - EHU RE = [1110] 43 RC-PM Elección del camino 44 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 Arquitecturas Paralelas IF - EHU 4 (1,0) 15 (3,3) RC-PM Elección del camino 45 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). 4 (1,0) + 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 Arquitecturas Paralelas IF - EHU 15 (3,3) RC-PM Elección del camino Estrategias para escoger un camino concreto 3. Encaminamiento no mí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. Arquitecturas Paralelas IF - EHU 46 RC-PM Control del flujo Un paquete contiene L 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 Arquitecturas Paralelas IF - EHU 47 RC-PM Control del flujo: SF 48 Store-and-forward Encaminadores intermed. Se transmite el paquete completo (todos los flits) entre encaminadores contiguos. Durante la transmisión se almacena en un búfer interno. 4 3 2 1 4 3 2 4 3 4 1 t 2 1 3 2 1 4 3 2 1 4 3 2 4 3 4 Tsf ~ L × d 1 2 1 3 2 1 4 3 2 1 4 3 2 4 3 4 1 2 1 3 2 1 4 3 2 1 Arquitecturas Paralelas IF - EHU RC-PM Control del flujo: CT / WH 49 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 Arquitecturas Paralelas IF - EHU Encaminadores intermed. 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 RC-PM Control del flujo: CT / WH 50 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. Arquitecturas Paralelas IF - EHU 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 RC-PM Control del flujo: CT / WH 51 Cut-through / Wormhole Diferencia: ¿qué hacer si el flit de cabecera de un paquete no puede continuar? Cut-through El primer flit se para, pero el resto continúa y los flits se almacenan en los encaminadores, en búferes. 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 4 3 4 1 2 1 3 2 1 4 3 2 1 Arquitecturas Paralelas IF - EHU RC-PM Conflictos: búferes Búferes para paquetes Los encaminadores de mensajes suelen tener espacio para almacenar paquetes (algunos flits). SF → WH → CT → búfer para por lo menos un paquete. espacio de memoria para un flit (puerto de entrada). solución intermedia; hace falta capacidad para almacenar un paquete o algunos flits. ¿Espacio para muchos paquetes? No - no tiene que haber muchos paquetes bloqueados. - el encaminador tiene que ser rápido, es decir, simple. Arquitecturas Paralelas IF - EHU 52 RC-PM Conflictos: búferes ¿Cómo se estructuran los búferes? ¿Compartidos, o distribuidos? Compartidos + se gestiona mejor el espacio de memoria - son más complejos, tienen que aceptar varias entradas y salidas Arquitecturas Paralelas IF - EHU 53 RC-PM Conflictos: búferes ¿Cómo se estructuran los búferes? ¿En las entradas o en las salidas? Salidas + los paquetes no se tratan en orden (mejor rendimiento) - más difíciles de gestionar (entradas múltiples) Arquitecturas Paralelas IF - EHU 54 RC-PM Conflictos: búferes 55 ¿Cómo se estructuran los búferes? ¿Y si se llenan los búferes? líneas de control ¿sitio ? sí / no datos líneas de datos No debe ser una situación habitual, ya que significa que se ha superado la capacidad de comunicación de la red. Sólo para gestionar momentos de mucho tráfico. Arquitecturas Paralelas IF - EHU RC-PM Latencia y Throughput La red de comunicación no es más que un recurso para ejecutar programas en paralelo (otra “unidad funcional”), que tiene que ser lo más eficiente posible. Principales parámetros de calidad: - Latencia de los paquetes: tiempo necesario para realizar la comunicación. - Throughput: el nivel de tráfico que puede aceptar / gestionar la red. Arquitecturas Paralelas IF - EHU 56 RC-PM Latencia y Throughput Algunas definiciones - Anchura de los enlaces (phit): número de bits que se puede transmitir en paralelo (por ejemplo, 8 bits). - Ciclo de transmisión: tiempo necesario para transmitir un phit (un ciclo). - Ancho de banda (bandwidth) de los enlaces, B: cantidad de información transmitible en un segundo. - Tiempo de encaminamiento (routing time), tr: tiempo para procesar la cabecera de un paquete. Arquitecturas Paralelas IF - EHU 57 Latencia y Throughput RC-PM 58 Tiempo de comunicación o latencia (sin tráfico) L: longitud del paquete (en bytes = flits) d: distancia - Store-and-forward Tsf = d × (L/B + tr) - Cut-through / Wormhole Tct = d × (1/B + tr) + (L-1)/B Arquitecturas Paralelas IF - EHU d×L d+L RC-PM Latencia y Throughput 59 Ejemplo: P = 1.024, L = 256 bytes, tr = 1 ciclo D d toro 2D malla 2D 10 5 32 16 62 22 SF máx. med. 2.570 1.285 8.224 4.112 15.934 5.654 CT máx. med. 275 265 319 287 379 299 Arquitecturas Paralelas IF - EHU hipercubo RC-PM Latencia y Throughput 60 Teniendo en cuenta el tráfico de la red Latencia (s) Tráfico máximo Throughput (b/s) Latencia a tráfico 0 Tráfico (b/s) Arquitecturas Paralelas IF - EHU Tráfico (b/s) RC-PM Latencia y Throughput 61 Cut-through versus wormhole Throughput (b/s) Latencia (s) CT WH CT WH Tráfico (b/s) Arquitecturas Paralelas IF - EHU Tráfico (b/s) RC-PM Latencia y Throughput 62 Throughput máximo (tráfico aleatorio) P/2 P/2 NPaq/2 NPaq/2 NPaq: número de paquetes de L flits (bytes) que puede inyectar por segundo cada procesador ABB: ancho de banda de la bisección (= Bisec × B) P/2 × (NPaq × L) × 1/2 = ABB NPaq = 4 × ABB / (P × L) Enlaces de la bisección P = 256 bisección n. max. flit / c. Arquitecturas Paralelas IF - EHU malla 2D toro 2D 16 0,25 32 0,5 hiperc. 8D 128 2 RC-PM Latencia y Throughput Modelo general Tcom = tini + tflit × L R = L / Tcom Rmax = lim R (L→∞) L1/2 = tini / tflit velocidad de transmisión velocidad máxima para obtener la mitad de la veloc. máxima Resumen: componentes del tiempo de comunicación Emisor Arquitecturas Paralelas IF - EHU Comunicación entre encaminadores Proc. paq. T. espera en Receptor búferes 63 RC-PM Problemas de la comunic. El proceso de comunicación es distribuido, y se ejecuta en paralelo en varios encaminadores de mensajes. Por lo tanto, puede aparecer un problema que ya hemos analizado: el bloqueo (deadlock) (livelock, starvation...). Bloqueos: un conjunto de paquetes agota los recursos para seguir adelante (en modo CT, los búferes; en modo WH, los enlaces...), y se queda parado para siempre. Arquitecturas Paralelas IF - EHU 64 RC-PM Problemas de la comunic. Por ejemplo, en modo WH: (0,0) m1: 0,1→2,3 (0,3) m2: 1,3→3,1 m4: 2,1→0,2 (3,0) Arquitecturas Paralelas IF - EHU m3: 3,2→1,1 (3,3) 65 RC-PM Bloqueos: estrategias ¿Qué hacer con los bloqueos? - Utilizar únicamente topologías o estrategias de encaminamiento que no generen bloqueos. - Aceptar que pueden generarse bloqueos, y, cuando se generan, detectarlos y solucionarlos. Las opciones más utilizadas son: Arquitecturas Paralelas IF - EHU 66 RC-PM Bloqueos: estrategias 67 1. El encaminamiento estático ayuda Por ejemplo, si utilizamos el encaminamiento estático DOR, no se generan bloqueos en las mallas. (0,0) m1: 0,1→2,3 (0,3) m2: 1,3→3,1 m4: 2,1→0,2 (3,0) Arquitecturas Paralelas IF - EHU m3: 3,2→1,1 (3,3) RC-PM Bloqueos: estrategias 68 2. Pero no es suficiente si la propia topología tiene ciclos. 3→1 0 Arquitecturas Paralelas IF - EHU 2→0 3 0→2 1 2 1→3 RC-PM Bloqueos: estrategias 69 3. Canales virtuales Para no mantener bloqueados los enlaces de los encaminadores, los búferes se dividen en dos (o más) clases. CV0 B0 B0 B1 B1 CV1 Arquitecturas Paralelas IF - EHU RC-PM Bloqueos: estrategias 3. Canales virtuales Doble objetivo: 1 Mejorar la eficiencia: si un paquete no puede seguir, no parar un paquete que viene por detrás y que tiene el camino libre. 2 Evitar las situaciones de deadlock. Arquitecturas Paralelas IF - EHU 70 RC-PM Bloqueos: estrategias 71 3. Canales virtuales 2 Evitar situaciones de deadlock 0 0→2 Arquitecturas Paralelas IF - EHU 3→1 2→0 3 2 CV0 1 CV1 1→3 RC-PM Problemas de la comunic. En resumen Mallas, DOR → no hay bloqueo Toros, DOR, 2 canales virtuales → no hay bloqueo 4. Pero, ¿se puede utilizar el encaminamiento dinámico sin bloqueos? - mallas virtuales - giros controlados (turn model) - caminos seguros - controlar la inyección de paquetes Arquitecturas Paralelas IF - EHU 72 RC-PM Problemas de la comunic. 73 4a. Mallas virtuales (2D) - Añadir dos canales virtuales por cada canal físico. - Clasificar los paquetes en cuatro categorías, en función de las posiciones de los destinos: NE, ES, SW, WN. N0 - Generar cuatro mallas virtuales: NE: N1-E0 ES: E1-S0 SW: S1-W0 WN: W1-N0 N1 W1 E0 W0 E1 S1 S0 - En cada malla virtual los paquetes pueden tomar cualquier camino, ya que no se pueden formar ciclos. Arquitecturas Paralelas IF - EHU RC-PM Problemas de la comunic. 74 4b. Turn model (mallas) - Hay que hacer cuatro giros para formar un ciclo. Cuando se utiliza encaminamiento estático (DOR) dos de ellos están prohibidos. - Basta con prohibir uno para que no se generen ciclos; p.e, prohibido girar al oeste: - si no van hacia el oeste, como quieran; - si no, recorrer inicialmente el camino hacia el oeste. Arquitecturas Paralelas IF - EHU west-first RC-PM Problemas de la comunic. 4c. Caminos seguros (red segura + no segura) En este caso se acepta que los paquetes se puedan bloquear. Cuando ocurre, se detecta y se soluciona el problema. Por ejemplo, en mallas y los toros: - 2 canales virtuales (2D), para generar dos redes virtuales. - Los paquetes se inyectan en una red y se mueven libremente. La otra red se utiliza para moverse en modo seguro (por ejemplo DOR, en una malla 2D). - Si un paquete se bloquea, se le hace pasar a la red segura, en la que avanzará hasta llegar al destino. Arquitecturas Paralelas IF - EHU 75 RC-PM Problemas de la comunic. 4c. Caminos seguros Ojo: ¿cómo detectar el bloqueo? Por ejemplo, tras pasar cierto tiempo sin movimiento. 4d. Controlar la inyección de paquetes Ocurren bloqueos porque se acaban los recursos. Por lo tanto, los encaminadores rechazarán un paquete si en caso de que lo acepten se llenan los búferes. De esta manera, los recursos no se terminarán nunca (Mare Nostrum). Arquitecturas Paralelas IF - EHU 76 RC-PM Problemas de la comunic. En resumen - Mallas, DOR - Toros, DOR, 2 canales virtuales → no hay bloqueo → no hay bloqueo Encaminamiento dinámico: - En general, 1 canal virtual por dimensión en una malla, y 2 en un toro. - Otras estrategias. - Tal vez, topologías que no generan ciclos: árboles! Ojo: el encaminador tiene que ser simple, para procesar paquetes lo más rápido posible. Por lo tanto, puede que el encaminamiento estático sea suficiente! Arquitecturas Paralelas IF - EHU 77 RC-PM Problemas de la comunic. Otros problemas Livelock Los paquetes van adelante y atrás, pero no consiguen llegar al destino. Pueden aparecer problemas si se desvían paquetes de los caminos mínimos “para no perder tiempo”. La causa puede estar relacionada con las prioridades. Starvation Algunos procesadores no consiguen inyectar sus paquetes en la red porque hay mucho tráfico alrededor. Arquitecturas Paralelas IF - EHU 78 RC-PM Protocolos de comunicación 79 Recuerda que en el proceso de comunicación toman parte muchos elementos. interfaz + procesador (+SO?) P1 P2 red + encaminadores El proceso más lento de la comunicación acotará la velocidad de comunicación del sistema. Arquitecturas Paralelas IF - EHU RC-PM Protocolos de comunicación Hemos tenido en cuenta únicamente la transmisión de paquetes. Pero el interfaz “procesador/red” es también muy importante: ¿cómo se inyectan los paquetes en la red? ¿cómo salen? Hay varios protocolos de comunicación para regular esos procesos: - El más simple, TCP/IP - Más eficientes: protocolos de 0 copias estandares: VIA, Infiniband... propietario: gm (myrinet)... Arquitecturas Paralelas IF - EHU 80 RC-PM Protocolos de comunicación 81 1. TCP / IP reliable / connection oriented Protocolo de los primeros clusters (y los de bajo rendimiento). Implementación habitual: memoria usuario c. mem. sistema Int. SO Arquitecturas Paralelas IF - EHU c. mem. sistema memoria usuario Int SO RC-PM Protocolos de comunicación 82 Ojo: la sobrecarga debida al sistema operativo y a las copias puede ser muy grande. sobrecarga del protocolo tiempo de transmisión 10 Mb/s Arquitecturas Paralelas IF - EHU 100 Mb/s 1 Gb/s RC-PM Protocolos de comunicación 2. VIA (virtual interface architecture) Estándar de comunicación de los principales fabricantes. No se hacen copias en la memoria del sistema operativo; se trabaja directamente con los encaminadores: -- antes de enviar un mensaje se reserva sitio en la memoria física, en el emisor y en el receptor. -- las operaciones send/receive envían un descriptor a una cola para procesar paquetes. -- podemos esperar a la confirmación, o seguir trabajando. Son protocolos de bajo nivel, con implementaciones nativas o emuladas. Arquitecturas Paralelas IF - EHU 83 RC-PM Infiniband 3. InfiniBand (IBA) Objetivo: infraestructura de comunicaciones de altas prestaciones, basada en conmutadores (intra) y encaminadores (inter), para componer redes SAN (reemplazar el bus compartido). - Se utilizan adaptadores especiales para conectar nodos: HCA (nodos de computación) o TCA (nodos auxiliares). - Para conectar nodos de redes locales se utilizan conmutadores y para conectar redes locales entre ellas se utilizan encaminadores. - Los enlaces son de 2,5 Gb/s de un solo sentido, punto a punto. Arquitecturas Paralelas IF - EHU 84 RC-PM Arquitecturas Paralelas IF - EHU 85 RC-PM Myrinet 4. Myrinet Infraestructura de comunicación de alto rendimiento (caro). Enlaces de 10 Gbit/s (full duplex), fibra óptica. Conmutadores en un crossbar (red Clos). Cut-through. Software propio para gestión de mensajes (GM). Implementaciones de Gbit ethernet / Via / Infiniband. Latencias de paquetes pequeños: 1,2 µs (Gigabit, 50 µs) Throughput máximo 9,6 Gbit/s Arquitecturas Paralelas IF - EHU 86 RC-PM Myrinet Arquitecturas Paralelas IF - EHU 87 RC-PM Myrinet Arquitecturas Paralelas IF - EHU 88 RC-PM Myrinet Arquitecturas Paralelas IF - EHU 89 RC-PM | Protocolos de comunicación OJO: si se utilizan PCs para crear un cluster, la conexión entre la red y los nodos se hará mediante el bus PCI. ¡Puede que sea ese bus el que limite la velocidad de la comunicación, y no los componentes de la red! any questions? PCI → 32 bits / 33 MHz -- 64 bits / 66 MHz please, d’ont forget exercices! 110 - 480 MB/s PCI-X → 1 GB/s (2.0 → 4 GB/s) PCI Express → 200 MB/s por canal (× 32 → 6,4 GB/s) Arkitektura Paraleloak IF - EHU