MUMPS
De WikiLICC
Dicas para instalar MUMPS no linux.
- Página oficial do MUMPS, : http://graal.ens-lyon.fr/MUMPS/
- Baixe o arquivo MUMPS_4.10.0.tar.gz, descompacte, (troque 4.10.0 pela n.o da última versão), leia o README:
[user] wget http://mumps.enseeiht.fr/MUMPS_4.10.0.tar.gz [user] tar zxvf MUMPS_4.10.0.tar.gz [user] cd MUMPS_4.10.0 [user] more README
É necessário instalar os pacotes scalapack, blacs (prefiro eles contra mpich2)
[user] yum install scalapack-mpich2 [user] yum install blacs-mpich2
Makefile.inc
- Escolha o Makefile.inc apropriado, veja o exemplo simplificado (com gfortran e mpich2)
# compilei apenas o PORD, nao instalei o Metis LPORDDIR = $(topdir)/PORD/lib/ IPORD = -I$(topdir)/PORD/include/ LPORD = -L$(LPORDDIR) -lpord ORDERINGSF = -Dpord ORDERINGSC = $(ORDERINGSF) LORDERINGS = $(LMETIS) $(LPORD) $(LSCOTCH) IORDERINGSF = $(ISCOTCH) IORDERINGSC = $(IMETIS) $(IPORD) $(ISCOTCH) PLAT = LIBEXT = .a OUTC = -o OUTF = -o RM = /bin/rm -f CC = gcc FC = gfortran FL = gfortran AR = ar vr RANLIB = echo
# para MUMPS sequencial (nao usado) INCSEQ = -I$(topdir)/libseq LIBSEQ = -L$(topdir)/libseq -lmpiseq
# Para MUMPS usando mpich2 (NOTE que REPETE mpiblacs DUAS VEZES) SCALAP = -L/usr/lib64/mpich2/lib -lscalapack -lmpiblacs -lmpiblacsF77init -lmpiblacs INCPAR = -I/usr/include/mpich2-x86_64 LIBPAR = $(SCALAP) -L/usr/lib64/mpich2/lib -lmpich LIBBLAS = -L/usr/lib64 -lblas -llapack LIBOTHERS= -lpthread CDEFS = -DAdd_ OPTF = -O -DALLOW_NON_INIT OPTL = -O OPTC = -O INCS = $(INCPAR) LIBS = $(LIBPAR) LIBSEQNEEDED =
A linha SCALAP acima inclui -lmpiblacsF77init e repete -lmpiblacs para poder compilar os exemplos.
Compilar escolhendo a precisão (Z,D,S,C)
[user] make z
que criará em lib os arquivos
[user] ls lib libzmumps.a libmumps_common.a libpord.a
Problemas
Ao renomear os nomes automaticamente com a opção -lblas (por exemplo) para libblas.so pode não existir o arquivo e existir algo como libblas.so.3. Uma solução é criar um link simbólico no diretório que está a libblas.so.3,
[user /usr/lib64] ln libblas.so.3 -s libblas.so