M2 - Semestre 3 · Base

Programmation parallèle et distribuée

Code UE
SMINFO3A
ECTS
4 ECTS
Volume horaire
20h CM - 20h TP
Responsable(s)
Parcours
Algorithmiques et Systèmes Intelligents, IA Sciences des Données et Santé, IA et Facteurs Humains
Type de carte
UE de la carte informatique
Prérequis
Non renseigné

Description du cours

La première partie de l’enseignement est dédiée à la programmation (template programming C++) vectorielle et parallèle :

  • template programming pour l’optimisation ;
  • programmation vectorielle via les jeux d’instructions SIMD ;
  • programmation des machines à mémoire partagée au travers du standard OpenMP et la bibliothèque Intel Threading Building Blocks (oneTBB). La seconde partie est dédiée à l’algorithmique distribuée et à l’implémentation (langage C++, module Boost.MPI de la bibliothèque Boost) d’algorithmes courants tels que les horloges (scalaires, vectorielles ou matricielles), l’exclusion mutuelle, la détection de terminaison ou bien encore l’élection. Dix TPs de 2h. Trois consacrés au template programming C++ et la programmation vectorielle, quatre consacrés à la programmation multithreadée et, enfin, trois TP consacrés à la programmation distribuée.

Modalités d'évaluation

Session 1 :

  • Contrôle continu (CC1) : devoir maison.
  • Contrôle terminal (CT1) : 2h, tous documents autorisés.
  • Note finale : la note finale est calculée de la façon suivante : 31 × CC1 + 32 × CT 1.

Session 2 :

  • Contrôle terminal (CT2) : 2h, tous documents autorisés.
  • Note finale : la note finale est calculée de la façon suivante : CT2 uniquement.