Datos Identificativos 2021/22
Asignatura (*) Herramientas para HPC Código 614473105
Titulación
Mestrado Universitario en Computación de Altas Prestacións / High Performance Computing (Mod. Presencial)
Descriptores Ciclo Periodo Curso Tipo Créditos
Máster Oficial 1º cuatrimestre
Primero Optativa 6
Idioma
Inglés
Modalidad docente Híbrida
Prerrequisitos
Departamento Enxeñaría de Computadores
Coordinador/a
Padron Gonzalez, Emilio Jose
Correo electrónico
emilio.padron@udc.es
Profesorado
Andrade Canosa, Diego
Padron Gonzalez, Emilio Jose
Correo electrónico
diego.andrade@udc.es
emilio.padron@udc.es
Web http://aula.cesga.es
Descripción general O obxectivo desta materia é que o alumnado se familiarice cos tipos de aplicación máis comúns que son susceptibles de precisar a utilización de HPC, así como que coñezan as ferramentas e as implementacións existentes para cada unha delas, entendendo ademais os retos que hai que abordar para a súa paralelización e mellora do rendemento. Isto permitirá ao estudante adquirir un coñecemento xeral do mundo HPC e das súas diferentes aplicacións.

Ademais, o alumno aprenderá que ferramentas ten á súa disposición para a caracterización do rendemento en contornos HPC, e como se poden empregar estas para abordar o proceso de paralelización e mellora do rendemento dunha aplicación nunha determinada plataforma. Isto permitiralle ao estudante ser capaz de analizar o rendemento esperable desa aplicación nese sistema, identificando ademais os puntos quentes sobre os que centrar os seus esforzos de optimización.

Finalmente, o alumnado aprenderá que alternativas tecnolóxicas existen para despregar unha aplicación HPC de forma rápida e eficiente. Isto permitirá ao alumno ser capaz de distribuír aplicacións HPC de xeito sinxelo e eficaz en distintas contornos.
Plan de contingencia 1. Modificacións nos contidos

- Non

2. Metodoloxías
*Metodoloxías docentes que se manteñen

- As metodoloxías docentes que se empregan nesta materia se manteñen, pero pasando dunha modalidade docente «Semipresencial» a unha modalidade «Non presencial»

*Metodoloxías docentes que se modifican

- Ningunha, só se modifica a modalidade docente na que se imparten: semipresencial -> non presencial.

3. Mecanismos de atención personalizada ao alumnado

- Os mesmos, simplemente restrinxindo a comunicacións co alumnado ao correo electrónico e a ferramenta Teams da UDC.

4. Modificacións na avaliación

- Ningunha, a avaliación desta materia xa se está a facer en liña para as probas síncronas.

5. Modificacións da bibliografía ou webgrafía

- Ningunha

Competencias del título
Código Competencias del título

Resultados de aprendizaje
Resultados de aprendizaje Competencias del título
El alumnado conocerá los principales tipos de aplicaciones existentes en los que se suelen aplicar técnicas de HPC.
El alumnado aprenderá a utilizar herramientas para caracterizar y representar el rendimiento de una aplicación.
El alumnado aprenderá a usar herramientas para la compilación, generación y despliegue de software en entornos HPC.

Contenidos
Tema Subtema
Estudio de los principales tipos de aplicación HPC. Para cada tipo se verá: 1. Descripción formal del problema.
2. Retos para su paralelización y mejora del rendimiento.
3. Soluciones existentes.
Herramientas para la caracterización y representación del rendimiento de aplicaciones HPC. 1. Uso de herramientas para la caracterización del rendimiento de aplicaciones, tales como monitores software o contadores hardware.
2. Detección de puntos calientes sobre los que incidir en el proceso de optimización.
3. Aplicación de modelos de rendimiento a este proceso.
4. Herramientas para la representación del rendimiento de una aplicación.
Herramientas para la compilación, generación y despliegue de software HPC. 1. Proceso de compilación, optimización y generación de código en un compilador.
2. Optimización del código a través del compilador.
3. Paralelización y vectorización automáticas.
4. Herramientas para la construcción del software.
5. Uso de contenedores para facilitar el despliegue de aplicaciones HPC.

