Memoria transaccional

                         Adriana Castro Bonenfant
                                - adri@hardcoders.org -


                            Arquitecturas Multiprocesador
                                ´                       ´
              Facultad de Informatica, Universidad Politecnica de Madrid


                                   Enero 2012




A. Castro (FI UPM)                Memoria transaccional                    Enero 2012   1 / 20
´ndice
I

1             ´
    Introduccion
       Escenario
                ´
       Motivacion
2   Transacciones
              ´
       Definicion
       Funcionamiento
3   Memoria transaccional
      Implementaciones
      Ejemplos de Instrucciones
      Arquitectura
      Ejemplo
4   Bibliograf´a
              ı


     A. Castro (FI UPM)     Memoria transaccional   Enero 2012   2 / 20
Contenido

1             ´
    Introduccion
       Escenario
                ´
       Motivacion
2   Transacciones
              ´
       Definicion
       Funcionamiento
3   Memoria transaccional
      Implementaciones
      Ejemplos de Instrucciones
      Arquitectura
      Ejemplo
4   Bibliograf´a
              ı


     A. Castro (FI UPM)     Memoria transaccional   Enero 2012   3 / 20
Escenario

Presente 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
´
Motivacion

Obtener estructuras de datos compartidas libres de bloqueos
(lock-free)
                                     ´
     Operaciones no requieren exclusion mutua

Las estructuras de datos lock-free evitan problemas relacionados con
bloqueos 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, similar
a las transacciones en las bases de datos.
    Control de acceso a memoria compartida

    A. Castro (FI UPM)         Memoria transaccional      Enero 2012   5 / 20
Contenido

1             ´
    Introduccion
       Escenario
                ´
       Motivacion
2   Transacciones
              ´
       Definicion
       Funcionamiento
3   Memoria transaccional
      Implementaciones
      Ejemplos de Instrucciones
      Arquitectura
      Ejemplo
4   Bibliograf´a
              ı


     A. Castro (FI UPM)     Memoria transaccional   Enero 2012   6 / 20
Transacciones

Concepto 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
´
Funcionamiento de una transaccion



Inicio

 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
Contenido

1             ´
    Introduccion
       Escenario
                ´
       Motivacion
2   Transacciones
              ´
       Definicion
       Funcionamiento
3   Memoria transaccional
      Implementaciones
      Ejemplos de Instrucciones
      Arquitectura
      Ejemplo
4   Bibliograf´a
              ı


     A. Castro (FI UPM)     Memoria transaccional   Enero 2012   9 / 20
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
Implementaciones (I)

Hardware(HTM): Modificaciones en procesador, cache y buses
                                            ´
    Baja sobrecarga y buen rendimiento energetico
                                            ´
    Poco intrusivos en el entorno de ejecucion

