Nos domaines de formation :

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

4,6 / 5
Stage pratique
Durée : 3 jours
Réf : MUC
Prix  2019 : 1960 € H.T.
Pauses et déjeuners offerts
  • Programme
  • Participants / Prérequis
  • Intra / sur-mesure
  • avis vérifiés
Programme

Vous découvrirez les architectures Multicore et leur programmation, les techniques de mise en œuvre d'une approche multithread ou multiprocessus et les langages dédiés à la programmation parallèle. Vous étudierez également les contraintes en matière de synchronisation d'accès aux données et les précautions à prendre.

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

Travaux pratiques

Les travaux pratiques seront réalisés en C/C++ sous Visual Studio en environnement Windows.
PROGRAMME DE FORMATION

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.
Participants / Prérequis

» Participants

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.
Intra / sur-mesure

Demande de devis intra-entreprise
(réponse sous 48h)

Vos coordonnées

J’ai lu et j’accepte les conditions liées à l’usage de mes données dans le cadre de la réglementation sur la protection des données à caractère personnel (RGPD). Dans ce contexte, j’accepte de recevoir des communications de la part d’ORSYS Formation. Je peux modifier l’usage de mes données via ce formulaire.
Avis vérifiés
picto avis vérifiés
Vera M. 10/09/2018
4 / 5
Intéressante couverture du sujet et approche agréable (animation et exo)

Guillaume P. 10/09/2018
5 / 5
Peut-être un peu court pour tout traiter, beaucoup d'informations à ingérer en peu de temps.

Matthieu L. 10/09/2018
5 / 5
1ère Partie sur le multi-processing vraiment intéressante, 2e partie sur le calcul parallèle plus superficielle (mais ça m'intéressait moins de base)

Sarvananthan S. 10/09/2018
5 / 5
Très bonne formation, cependant certains thèmes méritent d'être approfondis comme la programmation avec OpenCL et CUDA, et un exemple de programmation sur cible embarquée.

Benoit M. 28/05/2018
4 / 5
Formation très intéressante et très bien exposée par le professeur. 3 jours est un peu cours pour approfondir tous les sujets correctement.

Bastien B. 28/05/2018
4 / 5
Très satisfait du contenu de la formation: les sujets principaux relatifs à la programmation concurrente ont été couverts. L'exercice pratique principal est de qualité, il permet d'appliquer les connaissances et les concepts théoriques.

Daniel C. 28/05/2018
4 / 5
Formation conforme à mes attentes, autant au niveau du contenu que de la présentation par le formateur.

Martin W. 28/05/2018
5 / 5
Formation très intéressante Une journée complète d'une exercice pratique était très bien Je préfère environnement Linux mais je comprends l'utilisation de Windows

Didier L. 28/05/2018
5 / 5
Possibilité d'avoir des machines Linux pour les TP
Avis client 4,6 / 5

Les avis client sont issus des feuilles d’évaluation de fin de formation. La note est calculée à partir de l’ensemble des avis datant de moins de 12 mois.

Pour vous inscrire

Cliquez sur la ville, puis sur la date de votre choix.
[-]
PARIS

Horaires

Les cours ont lieu de 9h à 12h30 et de 14h à 17h30.
Les participants sont accueillis à partir de 8h45.
Pour les stages pratiques de 4 ou 5 jours, les sessions se terminent à 15h30 le dernier jour.