5. consistencia de la memoria en los computadores paralelos

27
UPV- EHU / ATC Arquitecturas Paralelas 12-13 1 5. Consistencia de la memoria en los computadores paralelos - Introducción Orden de ejecución de las instrucciones Atomicidad - Modelos de consistencia Consistencia secuencial Modelos relajados

Upload: ozzy

Post on 31-Jan-2016

38 views

Category:

Documents


0 download

DESCRIPTION

5. Consistencia de la memoria en los computadores paralelos. - Introducción Orden de ejecución de las instrucciones Atomicidad - Modelos de consistencia Consistencia secuencial Modelos relajados. Introducción: orden de ejecución de las instrucciones. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 1

5. Consistencia de la memoria en los computadores paralelos

- IntroducciónOrden de ejecución de las

instrucciones Atomicidad

- Modelos de consistenciaConsistencia secuencialModelos relajados

Page 2: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 2

Introducción: orden de ejecución de las instrucciones

¿Orden de ejecución de las instrucciones de memoria?

El orden de ejecución de las instrucciones de memoria establece la consistencia de la memoria del multiprocesador.

Un solo procesador- el hardware puede desordenar las instrucciones. - pero la unidad de control es única; por tanto, el desorden está bajo control. P procesadores

no conocemos el orden “global” de las instrucciones

Page 3: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 3

La coherencia de los datos fija un “orden” concreto:

“los cambios realizados sobre una variable aparecerán en todas las caches y en el mismo orden”

Pero los protocolos de coherencia no fijan el orden de los cambios sobre distintas variables!

Introducción: orden de ejecución de las instrucciones

Page 4: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 4

La semántica de los programas paralelos está asociada al orden de ejecución global y local de las instrucciones.

Al principio: A = B = 0

La solución puede ser B = 2 y A = 0 si P1 desordena sus dos instrucciones, puesto que para él son totalmente independientes!

Resultados: B,A0,0 / 0,1 / 2,12,0 ??

Introducción: orden de ejecución de las instrucciones

P1 P2A = 1; (wr1) print B; (rd1)

B = 2; (wr2) print A; (rd2)

Page 5: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 5

La semántica de los programas paralelos se fija por medio de operaciones de sincronización.

P1 P2

A = 1; while (listo==0);

listo = 1; print A;

dependencias

wr1rd1

wr2rd2

¿P2 debería escribir A = 1? Puede que no, puesto que el procesador local no entiende la sincronización del programa global!

Introducción: orden de ejecución de las instrucciones

Page 6: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 6

La semántica de los programas paralelos se fija por medio de operaciones de sincronización.

P1 P2

A = 1; while (listo==0);

listo = 1; print A;

dependencias

wr1rd1

wr2rd2

Introducción: orden de ejecución de las instrucciones

Para respetar la dependencia wr1rd2 hay que mantener el orden local de las instrucciones:wr1>>wr2 y rd1>>rd2 + wr2rd1 wr1rd2

Page 7: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 7

No basta con el orden local, la falta de atomicidad en las instrucciones de memoria también puede generar problemas.

P1 P2A = 1; while (listo==0);

listo = 1; print A;Cambian dos variables en P1; ¿En qué orden llegarán esos cambios a P2?

Introducción: atomicidad

P2 imprimirá A = 0 si el cambio de la variable listo llega antes que el de la variable A a P2!

Page 8: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 8

P1 P2 P3A = 1; while (A==0);

B = 1; while (B==0);

C = A;

Introducción: atomicidad

Otro ejemplo

Finlamente, obtenemos C = 0

Page 9: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 9

Modelos de consistencia

El programador de aplicaciones paralelas debe conocer el modelo de consistencia del sistema paralelo:

- el orden de ejecución de las instrucciones en cada procesador.

- la atomicidad de las operaciones de escritura/lectura que se hacen sobre

variables compartidas.

Analicemos los principales modelos de consistencia.

Page 10: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 10

Consistencia secuencial: SC

Extensión del modelo de orden estricto en un solo procesador.

Consistencia secuencial (SC):

1 hay que respetar el orden local de las instrucciones (de memoria) en cada procesador: no se pueden reordenar las instrucciones LD y ST.

wr >> rd; rd >> rd;

wr >> wr; rd >> wr;

Page 11: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 11

Consistencia secuencial: SC

Por ejemplo:

P1 a; b;

P2 c; d;

a; d; c;b; c; d; b;a; a; c; b;d;

Global a; b; c;d;

?

si

si

no

no

Page 12: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 12

Consistencia secuencial: SC

Consistencia secuencial (SC):

2 se debe de asegurar la atomicidad de las instrucciones de memoria: no se puede comenzar una instrucción hasta que terminen las anteriores y todos sus efectos (cualquier procesador).

Inst. a (Pi)

Inst. b (Pj)

Inst. a (Pi)

Inst. b (Pj)

Page 13: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 13

Consistencia secuencial: SC

Para asegurar la atomicidad hay que saber cuándo acaba la ejecución de las instrucciones (y las consecuencias de las mismas en todos los procesadores):

- LD: fácil, cuando se obtienen los datos. - ST: difícil, además de las escrituras hay que tener en cuenta las invalidaciones.

1. INV 1. INV

2. ACK 2. ACK

>> Instrucciones del procesador local

Page 14: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 14

- LD: antes de empezar con la lectura hay que estar seguro de que la última escritura sobre ese bloque se ha finalizado… en todos los procesadores! La complejidad de la operación depende del protocolo de coherencia:

- INV: no es difícil, porque hay que pedir el bloque.

- BC: hay que saber que ha finalizado la operación broadcast.

1. BC 1. BC

2. ACK 2. ACK

3 seguir3 seguir

Consistencia secuencial: SC

