ECTS credits ECTS credits: 6
ECTS Hours Rules/Memories Student's work ECTS: 107 Hours of tutorials: 1 Expository Class: 24 Interactive Classroom: 18 Total: 150
Use languages Galician, English
Type: Ordinary subject Master’s Degree RD 1393/2007 - 822/2021
Center Higher Technical Engineering School
Call: First Semester
Teaching: With teaching
Enrolment: Enrollable | 1st year (Yes)
The objective of this course is to get the students familiar with the most common types of application that are candidates to use HPC, besides being introduced to the main tools and implementations existing for them, understanding the challenges to be addressed for their parallelization and performance tuning. All this will allow the students to obtain a general knowledge about the HPC field and its different applications and use cases.
Furthermore, the students will learn what tools can be used to carry out the performance characterization and benchmarking tasks in HPC environments, and how these tools can be leveraged to drive the parallelization and performance tuning of an application on a specific platform. This will allow the students to be able to analyze the expected performance on that system, identifying the different hot spots and focussing the optimization efforts on them.
Finally, the students will learn different technological alternatives for a fast and efficient deployment of HPC applications. This will allow them to be able to easily and effectively deliver and execute HPC applications in different environments.
* A survey of the main application types in HPC environments
For each type we will see:
1. Problem: formal description.
2. Parallelization and performance tuning challenges.
3. Existing approaches.
* Tools for software compilation and optimization in HPC environments
1. Code compilation, optimization and generation.
2. Code optimization with a compiler.
3. Automatic parallelization and vectorization.
4. Tools for software building automation.
* Tools to measure, characterize and represent the performance of HPC applications
1. Usage of performance characterization and benchmarking tools,
such as software monitoring and hardware counters.
2. Hot spot detection to drive the optimization process.
3. Application of performance models to this process.
4. Tools for application performance representation
* Tools for the deployment of AI applications in HPC environments
1. Training and deployment of Deep Learning models in HPC
environments.
2. Use of containers to ease the deployment of HPC applications.
Basic bibliography:
[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
Complementary bibliography:
[3] Intel® C++ Compiler 17.0 Developer Guide and Reference https://software.intel.com/sites/default/files/managed/08/ac/PDF_CPP_Co…
[4] Intel® VTune™ Amplifier 2018 Help https://software.intel.com/en-us/vtune-amplifier-help
[5] Free Software Foundation, Inc.: Using the GNU Compiler Collection (GCC).
https://gcc.gnu.org/onlinedocs
- Students will know the most common types of applications in which HPC techniques are usually applied.
- Students will learn to use tools to characterize and represent the performance of applications.
- Students will learn to use tools to compile, generate and deploy software in HPC environments.
Degree competences that are trained (see degree documentation):
- Basic: CG1,CG3,CG4, CB6,CB8,CB9
- Transverse/General: CT1,CT4
- Specific: CE1,CE2,CE3,CE4,CE5
- Lectures, discussing the different lessons of the course. Students will have available all the necessary material in advance and the teacher will promote an active attitude in the classroom, asking questions that may clarify specific aspects and leaving open issues for student reflection.
- Lab sessions, allowing the students to become familiar from a practical standpoint with the issues discussed in the lectures.
- Guided task fulfillment: students apply the acquired knowledge to solve different problems autonomously.
Educational activities in the classroom and their relationship with the degree competences:
Lectures CB6, CT4,CE3
Lab sessions CT1, CE1, CE2
Office hours CB8, CB9
Educational activities out of the classroom and their relationship with the degree competences:
Lab sessions CT1, CE1, CE2
Guided task fulfillment CG1, CG3, CG4, CE1, CE2, CE4,CE5
Assessment of guided tasks: 70%
Periodic tests and/or final exam: 30%
In the case of fraudulent performance of exercises or tests, the regulations of the Normativa de avaliación do rendemento académico dos estudantes e de revisión de cualificacións will be applied.
In the application of the Normativa da ETSE sobre plaxio (approved by the ETSE Council on 12/19/2019), the total or partial copy of any exercise will mean failure on both opportunities of the course, with a grade of 0.0 in both cases.
- Lectures: 23h on-site + 0h unsupervised learning (total 23h)
- Lab sessions: 18h on-site + 54h unsupervised learning (total 72h)
- Office hours: 1h on-site + 0h unsupervised learning(total 1h)
- Tasks fulfillment: 0h on-site + 54h unsupervised learning (total 54h)
TOTAL: 42h on-site + 108h unsupervised = 150h
Because of the strong interrelation between the lectures and the lab sessions, and the progressive presentation of concepts very related each other in the lectures, it is recommended to dedicate enough time to a daily study or review.
This course will leverage online communication tools in quite an intensive way: videoconference, e-mail, chat, etc.
The subject will be taught in English.