Ceci est une ancienne révision du document !
Le programme SommeVecVecSEQ.c effectue la somme des deux vecteurs A et B. Le résultat est mis dans C.
source /usr/local/modeles/gnu-4.6.3
gcc --version gcc (GCC) 4.6.3
gcc -o SommeVecVecSEQ.c.exe SommeVecVecSEQ.c
Le fichier binaire (exécutable) SommeVecVecSEQ.c.exe
a été généré.
./SommeVecVecSEQ.c.exe
⇒ Le résultat s'affiche 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 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 le noeud d'execution.
SGE → batch.csh → binaire
qsub batch.csh Your job 769504 ("batch.csh") 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
SommeVecVecSEQ.o769504
,SommeVecVecSEQ.e769504
.cat SommeVecVecSEQ.o769504 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 Le vecteur somme : C = 10 10 10 10 10 10 10 10 10 10
Le programme SommeVecVecPAR.c 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 sont effectivement utilises.
source /usr/local/modeles/openmpi-1.4.5-gnu-4.6.3
mpicc -showme gcc -I/softs/openmpi-1.4.5-gcc-4.6.3/include -pthread -L/softs/openmpi-1.4.5-gcc-4.6.3/lib -lmpi -lopen-rte -lopen-pal -lrdmacm -libverbs -ldl -lnsl -lutil -lm
mpicc -o SommeVecVecPAR.c.exe SommeVecVecPAR.c
Le fichier binaire (exécutable) SommeVecVecPAR.c.exe
a été généré.
mpirun -np 2 ./SommeVecVecPAR.c.exe
Le résultat s'affiche 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 ("batch.csh") has been submitted qstat job-ID prior name user state submit/start at queue slots ja-task-ID ---------------------------------------------------------------------------------------------------------------- 772030 0.00000 SommeVecVecPAR cicaluga 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 cicaluga r 06/18/2012 07:42:16 r410B_ib_test@r410lin57.ens-ly 2
SommeVecVecPAR.o772030
,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