INTRODUCCIÓN CONECTIVIDAD COPROCESAMIENTO MÁQUINAS MIMD MÁQUINAS SIMD arqAva Curso 18/19 Horas 5 8 3 1 INTRODUCCIÓN CONECTIVIDAD COPROCESAMIENTO MÁQUINAS MIMD MÁQUINAS SIMD PARALELISMO INTERNO
arqAva Temario Conectividad-2 “Designing Network On-Chip Architectures …” José Flich y …- 2011 [Capítulos 1 y 4] “Principles and Practices of Interconnection ...” William James Dally y … - 2004 [Cap: 1,2,3,22] CONECTIVIDAD Introducción Conceptos Clasificación de las redes Caracterización por Grafos Perfiles de comunicación Redes de medio de transmisión compartido (Buses) Redes directas (estáticas ) Encaminamiento Array lineal, anillo, ..., hipercubo Redes indirectas (dinámicas) Crossbar, redes multietapa ()
arqAva Introducción Conectividad-3 QUEREMOS MÁS VELOCIDAD: A menor Grano, mayor Grado TAREA µP1 µP2 µP3 µP4 µP5 ! AUMENTAN LAS NECESIDADES DE COMUNICACIÓN !
arqAva Introducción Conectividad-4 Comunicación Hw <===> Comunicación Sw Memoria Común (Load/Store) Comunicar µPi y Memoria Paso Mensajes (Send/Receive) Comunicar Pi con Pj µP1 µP2 µPi µPn R E D M1 Mj Mk P1 P2 Pi Pn R E D Es fundamental la distinción entre Memoria Común y Memoria No Común: cuestión que nos acompañará a lo largo de todo el semestre en esta asignatura. En el caso de Memoria Común, los procesos cooperantes pueden comunicarse (transmitirse información) escribiendo y leyendo del espacio de memoria común. En el caso de Memoria No Común, no queda más remedio que utilizar un mecanismo de envío recepción de mensajes. En principio, es más rápido el acceso a un dato en la memoria común que intentar obtener el dato (que está en la memoria de otro core a la que no tengo acceso directo), mediante la recepción de un mensaje. Cuando se trata de Memoria Común, no basta leer y escribir en memoria para comunicarse información, sino que tendremos que utilizar mecanismos de acceso seguro a datos comunes como los ya vistos en Programación Concurrente (Regiones críticas, Semáforos, Monitores, etc.) En el caso de Memoria Común, se toleran accesos simultáneos. La memoria se divide en módulos y si hay dos accesos a dos módulos distintos, pueden servirse a la vez (veremos algo de esto en el tema de SIMD). En este modelo podría pensarse que el número de módulos debería ser igual al de cores (por ejemplo 4 y 4), sin embargo suele haber muchos más módulos que cores (la idea que subyace es que disminuya la probabilidad de que dos o más accesos simultáneos a memoria lo sean a un mismo módulo de memoria –en cuyo caso habría que serializar los accesos-). El ancho de banda suele ser bastante conocido, no así la latencia. La latencia puede definirse como el tiempo que tarda en llegar la primera información desde un nodo origen a un nodo destino, a veces se dice que es el tiempo que se tarda en enviar un mensaje de tamaño cero. Hoy por hoy, la latencia que se observa en Internet es mucho más elevada y variable que la que se exige a un sistema paralelo (supercomputador). Es muy importante la Latencia y el Ancho de banda
arqAva Introducción Conectividad-5 http://www.euroben.nl/reports/overview13.pdf ¿Consumo? Coste * 50 Gigabit Ethernet 0,1 29..120 24 x 5.500$ Intel OPA [Omni Path] 12,3 0,7 2016 Mellanox Infiniband 200 25 0,09 2018 40 x 14.254$ 38,4 GB/s 12,3 GB/s 40 MB/s Aquí podemos apreciar cómo varía la latencia y el ancho de banda en distintos tipos de redes y sistemas. En nuestras mediciones basadas en Gigabit Ethernet (práctica 0 de MPI), la latencia se medirá con MPI sobre UDP. En el resto de casos la latencia suele medirse a más bajo nivel y con protocolos, a veces, propietarios. Puede apreciarse cómo el ancho de banda de un supercomputador TOP10 es 300 veces mayor que el observado en una red Internet de alta velocidad en un domicilio privado. También aumenta, en este caso del orden de 3 veces más, cuando medimos el ancho de banda en la conexión directa entre procesadores que residen en la misma placa. Aunque no se ve en la figura, el ancho de banda todavía aumenta más entre los cores que tienen internamente los procesadores de hoy en día. En cualquier caso, tomar todas estas cifras como orientativas.
arqAva Introducción Conectividad-6 www.mellanox.com/related-docs/whitepapers/WP_Introducing_200G_HDR_InfiniBand_Solutions.pdf
arqAva Introducción Conectividad-7 2005: 30% consumo energía dinámica del chip y subiendo 2010: 2,2 Km/cm2 de cables dentro de un MPSOC ¡ LA RED TIENE UNA IMPORTANCIA VITAL !
arqAva Introducción Conectividad-8 LAN WAN Sistema Placa ChipMulticore En la asignatura de Redes de Computadores se ha visto bastante de redes LAN, WAN y TCP/IP. Nosotros nos centraremos en otro ámbito. Echaremos un vistazo a un ejemplo de máquina integrada en un único armario donde visualizaremos tres niveles de red: Sistema, Placa y Chip. En su configuración máxima llegó a albergar 5.832 cores
arqAva Introducción Conectividad-9 Sistema 36 placas www.sicortex.com SC5832 27 nodos Placa Chip 6 núcleos Esta máquina se anunció en el verano de 2007 por la empresa SICORTEX con un precio de 2,7 millones de dólares. En su configuración máxima disponía de 36 placas, cada una de ellas tenía 27 procesadores multinúcleo con 6 núcleos cada uno. En total albergaba 36 x 27 x 6 => 5.832 núcleos. Una de sus características novedosas era la red que utilizaron (grafo de Kautz) que veremos más adelante, así como su énfasis en el bajo consumo y hacer más accesible la supercomputación. Un supercomputador del TOP10 tiene una estructura similar, pero con muchos armarios que albergan muchos procesadores. Como ejemplo, el supercomputador Jaguar (número 1 en Nov/2009), tenía nodos con dos procesadores multinúcleo (8 núcleos por procesador), en cada “blade” placa se pinchaban 4 nodos y en un “rack” armario se ubicaban 24 placas. Finalmente se unían 200 armarios para configurar el supercomputador.
arqAva Introducción Conectividad-10 72 núcleos 96GB 100GF => 19.000€ Como curiosidad indicar que, aparentemente, la quiebra fue producto de salir al mercado coincidiendo con la aparición de la crisis financiera del 2008. 27/Mayo/2009: Quiebra
arqAva Introducción Conectividad-11 IBM Sequoia #1 Jun/12 1.572.864 Nodos 16c Tom Willis Sep/2007 Intel Connects Cables Aquí tenemos otro ejemplo de uno de los mayores supercomputadores de su momento. Aunque maree la cifra de 1.572.864 nodos conectados entre sí, hay que tener en cuenta: Cada procesador es multinúcleo de 16 cores. Serían ya 98.304 procesadores conectados entre sí Al más alto nivel, los armarios están compartimentados en cuatro agrupaciones conectadas en Toro3D (veremos este tipo de red más adelante), de forma que en cada Toro3D se conectan entre sí finalmente 24.576 procesadores
arqAva Introducción Conectividad-12 LAN/WAN Internet Multiprocesadores … Millones de nodos Cientos .. Miles # Nodos dinámico Fijo Enlaces largos Cortos Red irregular Regular Latencia alta Baja Defectos Tolerancia a fallos Áreas con frec. Reloj distintas NOC’s No tan regular En esta transparencia vemos algunas diferencias entre las redes ya vistas (LAN/WAN) y las que ahora nos ocupan con los supercomputadores. Aunque algunos supercomputadores superan el millón de cores, nada que ver con el tamaño de Internet. Uno de los efectos del inmenso tamaño de Internet es que las direcciones IPV4 se agotaron alrededor de Sep/2012 (teniendo en cuenta que una dirección son 32 bits, el máximo de direcciones serían 4.000 millones). En 2012 había unos dos dispositivos conectables a la red por cada persona y en el 2017 se aumentó a tres dispositivos por persona. Hay que tener en cuenta que la población mundial en 2019 se estima en torno a 7.647 millones de personas.
arqAva Conceptos Conectividad-13 CLASIFICACIÓN DE LAS REDES MEDIO DE TRANSMISIÓN COMPARTIDO DIRECTAS vs INDIRECTAS TOTAL vs PARCIALMENTE CONECTADAS CARACTERIZACIÓN POR GRAFOS GRADO Y DIÁMETRO PERFILES DE COMUNICACIÓN 1 => 1; N => N; 1 => N; N => 1 Esta transparencia y las siguientes que la desarrollan es un rápido repaso de conceptos de redes, sobre todo desde el punto de vista topológico.
arqAva Clasificación de las Redes Conectividad-14 Medio de Transmisión Compartido: Ponerse de acuerdo en su uso (maestro/esclavo, …) Redes inalámbricas Redes locales Ethernet Token Ring Buses (Backplane) µP1 M1 µP2 µPi µPn Mj Mk Síncronos vs asíncronos Multiplexados Arbitraje del bus
arqAva Clasificación de las Redes Conectividad-15 Redes directas: Conexiones fijas entre los elementos (Pi, Pj) “invariables durante la ejecución” Acoplamiento débil P1 P4 P2 P3 Amplio uso en multicomputadores Los propios Nodos encaminan Los caminos del origen al destino pueden ser distintos Se dice que son sistemas de acoplamiento débil ya que cada nodo suele comunicarse directamente con unos pocos vecinos (2, 4, 6 es lo más habitual). Aunque se utilizan mucho en multicomputadores, también aparecen en redes de multiprocesadores incluso dentro de un único procesador multinúcleo (donde se ha sustituido del bus por una red directa punto a punto). En la mayoría de las redes directas que veremos, existirán múltiples caminos que conectan a unos nodos con otros. Esta característica es útil para gestionar la congestión y la tolerancia a fallos, pero nosotros apenas entraremos en estos aspectos.
arqAva Clasificación de las Redes Conectividad-16 Redes indirectas: Conexiones varían entre los elementos (µPi, Mj) “variables durante la ejecución” µP1 µP2 µPi µPn R E D M1 Mj Mk Red Telefónica Acoplamiento fuerte Amplio uso en multiprocesadores Encamina la propia red
arqAva Clasificación de las Redes Conectividad-17 Totalmente conectadas: “Cada elemento tiene conexión directa con los demás” Parcialmente conectadas: ¡ conexas ! Latencia mínima (Lm) Menor coste O(n) Mayor latencia (2Lm) Encaminar más complejo Alto coste O(n2) No escalable Jerarquizadas: Aislar tráfico por “localidades” En el caso de Internet estamos muy habituados al aislamiento del tráfico por “localidades”. En el caso de supercomputadores también es muy interesante el poder particionar la máquina en zonas aisladas lo que permite ejecutar más eficientemente aplicaciones muy demandantes de cómputo (utilizan a lo mejor 1024 cores) junto a otras menos exigentes (utilizan 128 cores) y que no se entorpezcan entre sí.
arqAva Caracterización por Grafos Conectividad-18 Nodos => µP y/o Bancos de Memoria Aristas => Enlaces de comunicación Grado de un nodo: Líneas incidentes (Si unidireccionales Ge + Gs) 1 2 3 4 A B C D E Relacionado con el número de puertos E/S y, por lo tanto, con el coste ? Deseable constante y pequeño Grado de la red: El del nodo con mayor grado (4) Deseable regularidad Más conectividad => Menor latencia Mayor coste A no ser que se diga lo contrario, consideraremos todos los enlaces bidireccionales. Tan sólo en uno de los tipos de redes que veremos (grafo de Kautz) los enlaces serán unidireccionales dándose el caso de que un nodo puede enviar por un enlace directo información a otro nodo, pero no recibirla directamente de dicho nodo. Como ya dijimos el grado (número de enlaces de cada nodo) será pequeño (en general de 4 para las redes en dos dimensiones y de 6 para las de 3 dimensiones) Compromiso en el Grado Menor conectividad => Más latencia Menor coste
arqAva Caracterización por Grafos Conectividad-19 1.971 16 4004 Xeon MP 2.004 603 M 68000 64 1.989 ¡Muchos hilos! i7 7th 1.151 2.016 IMST805 84 1.996 2.001 Pentium III 370 2.011 2.017
arqAva Caracterización por Grafos Conectividad-20 Diámetro de la red: Camino más distante de entre los mínimos que unen a dos nodos cualesquiera. Métrica => Número de saltos => 2 ¿1, 2, 3, ......? ¿5? => 2, 5, 4, 8, 7, 6 1 4 7 6 5 9 2 8 3 4 => 2, 5, 4, 3, 6 más corto Relación directa con la latencia En las redes dentro de un chip (NOC’s) suele distinguirse entre: “Hop count” que sería el número de saltos y “Diameter” que sería el número de ciclos. En el primer ejemplo de la transparencia hemos decidido que la métrica sea el número de saltos, que en este caso decimos que es 2. Sin embargo, a veces se dice que es 3 ya que el envío de un mensaje del nodo de la izquierda al que está a la derecha del todo significa atravesar 3 routers. Nosotros hablaremos siempre del número de enlaces atravesados para ir desde el nodo origen al nodo destino. En nuestro caso, a diferencia de Internet, tiene mucho sentido tomar esta métrica ya que, en un supercomputador, los enlaces suelen ser todos del mismo ancho de banda. En Internet se utilizan algoritmos sofisticados de descubrimiento de rutas mínimas que además caducan con el tiempo. En nuestro caso es más sencillo ya que la topología es regular y se configura de forma estática al montar la máquina o se reconfigura en frío.
arqAva Perfiles de Comunicación Conectividad-21 Enlaces de comunicación establecidos concurrentemente. 1 => 1 Ventanilla única Bus Común N => N Varias Ventanillas T.V. News 1 => N Difusión, Broadcast, Multicast Reducción N => 1 Máquinas CRCW Tener en cuenta que un Bus Común también admite la difusión (1 N). El ejemplo típico de perfil (N N) sería el de un switch. Un ejemplo típico de perfil (1 N) sería Ethernet en su definición original. El perfil N 1 parece el más raro. No obstante, en el modelo de máquina paralela PRAM “Parallel Random-Access Machine), se definen los modelos: EREW Lectura y Escritura Excluyente CREW Lectura Concurrente y Escritura Excluyente ERCW Lectura Excluyente y Escritura Concurrente CRCW Lectura y Escritura Concurrente Parece raro permitir una máquina donde sucedan dos o más escrituras concurrente (se entiende que sobre la misma posición de memoria). Sobre una máquina de este tipo es posible escribir algoritmos paralelos siempre y cuando esté determinado qué sucede ante una escritura concurrente: por ejemplo, dos procesos pueden querer escribir un 5 sobre una posición de memoria al mismo tiempo que otro quiere escribir un 3. Podría optarse, entre otros algoritmos: Escribir el valor mayoritario (5 en nuestro caso) Escribir la suma de los valores (13 en nuestro caso)
arqAva Redes Medio Compartido (Bus) Conectividad-22 Mj Mk µP2 µPi µPn ¿Cuántos Pi podré instalar? $ ¡ Cachés ! Pentium 4 a 3,8GHz Bus de 64 bits y 800MHz ¿Un único Pi satura el Bus? µP1 98% Hit ¡ Algunos problemas ! µP2 µPn colisiones Fallo costoso Como se ve en la figura, según vamos conectando más núcleos al bus común, más ancho de banda consumimos del mismo hasta llegar a un momento en el que le saturaremos. Un ejemplo de cómo fueron saliendo máquinas multiprocesador con varios núcleos es el siguiente: 1966 El UNIVAC 1108 contaba con 3 procesadores Década de los 80: Encore ..20; Sequent ..30 y SGI ..36 2011 Máximo 16 núcleos para que pueda ser eficiente Para procesar un archivo MPEG se requieren unos 5GBps (Giga Bytes por segundo) de accesos a Memoria Principal. Vamos a echar nosotros unas cuentas muy burdas partiendo de un procesador algo antiguo, pero que nos permitirá ilustrar el problema de escalabilidad del Bus Común. ¡ Con mucho esfuerzo ! ¿ Niveles cache ? 2011: Máx cores ≤ 16
arqAva Redes Medio Compartido (Bus) Conectividad-23 Pentium 4 a 3,8GHz Bus de 64 bits y 800MHz ? ¿Ancho de banda? 8 * 800 = 6,4GBs Instrucciones Datos ? 1 29 2 50 3 65 4 42 5 43 6 12 7 37 TMedio inst ≈ 4 Bytes Sea 1GHz 4 GBs Lo primero será calcular la capacidad (Ancho de Banda) el bus, que viene determinada por la frecuencia que rige dicho bus (800MHz) y el ancho del bus (64 bits = 8 Bytes). En definitiva 8 * 800 6,4GBps. El Ancho de Banda del bus se consume (si no tenemos en cuenta la E/S) por los accesos de los procesadores a dicho bus que se corresponden con accesos para extraer instrucciones y accesos de las propias instrucciones en ejecución para leer o escribir valores en la memoria. Para simplificar las cuentas, supondremos que la frecuencia del procesador es de 1GHz lo que se traduciría en el intento de extraer 109 instrucciones para su ejecución cada segundo. Las instrucciones de un procesador tipo Pentium 4 son de longitud variable. En el escueto ejemplo de código ensamblador mostrado, nos sale un tamaño medio de 3,72 Bytes por instrucción que redondearemos a 4 Bytes. Con estos datos, el consumo de ancho de banda debido a la extracción de instrucciones sería de: 109 x 4 = 4GBps.
arqAva Redes Medio Compartido (Bus) Conectividad-24 Pentium 4 a 3,8GHz Bus de 64 bits y 800MHz ? ¿Ancho de banda? 8 * 800 = 6,4GBs Instrucciones Datos ? ¿Cuántos? ¿Tamaño? En procesadores RISC: ALU 40% Load 25% Store 15% Saltos 20% Cuántos Tamaño – PTLsim + bzip2 TMedio dato ≈ 4 Bytes Sea 1GHz 1,6 GBs Para calcular el Ancho de Banda consumido en accesos (lectura o escritura) debidos a la ejecución de las propias instrucciones habría que calcular cuántas instrucciones provocan accesos a memoria y de qué tamaño medio son esos datos. Aunque el Pentium 4 no sea un procesador RISC puro, podemos acudir a los datos típicos de una arquitectura RISC, que nos dice que el 40% de las instrucciones ejecutadas por un programa serán de acceso a memoria (un 25% lecturas y un 15% escrituras). Es decir, de las 109 instrucciones, 0,4x109 serán de acceso a memoria. Con un simulador de un procesador similar al Pentium 4 (PTLsim) se observó la ejecución de una parte de la ejecución del programa bzip2 y se comprobó que el tamaño medio de los datos que se leían o escribían también eran de unos 4 bytes. Haciendo cuentas, nos saldrían: 0,4x109 x 4 1,6 GBps. Si sumamos los dos anchos de banda consumidos por instrucciones y datos nos daría 5,6 GBps. Como el ancho de banda del bus es de 6GBps, no podríamos poner ni siquiera otro procesador más. Obviamente, en estos datos se ha obviado que los procesadores actuales (y desde hace muchos años), disponen de una jerarquía de niveles de memoria caché. Supuesto que la tasa de éxito (acierto en caché) fuese del 98% (cifra más que razonable por término medio), el consumo de ancho de banda de un único procesador bajaría a 5,6 * 0,02 0,112. Es decir daría para poner 57 procesadores ¡¡¡ OJO: cálculo muy burdo !!! + 4 GBs = ¡¡ 5,6GBs !!
arqAva Redes Medio Compartido (Bus) Conectividad-25 ¿ Cuánto hit en cache “ld” ? Simulación con: PTLsim/X arquitectura tipo x86-64 L1D = 16KB [128 conjuntos, 4 vías] SPEC CPU2006 400 millones de instrucciones simuladas Benchmark L1D L2 L3 88,3 65,2 22,7 L* 98,0 %Hit 16K 256K 4M L1I 32K => 99,5% En esta transparencia puede comprobarse cómo el 98% de tasa de éxito no es nada descabellada. Se muestran datos de tasas de éxito observadas con el simulador PTLsim sobre un conjunto de programas de pruebas (SPEC 2006).
arqAva Redes Medio Compartido (Bus) Conectividad-26 Shared L2 cache L2 cache controler Shared Bus µP1 M1 Mj Mk µP2 µPi µPn L Shared L3 cache L3 cache controler Shared Bus En esta transparencia puede apreciarse una forma de estructurar dos o tres niveles de cache en procesadores multinúcleo. Al último nivel de cache (L2 arriba y L3 abajo) se le denomina LLC (Last Level Cache) y es el que interactúa a través del bus para mantener la coherencia de las cachés y la memoria principal como veremos en un tema posterior. ¿Nuestros clusters?
arqAva Redes Medio Compartido (Bus) Conectividad-27 Lab4405 PC1..PC5 PC10..PC12 PC6..PC8 L1I = L1D = 32KB L2*= 256KB lab4401-1 .. lab4401-19 L3 = 6MB y MP = 8GB En el caso de nuestros dos clusters (Lab4401 y Lab4405), los PC’s más antiguos [PC1 a PC5 y PC10 a PC12] no son quadcores nativos, si no que vienen de juntar dos dualcores, de ahí que cada conjunto de dos cores [0, 1] y [2, 3] disponen de una caché de nivel dos compartida de 4MB o de 2MB. Desde el core 0 y core 1 no se ve la caché de los cores 2 y 3 y viceversa. En el caso del PC6..PC8 y los PC’s (todavía más modernos) del Lab4401, el último nivel de caché (L3) es común a todos los cores “Smart Cache” en terminología Intel.
arqAva Redes Medio Compartido (Bus) Conectividad-28 Bus pipelining Pedir bus Arbitrar Dar bus Usar bus AR ARB AG RQ ACK 1 2 3 4 5 P 1 2 3 4 5 6 RPLY Write Read ¿Cuántos ciclos 2W y 4R? 34 Con pipeline mejor read 1 write 2 write 3 read 4 read 5 read 6 bus ocupado AR ARB AG RQ RPL Stall P ACK 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 En este ejemplo donde el acceso al bus se divide en fases como en un pipeline, la operación de escritura se divide en cinco fases y la de lectura en seis, que significan: AR Petición al árbitro ARB El árbitro toma una decisión (elige a quién atender de las múltiples peticiones que haya) AG El árbitro concede el bus al elegido en la etapa anterior RQ Solicitud de acceso por parte del dueño del bus (dirección del dato a leer o escribir) ACK Respuesta del sistema de memoria indicando que el dato a escribir se ha cogido del bus P Etapa necesaria en el caso de lectura para dar tiempo a la memoria a buscar el dato RPL Respuesta del sistema de memoria indicando que el dato a leer se puede coger del bus Hay que tener en cuenta que durante las etapas (AR/ARB/AG) pueden simultanearse las solicitudes por parte de más de un procesador. Sin embargo, en las etapas de uso del bus (RQ, ACK y RPLY) tan sólo un procesador puede estar accediendo al bus. Con este escenario, pueden lanzarse dos lecturas seguidas (por ejemplo Read4 y Read5) ya que no coinciden en sus accesos al bus. Sin embargo, nunca pueden dejarse progresar dos escrituras seguidas ya que colisionarían en su acceso al bus. ?
arqAva Redes Medio Compartido (Bus) Conectividad-29 Split transaction: Pipelining + Dividir la transacción en dos read 1 resp 1 write 2 ack 2 write 3 ack 3 read 4 resp 4 read 5 resp 5 read 6 resp 6 AR ARB AG RQ Stall 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 RPL ACK ¿ Mejora ? RqA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 RpA RqB RpB RqC RpC Transacciones variables: 1..6 ciclos En el caso de transacción dividida, puede suceder (como en el caso de la figura inferior izquierda), que la finalización de las peticiones de lecturas y escrituras se desordenen, razón por la que el control del bus debe gestionar etiquetas de las peticiones pendientes con marcas de tiempo que permitan resolver el desorden. El servidor SUN E 6000 data de finales de los noventa. 8 peticiones pendientes en SGI 112 peticiones pendientes en SUN E 6000 RpA RqA RqB RqC RpB RpC
arqAva Redes Medio Compartido (Bus) Conectividad-30 Modo ráfaga (Burst): Transacciones largas (línea de caché) Normal Arb 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Cmd Dir Dato Arb Cmd Dir Dato Ráfaga ¿ Inconveniente ? arbitraje mensaje A mensaje B GrA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Cmd Dir Dato GrB ReA Eti Mensaje más prioritario Mensaje continuado Valores típicos de una línea de caché son 64 bytes y con tendencia a crecer. Si una línea de caché fuesen 32 bytes y el ancho del bus de datos de 8 Bytes, una transferencia de línea de caché entre la memoria principal y el LLC supondrían 4 accesos al bus. Con el modo ráfaga, como los 4 accesos lo serían a direcciones consecutivas, podría indicarse la dirección inicial marcando ráfaga de 4 accesos seguidos a partir de la dirección inicial. En muchos microprocesadores se dispone de técnicas de prefetch avanzadas que pueden detectar que los accesos son a posiciones consecutivas de memoria y cargar, por ejemplo, dos líneas de caché seguidas en vez de una. Todo esto hace más interesante (eficiente) el modo ráfaga. El mayor inconveniente es que puede haber eventos de alta prioridad (por ejemplo una acción relacionada con la coherencia de las cachés “invalidación” de un dato), que se puede ver ralentizada por una ráfaga larga de acceso a memoria. Muchos sistemas avanzados permiten romper una ráfaga.
arqAva Redes Medio Compartido (Bus) Conectividad-31 Buses jerárquicos Concluyendo Cachés (L1, L2 y L3) Pipelining Split Transaction Modo ráfaga Buses Jerárquicos Buses Múltiples Muy costoso + 32µP Difusión Serialización Buses múltiples Frecuencia Secuencial Una de las grandes ventajas de los buses, además de lo depurado de sus implementaciones desarrolladas a lo largo de muchos años, es que permiten implementar protocolos de coherencia de cachés más simples como veremos en el tema de MIMD. Sin embargo, ante la necesidad cada vez de un mayor paralelismo basado en muchos procesadores, el que el bus sea de perfil 1 a 1, le hace totalmente inviable para grandes sistemas (no escala).
arqAva Redes Medio Compartido (Bus) Conectividad-32 ¿BUSES NO? + Consumo + Capacitancia + Latencia: Señal se propaga más lenta Líneas más largas El arbitraje retrasa ¿ Tolerancia a fallos ? - Ancho de banda
arqAva Redes Medio Compartido (Bus) Conectividad-33 Evolución FSB Intel En esta transparencia puede apreciarse cómo Intel fue evolucionando del bus común (FSB => Front Side Bus) hasta las conexiones punto a punto. En esta evolución también puede apreciarse cómo la funcionalidad del “chipset” para conectar los procesadores a memoria y a los dispositivos de E/S, así como de la gestión de la coherencia de las cachés, fue siendo absorbida por los propios procesadores dejando el “chipset” tan sólo para conectarse a los dispositivos de E/S.
arqAva Redes directas Conectividad-34 Generalidades Encaminamiento Menor diámetro aumentando el grado Array lineal Anillo simple y de grado “n” Conectividad total Compromiso grado vs diámetro y muchos nodos Árbol, Fat Tree y Estrella Mallas, Toroides y WK-rec Hipercubo con y sin ciclo Tabla de parámetros
arqAva Redes directas (Generalidades) Conectividad-35 Pn L2 Switch MultiC más integrado De otros nodos A otros nodos P M IC Red con enlaces directos entre Pi Buffers Arbitraje Encamina. Si echamos un vistazo al interior de un chip multinúcleo con switch/router integrado, pueden distinguirse tres tiempos de retardo a la hora de encaminar: Encaminar Conectar Buffer de Entrada con Buffer de Salida IntraRouter Pasar paquete del Buffer de Entrada al Buffer de Salida InterRouter Pasar paquete del Buffer de Salida Nodoi a Buffer de Entrada Nodoi+1 Nodos => PC’s o similares Ejemplos: Alpha 21364, SiCortex, Intel Core i7 y …
arqAva Redes directas (P 21364) Conectividad-36 Como curiosidad, observar que ya con procesadores mononúcleo se había llegado a incorporar un router interno para poder establecer redes directas con encaminamiento hardware eficiente. Este modelo era capaz de almacenar hasta 316 paquetes.
arqAva Redes directas ( Toro2D 21364 ) Conectividad-37 Aquí se muestra un esquema de cómo podrían conectarse 12 procesadores mediante una topología de red tipo Toro 2D. Cada procesador puede tener su propia memoria local y conexiones de acceso a dispositivos de E/S. La latencia que se muestra es muy baja (15 nseg), pero hay que tener en cuenta que no se trata de una comunicación MPI sino la transferencia de un paquete desde un nodo a otro vecino por los routers internos de cada nodo. .. 128 nodos [8x16] .. 4 TB MP 12 diámetro .. 10GBseg 15nseg Lat
arqAva Redes directas (P SiCortex) Conectividad-38 www.sicortex.com 500MHz 2007 2GBseg 1µseg Lat Este es el esquema interno de cada procesador de la máquina de SICORTEX mostrada al principio del tema. Destacar que puede calificarse como un nodo de grado 3 y, además, se trata de un ejemplo en el que los enlaces no son necesariamente bidireccionales, tal y como veremos en la transparencia siguiente.
arqAva Redes directas (P SiCortex) Conectividad-39 Kautz Graph Este tipo de grafo se propuso en 1.968 Si nos fijamos en un nodo cualquiera, por el ejemplo el 01, puede apreciarse que puede enviar al nodo 10 y recibir de dicho nodo (enlace bidireccional), pero que al nodo 13 y 12 sólo puede enviarles pero no recibir directamente de ellos (enlaces unidireccionales) y que del nodo 20 y del nodo 30 puede recibir mensajes pero no enviarles a ellos (enlaces unidireccionales). Más adelante calcularemos el diámetro de este tipo de red.
arqAva Redes directas (Intel Core i7…) Conectividad-40 www.intel.com/technology/quickpath/introduction.pdf 2008 19,2..25,6 GBseg
arqAva Redes directas (Intel Core i7…) Conectividad-41
arqAva Redes directas (Intel Xeon E5…) Conectividad-42 2012
arqAva Redes directas (Intel Xeon Phi) Conectividad-43 Nov 2012: Intel lanza el coprocesador Xeon Phi (60/61 núcleos) 8 GBseg 70 GBseg
arqAva Redes directas (Qualcomm) Conectividad-44 Ago 2017: Qualcomm lanza el Centriq 2400 con 48 núcleos ARM) 250 GBseg 31,6 GBseg
arqAva Redes directas (Epiphany-16 …) Conectividad-45 Jul 2014: Sale a la venta masiva la placa “Parallella Epiphany-16” onChip Write Network offChip Write Read Request 8B / ciclo 1B / ciclo 1R / 8 ciclos 38,4Gbps 4,8Gbps 2,4Gbps
arqAva Redes directas (Epiphany-16 …) Conectividad-46 Jul 2014: Sale a la venta masiva la placa “Parallella Epiphany-16”
arqAva Redes directas (Epiphany-V) Conectividad-47 Oct 2016: Se presenta el Epiphany-V ? En enero de 2017 el impulsor de este proyecto (Andreas Olofsson) abandonó la empresa. Según él, no pudo obtener financiación suficiente para competir con Nvidia e Intel, ni ha tenido el éxito comercial suficiente como para poder ser competitivo en este complicado mercado donde la tecnología es tan sólo una parte “pequeña” del negocio.