Votre partenaire formation

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