Ceci est une ancienne révision du document !


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

Langage C, code parallèle hybrid OpenMP&MPI

Soit le programme écrit en C et parallèle hybrid OpenMP&MPI ProgPAR_OpenMP_MPI.c qui affiche Hello World. On a deux proc MPI + 8 treads OpenMP par proc MPI.

Compilation du programme :

Définition de l'environnement :

  • définition de l'environnement
module avail
module load GCC/7.2.0/OpenMPI/3.0.0

Compilation :

mpicc -fopenmp ProgPAR_OpenMP_MPI.c -o ProgPAR_OpenMP_MPI.c.exe
 

Le fichier binaire (exécutable) ProgPAR_OpenMP_MPI.c.exe est généré.

Exécution du programme :

Exécution sur le serveur de compilation :

export OMP_NUM_THREADS=8 (pour bash)
setenv OMP_NUM_THREADS "8" (pour tcsh)
mpirun -np 2 -bind-to socket -npersocket 1 ./ProgPAR_OpenMP_MPI.c.exe

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

Bonjour, je suis le thread 1 parmi 8 threads du process  0 parmi 2 processes sur le noeud  e5-2670comp1.psmn.ens-lyon.fr
Bonjour, je suis le thread 3 parmi 8 threads du process  0 parmi 2 processes sur le noeud  e5-2670comp1.psmn.ens-lyon.fr
Bonjour, je suis le thread 2 parmi 8 threads du process  0 parmi 2 processes sur le noeud  e5-2670comp1.psmn.ens-lyon.fr
Bonjour, je suis le thread 0 parmi 8 threads du process  0 parmi 2 processes sur le noeud  e5-2670comp1.psmn.ens-lyon.fr
Bonjour, je suis le thread 6 parmi 8 threads du process  0 parmi 2 processes sur le noeud  e5-2670comp1.psmn.ens-lyon.fr
Bonjour, je suis le thread 7 parmi 8 threads du process  0 parmi 2 processes sur le noeud  e5-2670comp1.psmn.ens-lyon.fr
Bonjour, je suis le thread 5 parmi 8 threads du process  0 parmi 2 processes sur le noeud  e5-2670comp1.psmn.ens-lyon.fr
Bonjour, je suis le thread 4 parmi 8 threads du process  0 parmi 2 processes sur le noeud  e5-2670comp1.psmn.ens-lyon.fr
Bonjour, je suis le thread 7 parmi 8 threads du process  1 parmi 2 processes sur le noeud  e5-2670comp1.psmn.ens-lyon.fr
Bonjour, je suis le thread 1 parmi 8 threads du process  1 parmi 2 processes sur le noeud  e5-2670comp1.psmn.ens-lyon.fr
Bonjour, je suis le thread 0 parmi 8 threads du process  1 parmi 2 processes sur le noeud  e5-2670comp1.psmn.ens-lyon.fr
Bonjour, je suis le thread 2 parmi 8 threads du process  1 parmi 2 processes sur le noeud  e5-2670comp1.psmn.ens-lyon.fr
Bonjour, je suis le thread 5 parmi 8 threads du process  1 parmi 2 processes sur le noeud  e5-2670comp1.psmn.ens-lyon.fr
Bonjour, je suis le thread 6 parmi 8 threads du process  1 parmi 2 processes sur le noeud  e5-2670comp1.psmn.ens-lyon.fr
Bonjour, je suis le thread 3 parmi 8 threads du process  1 parmi 2 processes sur le noeud  e5-2670comp1.psmn.ens-lyon.fr
Bonjour, je suis le thread 4 parmi 8 threads du process  1 parmi 2 processes sur le noeud  e5-2670comp1.psmn.ens-lyon.fr

Exécution sur le cluster :

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

qsub script_OpenMP_MPI
Your job 341093 ("ProgrammeOpenMP_MPI") has been submitted

qstat

job-ID  prior   name             user         state submit/start at     queue                           slots ja-task-ID 
-----------------------------------------------------------------------------------------------------------------
 341093 0.00000 ProgrammeOpenMP_MPI 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_MPI ccalugar     r     02/14/2018 14:57:55  E5-2667v2h6deb128@c8220node213     16
  • La sortie de l'écran (sortie standard) est redirigée dans le fichier ProgrammeOpenMP&MPI.o341093
  • La sortie erreur (erreur standard) est redirigée dans le fichier ProgrammeOpenMP&MPI.e341093
cat ProgrammeOpenMP&MPI.o341093
....
documentation/tutorials/build/fortran_parallelehybride.1524577026.txt.gz · Dernière modification : 2020/08/25 15:58 (modification externe)