Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
documentation:tutorials:build:fortran_paralleleopemmp [2017/01/17 08:55] – créée cicalugadocumentation:tutorials:build:fortran_paralleleopemmp [2020/08/25 15:58] – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 ====== Compilation et d'exécution d'un programme (Fortran) ====== ====== Compilation et d'exécution d'un programme (Fortran) ======
  
-{{INLINETOC}} 
 ===== Langage Fortran 90, code parallèle OpenMP ===== ===== Langage Fortran 90, code parallèle OpenMP =====
  
-Le programme [[documentation:examples:sommevecvecparOpenMP.f90|SommeVecVecPAR_OpenMP.f90]] effectue la somme des deux vecteurs A et BLe résultat est mis dans C.  +Soit le programme écrit en OpenMP [[documentation:examples:sommevecvecparOpenMP.f90|ProgPAR_OpenMP.f90]] qui affiche Hello World pour chaque thread et en plus, le thread maître affiche le nombre de threads.
 ==== Compilation du programme : ==== ==== Compilation du programme : ====
  
Ligne 11: Ligne 9:
    
  
-  * définition de l'environnement **pour tcsh** +  * définition de l'environnement 
 <code bash> <code bash>
-source /usr/share/modules/init/csh +module avail 
-module use /applis/PSMN/Modules +module load GCC/7.2.0 
-module load Base/psmn+</code>
  
-module load intel/14.0.+  * vérification de la version du compilateur 
 +<code> 
 +gfortran --version 
 +GNU Fortran (GCC) 7.2.0 
 +Copyright (C) 2017 Free Software Foundation, Inc.
 </code> </code>
  
-  définition de l'environnement **pour bash**  +**Compilation** :
-<code bash> +
-source /usr/share/modules/init/sh +
-module use /applis/PSMN/Modules +
-module load Base/psmn+
  
-module load intel/14.0.+<code> 
 +gfortran -fopenmp -o ProgPAR_OpenMP.f90.exe ProgPAR_OpenMP.f90 
 </code> </code>
  
 +Le fichier binaire (exécutable) ''ProgPAR_OpenMP.f90.exe'' est généré.
 +====Exécution du programme :====
 +
 +=== Exécution sur le serveur de compilation : ===
  
-  * Vérification 
 <code> <code>
-.....+setenv OMP_NUM_THREADS "16" (pour tcsh) 
 +export OMP_NUM_THREADS=16 (pour bash) 
 +./ProgPAR_OpenMP.f90.exe
 </code> </code>
  
-=== Compilation === +Le résultat est affiché a l'écran :
  
 <code> <code>
-... (avec intel)+ 
 +Hello World from thread =            0 
 + Number of threads =           16 
 + 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 
 </code> </code>
  
 +=== Exécution sur le cluster : ===
  
-Le fichier binaire (exécutable) ''SommeVecVecPAR_OpenMP.f90.exe'' est généré. 
  
-====Exécution du programme :====+On utilise un script de soumission [[documentation:tutorials:submit:jobopenmptcsh|script_OpenMP.csh]] (ou [[documentation:tutorials:submit:jobopenmpbash|script_OpenMP.sh]], pour le shell bash) pour soumettre le job sur les clusters de calcul.
  
-=== Exécution sur le serveur de compilation : ===+C'est le script de soumission qui configure l'environnement, puis appelle votre binaire (avec ses options, s'il en a) sur le noeud d'execution. 
 + 
 +''SGE -> script_OpenMP -> binaire'' 
 + 
 +<code> 
 +qsub script_OpenMP 
 +Your job 341093 ("ProgrammeOpenMP") has been submitted 
 + 
 +qstat 
 + 
 +job-ID  prior   name             user         state submit/start at     queue                           slots ja-task-ID  
 +----------------------------------------------------------------------------------------------------------------- 
 + 341093 0.00000 ProgrammeOpenMP ccalugar     qw    02/14/2018 14:55:55                                   16         
 + 
 +qstat 
 + 
 +job-ID  prior   name             user         state submit/start at     queue                           slots ja-task-ID  
 +----------------------------------------------------------------------------------------------------------------- 
 +341093  0.07300 ProgrammeOpenMP ccalugar         02/14/2018 14:57:55  E5-2667v2h6deb128@c8220node213     16 
 +</code> 
 + 
 +  * La sortie de l'écran (sortie standard) est redirigée dans le fichier ''ProgrammeOpenMP.o341093'' 
 +  * La sortie erreur (erreur standard) est redirigée dans le fichier ''ProgrammeOpenMP.e341093'' 
 +   
 +<code> 
 +cat ProgrammeOpenMP.o341093 
 +Hello World from thread =            0 
 + Number of threads =           16 
 + 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 
 +</code>