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
documentation:tutorials:build:fortran [2015/02/23 13:18] ltaulelldocumentation:tutorials:build:fortran [2023/01/13 09:34] (Version actuelle) – supprimée ccalugar
Ligne 1: Ligne 1:
-====== Compilation et d'exécution d'un programme (Fortran) ====== 
  
-{{INLINETOC}} 
-===== Langage Fortran 90, code séquentiel ===== 
- 
-Le programme [[documentation:examples:sommevecvecseq.f90|SommeVecVecSEQ.f90]] effectue la somme des deux vecteurs A et B. Le résultat est mis dans C. 
- 
-====Compilation du programme :==== 
- 
-**Définition de l'environnement** :  
- 
-  * définition de l'environnement **pour tcsh** //(méthode "modules")// 
-<code bash> 
-source /usr/local/modeles/set_debian7-clean.csh 
-source /usr/share/modules/init/csh 
-module use /applis/PSMN/Modules 
-module load Base/psmn 
-module load intel/14.0.1  
-</code> 
- 
-  * définition de l'environnement pour tcsh //(méthode "modeles")// 
- 
-<code> 
-source /usr/local/modeles/intel-14.0.1.csh (avec intel) 
-</code> 
- 
-<code> 
-source /usr/local/modeles/gnu-4.6.3 (avec gnu) 
-</code> 
- 
-  * définition de l'environnement **pour bash** //(méthode "modules")// 
-<code bash> 
-source /usr/local/modeles/set_debian7-clean.sh 
-source /usr/share/modules/init/sh 
-module use /applis/PSMN/Modules 
-module load Base/psmn 
-module load intel/14.0.1  
-</code> 
- 
-  * définition de l'environnement pour bash //(méthode "modeles")// 
- 
-<code> 
-source /usr/local/modeles/intel-14.0.1.sh (avec intel) 
-</code> 
- 
-<code bash> 
-source /usr/local/modeles/gnu-4.6.3.sh 
-</code> 
- 
-  * vérification de la version du compilateur 
-<code> 
-ifort --version 
-ifort (IFORT) 14.0.1 20131008 
-</code> 
- 
-**Compilation** : 
- 
-<code> 
-ifort -o SommeVecVecSEQ.f90.exe SommeVecVecSEQ.f90 (avec intel) 
-</code> 
- 
-<code> 
-gfortran -o SommeVecVecSEQ.f90.exe SommeVecVecSEQ.f90 (avec gnu) 
-</code> 
- 
-Le fichier binaire (exécutable) ''SommeVecVecSEQ.f90.exe'' a été généré. 
-====Exécution du programme :==== 
- 
-=== Exécution sur le serveur de compilation : === 
- 
-<code> 
-./SommeVecVecSEQ.f90.exe 
-</code> 
- 
-Le résultat est affiché a l'écran : 
- 
-<code> 
-Les deux vecteurs : 
- 
-A =            1                                                                                9          10 
- 
-B =            9                                                                                1           0 
- 
-Le vecteur somme : 
- 
-C =           10          10          10          10          10          10          10          10         10          10 
-</code> 
- 
-=== Exécution sur le cluster : === 
- 
- 
-On utilise un script de soumission [[documentation:tutorials:submit&#job_sequentiel|batch.csh]] (ou [[documentation:tutorials:submit&#job_sequentiel|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'' 
- 
-<code> 
-qsub batch.csh 
-Your job 769504 ("SommeVecVecSEQ") has been submitted 
-qstat 
- 
-job-ID  prior   name             user         state submit/start at     queue                  slots ja-task-ID  
------------------------------------------------------------------------------------------------------------------ 
- 769504 0.00000 SommeVecVecSEQ   cicaluga     qw    06/12/2012 07:21:46 
-</code> 
- 
-  * La sortie de l'écran (sortie standard) est redirigée dans le fichier ''SommeVecVecSEQ.o769504'' 
-  * La sortie erreur (erreur standard) est redirigée dans le fichier ''SommeVecVecSEQ.e769504'' 
-   
-<code> 
-cat SommeVecVecSEQ.o769504 
- 
-Les deux vecteurs : 
-A =            1                                                                                          10 
-B =            9                                                                                           0 
-Le vecteur somme : 
-C =           10          10          10          10          10          10          10          10          10          10 
-</code>  
- 
-===== Langage Fortran 90, code parallèle ===== 
- 
-Le programme [[documentation:examples:sommevecvecpar.f90|SommeVecVecPAR.f90]] effectue la somme des deux vecteurs A et B. Le résultat est mis dans C. Chaque étape est effectuée sur 2 processus. Si le programme est exécuté sur plusieurs cœurs, seuls deux cœurs seront réellement utilisés. 
- 
-==== Compilation du programme : ==== 
- 
-=== Définition de l'environnement : === 
-  
- 
-  * définition de l'environnement **pour tcsh** //(méthode "modules")// 
-<code bash> 
-source /usr/share/modules/init/csh 
-module use /applis/PSMN/Modules 
-module load Base/psmn 
- 
-module load openmpi/1.6.4-intel-14.0.1 
-</code> 
- 
-  * définition de l'environnement **pour bash** //(méthode "modules")// 
-<code bash> 
-source /usr/share/modules/init/sh 
-module use /applis/PSMN/Modules 
-module load Base/psmn 
- 
-module load openmpi/1.6.4-intel-14.0.1 
-</code> 
- 
-  * définition de l'environnement //(méthode "modeles")// 
-<code> 
-source /usr/local/modeles/openmpi-1.4.5-gnu-4.6.3 (avec gnu) 
-</code> 
- 
-<code> 
-source /usr/local/modeles/openmpi-1.6.4-intel-14.0.1-debian7.csh (avec intel) //(méthode "modeles")// 
-</code> 
- 
- 
-  * définition de l'environnement pour bash //(méthode "modeles")// 
-<code bash> 
-source /usr/local/modeles/openmpi-1.4.5-gnu-4.6.3.sh 
-</code> 
- 
-  * Vérification 
-<code> 
-mpif90 -showme 
- 
-ifort -I/softs/openmpi-1.6.4-intel-14.0.1-debian7/include -I/softs/openmpi-1.6.4-intel-14.0.1-debian7/lib -L/softs/openmpi-1.6.4-intel-14.0.1-debian7/lib -lmpi_f90 -lmpi_f77 -lmpi -lrdmacm -libverbs -lrt -lnsl -lutil -ldl -lm -lnuma -lrt -lnsl -lutil 
-</code> 
- 
-=== Compilation : === 
- 
- 
-<code> 
-mpif90 -o SommeVecVecPAR.f90.exe SommeVecVecPAR.f90 (avec intel) 
-</code> 
- 
-<code> 
-mpif90 -o SommeVecVecPAR.f90.exe SommeVecVecPAR.f90 (avec gnu) 
-</code> 
- 
- 
-Le fichier binaire (exécutable) ''SommeVecVecPAR.f90.exe'' est généré. 
- 
-====Exécution du programme :==== 
- 
-=== Exécution sur le serveur de compilation : === 
- 
-<code> 
-mpirun -np 2 ./SommeVecVecPAR.f90.exe 
-</code> 
- 
-Le résultat est affiché a l'écran : 
- 
-<code> 
-LES DEUX VECTEURS : 
-A =            1                                                                                          10 
-B =            9                                                                                           0 
- 
-LES DEUX VECTEURS LOCAUX : 
-Je suis le proc            0 parmi            2  processus 
-A local ( proc            0  )  =            1                                         5 
-B local ( proc            0  )  =            9                                         5 
-Je suis le proc            1 parmi            2  processus 
-A local ( proc            1  )  =            6                                        10 
-B local ( proc            1  )  =            4                                         0 
-LE VECTEUR SOMME LOCAL :  
-C local ( proc            1  )  =           10          10          10          10          10 
-C local ( proc            0  )  =           10          10          10          10          10 
-LE VECTEUR SOMME : 
-C =           10          10          10          10          10          10          10          10          10          10 
-</code> 
- 
-=== Exécution sur le cluster : === 
- 
- 
-On utilise un script de soumission [[documentation:tutorials:submit&#job_parallele|batch.csh]] (ou [[documentation:tutorials:submit&#job_parallele|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 les noeuds d'execution. 
- 
-''SGE -> batch.csh -> binaire'' 
- 
-<code> 
-qsub batch.csh 
-Your job 772030 ("SommeVecVecPAR") has been submitted 
-</code> 
- 
-<code> 
-qstat 
- 
-job-ID  prior   name             user         state submit/start at     queue                          slots ja-task-ID  
------------------------------------------------------------------------------------------------------------------ 
- 772030 0.00000 SommeVecVecPAR   Login     qw    06/18/2012 07:41:51                                    2         
- 
-qstat 
- 
-job-ID  prior   name             user         state submit/start at     queue                          slots ja-task-ID  
------------------------------------------------------------------------------------------------------------------ 
- 772030 0.05000 SommeVecVecPAR   Login         06/18/2012 07:42:16 r410B_ib_test@r410lin57.ens-ly      
-</code> 
- 
-La sortie de l'écran (sortie standard) est redirigée dans le fichier ''SommeVecVecPAR.o772030'' et la sortie erreur est redirigée dans le fichier ''SommeVecVecPAR.e772030''. 
- 
-<code> 
-cat SommeVecVecPAR.o772030 
- 
-/home/cicaluga/Support/FormationPSMN/SommeVecVecPar 
- LES DEUX VECTEURS : 
- A =            1                                                                                          10 
- B =            9                                                                                           0 
- LES DEUX VECTEURS LOCAUX : 
- Je suis le proc            0 parmi            2  processus 
- A local ( proc            0  )  =            1                                         5 
- B local ( proc            0  )  =            9                                         5 
- LE VECTEUR SOMME LOCAL :  
- C local ( proc            0  )  =           10          10          10          10          10 
-LE VECTEUR SOMME : 
- C =           10          10          10          10          10          10          10          10          10          10 
- Je suis le proc            1 parmi            2  processus 
- A local ( proc            1  )  =            6                                        10 
- B local ( proc            1  )  =            4                                         0 
- C local ( proc            1  )  =           10          10          10          10          10 
-</code> 
documentation/tutorials/build/fortran.1424697481.txt.gz · Dernière modification : 2020/08/25 15:58 (modification externe)