Extended collectives library for unified parallel C

  1. Teijeiro Barjas, Carlos
Supervised by:
  1. Guillermo L. Taboada Director
  2. Juan Touriño Director

Defence university: Universidade da Coruña

Fecha de defensa: 26 April 2013

Committee:
  1. Emilio Luque Fadón Chair
  2. Basilio B. Fraguela Secretary
  3. Vincent Heuveline Committee member
  4. Tomás F. Pena Committee member
  5. Andrés Gómez Tato Committee member
Department:
  1. Computer Engineering

Type: Thesis

Teseo: 340354 DIALNET lock_openRUC editor

Abstract

Los procesadores multinúcleo actuales mitigan los problemas de los procesadores con un solo núcleo (por ejemplo, las restricciones de potencia, memoria o paralelismo a nivel de instrucción), pero a su vez originan restricciones de programabilidad. En este escenario, el uso de un modelo de programación paralela adecuado es clave para cambiar el paradigma de desarrollo a partir de aplicaciones secuenciales, siempre buscando maximizar la productividad de los programadores. El paradigma PGAS (Partitioned Global Address Space) representa un avance importante en este ámbito, debido a su fácil adaptación a sistemas multinúcleo mediante el uso de espacios privados y compartidos, que replican la estructura de memoria de estos sistemas. El lenguaje UPC (Unified Parallel C), que extiende la sintaxis de C para programación paralela según el modelo PGAS, ha atraído el interés de los desarrolladores en los últimos años; no obstante, la mejora del rendimiento de los compiladores y entornos de ejecución para UPC ha relegado la programabilidad a un segundo plano, de forma que una implementación simple no siempre garantiza un rendimiento adecuado. Por tanto, esta Tesis busca proporcionar desarrollos originales para favorecer la programabilidad con UPC sin descuidar el rendimiento, mediante un análisis de las características del lenguaje y la implementación de nuevas funcionalidades. La principal contribución de esta Tesis es el desarrollo de una biblioteca extendida de comunicaciones colectivas, que complementa y mejora la biblioteca estándar actual con funciones que proporcionan alta flexibilidad por medio de implementaciones eficientes. Adicionalmente, se ha desarrollado una implementación en UPC para el paradigma MapReduce (UPC-MR), con el objetivo de proveer un soporte eficiente y de alta escalabilidad para el procesado de grandes conjuntos de datos. Finalmente, el análisis y desarrollo de diversos códigos, que incluyen núcleos computacionales y aplicaciones reales (en particular, una simulación paralela basada en el movimiento browniano de partículas), confirma la utilidad y usabilidad de las bibliotecas implementadas, demostrando que UPC puede proporcionar un alto rendimiento y escalabilidad con un reducido coste de desarrollo.