>> Instrucciones de otros procesadores

Page 15: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 15

Las condiciones impuestas por el modelo SC son muy duras, y pueden afectar en gran medida a la eficiencia del sistema.

- no se pueden desordenar los accesos a memoria- no se pueden utilizar búferes de escritura - no se pueden utilizar registros para optimizar la utilización de memoria

P1 P2 P1 P2A = 1 A = 0 r1 = 1 A = 0

B = A A = r1

B = r1

Consistencia secuencial: SC

Page 16: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 16

Modelos de consistencia relajados

¿Existe alguna otra opción?

Así, se definen modelos de consistencia relajados: no se respetan algunas relaciones de orden.

El conjunto de restricciones impuesto por el modelo SC es suficiente pero no necesario.Algunas restricciones impuestas al orden se pueden suavizar:

wr >> rd; rd >> rd; wr >> wr; rd >>

wr;

+ atomicidad

Page 17: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 17

Modelos de consistencia relajados

El programador debe tener la posibilidad de imponer el orden estricto.

Con este objetivo, se utilizan instrucciones especiales de lenguaje máquina llamadas fence: MEMBAR, STBAR, SYNC...

Veamos los modelos de consistencia relajados.

- write-fence: para fijar el orden de las escrituras

- read-fence: para fijar el orden de las lecturas- memory-fence: para fijar el orden de las operaciones de memoria

Page 18: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 18

Modelos de consistencia relajados: TSO

1 Total Store Ordering (TSO) / Processor Consistency (PC)

P P P

ST

MEM

LD

No se cumple el orden wr>>rdLas instrucciones LD se pueden ejecutar antes que las instrucciones ST previas (modelo “adelanto de load”).Ojo: las instrucciones T&S, SWAP... contienen operaciones rd y wr.

Page 19: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 19

Modelos de consistencia relajados: TSO

No se asegura la consistencia secuencial por lo que puede que en algún programa los resultados sean inesperados.

P1 P2X = nuevo_valor; Y = nuevo_valor;

Y_copia = Y; X_copia = X;

SC: por lo menos uno, X_copia o Y_copia tendrá nuevo_valor.

TSO: puede que ninguno de los dos tome el nuevo valor.

Page 20: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 20

Modelos de consistencia relajados: TSO

Si hay que imponer el orden en algún punto concreto de una aplicación habrá que generar una “barrera de orden”.

Para ello, dos opciones:- utilizar instrucciones de tipo fence.- puesto que las escrituras no se pueden desordenar en este modelo, utilizar instrucciones de tipo RMW:

ST ... LD → SWAP ... LD

Page 21: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 21

Modelos de consistencia relajados: TSO

El modelo TSO es adecuado para evitar las latencias de las escrituras y funciona bien para el caso de la sincronización mediante flags:

P1 P2A = 1; while (listo ==0);

listo = 1; print A;

Las dos escrituras de P1 y las dos lecturas de P2 no se pueden desordenar

Page 22: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 22

Modelos de consistencia relajados: PSO

2 Partial Store Ordering (PSO)P P P

ST

MEM

LD

No se cumple el orden entre wr>>rd y wr>>wr.

En este modelo no se asegura el orden entre escrituras. La implementación es similar a la anterior pero las colas de los ST no son FIFOOJO: puede que la sincronización mediante flags no funcione! Por lo tanto, si hay que utilizarla habrá que imponer el orden de las instrucciones de memoria.

Page 23: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 23

Los modelos de consistencia más relajados

¿Hay que asegurar el orden de todas las instrucciones de memoria?

P1 P2X = X + 1; while (flag==0);

Y = B + 1; A = X/2;

flag = 1; B = Y;

P1/P2/...lock(s);

yo = i;

i = i + N;

unlock(s);

Bastaría con asegurar el orden de las instrucciones de sincronización!

rd,wr >> s s >> rd,wr s >> s

Page 24: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 24

Modelos de consistencia relajados: WO

rd...wr... sinc sincrd...wr... rd...wr...

3 Weak Ordering (WO)

- Se permite cualquier reordenamiento de las operaciones de memoria salvo con respecto a las sincronizaciones.

- Las operaciones de sincronización funcionan como instrucciones tipo fence.

OJO: hay que “etiquetar” las operaciones de memoria para poder identificar las de sincronización.

Page 25: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 25

Modelos de consistencia relajados: RC

4 Release Consistency (RC)

Las operaciones de sincronización se dividen en dos tipos: acquire (sa) y release (sr).

Las únicas relaciones de orden que hay que cumplir son: sa >> rd,wr rd,wr >> sr

s_acq s_relrd...wr... rd...wr... rd...wr...

Page 26: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 26

Resumen

orden de las operaciones de memoria

modelo wr>>rd wr>>wr rd>>rd,wr sincr. wr atom. Fence

SC todas

TSO todas MEMBAR

RMW

PC todasMEMBAR

RMW

PSO todas STBAR

RMW

WO todas SINC

RCsa>>w/rw/r>>srs>>s

REL,ACQ RMW

Page 27: 5. Consistencia de la memoria en los computadores paralelos

UPV- EHU / ATC Arquitecturas Paralelas 12-13 27

Ejemplo

TSO/PC

= A

B =

sinc_acq

C =

= D

sinc_rel

E =

F =

PSO

= A

B =

sinc_acq

C =

= D

sinc_rel

E =

F =

WO

= A

B =

sinc_acq

C =

= D

sinc_rel

E =

F =

RC

= A

B =

sinc_acq

C =

= D

sinc_rel

E =

F =

SC

rd

wr

sinc_a

wr

rd

sinc_r

wr

wr

= A

B =

sinc_acq

C =

= D

sinc_rel

E =

F =

orden