Prebúsqueda hardware, soporte para reducción y almacenamiento de estado especulativo en multiprocesadores de memoria compartida

  1. Garzaran Arnau, M. Jesús
Supervised by:
  1. Víctor Viñals Yufera Director
  2. José María Llaberia Griño Director

Defence university: Universidad de Zaragoza

Fecha de defensa: 19 June 2002

Committee:
  1. Francisco Tirado Fernández Chair
  2. Pablo Enrique Ibáñez Marín Secretary
  3. Mateo Valero Cortés Committee member
  4. José Duato Marín Committee member
  5. Emilio López Zapata Committee member

Type: Thesis

Teseo: 90206 DIALNET

Abstract

En esta tesis hemos considerado tres mecanismos diferentes que mejoran las prestaciones obtenidas por un multiprocesador de memoria compartida cuando ejecuta en paralelo threads o tareas extraídas de una aplicación, En particular hemos considerado prebúsqueda hardware y soporte para reducciones para códigos paralelziados por el compilador, y soporte para ejecucción paralela especulativa para aquellas secciones de códigos que el compilador no pudo paralelizar. En primer lugar se han evaluado varios mecanismos de prebúsqueda hardware, y se ha estudiado cuál es la combinación que consigue las mejores aceleraciones para sistemas multiprocesadores basados en bus. Para este estudio se ha realizado una caracterización de patrones sencillos de acceso a los datos que aparecen en programas paralelos. En esta caracterización se ha prestado especial atención al cambio en el comportamiento de los programas al variar el número de procesadores. En segundo lugar proponemos un soporte arquitectónico para multiprocesadores basados en directorio. Este soporte acelera la ejecucción paralela de las operaciones de reducción que aparecen en muchos códigos científicos, y es particularmente apropiados para las operaciones de reducción que aparecen en códigos dispersos y/o dinámicos. Las modificaciones que nuestro soporte requiere se concentran principalmente en el controlador del directorio. Finalmente estudiamos el problema de almacenamiento de estado especulativo en entornos de ejecucción paralela especulativa a nivel de thread. Introducimos una nueva taxonomía que clasifica los distintas propuestas para almacenamiento de estado especulativo, y evaluamos el coste hardware y las prestaciones obtenidas por cada de los puntos de diseño de nuestra taxonomía utilizando un mismo entorno para todos los puntos de diseño. Además, para un tipo particular de propuestas, proponemos un esquema software para almacenar el estado especulativo.