v2.11.0 (5354)

Cours scientifiques - IN203 : Programmation parallèle

Domaine > Sciences et technologies de l'information et de la communication.

Descriptif

Auparavant spécifique aux super-calculateurs ou au calcul en réseau, le parallélisme est désormais accessible sur station de travail, sous la forme de processeurs multicoeurs ainsi que de cartes graphiques massivement parallèles que l'on peut facilement détourner de leur usage premier. Cet accès aisé au parallélisme est une aubaine pour gagner en rapidité de traitement, en particulier pour certaines applications lourdes en temps de calcul mais aussi en quantité de mémoire nécessaire.

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

Au terme de ce cours, l'étudiant doit être capable de :
- 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

21 heures en présentiel (7 blocs ou créneaux)
réparties en:
  • Travaux dirigés en salle info : 15
  • Cours magistral : 5
  • Contrôle : 1

effectifs minimal / maximal:

1/111

Diplô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 20

Littérale/grade européen

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 :

Examen sur papier, examen sur ordinateur, projet

Le rattrapage est autorisé (Max entre les deux notes écrêté à une note seuil)
  • le rattrapage est obligatoire si :
    Note initiale < 6
  • le rattrapage peut être demandé par l'étudiant si :
    6 ≤ note initiale < 10
L'UE est acquise si Note finale >= 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é

Mots clés

Eléments d'architecture parallèle : topologie réseau, mémoire (cache, NUMA, partagée, distribuée), SIMD/MIMD ; Programmation parallèle : SPMD/MPMD, échange de message (MPI), multithreading (OpenMP/threads), GPGPU (Cuda/OpenCL)
Veuillez patienter