1 / 51

A rquitecturas P aralelas

Arquitecturas Paralelas. 7. Coherencia de Datos en computadores DSM. - Introducción - Directorios de coherencia: MP/MC - Problemas: tráfico y atomicidad - Protocolo de coherencia Origin - Protocolo SCI (NUMA-Q). A rquitecturas P aralelas. IF - EHU.

livi
Download Presentation

A rquitecturas P aralelas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Arquitecturas Paralelas 7.Coherencia de Datos en computadores DSM - Introducción - Directorios de coherencia: MP/MC - Problemas: tráfico y atomicidad - Protocolo de coherencia Origin - Protocolo SCI (NUMA-Q) Arquitecturas Paralelas IF - EHU

  2. Coherencia de los datos en sistemas de memoria compartida SMP (red de comunicación, un bus) > Snoopy > Estados / estados transitorios... Introducción ¿Y en sistemas DSM (mallas...)? > La memoria es compartida, pero está físicamente distribuida entre los nodos del sistema. > La red no es un bus. Por tanto, snoopy ??

  3. ▪ El hardware no asegura la coherencia de los datos (es responsabilidad del programador): → NUMA Introducción ¿Cómo se mantiene la coherencia de los datos en los sistemas DSM? ▪ El hardware sí asegura la coherencia de los datos: → cc-NUMA ¿Cómo?Directorios de coherencia.

  4. El directorio de coherenciaguarda información sobre los bloques de datos: - estado (estables o transitorios) - dónde están las copias Introducción El directorio está repartido entre los procesadores (no es un dispositivo “central”). Problemas: - tamaño del directorio. - tráfico generado para mantener la coherencia. - atomicidadde las operaciones.

  5. Lugar y estructura del directorio: Introducción - junto a la MP, una palabra de coherencia por cada bloque de datos: ▪full bit vector ▪limited bit vector - distribuido entre las MC (+MP), formando listas ligadas con la información de cada bloque: ▪SCI, scalable coherent interface

  6. 1. Full bit vector (MESI) Directorios de coher.: MP Estructura del directorio - un bit por procesador (1/0) para indicar si tiene o no copia del bloque. - bits para indicar el estado del bloque (los habituales). P0P1P2P3 Es 1 0 0 0 - 0 > E 1 0 1 0 - 0 > S 0 0 0 1 - 1 > M 0 0 0 0 - 0 > I > no(MESI) 1 1 0 1 - 1

  7. Problemas El tamaño del directorio crece linealmente con el número de procesadores. Directorios de coher.: MP - bloques de 64 bytes: P = 64 → 65 bits (8 bytes) P = 256 → 257 bits (32 bytes) P = 1.024 → 1.025 bits (128 bytes) +200% !

  8. Directorios de coher.: MP Para reducir el tamaño de la palabra de coherencia: 1. Usar bloques de datos “más grandes” 2. Reducir el número de nodos (estructura jerárquica: snoopy SMP + directorio) - bloques de 128 bytes / 4 proc. por nodo: P = 1.024 (256x4) → 257 bits (32 bytes) +25%

  9. 2. Limited bit vector Directorios de coher.: MP - se limita el número de copias de un bloque: sólo se admiten k copias. - se guardan en la palabra de coherencia de cada bloque las direcciones (log2 Pbits) de los procesadores que tienen una copia: k × log2 P << P @1, @2, ..., @k, estado

  10. Directorios de coher.: MP - 4 procesadores por nodo bloques de 128 bytes / 5 copias P = 256 (64x4) → 5 x 6 + 1 = 31 bits ≈ 4 bytes + 3% P = 1.024 (256x4) → 5 x 8 + 1 = 41 bits≈ 5 bytes + 4%

  11. LDA 1 bit por proc. estado P L C 0 ... 1 ... 0 M 1 S CC 1 MP D H 3 2 CC = controlador de comunic. D = directorio de coherencia L = local H = home R= remote 4 5 R Directorios de coher.: MP

  12. STA otras dos copias estado P L C 1 0… 1 …1 0 S CC 1 MP D 3’ H 3 2 4’ CC = controlador de comunic. D = directorio de coherencia L = local H = home R= remote 4 Directorios de coher.: MP 0 …0 0 M R2 R1

  13. Directorios en MC: estructura La información sobre cada bloque de datos no se concentra en una sola palabra en el directorio junto a MP, sino que reparte entre el directorio junto a MP y las caches, en los directorios de éstas. La información de coherencia de cada bloque se estructura en forma de listas ligadas. Directorios de coher.: MC

  14. Información de coherencia(por bloque) “MP” → @cop1 / estado MC → @copi-1 / @copi+1 / estado Directorios de coher.: MC

  15. ¿Cómo se organiza la información en colas ligadas? Pi,Pk *,Pk bl. datos Pj,* *, * *,Pj Pk Pj Pi Directorios de coher.: MC bl. datos MP D bl. datos Pi (cache) Pj (cache) Pk (cache) bl. datos Home (memoria principal)

  16. P = 1.024 / MP = 128 MB / MC = 512 kB / bl = 128 bytes Directorios de coher.: MC 1. MP 5 copias, 3 bits de estado Palabra de coherencia: 5 x 10 + 3 = 53 bits Directorio (nodo): 53 bit x 1 M bloque = 53 Mb 2. MC En MP: 10 + 3 = 13 bits En caches: 2 x 10 + 3 bit = 23 bits Total (nodo): 13 x 1 M + 23 x 4 k = 13,1 Mb

  17. Mantener la coherencia debe generar el menor tráfico posible, tanto de paquetes de control como de paquetes de datos.  Las operaciones de coherencia deben tener la menorlatencia posible.  Para ello hay que - Minimizar el número de mensajes (tráfico). - Reducir el camino crítico (latencia) de la operación. Problemas: tráfico de coh.

  18.  Ejemplo: el procesador L lee una variable que no está en su cache, y que corresponde a un bloque sito en la memoria del procesador H, bloque que está modificado en la cache del procesador R. Problemas: tráfico de coh. Tres protocolos para efectuar las operaciones de coherencia: 1.Pregunta / Respuesta 2. Intervention Forwarding 3.Reply Forwarding

  19. 1. Pregunta / Respuesta 3. Petición 1.Petición 4b.Bloque (actual.) 2. Respuesta 4a. Respuesta (Bloque) Problemas: tráfico de coh. 0100 /M L H R M I mensajes: 5 camino crítico: 4

  20. 2. Intervention Forwarding 1. Petición 2. Petición 4. Respuesta (Bloque) 3. Respuesta (Bloque) Problemas: tráfico de coh. 0100 /M L H R M I mensajes: 4 camino crítico: 4

  21. 3. Reply Forwarding 1. Petición 2. Petición 3b.Bloque (actual.) 3a. Respuesta (Bloque) Problemas: tráfico de coh. 0100 /M L H R M I mensajes:4 camino crítico: 3

  22. 2a → ..1..0.. / M ..1..1.. /S 1b. INV 1a. INV H R2 R1 S S 2b. Respuesta Problemas: atomicidad Las operaciones de coherencia tienen que realizarse de forma atómica, sin interferencias entre ellas. ? →M → M??

  23. Problemas: atomicidad  Para asegurar la atomicidad + Hay que utilizar estados transitorios, busy, en las caches y en el directorio. + Si no se pueden procesar las peticiones o son incoherentes: • - se rechazan mediante paquetes tipoNACK. • - o se guardan en un búfer para procesarlas más tarde.

  24. Protocolos comerciales Dos ejemplos: 1. Computadores Origin → MP 2.Protocolo SCI (Numa-Q) → MC

  25. ▪512 nodos / 1.024 procesadores / hipercubo ▪Encaminamiento adaptativo / canales virtuales ▪Invalidación / MESI (en cache) / write-back Origin 2000  Algunas características de los computadores Origin 2000 ▪Full bit vector / 7 estados en MP I / S / Ecuidado: E = E o M (una copia única) 3 estados busy 1 para otras cosas ▪Reply forwarding / NACK ▪Paquetes de control: Rd / INV / RdEx / ACK / NACK / Wr

  26. Hay que analizar tres operaciones para ver cómo mantener la coherencia de los datos: ▪ Lectura de una variable (fallo) ▪ Escritura de una variable (acierto / fallo) ▪ Reemplazo de un bloque (actualizar MP) Origin 2000

  27. Lectura (fallo) Dir. = I/S 1b. Rd A 2a → 0001 / E 1a → busy 2b. Bloque 3 → E/S Origin 2000 0000 /I → 1101 / S 1100 /S L H I

  28. Lectura (fallo) Dir. = E 2a 4 → 1001 /busy → 1001 / S 1b.Rd A 2c.Rd A(+@L) 3a → S 3c. ACK / Wr (Bl.) 2b. Bloque (espec.) 1a → busy 4 3b.ACK / Bloque → S Origin 2000 1000 /E L H R E/M I

  29. Lectura (fallo) Dir. = busy 1b. Rd A 1a → busy 2. NACK Origin 2000 xxxx /busy L H I

  30. Escritura (acierto-INV / fallo-RdEx) Dir.:busy 1b. INV A / RdEx A L 1a → busy 2. NACK Origin 2000 xxxx /busy H S/I

  31. Escritura (acierto-INV / fallo-RdEx) Dir.:S eficiencia ¡cuidado carreras! 2a 1101 /S → 0001 / E 1100 /S 2d. INV A (+@L) 1b. INV A / RdEx A 3a 4a S → I S → I 2c. INV A (+@L) 1a → busy 2b. n.cop. / +Bloque 4b. ACK 3b. ACK 5 → M Origin 2000 H R1 R2 L S/I

  32. Escritura (acierto-INV / fallo-RdEx) Dir.:S 2a 1101 /S → 0011 / busy → 0001 / E 1100 /S 2d. INV A (+@L) 1b. INV A / RdEx A 2c. INV A (+@L) Rd A (@R3) 1a → busy 2b. n.cop. / +Bloque NACK R4 R3 Origin 2000 ¡Ojo! carreras H R1 R2 L ? S/I eficiencia: guardar, no rechazar

  33. Escritura (fallo-RdEx) Dir.:E 2a 4 → 0001 / busy → 0001 / E 1b. RdEx A 2c. RdEx A (+@L) 3a 3c.ACK / Wr (Bloque) → I 1a 2b. n.cop. + Bloque (espec.) → busy 4 3b.ACK / Bloque → M Origin 2000 1000 /E H R L E/M I

  34. Escritura (acierto-INV) Dir.:E 1b. INV A 1a → busy 2. NACK Origin 2000 1000 /E L H S

  35. Escritura (fallo-RdEx) Dir.:I 1b. RdEx A 2a → 0001 / E 1a → busy 2b. Bloque 3 → M Origin 2000 0000 /I L H I

  36. Escritura (acierto-INV) Dir.:I 1b. INV A 1a → busy 2. NACK Origin 2000 0000 /I L H S

  37. Reemplazo – actualizar MP Dir.:E 1b.Wr (Bloque) 2a → 0000 / I 1a → busy 2b. ACK 3 → x Origin 2000 0001 /E L H M

  38. Reemplazo – actualizar MP Dir.:busy 2a 3a → 1001 / busy → 1000 / E 1b. Rd A 2c. Rd A 1a 4 → E → busy 2b. Bloque (espec) 2 2d.Wr (Bloque) M → busy 3c. ACK 3b. Bloque 4 → x Origin 2000 0001 /E H R L I

  39. P C P C P C P C 4P 4P IQ link 4P 4P PCI M D 4P 4P S/I S/I 4P 4P Numa-Q  Estructura del multiprocesador NUMA-Q

  40. ▪8 x 4 procesadores / bus (snoopy) ▪IQ-link remote access cache ▪Invalidación / MOESI / write-back ▪<Petición / Respuesta> / encolado de peticiones ▪Listas doblemente ligadas en las caches: directorio (MP): estado / @c1 directorio MC: estado / @ci-1 / @ci+1 ▪SCI scalable coherent interface Numa-Q  Estructura del multiprocesador NUMA-Q

  41. Estados de los bloques: Protocolo de coh. SCI ▪En “MP”: Home (I), Fresh (E, S), Gone (M, O) ▪ En MC: - posición: Only, Head, Mid, Tail - estado: Dirty (M), Fresh (S), Valid (S’), Exclusive (E) Ej.: Only-Fresh, Head-Fresh, Head-Dirty, Mid-Valid... - y estados busy

  42. Protocolo de coh. SCI  Tres funciones para mantener la coherencia de los datos: ▪ List Construction Para cargar un bloque de datos en la cache (Rd) y ponerlo en cabeza de la lista de copias. ▪ Roll-out Para eliminar un bloque de la cache (reemplazo), y quitarlo de la lista de copias. ▪ Purge Para modificar una variable (Wr), y, por tanto, invalidar el resto de copias y actualizar la lista.

  43. Lectura:List Construction (Home) 1b. LC (Rd A) Dir (MP) H | * → F | @L Dir (MC) 2a → busy I → O-F|*-* 3 1a 2b. Bloque Protocolo de coh. SCI L H

  44. Lectura: List Construction (Fresh/Gone) → busy → H-F | *-@R 1a 5 3. New Head (@L) 1b. LC (Rd A) Dir (MP) F | @R → F | @L 2a 2b. Bloque + @R 4b. ACK Dir (MC) O-F | *-* → T-V | @L-* H-F | *-@R2 4a Protocolo de coh. SCI Dir (MC) I R L H → M-V | @L-@R2 ¿qué cambiaría si estuviera en Gone?

  45. Protocolo de coh. SCI  Escrituras: ¡sólo en la copia de la cabecera! acierto / head→ Purge fallo→ List Construction + Purge acierto / no head→Roll-Out+ L. Const. + Purge

  46. Purge(Only-Fresh) 1b. Wr (est. A) Dir (MP) F | @L → G | @L Dir (MC) 2a → busy O-F | *-* → O-D | *-* 3 1a 2b. ACK Protocolo de coh. SCI L H

  47. Purge(Head-Fresh) 5. INV A 3.INV A 1b. Wr (est. A) Dir (MC) Dir (MC) Dir (MP) 2b. ACK → busy H-F | *-@R1 M-V |@L-@R2 F | @L → O-D | *-* → I | *-* → I | *-* → G | @L 6b. ACK + * 6a 4a 7 2a 4b. ACK + @R2 1a Protocolo de coh. SCI H L R1 R2 T-V |@R1-*

  48. Roll-Out(Wr / reempl.) 1b. RO A + @R2 1c. RO A + @R1 Dir (MC) Dir (MC) Dir (MC) T-V | @L-* M-V | @R1-@R2 H-D | *-@L → busy → H-D | *-@R2 → T-V | @R1-* → busy / I | *-* 3a 1a 2a 4 3b. ACK 2b. ACK Protocolo de coh. SCI R1 L R2

  49. busy H-D | *-@L1 busy H-D | *-@R1 M-V|@L2-@R1 H-D|*-@R2 M-V|@L1-@R2 T-V | @R1-* NewHead NewHead L1 L1 L1 R1 R1 R1 R2 L2 L2 L2 L1 L1 L1 Ack + bl Ack + bl H H H H H H H H H Dir (MP) G | @L1 Dir (MP) G | @L2 Dir (MP) G | @R1 Protocolo de coh. SCI  Problemas: atomicidad (i)

  50. busy O-F | *-* busy L LC Wr NACK H Dir (MP) F | @L Dir (MP) F |@R Protocolo de coh. SCI  Problemas: atomicidad (ii) R ??

More Related