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édente | ||
| documentation:tutorials:build:fortran_paralleleopemmp [2018/02/15 08:27] – [Exécution du programme :] cicaluga | documentation:tutorials:build:fortran_paralleleopemmp [2023/01/13 09:35] (Version actuelle) – supprimée ccalugar | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== Compilation et d' | ||
| - | {{INLINETOC}} | ||
| - | ===== Langage Fortran 90, code parallèle OpenMP ===== | ||
| - | |||
| - | Soit le programme écrit en OpenMP [[documentation: | ||
| - | ==== Compilation du programme : ==== | ||
| - | |||
| - | === Définition de l' | ||
| - | |||
| - | |||
| - | * définition de l' | ||
| - | <code bash> | ||
| - | module avail | ||
| - | module load GCC/7.2.0 | ||
| - | </ | ||
| - | |||
| - | * vérification de la version du compilateur | ||
| - | < | ||
| - | gfortran --version | ||
| - | GNU Fortran (GCC) 7.2.0 | ||
| - | Copyright (C) 2017 Free Software Foundation, Inc. | ||
| - | </ | ||
| - | |||
| - | **Compilation** : | ||
| - | |||
| - | < | ||
| - | 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 : === | ||
| - | |||
| - | < | ||
| - | setenv OMP_NUM_THREADS " | ||
| - | export OMP_NUM_THREADS=16 (pour bash) | ||
| - | ./ | ||
| - | </ | ||
| - | |||
| - | Le résultat est affiché a l' | ||
| - | |||
| - | < | ||
| - | |||
| - | 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 : === | ||
| - | |||
| - | |||
| - | On utilise un script de soumission [[documentation: | ||
| - | |||
| - | C'est le script de soumission qui configure l' | ||
| - | |||
| - | '' | ||
| - | |||
| - | < | ||
| - | 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 = 9 | ||
| - | Hello World from thread = 8 | ||
| - | Hello World from thread = 5 | ||
| - | </ | ||