Arquitecturas Paralelas Curso 14/15 Horas 7 6 5 INTRODUCCIÓN CONECTIVIDAD MÁQUINAS MIMD MÁQUINAS SIMD y SIMT SUPERESCALARES
arqPar 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
Modelos MPP, COW, Beowulf Procesadores multinúcleo arqPar 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]
arqPar 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
arqPar 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
arqPar Multiprocesadores (UMA) MIMD-6 Ejemplo: Sun Enterprise 10000 (1998) ¿ 2014 ? Crossbar de 16x16 (Gigaplane-XB) => 19,87GB*seg 1 15 Tarjetas de 40x50 cm. coherencia cachés UltraSPARC 333MHz 1 GB de memoria Mantiene modelo UMA ¿Al límite (64µP)?
arqPar Multiprocesadores (UMA?) MIMD-7 32 38,4 ?
arqPar Multiprocesadores (UMA?) MIMD-8 3,2 GHz 32 bits 51,2GB/s Bidireccional
arqPar Multiprocesadores (UMA?) MIMD-9 Servidores gama alta de SUN con UltraSPARC † Hasta 8/01/2009 ..12 ..24 ..52 ..106 ..36x2 ..72x2
arqPar Multiprocesadores (UMA?) MIMD-10 Servidores gama alta de SUN con SPARC64 VI [2n] y VII -VII+ [4n] M4000 ..16 M5000 ..32 M8000 ..64 M9000 ..256 2007 .. 2010 ..
arqPar Multiprocesadores (UMA?) MIMD-11 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
arqPar Multiprocesadores (UMA?) MIMD-12 Ejemplo: SPARC Enterprise M9000 => 64 SPARC64 VII IBM POWER
arqPar Multiprocesadores (UMA?) MIMD-13 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 ¿UMA? 2009..2010 Compra SUN
arqPar Multiprocesadores (UMA?) MIMD-14 Servidores gama alta de SUN con SPARC64 X (16 núcleos [2t]) M10-1 16 ..512GB M10-4 64 ..2TB M10-4S ..1024 ..32TB 2013 .. 232GB/s * 4
arqPar Multiprocesadores (UMA?) MIMD-15 Servidores gama alta de SUN con SPARC64 X (16 núcleos [2t])
arqPar Multiprocesadores (UMA?) MIMD-16 Servidores gama alta de SUN con SPARC M6-32 (12 núcleos [8t]) 3.072GB/s 2013 ..
arqPar Multiprocesadores (UMA) MIMD-17 † Hasta ¿2012? 4x16x8 = 512 Threads 54.981$ 98.141$ 117.881$ 128GB 256GB 512GB 2012
arqPar Multiprocesadores (UMA) MIMD-18 4x8x8 = 256Threads 42.966$ 76.300$ 234.964$ 128GB 512GB 2TB 2013
arqPar Multiprocesadores (UMA) MIMD-19 8x16x8 = 1.024Threads 211.829$ 494.205$ 2TB 4TB 2013 35cm 44,5cm 80cm ¿Coste real? 120Kg
arqPar Multiprocesadores (UMA) MIMD-20 Con descuentos => 4.663.073$ www.tpc.org/tpcc Mar/2013 #3 Results Ejemplo: SPARC T5-8 Mantenimiento 1.597.398$ 1.741.042$ 258TB 86TB 651.458$ 8 SPARC T5 4TB memoria 219.920$ 1.888.000$
arqPar Multiprocesadores (UMA?) MIMD-21 Servidores gama alta de SUN vs IBM 2013
arqPar Multiprocesadores (NUMA) MIMD-22 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
arqPar Multiprocesadores (NUMA) MIMD-23 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’
arqPar Multiprocesadores (CC-NUMA) MIMD-24 Ejemplo: Sequent NUMA-Q 2000 Tarjetas con 4 Pentium Pros y hasta 4GB IBM Power E880 Coherencia Cachés El más grande (199?): 63 nodos (252µP) 238Bytes (256GB) Anillo SCI Hasta 64K nodos
arqPar Multiprocesadores (COMA) MIMD-25 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
arqPar Multiprocesadores (COMA) MIMD-26 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!
arqPar Coherencia de Cachés MIMD-27 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
arqPar 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
arqPar 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?
arqPar 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
arqPar 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
arqPar 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?
arqPar 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.)
arqPar 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)
arqPar 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
arqPar 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?
arqPar 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
arqPar 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?)
arqPar 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
arqPar 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
arqPar 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 ?
arqPar 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 ?
arqPar 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%
arqPar 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 ...
arqPar 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
arqPar 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
arqPar 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 A 1 1 1 0 1 0 1 1 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
arqPar Coherencia de Cachés (Directorios completos) MIMD-48 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
arqPar Coherencia de Cachés (Directorios completos) MIMD-49 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
arqPar Coherencia de Cachés (Directorios completos) MIMD-50 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
arqPar Coherencia de Cachés (Directorios completos) MIMD-51 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%
arqPar Coherencia de Cachés (Directorios encadenados) MIMD-52 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
arqPar Coherencia de Cachés (Directorios encadenados) MIMD-53 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?
arqPar Coherencia de Cachés (Directorios encadenados) MIMD-54 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
arqPar Coherencia de Cachés (Directorios encadenados) MIMD-55 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
arqPar Coherencia de Cachés (Directorios encadenados) MIMD-56 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
arqPar Coherencia de Cachés (Directorios encadenados) MIMD-57 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 360K => 2,20% D : $23200510 ¿N35 escribe en C? ¡ Invalidar copias existentes !
arqPar Coherencia de cachés (Directorios Encadenados) MIMD-58 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
arqPar Coherencia de cachés (Directorios Encadenados) MIMD-59 Ejemplo: SPARC M6 2013
arqPar Multicomputadores MIMD-60 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
arqPar Multicomputadores (MPP) MIMD-61 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)
arqPar Multicomputadores (MPP) MIMD-62 Red de interconexión adaptada | propietaria y de altas prestaciones 7 10 70% 24 50 48% 40 100 40% 65 500 13% 17, 67, 290, 335 y 420 TOP500 Nov/2014 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
arqPar Multicomputadores (MPP) MIMD-63 Ejemplo: Iniciativa ASCI => ASC
arqPar Multicomputadores (MPP) MIMD-64 75m$ 35m$ 437MF/W 2.500MF/W ¡Dejan de ser rentables!
arqPar Multicomputadores (MPP) MIMD-65 25/01/2013 #1 Jun/2012 Sequoia – 1.572.864 Simulación dinámica de fluidos Ruido turbinas aviones supersónicos
arqPar Multicomputadores (MPP) MIMD-66 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)
arqPar Multicomputadores (COW) MIMD-67 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?
arqPar Multicomputadores (COW) MIMD-68 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
arqPar Multicomputadores (COW) MIMD-69 2001
arqPar Multicomputadores (MPP vs Beowulf) MIMD-70
arqPar Multicomputadores (MPP vs Beowulf) MIMD-71 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
arqPar Multicomputadores (MPP vs Beowulf) MIMD-72 www.cs.vu.nl/das4/ Distributed ASCI Supercomputer Medalla IEEE 2007 Advanced School for Computing and Imaging 4 Univ. holandesas + 2 Institutos: Andy Tanenbaum (DAS1) 198 * 2 * 4 1.584 núcleos Intel Xeon E5620 2,4GHz 5 TB RAM 200 TB disco 10Gigabit Infiniband CentOS Linux
arqPar Multicomputadores (MPP vs Beowulf) MIMD-73 http://www.redbooks.ibm.com/redpapers/pdfs/redp4655.pdf IBM BladeCenter HT IBM BladeCenter PS700, 701 y 702 12 PS700 | PS701 6 PS702 4 / 8 / 8+8 POWER7 Cores ..3 GHz ..256GB 104.000$.. 16.544$ 2012 2014 IBM BladeCenter HX5 Xeon 6, 8 y 10C => 7.600$ .. 19.757$
arqPar Multicomputadores (MPP vs Beowulf) MIMD-74 2.600$..6.000$ * 16 2014 www.microway.com www.hp.com www.penguincomputing.com ..160 Intel Xeon ..18 Hasta 32 Xeon ..18 ? Xeon ..14
arqPar Multicomputadores (MPP vs Beowulf) MIMD-75 21 servidores Supermicro Intel Core 2 Q6600 2,4GHz + 4GB 84 núcleos + 84GB 20.600€ 21 servidores 1.000€ armario Sep/2008
arqPar Multicomputadores (Alta disponibilidad) MIMD-76 ? www-1.ibm.com/servers/esdd/tutorials/clustering Tipo de negocio Impacto por hora de caída Centro de reservas aéreas 89.500$ Operaciones bursátiles 6,45 millones $ Venta por catálogo 90.000$ Autorización tarjetas de crédito 2,6 millones $ Canales de venta de hogar 113.750$ Servicio de paquetería 150.250$ 9 90% sin fallos 99 99% 999 99,9% 99999 5,39’ caído al año ¿Regla de los cinco nueves?
arqPar Procesadores Multinúcleo (Intel) MIMD-77 ¿Por qué varios núcleos? ConsumoDin = C * A * V2 * F www.intel.com/pressroom/kits/quadcore 60MHz 3,8GHz ∆ F
arqPar Procesadores Multinúcleo (Intel) MIMD-78 Trabajar con frecuencias más bajas y … ? + rendimiento
arqPar Procesadores Multinúcleo (Intel) MIMD-79 Multinúcleo Mejores rendimientos esperados ? 2006 cumpliéndose espectativas
arqPar Procesadores Multinúcleo MIMD-80 Multinúcleo Venta de microprocesadores
arqPar Procesadores Multinúcleo MIMD-81 Multinúcleo Uso en móviles
arqPar Procesadores Multinúcleo MIMD-82 http://isscc.org/trends/index.html 2014
arqPar Procesadores Multinúcleo (Intel) MIMD-83 Dos pequeños mejor que uno grande 0.87x 0.51x
arqPar Procesadores Multinúcleo (Intel) MIMD-84 ¿Qué aspecto tienen? Smart Cache Caches independientes
arqPar Procesadores Multinúcleo (Intel) MIMD-85 Cache compartida vs independiente
Multicores Multicores actuales (Intel) multi-86 ¿Qué procesadores están en marcha? 2015
Multicores Multicores actuales (Intel) multi-87 ¿Qué procesadores están en marcha? 2007 2008 2010 2011 2012 2013 2014
arqPar Procesadores Multinúcleo (Intel) MIMD-88 Intel Core 2 Quad Q6600 (4 núcleos a 2,4 GHz) => Sep/2007 1.000€ Smart Cache 4MB 2007..2009 2,33 .. 3 GHz 4, 6, 8 y 12MB L2 Sin HT
arqPar Procesadores Multinúcleo (Intel) MIMD-89 Intel Core i7 920 (4 núcleos a 2,66 GHz) => Mayo/2009 962€ 2008.. 1,06 .. 3,33 GHz 4, 6, 8 y 12MB L3 2, 4 y 6 núcleos con HT 2011.. 1,5 .. 3,6 GHz 4, 6, 8, 10 y 12MB L3 2, 4 y 6 núcleos con HT
Multicores Multicores actuales (Intel) multi-90 Intel Xeon E7 Family 32KB L1I + 32KB L1D 256KB * 8 24MB L3 E7 v2 2014.. 1.446..6.841$ 1,9 .. 3,4 GHz 12 .. 37,5 MB L3 6, 8, 10, 12 y 15 núcleos con 2 HT Junio 2011: 2 Xeon E5520 8N/16T 1.925€ Micro 373$ Xeon E7-88xx => 2.280..4.616$
arqPar Procesadores Multinúcleo (AMD) MIMD-91 AMD Quad-Core Phenom X4 2007
arqPar Procesadores Multinúcleo (AMD) MIMD-92 AMD Quad-Core Phenom (Jerarquía de caches) L1I 64KB L1D 64KB
arqPar Procesadores Multinúcleo (AMD) MIMD-93 AMD Quad-Core Phenom ¿Bueno, bonito y barato? Consumo
arqPar Procesadores Multinúcleo (AMD) MIMD-94 AMD FX 8 cores 2011.. 2,8 .. 4,2 GHz 4, 6 y 8 MB L2 y 8MB L3 4, 6 y 8 núcleos 120..300$
arqPar Procesadores Multinúcleo (AMD) MIMD-95 AMD 4/8/12/16-Core: Opteron 6200 y 6300 2MB L2 x 8 16MB L3 240..1.400$
arqPar Procesadores Multinúcleo (IBM) MIMD-96 2013: IBM presenta el POWER 8 [12 núcleos] 512KB L2 * núcleo + 96MB L3 compartida + 128MB L4 offChip
arqPar Procesadores Multinúcleo (Oracle) MIMD-97 27/Mar/2013: Oracle presenta el SPARC T5 [16 núcleos: 128Threads] 128KB L2 + 8MB L3 16 42.580$ T5-2
arqPar Procesadores Multinúcleo (Tilera) MIMD-98 Marzo/2013 => Tilera [TILE-Gx 8072]: www.tilera.com 8 x TILE-Gx36 288 cores TILExtreme-Gx Duo 9, 16, 36, 72 cores – 1..1,2 GHz - 32K L12; 256K L2; 2,3 .. 18MB L3
arqPar Procesadores Multinúcleo (Tilera) MIMD-99 Feb/2015=> Ezchip [Adquirió Tilera en Jul/2014] 100 ARM 64bit Jul2016.. ??
arqPar Procesadores Multinúcleo (Kalray) MIMD-100 Nov/2013 => KALRAY [MPPA 256]: www.kalray.eu 25Feb2015 Q4_2015 Hasta 5TFLOPS Toro 2D 16 núcleos
arqPar Procesadores Multinúcleo (Adapteva) MIMD-101 3/10/2011 => Adapteva[EpiphanyIV]: www.adapteva.com ¡ Hasta 4096 núcleos en un chip !
arqPar Procesadores Multinúcleo (Coherencia) MIMD-102 Cache compartida: Bus vs Red UMA UCA NUMA NUCA
arqPar Procesadores Many-core (Intel) MIMD-103 Nov 2012: Intel lanza el coprocesador Xeon Phi (60/61 núcleos) Supercomputador Estampida Universidad de Texas N Xeons => 2 Petaflops M MICs => 8 Petaflops #7 top500 Nov/2012 Supercomputador Tianhe-2 Centro Supercomputación China 32.000 Xeon 12 cores 48.000 Phi 57 cores #1 top500 Nov/2014
arqPar Manycores (Intel) MIMD-104 http://download.intel.com/research/platform/terascale/terascale_overview_paper.pdf Acelerador partes secuenciales Heterogéneos
arqPar Manycores (NVIDIA) MIMD-105 Tarjetas Gráficas: NVIDIA-Kepler 1.536 núcleos ¿MIMD? 2006 2008 2010 2012 2014 G80 GT200 Fermi Kepler Maxwell 128 256 512 1.536 2.408 GTX TITAN X 3.072
arqPar Procesadores Multinúcleo (Pegas) MIMD-106 Multicore Is Bad News for Supercomputers. Samuel K. Moore – IEEE SPECTRUM Nov-2008
arqPar Procesadores Multinúcleo (¿Solución?) MIMD-107 Intel Technology Journal, Volume 11, Issue 3, 2007 160GB/s 2014 Fujitsu Supercomputers
arqPar Procesadores Multinúcleo (¿Solución?) MIMD-108 GTC Marzo/2015 1TB/seg ¿ 2016 ? FIN