====== Utilisation de MPI ======
connaître l'environnmeent (sur octopus):
module avail mpi
-------------------- /local/apps/Modules/3.2.6/modulefiles ---------------------
mpi/openmpi144 mpi/sunhpc8 mpi/sunhpc82 mpi/sunhpc821c
====== Différentes versions ======
===== OpenMPI =====
* [[http://www.open-mpi.org]]
* [[openmpi_compilation|compilation]]
===== HPC Cluster Tools 8 (OpenMPI) =====
juin 09 ''Sun HPC ClusterTools 8.2 is based on the Open MPI 1.3.3 release.''
* [[http://docs.sun.com/app/docs/prod/hpc.cluster82?l=en&a=view|doc]]
module load hpc82
ou
module load sunhpc
===== HPC Cluster Tools 6 =====
mars 06
[[http://www.sun.com/products-n-solutions/hardware/docs/pdf/819-4133-10.pdf|Sun MPI 7.0 Software Programming and Reference Guide]]
ajouter /opt/SUNWhpc/bin dans le PATH (ou utiliser plutôt la commande module)
module load hpc
===== MPICH =====
sur nemo, slatp, shrek
1.2.6, 1.2.7p1, 1.2.7.p1
32bits et 64 bits
[[http://www-unix.mcs.anl.gov/mpi/mpich/]]
/usr/local/mpich-1.2.6
/usr/local/mpich-1.2.6-new
/usr/local/mpich-1.2.7p1
====== Tests MPI ======
avec MPICH 1.2.6 installé dans /usr/local. Penser à mettre à jour le PATH
nemo-henry% setenv PATH /usr/local/mpich-1.2.6/bin:${PATH}
nemo-henry% pwd
/local/henry/tests/MPI/mpi1_tp/tp6/solution
nemo-henry% make
mpirun -np 8 ./CommSplit
Rang : 0 ; Coordonnees : (0,0) ; W = 1.
Rang : 3 ; Coordonnees : (1,1) ; W = 2.
Rang : 1 ; Coordonnees : (0,1) ; W = 1.
Rang : 4 ; Coordonnees : (2,0) ; W = 3.
Rang : 2 ; Coordonnees : (1,0) ; W = 2.
Rang : 6 ; Coordonnees : (3,0) ; W = 4.
Rang : 5 ; Coordonnees : (2,1) ; W = 3.
Rang : 7 ; Coordonnees : (3,1) ; W = 4.
Remarque:
* on utilise la version 32 bits de MPICH (pour la [[version 64 bits]])
nemo-henry% file /local/henry/tests/MPI/mpi1_tp/tp6/solution/CommSplit
/local/henry/tests/MPI/mpi1_tp/tp6/solution/CommSplit: ELF 32-bit LSB executable 80386 Version 1 [FPU], dynamically linked, not stripped
* la configuration de MPICH est dans le fichier /usr/local/mpich-1.2.6/share/machines.solaris86
====== Tests PETSC ======
===== petsc-3.1-p8 =====
sur octopus, faire:
module load sunhpc petsc3.1_p8_hpc8
* récupérer l'{{:petsc:petsc3.1_example.tar|exemple}} (fourni par Yann Jobic de l'IUSTI)
* puis lancer la compilation et l'exécution:
make -f Makefile_petsc3.1 solv_ksp
mpirun -np 2 ./solv_ksp -mat_type mpiaij -pc_type lu -pc_factor_mat_solver_package mumps -nx 1000 -ny 1000 -debug 0
===== petsc-2.3.0 =====
nemo-henry% setenv PATH /opt/SUNWspro/bin:${PATH}
nemo-henry% pwd
/local/henry/tests/petsc/test
nemo-henry% cc -KPIC -g -xtarget=opteron -o ex1 ex1.c \
-R/usr/local/mpich-1.2.6/lib \
-L/usr/local/mpich-1.2.6/lib \
-I/usr/local/mpich-1.2.6/include \
-lmpich \
-R/local/henry/petsc-2.3.0-debug/lib/solaris-amd64-32 \
-L/local/henry/petsc-2.3.0-debug/lib/solaris-amd64-32 \
-I/local/henry/petsc-2.3.0-debug/include \
-I/local/henry/petsc-2.3.0-debug/bmake/solaris-amd64-32 \
-lpetscvec -lpetsc \
-xlic_lib=sunperf
nemo-henry% mpirun -np 4 ex1
Vector length 20
Vector length 20 40 60
All other values should be near zero
VecScale 0
VecCopy 0
VecAXPY 0
VecAYPX 0
VecSwap 0
VecSwap 0
VecWAXPY 0
VecPointwiseMult 0
VecPointwiseDivide 0
VecMAXPY 0 0 0
====== Utilisation de (Sun) MPI (HPC6.0) ======
===== Aide =====
Sun HPC est une implémentation de MPI 1 et 2 par Sun. Il semble aujourd'hui que Sun se rallie à OpenMPI, en fournissant [[http://www.sun.com/software/products/clustertools/ct7.html|HPC7.0]]
Lorsqu'on utilise ces produits, on peut trouver de la documentation et du support communautaire:
* [[http://mailman.rwth-aachen.de/mailman/listinfo/sunhpc|SunHPC mailing list]]
* [[http://www.sun.com/products-n-solutions/hardware/docs/Software/Sun_HPC_ClusterTools_Software|Documentation]]
* [[http://www.sun.com/secure/software/clustertools/forms/index.xml|Technical Support]]
===== mode batch =====
at -m now
mprun -np
* on fait : "mpps -Ae" pour vérifier que le job est bien parti
===== Commandes utiles pour lancer des jobs =====
^Commande ^Action ^
|mpps -Ae |Liste les process parallèles de toutes les machines parallèles|
|mpps -Aep |Liste les process parallèles de toutes les machines parallèles, mais avec le nom des noeuds utilisés|
|mpkill cre.xxxx |A faire sur le serveur HPC où tourne le job : arrête le programme|
|mpkill -KILL cre.xxxx |id. |
|mpkill -C jobid |Uniquement root peut faire cette commande.|
====== Debugger TotalView ======
Installé sur nemo, c'est une version beta, expire le 25 juin 06.
Pour le lancer, taper simplement: totalview
La documentation est ici:[[http://www.etnus.com/Documentation/|Etnus]]