Accueil > Développement informatique et DevOps > Programmer vos Applications en Multicore
Formation #DEV05

Formation Programmer vos Applications en Multicore

Durée : 4 jours

Code : DEV05


Prochaines dates programmées :

Du 28 au 31 Mai 2024

Du 10 au 13 Sept. 2024

Fin d'Inscription :
Le Bulletin d'Inscription doit être rempli, cacheté, signé et envoyé par email : Au minimum 15 JOURS OUVRÉS avant la date de formation.
Si vous avez un besoin URGENT et que vous souhaitez une date de formation plus proche que les sessions programmées (minimum 15 à 20 jours ouvrés à date de votre demande)

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 Multicore
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
2/ Modéliser les applications Multicore
  • Importance de la modélisation
  • Parallélisation des traitements
  • Loi de Amdahl (ex : calcul)
  • Les mécanismes asynchrones
  • Développement d’une nouvelle application : précautions et modélisation
  • Ne pas utiliser les « singletons »
  • Modification d’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 les systèmes et les langages (exemple : Java, .NET et C++)
  • Apport des threads dans une application industrielle
  • 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 »
  • Usages du développement en approche multithread
  • Les APIs :
  • De threads avec Windows
  • Java
  • DOT Net
  • De POSIX
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 et les nouveaux outils comme Visual Studio 2008
  • Avantage et inconvénients des techniques multiprocess
  • Les « Domain » DOT Net
5/ Programmation parallèle
  • Apports et objectifs de cette programmation
  • « Parallel FX » la bibliothèque DOT Net pour paralléliser
  • Architecture PFX et philosophie
  • Composants TPL et PLINQ
  • La librairie « OpenMP » C++
  • Directives « OpenMP » vacants
  • Utiliser des GPUs
  • Cartes graphiques pour le calcul
  • Kits de NVidia (CUDA) et ATI
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 28 au 31 Mai 2024
  • Du 10 au 13 Sept. 2024
  • Fin d'Inscription :
    Le Bulletin d'Inscription doit être rempli, cacheté, signé et envoyé par email : Au minimum 15 JOURS OUVRÉS avant la date de formation.