Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
ACCUEIL SYSTEMES FORUMS SYSTEMES COURS SYSTEMES LIVRES SYSTEMES BLOG SYSTEME SECURITE Hardware PC Mac Réseau

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 aujourd’hui 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 d’OpenMP s’adresse à deux types d’auditeurs ; tout d’abord à 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 qu’un simple catalogue descriptif, en laissant la primauté à une approche conceptuelle, j’ai essayé d’offrir un réel guide succeptible de proposer un choix critique parmi les diverses constructions qu’offrent OpenMP. Précisons également que ce livre traite peu de sujets tels que les techniques et outils de déverminage ou d’optimisation; 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 qu’OpenMP ait été, avant tout, un effort de synthèse des constructions propres aux différents ensembles de directives de microtasking existant depuis une dizaine d’années, la "norme" OpenMP est abordée dans cet ouvrage "telle qu’en 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. D’autre 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 d’avoir été d’emblé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

  1. INTRODUCTION
    1. Bibliographie
    2. OpenMP : un nouveau standard!
    3. Situer OpenMP parmi d’autre modèle de parallélisation
    4. Structures d’OpenMP
    5. Terminologie
  2. PRINCIPES GENERAUX
    1. Compilation, chargement et exécution
    2. Modèle d’exécution
    3. Clauses de la directive PARALLEL
    4. Les constructions OpenMP
    5. Règles syntaxiques des directives
  3. STRUCTURATION DES DONNEES
    1. Gestion mémoire et processus légers
    2. Attribut des données
    3. La clause DEFAULT( )
    4. La directive THREADPRIVATE
    5. Les tableaux dynamiques
    6. Les modules Fortran 95
    7. Statut implicite des variables
    8. Exercice récapitulatif
  4. PARTAGE DU TRAVAIL
    1. La directive SECTIONS
    2. La directive DO
    3. La directive WORKSHARE
    4. La directive PARALLEL SECTIONS
    5. La directive PARALLEL DO
    6. La directive PARALLEL WORKSHARE
    7. La directive MASTER
  5. SYNCHRONISATIONS
    1. Utilité
    2. La directive SINGLE
    3. Les barrières
    4. Les zones critiques : directive CRITICAL
    5. La mise à jour atomique : !$OMP ATOMIC
    6. La clause REDUCTION
    7. Clause ORDERED de DO et directive ORDERED
    8. La directive FLUSH
    9. Exercice récapitulatif
  6. CONCEPTS ET EXEMPLES
    1. OpenMP et Fortran 95
    2. Règles de détermination du statut des variables
    3. Ordonnancement d’une boucle partagée
    4. Régions parallèles dynamiques ou non
    5. Niveaux de répartition du travail
    6. L’orphaning
    7. Le nesting
    8. Binding
    9. Loop-level parallelism
    10. Décomposition de domaines
    11. Réflexions sur les performances
  7. BIBLIOTHEQUES ET VARIABLES
    1. Les variables d’environnement
    2. La Run-time Library d’OpenMP
  8. CONCLUSIONS
    1. Méthodologie d’ "OpenMPisation"
    2. Les atouts d’OpenMP
    3. Limitations du parallélisme via OpenMP
    4. Outils et bibliothèques tierces
    5. Evolutions d’OpenMP
  9. ANNEXES
    1. synoptique OpenMP 2.0
    2. Directives C/C++
    3. Verrous
    4. Comportement dépendant des implémentations
    5. Exemple de travail NQS sur NEC SX5
    6. Passer du macrotasking à OpenMP
    7. Lexique général
    8. Lexique OpenMP
    9. Exercices récapitulatifs, corrections

III. Téléchargement

Téléchargez le cours au format PDF (1.6 Mo, 157 pages) en mode FTP.

Si le lien précédent ne fonctionne pas, utilisez le mode HTTP de secours.

Pour lire les documents au format PDF, vous pouvez utilisez le logiciel  Adobe Acrobat Reader.


IV. Les auteurs

Les auteurs sont enseignant-chercheurs au LIMSI (Laboratoire d'Informatique pour la Mécanique et les Sciences de l'Ingénieur).



Copyright © Etienne Gondet, Pierre-Francois Lavallée. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.

Responsable bénévole de la rubrique Systèmes : Michaël Todorovic - Contacter par EMail :
Vos questions techniques : forum d'entraide Systèmes - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.