Extended collectives library for unified parallel C
- Teijeiro Barjas, Carlos
- Guillermo L. Taboada Director
- Juan Touriño Director
Universidad de defensa: Universidade da Coruña
Fecha de defensa: 26 de abril de 2013
- Emilio Luque Fadón Presidente/a
- Basilio B. Fraguela Secretario
- Vincent Heuveline Vocal
- Tomás F. Pena Vocal
- Andrés Gómez Tato Vocal
Tipo: Tesis
Resumen
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.