Tema 8: Multiprocesadores Tema 8: Multiprocesadores 1 Conceptos y Clasificación 2 Multiprocesadores Simétricos (SMP) 2.1 Coherencia de cache 3 MP escalables de memoria compartida (SSMP) 4 MP escalables de memoria distribuida (DSMP) 5 Redes de estaciones de trabajo (NOW) Arquitectura de Computadores y Sistemas Operativos I 4º Curso Plan 96 Escuela Técnica Superior Ingenieros Telecomunicaciones DISCA 1 Conceptos 1 Conceptos http://www.top500.org/orsc • Como mejorar prestaciones: • Definición: – Multiprogramación – Conjunto de procesadores interconectados, diseñados para la ejecución conjunta de aplicaciones. • Aumenta productividad al repartir los procesos. • El SO puede ser quien lo gestione. – Aplicación distribuidas • Justificación DISCA-4 • Disminuye el tiempo de ejecución de una aplicación. • Permite ejecutar aplicaciones con mayor consumo de recursos (E/S, memoria, etc.) • Aplicaciones especiales. DISCA-3 – Existen problemas para los que es necesaria una mayor potencia de cálculo. Para conseguir esa potencia de cálculo no es suficiente el aumento de la velocidad de reloj ni otras mejoras estructurales. – Aplicaciones = Conjunto de tareas que cooperan – Se pueden utilizar los microprocesadores “estándar” como elementos constructivos 1 Clasificación (2) 1. Clasificación • Alternativas de interconexión • Según el modelo de programación y comunicación: Pn P1 Switch Pn P1 – Variables compartidas $ Primer Nivel $ $ • Comunicación implícita y no siempre visible Bus Memoria principal – Paso de mensajes. Dispositivos E/S Mem • Comunicación y sincronización explicita (a) Cache compartida • Según la arquitectura del sistema de memoria: (b) Memoria compartida con bus P1 Pn $ $ Pn P1 $ Mem Mem $ Red de interconexión Red de interconexión (c) Dancehall (d) Memoria distribuida 2 Multiprocesadores Simétricos (SMP) 2.1 Coherencia de cache • Todos los procesadores comparten la misma memoria y el mismo espacio de direccionamiento. • El tiempo de acceso a memoria es igual para todos los procesadores y todas las posiciones (UMA). • Mecanismos de sincronización para el acceso a recursos comunes. • Sistemas más comunes basados en BUS. • Modelo de programación basado en variables compartidas, aunque es posible simular paso de mensajes. • El principal problema de estos sistemas es la coherencia de la memoria cache. P2 P1 u =? $ P3 u =? 4 $ u =7 $ 5 3 u :5 u :5 1 DispositivosI/O u :5 2 • Los procesadores ven distintos valores de u después del evento 3 • Con políticas write-back, el valor que se escriba en memoria depende de que cache vuelque el bloque a memoria y cuando – Los procesos que accedan a memoria pueden ver un valor obsoleto • Inaceptable para los programas, y ¡frecuente! DISCA-8 Memoria DISCA-7 Siempre que hay accesos a almacenamiento compartido y caches hay un problema de coherencia de caches. DISCA-6 Mem Mem DISCA-5 – Memoria compartida – Memoria distribuida 2.1 Coherencia de cache (3) 2.1 Coherencia de cache (2) Bus snoop Mem • Operaciones detectadas ó generadas en el bus: – BusWr – BusRd – Todas las escrituras de todos los procesadores se realiza a través del bus – Ejemplo: procesador de 200MHz, 1CPI y 15% instr. STORE de 8 bytes – Cada procesador genera 30M stores o 240MB datos por segundo – Un bus de 1GB/s puede soportar sólo 4 procesadores sin saturarse – Write-through es especialmente impopular para SMPs PrWr/BusWr PrRd/-- V BusWr/-- PrRd/BusRd • WRITE-THROUGH : Cada bloque en dos estados posibles. • Bits de estado hardware asociados sólo con bloques de cache – los otros bloques se pueden ver como inválidos (no-presentes) • La escritura invalida todas las demás caches (no se cambia el estado local) – podemos tener múltiples lectores simultáneamente de un bloque, pero una escritura los invalida todos • Antememorias write-back absorben la mayoría de escrituras como aciertos de cache I PrWr/BusWr – Las escrituras acertadas no usan el bus – ¿Cómo asegurar propagación de escrituras? – Necesitamos protocolos más sofisticados DISCA-12 – PrRd (read) – PrWr (write) Cache-memory transaction • Requerimiento de elevado ancho de banda BusRd/-- • Eventos generados por el procesador: I/O devices 2.1 Coherencia de cache (5) DISCA-11 – V: Válido – I: No valido $ DISCA-10 $ 2.1 Coherencia de cache (4) • Estados: Pn P1 DISCA-9 • Espionaje (snoopy) : Basados en que las acciones en el bus son vistas por todos los controladores de cache. • Hasta ahora los controladores de cache mantenían la información en la cache basándose en las operaciones del procesador y el estado de los bloques, ahora tendrán en cuenta además lo que ocurra en el bus. • Los protocolos de coherencia dependen del mecanismo de actualización de memoria (write-back o write-through). • OBJETIVO = Asegurar la coherencia de las variables compartidas y aprovechar el ancho de banda efectivo del bus. 2.1 Coherencia de cache (7) 2.1 Coherencia de cache (6) M – Inválido (I): no presente en cahe – Compartido (Shared) (S): uno o más – Sucio o Modificado (M): uno sólo • BusRd/Flush Eventos generados por el procesador: PrWr/BusRdX – PrRd (read) – PrWr (write) – BusRd: pide una copia que no intenta modificar – BusRdX: pide una copia que intenta modificar – BusWB: actualiza memoria • BusRdX/Flush S Operaciones detectadas en el bus PrRd/BusRd BusRdX/— PrRd/— BusRd/— PrWr/BusRdX Acciones del controlador de cache: I DISCA-13 • • Los reemplazamientos cambian el estado de dos bloques • Escritura en un bloque en estado S como ya tiene los datos actualizados; podría usarse BusUpgr en vez de BusRdX • Cuando se observa BusRd en el estado M: ¿qué transición hacer? • Depende de las expectativas de patrones de acceso PrWr/— – Flush: vuelca al bus el contenido de un bloque P1 $ u:5 4 P2 P3 $ $ u:5 5 1 • MESI: protocolo con cuatro estados basado en MSI • Estados: PrWr/— M – Los mismos que en MSI – Estado nuevo: E. Este estado indica un acceso exclusivo en lectura 3 BusRd/Flush PrWr/BusRdX PrWr/BusRdX I/O devices u:5 2 BusRdX/Flush S Memory BusRdX/— PrRd/BusRd • La elección puede afectar a las prestaciones del sistema de memoria 2.1 Coherencia de cache (9) 2.1 Coherencia de cache (8) PrRd/— – S: se asume que se volverá a leer pronto, en vez de que otro escriba • bueno debido a la mayoría de lecturas de datos • pero hay que tener en cuenta los datos “migratorios” – Yo leo y escribo, luego tu lees y escribes, después X lee y escribe... – Mejor ir al estado I, para no tener que ser invalidado por tu escritura – Synapse transiciona al estado I – Sequent Symmetry y MIT Alewife usan protocolos adaptativos PrRd/PrWr/— M PrWr/— PrWr/ BusRdX BusRd/ Flush BusRdX/ Flush E BusRd/ • Eventos generados por PrWr/ PrRd/— Flush’ BusRdX/ BusRdX el procesador: (MSI) Flush’ PrRd/ S BusRd(S) • Operaciones detectadas en el bus: BusRdX/ PrRd/ (MSI) Flush’ BusRd(S) – Línea S: Línea en OR cableada. PrRd/— BusRd/— • Acciones del controlador de cache: (MSI) – Flush’: envío cache a cache I DISCA-14 PrRd/— PrRd/— BusRd/Flush’ I DISCA-16 • Diseño de un protocolo write-back con invalidación: Protocolo MSI Estados: DISCA-15 • 2.1 Coherencia de cache (10) Ejercicio 1. 1. Un determinado multiprocesador soluciona el problema de la coherencia de caches con un método de información centralizada. Supongamos que en la tabla existen las siguientes entradas: • Cuando la red de interconexión no es bus no es posible utilizar espionaje. • El espía se sustituye por: – intercambio de mensajes entre controladores – información común accesible por todos los controladores (directorios) • Protocolos parecidos a los usados con espionaje (MSI, MESI, etc.) c1 b1 x x x x x x Modificados x p1 p2 p3 pn Mod a 1 0 0 ..0.. 0 1 b 1 1 1 ..0.. 1 0 c 0 0 0 ..0.. 0 1 d 1 0 0 ..0.. 0 0 e 1 0 0 ..0.. 1 1 x 2 Multiprocesadores Simétricos (SMP) b) ¿Qué acciones se tendrían que realizar si el procesador 3 (p3) desea leer una palabra del bloque de la entrada a?. DISCA-18 x DISCA-17 a) Justifica si son válidas y el significado de cada una de las entradas. 2. Ejemplos SMP comerciales • Ejemplos de SMP comerciales basados en BUS • Procesadores con soporte SMP de coste medio/bajo: – INTEL: • Xeon DP (2 proc.) ≈2500 € • Xeon MP (4 proc.) ≈ 6000 € – AMD • Athlon MP (2 proc.) ≈ 2000 € • Apple G5 (2 proc.) ≈ 3000 € (64 bits) DISCA-20 DISCA-19 – PowerPC 3 Multiprocesadores escalables de 2.Procesadore multicore memoria compartida (SSMP) ¿Qué pasaría si se ponen varias CPU completas en un único encapsulado? • La respuesta en un procesador multicore • Dentro del chip se comportan como un multiprocesador de memoria compartida • Multiprocesadores de arquitectura de memoria distribuida, en los que todos los procesadores comparten un único espacio de direccionamiento. • Características –Problemas de coherencia caché 3. ccNUMA: aldebaran.upv.es 3. SSMP (2) • SGI Altix 3700: http://www.sgi.com/servers/altix • Nodos: hasta 4 Itanium 2 y 32GB RAM – Hasta 1000 procesadores – DEC-Alpha – Memoria local – Interfaz de red integrado en el sistema de memoria – Links 650 MB/s – E/S externa desde nodos especiales http://www.cray.com DISCA-23 • Cray T3E DISCA-24 Athlon64x2, Pentium D, Opteron D, G5 dual, Cell Processsor, Sun Niagara, Intel Intanium DISCA-21 • Pensados para acelerar la ejecución de múltiples aplicaciones. • Ejemplos: • Los mecanismos de comunicación están implementados en los controladores de cache. (Máquinas NUMA) • Más fáciles de ampliar (escalables) que los SMP, lo que significa un numero mayor de procesadores • COMA: Cache Only Memory Architecture. Sistema en el que prácticamente toda la memoria está en las caches DISCA-22 – Modelo de programación : Variables compartidas – Arquitectura de memoria : Memoria distribuida 4 Multiprocesadores escalables de memoria distribuida (DSMP) 4. DSMP (2) • Multicomputadores: El elemento constructivo está formado por un procesador, su sistema de memoria y por un sistema de E/S. • Características generales: • NEC SX6 Vector http://www.sw.nec.co.jp/hpc/sx-e/sx6/index.html Nodos: SMP DISCA-25 5 Redes de estaciones de trabajo (NOW) 4. DSMP (3) • CRAY XT3 http://www.cray.com/products/xt3/ • Las estaciones de trabajo individuales suelen estar conectadas a una red de área local. • Salvo en picos puntuales de trabajo, no se utilizan completamente los recursos de cada estación. • Clases de recursos: • Más de 30000 procesadores (Opteron) DISCA-27 – Espacio de disco. – E/S especial (CD-ROM, disp. para backups, impresoras…) – Recursos de computación (CPU y memoria) • ¿Cómo aprovechar al 100% estos recursos? • Existen problemas que requieren más prestaciones, ¿necesitamos estaciones más potentes? DISCA-28 • Orientados a ejecutar aplicaciones especialmente diseñadas para conseguir el paralelismo o SO especiales. • La red tiene un tiempo de transferencia similar a un acceso a memoria. • MPP: Massive Parallel Processor DISCA-26 Entre nodos: DSMP – Modelo de programación: Paso de mensajes mediante operaciones de E/S explícitas. – Arquitectura de memoria: Memoria distribuida. Cada procesador tiene su espacio de direccionamiento. 5 Redes de estaciones de trabajo(2) 5 Redes de estaciones de trabajo(3) • Problemas de los sistemas MPP: • Elementos HW de MP sustituidos por entornos SW que dan una visión paralela de la NOW • Ejemplos de entornos: – Pequeño volumen de ventas. Difícil amortización de diseño. – Coste de mantenimiento alto. – Coste del SW alto, ya sean aplicaciones especiales o el diseño de sistemas operativos (SSMP y SMP). • CORBA, DCOM (MS-Windows), JXTA ó JMS (Java) – – – – Ethernet (100/1000 Mb). ATM para red local (150 Mb). Autonet (100 Mb). Myrinet (650/2200 Mb). Ejercicio 2. PrRd/— PrWr/— M BusWr/Flush PrW/--- BusRd/Flush R BusWr/— BusRd/— PrRd/— PrWr/BusWr S PrRd/— BusRd/— PrRd/ BusRd I BusWr/— DISCA-32 PrWr/BusRd,BusWr DISCA-31 Se ha observado que los procesadores a veces escriben una única palabra en un bloque de la cache. Para optimizar este caso, en vez de usar siempre write-back, se propone el siguiente protocolo: 1.La primera escritura sobre un bloque el procesador realiza un write-through y pone el bloque en un estado R (reserved). 2.Una escritura en un bloque en estado R realiza una transición al estado M que utiliza write-back. Dibujar el diagrama de estados modificando el MSI. En el diagrama se utilizará: PrRd, PrWr, BusRd, BusWr y Flush Bus/Conmutadores. Conmutadores Conmutadores. Conmutadores. DISCA-30 • Las prestaciones de NOW pueden mejorar con redes de prestaciones avanzadas: DISCA-29 • Estaciones de trabajo SMP cada vez más comunes. • La estructura de de una red de área local se parece a la estructura típica de un multiprocesador. • Las redes de estaciones de trabajo intentan “crear” un sistema multiprocesador utilizando el conjunto de recursos que se pueden compartir en una red de área local. – PVM: Parallel Virtual Machine. Diseño de aplicaciones distribuidas. – CONDOR. Aplicaciones distribuidas y multiprogramación – Objetos distribuidos: