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
Version du programme : 1
Type de formation
Formation mixteDurée de formation
21 heures (3 jours)Accessibilité
Oui
Cette formation est gratuite.
S'inscrire
€
HT
S'inscrire
€
HT
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 PDFObjectifs 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.