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_parallelehybride [2018/04/24 13:28] – [Compilation du programme :] cicalugadocumentation:tutorials:build:fortran_parallelehybride [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 C, code parallèle hybrid OpenMP&MPI ===== 
  
-Soit le programme écrit en C et parallèle hybrid OpenMP&MPI [[documentation:examples:sommevecvecparOpenmpMPI.c|ProgPAR_OpenMP&MPI.c]] qui affiche Hello World. On a deux proc MPI treads OpenMP par proc MPI.+===== Langage C, code parallèle hybrid MPI+OpenMP ===== 
 + 
 +Soit le programme écrit en C avec une parallélisation hybride MPI+OpenMP [[documentation:examples:sommevecvecparOpenmpMPI.c|ProgPAR_OpenMP_MPI.c]]. On va l'exécuter avec une décomposition en 2 processus MPI threads OpenMP. 
 ==== Compilation du programme : ==== ==== Compilation du programme : ====
  
Ligne 16: Ligne 16:
 </code> </code>
  
-  * vérification de la version du compilateur 
-<code> 
-gfortran --version 
-... 
-</code> 
  
 **Compilation** : **Compilation** :
  
 <code> <code>
-... ProgPAR_OpenMP&MPI.f90.exe ProgPAR_OpenMP&MPI.f90 +mpicc -fopenmp ProgPAR_OpenMP_MPI.c -o ProgPAR_OpenMP_MPI.c.exe 
 + 
 </code> </code>
  
-Le fichier binaire (exécutable) ''ProgPAR_OpenMP&MPI.f90.exe'' est généré.+Le fichier binaire (exécutable) ''ProgPAR_OpenMP_MPI.c.exe'' est généré.
 ====Exécution du programme :==== ====Exécution du programme :====
  
Ligne 34: Ligne 30:
  
 <code> <code>
-setenv OMP_NUM_THREADS "16" (pour tcsh+export OMP_NUM_THREADS=8 (pour bash
-export OMP_NUM_THREADS=16 (pour bash+setenv OMP_NUM_THREADS "8" (pour tcsh
-./ProgPAR_OpenMP&MPI.f90.exe+mpirun -np 2 -bind-to socket -npersocket 1 ./ProgPAR_OpenMP_MPI.c.exe
 </code> </code>
  
Ligne 43: Ligne 39:
 <code> <code>
  
-....+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
  
 </code> </code>
Ligne 50: Ligne 61:
  
  
-On utilise un script de soumission [[documentation:tutorials:submit:jobopenmpMPIbash|script_OpenMP&MPI.sh]] (ou [[documentation:tutorials:submit:jobopenmpMPItcsh|script_OpenMP&MPI.csh]], pour le shell bashpour soumettre le job sur les clusters de calcul.+On utilise un script de soumission [[documentation:tutorials:submit:jobopenmpMPIbash|scriptOpenMP_MPI]] pour le shell bashpour 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. 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''+''SGE -> scriptOpenMP_MPI -> binaire''
  
 <code> <code>
-qsub script_OpenMP&MPI +qsub scriptOpenMP_MPI 
-Your job 341093 ("ProgrammeOpenMP&MPI") has been submitted+Your job 341093 ("ProgrammeOpenMP_MPI") has been submitted
  
 qstat qstat
Ligne 64: Ligne 75:
 job-ID  prior   name             user         state submit/start at     queue                           slots ja-task-ID  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        + 341093 0.00000 ProgrammeOpenMP_MPI ccalugar     qw    02/14/2018 14:55:55                                   16        
  
 qstat qstat
Ligne 70: Ligne 81:
 job-ID  prior   name             user         state submit/start at     queue                           slots ja-task-ID  job-ID  prior   name             user         state submit/start at     queue                           slots ja-task-ID 
 ----------------------------------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------------------------------
-341093  0.07300 ProgrammeOpenMP&MPI ccalugar         02/14/2018 14:57:55  E5-2667v2h6deb128@c8220node213     16+341093  0.07300 ProgrammeOpenMP_MPI ccalugar         02/14/2018 14:57:55  E5-2667v2h6deb128@c8220node213     16
 </code> </code>
  
-  * La sortie de l'écran (sortie standard) est redirigée dans le fichier ''ProgrammeOpenMP&MPI.o341093'' +  * 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 (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''
      
 <code> <code>
-cat ProgrammeOpenMP&MPI.o341093 +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
 </code>  </code> 
 +
 +<code>
 +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
 +</code> 
 +