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)
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 30 Avril au 03 Mai 2024
Du 06 au 09 Août 2024
Du 17 au 20 Déc. 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.