Mudanças entre as edições de "MUMPS"
De WikiLICC
m |
m (→Makefile.inc) |
||
(6 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 7: | Linha 7: | ||
[user] cd MUMPS_4.10.0 | [user] cd MUMPS_4.10.0 | ||
[user] more README | [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''') | * Escolha o Makefile.inc apropriado, veja o exemplo simplificado (com '''gfortran''' e '''mpich2''') | ||
# compilei apenas o PORD, nao instalei o Metis | # compilei apenas o PORD, nao instalei o Metis | ||
Linha 32: | Linha 35: | ||
RANLIB = echo | RANLIB = echo | ||
− | + | # para MUMPS sequencial (nao usado) | |
INCSEQ = -I$(topdir)/libseq | INCSEQ = -I$(topdir)/libseq | ||
LIBSEQ = -L$(topdir)/libseq -lmpiseq | LIBSEQ = -L$(topdir)/libseq -lmpiseq | ||
− | + | ||
# Para MUMPS usando mpich2 ('''NOTE que REPETE mpiblacs DUAS VEZES''') | # Para MUMPS usando mpich2 ('''NOTE que REPETE mpiblacs DUAS VEZES''') | ||
− | SCALAP = -L/usr/lib64/mpich2/lib -lscalapack -lmpiblacs -lmpiblacsF77init -lmpiblacs | + | SCALAP = -L/usr/lib64/mpich2/lib -lscalapack -lmpiblacs -lmpiblacsF77init -lmpiblacs |
INCPAR = -I/usr/include/mpich2-x86_64 | INCPAR = -I/usr/include/mpich2-x86_64 | ||
LIBPAR = $(SCALAP) -L/usr/lib64/mpich2/lib -lmpich | LIBPAR = $(SCALAP) -L/usr/lib64/mpich2/lib -lmpich | ||
− | LIBBLAS = -L/usr/lib64 -lblas | + | LIBBLAS = -L/usr/lib64 -lblas -llapack |
LIBOTHERS= -lpthread | LIBOTHERS= -lpthread | ||
Linha 54: | Linha 57: | ||
LIBS = $(LIBPAR) | LIBS = $(LIBPAR) | ||
LIBSEQNEEDED = | LIBSEQNEEDED = | ||
+ | A linha SCALAP acima inclui -lmpiblacsF77init e repete -lmpiblacs para poder compilar os exemplos. | ||
Compilar escolhendo a precisão (Z,D,S,C) | Compilar escolhendo a precisão (Z,D,S,C) | ||
[user] make z | [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 |
Edição atual tal como às 11h43min de 19 de abril de 2013
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