Code
IGFF CSC 5001
Level
M2
Graduate
Graduate
Semester
Fall
Domain
Informatique
Program
Programme Ingénieur
Language
Français/French
ECTS Credits
4
Class hours
45
Workload
90
Program Manager(s)
Department
- Informatique
Educational team
Organisation
Cours/TD/TP/projet/examen : 30/0/15/0Learning objectives
À l'issue du module CSC5001, les étudiants sont capables de :
- Expliquer les enjeux, les contraintes et les exigences du Calcul Hautes Performances
- Concevoir une application parallèle performante sur une architecture cible (grappes de machines, machines multicœurs, machines hétérogènes intégrant CPU et GPU) à partir de sa version séquentielle en utilisant les outils classiques du parallélisme (par exemple OpenMP, MPI, CUDA)
- Analyser les performances d'une application parallèle pour proposer des pistes d'amélioration, et présenter la démarche et les résultats sous la forme d'une présentation orale
CDIO Skills
- 2.2.3 - Experimental Inquiry
- 2.2.4 - Hypothesis Test, and Defense
- 2.3.4 - Trade-offs, Judgement and Balance in Resolution
- 4.3.4 - Development Project Management
- 4.8.5 - Designing products and services around new technologies
Prerequisites
- Algorithmique (bonne connaissance), langage C (bonne pratique), Unix (bonne pratique utilisateur), Threads (bonne pratique)
Keywords
Grappes,OpenMP, MPI, GPU, HPC
Content
- Les fondamentaux du parallélisme
- Principes, concepts, intérêt…
- Architectures matérielles
- Solutions et tendance
- Algorithmique parallèle :
- Modèles de communication
- Parallélisme de données / Parallélisme de tâches
- Les grappes de calcul
- Outils de développement
- OpenMP : Principes, API, Compilation, exécution, tuning, développement d'une application parallèle
- MPI : Principes, API, Compilation, exécution, tuning, développement d'une application parallèle
- GPU : Principes, API CUDA, Compilation, exécution
- Programmation hybride: MPI + OpenMP
- Analyse de performance
- Micro-projet
- Conférences
Evaluation
The final mark is based on the evaluation of a micro-project performed by groups of two and two evaluated labs.
Final mark = 1/2 Micro-project + 1/4 Evaluated Lab 1 + 1/4 Evaluated Lab 2
References
Supports de cours : transparents
Bibliographie :
- A. Grama, A. Gupta, G. Karypis and V. Kumar, Introduction to parallel computing, Addison-Wesley, 2003, 2nd edition
- OpenMP Application Program Interface, Version 2.5, Public draft, November 2004
- Marc Snir et al., MPI : The complete reference, MIT Press, 1996
- Jason Sanders and Edward Kandrot, CUDA by Example, Addison-Wesley, 2011