Planificación
Metodologías / pruebas Competéncias Horas presenciales Horas no presenciales / trabajo autónomo Horas totales
Sesión magistral A3 B1 C4 23 0 23
Prácticas de laboratorio A1 A2 A4 A5 C1 18 52 70
Trabajos tutelados B3 B4 B6 B8 B9 0 54 54
Prueba mixta B4 B6 2 0 2
 
Atención personalizada 1 0 1
 
(*)Los datos que aparecen en la tabla de planificación són de carácter orientativo, considerando la heterogeneidad de los alumnos

Metodologías
Metodologías Descripción
Sesión magistral Clases teóricas, en las que se expone el contenido de cada tema. El alumnado dispondrá de todo el material necesario antes de la clase y el equipo docente promoverá una actitud activa, realizando preguntas que permitan aclarar aspectos concretos y dejando cuestiones abiertas para la reflexión del/la estudiante.
Prácticas de laboratorio Clases prácticas en el laboratorio, en las que se realizan tareas dirigidas que permitan al alumnado familiarizarse desde un punto de vista práctico con los contenidos expuestos en las clases teóricas.
Trabajos tutelados Realización de trabajos, en los que el alumnado tiene que emplear los conocimientos adquiridos para resolver distintos problemas de forma autónoma.
Prueba mixta Prueba escrita en la que cada estudiante tiene que mostrar que ha adquirido las competencias propias de la asignatura a través de la respuesta a preguntas teóricas y de la resolución de problemas.

Atención personalizada
Metodologías
Prácticas de laboratorio
Trabajos tutelados
Descripción
La atención personalizada estará garantizada en la realización de las prácticas de laboratorio y de los trabajos tutelados, siendo imprescindible para dirigir al alumnado en el desarrollo de su trabajo. Esta atención personalizada sirve, además, para validar y evaluar el trabajo realizado por cada estudiante en las distintas fases del desarrollo, hasta su finalización.

Por otra parte, se recomienda al alumnado el aprovechamiento de las horas de tutoría individual como ayuda complementaria.

Evaluación
Metodologías Competéncias Descripción Calificación
Prueba mixta B4 B6 Prueba escrita en la que cada estudiante tiene que mostrar que ha adquirido las competencias propias de la asignatura mediante la repuesta a preguntas teóricas y la resolución de problemas. 30
Trabajos tutelados B3 B4 B6 B8 B9 Realización de trabajos, en los que cada estudiante tiene que emplear los conocimientos adquiridos para resolver distintos problemas de forma autónoma. 70
 
Observaciones evaluación

Fuentes de información
Básica
[1] Computer Architecture: A Quantitative Approach (5th or 6th Ed.). John L. Hennessy, David A. Patterson. Morgan Kaufmann. ISBN 978-0123838728 (5th Ed. 2011) 978-0128119051 (6th Ed. 2017)
[2] Performance Tuning of Scientific Applications. David H. Bailey, Robert F. Lucas, Samuel Williams. CRC Press. ISBN 978-1439815694
Complementária
[3] Intel® C++ Compiler Developer Guide and Reference https://software.intel.com/cpp-compiler-developer-guide-and-reference

[4] A Guide to Vectorization with Intel® C++ Compilers https://software.intel.com/sites/default/files/m/4/8/8/2/a/31848-CompilerAutovectorizationGuide.pdf

[5] Intel® VTune™ Amplifier Help https://software.intel.com/en-us/vtune-amplifier-help

[6] Free Software Foundation, Inc.: Using the GNU Compiler Collection (GCC). https://gcc.gnu.org/onlinedocs

Recomendaciones
Asignaturas que se recomienda haber cursado previamente
Programación Paralela/614473102

Asignaturas que se recomienda cursar simultáneamente

Asignaturas que continúan el temario

Otros comentarios

Debido a la fuerte interrelación entre la parte teórica y la parte práctica, y á la progresividad en la presentación de conceptos muy relacionados entre si en la parte teórica, es recomendable dedicar un tiempo de estudio o un repaso diario.


En esta materia se hará un uso intensivo de herramientas de comunicación en línea: videoconferencia, correo-e, chat, etc.


(*) La Guía Docente es el documento donde se visualiza la propuesta académica de la UDC. Este documento es público y no se puede modificar, salvo cosas excepcionales bajo la revisión del órgano competente de acuerdo a la normativa vigente que establece el proceso de elaboración de guías