SEMESTRE C-2
6 ECTs
Optativa
Idioma en que se imparte: ESPAÑOL. En esta materia se incrementarán los conocimientos de programación paralela adquiridos por los alumnos en el cuatrimestre anterior en las asignaturas “Programación paralela” y “Programación de arquitecturas heterogéneas”. El objetivo será que los alumnos aprendan a optimizar códigos paralelos para grandes arquitecturas paralelas o supercomputadores actuales, usando como base para sus pruebas los recursos proporcionados por el Centro de Supercomputación de Galicia (CESGA) y el Grupo de Arquitectura de Computadores (GAC) de la Universidade da Coruña (UDC).
CONTENIDOS
Se centrará en aquellos aspectos de las aplicaciones paralelas que suelen penalizar el rendimiento, como son las comunicaciones, el balanceo de carga, el acceso a memoria o el manejo de entrada/salida. También se abordará la computación multiplataforma que permita aprovechar el paralelismo a nivel de tareas entre varios aceleradores hardware, así como la computación híbrida donde una misma aplicación haga uso de varios paradigmas de programación paralela de cara a obtener un buen rendimiento en clústers de sistemas multinúcleo y/o aceleradores hardware.
BIBLIOGRAFÍA BÁSICA Y COMPLEMENTARIA
Los libros por los que se sigue más directamente algunas partes de la materia son:
- Using Advanced MPI: Modern Features of the Message-Passing Interface. 2014. W. Gropp, T. Hoefler, R. Thakur, E. Lusk.
- Using OpenMP: The Next Step: Affinity, Accelerators, Tasking, and SIMD (Scientific and Engineering Computation). 2017. R. van der Pas, E. Stotzer, C. Terboven
- OpenCL Programming Guide. 2011. A. Munshi, B. Gaster, T. G. Mattson, J. Fung, D. Ginsburg. Addison-Wesley/Pearson Education
Los siguientes son libros que permiten consultar mas profundamente algunos contenidos:
- Multi-core programming. S. Akhter y J. Roberts. Intel Press. 2006
- Professional CUDA C Programming. J. Cheng, M. Grossman, T. McKercher. Wross. 2014