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

C/C++, programmer ses applications en Multicore

C/C++, programmer ses applications en Multicore

Télécharger au format pdf Partager cette formation par e-mail 2


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 : 1990 € H.T.
  3j - 21h
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.
  • Pôle Emploi sous réserve de l’acceptation de votre dossier par votre conseiller Pôle Emploi.
  • 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.
  • Pôle Emploi sous réserve de l’acceptation de votre dossier par votre conseiller Pôle Emploi.

Avis clients
4,5 / 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.
FRANCINE S.
07/03/22
5 / 5

J’ai préféré la partie multithreads
EMMANUEL J.
07/03/22
3 / 5

Super formation. Certains sujets mériteraient d’être plus approfondis (mais impossible dans le temps imparti). Peut-être scinder la formation en 2 ? (je pense notamment à MPI et GPGPU).
ERWANN T.
23/06/21
5 / 5

Quelques améliorations à fournir sur les supports pédagogiques : support de cours à jours, plus de schémas, graphiques pour visualiser les concepts. La chronologie du cours est pertinente, mais se situer/repérer dedans n’est pas immédiate et nécessite du recul. Moins de détails sur la partie théorique à prévoir pour plus de petits exercices (hors TP) pratiques Bon dynamisme du formateur sur la




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 à 15h30 le dernier jour.

Dates et lieux
Pour vous inscrire, sélectionnez la ville et la date de votre choix.
Du 19 au 21 septembre 2022
FR
Classe à distance
S’inscrire
Du 19 au 21 septembre 2022 *
FR
Paris La Défense
Session garantie
S’inscrire
Du 28 au 30 novembre 2022
FR
Paris La Défense
S’inscrire
Du 28 au 30 novembre 2022
FR
Classe à distance
S’inscrire