> formation Technologies numériques > formation Développement logiciel > formation Python, C, C_plus_plus > formation C/C_plus_plus, programmer ses applications en Multicore

Avis loadedNote : 4,5Length : 4TotalNote : 415TotalNote20 : 16
Toutes nos formations Python, C, C++

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

4,5 / 5
Stage pratique
Durée : 3 jours
Réf : MUC
Prix  2021 : 1990 € H.T.
Pauses et déjeuners offerts
  • Programme
  • Participants / Prérequis
  • Intra / sur-mesure
  • avis clients
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

À l’issue de la formation, le participant sera en mesure de :
  • 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

En cochant cette case, j’atteste avoir lu et accepté 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).
Vous pouvez à tout moment modifier l’usage de vos données et exercer vos droits en envoyant un email à l’adresse rgpd@orsys.fr
En cochant cette case, j’accepte de recevoir les communications à vocation commerciale et promotionnelle de la part d’ORSYS Formation*
Vous pouvez à tout moment vous désinscrire en utilisant le lien de désabonnement inclus dans nos communications.
* Les participants inscrits à nos sessions de formation sont également susceptibles de recevoir nos communications avec la possibilité de se désabonner à tout moment.
Avis clients
picto avis clients
RAOUL B. 05/10/2020
5 / 5
Très bon formateur. On sent qu’il maitrise bien sont sujet. L’équilibre théorique/pratique est très agréable.

CHAISEMARTIN STÉPHANE D. 26/08/2020
5 / 5
Très bonne formation ; très bon équilibre théorie/pratique. Seul remarque la partie théorique un peu déséquilibrée par un focus un peu long sur l’architecture du processeur au détriment du reste (il manquait un peu de temps pour la biblio sur les autres techno que stl : TBB, OpenMP... et sur le GPU).

DUMENIL P. 26/08/2020
3 / 5
je n’avais pas le niveau pour suivre. Cela explique pourquoi je ne suis pas complètement satisfait. Trop de temps passé au début sur les intros, et donc perte de 3/4 d’une journée

GUEDOT L. 26/08/2020
4 / 5
Bien, interessant tant la partie théorique que pratique. Petit bemol car pas toujours assez de temps pour aller au bout des exercices pratiques pour ma part
Avis clients 4,5 / 5

Les avis clients 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.

CLASSE A DISTANCE

En inter et en intra-entreprise
Inscrivez-vous ou contactez-nous !

Pour vous inscrire

Cliquez sur la ville, puis sur la date de votre choix.
[+]
CLASSE A DISTANCE
[+]
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.