Descriptif
Mais la parallélisation est une tâche délicate, qui demande une bonne connaissance de l'architecture du calculateur cible, qui nécessite souvent de repenser l'application, parfois jusque dans ses fondements algorithmiques et qui peut buter sur des difficultés d'ordre fondamental. Le cours constituera une introduction aux différents types de parallélisme, aux différentes archictectures qui les implantent et aux concepts et cadres logiciels nécessaires à leur mise en oeuvre.
Objectifs pédagogiques
- Expliquer les limitations et les concepts fondamentaux du calcul parallèle, à la fois par échange de message et en mémoire partagée
- Développer ou adapter des algorithmes sur un calculateur parallèle
- Expliquer les performances d'un programme parallèle à partir des caractéristiques matérielles et architecturales sous-jacentes
- Choisir les bons outils de mesure pour calculer objectivement les performances d'un programme parallèle
- Tirer parti d'un GPGPU connaissant son architecture
- Contrôle : 1
- Cours magistral : 5
- Travaux dirigés en salle info : 15
effectifs minimal / maximal:
1/111Diplôme(s) concerné(s)
- Master 1 Parisien de Recherche Opérationnelle
- Diplôme d'Ingénieur de l'Ecole Nationale Supérieure de Techniques Avancées
Parcours de rattachement
Pour les étudiants du diplôme Diplôme d'Ingénieur de l'Ecole Nationale Supérieure de Techniques Avancées
ES102, IN201, IN204
Format des notes
Numérique sur 20Littérale/grade européenPour les étudiants du diplôme Master 1 Parisien de Recherche Opérationnelle
Pour les étudiants du diplôme Diplôme d'Ingénieur de l'Ecole Nationale Supérieure de Techniques Avancées
Vos modalités d'acquisition :
- le rattrapage est obligatoire si :
- Note initiale < 6
- le rattrapage peut être demandé par l'étudiant si :
- 6 ≤ note initiale < 10
- Crédits ECTS acquis : 2 ECTS
- Scientifique acquis : 2
Le coefficient de l'UE est : 1
La note obtenue rentre dans le calcul de votre GPA.
L'UE est évaluée par les étudiants.
Programme détaillé
(CC = Contrôle de connaissances - CM = Cours Magistral - TD = Travaux Dirigés sur ordinateur)
1CM : Introduction à la programmation parallèle - Motivation - Architectures des calculateurs parallèles - Mesure des performances
1TD : Initiation à MPI
2CM : Programmation parallèle en mémoire distribuée
2TD : Parallélisation en mémoire distribuée avec MPI
3CM : Parallélisation en mémoire partagée. Introduction à OpenMP et aux threads C++ 11
3TD : Parallélisation sur architecture à mémoire partagée avec OpenMP et les threads C++ 11
4CM : Programmation des GPGPUs avec CUDA
4TD : Parallélisation d'un code séquentiel en MPI et OpenMP
5CM : Autres outils de programmation parallèle (OpenCL, TBB, C++ 17, etc.). Présentation du projet parallèle
5TD : projet parallèle.
6CC : Contrôle de connaissances : examen papier
6TD : Projet parallèle.
7TD : Contrôle des connaissances : examen machine