Programación Paralela y Computación de Altas Prestaciones
Curso del Máster
Universitario en Nuevas Tecnologías en Informática (2018-2019)
6 créditos
Profesorado:
Domingo Giménez Cánovas, Departamento de Informática y Sistemas. Tutorías lunes de 11:30 a 14:00 y jueves de 10:30 a 14:00 (mejor quedar antes por correo a domingo@um.es, para esas horas u otras)
Javier Cuenca Muñoz, Departamento de Ingeniería y Tecnología de Computadores, tutorías miércoles 11:00 a 14:00 y electrónicas, jcuenca@um.es
Colaboración en prácticas, Jesús Cámara Moreno, becario de investigación, jcamara@um.es
Bibliografía básica para la parte de Computación Paralela: capítulos por determinar en función de la formación de los alumnos del libro Francisco Almeida, Domingo Giménez, José Miguel Mantas, Antonio M. Vidal: Introducción a la Programación Paralela, Paraninfo Cengage Learning, 2008
Bibliografía básica de algoritmos matriciales: Golub, Van Loan, Matrix Computation. John Hopkins University Press.
Curso 2018-2019
PLAN DE TRABAJO: Se trabajarán los distintos temas de la asignatura sobre algún problema científico, preferentemente en el que se aplique algún algoritmo de computación numérica matricial. Si algún alumno tiene algún problema que sea susceptible de trabajar con él los distintos temas de la asignatura, puede consultar con los profesores el trabajar sobre ese problema.
Los temas que se tratan en la asignatura son:
-Entornos de programación paralela: OpenMP, MPI, CUDA, Xeon Phi
-Algoritmos matriciales: secuenciales, por bloques, out-of-core, paralelos
-Librerías numéricas: BLAS, LAPACK, MKL, PLASMA, MAGMA, CUBLAS, ScaLAPACK...
-Aplicaciones científicas del paralelismo
EVALUACIÓN: El porcentaje de cada parte en la nota final es: Entornos 20%, Algoritmos matriciales 20%, Librerías 20%, Aplicación científica 40%.
Los trabajos para las tres convocatorias del curso 2018-2019 serán los mismos. Para cada trabajo a realizar se indicará su fecha de entrega, y el plazo máximo de la entrega final coincide con la fecha de examen (no habrá examen) en el calendario: 14 de enero, 31 de mayo y 5 de julio.
PRÁCTICAS: Se dará cuenta a los alumnos en el laboratorio de Computación Científica y Programación Paralela para que realicen los trabajos prácticos. Se puede consultar la guía de heterosolar en página del grupo CCPP
PLANIFICACIÓN 2018-2019 (siempre provisional. En azul se indica la fecha de inicio de una parte a evaluar, y en rojo la fecha máxima de entrega):
1 de octubre, 18:00, aula A.04 del Aulario Norte. En esta sesión se planifica el curso. Se irá dejando información de las distintas sesiones cuando esté disponible.
Evaluación: Se ha decidido el tema de entornos de programación paralela (2 puntos) sobre el que cada alumno preparará una presentación para el día 26 de noviembre, incluyendo algún ejemplo de programa en el entorno correspondiente. Se puede consultar la página de la asignatura de cuarto Metodología de la Programación Paralela.
8 octubre (a partir de aquí las sesiones serán en el aula 0.01 de la facultad de informática): Algoritmos matriciales básicos, ejemplos. Javier Cuenca
Evaluación: se indicarán los trabajos a realizar sobre algoritmos matriciales básicos (0.5 puntos).
15 octubre: Algoritmos matriciales por bloques, ejemplos. Javier Cuenca
Evaluación: se indicarán los trabajos a realizar sobre algoritmos matriciales por bloques (0.5 puntos).
22 octubre: Algoritmos matriciales paralelos, OpenMP y MPI. Códigos. Domingo Giménez.
29 octubre: Algoritmos matriciales paralelos, sistemas híbridos y out-of-core. Domingo Giménez.
Evaluación: se indicarán los trabajos a realizar sobre algoritmos matriciales paralelos (1 punto)
5 noviembre: Problemas científicos en el grupo de Computación Científica y Programación Paralela. Domingo Giménez y otros.
Se usará material de:
Presentación sobre problemas científicos, de curso 2016-2017
Metaheurísticas paralelas: optimización y aplicaciones, Máster de Computación Paralela y Distribuida, UPV, noviembre 2017
Evaluación: los alumnos seleccionarán alguno de los problemas propuestos o alguno acordado con los profesores para realizar el trabajo final sobre paralelismo en problemas científicos (4 puntos). Se asignará uno de los profesores para tutorizar y revisar cada uno de los trabajos.
12 noviembre: Librerías matriciales paralelas. Javier Cuenca.
Librerías matriciales secuenciales y multihilo. BLAS, ATLAS, GotoBLAS, LAPACK, MKL... Códigos ejemplo.
Material complementario de cursos anteriores:
transparencias de MKL del Curso de Programación en el Supercomputador Ben-Arabí
charla de 2014 de Luis Pedro García (UPCT) sobre Rutinas y Librerías de Álgebra Lineal en Sistemas Many-Core
charla de 2013 de Francisco Martínez Zaldívar (UPV) sobre LU Out-of-Core
19 noviembre: Librería Chamaleon y Optimización jerárquica de rutinas de álgebra lineal. Jesús Cámara.
26 noviembre: Librerías paralelas en Heterosolar. Jesús Cámara, media hora.
Evaluación: se indicarán los trabajos a realizar sobre librerías paralelas (2 puntos).
Presentaciones de entornos de programación paralela, incluirá la discusión de los trabajos sobre algoritmos matriciales. Alumnos, media hora por alumno.
Evaluación: con la presentación se evalúa la parte de entornos de programación paralela (2 puntos) y de algoritmos matriciales (2 puntos), sobre los que habrá que entregar una documentación contestando las cuestiones que se plantearon.
3 diciembre: Paralelismo en algoritmos de bioinformática. Domingo Giménez.
Utilizando las presentaciones de la parte de algoritmos del máster de bioinformática de hace unos cursos, se discutirán problemas del libro An Introduction to Bioinformatics Algorithms.
Se puede ver alguna parte de las presentaciones:
Metaheurísticas paralelas: optimización y aplicaciones, Máster de Computación Paralela y Distribuida, UPV, noviembre 2017
Baldomero Imbernón, José M Cecilia and Domingo Giménez: Enhancing Metaheuristic-based Virtual Screening Methods on Massively Parallel and Heterogeneous Systems, presentation, PMAM 2016 - 7th International Workshop on Programming Models and Applications for Multicores and Manycores in 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, Barcelona, March 12-16 2016
10 diciembre: charla de profesor El-Ghazali Talbi, de la Universidad de Lille, Francia, “Synergy between metaheuristics and machine learning”.
17 diciembre: Presentaciones de paralelización en problemas científicos y de los trabajos de librerías paralelas. Alumnos, 40 minutos por alumno.
Evaluación: se evaluarán los trabajos de librerías paralelas (2 puntos), sobre los que habrá que entregar una documentación contestando las cuestiones que se plantearon. Cada alumno presentará también el problema científico sobre el que hará el trabajo final y discutirá ideas sobre su paralelización.
La entrega del trabajo final (4 puntos, con documentación explicando el problema y las paralelizaciones realizadas, estudio teórico y experimental) se realizará al profesor asignado hasta el día de la fecha de examen (no hay examen) en la convocatoria correspondiente (14 de enero, 31 de mayo y 5 de julio). Las fechas límites de entrega del resto de trabajos si no se entregaron en el plazo inicialmente indicado serán estas mismas fechas.
PLANIFICACIÓN del curso 2017-2018, se deja como información, y se irá eliminando conforme se vaya incluyendo la información correspondiente en la planificación de 2018-2019:
27 noviembre, 18:00. Librerías en Heterosolar. Jesús
4 diciembre, 18:00. Factorizaciones matriciales no-negativas: Aplicaciones, algoritmos, paralelización, presentacion, Víctor Manuel García Mollá, UPV
18 diciembre, 18:00. Preparando MPI hacia Exascale, Sergio Rivas Gómez, KTH Royal Institute of Technology, sobre extensiones de MPI. Trabajo de Francisco Muñoz sobre OpenACC