Code
IGFF CSC 5001
Niveau
M2
Graduate
Graduate
Semestre
Fall
Domaine
Informatique
Programme
Programme Ingénieur
Langue
Français/French
Crédits ECTS
4
Heures programmées
45
Charge de travail
90
Coordonnateur(s)
Département
- Informatique
Equipe pédagogique
Organisation
Cours/TD/TP/projet/examen : 30/0/15/0Acquis d'apprentissage
À 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
Compétences CDIO
- 2.2.3 - Recherche expérimentale
- 2.2.4 - Tests d'hypothèses et argumentation critique
- 2.3.4 - Chercher des compromis et décider
- 4.3.4 - Gestion de projets de développement
- 4.8.5 - Conception de produits et services autour des nouvelles technologies
Prérequis
- Algorithmique (bonne connaissance), langage C (bonne pratique), Unix (bonne pratique utilisateur), Threads (bonne pratique)
Mots-clés
Grappes,OpenMP, MPI, GPU, HPC
Contenu
- 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
La plupart des notions abordées dans cette UV sont approfondies lors d’un micro-projet. La réalisation de ce micro-projet est évaluée par un rapport écrit (R) et une soutenance orale (S) incluant une démonstration.
Ce qui n’a pu être abordé dans le micro-projet est évalué par TP noté (TP).
Note finale = ½ Micro-projet + ¼ TP noté 1 + ¼ TP noté 2
Bibliographie
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