MUMPS

La bibliothèque MUMPS propose, entre autres, une méthode de résolution directe (décomposition LU) dans un contexte de mémoire distribuée (Message Passing Interface). Elle propose également une parallélisation mixte ou hybride (mémoire partagée /mémoire distribuée).

MUMPS peut être utilisée également dans la construction de pré-conditionneurs dans le cadre des méthodes de Krylov (méthodes itératives), ou dans la résolution des problèmes locaux issus d’une méthode de décomposition de domaine par exemple.

Les versions installées sur Olympe


Version 5.3.5

Les bibliothèques:

[@olympelogin1 ~]$ls /usr/local/mumps/MUMPS_5.3.5-i4/lib
libcmumps.a  libdmumps.a  libmumps_common.a  libpord.a  libsmumps.a  libzmumps.a

Les includes:

[@olympelogin1 ~]$ls /usr/local/mumps/MUMPS_5.2.1-i4/include
cmumps_c.h     cmumps_struc.h  dmumps_root.h   mumps_compat.h   smumps_c.h     smumps_struc.h  zmumps_root.h
cmumps_root.h  dmumps_c.h      dmumps_struc.h  mumps_c_types.h  smumps_root.h  zmumps_c.h      zmumps_struc.h

Version 5.2.1

Les librairies :

[@olympelogin1 ~]$ls /usr/local/mumps/MUMPS_5.2.1-i4/lib
libcmumps.a  libdmumps.a  libmumps_common.a  libpord.a  libsmumps.a  libzmumps.a

Les includes :

[@olympelogin1 ~]$ls /usr/local/mumps/MUMPS_5.2.1-i4/include
cmumps_c.h     cmumps_struc.h  dmumps_root.h   mumps_compat.h   smumps_c.h     smumps_struc.h  zmumps_root.h
cmumps_root.h  dmumps_c.h      dmumps_struc.h  mumps_c_types.h  smumps_root.h  zmumps_c.h      zmumps_struc.h

Environnement de compilation:

compilateur/lib MKL ; lib. MPI

[@olympelogin1 mumps]$ module li
intel/18.2   et intelmpi/18.2

Version 5.1.2

Les librairies :

[@olympelogin1 ~]$ls /usr/local/mumps/MUMPS_5.1.2-i4/lib
libdmumps.a  libmumps_common.a  libpord.a

Les includes :

[@olympelogin1 ~]$ls /usr/local/mumps/MUMPS_5.1.2-i4/include
cmumps_c.h     cmumps_struc.h  dmumps_root.h   mumps_compat.h   smumps_c.h     smumps_struc.h  zmumps_root.h
cmumps_root.h  dmumps_c.h      dmumps_struc.h  mumps_c_types.h  smumps_root.h  zmumps_c.h      zmumps_struc.h

Environnement de compilation:

compilateur/lib MKL ; lib. MPI :

[@olympelogin1 mumps]$ module li
intel/18.2   et intelmpi/18.2

les Lib. parmetis et pt-scotch ont été utilisées pour sa compilation :

/usr/local/mumps/parmetis-4.0.3/
/usr/local/mumps/parmetis-4.0.3-intel-i4/
/usr/local/mumps/scotch_6.0.6/
/usr/local/mumps/scotch_6.0.6/-intel-i4/

 

Aide Makefile:

Nous proposons ici une manière d’intégrer la lib. MUMPS dans vos Makefile :

#V5.2.1

MUMPSDIR = /usr/local/mumps/MUMPS_5.2.1-i4
LIBMUMPSDIR = $(MUMPSDIR)/lib
# Variable pour les include. Variable à  intégrer dans vos options de compilation de votre Makefile
INCMUMPSDIR = $(MUMPSDIR)/include

SCOTCHDIR  = /usr/local/mumps/scotch_6.0.6-intel-i4
LSCOTCH    = -L$(SCOTCHDIR)/lib -lesmumps -lptscotch -lptscotcherr -lscotch -lscotcherr

LMETISDIR = /usr/local/mumps/parmetis-4.0.3
LMETIS    = -L$(LMETISDIR)/build/Linux-x86_64/libmetis -lmetis
LPARMETIS    = -L$(LMETISDIR)/build/Linux-x86_64/libparmetis -lparmetis

LPORDDIR = $(MUMPSDIR)/PORD/lib/
LPORD    = -L$(LPORDDIR) -lpord

LORDERINGS = $(LPARMETIS) $(LMETIS) $(LPORD) $(LSCOTCH)

LIBPAR = -lmkl_scalapack_lp64  -Wl,--start-group -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64 -Wl,--end-group -openmp -lpthread

LIBMUMPS_COMMON = $(LIBMUMPSDIR)/libmumps_common.a

#Version double précision
LIBDMUMPS = $(LIBMUMPSDIR)/libdmumps.a $(LIBMUMPS_COMMON)

#la variable $(LIBMUMPS) est à  ajouter à  la commande de link de votre Makefile :
LIBMUMPS = $(LIBDMUMPS) $(LORDERINGS) $(LIBPAR)

 

Voir aussi

FAQ

Questions fréquentes et messages d'erreurs