Parallel and high-performance computing
Summary
This course provides insight into a broad variety of High Performance Computing (HPC) concepts and the majority of modern HPC architectures. Moreover, the student will learn to have a feeling about what architectures are suited for several types of algorithms and learn to program for them.
Content
HPC overview:
- Today's HPC: Beowulf-style clusters, massively parallel architectures, hybrid computing, accelerators
- HPC history and background
- HPC benchmarks explained
- Multicore systems
- Scaling
Writing HPC code:
- Shared memory parallelism with OpenMP
 Distributed memory parallelism with MPI
- Hybrid programming with OpenMP and MPI
- GPGPU primer
- Profiling
Keywords
HPC, Parallelization, Multi-threading, MPI, GPU
Learning Prerequisites
Required courses
- Analysis, bachelor level
- Numerical analysis for engineers
- Matrix algebra
- C/C++ programming
Important concepts to start the course
Learning Outcomes
By the end of the course, the student must be able to:
- Classify the types of HPC architecture
- Identify codes suited for parallelization
- Apply the most common parallelization techniques
- Implement algorithms in parallel
- Argue about the differences in performance between theory and practice
- Investigate the performance of parallel code
- Optimize the usage of hardware and software resources depending on the type of algorithm to parallelize
Transversal skills
- Set objectives and design an action plan to reach those objectives.
- Communicate effectively with professionals from other disciplines.
- Write a scientific or technical report.
- Access and evaluate appropriate sources of information.
Teaching methods
Lectures, exercises, project work
Expected student activities
Attendance to lectures, completing exercises, writing a project
Assessment methods
Project(s) and oral exam.
Supervision
| Office hours | Yes | 
| Assistants | Yes | 
| Forum | Yes | 
Dans les plans d'études
- Semestre: Printemps
- Forme de l'examen: Oral (session d'été)
- Matière examinée: Parallel and high-performance computing
- Cours: 2 Heure(s) hebdo x 14 semaines
- Exercices: 1 Heure(s) hebdo x 14 semaines
- TP: 1 Heure(s) hebdo x 14 semaines
- Type: optionnel
- Semestre: Printemps
- Forme de l'examen: Oral (session d'été)
- Matière examinée: Parallel and high-performance computing
- Cours: 2 Heure(s) hebdo x 14 semaines
- Exercices: 1 Heure(s) hebdo x 14 semaines
- TP: 1 Heure(s) hebdo x 14 semaines
- Type: optionnel
- Semestre: Printemps
- Forme de l'examen: Oral (session d'été)
- Matière examinée: Parallel and high-performance computing
- Cours: 2 Heure(s) hebdo x 14 semaines
- Exercices: 1 Heure(s) hebdo x 14 semaines
- TP: 1 Heure(s) hebdo x 14 semaines
- Type: optionnel
Semaine de référence
| Lu | Ma | Me | Je | Ve | |
| 8-9 | |||||
| 9-10 | |||||
| 10-11 | |||||
| 11-12 | |||||
| 12-13 | |||||
| 13-14 | |||||
| 14-15 | |||||
| 15-16 | |||||
| 16-17 | |||||
| 17-18 | |||||
| 18-19 | |||||
| 19-20 | |||||
| 20-21 | |||||
| 21-22 | 
Légendes:
Cours
Exercice, TP
Projet, Labo, autre