Cours OpenMP
Date de publication : 07/05/2005 ,
Date de mise a jour : 07/05/2005
Par
Etienne Gondet Pierre-François Lavallée (Cours OpenMP)
Ce cours présente la parallélisation multitâches pour machines à mémoire partagée avec OpenMP.
I. Avant Propos
I-A. Public visé
I-B. A l'attention des programmeurs déjà expérimentés avec
les interfaces propriétaires plus anciennes qu'OpenMP.
II. Sommaire
III. Téléchargement
IV. Les auteurs
I. Avant Propos
OpenMP amène aujourdhui une interface standard de haut
niveau pour une programmation parallèle de type SPMD (Single Program Multiple Data)
sur machine à mémoire partagée ou au moins virtuellement
partagée (telle que la SGI O200). Basée sur les techniques du multithreading, on
peut considérer OpenMP comme l'un des grands standards
au service du calcul scientifique.
I-A. Public visé
Ce cours qui aborde de manière progressive et systématique
les différentes composantes dOpenMP sadresse à deux
types dauditeurs ; tout dabord à de réels débutants en tant
que manuel de référence le plus complet possible, ensuite à
un public de faux débutants se heurtant à des difficultés
conceptuelles au-delà des aspects purement syntaxiques.
Ainsi, plus quun simple catalogue descriptif, en laissant la
primauté à une approche conceptuelle, jai essayé doffrir un
réel guide succeptible de proposer un choix critique parmi
les diverses constructions quoffrent OpenMP. Précisons
également que ce livre traite peu de sujets tels que les techniques
et outils de déverminage ou doptimisation; Thèmes
qui nécessitent un cours à part entière.
I-B. A l'attention des programmeurs déjà expérimentés avec
les interfaces propriétaires plus anciennes qu'OpenMP.
Bien quOpenMP ait été, avant tout, un effort de synthèse
des constructions propres aux différents ensembles de
directives de microtasking existant depuis une dizaine
dannées, la "norme" OpenMP est abordée dans cet ouvrage
"telle quen elle même" afin de ne pas dérouter par des références
historiques systématiques à des interfaces souvent
propriétaires et donc spécifiques à quelques constructeur.
Dautre part, on ne soulignera jamais assez qu OpenMP va
sensiblement au delà de ses prédecesseurs en intégrant la
possibilité de mise en oeuvre des techniques de décomposition
de domaines. Ainsi OpenMP a cette double richesse
davoir été demblée pensé et conçu pour permettre la parallélisation
à gros grain (Coarse Grain) basée sur les techniques
de décomposition de domaine) ou à grain fin (fine
grain) basée sur les techniques dites de microtasking.
II. Sommaire
- INTRODUCTION
- Bibliographie
- OpenMP : un nouveau standard!
- Situer OpenMP parmi dautre modèle de parallélisation
- Structures dOpenMP
- Terminologie
- PRINCIPES GENERAUX
- Compilation, chargement et exécution
- Modèle dexécution
- Clauses de la directive PARALLEL
- Les constructions OpenMP
- Règles syntaxiques des directives
- STRUCTURATION DES DONNEES
- Gestion mémoire et processus légers
- Attribut des données
- La clause DEFAULT( )
- La directive THREADPRIVATE
- Les tableaux dynamiques
- Les modules Fortran 95
- Statut implicite des variables
- Exercice récapitulatif
- PARTAGE DU TRAVAIL
- La directive SECTIONS
- La directive DO
- La directive WORKSHARE
- La directive PARALLEL SECTIONS
- La directive PARALLEL DO
- La directive PARALLEL WORKSHARE
- La directive MASTER
- SYNCHRONISATIONS
- Utilité
- La directive SINGLE
- Les barrières
- Les zones critiques : directive CRITICAL
- La mise à jour atomique : !$OMP ATOMIC
- La clause REDUCTION
- Clause ORDERED de DO et directive ORDERED
- La directive FLUSH
- Exercice récapitulatif
- CONCEPTS ET EXEMPLES
- OpenMP et Fortran 95
- Règles de détermination du statut des variables
- Ordonnancement dune boucle partagée
- Régions parallèles dynamiques ou non
- Niveaux de répartition du travail
- Lorphaning
- Le nesting
- Binding
- Loop-level parallelism
- Décomposition de domaines
- Réflexions sur les performances
- BIBLIOTHEQUES ET VARIABLES
- Les variables denvironnement
- La Run-time Library dOpenMP
- CONCLUSIONS
- Méthodologie d "OpenMPisation"
- Les atouts dOpenMP
- Limitations du parallélisme via OpenMP
- Outils et bibliothèques tierces
- Evolutions dOpenMP
- ANNEXES
- synoptique OpenMP 2.0
- Directives C/C++
- Verrous
- Comportement dépendant des implémentations
- Exemple de travail NQS sur NEC SX5
- Passer du macrotasking à OpenMP
- Lexique général
- Lexique OpenMP
- Exercices récapitulatifs, corrections
III. Téléchargement
IV. Les auteurs
Les auteurs sont enseignant-chercheurs au LIMSI (Laboratoire d'Informatique pour la Mécanique et les Sciences de l'Ingénieur).
|