Transactional memory on heterogeneous architectures

  1. Villegas Fernández, Alejandro
Dirigida por:
  1. Oscar Plata González Director/a
  2. Rafael Asenjo Plaza Director/a
  3. Ángeles González Navarro Tutor/a

Universidad de defensa: Universidad de Málaga

Fecha de defensa: 09 de marzo de 2018

Tribunal:
  1. Emilio López Zapata Presidente/a
  2. Francisco Tirado Fernández Secretario
  3. Jose Luis Nuñez Yañez Vocal

Tipo: Tesis

Teseo: 540995 DIALNET lock_openRIUMA editor

Resumen

Si observamos las necesidades computacionales de hoy, y tratamos de predecir las necesidades del mañana, podemos concluir que el procesamiento heterogéneo estará presente en muchos dispositivos y aplicaciones. El motivo es lógico: algoritmos diferentes y datos de naturaleza diferente encajan mejor en unos dispositivos de cómputo que en otros. Pongamos como ejemplo una tecnología de vanguardia como son los vehículos inteligentes. En este tipo de aplicaciones la computación heterogénea no es una opción, sino un requisito. En este tipo de vehículos se recolectan y analizan imágenes, tarea para la cual los procesadores gráficos (GPUs) son muy eficientes. Muchos de estos vehículos utilizan algoritmos sencillos, pero con grandes requerimientos de tiempo real, que deben implementarse directamente en hardware utilizando FPGAs. Y, por supuesto, los procesadores multinúcleo tienen un papel fundamental en estos sistemas, tanto organizando el trabajo de otros coprocesadores como ejecutando tareas en las que ningún otro procesador es más eficiente. No obstante, los procesadores tampoco siguen siendo dispositivos homogéneos. Los diferentes núcleos de un procesador pueden ofrecer diferentes características en términos de potencia y consumo energético que se adapten a las necesidades de cómputo de la aplicación. Programar este conjunto de dispositivos es una tarea compleja, especialmente en su sincronización. Habitualmente, esta sincronización se basa en operaciones atómicas, ejecución y terminación de kernels, barreras y señales. Con estas primitivas de sincronización básicas se pueden construir otras estructuras más complejas. Sin embargo, la programación de estos mecanismos es tediosa y propensa a fallos. La memoria transaccional (TM por sus siglas en inglés) se ha propuesto como un mecanismo avanzado a la vez que simple para garantizar la exclusión mutua. TM proporciona una interfaz sencilla para definir las secciones de código en las que se debe garantizar la exclusión mutua. TM emplea un mecanismo de sincronización optimista capaz de mejorar otros mecanismos de sincronización basados en cerrojos. Dada la creciente demanda de poder de procesamiento y de una alta eficiencia energética, los procesadores heterogéneos están siendo un producto por el que la industria está apostando muy fuerte. Sin embargo, la complejidad es estos sistemas pone una carga de trabajo importante en los programadores. Dado que TM es una técnica efectiva en CPUs homogéneas, es importante entender su aplicabilidad en arquitecturas heterogéneas. En esta tesis, analizamos TM como mecanismo de sincronización en arquitecturas heterogéneos. Las principales contribuciones de esta tesis, y las publicaciones asociadas, son: 1) Un análisis de una popular librería de TM por software ejecutada sobre una CPU heterogénea y una propuesta de planificación que tenga en cuenta las características de TM. 2) Una implementación de TM por software para procesadores APU. El objetivo principal es minimizar la comunicación entre CPU y GPU, y comprender las ventajas y desventajas de TM en estos dispositivos. 3) Un diseño de TM por hardware para un acelerador de tipo GPU con la que tratamos de proporcionar soporte TM en la memoria tipo scratchpad ofrecida por estos aceleradores.