Contenu
Le contenu intégral du cours est disponible aux formats pdf, postcrip ou html.
Les exemples du cours sont disponibles ci-après :
- Création d’une région parallèle : exo1_1.f90 exo1_2.f90
- Déclaration du statut SHARED / PRIVATE / FIRSTPRIVATE d’une variable : exo2.f90
- Statut d’une variable statique : exo3.f90
- Statut d’une variable transmise par argument : exo4.f90
- Statut d’une variable de type tableau dynamique : exo5.f90
- Privatisation d’un common via la directive THREADPRIVATE : exo6.f90
- Partage d’une boucle DO : calcul de PI par intégration numérique : exo7.f90
- Sections parallèles : exo8.f90
- Directive BARRIER : exo9_1.f90
- Directive MASTER : exo9_2.f90
- Mise à jour atomique, directique ATOMIC : calcul de la somme partielle de Ln(2) : exo10.f90
- Parallélisation avec décomposition d’un domaine : exo11.f90
- Exemple de programme parallèle « Bonjour » MPI + OpenMP : exo12.f90.
Script PBS associé : exo12.job.
Compilation de exo12.f90 : mpif90 -mp -o exo12 exo12.f90
La soumission d’un job OpenMP sur le cluster sydney du CDC passe par la soumission d’un job pbs (cas de l’exemple 7).
Travaux pratiques :
- TP1 : Identifier le statut des variables dans le programme.
stat_var_tp1.f90 Correction - TP2 : Parallélisation de la multiplication de deux matrices.
Code séquentiel Code avec directives OpenMP - TP3 : Meme exercice que précédemment sauf que les coefficients des matrices sont générés aléatoirement.
Code séquentiel Code avec directives OpenMP - TP4 : Identique au TP2 mais la multiplication des matrices est dans une procédure (concept d’orphaning).
Code séquentiel Code avec directives OpenMP - TP5 : Parallélisation du calcul d’une moyenne et d’une variance sur une série de nombres.
Code séquentiel Code avec directives OpenMP
Netographie :
- Site officiel d’OpenMP : www.openmp.org
- Cours de l’IDRIS