Tema 8: Multiprocesadores Tema 8: Multiprocesadores 1

Anuncio
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:
Descargar