Formation Langage C/C++, programmation Multicore avec TechnoWide
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.
À propos de cette formation
Bordeaux
33
À partir de 1 830€ HT (Entreprise)
À partir de 0€ HT (Individuel)
3 jours
21 heures
Action de formation
Éligible OPCO
En savoir plus
Objectifs pédagogiques
- 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
-
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.
L'organisme de formation
Assurer votre succès !
Découvrir TechnoWide
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.
Conditions d'accès
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.
Capacité
1 à 10 places
Délai d'accès
3 semaines
Diplôme / Certification
- Pas de certification
Plus qu'une formation !
Équipe pédagogique
Objectifs 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é.
D'autres formations qui pourraient vous intéresser
Formation PrestaShop, mettre en œuvre et gérer un site marchand
À partir de 1890€ HT (Entreprise)
À partir de 0€ HT (Individuel)
-
Action de formation
-
Formation éligible OPCO
Options de formation
Formation Développer avec C#
À partir de 1740€ HT (Entreprise)
À partir de 0€ HT (Individuel)
-
Action de formation
-
Formation éligible OPCO
Options de formation