Ceci est une ancienne révision du document !
Le programme 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.
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
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
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
mpif90 -o SommeVecVecPAR.f90.exe SommeVecVecPAR.f90 (avec intel)
mpif90 -o SommeVecVecPAR.f90.exe SommeVecVecPAR.f90 (avec gnu)
Le fichier binaire (exécutable) SommeVecVecPAR.f90.exe
est généré.
mpirun -np 2 ./SommeVecVecPAR.f90.exe
Le résultat est affiché a l'écran :
LES DEUX VECTEURS : A = 1 2 3 4 5 6 7 8 9 10 B = 9 8 7 6 5 4 3 2 1 0 LES DEUX VECTEURS LOCAUX : Je suis le proc 0 parmi 2 processus A local ( proc 0 ) = 1 2 3 4 5 B local ( proc 0 ) = 9 8 7 6 5 Je suis le proc 1 parmi 2 processus A local ( proc 1 ) = 6 7 8 9 10 B local ( proc 1 ) = 4 3 2 1 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
On utilise un script de soumission batch.csh (ou 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
qsub batch.csh Your job 772030 ("SommeVecVecPAR") has been submitted
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 r 06/18/2012 07:42:16 r410B_ib_test@r410lin57.ens-ly 2
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
.
cat SommeVecVecPAR.o772030 /home/cicaluga/Support/FormationPSMN/SommeVecVecPar LES DEUX VECTEURS : A = 1 2 3 4 5 6 7 8 9 10 B = 9 8 7 6 5 4 3 2 1 0 LES DEUX VECTEURS LOCAUX : Je suis le proc 0 parmi 2 processus A local ( proc 0 ) = 1 2 3 4 5 B local ( proc 0 ) = 9 8 7 6 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 7 8 9 10 B local ( proc 1 ) = 4 3 2 1 0 C local ( proc 1 ) = 10 10 10 10 10