Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteProchaine révisionLes deux révisions suivantes | ||
documentation:tutorials:build:fortran [2015/02/20 10:43] – [Exécution du programme :] ltaulell | documentation:tutorials:build:fortran [2018/02/15 08:24] – cicaluga | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Compilation et d' | ====== Compilation et d' | ||
+ | {{INLINETOC}} | ||
===== Langage Fortran 90, code séquentiel ===== | ===== Langage Fortran 90, code séquentiel ===== | ||
Ligne 9: | Ligne 10: | ||
**Définition de l' | **Définition de l' | ||
- | * définition de l' | + | * définition de l' |
<code bash> | <code bash> | ||
- | source / | + | module |
- | source / | + | |
- | module | + | |
- | module load Base/psmn | + | |
- | module load intel/ | + | |
- | </ | + | |
- | + | ||
- | * définition de l' | + | |
- | + | ||
- | < | + | |
- | source / | + | |
- | </ | + | |
- | + | ||
- | < | + | |
- | source / | + | |
- | </ | + | |
- | + | ||
- | * définition de l' | + | |
- | <code bash> | + | |
- | source / | + | |
- | source / | + | |
- | module use / | + | |
- | module load Base/psmn | + | |
- | module load intel/ | + | |
- | </ | + | |
- | + | ||
- | * définition de l' | + | |
- | + | ||
- | < | + | |
- | source / | + | |
</ | </ | ||
<code bash> | <code bash> | ||
- | source | + | module load GCC/7.2.0 |
</ | </ | ||
* vérification de la version du compilateur | * vérification de la version du compilateur | ||
< | < | ||
- | ifort --version | + | gfortran |
- | ifort (IFORT) 14.0.1 20131008 | + | GNU Fortran |
+ | Copyright (C) 2017 Free Software Foundation, Inc. | ||
</ | </ | ||
Ligne 56: | Ligne 29: | ||
< | < | ||
- | ifort -o SommeVecVecSEQ.f90.exe SommeVecVecSEQ.f90 | + | gfortran |
</ | </ | ||
- | < | ||
- | gfortran -o SommeVecVecSEQ.f90.exe SommeVecVecSEQ.f90 (avec gnu) | ||
- | </ | ||
Le fichier binaire (exécutable) '' | Le fichier binaire (exécutable) '' | ||
Ligne 69: | Ligne 39: | ||
< | < | ||
- | ./ | + | ./ |
</ | </ | ||
Ligne 89: | Ligne 59: | ||
- | On utilise un script de soumission [[documentation: | + | On utilise un script de soumission [[documentation: |
C'est le script de soumission qui configure l' | C'est le script de soumission qui configure l' | ||
- | '' | + | '' |
< | < | ||
- | ./batch.csh | + | qsub batch.csh |
- | Your job 769504 | + | Your job 335982 |
qstat | qstat | ||
- | job-ID | + | job-ID |
----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ||
- | 769504 | + | 335982 |
+ | |||
+ | qstat | ||
+ | |||
+ | job-ID | ||
+ | ----------------------------------------------------------------------------------------------------------------- | ||
+ | | ||
</ | </ | ||
- | * La sortie de l' | + | * La sortie de l' |
- | * La sortie erreur (erreur standard) est redirigée dans le fichier '' | + | * La sortie erreur (erreur standard) est redirigée dans le fichier '' |
| | ||
< | < | ||
- | cat batch.csh.o769504 | + | cat SommeVecVecSEQ.o335982 |
Les deux vecteurs : | Les deux vecteurs : | ||
Ligne 117: | Ligne 93: | ||
C = | C = | ||
</ | </ | ||
- | |||
- | ===== Langage Fortran 90, code parallèle ===== | ||
- | |||
- | Le programme [[documentation: | ||
- | |||
- | ==== Compilation du programme : ==== | ||
- | |||
- | **Définition de l' | ||
- | |||
- | * définition de l' | ||
- | <code bash> | ||
- | source / | ||
- | module use / | ||
- | module load Base/psmn | ||
- | |||
- | module load openmpi/ | ||
- | </ | ||
- | |||
- | * définition de l' | ||
- | <code bash> | ||
- | source / | ||
- | module use / | ||
- | module load Base/psmn | ||
- | |||
- | module load openmpi/ | ||
- | </ | ||
- | |||
- | * définition de l' | ||
- | < | ||
- | source / | ||
- | </ | ||
- | |||
- | < | ||
- | source / | ||
- | </ | ||
- | |||
- | |||
- | * définition de l' | ||
- | <code bash> | ||
- | source / | ||
- | </ | ||
- | |||
- | * Vérification | ||
- | < | ||
- | mpif90 -showme | ||
- | |||
- | ifort -I/ | ||
- | </ | ||
- | |||
- | * Compilation | ||
- | |||
- | < | ||
- | mpif90 -o SommeVecVecPAR.f90.exe SommeVecVecPAR.f90 (avec intel) | ||
- | </ | ||
- | |||
- | < | ||
- | mpif90 -o SommeVecVecPAR.f90.exe SommeVecVecPAR.f90 (avec gnu) | ||
- | </ | ||
- | |||
- | |||
- | Le fichier binaire (exécutable) '' | ||
- | ====Exécution du programme :==== | ||
- | |||
- | === Exécution sur le serveur de compilation : === | ||
- | |||
- | < | ||
- | mpirun -np 2 ./ | ||
- | </ | ||
- | |||
- | Le résultat est affiché a l' | ||
- | |||
- | < | ||
- | LES DEUX VECTEURS : | ||
- | A = 1 | ||
- | B = 9 | ||
- | |||
- | LES DEUX VECTEURS LOCAUX : | ||
- | Je suis le proc 0 parmi 2 processus | ||
- | A local ( proc 0 ) = 1 | ||
- | B local ( proc 0 ) = 9 | ||
- | Je suis le proc 1 parmi 2 processus | ||
- | A local ( proc 1 ) = 6 | ||
- | B local ( proc 1 ) = 4 | ||
- | LE VECTEUR SOMME LOCAL : | ||
- | C local ( proc 1 ) = | ||
- | C local ( proc 0 ) = | ||
- | LE VECTEUR SOMME : | ||
- | C = | ||
- | </ | ||
- | |||
- | === Exécution sur le cluster : === | ||
- | |||
- | |||
- | On utilise un script de soumission [[documentation: | ||
- | |||
- | |||
- | C'est le script de soumission qui configure l' | ||
- | |||
- | '' | ||
- | |||
- | < | ||
- | ./batch | ||
- | Your job 772030 (" | ||
- | </ | ||
- | |||
- | < | ||
- | qstat | ||
- | |||
- | job-ID | ||
- | ----------------------------------------------------------------------------------------------------------------- | ||
- | | ||
- | |||
- | qstat | ||
- | |||
- | job-ID | ||
- | ----------------------------------------------------------------------------------------------------------------- | ||
- | | ||
- | </ | ||
- | |||
- | La sortie de l' | ||
- | |||
- | < | ||
- | cat batch.csh.o772030 | ||
- | |||
- | / | ||
- | LES DEUX VECTEURS : | ||
- | A = 1 | ||
- | B = 9 | ||
- | LES DEUX VECTEURS LOCAUX : | ||
- | Je suis le proc 0 parmi 2 processus | ||
- | A local ( proc 0 ) = 1 | ||
- | B local ( proc 0 ) = 9 | ||
- | LE VECTEUR SOMME LOCAL : | ||
- | C local ( proc 0 ) = | ||
- | LE VECTEUR SOMME : | ||
- | C = | ||
- | Je suis le proc 1 parmi 2 processus | ||
- | A local ( proc 1 ) = 6 | ||
- | B local ( proc 1 ) = 4 | ||
- | C local ( proc 1 ) = | ||
- | </ |