Descriptif
Mais la parallélisation est une tâche délicate, qui dépend bien sûr de l'architecture cible, qui nécessite le plus 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, à différentes architectures 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
- Travaux dirigés en salle info : 15
- Cours magistral : 5
- Contrôle : 1
effectifs minimal / maximal:
1/111Diplôme(s) concerné(s)
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 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 : 2
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 - Architectures des calculateurs parallèles
1TD : Initiation à MPI
2CM : Différents paradigmes de parallélisation
2TD : Parallélisation en mémoire distribuée avec MPI
3CM : Parallélisation des algorithmes
3TD : Parallélisation sur architecture à mémoire partagée avec OpenMP
4CM : Optimisation des programmes parallèles - Mesures de performance
4TD : pthreads (suite), équilibrage de charge, réglage de granularité
5CM : Optimisation des échanges de message pour le calcul distribué et les GPGPUs
Différents outils pour paralléliser et optimiser un code parallèle.
5TD : (mini-projet 1) parallélisation d'un code séquentiel
6CC : Contrôle de connaissances (sur papier)
6TD : (mini-projet 2) parallélisation d'un code séquentiel
7TD : noté