Formation Langage C/C++, programmation Multicore

Formation créée le 07/07/2023. Dernière mise à jour le 05/11/2024.
Version du programme : 1

Type de formation

Formation mixte

Durée de formation

21 heures (3 jours)

Accessibilité

Oui
Cette formation est gratuite.
S'inscrire
Besoin d’adapter cette formation à vos besoins ? N’hésitez pas à nous contacter afin d’obtenir un devis sur mesure ! Nous contacter

Formation Langage C/C++, programmation Multicore


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

Version PDF

Objectifs de la formation

  • 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

Profil des bénéficiaires

Pour qui
  • 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.

Contenu de la formation

Présentation
  • 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.

Équipe pédagogique

Votre formateur est un consultant et architecte logiciel avec plus de 10 d'expériences pédagogiques et techniques.

Suivi de l'exécution et évaluation des résultats

  • Feuille de présence signée en demi-journée, Évaluation des acquis tout au long de la formation, Questionnaire de satisfaction, Attestation de stage à chaque apprenant.

Ressources techniques et pédagogiques

  • Moyens pédagogiques : Réflexion de groupe et apports théoriques du formateur, Travail d'échange avec les participants sous forme de réunion-discussion, Utilisation de cas concrets issus de l'expérience professionnelle, Validation des acquis par des questionnaires, des tests d'évaluation, des mises en situation et des jeux pédagogiques, Remise d'un support de cours.
  • Moyens techniques en Présentiel : Accueil des stagiaires dans une salle dédiée à la formation, équipée d'ordinateurs, d'un vidéo projecteur d'un tableau blanc et de paperboard.
  • Moyens techniques en Distanciel : A l'aide du logiciel Teams, un micro et une caméra pour l'apprenant, Suivez une formation en temps réel et entièrement à distance. Lors de la classe en ligne, les apprenants interagissent et communiquent entre eux et avec le formateur. Les formations en distanciel sont organisées en Inter-Entreprise comme en Intra-Entreprise. L'accès à l'environnement d'apprentissage (support de cours, labs) ainsi qu'aux preuves de suivi et d'assiduité (émargement, évaluation) est assuré.

Qualité et satisfaction

Taux de satisfaction des apprenants par rapport à l'enseignement du formateur - 98% Taux de satisfaction générale (contenu de la formation, enseignement, environnement, accueil...) 93%

Modalités de certification

Détails sur la certification
  • Pas de certification

Capacité d'accueil

Entre 1 et 10 apprenants

Délai d'accès

3 semaines

Accessibilité

Les personnes atteintes de handicap souhaitant suivre cette formation sont invitées à nous contacter directement, afin d'étudier ensemble les possibilités de suivre la formation.