dsm: distributed shared memory multiprocessors

34
1 D A C CEPBA DSM: Distributed Shared Memory Multiprocessors Características Generales Implementación de Memoria Compartida Coherente Modelos de Consistencia de Memoria Sincronización

Upload: others

Post on 25-Jul-2022

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DSM: Distributed Shared Memory Multiprocessors

1

D A CCEPBA

DSM:Distributed Shared Memory

Multiprocessors

❑ Características Generales

❑ Implementación de Memoria CompartidaCoherente

❑ Modelos de Consistencia de Memoria

❑ Sincronización

Page 2: DSM: Distributed Shared Memory Multiprocessors

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

Page 3: DSM: Distributed Shared Memory Multiprocessors

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

Page 4: DSM: Distributed Shared Memory Multiprocessors

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

Page 5: DSM: Distributed Shared Memory Multiprocessors

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

Page 6: DSM: Distributed Shared Memory Multiprocessors

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

Page 7: DSM: Distributed Shared Memory Multiprocessors

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

Page 8: DSM: Distributed Shared Memory Multiprocessors

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

Page 9: DSM: Distributed Shared Memory Multiprocessors

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

Page 10: DSM: Distributed Shared Memory Multiprocessors

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

Page 11: DSM: Distributed Shared Memory Multiprocessors

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

Page 12: DSM: Distributed Shared Memory Multiprocessors

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

Page 13: DSM: Distributed Shared Memory Multiprocessors

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

Page 14: DSM: Distributed Shared Memory Multiprocessors

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

@

Page 15: DSM: Distributed Shared Memory Multiprocessors

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

Page 16: DSM: Distributed Shared Memory Multiprocessors

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

Page 17: DSM: Distributed Shared Memory Multiprocessors

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

Page 18: DSM: Distributed Shared Memory Multiprocessors

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

Page 19: DSM: Distributed Shared Memory Multiprocessors

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

Page 20: DSM: Distributed Shared Memory Multiprocessors

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

Page 21: DSM: Distributed Shared Memory Multiprocessors

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

Page 22: DSM: Distributed Shared Memory Multiprocessors

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.

Page 23: DSM: Distributed Shared Memory Multiprocessors

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

Page 24: DSM: Distributed Shared Memory Multiprocessors

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

Page 25: DSM: Distributed Shared Memory Multiprocessors

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

Page 26: DSM: Distributed Shared Memory Multiprocessors

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

Page 27: DSM: Distributed Shared Memory Multiprocessors

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

Page 28: DSM: Distributed Shared Memory Multiprocessors

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

Page 29: DSM: Distributed Shared Memory Multiprocessors

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

Page 30: DSM: Distributed Shared Memory Multiprocessors

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

Page 31: DSM: Distributed Shared Memory Multiprocessors

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

Page 32: DSM: Distributed Shared Memory Multiprocessors

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

Page 33: DSM: Distributed Shared Memory Multiprocessors

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

Page 34: DSM: Distributed Shared Memory Multiprocessors

34

D A CCEPBA

Sicronización

❑ Barrier

Software Combining Trees

contención

menos contención