Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteDernière révisionLes deux révisions suivantes | ||
documentation:tutorials:build:fortran_paralleleopemmp [2017/01/22 18:27] – [Langage Fortran 90, code parallèle OpenMP] cicaluga | documentation:tutorials:build:fortran_paralleleopemmp [2020/08/25 15:58] – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Compilation et d' | ====== Compilation et d' | ||
- | {{INLINETOC}} | ||
===== Langage Fortran 90, code parallèle OpenMP ===== | ===== Langage Fortran 90, code parallèle OpenMP ===== | ||
- | Soit le programme écrit en OpenMP [[documentation: | + | Soit le programme écrit en OpenMP [[documentation: |
==== Compilation du programme : ==== | ==== Compilation du programme : ==== | ||
Ligne 10: | Ligne 9: | ||
- | * définition de l' | + | * définition de l' |
<code bash> | <code bash> | ||
- | source / | + | module avail |
- | module | + | module |
- | module load Base/psmn | + | </code> |
- | module load intel/14.0.1 | + | * vérification de la version du compilateur |
+ | < | ||
+ | gfortran --version | ||
+ | GNU Fortran (GCC) 7.2.0 | ||
+ | Copyright (C) 2017 Free Software Foundation, Inc. | ||
</ | </ | ||
- | | + | **Compilation** : |
- | <code bash> | + | |
- | source / | + | |
- | module use / | + | |
- | module load Base/psmn | + | |
- | module load intel/14.0.1 | + | < |
+ | gfortran -fopenmp -o ProgPAR_OpenMP.f90.exe ProgPAR_OpenMP.f90 | ||
</ | </ | ||
+ | Le fichier binaire (exécutable) '' | ||
+ | ====Exécution du programme :==== | ||
+ | |||
+ | === Exécution sur le serveur de compilation : === | ||
- | * Vérification | ||
< | < | ||
- | ..... | + | setenv OMP_NUM_THREADS " |
+ | export OMP_NUM_THREADS=16 (pour bash) | ||
+ | ./ | ||
</ | </ | ||
- | === Compilation | + | Le résultat est affiché a l' |
< | < | ||
- | ... (avec intel) | + | |
+ | Hello World from thread = 0 | ||
+ | | ||
+ | Hello World from thread = 3 | ||
+ | Hello World from thread = 14 | ||
+ | Hello World from thread = 13 | ||
+ | Hello World from thread = 12 | ||
+ | Hello World from thread = 15 | ||
+ | Hello World from thread = 4 | ||
+ | Hello World from thread = 1 | ||
+ | Hello World from thread = 6 | ||
+ | Hello World from thread = 11 | ||
+ | Hello World from thread = 2 | ||
+ | Hello World from thread = 10 | ||
+ | Hello World from thread = 7 | ||
+ | Hello World from thread = 9 | ||
+ | Hello World from thread = 8 | ||
+ | Hello World from thread = 5 | ||
</ | </ | ||
+ | === Exécution sur le cluster : === | ||
- | Le fichier binaire (exécutable) '' | ||
- | ====Exécution du programme | + | On utilise un script de soumission [[documentation:tutorials: |
- | === Exécution sur le serveur | + | C' |
+ | |||
+ | '' | ||
+ | |||
+ | < | ||
+ | qsub script_OpenMP | ||
+ | Your job 341093 (" | ||
+ | |||
+ | qstat | ||
+ | |||
+ | job-ID | ||
+ | ----------------------------------------------------------------------------------------------------------------- | ||
+ | | ||
+ | |||
+ | qstat | ||
+ | |||
+ | job-ID | ||
+ | ----------------------------------------------------------------------------------------------------------------- | ||
+ | 341093 | ||
+ | </ | ||
+ | |||
+ | * La sortie de l' | ||
+ | * La sortie erreur (erreur standard) est redirigée dans le fichier '' | ||
+ | |||
+ | < | ||
+ | cat ProgrammeOpenMP.o341093 | ||
+ | Hello World from thread = 0 | ||
+ | | ||
+ | Hello World from thread = 3 | ||
+ | Hello World from thread = 14 | ||
+ | Hello World from thread = 13 | ||
+ | Hello World from thread = 12 | ||
+ | Hello World from thread = 15 | ||
+ | Hello World from thread = 4 | ||
+ | Hello World from thread = 1 | ||
+ | Hello World from thread = 6 | ||
+ | Hello World from thread = 11 | ||
+ | Hello World from thread = 2 | ||
+ | Hello World from thread = 10 | ||
+ | Hello World from thread = 7 | ||
+ | Hello World from thread | ||
+ | Hello World from thread | ||
+ | Hello World from thread | ||
+ | </ |