Accueil > Développement Logiciel, Devops > C/C++ : programmer ses applications en Multicore
Formation #DEV36

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

Formation avec Restauration incluse
(Déjeuner, Petit Déjeuner et Pauses Cafés)

Durée : 4 jours

Code : DEV36


Sessions programmées :

Du 23 au 26 Fév. 2021

Du 20 au 23 Avril 2021

Du 22 au 25 Juin 2021

Du 21 au 24 Sept. 2021

Du 23 au 26 Nov. 2021

Fin d'Inscription :
Le Bulletin d'Inscription doit être rempli, cacheté, signé et envoyé par email :
  • Pour les entreprises AU MAROC :
    Au minimum 10 JOURS OUVRÉS avant la date de formation
  • Pour les entreprises HORS MAROC :
    Au minimum 15 JOURS OUVRÉS avant la date de formation

Formation dans votre entreprise.

Durée : 4 jours

Code : DEV36


Vous souhaitez réaliser cette formation en vos locaux avec le même programme ?

Vous souhaitez personnaliser le programme de cette formation pour qu'elle réponde aux spécificités de votre entreprise ?

Objectifs

  • Découvrir les architectures Multicore et leur programmation
  • Connaitre les techniques de mise en œuvre d'une approche multithread ou multiprocessus
  • Etre en mesure de programmer ses applications en Multicor
Programme
1/ Introduction
  • Appréhender les enjeux de la programmation en Multicore
  • Les technologies utilisables : processus, threads et parallélisme
  • Fonctionnement d’un processeur
  • Les architectures en « Hyperthreading »
  • Les architectures des processeurs INTEL et AMD
  • Les architectures NVidia et API
  • Les aspects synchronisation
  • Architecture en mémoire partagée vs mémoire distribuée
2/ Modéliser les applications Multicore
  • Appréhender l'importance de la modélisation
  • Parallélisation des traitements
  • Les mécanismes asynchrones
  • Précautions et modélisation d'une nouvelle application
  • Ne pas utiliser les « singletons »
  • Mettre à jour une application existante en Multicore
  • Choisir une architecture (un compromis synchronisation et performance)
  • Choisir entre multiprocessus et multithreads
3/ Threads
  • Organisation d'un système à base de threads
  • Les threads dans une application industrielle : apport
  • Ordonnancer les threads dans les systèmes (principe du « round robin »)
  • Gérer les stacks et « call stack »
  • Les déboggeurs multi-threads
  • Gérer les objets de synchronisation (sections critiques, Mutex ou Sémaphores)
  • Développement de « Thread safe »
  • Les APIs de threads :
  • TBB
  • Clik++
  • C++11
  • boost threads
  • pthreads
4/ Les processus
  • Espaces d'adressage des processus, organisation
  • Conditions de choix d’une approche multi-processus
  • Les différents concepts de communication inter processus (IPC)
  • Techniques de Debugging multiprocess
  • Présentation des avantages et des inconvénients des techniques multiprocess
5/ Programmation parallèle
  • Présentation des apports et des objectifs de cette programmation
  • Directives « OpenMP » C++
  • La librairie "OpenMPI"
  • Utilisation des GPUs et des cartes graphiques pour le calcul
  • Kits de NVidia (CUDA) et ATI
  • La librairie "OpenAcc"
  • La librairie "OpenCL"
6/ Synthèse et conclusion
  • Conclusion des techniques étudiées
  • C++ avec le Multicore : Quel avenir
  • Synthèse des différentes approches (Design, threads, multiprocessus et programmation parallèle)
Approche Pédagogique

Approche Pédagogique

  • Pédagogie très opérationnelle fondée sur l'alternance entre théorie et pratique
  • Cas pratiques
  • Remise d’outils
  • Echanges d’expériences
Public cible

Public cible

  • Développeurs
  • Architectes logiciels
  • Chefs de projet
Dates

Dates

  • Du 23 au 26 Fév. 2021
  • Du 20 au 23 Avril 2021
  • Du 22 au 25 Juin 2021
  • Du 21 au 24 Sept. 2021
  • Du 23 au 26 Nov. 2021
  • Fin d'Inscription :
    Le Bulletin d'Inscription doit être rempli, cacheté, signé et envoyé par email :
    • Pour les entreprises AU MAROC : Au minimum 10 JOURS OUVRÉS avant la date de formation
    • Pour les entreprises HORS MAROC : Au minimum 15 JOURS OUVRÉS avant la date de formation