Formation C/C++, programmer ses applications en Multicore


Formation C/C++, programmer ses applications en Multicore

Catalogue : Développement logiciel



Introduction
• 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.

 

Fiche de la formation



 Cible :

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.


 Durée : 3 jours

 Type : Stage pratique


 Contactez-nous