> Formations > Technologies numériques > Développement logiciel > C, C++ > Formation C/C++, programmer ses applications en Multicore > Formations > Technologies numériques > 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 : 1910 € H.T.
  3j - 21h00
Pauses-café et
déjeuners offerts




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.

Solutions de financement
Pour trouver la meilleure solution de financement adaptée à votre situation : contactez votre conseiller formation.
Il vous aidera à choisir parmi les solutions suivantes :
  • Le plan de développement des compétences de votre entreprise : rapprochez-vous de votre service RH.
  • Le dispositif FNE-Formation.
  • L’OPCO (opérateurs de compétences) de votre entreprise.
  • France Travail sous réserve de l’acceptation de votre dossier par votre conseiller France Travail.
  • Le plan de développement des compétences de votre entreprise : rapprochez-vous de votre service RH.
  • Le dispositif FNE-Formation.
  • L’OPCO (opérateurs de compétences) de votre entreprise.
  • France Travail sous réserve de l’acceptation de votre dossier par votre conseiller France Travail.

Avis clients
4,8 / 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.
DELCOURT CLAIRE A.
06/11/24
5 / 5

Bcp de choses à appréhender : j’aurai aimé que la formation dure plus longtemps pour pouvoir apprécier les subtilités et passer plus de temps sur les exercicesVarier davantage théorie/pratique plutôt que de faire des longs moments de théoriesIl manque parfois des petites choses dans le support : beaucoup de thèmes se ressemblent et on n’apprécie pas réellement les subtilités de chaque outilLa caméra aurait peut-être rendu la formation un peu plus vivante, mais sinon super, très pédagog
OLIVIER F.
06/11/24
4 / 5

Plus d’exemple dans le support et d’explication pour les fonctions et non que le nom.
FABIAN I.
06/11/24
4 / 5

Très formateur et intéréssant. J’ai trouvé la partie MPI un peu longue, temps qui, je pense, aurait été intéréssant d’utiliser pour montrer des choses plus complexes.Des sujets comme le task dispatching (avec potentiellement des dépendances) et les types de coroutines (stateless & statefull) dont font parti celles du C++20, sur lesquelles il est plus dur de se former seul auraient pu etre intéréssants.




Horaires
En présentiel, les cours ont lieu de 9h à 12h30 et de 14h à 17h30.
Les participants sont accueillis à partir de 8h45. Les pauses et déjeuners sont offerts.
En classe à distance, la formation démarre à partir de 9h.
Pour les stages pratiques de 4 ou 5 jours, quelle que soit la modalité, les sessions se terminent à 16h le dernier jour.

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