Ceci est une ancienne révision du document !


Compilation et d'exécution d'un programme (Fortran)

Langage Fortran 90, code parallèle OpenMP

Soit le programme écrit en OpenMP 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 :

Définition de l'environnement :

  • définition de l'environnement pour tcsh
source /usr/share/modules/init/csh
module use /applis/PSMN/Modules
module load Base/psmn
 
module load intel/14.0.1 
  • définition de l'environnement pour bash
source /usr/share/modules/init/sh
module use /applis/PSMN/Modules
module load Base/psmn
 
module load intel/14.0.1 
  • vérification de la version du compilateur
ifort --version
ifort (IFORT) 14.0.1 20131008

Compilation :

ifort -openmp -o ProgPAR_OpenMP.f90.exe ProgPAR_OpenMP.f90 (avec intel)

Le fichier binaire (exécutable) ProgPAR_OpenMP.f90.exe est généré.

Exécution du programme :

Exécution sur le serveur de compilation :

setenv OMP_NUM_THREADS "2" (pour tcsh)
export OMP_NUM_THREADS=2 (pour bash)
./ProgPAR_OpenMP.f90.exe

Le résultat est affiché a l'écran :

Hello World from thread =            0
 Number of threads =            2
 Hello World from thread =            1

Exécution sur le cluster :

On utilise un script de soumission batch.csh (ou batch.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 → batch.csh → binaire

qsub batch.csh
Your job 769504 ("ProgOpenMP") has been submitted
qstat

job-ID  prior   name             user         state submit/start at     queue                  slots ja-task-ID 
-----------------------------------------------------------------------------------------------------------------
 769504 0.00000 ProgOpenMP   cicaluga     qw    06/12/2012 07:21:46
  • La sortie de l'écran (sortie standard) est redirigée dans le fichier ProgOpenMP.o769504
  • La sortie erreur (erreur standard) est redirigée dans le fichier ProgOpenMP.e769504
cat ProgOpenMP.o769504
Hello World from thread =            0
 Number of threads =            2
 Hello World from thread =            1
documentation/tutorials/build/fortran_paralleleopemmp.1485167134.txt.gz · Dernière modification : 2020/08/25 15:58 (modification externe)