Descriptif
Avec l'émergence de processeur multi-coeur (et maintenant manycore avec plusieurs dizaines d'unités d'exécution), l'expression du parallélisme est obligatoire pour permettre des hautes performances dans différents types d'applications (calcul scientifique, mégadonnées...). Dans ce contexte, ce cours détaille de multiples paradigmes de programmation parallèle pour permettre l'exploitation d'un grand nombre de coeurs sur différentes architectures cibles (CPU et GPU). Il comprend le modèle de mémoire distribuée (MPI), le modèle de mémoire partagée (OpenMP) et le modèle hétérogène (CUDA). Toutes ces approches permettraient de tirer parti des performances de différents ordinateurs (allant des petits serveurs jusqu'à de très larges superordinateurs du Top500).
Niveau requis : INF431 ou équivalent
Modalités d'évaluation : Projet
Langue du cours : Anglais
Objectifs pédagogiques
Ce cours permet d'acquérir des compétences en terme d'architectures de calcul modernes (e.g., GPU) et de programmation parallèle à grande échelle. De plus, grâce au projet se déroulant pendant toute la période, ce cours propose une expérience avancée de portage d'application sur une machine parallèle.
Diplôme(s) concerné(s)
- M1 PDS - Parallel and Distributed Systems
- M2 IGD - Interaction, Graphic and Design
- M1 IGD - Interaction, Graphic and Design
Parcours de rattachement
Format des notes
Numérique sur 20Littérale/grade européenPour les étudiants du diplôme M2 IGD - Interaction, Graphic and Design
L'UE est acquise si Note finale >= 10- Crédits ECTS acquis : 5 ECTS
Pour les étudiants du diplôme M1 IGD - Interaction, Graphic and Design
L'UE est acquise si Note finale >= 10- Crédits ECTS acquis : 5 ECTS
Pour les étudiants du diplôme M1 PDS - Parallel and Distributed Systems
Le rattrapage est autorisé (Max entre les deux notes)- Crédits ECTS acquis : 5 ECTS
La note obtenue rentre dans le calcul de votre GPA.
La note obtenue est classante.
L'UE est évaluée par les étudiants.
Programme détaillé
- Architecture de calcul : d'un coeur de calcul jusqu'à un supercalculateur
- Programmation parallèle à mémoire distribuée : MPI
- Programmation parallèle à mémoire partagée : OpenMP
- Programmation hétérogène : CUDA