Arquitecturas Paralelas Curso 14/15

Slides:



Advertisements
Presentaciones similares
Arquitectura de Sistema de E/S
Advertisements

Multiprocesadores 3.1 Dominios de aplicación
Microprocesadores para comunicaciones Escuela Técnica Superior de Ingenieros de Telecomunicación Organización y estructura de las memorias caché.
Microprocesadores.
Ana Lucia Farfan Estrada. Angela Aybar Rengifo.
Introducción a los Sistemas Operativos Memoria Virtual
Arquitecturas Avanzadas Curso 10/11
Sistemas Operativos Distribuidos
MEMORIA 1.
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
Arquitecturas Paralelas IF - EHU Arquitecturas Paralelas 7. Coherencia de Datos en computadores DSM - Introducción - Directorios de coherencia: MP/MC -
Memoria cache.
Sistemas Distribuidos y Paralelos
Problema Procesador-Memoria
PROCESAMIENTO PARALELO.  Organización lógica ◦ Visión que tiene el programados  Capacidad de expresar tareas paralelas (Estructura de control)  Método.
Universidad de SonoraArquitectura de Computadoras1 PROGRAMA CION PARALELA Y DISTRIBUIDA PRESENTA: JESUS BECERRIL PACHECO MODELOS DE ACCESO A LA MEMORIA.
PROCESAMIENTO PARALELO
PAULA ANDREA CHAVEZ C. GRADO: PROFESOR: JOSE WILSON QUINTERO
Diseño y Mantenimiento de un cluster para la dinámica de fluidos
Unidad III Administración de procesos
Procesamiento paralelo
OMAR SANCHEZ ROBLES HECTOR PEREZ GARCIA. “Sistemas de cómputo compuesto por un gran número de CPU´s conectados mediante una red de alta velocidad”, Tanenbaum.
INSTITUTO TECNOLÓGICO DE CD. GUZMÁN
Memoria Cachés. Universidad de SonoraArquitectura de Computadoras2 Introducción Caché es el nivel de memoria situada entre el procesador y la memoria.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (apunts de l’assignatura en format transparència) Beowulf Vs Clusters.
UCAB / USB / UCV Prof. Wílmer PereiraJOINCIC 2012 Arquitecturas Paralelas: Multinúcleos, Multiprocesadores, Multicomputadores y Grids Prof. Wílmer Pereira.
Asignación de Espacio No Contiguo
Soporte HW para Administración de Memoria Cecilia Hernández
Introducción a los Sistemas Operativos
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
14 de diciembre de 2005 Universidad de Murcia1 Modelos de computadores paralelos Domingo Giménez Departamento de Informática y Sistemas Universidad de.
Arquitecturas Paralelas
Tema 3: Paralelismo en Multiprocesadores (I)
Organización del Computador
PROGRAMACIÓN PARALELA Modelos de programación paralela Modelos computacionales Paradigmas de programación paralela Programación en memoria compartida:
Memoria virtual. Introducción Muchos procesos, una memoria Programas demasiado grandes para caber en memoria principal Espacio de direccionamiento mucho.
Memoria virtual.
Algo de Sistemas Operativos, Arquitecturas y Paralelismo
ProParPresentaciónCurso 14/15 Departamento: Informática Aplicada => Sistemas Informáticos (Bloque IV - Planta 4ª) Profesores: Pablo Carazo D4417
ARQUITECTURAS PARALELAS
Sistemas Operativos Avanzados
ArqAvaPresentaciónCurso 10/11 Departamento:Informática Aplicada (A.T.C.) (Bloque IV - Planta 4ª) Profesores: Pablo Carazo D4411
Tema 5: Multiprocesadores
ArqParPresentaciónCurso 14/15 Departamento:Sistemas Informáticos (A.T.C.) (Bloque IV - Planta 4ª) Profesores: Pablo Carazo D4417
Escuela Normal “Profr. Darío Rodríguez Cruz”
Historia de las computadora INFORMATICA. apareció en un artículo del New York Times el 3 de noviembre de Seis años más tarde un fabricante tomó.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 20 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Protocolos de Sondeo SNOOPY
EL SERVICIO ORIENTADO A CONEXIONES Sigue el modelo del sistema telefónico. Para hablar con alguien levantamos el auricular, marcamos el número, Hablamos.
Procesadores El procesador es el elemento vital del PC.
I.- COMPONENTES BÁSICOS DE UNA MICROCOMPUTADORA
ARQUITECTURA ALTERNATIVA DE SERVIDORES SISTEMAS OPERTIVOS DE RED En un sistema operativo de red los usuarios saben que están conectados a la red y que.
Microprocesadores actuales
Son los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un.
 En la RAM se cargan todas las instrucciones que ejecutan la unidad central de procesamiento (procesador) y otras unidades de cómputo.  Se denominan.
PROCESAMIENTO PARALELO SUPERCOMPUTADORAS, MULTIPROCESAMIENTO, BENCHMARKS CRUZ VAZQUEZ MA.ROSAURA CRUZ VAZQUEZ MA.ROSAURA GUERRERO REBOLLO ARTURO GUERRERO.
Tipos de procesadores de ultima generación
Computadoras de Alto Rendimiento (HPC)
Republica Bolivariana de Venezuela Universidad Alonso de Ojeda Facultad de Ingeniería Escuela de Computación Ing. Prof. Leonel Sequera Entrada y Salidas.
Arquitecturas AvanzadasASCI QCurso 10/11 Completo => Alpha EV-68 a 1,25GHz => 30TFlops Contrato 22/8/2000 => 200 m$ => 175 m€ => mPts.
Actualización del Superordenador Virtual Gallego Valencia, 12 Abril Carlos Fernández Sánchez Responsable Técnico de Sistemas
Sistemas Distribuidos Conceptos Básicos Propiedades MSI. Nancy A. Olivares Ruiz.
Arquitectura de Computadores Clase 18 Memoria Caché: Fundamentos IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela.
ORDENADOR HARDWARE UNIDAD CENTRAL Microprocesador memoria PERIFÉRICOS Teclado, ratón, Escáner, Impresora, Webcam, lápiz, Etc. SOFTWARE SISTEMAS OPERATIVOS.
Arquitectura de Computadores
INTRODUCCIÓN CONECTIVIDAD COPROCESAMIENTO MÁQUINAS MIMD MÁQUINAS SIMD
arqAvaPar Procesadores Multinúcleo (Intel) MIMD-79
proPar Necesidades comParalelos-30
proPar Multicomputadores comParalelos-57
Transcripción de la presentación:

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