Logo de l'organisme de formation

Assurer votre succès !

Représentation de la formation : Formation Langage C/C++, programmation Multicore

Formation Langage C/C++, programmation Multicore

Formation mixte
Accessible
Durée : 21 heures (3 jours)
0/10
(0 avis)
Durée :21 heures (3 jours)
Cette formation est gratuite.
S'inscrire
Durée :21 heures (3 jours)
HT
S'inscrire
Durée :21 heures (3 jours)
HT
S'inscrire

Besoin d’adapter cette formation à vos besoins ?

N’hésitez pas à nous contacter afin d’obtenir un devis sur mesure !

Formation créée le 07/07/2023. Dernière mise à jour le 05/11/2024.

Version du programme : 1

Programme de la formation Version PDF

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.

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%
0/10
(0 avis)

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.