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

Langage C, code parallèle hybrid MPI+OpenMP

Soit le programme écrit en C avec une parallélisation hybride MPI+OpenMP ProgPAR_OpenMP_MPI.c. On va l'exécuter avec une décomposition en 2 processus MPI x 8 threads OpenMP.

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 scriptOpenMP_MPI 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 → scriptOpenMP_MPI → binaire

qsub scriptOpenMP_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
  • La sortie erreur SGE est redirigée dans le fichier ProgrammeOpenMP_MPI.pe341093
  • La sortie avec le nome des machines utilisées est redirigée dans le fichier ProgrammeOpenMP_MPI.po341093
cat ProgrammeOpenMP_MPI.o341093
Bonjour, je suis le thread 0 parmi 8 threads du process  1 parmi 2 processes sur le noeud  c8220node210.psmn.ens-lyon.fr
Bonjour, je suis le thread 6 parmi 8 threads du process  1 parmi 2 processes sur le noeud  c8220node210.psmn.ens-lyon.fr
Bonjour, je suis le thread 7 parmi 8 threads du process  1 parmi 2 processes sur le noeud  c8220node210.psmn.ens-lyon.fr
Bonjour, je suis le thread 4 parmi 8 threads du process  1 parmi 2 processes sur le noeud  c8220node210.psmn.ens-lyon.fr
Bonjour, je suis le thread 3 parmi 8 threads du process  1 parmi 2 processes sur le noeud  c8220node210.psmn.ens-lyon.fr
Bonjour, je suis le thread 2 parmi 8 threads du process  1 parmi 2 processes sur le noeud  c8220node210.psmn.ens-lyon.fr
Bonjour, je suis le thread 5 parmi 8 threads du process  1 parmi 2 processes sur le noeud  c8220node210.psmn.ens-lyon.fr
Bonjour, je suis le thread 6 parmi 8 threads du process  0 parmi 2 processes sur le noeud  c8220node210.psmn.ens-lyon.fr
Bonjour, je suis le thread 0 parmi 8 threads du process  0 parmi 2 processes sur le noeud  c8220node210.psmn.ens-lyon.fr
Bonjour, je suis le thread 3 parmi 8 threads du process  0 parmi 2 processes sur le noeud  c8220node210.psmn.ens-lyon.fr
Bonjour, je suis le thread 7 parmi 8 threads du process  0 parmi 2 processes sur le noeud  c8220node210.psmn.ens-lyon.fr
Bonjour, je suis le thread 4 parmi 8 threads du process  0 parmi 2 processes sur le noeud  c8220node210.psmn.ens-lyon.fr
Bonjour, je suis le thread 2 parmi 8 threads du process  0 parmi 2 processes sur le noeud  c8220node210.psmn.ens-lyon.fr
Bonjour, je suis le thread 5 parmi 8 threads du process  0 parmi 2 processes sur le noeud  c8220node210.psmn.ens-lyon.fr
Bonjour, je suis le thread 1 parmi 8 threads du process  1 parmi 2 processes sur le noeud  c8220node210.psmn.ens-lyon.fr
Bonjour, je suis le thread 1 parmi 8 threads du process  0 parmi 2 processes sur le noeud  c8220node210.psmn.ens-lyon.fr
La sortie avec le nome des machines utilisées est redirigée dans le fichier ''ProgrammeOpenMP_MPI.po341093''
cat ProgrammeOpenMP_MPI.po341093
c8220node210
c8220node210
c8220node210
c8220node210
c8220node210
c8220node210
c8220node210
c8220node210
c8220node209
c8220node209
c8220node209
c8220node209
c8220node209
c8220node209
c8220node209
c8220node209
documentation/tutorials/build/fortran_parallelehybride.txt · Dernière modification: 2018/04/25 10:11 par cicaluga