Différences

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

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
documentation:tutorials:build:fortran_paralleleopemmp [2017/01/22 18:55] – [Langage Fortran 90, code parallèle OpenMP] 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 =====
  
-Soit le programme écrit en OpenMP [[documentation:exemples:sommevecvecparOpenMP.f90|ProgPAR_OpenMP.f90]] qui affiche Hello World pour chaque thread et en plus, le thread maître affiche le nombre de threads.+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 10: 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 +
- +
-module load intel/14.0.1 +
 </code> </code>
- 
-  * définition de l'environnement **pour bash**  
-<code bash> 
-source /usr/share/modules/init/sh 
-module use /applis/PSMN/Modules 
-module load Base/psmn 
- 
-module load intel/14.0.1  
-</code> 
- 
  
   * vérification de la version du compilateur   * vérification de la version du compilateur
 <code> <code>
-ifort --version +gfortran --version 
-ifort (IFORT14.0.1 20131008+GNU Fortran (GCC7.2.0 
 +Copyright (C) 2017 Free Software Foundation, Inc.
 </code> </code>
  
Ligne 38: Ligne 25:
  
 <code> <code>
-ifort -openmp -o ProgPAR_OpenMP.f90.exe ProgPAR_OpenMP.f90 (avec intel)+gfortran -fopenmp -o ProgPAR_OpenMP.f90.exe ProgPAR_OpenMP.f90 
 </code> </code>
  
Ligne 47: Ligne 34:
  
 <code> <code>
-setenv OMP_NUM_THREADS "2" (pour tcsh) +setenv OMP_NUM_THREADS "16" (pour tcsh) 
-export OMP_NUM_THREADS=(pour bash)+export OMP_NUM_THREADS=16 (pour bash)
 ./ProgPAR_OpenMP.f90.exe ./ProgPAR_OpenMP.f90.exe
 </code> </code>
Ligne 57: Ligne 44:
  
 Hello World from thread =            0 Hello World from thread =            0
- Number of threads =            2+ Number of threads =           16 
 + Hello World from thread =            
 + 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 =            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>
Ligne 64: Ligne 65:
 === Exécution sur le cluster : === === Exécution sur le cluster : ===
  
 +
 +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.
 +
 +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>