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

Les modalités de contrôle des connaissances (MCC) sont arrêtées chaque année par l'université et font foi dans le document officiel du parcours. Elles ne sont pas reproduites ici : reportez-vous au document MCC officiel, dont le lien figure sur la page de présentation du parcours concerné.