Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Memoria Transaccional

1.282 visualizaciones

Publicado el

  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Memoria Transaccional

  1. 1. Memoria transaccional Adriana Castro Bonenfant - adri@hardcoders.org - Arquitecturas Multiprocesador ´ ´ Facultad de Informatica, Universidad Politecnica de Madrid Enero 2012A. Castro (FI UPM) Memoria transaccional Enero 2012 1 / 20
  2. 2. ´ndiceI1 ´ Introduccion Escenario ´ Motivacion2 Transacciones ´ Definicion Funcionamiento3 Memoria transaccional Implementaciones Ejemplos de Instrucciones Arquitectura Ejemplo4 Bibliograf´a ı A. Castro (FI UPM) Memoria transaccional Enero 2012 2 / 20
  3. 3. Contenido1 ´ Introduccion Escenario ´ Motivacion2 Transacciones ´ Definicion Funcionamiento3 Memoria transaccional Implementaciones Ejemplos de Instrucciones Arquitectura Ejemplo4 Bibliograf´a ı A. Castro (FI UPM) Memoria transaccional Enero 2012 3 / 20
  4. 4. EscenarioPresente y futuro son multicore Incremento del no instrucciones/s con la misma freq de reloj Mejora del rendimiento en programas paralelos Mejor rendimiento → nuevas caracter´sticas ı ´ ´Pero la programacion paralela es mas compleja que la secuencial Algoritmos ´ Depuracion No determinismo Rendimiento no siempre asegurado Memoria compartida + preemption Incremento de problemas de concurrencia Escalabilidad A. Castro (FI UPM) Memoria transaccional Enero 2012 4 / 20
  5. 5. ´MotivacionObtener estructuras de datos compartidas libres de bloqueos(lock-free) ´ Operaciones no requieren exclusion mutuaLas estructuras de datos lock-free evitan problemas relacionados conbloqueos en sistemas concurrentes: Inversiones de prioridad Convoying Interbloqueos ´Buscar manera de simplificar programacion paralela mediante la ´ ´ejecucion atomica de un conjunto de instrucciones load-store, similara las transacciones en las bases de datos. Control de acceso a memoria compartida A. Castro (FI UPM) Memoria transaccional Enero 2012 5 / 20
  6. 6. Contenido1 ´ Introduccion Escenario ´ Motivacion2 Transacciones ´ Definicion Funcionamiento3 Memoria transaccional Implementaciones Ejemplos de Instrucciones Arquitectura Ejemplo4 Bibliograf´a ı A. Castro (FI UPM) Memoria transaccional Enero 2012 6 / 20
  7. 7. TransaccionesConcepto similar al de las bases de datos ´Definicion ´Secuencia finita de instrucciones maquina englobadas en un bloque ´cuya operacion es completa.Propiedades ACID: Atomicity (atomicidad) Consistency (consistencia) Isolation (aislamiento) Durability (durabilidad) ´En ocasiones las propiedades consistencia, aislamiento y durabilidad aparecen fusionadas como serializacion (serializability) A. Castro (FI UPM) Memoria transaccional Enero 2012 7 / 20
  8. 8. ´Funcionamiento de una transaccionInicio 1 Hacer copia privada de datos compartidos 2 Hacer actualizaciones en copia privada 3 Si datos compartidos no modificados → actualizar datos compartidos con copia privada y goto(Fin) Si conflictos → descartar copia privada y goto(Inicio)Fin A. Castro (FI UPM) Memoria transaccional Enero 2012 8 / 20
  9. 9. Contenido1 ´ Introduccion Escenario ´ Motivacion2 Transacciones ´ Definicion Funcionamiento3 Memoria transaccional Implementaciones Ejemplos de Instrucciones Arquitectura Ejemplo4 Bibliograf´a ı A. Castro (FI UPM) Memoria transaccional Enero 2012 9 / 20
  10. 10. Memoria transaccional ´Definicion ´Arquitectura multiprocesador que pretende hacer la sincronizacion ´lock-free tan eficiente como las tecnicas convencionales basadas en ´exclusion mutua.Caracter´sticas: ı ´ Codigo eficiente y sencillo resuelve operaciones conflictivas ´ (contencion en locks es trivial con TM) Mezcla de operaciones de grano fino y grueso ´ ´ ´ Combinacion de operaciones atomicas con orelse (if atomico) 2 caches por procesador (regular y transaccional), exclusivas Protocolo Snoopy en buses ´ Mas dif´cil de implementar que los locks ı E/S todav´a presenta problemas... ı A. Castro (FI UPM) Memoria transaccional Enero 2012 10 / 20
  11. 11. Implementaciones (I)Hardware(HTM): Modificaciones en procesador, cache y buses ´ Baja sobrecarga y buen rendimiento energetico ´ Poco intrusivos en el entorno de ejecucionSoftware(STM): Librer´as de los lenguajes, con requerimientos ıhardware m´nimos ı ´ Mayor variedad de algoritmos y mas sofisticados ´ Facilmente modificable y evolucionable ´ Alta capacidad de integracion con sistemas existentes (ej: garbage collectionH´brida (HyTM): HTM + STM ı ´ Combinacion del buen rendimiento hardware con las ventajas que ofrece el software A. Castro (FI UPM) Memoria transaccional Enero 2012 11 / 20
  12. 12. Implementaciones (II)BlueGene/Q (IBM) — Nov. 2011 Primer procesador comercial con TM #17 top500 (noviembre 2011) #[1-4] green500 (noviembre 2011)Rock (Sun Microsystems) — 2007 - 2010 Proyecto cancelado por OracleVega 2 (Azul Systems) — 2007 A. Castro (FI UPM) Memoria transaccional Enero 2012 12 / 20
  13. 13. Ej. Instrucciones: acceso a memoriaLoad-transactional (LT) ´Carga el contenido de una region compartida de memoria en unregistro privadoLoad-transactional-exclusive (LTX) ´Carga el contenido de una region compartida de memoria en un ´registro privado, marcando la region como actualizableStore-transactional (ST) ´Carga en una region compartida de memoria el contenido de un ´registro privado, no haciendolo visible hasta un commit. Transaction’s read set (TRS): regiones le´das por LT ı Transaction’s write set (TWS): regiones accedidas por LTX o ST ´ Transaction’s data set (TDS): union de los conjuntos anteriores A. Castro (FI UPM) Memoria transaccional Enero 2012 13 / 20
  14. 14. Ej. Instrucciones: estado de transaccionesCommit (COMMIT) ´Hace permanentes los cambios realizados (exito), si ninguna otra ´transaccion ha actualizado alguna TDS o le´do en la TWS. ıSi falla, se descartan todos los cambios en el TWSAbort (ABORT)Descarta todos los cambios del TWSValidate (VALIDATE)Comprueba el estado de las transacciones concurrentes: true si no seha abortado, false eoc, descartando las posibles actualizaciones A. Castro (FI UPM) Memoria transaccional Enero 2012 14 / 20
  15. 15. Cache transaccional Similar a cache de v´ctimas ı Asociativa total Protocolos de coherencia de cache para deteccion de conflictos Estado en linea de cache transaccional Mensajes en bus transaccional No propaga a otros procesadores o MP hasta commit Si abort, invalida linea de cache transaccional A. Castro (FI UPM) Memoria transaccional Enero 2012 15 / 20
  16. 16. Ejemplo (I)Fragmento de un benchmark contador (Herlihy & Moss, ISCA ’93) shared int counter; void process (int work) { int success = 0, backoff = BACKOFF_MIN; unsigned wait; while (success < work) { ST (&counter, LTX (&counter) + 1); if (COMMIT ()) { success++; backoff = BACKOFF_MIN; } else { wait = random () % (01 << backoff); while (wait--); if (backoff < BACKOFF) backoff++; } } } A. Castro (FI UPM) Memoria transaccional Enero 2012 16 / 20
  17. 17. Ejemplo (II) Bus y Red A. Castro (FI UPM) Memoria transaccional Enero 2012 17 / 20
  18. 18. Contenido1 ´ Introduccion Escenario ´ Motivacion2 Transacciones ´ Definicion Funcionamiento3 Memoria transaccional Implementaciones Ejemplos de Instrucciones Arquitectura Ejemplo4 Bibliograf´a ı A. Castro (FI UPM) Memoria transaccional Enero 2012 18 / 20
  19. 19. Bibliograf´a (I) ı Transactional Memory, 2nd ed., T. Harris, J. Larus and R. Rajwar — 2010, Morgan & Claypool Publishers Transactional Memory: Architectural support for lock-free data structures, M. Herlihy and J. Moss — ISCA ’93 Transactional Memory Overview, O. Ruwase — CMU 2007 The Transactional Memory / Garbage Collection Analogy, D. Grossman — 2007 Hybrid Transactional Memory, P. Damron, A. Fedorova, Y. Lev, V. Luchangco, M. Moir an D. Nussbaum — 2006 Transactional Memory, Wikipedia Non-blocking algorithm, Wikipedia ´ ´ ˜ Sincronizacion, Concurrencia y Transacciones, F. Perez, J. Pena, M. ´ Perez — SOD, FI UPM A. Castro (FI UPM) Memoria transaccional Enero 2012 19 / 20
  20. 20. Bibliograf´a (II) ı Blue Gene, Wikipedia IBM plants transactional memory in CPU, EETimes — 2011 Rock Processor, Wikipedia Sun rallies industry around Rock CPU, EETimes — 2008 Azul Systems, Wikipedia A. Castro (FI UPM) Memoria transaccional Enero 2012 20 / 20

×