Departamento de Automática Arquitectura e Ingeniería de Computadores Tema 4 Arquitecturas Paralelas Prof. Dr. José Antonio de Frutos Redondo Dr. Raúl Durán Díaz Curso 2010-2011 Arquitectura e Ingeniería de Computadores Tema 4. Arquitecturas Paralelas Arquitecturas paralelas. ¿En qué consiste una arquitectura paralela? Evolución y convergencia de las arquitecturas paralelas. Redes de interconexión. Redes de interconexión estáticas. Redes de interconexión dinámicas. Coherencia en memoria cache. Fuentes de incoherencia. Protocolos basados en escucha. Protocolos basados en directorios. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 2 Arquitectura e Ingeniería de Computadores Sistemas vectoriales instalados (85-93) © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 3 Arquitectura e Ingeniería de Computadores Base instalada de Crays (76-85) © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 4 Comparativa Vectoriales-MPP 10,000 z MPP peak CRAY peak ASCI Red z 1,000 LINPACK (GFLOPS) Arquitectura e Ingeniería de Computadores Arquitecturas Paralelas Paragon XP/S MP (6768) z Paragon XP/S MP (1024) z T3D CM-5 z 100 T932(32) Paragon XP/S CM-200 z CM-2 z 10 1 z Delta z iPSC/860 z nCUBE/2(1024) 1989 1991 Desde 1993, Cray produce también MPP (T3D, T3E) C90(16) Xmp /416(4) 0.1 1985 1987 © J. A. de Frutos Redondo, R. Durán 2005 V1.4 z Ymp/832(8) Cray vectoriales (paralelos) : X-MP (2-4) Y-MP (8) C-90 (16) T94 (32) 1993 1995 1996 4. Arquitecturas paralelas 5 Arquitectura e Ingeniería de Computadores Sistemas vectoriales por fabricante Total NEC 1992 1991 1990 1989 1988 1987 1986 Hitachi Fujitsu CDC Cray 0 © J. A. de Frutos Redondo, R. Durán 2005 V1.4 200 400 600 4. Arquitecturas paralelas 6 Lista TOP500 de los computadores más rápidos 350 300 Number of systems Arquitectura e Ingeniería de Computadores Arquitecturas Paralelas 239 250 200 187 © J. A. de Frutos Redondo, R. Durán 2005 63 11/94 MPP PVP SMP 110 106 100 0 11/93 284 198 150 50 V1.4 319 313 106 73 11/95 11/96 4. Arquitecturas paralelas 7 Arquitectura e Ingeniería de Computadores Tipos de CPU en la lista TOP500 © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 8 Arquitectura e Ingeniería de Computadores Arquitecturas en la lista TOP500 © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 9 Arquitectura e Ingeniería de Computadores Siglas en “Arquitecturas Paralelas” SMP: Symmetric Multiprocessor. MPP: Massively Parallel Processor. Típicamente el número de procesadores es superior a 100. Cluster: Conjunto de computadores completos conectados por una red comercial. Cluster Beowulf: Cluster de sistema operativo libre y componentes comerciales ordinarios. Constellation: Cluster de nodos donde cada uno de ellos es de tipo SMP. Grid: Colección de recursos autónomos geográficamente distribuidos, acoplados mediante la infraestructura de comunicaciones, y débilmente acoplados. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 10 Arquitectura e Ingeniería de Computadores Familias de CPUs en la lista TOP500 © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 11 Arquitectura e Ingeniería de Computadores Rendimiento de los sistemas en TOP500 En la siguiente gráfica, se muestra el rendimiento de los sistemas colocados en la posiciones 1, 10, 100, 500 de la lista TOP500. También se muestra el crecimiento acumulado. La curva del sistema número 500 crece con un factor de 1,9 anual. El resto de curvas muestran un crecimiento anual en un factor de 1,8. ¡Es una especie de “ley de Moore”! © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 12 Arquitectura e Ingeniería de Computadores Rendimiento de los sistemas en TOP500 © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 13 Arquitectura e Ingeniería de Computadores Arquitecturas Paralelas Criterios antiguos • Arquitecturas paralelas ligadas a modelos de programación. • Arquitecturas divergentes, sin ningún patrón de crecimiento. Aplicaciones Arrays Sistólicos Sistema Software Arquitectura SIMD Paso de mensajes Flujo de datos © J. A. de Frutos Redondo, R. Durán 2005 V1.4 Memoria compartida 4. Arquitecturas paralelas 14 Arquitectura e Ingeniería de Computadores Arquitecturas Paralelas Criterios actuales Extensión de la arquitectura de computadores para soportar comunicaciones y cooperación. Hay que definir: ANTES: Conjunto de instrucciones. AHORA: Comunicaciones. Abstracciones, fronteras, primitivas (interfaces) Estructuras que implementan los interfaces (hw o sw) Compiladores, librerías y OS son cuestiones importantes en nuestros días. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 15 Arquitectura e Ingeniería de Computadores Arquitecturas Paralelas Recordemos que Un computador paralelo es un conjunto de elementos de proceso que se comunican y cooperan para resolver rápidamente grandes problemas. Podemos decir que la “Arquitectura Paralela” es: Arquitectura convencional + Arquitectura de comunicación © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 16 Arquitectura e Ingeniería de Computadores Arquitecturas Paralelas Arquitectura de comunicación User/System Interface + Implementación User/System Interface: Implementación: Primitivas de comunicación a nivel de usuario y a nivel de sistema. Estructuras que implementan las primitivas: hardware o OS Capacidades de optimización. Integración en los nodos de proceso. Estructura de la red. Objetivos: Rendimiento Amplia aplicación Fácil programación Ampliable Bajo coste © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 17 Arquitectura e Ingeniería de Computadores Arquitecturas Paralelas Modelos de programación Especifica las comunicaciones y la sincronización. Ejemplos: Multiprogramación: no hay comunicación o sincronismo. Paralelismo a nivel de programa. Memoria compartida: como un tablón de anuncios. Paso de mensajes: como cartas o llamadas telefónicas, punto a punto. Paralelismo de datos: varios agentes actúan sobre datos individuales y luego intercambian información de control antes de seguir el proceso. El intercambio se implementa con memoria compartida o con paso de mensajes. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 18 Arquitectura e Ingeniería de Computadores Arquitecturas Paralelas Niveles de abstracción en la comunicación CAD Database Multiprogramming Shared address Scientific modeling Message passing Data parallel Compilation or library Operating systems support Communication hardware Parallel applications Programming models Communication abstraction User/system boundary Hardware/software boundary Physical communication medium © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 19 Arquitectura e Ingeniería de Computadores Arquitecturas Paralelas Evolución de los modelos arquitectónicos Modelo de programación, comunicación y organización de la máquina componen la arquitectura. Espacio de memoria compartida. Paso de mensajes. Paralelismo de datos. Otras: Flujo de datos. Arrays sistólicos. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 20 Arquitectura e Ingeniería de Computadores Memoria Compartida Cualquier procesador puede referenciar directamente cualquier posición de memoria. La comunicación se realiza implícitamente por medio de cargas y almacenamientos. Ventajas: Localización transparente. Programación similar a tiempo compartido en uniprocesadores. Excepto que los procesos se ejecutan en diferentes procesadores. Buen rendimiento en distribución de carga. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 21 Arquitectura e Ingeniería de Computadores Memoria Compartida Proporcionado en un amplio rango de plataformas. Históricamente sus precursores datan de los años 60. Desde 2 procesadores a cientos de procesadores. Conocidas como máquinas de memoria compartida. Ambigüedad: la memoria puede estar distribuida en los procesadores. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 22 Arquitectura e Ingeniería de Computadores Memoria Compartida Proceso: espacio de direcciones virtuales más una o varias hebras. Parte de las direcciones son compartidas por varios procesos. Las escrituras en posiciones compartidas son visibles a las otras hebras (también en otros procesos). Es la extensión natural del modelo uniprocesador: memoria convencional; operaciones atómicas especiales para la sincronización. El sistema operativo usa la memoria compartida para coordinar procesos. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 23 Arquitectura e Ingeniería de Computadores Memoria Compartida Direcciones Físicas en la máquina Espacio de direcciones virtuales. Conjunto de procesos con comunicación por medio de memoria compartidas Pn pr i vat e Load P0 P1 Pn P2 Store Direcciones Físicas compartidas Espacio de direcciones compartidas P2 pr i vat e Espacio de direcciones privadas P1 pr i vat e P0 pr i vat e © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 24 Arquitectura e Ingeniería de Computadores Memoria Compartida Hardware de comunicación I/O devices Mem Mem Mem Interconnect Processor Mem I/O ctrl I/O ctrl Interconnect Processor Aumento independiente de capacidades de memoria, de I/O o de proceso añadiendo módulos, controladores o procesadores. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 25 Arquitectura e Ingeniería de Computadores Memoria Compartida Estrategia de comunicaciones en “Mainframe”: •Red de barras cruzadas. •Inicialmente limitado por el coste de los procesadores. Después, por el coste de la red. •El ancho de banda crece con p. •Alto coste de ampliación; uso de redes multietapa. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 P P I/O C I/O C M M M M 4. Arquitecturas paralelas 26 Arquitectura e Ingeniería de Computadores Memoria Compartida Estrategia de comunicaciones en “Minicomputer”: •Casi todos los sistemas con microprocesadores usan bus. •Muy usados para computación paralela. •Llamados SMP, symmetric multiprocessor. •El bus puede ser un cuello de botella. •Problema de la coherencia en cache. •Bajo coste de ampliación © J. A. de Frutos Redondo, R. Durán 2005 V1.4 I/O I/O C C M M $ $ P P 4. Arquitecturas paralelas 27 Arquitectura e Ingeniería de Computadores Memoria Compartida CPU P-Pro module 256-KB L2 $ Interrupt controller Bus interface P-Pro module P-Pro module © J. A. de Frutos Redondo, R. Durán 2005 V1.4 PCI bridge PCI bus PCI I/O cards PCI bridge PCI bus P-Pro bus (64-bit data, 36-bit addr ess, 66 MHz) Memory controller MIU 1-, 2-, or 4-way interleaved DRAM Ejemplo: Intel Pentium Pro Quad. Coherencia y multiproceso integrados en el modulo procesador. 4. Arquitecturas paralelas 28 P $ P $ $2 $2 CPU/mem car ds Mem ctrl Bus interface/switch Gigaplane bus (256 data, 41 addr El acceso a la memoria es por bus, simétrico. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 SBUS 16 tarjetas de cualquier tipo: procesadores + memoria, o I/O. 2 FiberChannel SBUS Ejemplo: SUN Enterprise. SBUS ess, 83 MHz) I/O car ds Bus interface 100bT, SCSI Arquitectura e Ingeniería de Computadores Memoria Compartida 4. Arquitecturas paralelas 29 Arquitectura e Ingeniería de Computadores Memoria Compartida Otras opciones en comunicación: M M °°° M Network $ $ P P Network °°° $ P UMA o Dance hall M $ P M $ °°° P M $ P NUMA Problemas de interconexión: coste (barras cruzadas) o ancho de banda (bus). Dance-hall: ampliable a menor coste que en barras cruzadas. Latencia en acceso a memoria uniforme, pero alta. NUMA (non-uniform memory access): Construcción de un simple espacio de memoria con latencias diferentes. COMA: Arquitectura de memoria a base de caches compartidas. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 30 Arquitectura e Ingeniería de Computadores Memoria Compartida Ejemplo: Cray T3E Exter nal I/O P $ Mem Mem ctrl and NI XY Switch Z Ampliable a 1024 procesadores, enlaces de 480MB/s. El controlador de memoria genera las peticiones para posiciones no locales. No tiene mecanismo de hardware para coherencia (SGI Origin y otros sí lo proporcionan) © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 31 Arquitectura e Ingeniería de Computadores Paso de Mensajes Construidos por medio de computadores completos, incluyendo I/O. Comunicación por medio de operaciones explícitas de I/O. Modelo de programación: acceso directo sólo a direcciones privadas (memoria local), comunicación por medio de mensajes (send/receive) Diagrama de bloques similar al NUMA Pero las comunicaciones se integran a nivel de I/O. Como redes de workstations (clusters), pero mayor integración. Más fáciles de construir y ampliar que los sistemas NUMA. Modelo de programación menos integrado en el hardware. Librerías o intervención del sistema operativo. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 32 Arquitectura e Ingeniería de Computadores Paso de Mensajes send especifica el buffer a transmitir y el proceso receptor. recv especifica el proceso emisor y el buffer de almacenamiento. Son copias memoria-memoria, pero se necesitan los nombres de procesos. Opcionalmente se puede incluir el destino en el envío y unas reglas de identificación en el destino. En la forma simple, el emparejamiento se consigue por medio de la sincronización de sucesos send/recv. Existen múltiples variantes de sincronización. Grandes sobrecargas: copia, manejo de buffer, protección. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 33 Arquitectura e Ingeniería de Computadores Paso de Mensajes Match Receive, Y,P, t Direcciones Y Send X, Q, t Dir X Espacio local del proceso Proceso P © J. A. de Frutos Redondo, R. Durán 2005 V1.4 Espacio local del proceso Proceso Q 4. Arquitecturas paralelas 34 Arquitectura e Ingeniería de Computadores Paso de Mensajes Evolución en las máquinas de Paso de Mensajes Primeras máquinas: FIFO en cada enlace. Modelo de programación muy próximo al hw; operaciones simples de sincronización. Reemplazado por DMA, permitiendo operaciones no bloqueantes. Buffer de almacenamiento en destino hasta recv. 101 001 Disminución de la influencia de la topología (enrutado por hw). Store&forward routing: importa la topología. Introducción de redes multietapa. Mayor coste: comunicación nodo red. Simplificación de la programación © J. A. de Frutos Redondo, R. Durán 2005 V1.4 100 000 111 011 110 010 4. Arquitecturas paralelas 35 Ejemplo: IBM SP-2 Power 2 CPU IBM SP-2 node L2 $ Memory bus General inter connection network formed fr om 8-port switches 4-way interleaved DRAM Memory contr oller Micr oChannel bus NIC Realizado a base de estaciones RS6000. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 I/O DMA i860 NI DRAM Arquitectura e Ingeniería de Computadores Paso de Mensajes 4. Arquitecturas paralelas 36 Arquitectura e Ingeniería de Computadores Paso de Mensajes i860 i860 L1 $ L1 $ Intel Paragon node Memory bus (64-bit, 50 MHz) Mem ctrl DMA Driver Sandia’ s Intel Paragon XP/S-based Super computer 2D grid network with pr ocessing node attached to every switch NI 4-way interleaved DRAM 8 bits, 175 MHz, bidir ectional Ejemplo Intel Paragon. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 37 Arquitectura e Ingeniería de Computadores La Convergencia de las Arquitecturas La evolución y el papel del software ha difuminado las fronteras entre memoria compartida y paso de mensajes. Se puede construir un espacio global de direcciones en Paso de Mensajes. También converge la organización del hardware. send/recv soporta memoria compartida vía buffers. Mayor integración para Paso de Mensajes (menor latencia, mayor ancho de banda) A bajo nivel, algunos sistemas de memoria compartida implementan paso de mensajes en hardware. Distintos modelos de programación, pero también en convergencia. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 38 Arquitectura e Ingeniería de Computadores Paralelismo de Datos Modelo de programación: Las operaciones se ejecutan en paralelo en cada elemento de la estructura. Una hebra de control, ejecución paralela. Un procesador asociado a cada elemento. Contr ol processor Modelo arquitectónico: Array de muchos procesadores simples, baratos y con poca memoria. Asociados a un procesador de control que emite las instrucciones. Fácil sincronización de comunicaciones. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 PE PE °°° PE PE PE °°° PE °°° °°° PE PE °°° °°° PE 4. Arquitecturas paralelas 39 Arquitectura e Ingeniería de Computadores Paralelismo de Datos EVOLUCION Rígida estructura de control (SIMD en la taxonomía de Flynn) Populares cuando el coste ahorrado con la centralización era alto. En los 60, cuando la CPU era un armario. Reemplazados por vectoriales a mediados de los 70. Revivido en los 80 cuando aparecen 32-bit datapath slices. Aniquilados por los modernos microprocesadores. Más razones para su desaparición: Más flexibles y fáciles de manejar Las aplicaciones regulares son fáciles de ejecutar por su localidad en otro tipo de procesadores. MIMD son eficaces y más generales en el paralelismo de datos. El modelo de programación converge con SPMD (single program multiple data). © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 40 Arquitectura e Ingeniería de Computadores Flujo de Datos 1 a = (b +1) × (b − c) d=c ×e f=a ×d b c e − + × d × Dataflow graph a × Network f Token stor e Program stor e Waiting Matching Instruction fetch Execute Form token Network Token queue Network © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 41 Arquitectura e Ingeniería de Computadores Flujo de Datos EVOLUCIÓN Claves: Capacidad para el nombramiento de instrucciones, sincronización, planificación dinámica. Problemas: Manejo de complejas estructuras de datos, como arrays. Complejidad de la memoria de emparejamiento y la unidades de memoria. Convergencia al uso de procesadores y memoria convencional. Soporte para conjuntos de hebras ejecutadas en distintos procesadores. Uso de memoria compartida. Progresiva separación entre el modelo de programación y el HW. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 42 Arquitectura e Ingeniería de Computadores Interconexión de sistemas paralelos La misión de la red en una arquitectura paralela es transferir información desde cualquier fuente a cualquier destino minimizando la latencia y con coste proporcionado. La red se compone de: nodos; conmutadores; enlaces. La red se caracteriza por su: topología: estructura de la interconexión física; enrutado: que determina las rutas que los mensajes pueden o deben seguir en el grafo de la red; estrategia de conmutación: de circuitos o de paquetes; control de flujo: mecanismos de organización del tráfico. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 43 Arquitectura e Ingeniería de Computadores Interconexión de sistemas paralelos Clasificación de las redes por su topología. Estáticas: conexiones directas estáticas punto a punto entre los nodos; fuerte acoplamiento interfaz de red-nodo; los vértices del grafo de la red son nodos o conmutadores; se clasifican a su vez: simétricas: anillo, hipercubo, toro; no simétricas: bus, árbol, malla. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 44 Arquitectura e Ingeniería de Computadores Interconexión de sistemas paralelos Clasificación de las redes por su topología. Dinámicas: los conmutadores pueden variar dinámicamente los nodos que interconectan. Se clasifican a su vez: monoetapa; multietapa: bloqueante (línea base, mariposa, baraje); reconfigurable (Beneš); no bloqueante (Clos). © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 45 Arquitectura e Ingeniería de Computadores Interconexión de sistemas paralelos Parámetros característicos de una red: Tamaño de la red: número de nodos que la componen. Grado de un nodo: número de enlaces que inciden en el nodo. Diámetro de la red: es el camino mínimo más largo que se puede encontrar entre dos nodos cualesquiera de la red. Simetría: una red es simétrica si todos los nodos son indistinguibles desde el punto de vista de la comunicación. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 46 Arquitectura e Ingeniería de Computadores Redes estáticas Red lineal Anillo Arbol Malla Estrella Red sistólica Cubo-3 Totalmente conexa © J. A. de Frutos Redondo, R. Durán 2005 V1.4 Anillo cordal 4. Arquitecturas paralelas 47 Arquitectura e Ingeniería de Computadores Redes estáticas Tipo de red grado diámetro enlaces simetría lineal 2 N−1 N−1 no anillo 2 N/2 N sí totalmente conexa N−1 1 N(N − 1)/2 sí arbol (h = log2 N + 1) 3 2(h − 1) N−1 no estrella N−1 2 N−1 no malla - 2D (r x r) 4 2(r − 1) 2N − 2r no hipercubo n n n nN/2 sí © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 48 Arquitectura e Ingeniería de Computadores Redes estáticas Hipercubo 3D ciclo-conexo © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 49 Arquitectura e Ingeniería de Computadores Redes estáticas Ejemplo de conexiones en un hipercubo 3 Conexión de nodos que se diferencian en el bit menos significativo 000 110 111 011 100 101 110 111 Conexión de nodos que se diferencian en el segundo bit 000 100 101 001 010 011 100 101 110 111 Conexión de nodos que se diferencian en el bit más significativo 001 000 © J. A. de Frutos Redondo, R. Durán 2005 V1.4 010 011 010 000 001 001 010 011 100 101 110 111 4. Arquitecturas paralelas 50 Arquitectura e Ingeniería de Computadores Redes dinámicas Redes dinámicas: son redes cuya configuración puede modificarse. Hay dos tipos: Las redes monoetapa realizan conexiones entre elementos de proceso en una sola etapa. monoetapa. multietapa. Puede que no sea posible llegar desde cualquier elemento a cualquier otro, por lo que puede ser necesario recircular la información (=>redes recirculantes) Las redes multietapa realizan conexiones entre los elementos de proceso en más de una etapa. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 51 Arquitectura e Ingeniería de Computadores Redes dinámicas Redes de interconexión monoetapa © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 52 Arquitectura e Ingeniería de Computadores Redes dinámicas Red de barras cruzadas: permite cualquier conexión. EP0 EP0 EP1 EP1 EPn EPn EP0 EP1 © J. A. de Frutos Redondo, R. Durán 2005 V1.4 EPn M0 M1 Mm 4. Arquitecturas paralelas 53 Arquitectura e Ingeniería de Computadores Redes dinámicas Redes de interconexión (multietapa) Cajas de conmutación a0 b a1 b 0 a0 b 1 a1 b 1 Cruce Paso directo a0 b a1 b Difusión inferior 0 0 a0 b 1 a1 b 0 1 Difusión superior Las cuatro configuraciones posibles de una caja de conmutación de 2 entradas. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 54 Arquitectura e Ingeniería de Computadores Redes dinámicas bloqueantes Redes multietapa bloqueantes. Se caracterizan porque no es posible establecer siempre una nueva conexión entre un par fuente/destino libres, debido a conflictos con las conexiones en curso. Generalmente existe un único camino posible entre cada par fuente/destino. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 55 Arquitectura e Ingeniería de Computadores Redes dinámicas bloqueantes Red de línea base: Red de línea base 8 x 8 © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 56 Arquitectura e Ingeniería de Computadores Redes dinámicas bloqueantes Red mariposa: © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 57 Arquitectura e Ingeniería de Computadores Redes dinámicas bloqueantes Red baraje perfecto: Barajado perfecto 000 000 000 000 001 001 001 001 010 010 010 010 011 011 011 011 100 100 100 100 101 101 101 101 110 110 110 110 111 111 111 111 © J. A. de Frutos Redondo, R. Durán 2005 V1.4 Barajado perfecto inverso 4. Arquitecturas paralelas 58 Arquitectura e Ingeniería de Computadores Redes dinámicas reconfigurables Redes multietapa reconfigurables. Se caracterizan porque es posible establecer siempre una nueva conexión entre un par fuente/destino libres, aunque haya conexiones en curso, pero puede hacerse necesario un cambio en el camino usado por alguna(s) de ellas (reconfiguración). Interesante en procesadores matriciales, en donde se conoce simultáneamente todas las peticiones de interconexión. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 59 Arquitectura e Ingeniería de Computadores Redes dinámicas reconfigurables Red de Beneš: Red de Benes 8 x 8 © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 60 Arquitectura e Ingeniería de Computadores Redes dinámicas reconfigurables La red de Beneš se puede construir recursivamente: Red de Benes 4 x 4 Red de Benes 4 x 4 Red de Benes 8 x 8 © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 61 Arquitectura e Ingeniería de Computadores Redes dinámicas no bloqueantes Redes dinámicas no bloqueantes. Se caracterizan porque es posible establecer siempre una nueva conexión entre un par fuente/destino libres sin restricciones. Son análogas a los conmutadores de barras cruzadas, pero pueden presentar mayor latencia, debido a las múltiples etapas. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 62 Arquitectura e Ingeniería de Computadores Redes dinámicas no bloqueantes Red de Clos: nxm rxr mxn 1 1 1 1 1 n n 2 2 2 r m r Red de Clos © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 63 Arquitectura e Ingeniería de Computadores Coherencia en Memoria Cache Estructuras comunes de la jerarquía de memoria en multiprocesadores Memoria cache compartida. Memoria compartida mediante bus. Interconexión por medio de red (dance-hall) Memoria distribuida. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 64 Arquitectura e Ingeniería de Computadores Coherencia en Memoria Cache Cache compartida Pequeño número de procesadores (2-8) Fue común a mediados de los 80 para conectar un par de procesadores en placa. Posible estrategia en chip multiprocesadores. P1 Pn Memoria cache (Entrelazada) Memoria principal (Entrelazada) © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 65 Arquitectura e Ingeniería de Computadores Coherencia en Memoria Cache Compartición por medio de bus. Ampliamente usada en multiprocesadores de pequeña y mediana escala (20-30) Forma dominante en las máquinas paralelas actuales. Los microprocesadores modernos están dotados para soportar protocolos de coherencia en esta configuración. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 P1 Pn Memoria cache Memoria cache bus Memoria principal 4. Arquitecturas paralelas 66 Arquitectura e Ingeniería de Computadores Coherencia en Memoria Cache Salón de baile Fácilmente escalable. Estructura simétrica UMA. Memoria demasiado lejana especialmente en grandes sistemas. P1 Pn Memoria cache Memoria cache Red de interconexión Memoria principal © J. A. de Frutos Redondo, R. Durán 2005 V1.4 Memoria principal 4. Arquitecturas paralelas 67 Arquitectura e Ingeniería de Computadores Coherencia en Memoria Cache Memoria distribuida •Especialmente atractiva par multiprocesadores escalables. •Estructura no simétrica NUMA. •Accesos locales rápidos. Memoria principal P1 Pn Memoria cache Memoria cache Memoria principal Red de interconexión © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 68 Arquitectura e Ingeniería de Computadores Coherencia en Memoria Cache El problema de la coherencia Datos actualizados en memoria principal y las caches particulares. Monoprocesadores: Incoherencia en distintos niveles. Operaciones de I/O. Multiprocesadores: Incoherencia en distintos niveles Incoherencia en el mismo nivel © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 69 Arquitectura e Ingeniería de Computadores Coherencia en Memoria Cache Fuentes de incoherencia: Los datos compartidos. La migración de procesos. Las operaciones de entrada-salida. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 70 Fuentes de incoherencia Arquitectura e Ingeniería de Computadores Datos compartidos en caches de escritura directa. P0 P1 P2 Pn Memoria cache Memoria principal © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 71 Fuentes de incoherencia Arquitectura e Ingeniería de Computadores Datos compartidos en caches de post-escritura. P0 P1 P2 Pn Memoria cache Memoria principal © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 72 Fuentes de incoherencia Arquitectura e Ingeniería de Computadores Migración de procesos en caches de escritura directa. P0 P1 P2 Pn Memoria cache Memoria principal © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 73 Fuentes de incoherencia Arquitectura e Ingeniería de Computadores Migración de procesos en caches de post-escritura. P0 P1 P2 Pn Memoria cache Memoria principal © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 74 Arquitectura e Ingeniería de Computadores Fuentes de incoherencia Operaciones de entrada salida P0 P1 P2 Pn Memoria cache Memoria principal Entrada Salida (post-escritura) © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 75 Arquitectura e Ingeniería de Computadores Coherencia en Memoria Cache Posibles soluciones Caches locales. Memoria cache compartida. Caches privadas con protocolos de escucha. Caches privadas con directorio compartido. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 76 Arquitectura e Ingeniería de Computadores Coherencia en Memoria Cache Políticas de mantenimiento de coherencia Invalidar. Actualizar. X X X X X P P P P X' X' X' I I I X' X' X' X' P P P P P P P P Invalidar © J. A. de Frutos Redondo, R. Durán 2005 V1.4 Actualizar 4. Arquitecturas paralelas 77 Arquitectura e Ingeniería de Computadores Protocolos de escucha Protocolos snoopy Sistemas de memoria basados en bus. Escucha de las operaciones (snoop) Se deben transmitir las operaciones de lectura y escritura. Las operaciones de cambio de bloque no influyen en el estado del bloque en otros procesadores. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 78 Arquitectura e Ingeniería de Computadores Protocolos de escucha Protocolos snoopy Caches de escritura directa. R(i), W(i) R(j) W(j) inválido válido R(i) R(j) W(i) W(j) © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 79 Arquitectura e Ingeniería de Computadores Protocolos de escucha Protocolos snoopy Caches de post-escritura MSI. R(j) R(i) W(i) W(i) M W(i) S R(i) R(j) R(i) W(j) W(j) I © J. A. de Frutos Redondo, R. Durán 2005 V1.4 R(j), W(j) 4. Arquitecturas paralelas 80 Arquitectura e Ingeniería de Computadores Protocolos de escucha Protocolos snoopy Caches de post-escritura MESI. W(i) R(i) W(i) M R(i) E W(i) R(j) W(i) R(j) S R(i) S W(j) W(j) R(i) R(j) S © J. A. de Frutos Redondo, R. Durán 2005 V1.4 R(i) S W(j) I W(j) R(j) 4. Arquitecturas paralelas 81 Arquitectura e Ingeniería de Computadores Protocolos basados en directorios Protocolos basados en directorios Multiprocesadores con red de interconexión. Dificultades de broadcast y su escalabilidad. Directorio: guarda la información relativa al estado del bloque de cache. Directorios centralizados y directorios distribuidos. © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 82 Arquitectura e Ingeniería de Computadores Protocolos basados en directorios Fallo de lectura en estado modificado. 1 P1 Bloque Mem. P2 2 Bloque Mem. Cache Directorio 3 Directorio Cache P3 4 4 Bloque Mem. Cache Directorio © J. A. de Frutos Redondo, R. Durán 2005 V1.4 4. Arquitecturas paralelas 83 Arquitectura e Ingeniería de Computadores Protocolos basados en directorios Fallo de escritura en estado compartido. 1 P1 Bloque Mem. P2 2 Bloque Mem. Cache Cache Directorio Directorio 4 4 P3 Bloque Mem. Cache Directorio © J. A. de Frutos Redondo, R. Durán 2005 V1.4 P4 3 3 Bloque Mem. Directorio Cache 4. Arquitecturas paralelas 84 Arquitectura e Ingeniería de Computadores Protocolos basados en directorios Estructura del directorio (directorios completos) P Bloque Mem. Cache Directorio 0 0 1 0 1 Dirty P0 P1 P2 Pm © J. A. de Frutos Redondo, R. Durán 2005 V1.4 bloque 4. Arquitecturas paralelas 85 Arquitectura e Ingeniería de Computadores Protocolos basados en directorios Estructura del directorio (directorios limitados) P Cache Bloque Mem. Directorio log2 P 0 Dirty bloque I1 © J. A. de Frutos Redondo, R. Durán 2005 V1.4 I2 In 4. Arquitecturas paralelas 86 Arquitectura e Ingeniería de Computadores Protocolos basados en directorios Estructura del directorio (directorios encadenados) log2 P 0 P bloque Dirty P FC FC Bloque Mem. Directorio Cache Cache FC P P Bloque Mem. Directorio © J. A. de Frutos Redondo, R. Durán 2005 V1.4 Bloque Mem. Directorio Cache P Bloque Mem. Directorio Cache 4. Arquitecturas paralelas 87