Datos Identificativos 2019/20
Asignatura (*) Ferramentas para HPC Código 614473105
Titulación
Mestrado Universitario en Computación de Altas Prestacións / High Performance Computing (Mod. Presencial)
Descriptores Ciclo Período Curso Tipo Créditos
Mestrado Oficial 1º cuadrimestre
Primeiro Optativa 6
Idioma
Inglés
Modalidade docente Presencial
Prerrequisitos
Departamento Enxeñaría de Computadores
Coordinación
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
Descrición xeral 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 continxencia

Competencias do título
Código Competencias do título
A1 CE1 - Definir, avaliar e seleccionar a arquitectura e o software máis axeitado para a resolución dun problema
A2 CE2 - Analizar e mellorar o rendimento dunha arquitectura ou un software dado
A3 CE3 - Coñecer os conceptos e as técnicas básicas da computación de altas prestacións
A4 CE4 - Afondar no coñecemento de ferramentas de programación e diferentes linguaxes no campo da computación de altas prestacións
A5 CE5 - Analizar, deseñar e implementar algoritmos e aplicacións paralelas eficientes
B1 CB6 - Posuir e comprender coñecementos que aporten unha base ou oportunidade de ser orixinais no desenrolo e/ou aplicación de ideas, a miudo nun contexto de investigación
B3 CB8 - Que os estudantes sexan capaces de integrar coñecementos e enfrontarse á complexidade de formular xuizos a partires dunha información que, sendo incompleta o limitada, inclúa reflexións sobre as responsabilidades sociais e éticas vencelladas á aplicación do seus coñecementos e xuizos
B4 CB9 - Que os estudantes saiban comunicar as súas conclusións e os coñecementos e razóns últimas que as sustentan a públicos especializados e non especializados dun modo claro e sen ambigüidades
B6 CG1 - Ser capaz de buscar e seleccionar a información útil necesaria para resolver problemas complexos, manexando con soltura as fontes bibliográficas do campo
B8 CG3 - Ser capaz de manter e extender plantexamentos teóricos fundados para permitir a introducción e explotación de tecnoloxías novas e avanzadas no campo
B9 CG4 - Ser capaz de planificar e realizar tarefas de investigación, desenrolo e innovación en ámbitos relacionados coa computación de altas prestacións
C1 CT1 -Utilizar as ferramentas básicas das tecnoloxías da información e as comunicacións (TIC) necesarias para o exercicio da súa profesión e para a aprendizaxe ao longo da súa vida.
C4 CT4 - Valorar a importancia que ten a investigación, a innovación e o desenrolo tecnolóxico no avance socioeconómico e cultural da sociedade

Resultados de aprendizaxe
Resultados de aprendizaxe Competencias do título
O alumno coñecerá os principais tipos de aplicación existentes nos que se adoita aplicar técnicas de HPC. AP1
AP2
BP1
BP6
CP1
O alumno aprenderá a empregar ferramentas para caracterizar e representar o rendemento dunha aplicación. AP3
AP4
BP3
BP9
CP4
O alumno aprenderá a empregar ferramentas para a compilación, xeración e despregamento de software en contornos HPC. AP3
AP5
BP1
BP4
BP8
CP1

Contidos
Temas Subtemas
Estudo dos principais tipos de aplicación HPC. Para cada tipo verase:
1. Descrición formal do problema.
2. Retos para a súa paralelización e mellora do rendemento.
3. Solucións existentes.
Ferramentas para a caracterización e representación do rendemento das aplicacións HPC.
1. Uso de ferramentas para a caracterización do rendemento das aplicacións, tais como monitores software ou contadores hardware.
2. Detección de puntos quentes sobre os que incidir no proceso de optimización.
3. Aplicación de modelos do rendemento a este proceso.
4. Ferramentas para a representación do rendemento dunha aplicación.
Ferramentas para a compilación, xeración e despregamento de software HPC.
1. Proceso de compilación, optimización e xeración de código nun compilador.
2. Optimización do código a través do compilador.
3. Paralelización e vectorización automáticas.
4. Ferramentas para a construcción do software.
5. Uso de contedores para facilitar o despregamento de aplicacións HPC.

Planificación
Metodoloxías / probas Competencias Horas presenciais Horas non presenciais / traballo autónomo Horas totais
Sesión maxistral A3 B1 C4 23 0 23
Prácticas de laboratorio A1 A2 A4 A5 C1 18 52 70
Traballos tutelados B3 B4 B6 B8 B9 0 54 54
Proba mixta B4 B6 2 0 2
 
Atención personalizada 1 0 1
 
*Os datos que aparecen na táboa de planificación son de carácter orientativo, considerando a heteroxeneidade do alumnado

Metodoloxías
Metodoloxías Descrición
Sesión maxistral Clases teóricas, nas que se expón o contido de cada tema. O alumno disporá de todo o material preciso con anterioridade á clase e o profesor promoverá unha actitude activa, realizando preguntas que permitan clarexar aspectos concretos e deixando cuestións abertas para a reflexión do alumno.
Prácticas de laboratorio Clases prácticas no laboratorio, nas que se realizan tarefas dirixidas que permitan ao alumno familiarizarse desde un punto de vista práctico cos contidos expostos nas clases teóricas.
Traballos tutelados Realización de traballos, nos que o alumno ten que empregar os coñecementos adquiridos para resolver distintos problemas de forma autónoma.
Proba mixta Proba escrita na que o alumno ten que amosar que adquiriu as competencias propias da materia a través da resposta a preguntas teóricas e da resolución de problemas.

Atención personalizada
Metodoloxías
Prácticas de laboratorio
Traballos tutelados
Descrición
A atención personalizada estará garantida na realización das prácticas de laboratorio e dos traballos tutelados, sendo imprescindible para dirixir os alumnos no desenvolvemento do seu traballo. Esta atención personalizada serve, ademais, para validar e avaliar o traballo realizado polos alumnos nas distintas fases do desenvolvemento, ata a súa finalización.

Por otra banda, recoméndase aos alumnos o aproveitamento das horas de titoría individual como axuda complementaria.

Avaliación
Metodoloxías Competencias Descrición Cualificación
Proba mixta B4 B6 Proba escrita na que o alumno ten que amosar que adquiriu as competencias propias da asignatura a través da reposta a preguntas teóricas e a resolución de problemas. 30
Traballos tutelados B3 B4 B6 B8 B9 Realización de traballos, nos que o alumno ten que empregar os coñecementos adquiridos para resolver distintos problemas de forma autónoma. 70
 
Observacións avaliación

Fontes de información
Bibliografía 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
Bibliografía complementaria
[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

Recomendacións
Materias que se recomenda ter cursado previamente
Programación Paralela/614473102

Materias que se recomenda cursar simultaneamente

Materias que continúan o temario

Observacións
Debido á forte interrelación entre a parte teórica e a parte práctica, e á progresividade na presentación de conceptos moi relacionados entre si na parte teórica, é recomendable dedicar un tempo de estudo ou repaso diario.

Nesta materia farase un uso intensivo de ferramentas de comunicación en liña: videoconferencia, correo-e, chat, etc.


(*)A Guía docente é o documento onde se visualiza a proposta académica da UDC. Este documento é público e non se pode modificar, salvo casos excepcionais baixo a revisión do órgano competente dacordo coa normativa vixente que establece o proceso de elaboración de guías