Programmer vos applications en Multicore
Réf: MUC
Durée: 3 jours
Objectifs de la formation
Ce cours vous permettra de comprendre 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 verrez également les contraintes en matière de synchronisation d »accès aux données et les précautions à prendre.
Contenu de cette formation programmation multicore:
-Introduction
-Modélisation des applications
-Threads
-Processus
-La programmation parallèle
-Synthèse et conclusion
-Développeur C / C++
-Développeur C / C++
programmation parallèle
Programme de Formation
Introduction
-Les enjeux de la programmation Multicore dans les années à venir.
-Tableau général des technologies utilisables : processus, threads et parallélisme.
-Description et rappel du fonctionnement d »un processeur.
-Les architectures en » Hyperthreading « .
-Les architectures des processeurs INTEL™ et AMD™.
-Les architectures NVidia™ et API™.
-Les aspects synchronisation à prévoir : cas généraux
Modélisation des applications
-Importance des aspects modélisation.
-Parallélisation des traitements (ex : calcul).
-Utilisation des mécanismes asynchrones : processus, threads…
-Développer une nouvelle application : précautions et modélisation.
-Eviter les » singletons « .
-Modifier une application existante en Multicore : problèmes rencontrés.
-Choix d »architecture : un compromis synchronisation et performance.
-Choix multiprocessusus/multithreads.
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.
-Ordonnancement des threads dans les systèmes : technique du » round robin « .
-Gestion des stacks et » call stack » dans les threads.
-Les débogueurs multithreads : ex Visual Studio et NetBeans™.
-Gestion des objets de synchronisation : sections critiques, Mutex et Sémaphores.
-Développer » Thread safe « .
-Règles pour développer en approche multithread.
-Les API de threads avec Windows, Java et DOT Net.
-Les API de POSIX.
Travaux pratiques
Threads et synchronisation en DOT Net, Java et C++.
Processus
-Espaces d »adressage des processus, organisation.
-Critères de choix d »une approche multiprocessus.
-Ensemble des techniques de communication interprocessus (IPC).
-Techniques de debugging multiprocessus, nouveaux outils (ex : Visual Studio 2005).
-Avantage et inconvénients des techniques multiprocessus.
-Particularité : les » Domain » DOT Net.
Travaux pratiques
Gestion de traitements asynchrones avec l »API Windows.
La programmation parallèle
-L »apport et les objectifs de la programmation parallèle.
– » Parallel FX » la bibliothèque DOT Net pour paralléliser.
-Architecture PFX et philosophie.
-Composants TPL et PLINQ.
-La librairie » OpenMp » C++.
-Directives » OpenMP » disponibles.
-Utiliser les GPU des cartes graphiques pour le calcul
-Les kits de NVidia (CUDA) et ATI.
-Exemple d »applications utilisant les bibliothèques.
-Exemple de code et commentaires.
Travaux pratiques
Paralléliser des algorithmes avec PFX C#. Paralléliser des algorithmes avec » OpenMP » en C++.
Synthèse et conclusion
-Conclusion des techniques étudiées.
-L »avenir de C++ avec le multicore
-Synthèse des approches de Design, threads, multiprocessusus et programmation parallèle.
Profil Stagiaires & Pré-requis
Bonnes connaissances d »un des 3 langages objet utilisés dans le cours (Java, C#, C++). Connaissances de base des concepts liés aux applications multicore.
Prix : 1700 € HT
Paris, Lyon, Aix, Nantes, Rennes, Toulouse, Bordeaux, Bruxelles, Strasbourg, Lille, Genève, Sophia Antipolis, Luxembourg
Dates de Formation
Nous consulter