Enhancing the efficiency and practicality of software transactional memory on massively multithreaded systems

Tesis doctoral de Gokcen Kestor

Los procesadores con múltiple hilos (cmt) prometen dar un mejor rendimiento al correr más de una secuencia de instrucciones en paralelo. Para aprovechar las capacidades de los procesadores cmt, los programadores deben paralelizar sus aplicaciones. La memoria transaccional ™ es uno de los modelos de programación que tiene por objetivo simplificar la sincronización al subir el nivel de abstracción entre la semántica de accesos atómicos y los métodos que son usados para lograr dicha atomicidad. Tm es un sistema de programación prometedor pero todavía existen desafíos importantes que deben ser resueltos para que el modelo sea mas práctico y eficiente. el primer desafío que esta disertación confronta es crear sistemas de evaluación para las propuestas de tms que sean mas sustanciales al añadir benchmarks que sean más realisticos. Primero, introducimos un grupo exhaustivo de benchmarks, rms-tm, para evaluar sistemas htms y stms. Rms-tm consiste de 7 aplicaciones que incluyen programas del area de reconocimiento, extracción y síntesis (rms) que representan cargas de trabajo comunes para aplicaciones futuras. Rms-tm incluye temas de investigación en la area de tm, como anidación y operaciones de i/o dentro de transaciones. Muchos sistemas de stm son implementados como librerías de usuario: el programador es responsable de instrumentar manualmente los límites de la transacción y cada lectura y escritura a la memoria dentro de la transacción. Esta técnica hace comparaciones de rendimiento entre sistemas más difíciles. Para poder crear comparasiones de rendimiento que sean ¿manzanas con manzanas¿, creamos una capa de software que ayuda a los investigadores a evaluar las mismas aplicaciones en diferente stms. el segundo desafío trata de mejorar el rendimiento y la escalabilidad de applicaciones de tm que corren en sistemas de procesadores cmt. El rendimiento y la escalabilidad de los diseños de tm de hoy en día, en particular los diseños de stm, no siempre satisfacen las expectaciones de los programadores. Para superar esta limitación, proponemos un nuevo diseño de stm, stm2, basado en un sistema de execución asistida en el cual operaciones de tm son mandadas a hilos auxiliares mientras los hilos de la aplicación corren el trabajo en una forma optimistica. Los resultados muestran que stm2 provee mejoras entre 1.8x y 5.2x en comparasión con los mejores de otros stms. Sistemas de execución asistida pueden crear condiciones de utilizacion baja en el procesador. Para aliviar este problema, enriquecimos stm2 con un mecanismo que automaticamente detecta las demandas de los hilos de aplicación y los auxiliares y dinamicamente separa los recursos del hardware entre los hilos basado en los mecanismos de prioridad de hilo implementados en las máquinas de power de ibm. el tercer desafío es definir un concepto de que significa para un programa de tm que este correctamente sincronizado. La definición común de la información transaccional sincronizada requiere que todas las transacciones sean ordenadas en un orden total como si fueran serializadas por un reloj global que limita la escalabilidad de los diseños de tm. Para eliminar esta restricción, propusimos relajar la definición de carreras de datos en los sistemas de tm. Esto permite un nivel más alto de concurencia para los programas que usen este concepto. Basado en esta definición, propusimos el primer algoritmo que detecta carreras de datos para applicaciones escritas en c/c++ (trade) e implementamos la herramienta que utiliza este algoritmo. Ademas, creamos una nueva definición de carrera de datos transaccionales que es mas intuitiva y transparente a los subyacentes implementaciones de tm. Basado en esta definicion, propusimos t-rex, una herramienta que detecta carreras de datos que es escalable, eficiente y creada para programas de tm en c/c++. Utilizando trade y t-rex, descubrimos carreras de datos sutiles en las aplicaciones de stamp que no han sido reportadas en el pasado.

 

Datos académicos de la tesis doctoral «Enhancing the efficiency and practicality of software transactional memory on massively multithreaded systems«

  • Título de la tesis:  Enhancing the efficiency and practicality of software transactional memory on massively multithreaded systems
  • Autor:  Gokcen Kestor
  • Universidad:  Politécnica de catalunya
  • Fecha de lectura de la tesis:  22/03/2013

 

Dirección y tribunal

  • Director de la tesis
    • Osman Unsal García
  • Tribunal
    • Presidente del tribunal: abraham Mendelson
    • pascal Felber (vocal)
    • (vocal)
    • (vocal)

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio