Guide pour le parallélisme

 

Voici donc un guide complet qui vous aidera dans votre quête d'optimisation pour les applications parallélisées.

Du simple débutant, à l'utilisateur avancé, tout le monde pourra y trouver des informations intéressantes.

Télécharger ici le guide pour les applications multi-coeurs (PDF 2.86MB)

Au menu vous avez droit à :

Threading d'Application

Dans ce chapitre il sera question du parallélisme en général, avec quelques explications sur les API.

1-1 - Predicting and Measuring Parallel Performance
1-2 - Loop Modifications to Enhance Data-Parallel Performance
1-3 - Granularity and Parallel Performance
1-4 - Load Balance and Parallel Performance
1-5 - Expose Parallelism by Avoiding or Removing Artificial Dependencies
1-6 - Using Tasks Instead of Threads
1-7 - Exploiting Data Parallelism in Ordered Data Streams
1-8 - Using AVX Without Writing AVX Code - New

Synchronisation

Ici, vous discuterez des techniques pour mitiger l'impact négatif de la synchronisation sur la performance.

2-1 - Managing Lock Contention- Large and Small Critical Sections
2-2 - Use Synchronization Routines Provided by the Threading API Rather than Hand-Coded Synchronization
2-3 - Choosing Appropriate Synchronization Primitives to Minimize Overhead
2-4 - Use Non-blocking Locks When Possible

Gestion de la mémoire

Les Threads ajoutent une autre dimension dans la gestion de la mémoire qui ne doit pas être oubliée.

3-1 - Avoiding Heap Contention Among Threads
3-2 - Use Thread-local Storage to Reduce Synchronization
3-3 - Detecting Memory Bandwidth Saturation in Threaded Applications
3-4 - Avoiding and Identifying False Sharing Among Threads
3-5 - Optimizing Applications for NUMA - New

Outils de programmation

Ce chapitre décrit comment utiliser les outils Intel pour développer, débugger, et optimiser des applications multi-threadées.

4-1 - Automatic Parallelization with Intel® Compilers
4-2 - Parallelism in the Intel® Math Kernel Library
4-3 - Threading and Intel® Integrated Performance Primitives
4-4 - Using Intel® Inspector XE 2011 to Find Data Races in Multithreaded Code - Revised
4-5 - Curing Thread Imbalance Using Intel® Parallel Amplifier
4-6 - Getting Code Ready for Parallel Execution with Intel® Parallel Composer - Revised
4-7 - Optimize Data Structures and Memory Access Patterns to Improve Data Locality - New

 

 

1.1 Objectif
L'objectif de ce guide est de fournir des marches à suivre pour développer des applications multi-threadées pour les processeurs symétriques Intel, et ou ceux possédant la technologie d'Hyper-Threading. Un développeur peut utiliser tout ou part de ce document pour améliorer ses compétences en parallélisation pour les technologies actuelles, mais aussi en prévision de celles de demain.

1.2 Pré-requis
Il est conseillé aux lecteurs de celui-ci devraient d'avoir une expérience en développement C,C++, et ou Fortran, même si la plupart des concepts utilisés dans le guide sont facilement compréhensibles par des personnes habitués au développement Java,C# ou même Perl.La connaissance d'OpenMP*, des threads POSIX peut être utile.

1.3 Application
Lobjectif principal de ce guide est de fournir des clefs pour le design et l'optimisation des applications multi-threadées pour les plateformes Intel® .

1.4 Un mot sur les auteurs
Voici la liste des ingénieurs et experts techniques qui ont contribué à ce guide. : Henry Gabb, Martyn Corden, Todd Rosenquist, Paul Fischer, Julia Fedorova, Clay Breshears, Thomas Zipplies, Vladimir Tsymbal, Levent Akyil, Anton Pegushin, Alexey Kukanov, Paul Petersen, Mike Voss, Aaron Tersteeg et Jay Hoeflinger

 


 

Einzelheiten zur Compiler-Optimierung finden Sie in unserem Optimierungshinweis.
Kategorien: