1
D A CCEPBA
DSM:Distributed Shared Memory
Multiprocessors
❑ Características Generales
❑ Implementación de Memoria CompartidaCoherente
❑ Modelos de Consistencia de Memoria
❑ Sincronización
2
D A CCEPBA
Características Generales
✓ Modelo de programación: variable compartidas
✓ Memoria físicamente distribuida
Aspectos esenciales
✓ Implementación de la memoria compartida ycoherente
✓ Modelo de consistencia de memoria
✓ Primitivas de sincronización
NI
PM
NI
PM
NI
PM
NI
PM
RED
Espacio de memoria compartido
load (X)
X
3
D A CCEPBA
Implementación de lamemoria compartida y coherente
❑ Alternativas
✓ Implementación hardwareUsa un sistema de memorias cache
coherentes. Es caro pero rápido .
✓ Implementación softwareUsa el sistema de memoria virtual estandard,con modificaciones en el software de
tratamiento de fallos de página. Es lentopero barato .
✓ Implementación híbrida
4
D A CCEPBA
Implementación hardware
❑ Sistema de memorias caches coherentes
Problema
✓ Las soluciones típicas para SMP (basadas enfisgoneador de bus) no son adecuadas paramemoria distribuida en una red de interconexióndirecta
NI
PM
Espacio de memoria compartido
C
RED
5
D A CCEPBA
Implementación Hardware
❑ Sistemas cc-NUMA basados en directorios
Estado: No cacheadoCompartidoSucio
Lista de Apuntadores: Permite enviar comandos de consistenciade forma selectiva, evitando broadcast.
Memoria Principal Directorio
Línea
Lista de Apuntadores
Estado
implementado
Memoria y directoriodistribuidos
en el nodo i
6
D A CCEPBA
Implementación Hardware
❑ Sistemas cc-NUMA basados en directorios
Directorio de Correspondencia Completa (Full Map)
Lista de Apuntadores: Un bit por cada cache del sistema. El bit i es1 si la cache tiene una copia de la linea asociada a la entrada deldirectorio.
Esta técnica no es escalable.
Entrada del Directorio
1 i CS
7
D A CCEPBA
Implementación Hardware
❑ Sistemas cc-NUMA basados en directorios
Directorios de Correspondencia Limitada (Limited Map)
Lista de Apuntadores: L apuntadores a caches que contienen unacopia válida de la línea. Si existen más de L copias entonces se usancomandos de broadcast para mantener la coherencia o se invalidanalgunas de las copias (para que sólo queden L copias válidas).
Entrada del Directorio
1 LS
Cache
8
D A CCEPBA
Implementación Hardware
❑ Sistemas cc-NUMA basados en directorios
Directorio Encadenado
Lista de Apuntadores: Un solo apuntador al comienzo de unacadena con las caches que contienen una copia de la línea.
La latencia de las invalidaciones es muy elevada.
Entrada del Directorio
1S
Cache Cache Cache
9
D A CCEPBA
Implementación Hardware
❑ Un Ejemplo: El DASH
La coherencia dentro de un cluster se resuelve mediante unControlador “Fisgoneador” del Bus.La coherencia entre clusters se resuelve mediante un esquema dedirectorio distribuido.
Malla de Clusters
Proc
Cache Directorio
MemoriaLocal
10
D A CCEPBA
Implementación Hardware
❑ Un Ejemplo: El DASH
Un acceso a memoria puede ser servido por:
Directorio
MemoriaLocal
a
x=a*b
La memoria cache del procesador que hace la petición
Directorio
MemoriaLocal
ax=a*b
Otra memoria cache del mismo cluster
11
D A CCEPBA
Implementación Hardware
❑ Un Ejemplo: El DASH
Un acceso a memoria puede ser servido por:
Directorio
Memoria
Memoria Local
x=a*b
El HOME CLUSTER
a
a - v
Directorio
Local
12
D A CCEPBA
Implementación Hardware
❑ Un Ejemplo: El DASH
Un acceso a memoria puede ser servido por:
Directorio
MemoriaMemoria
x=a*b
Un cluster remoto
a - i
Directorio
Local
Directorio
MemoriaLocal
Local
a
CLUSTER i
HOME CLUSTER
13
D A CCEPBA
Implementación Hardware
❑ Sistemas COMA (Cache Only Memory Architecture)
La memoria de cada nodo se comporta como una gran memoriacache (Attraction Memory).
Ventajas
✓ Se reduce el número de fallos porque es espacio decache es mucho mayor.
Problemas
✓ Cuando se produce un fallo hay que localizar unacopia de la linea solicitada, que no tiene un lugar deresidencia fijo (como en el caso de cc-NUMA).
✓ Hay que asegurarse de que siempre queda almenos una copia de cada linea de memoria.
P
C
M0
n-1
P
C
Mk
k+n-1
RED
P
C
AM
RED
P
C
AM
Organización cc-NUMA Organización COMA
14
D A CCEPBA
Implementación software
❑ Sistema de memoria virtual estandard
✓ El software de fallo de página implementa lacomunicación de la páginas requeridas en cadamomento
✓ El mismo hardware permite implementarorganización NUMA y COMA
✓ Barato, atractivo para sistemas basados enworkstations (NOW)
P
tablapáginas
memoria local
página
en el nodo i
@
15
D A CCEPBA
Modelos de Consistencia de Memoria
❑ Consistencia de memoria
A := 1write (B)
B := 1write (A)
P1 P2
A = 0 y B = 0
valores iniciales
Ejemplo 1: Se espera cualquier resultado a la salida, excepto que ambosprocesadores escriban 0.
A := 1flag := 1
mientras (flag = 0)hacerfmientraswrite (A)
P1 P2
A = 0 y flag = 0
valores iniciales
Ejemplo 2: Se espera un 1 a la salida.
A := 1P1
A = 0 y B = 0
valores iniciales
Ejemplo 3: Se espera un 1 a la salida.
mientras (A = 0) hacerfmientrasB := 1
P2mientras (B = 0)hacerfmientraswrite (A)
P3
16
D A CCEPBA
Consistencia de Memoria
❑ Consistencia de memoria☞ El modelo de consistencia de memoriadefine el comportamiento de la memoriarespecto a los accesos realizados por cadaprocesador.
❑ Consistencia secuencial
✓ Un sistema de memoria tiene consistenciasecuencial si para cualquier ejecución de unprograma paralelo, siempre existe una ordenacióntotal de las operaciones de memoria realizadas, conlas siguientes propiedades:
(a) la ordenación produce el mismo resultado que elprograma paralelo.(b) las operaciones realizadas por cada procesadoraparecen en la en el orden especificado en elprograma del procesador.
P1 P2 Pn
memoria
17
D A CCEPBA
Consistencia de Memoria
❑ Violación de la consistencia secuencial
P1
A := 1write (B)
B := 1write (A)
P1 P2
A = 0 y B = 0
valores iniciales
A := 1 (t3)
P2
B := 1 (t4)
A = 0 B = 0
Read B (t1) Read A(t2)
Ejemplo 1: Uso de write buffers para no retrasar los reads siguientes
P1
A := 1 (t4)
P2
flag := 1 (t1)
flag = 0 A = 0
Read flag (t2)Read A(t3)
Ejemplo 2: Ejecución simultánea de múltiples escrituras independientes deun mismo procesador
A := 1flag := 1
mientras (flag = 0)hacerfmientraswrite (A)
P1 P2
A = 0 y flag = 0
valores iniciales
18
D A CCEPBA
Consistencia de Memoria
❑ Implementación de consistencia secuencial
Requerimiento en un sistema sin memorias caches
✓ Antes de iniciar la siguiente operación de memoriacada procesador debe esperar a que acabe laoperación anterior.
Este requerimiento es necesario pero no suficiente en un siste-ma con memorias caches
A := 1P1
A = 0 y B = 0
valores iniciales
Ejemplo 3: Sistema con un protocolo de actualización
mientras (A = 0) hacerfmientrasB := 1
P2mientras (B = 0)hacerfmientraswrite (A)
P3
P1 P2
A = 0 A = 0B = 0
A := 1 (t1) P3
A = 0B = 0
Read A (t3)B := 1 (t4)
Read B(t6)Read A (t7)
update A (t2)
update A (t8)
update B(t5)
caches
19
D A CCEPBA
Consistencia de Memoria
❑ Implementación de consistencia secuencial
Requerimiento adicional para un sistema con memorias caches
✓ Antes de dar por terminada la lectura de unavariable, el procesador debe esperar a que laescritura que definió el valor actual de dicha variablefinalize con respecto a todos los procesadores(ATOMICIDAD DE LAS ESCRITURAS).
Implementación en un sistema con protocolo de actualización
A := 1
P1 P2 P3
updata A
ack
ack
ack
ack
Read (A=0)
Read (A=0)
Read (A=1)
Read (B=0)
Read (B=0)Read (B=0)updata A
Read (B=0)
Read (B=0)Read (B=0)
Read (B=0)B := 1
Read (B=1)updata B
Read (A=1)
ack
ack
20
D A CCEPBA
Consistencia de Memoria
❑ Optimizaciones de compilación prohibidas
❑ Conclusión
☞ El modelo de consistencia secuencialdificulta (y muchas veces impide) el uso detécnicas hardware y software que mejoran elrendimiento de los procesadores
❑ Alternativas✓ Inventar técnicas que puedan coexistir con los
requerimientos de la implementación✓ Violar los requerimientos de implementación e
incorporar mecanismos para recuperarse de loserrores (ejecución especulativa)
✓ Usar modelos más relajados de consistencia
A := 1flag := 1
mientras (flag = 0)hacerfmientraswrite (A)
P1 P2
A = 0 y flag = 0
valores iniciales
load Reg, flagrep: cmp Reg, 0
je repoptimización típica
P2
21
D A CCEPBA
Modelos Relajados de Consistencia de Memoria
❑ Idea básica
☞ Un modelo relajado de consistenciapermite ciertas desordenaciones de losaccesos a memoria.
A:= 1
B:= 1
flag := 1
while (flag=0);
u:= A
v:= B
P1 P2
A:= 1
B:= 1
flag := 1
u:= A
v:= B
P1 P2
.. = flag
.. = flag
.. = flag
.. = flag
ordenación forzada porconsistencia secuencial
ordenación estrictamentenecesaria para
funcionamiento correcto
22
D A CCEPBA
Modelos Relajados de Consistencia de Memoria
❑ Especificación de un modelo de consistencia
✓ Cuáles son las ordenaciones de operaciones dememoria que se garantizan y cuáles no (incluyendosi se garantiza o no la atomicidad de las escrituras).
✓ Cuáles son los mecanismos que tiene elprogramador para forzar las ordenaciones nogarantizadas, si esto es necesario para que elprograma se ejecute correctamente.
23
D A CCEPBA
Modelos Relajados de Consistencia de Memoria
❑ Modelos que relajan el orden Escritura -> Lectura
✓ TSO: Total Store Ordering
✓ PC: Processor Consistency (No garantiza laatomicidad de las escrituras)
A := 1write (B)
B := 1write (A)
P1 P2
A = 0 y B = 0
valores iniciales Ejemplo 1Tanto en TSO como en PCpuede ocurrir que ambosprocesadores escriban 0.
A := 1flag := 1
mientras (flag = 0)hacerfmientraswrite (A)
P1 P2
A = 0 y flag = 0
valores iniciales Ejemplo 2Tanto en TSO como en PC, elprocesador P2 escribe 1 (tal ycomo se espera)
A := 1P1
A = 0 y B = 0
valores iniciales
mientras (A = 0) hacerfmientrasB := 1
P2mientras (B = 0)hacerfmientraswrite (A)
P3
Ejemplo 3EnTSO, P3 escribe 1. En PC puedeescribir 0 porque no se garantiza laatomicidad de escrituras
24
D A CCEPBA
Modelos Relajados de Consistencia de Memoria
❑ Modelos que relajan el orden Escritura -> Lectura
Mecanismo para forzar ordenación
✓ Instrucción MEMBAR que impide que el LOADsiguiente se inicie antes de que acabe el STOREanterior
✓ Hacer el LOAD mediante una intrucción de tipo leer-modificar-escribir indivisible
Características
✓ Permite usar buffers de escritura, con impactonotable en rendimiento
✓ Poco impacto en el modelo de programación
✓ No permite mejoras sustanciales en la compilación
Modelos Relajados de Consistencia de Memoria
❑ Modelos que relajan el orden Escritura -> Lectura yEscritura -> Escritura
✓ PSO: Partial Store Ordering
Mecanismo para forzar ordenación
✓ Instrucción STBAR que no inicia la siguienteoperación de memoria hasta que acaben losSTORES anteriores
✓ Hacer el STORE mediante una instrucción de tipoleer-modificar-escribir indivisible
Características
✓ Las mejoras hardware no proporcionan una mejoraadicional notable
✓ Mucho impacto en el modelo de programación (elejemplo 2 ya no funciona)
✓ No permite mejoras sustanciales en la compilación
25
D A CCEPBA
Modelos Relajados de Consistencia de Memoria
❑ Modelos que relajan todas las ordenaciones
✓ WO: Weak Ordering
Idea básica
Las operaciones en los bloques 1 a 6 puedenacabar en cualquier orden. Lo importante es queantes de iniciar las operaciones de sincronización,todas las operaciones del bloque anterior hayanacabado.
P1
Load/Store
Load/Store
1
flag1 := 1
Load/Store
Load/Store
2
While flag2 := 1do;
Load/Store
Load/Store
3
P2
Load/Store
Load/Store
4
flag2 := 1
Load/Store
Load/Store
5While flag1 := 1do;
Load/Store
Load/Store
6
26
D A CCEPBA
27
D A CCEPBA
Modelos Relajados de Consistencia de Memoria
❑ Modelos que relajan todas las ordenaciones
✓ WO: Weak Ordering
Mecanismo para forzar ordenación
✓ Instrucción SYNC que no inicia la siguienteoperación de memoria hasta que acaben todas lasanteriores
Características
✓ Permite muchas mejoras hardware queproporcionan una mejora adicional notable.
✓ Mucho impacto en el modelo de programación. Hayque identificar todas las operaciones desincronización.
✓ Permite mejoras sustanciales en la compilación.
SYNCflag1 := 1SYNC
SYNCWhile flag1 := 0do;SYNC
28
D A CCEPBA
Modelos Relajados de Consistencia de Memoria
❑ Modelos que relajan todas las ordenaciones
✓ RC: Release Consistency
Idea básica
✓ Antes de iniciar RELEASE, todas las operacionesdeben haber acabado.
✓ Las operaciones posteriores al ACQUIRE nopueden iniciarse hasta que éste acabe.
P1
1
flag1 := 1
While flag2 := 1do;
P2
flag2 := 1
While flag1 := 1do;
3
2 5
3 6
P1
1
flag1 := 1
While flag2 := 1do;
P2
flag2 := 1
While flag1 := 1do;
3
2 5
3 6
RELEASE
RELEASEACQUIRE
ACQUIRE
Ordenación forzada por WO Ordenación suficiente
Modelos Relajados de Consistencia de Memoria
❑ Modelos que relajan todas las ordenaciones
✓ RC: Release Consistency
Mecanismo para forzar ordenación
✓ Instrucción MEMBAR que retarda el inicio de lasiguiente operación de memoria (únicamente esta)hasta que acaben todas las anteriores. InstrucciónACQBAR que espera a que acabe la operaciónanterior.
Características
✓ Permite muchas mejoras hardware queproporcionan una mejora adicional notable.
✓ Implementaciones más o menos agresivas, segunlos mecanismos ofrecidos por el procesador.
✓ Mucho impacto en el modelo de programación.✓ Permite mejoras sustanciales en la compilación.
MEMBARflag1 := 1 While flag1 := 0do;
ACQBAR
29
D A CCEPBA
Modelos Relajados de Consistencia de Memoria
❑ Problemas
✓ Modelos difíciles para el programador (system-centric specification)
✓ Problemas de portabilidad
❑ Alternativa: programmer-centric specification
✓ El programador espera que su programa produzcaun resultado de acuerdo con el modelo deconsistencia secuencial (el más intuitivo).
✓ El programador proporciona programas consuficiente información sobre sincronización.
✓ El compilador genera el código más eficienteposible, teniendo en cuenta la información delprograma y los mecanismos implementados en lamáquina, manteniendo la ilusión de consistenciasecuencial.
30
D A CCEPBA
31
D A CCEPBA
Modelos Relajados de Consistencia de Memoria
❑ Alternativa: programmer-centric specificationCómo proporciona el programador información sobre sin-cronización
✓ Uso de librerías con primitivas de sincronización(LOCK, UNLOCK, BARRIER)
✓ Uso de construcciones específicas para expresarparalelismo (DOALL)
✓ Identificación, en el texto del programa, de lasvariables que se usan para sincronización
❑ Ejemplos
✓ Data-race-free-1
✓ Properly-labeled
32
D A CCEPBA
Sincronización
❑ ProblemaSoluciones razonables para la sincronización enSMP pueden no serlo en el contexto de DSM
❑ Ejemplo
Array-based Lock para implementación de acceso exclusivo
✓ Cada lock require memoria proporcional al númerode procesadores.
✓ No puede preveerse la posición del vector sobre laque el procesador esperará. Esto no permitedistribuir con antelación el vector de forma eficienteentre los procesadores.
f&i registro, indicelock: cmp A[registro], #0
bne lock
unlock: inc registrost A[registro], #0
acceso exclusivo
33
D A CCEPBA
Sicronización
❑ Acceso exclusivo
Software Queuing Lock
A L
B
LC
(a) A ha adquirido el LOCK (b) B intenta adquirir el LOCK yqueda bloqueado
A
L
B
(c) C intenta adquirir el LOCK yqueda bloqueado
C
A
LB
(d) A libera el LOCK, que esadquirido por B
34
D A CCEPBA
Sicronización
❑ Barrier
Software Combining Trees
contención
menos contención
Top Related