Software(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 collection

H´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
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 Oracle



Vega 2 (Azul Systems) — 2007



    A. Castro (FI UPM)     Memoria transaccional   Enero 2012   12 / 20
Ej. Instrucciones: acceso a memoria
Load-transactional (LT)
                              ´
Carga el contenido de una region compartida de memoria en un
registro privado

Load-transactional-exclusive (LTX)
                               ´
Carga el contenido de una region compartida de memoria en un
                                  ´
registro privado, marcando la region como actualizable

Store-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
Ej. Instrucciones: estado de transacciones


Commit (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 TWS

Abort (ABORT)
Descarta todos los cambios del TWS

Validate (VALIDATE)
Comprueba el estado de las transacciones concurrentes: true si no se
ha abortado, false eoc, descartando las posibles actualizaciones



    A. Castro (FI UPM)      Memoria transaccional        Enero 2012   14 / 20
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
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
Ejemplo (II)




                              Bus y Red



    A. Castro (FI UPM)   Memoria transaccional   Enero 2012   17 / 20
Contenido

1             ´
    Introduccion
       Escenario
                ´
       Motivacion
2   Transacciones
              ´
       Definicion
       Funcionamiento
3   Memoria transaccional
      Implementaciones
      Ejemplos de Instrucciones
      Arquitectura
      Ejemplo
4   Bibliograf´a
              ı


     A. Castro (FI UPM)     Memoria transaccional   Enero 2012   18 / 20
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
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

Memoria Transaccional

  • 1.
    Memoria transaccional Adriana Castro Bonenfant - adri@hardcoders.org - Arquitecturas Multiprocesador ´ ´ Facultad de Informatica, Universidad Politecnica de Madrid Enero 2012 A. Castro (FI UPM) Memoria transaccional Enero 2012 1 / 20
  • 2.
    ´ndice I 1 ´ Introduccion Escenario ´ Motivacion 2 Transacciones ´ Definicion Funcionamiento 3 Memoria transaccional Implementaciones Ejemplos de Instrucciones Arquitectura Ejemplo 4 Bibliograf´a ı A. Castro (FI UPM) Memoria transaccional Enero 2012 2 / 20
  • 3.
    Contenido 1 ´ Introduccion Escenario ´ Motivacion 2 Transacciones ´ Definicion Funcionamiento 3 Memoria transaccional Implementaciones Ejemplos de Instrucciones Arquitectura Ejemplo 4 Bibliograf´a ı A. Castro (FI UPM) Memoria transaccional Enero 2012 3 / 20
  • 4.
    Escenario Presente y futuroson 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.
    ´ Motivacion Obtener estructuras dedatos compartidas libres de bloqueos (lock-free) ´ Operaciones no requieren exclusion mutua Las estructuras de datos lock-free evitan problemas relacionados con bloqueos 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, similar a las transacciones en las bases de datos. Control de acceso a memoria compartida A. Castro (FI UPM) Memoria transaccional Enero 2012 5 / 20
  • 6.
    Contenido 1 ´ Introduccion Escenario ´ Motivacion 2 Transacciones ´ Definicion Funcionamiento 3 Memoria transaccional Implementaciones Ejemplos de Instrucciones Arquitectura Ejemplo 4 Bibliograf´a ı A. Castro (FI UPM) Memoria transaccional Enero 2012 6 / 20
  • 7.
    Transacciones Concepto similar alde 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.
    ´ Funcionamiento de unatransaccion Inicio 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.
    Contenido 1 ´ Introduccion Escenario ´ Motivacion 2 Transacciones ´ Definicion Funcionamiento 3 Memoria transaccional Implementaciones Ejemplos de Instrucciones Arquitectura Ejemplo 4 Bibliograf´a ı A. Castro (FI UPM) Memoria transaccional Enero 2012 9 / 20
  • 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.
    Implementaciones (I) Hardware(HTM): Modificacionesen procesador, cache y buses ´ Baja sobrecarga y buen rendimiento energetico ´ Poco intrusivos en el entorno de ejecucion Software(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 collection H´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.
    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 Oracle Vega 2 (Azul Systems) — 2007 A. Castro (FI UPM) Memoria transaccional Enero 2012 12 / 20
  • 13.
    Ej. Instrucciones: accesoa memoria Load-transactional (LT) ´ Carga el contenido de una region compartida de memoria en un registro privado Load-transactional-exclusive (LTX) ´ Carga el contenido de una region compartida de memoria en un ´ registro privado, marcando la region como actualizable Store-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.
    Ej. Instrucciones: estadode transacciones Commit (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 TWS Abort (ABORT) Descarta todos los cambios del TWS Validate (VALIDATE) Comprueba el estado de las transacciones concurrentes: true si no se ha abortado, false eoc, descartando las posibles actualizaciones A. Castro (FI UPM) Memoria transaccional Enero 2012 14 / 20
  • 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.
    Ejemplo (I) Fragmento deun 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.
    Ejemplo (II) Bus y Red A. Castro (FI UPM) Memoria transaccional Enero 2012 17 / 20
  • 18.
    Contenido 1 ´ Introduccion Escenario ´ Motivacion 2 Transacciones ´ Definicion Funcionamiento 3 Memoria transaccional Implementaciones Ejemplos de Instrucciones Arquitectura Ejemplo 4 Bibliograf´a ı A. Castro (FI UPM) Memoria transaccional Enero 2012 18 / 20
  • 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.
    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