INTRODUCCIÓN CONECTIVIDAD COPROCESAMIENTO MÁQUINAS MIMD MÁQUINAS SIMD arqAvaPar Curso 17/18 Horas 5 6+… 3+… 7 2 INTRODUCCIÓN CONECTIVIDAD COPROCESAMIENTO MÁQUINAS MIMD MÁQUINAS SIMD PARALELISMO INTERNO
arqAvaPar Clasificación de Flynn Ampliada MIMD-2 Arquitecturas Paralelas SISD SIMD MISD MIMD Procesadores Vectoriales Array de Procesadores Sistólicos Von Neumann ?? Multi-procesadores Multi-computadores UMA NUMA COMA Distintas formas de organizar la memoria común MPP COW Beowulf Symetric Multi Processor Distributed Shared Memory
arqAvaPar Temario MIMD-3 MÁQUINAS MIMD Multiprocesadores Modelos UMA, NUMA y COMA Coherencia de cachés Husmeo (snoopy) Directorios Multicomputadores Modelos MPP, COW, Beowulf Procesadores multinúcleo Bibliografía: “Advanded Computer Architecture...” Kai Hwang-1993 [19..23, 348..363] “Structured Computer Organization” A.S. Tanenbaum-1999 [564..586] “Parallel Computer Architecture …” Culler y Singh-1999 [269..301, 553..571]
arqAvaPar Multiprocesadores MIMD-4 Un único espacio de direcciones de memoria visible a todos los µPs move P1 P2 Pn Memoria $0000000 $FFFFFFF 50 move #50,$20 Pi move $1000000,R5 100 move #100,$1000000 25 move #25,$4000000 Existen distintas formas de implementar este espacio de memoria
arqAvaPar Multiprocesadores (UMA) MIMD-5 Acceso Uniforme a Memoria: Cada Pi mismo tiempo de acceso a todas y cada una de las posiciones de memoria P1 P2 Pn C1 C2 Cn M1 M2 Mk Bus Común Symetric Multi Processor ¿Coherencia? A A’ ¿Límites? ¿Ventajas? Puede complicarse algo para aumentar las prestaciones
arqAvaPar Multiprocesadores (UMA) MIMD-6 Ejemplo: Sun Enterprise 10000 (1998) Crossbar de 16x16 (Gigaplane-XB) => 19,87GB*seg 1 15 Tarjetas de 40x50 cm. coherencia cachés ..400MHz ≈ 128MB UltraSPARC 333MHz 1 GB de memoria Mantiene modelo UMA ¿Al límite (64µP)?
arqAvaPar Multiprocesadores (UMA) MIMD-7 Ejemplo: Sun Enterprise 10000 (1998) ¿ 2018 ? 1.000.000 $ Sun Enterprise 250 EUI 2000 2.000.000Pts
arqAvaPar Multiprocesadores (UMA?) MIMD-8 AMD NUMA desde Opteron [2003] (MonoCore) Jun/2017: AMD EPYC 7000 => 32 cores Zen + 2TB + 307/341 GB/s
arqAvaPar Multiprocesadores (UMA?) MIMD-9 Intel NUMA desde Nehalem [2008] 4 Cores Jul/2017: Intel UltraPath Interconnect UPI Xeon Skylake-SP 41,6 GB/s .. 28 cores
arqAvaPar Multiprocesadores (NUMA) MIMD-10 Acceso No Uniforme a Memoria: El acceso a memoria remota es más lento que el acceso a memoria local ¿Cómo sé si local | remoto? 2. Tremoto (Pn,M2) M1 P1 Mn Pn M2 P2 R e d 16 x 16MB => 256MB => dr = 28 bits 1. Tlocal (P1,M1) xxxx xxxx xxxx xxxx xxxx xxxx xxxx módulo ¿ Dos accesos concurrentes a Mi ? Multipuerto vs Multibanco Distributed Shared Memory
arqAvaPar Multiprocesadores (NUMA) MIMD-11 Acceso No Uniforme a Memoria: El acceso a memoria remota es más lento que el acceso a memoria local Red Global M1 M2 Mn Red P1 P2 Pn MG1 MG2 MGk 2. Tremoto (Pn,M2) M1 P1 Mn Pn M2 P2 R e d 1. Tlocal (P1,M1) 1. Tlocal 2. Tglobal 3. Tremoto Más procesadores Distributed Shared Memory
arqAvaPar Multiprocesadores (NUMA) MIMD-12 Todavía dentro de NUMA, se contemplan dos modelos 1965 Cache Wilkes M1 P1 Mn Pn M2 P2 R e d NC-NUMA Sistemas sin cachés 1968 IBM 360 1977 Cm* NC_NUMA 1989 CC_NUMA 80486 8KL1I 16KL1D 1995 PentiumPro ..1M L2 externa 1996 Sequent NUMA-Q 2000 ¿Por qué no? ¿Eficiente?
arqAvaPar Multiprocesadores (NUMA) MIMD-13 Todavía dentro de NUMA, se contemplan dos modelos M1 P1 Mn Pn M2 P2 R e d NC-NUMA Sistemas sin cachés CC-NUMA P1 C1 M1 Pn Cn Mn P2 C2 M2 Red de interconexión Sistemas con Cachés Coherentes A A’
arqAvaPar Multiprocesadores (CC-NUMA) MIMD-14 Ejemplo: Sequent NUMA-Q 2000 Tarjetas con 4 Pentium Pros y hasta 4GB Coherencia Cachés El más grande (199?): 63 nodos (252µP) 238Bytes (256GB) Anillo SCI Hasta 64K nodos
arqAvaPar Multiprocesadores (CC-NUMA) MIMD-15 Servidores gama alta de SUN con UltraSPARC † Hasta 8/01/2009 ..12 ..24 ..52 ..106 ..36x2 ..72x2
arqAvaPar Multiprocesadores (CC-NUMA) MIMD-16 Servidores gama alta de SUN con SPARC64 VI [2n] y VII -VII+ [4n] M4000 ..16 M5000 ..32 M8000 ..64 M9000 ..256 2007 .. 2010 ..
arqAvaPar Multiprocesadores (CC-NUMA) MIMD-17 Ejemplo: SPARC Enterprise M9000 => 64 SPARC64 VII ¿Coste? 8 Placas 4 CPU’s 4 núcleos 2 Threads Hasta 2TB 2,52GHz 64KB L1 I 64KB L1 D 6MB L2 737 GB/s 4TB 12MB L2 368,5GB/s
arqAvaPar Multiprocesadores (CC-NUMA) MIMD-18 Ejemplo: SPARC Enterprise M9000 => 64 SPARC64 VII IBM POWER
arqAvaPar Multiprocesadores (CC-NUMA) MIMD-19 Con descuentos => 3.298.483$ www.tpc.org/tpch Oct/2010 #2 3.000GB Results Ejemplo: SPARC M9000 2.841.219$ 32 SPARC64 VII 512GB memoria 963.234$ 78TB 1.416.010$ Mantenimiento 1.376.503$ Latencias (Sun Fire E25K) Misma placa => 180..207 nseg Otra Placa => 333 , 440 nseg NUMA 2009..2010 Compra SUN
arqAvaPar Multiprocesadores (CC-NUMA) MIMD-20 16x32x8 = 4096Threads Oct/2015 .. 32x8 = 256Threads 4x32x8 = 1024Threads 2x32x8 = 512Th 34.000 .. 78.000$ .. 151.000$ .. 302.000$ 128GB .. 1TB .. 2TB .. 4TB
arqAvaPar Multiprocesadores (CC-NUMA) MIMD-21 16x32x8 = 4096Threads Sep/2017 .. 32x8 = 256Threads 4x32x8 = 1024Threads 2x32x8 = 512Th
arqAvaPar Multiprocesadores (CC-NUMA) MIMD-22 Servidores gama alta de SUN vs IBM 2013 ?
arqAvaPar Multiprocesadores (COMA) MIMD-23 Acceso sOlo a Memoria Caché: Es un submodelo de NUMA, donde la memoria principal de cada procesador, se trata como una caché. NUMA => Un dato está asignado de forma estática a una memoria local determinada => Muchos accesos remotos (lentos) A Memoria Virtual Una solución: Los datos se ubican dinámicamente en las memorias de los procesadores que los demandan ¿Dónde está A? Cn C1 C2 RED P1 P2 Pn A A ¿Expulsar A? A
arqAvaPar Multiprocesadores (COMA) MIMD-24 Problemática NUMA: Desbordamiento caches (pequeñas) => + Accesos remotos Con MV difícil ubicar en marco adecuado [P1 y luego P3*] Falsa compartición 1 load.A FP int A[512], B[512] A, B 2 load.B P1 Pi Pj Pn Local* Remoto* A B Páginas 4KB Líneas de 64B ¡32 accesos remotos!
arqAvaPar Coherencia de Cachés MIMD-25 Conceptos que se presupone conocidos: Concepto de caché y su ubicación en la jerarquía de memoria Distintos modelos: Asociativa Correspondencia directa Asociativa por conjuntos Políticas de reemplazo (Azar, LRU, ...) Políticas de escritura: Acierto: Escritura Inmediata “Write Through” Escritura Diferida “Write Back” Fallo: No ubicar al escribir Ubicar al escribir MP 4GB L2 2*4MB Línea 64 Bytes
arqAvaPar Coherencia de Cachés MIMD-26 Diferencias [W] entre Write Through y Write Back: B U S 8B 63 Memoria Principal Cache: Write Through B U S 8B 63 Memoria Principal Cache: Write Back R* W R* W W R.Miss 64B R.Miss 64B 8B W.Hit 64B Reemplazo
arqAvaPar Coherencia de Cachés MIMD-27 ¿#Accesos al Bus? Pi MP A’ No ubicar 1w Pi MP A A’ Pi MP A Ubicar + WB [8w] + 8r A’ Pi MP Ubicar + WT ¿ Pi.Write.w A’ ? [8w] + 8r + 1w
arqAvaPar Coherencia de Cachés MIMD-28 XX ------------------------ XX YY --------- D3BC ------- YY 012 --------- 4567 ------------ F 2222 3 00000000 00000040 00000080 000000C0 00400800 FFFFFFC0 FFFFFF80 FFFFFF40 FFFFFF00 ld $00400824, R5 2222 3 012 --------- 4567 ------------ F YY --------- D3BC ------- YY 00400800 Etiqueta Desp 26 6 Asociativa 004008 00 10 4 26 26 6 Bloque Desp 0000 0001 0020 2222 3 012 --------- 4567 ------------ F Correspondencia directa YY --------- D3BC ------- YY Eti Desp 10 16 6 Línea ld $00400824, R5 FFFF 00 008 00 10 4 00 01 10 ¿Mejor?
arqAvaPar Coherencia de Cachés MIMD-29 Problemática con: Datos compartidos P1 X P2 cachés MP Write Through P1 X’ P2 X P1 X’ P2 X Write Back ¡P2.W! P1.W ¡P3.R! ¡P2.R! Problemática con: Migración de procesos P1 X’ P2 X cachés MP P1 X’ P2 X P1 X’ P2 X WriteBack ¿Write Through?
arqAvaPar Coherencia de Cachés MIMD-30 Problemática con: Entrada / Salida P1 X P2 X P1 X P2 Write Through P1 X’ P2 X Write Back cachés X’ X output X X’ input MP E/S BUS ¿Solución?: Snoopy: Para sistemas basados en bus Cotillear, espiar la actividad del bus Directorios: Para redes estáticas, multietapa, etc. Directorios cachés que indican en qué cachés hay copias de los datos
arqAvaPar Coherencia de Cachés (Snoopy) MIMD-31 El espionaje no debe retardar el ciclo de bus (Hw adicional) P1 C1 VTD BUS P2 C2 Pn Cn M.P. E/S VT Espía 3FA45 48ABC 1 Válida Tag Línea de Datos ¿Overhead? $3FA456
arqAvaPar Coherencia de Cachés (Snoopy) MIMD-32 Para conseguir coherencia, básicamente hay dos políticas: Cachés WriteThrough P1 P2 Pi Pn X Y X Y Inv. Línea 64B Act. Dato (1..8)B W* => 1 Inv. P1 P2 Pi Pn X’ X Y X Y Invalidación Actualización P1 P2 Pi Pn X’ X Y X Y WriteBack X’ Y X’ X’ Y ¿Mejor?
arqAvaPar Coherencia de Cachés (Snoopy) MIMD-33 Protocolo 1: Caché de escritura inmediata e invalidación Cada bloque en uno de dos estados (Inválido, Válido) Cuando Pi va a escribir, se adueña del bus y: Manda señal de invalidar Escribe en M.P. Rj,Zi Wj,Zj Zi,Wj Ri,Wi Rj,Zj Diagrama de Estados Ri/j => Pi/j lee bloque Wi/j => Pi/j escribe bloque Zi/j => Pi/j reemplaza bloque INV VAL Ubicar en escritura Idea => La M.P. siempre coherente con las copias válidas en caché Pega => Mucho tráfico en el bus (Cada W en caché => W en M.P.)
arqAvaPar Coherencia de Cachés (Snoopy) MIMD-34 Protocolo 1: Comportamiento ante (Read/Write)+(Hit/Miss) P1W C3 A C1 A C1 C2 C3 MP A C1 A’ C2 C3 A MP WH: W en MP e Invalidar C2 A’’ MP C2 A’ MP A’ P1R P2W P3R (P1R | P3R)* RM: La MP suministra el bloque RH: La caché suministra el dato WM: Como WH o puede que: RM + WH (ubicar en W)
arqAvaPar Coherencia de Cachés (Snoopy) MIMD-35 Protocolo 2: Caché de escritura diferida e invalidación (propietaria) VAL RO RW Pi.w BusINV A Pi Pj A A’ Pi Pj Pi.w BusINV
arqAvaPar Coherencia de Cachés (Snoopy) MIMD-36 Protocolo 2: Caché de escritura diferida e invalidación (propietaria) Conseguir que W* => Una única Invalidación ¿Señales Bus? El estado VAL se desdobla en dos: ReadOnly (Shared) ReadWrite (Modified) C1 A MP C2 C3 C1 A MP C2 A’ C3 Write Hit Copia/s en cachés y MP coherentes Lecturas locales sin tráfico de bus MP propie- taria de A Read Hit P2W A Copia única en la caché MC propie- taria de A’ R/W locales sin tráfico bus Escritura => Invalidar y pasar a RW ¿Read/Write miss?
arqAvaPar Coherencia de Cachés (Snoopy) MIMD-37 Protocolo 2: Comportamiento ante fallo de lectura o escritura ReadMiss WriteMiss C2 A’ C3 MP C1 C2 A C1 A C2 A’ C3 A’ MP C2 C3 RW C1 A’’ C1 A’ C3 A’’’ MP A’’ P2R P1W MP A P2W P3W P3R RO: La MP suministra el bloque RO: La MP suministra el bloque Se regresa a RO (W en MP) RW : La C2 suministra el bloque : La C1 escribe en MP La C3 toma la propiedad
arqAvaPar Coherencia de Cachés (Snoopy) MIMD-38 Protocolo 2: Diagrama de transición de estados Ri,Wi Zj Wi Rj Rj,Wj Zi,Zj Ri,Rj Zj Ri Wj,Zi INV RW RO Idea => Consistencia con el modelo de caché de escritura diferida Pega => Tráfico innecesario en el bus Primer W en caché => INV siempre (¿No hay copias?)
arqAvaPar Coherencia de Cachés (Snoopy) MIMD-39 Protocolo 3: MESI (Pentium, PowerPC, ...) ¿Goodman 1983? Como Protocolo 2, pero sin invalidar si no hay más copias El estado RO se desdobla en dos: “E” sólo una copia o “S” varias Modificado: Bloque en caché modificado y única copia Exclusivo: La única copia en caché, consistente con MP Shared: Hay una o más copias en otras cachés y en MP Inválido: El bloque no tiene datos válidos en la caché El comportamiento es el siguiente: C1 A C2 MP C3 P1 lee bloque A (P1R) E P2R C1 A C2 MP C3 S RM
arqAvaPar Coherencia de Cachés (Snoopy) MIMD-40 Protocolo 3: MESI (Seguimiento de su comportamiento) C1 A C2 MP C3 S P2W C1 A C2 A1 MP C3 M I WH P3R RM C1 A C2 A2 MP A1 C3 M I P2W C1 A C2 A1 MP C3 S I WH P1W WM C1 A3 C2 A2 MP C3 A1 I M
arqAvaPar Coherencia de Cachés (Snoopy) MIMD-41 Protocolo 3: Diagrama de transición de estados MESI Rj,Wj Wj Rj Wi Ri,Wi Ri Ri,Rj M S I E Intel QuickPath Interconnect Source Snoop MESIF F: Cache to Cache ¿ Mereció la pena ?
arqAvaPar Coherencia de Cachés (Snoopy) MIMD-42 Protocolo 3: Diagrama de transición de estados MESI RO RW INV Wb.Inv E S M Rj W.Inv* Wa ¿ a >> b ? ¿ a + b ? ¿ Mereció la pena ?
arqAvaPar Coherencia de Cachés (Snoopy) MIMD-43 ¿Cuántos accesos al bus? 1,3% 1,5% 0,2% 1MB 6,6% 2,8% 1,2%
arqAvaPar Coherencia de Cachés (Directorios) MIMD-44 Con decenas/cientos de procesadores, no hay bus común ¿Aplicable coherencia por husmeo? C M => Difusión (inviable con N grande) Si N = 36, lo normal es que no haya 35 copias en 35 cachés (2..5) Solución => Informar (comando/mensaje) sólo a los nodos cuyas cachés contengan una copia del dato accedido (R/W) Directorio centralizado 1976 Tang distribuido 1978 Censier ... limitados encadenados completos 1990 Chaiken ...
arqAvaPar Coherencia de Cachés (Directorios limitados) MIMD-45 Red de interconexión P0 M0 Nodo 0 P1 M1 Nodo 1 P255 M255 Nodo 255 Nodo Bloque Off dr => 8 18 6 Mtotal = 232 => 4GB Mlocal = 224 => 16MB Mcache = 220 => 1MB con líneas de 64B Limitación => Sólo una copia (bien en ML o bien en una caché) Nodo 1 desea leer dato A en $FF000504 => Nodo 255, bloque 20, off 4 En caché 1 En Nodo 255 (C | M) En Nodo i (C) Nodo 1 le pide el dato al Nodo 255
arqAvaPar Coherencia de Cachés (Directorios limitados) MIMD-46 Red de interconexión P0 M0 Nodo 0 P1 M1 Nodo 1 P255 M255 Nodo 255 A A A Anfitrión A M255 C255 Ci Nodo 1 Nodo 255 A(255:20:4) directorio 218-1 C Nodo 20 1 8 1 255 1 0 Tamaño directorio: 218 * 9 = 288KB 1,76% de 16MB
arqAvaPar Coherencia de Cachés (Directorios limitados) MIMD-47 Nodo 0 P1 M1 Nodo 1 P255 M255 Nodo 255 N1 escribe A’(255:20:8) A’ A A 1 1 ? N1 lee A(255:20:4): N0 lee A’(255:20:4): N1 no la ve en su caché N1 pide A a N255 N255 consulta directorio N255 actualiza directorio y suministra A desde M255
arqAvaPar Coherencia de Cachés (Directorios limitados) MIMD-48 N0.Pide, N255.Dueño y N1 Posee N0 N255 N1 3: intervención 4a: revisar 4b: Dato 1: peti Total 5 msj Críticos 4 msj 2: N1 N0 N255 N1 1: peti 2: intervención 3: Dato 4: Dato Total 4 msj Críticos 4 msj N0 N255 N1 1: peti 2: intervención 3a: revisar 3b: Dato Total 4 msj Críticos 3 msj
arqAvaPar Coherencia de Cachés (Directorios limitados) MIMD-49 Nodo 0 P1 M1 Nodo 1 P255 M255 Nodo 255 N1 escribe A’(255:20:8) A’ A’ A A 1 0 1 1 1 0 Coherencia trivial (Sólo una copia en el sistema) N1 lee A(255:20:4): N0 lee A’(255:20:4): N1 no la ve en su caché N0 no la ve en su caché N1 pide A a N255 N0 pide A’ a N255 N255 consulta directorio N255 consulta directorio N255 actualiza directorio y suministra A desde M255 N255 actualiza directorio y redirige petición a N1 N1 suministra A’ desde C1 Atómico
arqAvaPar Coherencia de Cachés (Directorios completos) MIMD-50 Para permitir más de una copia en caché (sean 3), ¿Directorio?: U S M 20 35 2 3 255 4 E Nodos Estado => Necesario para coherencia: Uncached, Shared y Modified 8 218-1 Tamaño directorio (supuestos 255 nodos): 218 * (2+3*8) = 832KB 5,08% de 16MB Para permitir copia en cualquier número de cachés, ¿Directorio?: E 1 2 3 4 5 255 S 1 ------------ => 8MB 50% Se complica el mantenimiento de la coherencia No es escalable en cuanto a ocupación adicional de memoria
arqAvaPar Coherencia de Cachés (Directorios completos) MIMD-51 Nodo 255 S 1 1 1 0 0 ------- 0 A M A’ M 0 0 1 0 0 ------- 0 M 0 0 1 0 0 ------ 0 U S U S S N3 desea escribir A’: ¿ N1.R => A’ ? N3 ve que no tiene la propiedad N255 envía permiso W a N3 y actualiza directorio N3 pide exclusividad a N255 N255 enviará mensajes para invalidar copias en N1 y N2 N3 recibe permiso, escribe y envía confirmación a N255 N1 y N2 responderán a N255 que invalidaron sus copias N255 da por finalizada la transacción
arqAvaPar Coherencia de Cachés (Directorios completos) MIMD-52 Ejemplo: DASH Univ. Standford, 1992 => SGI Origin 2000 $$$$ CPU caché Mem 1 3 2 7 6 5 4 11 10 9 8 12 13 14 15 ¿ Escalable ? Cluster directorio E: U,S,M S 1 2 15 Intercluster interface Snooping
arqAvaPar Coherencia de Cachés (Directorios completos) MIMD-53 Los directorios completos no son escalables: N1 P1 M1 N7 P7 M7 N255 P255 M255 N63 P63 M63 E 1 2 3 4 5 6 7 S 1 => 288KB 1,8% Cada nuevo nodo: ensanchar un bit todos los directorios E 1 2 3 4 5 63 S 1 ------------ 2MB 12,5% E 1 2 3 4 5 255 S 1 ------------ 8MB 50%
arqAvaPar Coherencia de Cachés (Directorios encadenados) MIMD-54 Los directorios completos llenos de ceros: 2 6 4 5 8 255 1 Cabecera Directorio Encadenado 0 1 0 0 0 1 0 0 0 .......... 0 0 0 1 0 0 0 0 0 .......... 0 0 0 0 0 0 0 0 0 .......... 0 0 0 0 1 0 0 1 0 .........1 1 0 0 0 0 0 0 0 0 .......... 1 2 3 4 5 6 7 8 9 255 E N35 1 1 1 1 1 1 1 1 1 .........1 1 3 2 4 5 10 254 255 9 ¿Cómo implementar esta visión del directorio?: Ahorrar memoria Normalmente pocas copias de un dato Ocasionalmente un dato puede estar en todas las cachés
arqAvaPar Coherencia de Cachés (Directorios encadenados) MIMD-55 Mtotal = 232 => 4GB Mlocal = 224 => 16MB Mcache = 220 => 1MB con líneas de 64B 1ª aproximación: Cabecera y directorio centralizados en cada nodo B : $230000BA 35:3:A nodo bloque off 8 18 6 35:0:4 A : $23000004 2 6 4 5 8 255 1 3 10 254 9 M35 N35 P35 A N2 M2 P2 P6 N6 M6 B 5 8 255 ● 2 Cab ● 6 Dir Cache de 218 entradas: una por bloque Gestión libre y punteros N35 Cache de ¿? entradas: ¿3 por bloque?
arqAvaPar Coherencia de Cachés (Directorios encadenados) MIMD-56 Mtotal = 232 => 4GB Mlocal = 224 => 16MB Mcache = 220 => 1MB con líneas de 64B Una solución: Cabecera centralizada y directorio distribuído ¿Tamaño del directorio? Número de líneas en las caches ¿Cómo formar las listas? C : $23100504 nodo bloque off 8 18 6 tag línea 12 14 6 ? C 2 6 35 35:16404:4 561:20:4 Cabecera 218 2 N35 P35 M35 C N2 P2 M2 N6 P6 M6 16404 20 20 6 35 20 Directorio Encadenado Distribuído 214
arqAvaPar Coherencia de Cachés (Directorios encadenados) MIMD-57 Veamos el funcionamiento: C:$23100504 35:16404:4 561:20:4 nodo bloque tag línea C 2 6 35 561 Tag Sig S 2 E Cab 561 2 Tag Sig N7 7 561 6 Tag Sig 561 35 Tag Sig N35 N2 N6 ¿N7 lee C? Miss + Pedir C a N35 + Inclusión por cabecera
arqAvaPar Coherencia de Cachés (Directorios encadenados) MIMD-58 Veamos el funcionamiento: C:$23100504 35:16404:4 561:20:4 nodo bloque tag línea 561 Tag Sig S 2 E Cab 561 2 Tag Sig N7 7 561 6 Tag Sig 561 35 Tag Sig ? 2 S N35 N2 N6 ¡ Por la misma entrada compiten 212 bloques ! 35:32788:16 562:20:16 ¿N2 lee D:$23200510
arqAvaPar Coherencia de Cachés (Directorios encadenados) MIMD-59 Veamos el funcionamiento: C:$23100504 35:16404:4 561:20:4 nodo bloque tag línea ? 561 Tag Sig S 2 E Cab 561 6 Tag Sig 562 Tag Sig 561 35 Tag Sig 7 S 2 N35 N7 N2 N6 Tamaño Cab+Dir 376K => 2,3% D : $23200510 ¿N35 escribe en C? ¡ Invalidar copias existentes !
arqAvaPar Coherencia de cachés (Directorios Encadenados) MIMD-60 Ejemplo: Sequent NUMA-Q 2000 Intel QuickPath Interconnect Home Snoop MESIF Tarjetas con 4 Pentium Pros y hasta 4GB Snoopy Estados estables y transitorios Cab A E Tag S 6 7 13 6 Cabecera 226 entradas 4GB Caché 32MB Dir. Enc. Anillo SCI Hasta 64K nodos 219 entradas 32MB
arqAvaPar Coherencia de cachés (Directorios Encadenados) MIMD-61 Ejemplo: SPARC M6 2013
arqAvaPar Multicomputadores MIMD-62 Cada Pi con memoria privada inaccesible a los demás (load/store) M. Distribuida (Multicomputador) M P Red Hace atractivo a los multiprocesadores Los Pi se comunican mediante el envío y recepción de mensajes Hace más escalable a los multicomputadores 64 SUN E 10000 1.024 SUN M10-4S 1.536 Cray XK7 299.008+ Titan Cray XK7
arqAvaPar Multicomputadores (MPP) MIMD-63 MPP => Procesadores Masivamente Paralelos ¡Cambios acelerados! Red local Discos y E/S Red de interconexión de altas prestaciones UCPs Memoria Nodos Procesador Comunicación µP comerciales: Intel Xeon, IBM Power, AMD Opteron, … GPU’s Red de interconexión adaptada | propietaria y de altas prestaciones Baja latencia y elevado ancho de banda Gran capacidad de E/S (Terabytes..Petabytes) Tolerancia a fallos (Probable que falle un µP a la semana)
arqAvaPar Multicomputadores (MPP) MIMD-64 Red de interconexión adaptada | propietaria y de altas prestaciones 8 10 80% 24 50 48% 38 100 38% 67 500 13% 38, 43, 52, 59, 184, 185 y 317 TOP500 Nov/2017 Gran capacidad de E/S (Terabytes..Petabytes) 1999 ASCI Blue Pacific 1024 nodos simular 1ª fase expNuclear 3D: 20 días – 50.000 ficheros – 6TB 2010 LHC Gran Colisionador de Hadrones 27TB diarios 10..15PB año 2011 Jaguar Calentamiento Global 1PB Tolerancia a fallos ASCI-Q #2 Nov2002 10 Primeras semanas
arqAvaPar Multicomputadores (MPP) MIMD-65 Ejemplo: Iniciativa ASCI => ASC => NSCI
arqAvaPar Multicomputadores (MPP) MIMD-66 Ejemplo: Iniciativa ASCI => ASC => NSCI Exaflop Cohesionar tecnologías Plan a 15 años Enfoque integral aspectos relevantes liderazgo USA Público Privado 7/Ago/2015 DOE, DOD, NSF IARPA, NIST NASA, FBI, NIH, DHS, NOAA ¡Coordina!
arqAvaPar Multicomputadores (MPP) MIMD-67 75m$ 35m$ 437MF/W 2.500MF/W ¡Dejan de ser rentables!
arqAvaPar Multicomputadores (MPP) MIMD-68 25/01/2013 #1 Jun/2012 Sequoia – 1.572.864 Simulación dinámica de fluidos Ruido turbinas aviones supersónicos
arqAvaPar Multicomputadores (MPP) MIMD-69 Ejemplo: Intel/Sandia Red (Dic/1996..Sep/2005) 4608 procesadores: 4536 cómputo 32 servicios 32 discos 6 red 2 bootstrap 32 38 2 Otro plano Kestrel board PentPro 64 MB E/S NIC Kestrel board 6 enlaces paralelos a 400MB/seg Nodos de E/S con 640 discos (1TB)
arqAvaPar Multicomputadores (COW) MIMD-70 COW/NOW => Cluster / Network Of Workstations Estaciones de trabajo (PC’s, iMac’s, etc...) conectadas en red comercial (Ethernet (Fast, Giga), FDDI, ATM, etc...) distribuídos centralizados Máquinas dedicadas para aplicaciones específicas Aprovechar los tiempos muertos de cientos de máquinas de una organización Coste prácticamente cero Software para distribuir aplicaciones: PVM, MPI Rendimiento moderado y uso limitado ¿www.beowulf.org?
arqAvaPar Multicomputadores (COW) MIMD-71 Beowulf => Conjunto de nodos minimalistas aglutinados en red Verano de 1994 en el CESDIS (16DX4 con Ethernet) Todos sus componentes son de costes mínimos: Micros, Placas Base, Discos y Tarjetas de red y se ensamblan en uno o varios armarios (racks) Software de libre distribución (Linux, GNU, PVM, MPI) Latencia de comunicación acotada y baja (MPPs..COWs-Distri.) Afinamiento del S.O. para incremetar la eficiencia Hágaselo usted mismo
arqAvaPar Multicomputadores (COW) MIMD-72 2001
arqAvaPar Multicomputadores (MPP vs Beowulf) MIMD-73 TOP500 Nov/2017
arqAvaPar Multicomputadores (MPP vs Beowulf) MIMD-74 www.lanl.gov/projects/asci www.cita.utoronto.ca/webpages/mckenzie/index.html ASCI Q (Febrero/2002) McKenzie (Enero/2003) 2048 nodos AlphaServer * 4 => 8192 13,9 Teraflops 29.000 millones de pesetas 256 nodos Xeon 2,4 GHz * 2 Linux RedHat 7.3, GigaEthernet 1,2 Teraflops * 100 mPts *290 *12
arqAvaPar Multicomputadores (MPP vs Beowulf) MIMD-75 www.cs.vu.nl/das5/ Distributed ASCI Supercomputer Medalla IEEE 2007 Advanced School for Computing and Imaging 4 Univ. holandesas +3 Institutos: Andy Tanenbaum (DAS1) 198 * 2 * 8 3.168 núcleos Intel Xeon E5-2630 2,4GHz 12,5 TB RAM 25 PB disco 10Gigabit Infiniband CentOS Linux +220 Intel Xeon E5-26xx
arqAvaPar Multicomputadores (MPP vs Beowulf) MIMD-76 2 POWER8 2x10 Cores ..3,25 GHz ..1TB 9.699$ .. 2018
arqAvaPar Multicomputadores (MPP vs Beowulf) MIMD-77 2 Intel Xeon Gold 6132 2x14 cores 64GB 6.641$ 2018
arqAvaPar Multicomputadores (MPP vs Beowulf) MIMD-78 21 servidores Supermicro Intel Core 2 Q6600 2,4GHz + 4GB 84 núcleos + 84GB 20.600€ 21 servidores 1.000€ armario Sep/2008