> Formations > Technologies numériques > Développement logiciel > C, C++ > Formation C/C++, programmer ses applications en Multicore

Formation : C/C++, programmer ses applications en Multicore

C/C++, programmer ses applications en Multicore

Télécharger le programme Partager cette formation


Vous découvrirez les architectures Multicore et leur programmation, les techniques de mise en œuvre d'une approche multithread ou multiprocessus et les langages dédiés à la programmation parallèle. Vous étudierez également les contraintes en matière de synchronisation d'accès aux données et les précautions à prendre.


Inter
Intra
Sur mesure

Cours pratique en présentiel ou en classe à distance

Réf. MUC
Prix : 1870 € H.T.
  3j - 21h00




Vous découvrirez les architectures Multicore et leur programmation, les techniques de mise en œuvre d'une approche multithread ou multiprocessus et les langages dédiés à la programmation parallèle. Vous étudierez également les contraintes en matière de synchronisation d'accès aux données et les précautions à prendre.

Objectifs pédagogiques
À l’issue de la formation, le participant sera en mesure de :
  • Maîtriser les enjeux de la programmation Multicore
  • Concevoir et développer des applications à base de threads et de processus
  • Maîtriser les modèles de programmation parallèle et les librairies disponibles
  • Déboguer et profiler des applications Multicore

Public concerné
Développeurs, architectes logiciels, chefs de projet.

Prérequis
Bonnes connaissances de C ou de C++. Connaissances de base des concepts liés aux applications Multicore.
Vérifiez que vous avez les prérequis nécessaires pour profiter pleinement de cette formation en faisant  ce test.

Programme de la formation

Introduction

  • Enjeux de la programmation Multicore.
  • Tableau des technologies utilisables : processus, thread et parallélisme.
  • Description du fonctionnement d'un processeur.
  • Architecture en "Hyperthreading".
  • Architectures des processeurs INTEL et AMD.
  • Architectures NVidia et API.
  • Architecture en mémoire partagée vs mémoire distribuée.

Modélisation des applications

  • Importance des aspects modélisation.
  • Patterns de mise en parallèle des traitements.
  • Utilisation des mécanismes asynchrones.
  • Développer une nouvelle application : précautions et modélisation. Eviter les "singletons".
  • Modifier une application existante en Multicore.
  • Choix d'architecture : un compromis synchronisation et performance. Choix multiprocessus/multithreads.

Threads

  • Apport des threads dans une application industrielle.
  • Ordonnancement des threads.
  • Gestion des stacks et "call stack" dans les threads.
  • Débogueurs multithreads.
  • Gestion des objets de synchronisation : sections critiques, Mutex et Sémaphores.
  • Développer "thread safe".
  • API de threads TBB, Clik++, C++11, boost threads, pthreads.
Travaux pratiques
Threads et synchronisation en C/C++.

Processus

  • Espaces d'adressage des processus, organisation.
  • Critères de choix d'une approche multiprocessus.
  • Techniques de communication interprocessus (IPC).
  • Outils de debugging multiprocessus.
  • Avantage et inconvénients des techniques multiprocessus.
Travaux pratiques
Gestion de traitements asynchrones avec l'API C/C++.

La programmation parallèle

  • Apport et objectifs de la programmation parallèle.
  • La librairie "OpenMP" C++ (programmation mémoire partagée).
  • La librairie "OpenMPI" (programmation mémoire distribuée).
  • Utiliser les GPU des cartes graphiques pour le calcul.
  • Kits de NVidia (CUDA) et ATI.
  • La librairie "OpenAcc" pour la programmation GPU.
  • La librairie "OpenCL" pour la programmation parallèle CPU et GPU.
Travaux pratiques
Paralléliser des algorithmes avec "OpenMP" en C++. Utilisation de l'API OpenCL.

Synthèse et conclusion

  • Conclusion des techniques étudiées.
  • Avenir du C++ avec le multicore.


Modalités pratiques
Travaux pratiques
Les travaux pratiques seront réalisés en C/C++ sous Visual Studio en environnement Windows.

Modalités d'évaluation
Le formateur évalue la progression pédagogique du participant tout au long de la formation au moyen de QCM, mises en situation, travaux pratiques…
Le participant complète également un test de positionnement en amont et en aval pour valider les compétences acquises.

Avis clients
4,7 / 5
Les avis clients sont issus des évaluations de fin de formation. La note est calculée à partir de l’ensemble des évaluations datant de moins de 12 mois. Seules celles avec un commentaire textuel sont affichées.
RAPHAËL L.
22/04/24
5 / 5

Très intéressant. Il reste quelques coquilles d’orthographe dans les diapos
RÉMI P.
22/04/24
5 / 5

Très satisfait de cette formation. Effectivement la partie sur MPI n’était pas ce qui m’intéressait le plus car je ne vois pas de cas d’application actuellement. Mais le reste était très intéressant, notamment sur le fonctionnement des CPU et de la lib OpenMP.
NADER O.
22/04/24
5 / 5

clair et concis avec un bon équilibre entre théorie et pratique. J’ai pu combler une bonne partie des lacunes que j’avais sur le sujet et surtout d’avoir des cas pratiques en tête à tester.




Dates et lieux
Sélectionnez votre lieu ou optez pour la classe à distance puis choisissez votre date.
Classe à distance