Introduction à la programmation parallèle

1 250 euros HT / 1 pers.

Avancé

Cycle Performance

21 heures de cours sur 5 jours

Objectif :

Cette formation permet de se familiariser avec les outils et stratégies de programmation parallèle disponibles dans l’écosystème du langage C++.

Bénéfices attendus :

  • Connaître les métriques utiles du parallélisme.

  • Se familiariser avec la programmation sur multi-cœurs. 

  • Se familiariser avec la programmation distribuée.

Public :

  • Ingénieurs, techniciens et scientifiques désirant s’initier à la programmation parallèle. 

  • Une première expérience en C++ est nécessaire.

Programme :

Introduction

Historique des architectures modernes  

Historique du langage
Positionnement dans l’écosystème logiciel


Éléments de base du parallélisme

Loi de Moore
Classification de Flynn
Compute bound ou Memory bound 

Scalabilité forte : Loi d’Amdahl
Scalabilité faible : Loi de Gustafson-Barsis 

Métrique de performance : accélération  

Métrique de performance : efficacité  

Métrique de Karp-Flatt
Mise en pratique : exercices, évaluation


Programmation multi- threading

Principes généraux
Multi-threading en C++ standard  

Synchronisations : mutex, condition variable, atomique
Promesses et Futures : calcul asynchrone 

Programmation multi-threads via OpenMP 

Mise en pratique : exercices, évaluation


Programmation distribuée

Le standard MPI
Communications synchrones 

Communications collectives  

Communications asynchrones
Mise en pratique : exercices, évaluation