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
- 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
Public concerné
- Développeurs, architectes logiciels, chefs de projet.
- Bonnes connaissances de C ou de C++. Connaissances de base des concepts liés aux applications Multicore.
Conditions d'accès
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.
1 à 10 places
3 semaines
Diplôme / Certification
- Pas de certification
Plus qu'une formation !
- 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
9
Très bien
À partir de 3100€ HT
-
Action de formation
-
Formation éligible OPCO
Options de formation
À partir de 2720€ HT (Entreprise)
À partir de 0€ HT (Individuel)
-
Action de formation
-
Formation éligible OPCO
Options de formation