Descripción del proyecto
HP UPC – IMPROVING UPC USABILITY AND PERFORMANCE
Periodo: 2008-05-01 – 2011-04-30 (36 meses).
Entidad financiadora: Empresa
La dificultad de explotar de una forma eficiente el hardware con la creciente complejidad de los computadores actuales es un problema conocido. El resultado es un mayor interés en la mejora de la productividad en el desarrollo de aplicaciones paralelas. La investigación en esta área ha resultado en una familia de lenguajes de programación basados en el paradigma Partitioned Global Address Space (PGAS), siendo el lenguaje Unified Parallel C (UPC) uno de los más exitosos. El objetivo de este proyecto es llevar más allá la investigación en este campo, usando el supercomputador Finis Terrae como principal herramienta.
La arquitectura del supercomputador Finis Terrae es lo suficientemente flexible para cubrir muchos escenarios distintos, desde los más acoplados, como configuraciones con varios cores en un mismo nodo, hasta a los muy distribuidos, como los que emplean un único core en cada nodo, pero muchos nodos. Este amplio abanico de posibles configuraciones pueda ayudar a los científicos de este proyecto a comparar paradigmas de programación paralela más tradicionales basados en paso de mensajes (MPI) o en memoria compartida (OpenMP), y paradigmas emergentes basados en PGAS (UPC), tanto en términos de programabilidad como de rendimiento. Como resultado de esta evaluación, nuevas librerías de programación serán propuestas e implementadas para mejorar la programabilidad y el rendimiento de UPC. De esta forma los objetivos del proyecto son:
1) evaluar la programabilidad de aplicaciones usando UPC.
2) evaluar el rendimiento de UPC usando un conjunto de benchmarks (microbenchmarking y kernels computacionales). Este estudio de rendimiento servirá para detectar cuellos de botella en el rendimiento de UPC, que señalarán mejores prácticas de programación en UPC para el desarrollo del tercer objetivo.
3) desarrollar nuevas librerías que mejoren la programabilidad y el rendimiento de aplicaciones en UPC. El análisis de los benchmarks desarrollado en los objetivos anteriores, y el estudio detallado de las funcionalidades que proporciona el lenguaje y las librerías existentes llevará a los investigadores de este proyecto a detectar características (no cubiertas por el estándar) que mejorarán la usabilidad de UPC. Dichas características pueden ser implementadas como librerías, como nuevas operaciones colectivas (principalmente relocalización de datos y operaciones computacionales) y librerías de más alto nivel para soportar cálculos tanto densos como irregulares.
Publicaciones:
C. Teijeiro, G. L. Taboada, J. Touriño, R. Doallo, J. C. Mouriño, D. A. Mallón, B. Wibecan. “Design and Implementation of an Extended Collectives Library for Unified Parallel C”. Journal of Computer Science and Technology (in press). 2012
González-Domínguez, J., Martín, M. J., Taboada, G. L., Touriño, J., Doallo, R., Mallón, D. A. and Wibecan, B. (2012), UPCBLAS: a library for parallel matrix computations in Unified Parallel C. Concurrency Computat.: Pract. Exper., 24: 1645–1667. doi: 10.1002/cpe.1914
C. Teijeiro, G. L. Taboada, J. Touriño, B. B. Fraguela, R. Doallo, D. A. Mallón, A. Gómez, J. C. Mouriño, and B. Wibecan, “Evaluation of UPC programmability using classroom studies,” in Proceedings of the Third Conference on Partitioned Global Address Space Programing Models – PGAS ’09, 2009, p. 10:1 -10:7
D. A. Mallón, A. Gómez, J. C. Mouriño, G. L. Taboada, C. Teijeiro, J. Touriño, B. B. Fraguela, R. Doallo, and B. Wibecan, “UPC performance evaluation on a multicore system,” in Proceedings of the Third Conference on Partitioned Global Address Space Programing Models – PGAS ’09, 2009, p. 9:1-9:7
D. A. Mallón, G. L. Tabolada, C. Teijeiro, J. Touriño, B. B. Fraguela, A. Gómez, and J. C. Mouriño, “Performance Evaluation of MPI , UPC and OpenMP on Multicore Architectures,” in 16th European PVM/MPI Users’ Group Meeting on Recent Advances in Parallel Virtual Machine and Message Passing Interface, 2009, pp. 174–184.
J. González-Domíngez, M. J. Martín, G. L. Taboada, J. Touriño, R. Doallo, and A. Gómez, “A parallel numerical library for UPC,” in Euro-Par 2009 Parallel Processing, 2009, pp. 630–641.
J. Gonzalez-Dominguez, M. J. Martin, G. L. Taboada, and J. Tourino, “Dense Triangular Solvers on Multicore Clusters using UPC,” in PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON COMPUTATIONAL SCIENCE (ICCS), 2011, vol. 4, pp. 231–240.
G. L. Taboada, C. Teijeiro, J. Tourino, B. B. Fraguela, R. Doallo, J. C. Mourino, D. a. Mallon, and A. Gomez, “Performance Evaluation of Unified Parallel C Collective Communications,” 2009 11th IEEE International Conference on High Performance Computing and Communications, pp. 69–78, Jun. 2009.
Recursos adicionales:
UPC Operations Microbenchmarking Suite (UOMS)
UPCBLAS: A numerical library for UPC