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
HPC Cluster Tools 8 (OpenMPI)
juin 09 Sun HPC ClusterTools 8.2 is based on the Open MPI 1.3.3 release.
module load hpc82
ou
module load sunhpc
HPC Cluster Tools 6
mars 06
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'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 HPC7.0
Lorsqu'on utilise ces produits, on peut trouver de la documentation et du support communautaire:
mode batch
at -m now mprun -np <nb-proc> <executable> <parametre executable>
- 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:Etnus