24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2515  |  回复: 11

大地飞鹰h

新虫 (初入文坛)

[交流] 【求助】siesta3.0 安装,错误一箩筐已有6人参与

首先现安装串行,ifort 10, mkl 10,
装siesta,make通过,
make clean , make transiesta,出现
   m_forces.o m_stress.o m_eo.o m_spin.o m_gamma.o m_hsx.o m_fire.o get_target_stress.o fire_optim.o zm_fire_optim.o cell_fire_optim.o m_fire_para.o m_fire_mixing.o write_raw_efs.o m_iodm.o m_sparse.o kpoint_pdos.o  nag.o pxf.o m_ts_options.o m_ts_aux_rout.o m_ts_kpoints.o m_ts_io.o m_ts_scattering.o m_ts_contour.o m_ts_electrode.o m_ts_in_siesta.o libfdf.a \
                 \
               dc_lapack.a liblapack.a libblas.a  `FoX/FoX-config --libs --wcml`   dc_lapack.a liblapack.a libblas.a
m_ts_aux_rout.o: In function `__m_ts_aux_rout__csolveg':
/home/hu/software/siesta-3.0-rc1/Src/m_ts_aux_rout.F:344: undefined reference to `zgesv_'
collect2: ld 返回 1
make: *** [transiesta] 错误 1
[hu@node02 trans]$

个人以为与数据库有关,转装blas,lapack。
安装lapack-3.2时,出现
Time for 1,000,000 SAXPY ops  =   0.00     seconds
*** Error:  Time for operations was zero
Including SECOND, time        =   0.00     seconds
Average time for SECOND       =   0.00     milliseconds
Time for 1,000,000 DAXPY ops  =   0.00     seconds
*** Error:  Time for operations was zero
Including DSECND, time        =   0.00     seconds
Average time for DSECND       =   0.00     milliseconds
结果编译通不过。
  后来装并行时,又有报错。
[hu@node01 ~]$ mpdcheck -f mpd.hosts -ssh
hu@node03's password: ** ssh timed out to node03
** ssh failed to node03
** here is the output:
[hu@node01 ~]$

共有四台机器,只有第一台通过了lapack编译,之后make transiesta通过,但是运行例子也是报错,如下
siesta:  194************** 96726338.0234 96726338.0234143.3913********
siesta: WARNING: Qtot, Tr[D*S] =     156.000000      63.523758
siesta:  195************** 96503554.1989 96503554.1989143.4410********
整天对着电脑来来回回的装呀装,期待高手指点一二,使我脱离苦海!
回复此楼

» 收录本帖的淘帖专辑推荐

siesta问题

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ice_rain

铁杆木虫 (正式写手)

★ ★
大地飞鹰h(金币+3):谢谢参与
大地飞鹰h(金币+2): 2010-06-10 21:34:06
zzy870720z(金币+1):谢谢提示 2010-06-10 22:52:42
有一个原则就是数学库编译和siesta编译用相同的编译器。这样保证没有问题。还有就是注意并行mpi的设置。我没有看你的错误,这只是我的编译的一点经验吧。按部就班一步一步来保证没有问题。哈哈
2楼2010-06-10 21:22:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

大地飞鹰h

新虫 (初入文坛)

开始也就是用ifort了,只是后来试过pgi了,也是siesta可以通过编译,make transiesta也是报错。第一台机器mpi并行算siesta也是没报错,transiesta就出错,例子本身没问题,是别人算过的。电脑重装系统一步步来也试过,还是同样的错。
3楼2010-06-10 21:43:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

valenhou001

至尊木虫 (职业作家)

★ ★ ★
大地飞鹰h(金币+3):谢谢参与
cenwanglai(金币+2):谢谢回复 2010-06-13 09:56:20
引用回帖:
Originally posted by 大地飞鹰h at 2010-06-10 20:59:19:
/home/hu/software/siesta-3.0-rc1/Src/m_ts_aux_rout.F:344: undefined reference to `zgesv_'

这类的错误,多半是由于数学库lapack和blas时的编译选项同SIESTA的编译选项有所不同造成的,特别是有关是否加下划线的选项,各个fortran编译器对此处理的默认方式略有不同。

如果采用默认的编译选项的话,那么数学库编译时的fortran编译器与SIESTA时的编译器都选一样的。
4楼2010-06-11 09:31:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

valenhou001

至尊木虫 (职业作家)

★ ★
大地飞鹰h(金币+5): 2010-06-11 10:03:10
zzy870720z(金币+2):谢谢专家指导,辛苦了 2010-06-11 11:30:17
下面贴出我用ifort,以及scalapck suite 0.96 编译SIESTA3.0的arch.make(重要的部分),以供参考。参考时,针对自己的scalapack所放的位置自行进行调整。

里面最重要的是,去编译scalapack suite 0.96。我的例子,我是将编译出来的.a文件都放到了/home1/zh/soft/scalapack-intel/lib目录中。

SIESTA_ARCH=x86_64-unknown-linux-gnu--Intel

FPP=
FPP_OUTPUT=
FC=mpif90
RANLIB=ranlib

SYS=nag

SP_KIND=4
DP_KIND=8
KINDS=$(SP_KIND) $(DP_KIND)

#FFLAGS=-g  -fno-underscoring
FFLAGS=-g
FPPFLAGS= -DMPI -DFC_HAVE_FLUSH -DFC_HAVE_ABORT
LDFLAGS=

ARFLAGS_EXTRA=

FCFLAGS_fixed_f=
FCFLAGS_free_f90=
FPPFLAGS_fixed_F=
FPPFLAGS_free_F90=

MATH_LIB=/home1/zh/soft/scalapack-intel/lib
BLAS_LIBS=$(MATH_LIB)/librefblas.a
LAPACK_LIBS=dc_lapack.a $(MATH_LIB)/libreflapack.a
BLACS_LIBS= $(MATH_LIB)/blacsC.a $(MATH_LIB)/blacsF77.a   $(MATH_LIB)/blacs.a
SCALAPACK_LIBS=$(MATH_LIB)/libscalapack.a


下面是编译scalapack suite 0.96时,LAPCK, BLACS, SCALAPACK时的编译选项,等:
1、LAPACK的make.inc

SHELL = /bin/sh
PLAT =
FORTRAN  = ifort
OPTS     = -O3
DRVOPTS  = $(OPTS)
NOOPT    =  -mp
LOADER   = ifort
LOADOPTS =
TIMER    = EXT_ETIME
ARCH     = ar
ARCHFLAGS= cr
RANLIB   = /usr/bin/ranlib
BLASLIB      = /home1/zh/soft/scalapack-intel/lib/librefblas.a
LAPACKLIB    = libreflapack.a
TMGLIB       = tmglib.a
EIGSRCLIB    = eigsrc.a
LINSRCLIB    = linsrc.a
----------
make blaslib
make lapacklib
将编译得到librefblas.a, libreflapack.a放到了/home1/zh/soft/scalapack-intel/lib

2、BLACS的Bmake.inc
SHELL = /bin/sh
BTOPdir = /home1/zh/soft/scalapack-intel/BLACS
COMMLIB = MPI
PLAT =
BLACSdir    = $(BTOPdir)/LIB
BLACSDBGLVL = 0
BLACSFINIT  = $(BLACSdir)/blacsF77.a
BLACSCINIT  = $(BLACSdir)/blacsC.a
BLACSLIB    = $(BLACSdir)/blacs.a

MPIINCdir = /home1/zh/soft/openmpi-1.3-intel/include
MPILIB =

BTLIBS = $(BLACSFINIT) $(BLACSLIB) $(BLACSFINIT) $(MPILIB)
INSTdir = $(BTOPdir)/INSTALL/EXE
TESTdir = $(BTOPdir)/TESTING/EXE
FTESTexe = $(TESTdir)/xFbtest_$(COMMLIB)-$(PLAT)-$(BLACSDBGLVL)
CTESTexe = $(TESTdir)/xCbtest_$(COMMLIB)-$(PLAT)-$(BLACSDBGLVL)
SYSINC = -I$(MPIINCdir)
INTFACE = -DAdd_
SENDIS =
BUF =
TRANSCOMM =
WHATMPI =
SYSERRORS =
DEBUGLVL = -DBlacsDebugLvl=$(BLACSDBGLVL)
DEFS1 = -DSYSINC $(SYSINC) $(INTFACE) $(DEFBSTOP) $(DEFCOMBTOP) $(DEBUGLVL)
BLACSDEFS = $(DEFS1) $(SENDIS) $(BUFF) $(TRANSCOMM) $(WHATMPI) $(SYSERRORS)

F77            = /home1/zh/soft/openmpi-1.3-intel/bin/mpif77
F77NO_OPTFLAGS =  -mp
F77FLAGS       = $(F77NO_OPTFLAGS) -O3
F77LOADER      = $(F77)
F77LOADFLAGS   =
CC             = /home1/zh/soft/openmpi-1.3-intel/bin/mpicc
CCFLAGS        = -O3
CCLOADER       = $(F77)
CCLOADFLAGS    =  -nofor_main
ARCH      = ar
ARCHFLAGS = r
RANLIB    = /usr/bin/ranlib
-----
make mpi
将编译得到LIB目录里面的blacs.a  blacsC.a  blacsF77.a放到了/home1/zh/soft/scalapack-intel/lib

3、SCALAPACK的SLmake.inc
SHELL         = /bin/sh

home          = /home1/zh/soft/scalapack-intel/scalapack-1.8.0

PLAT          = LINUX

USEMPI        = -DUsingMpiBlacs

SMPLIB        =
BLACSFINIT    = /home1/zh/soft/scalapack-intel/lib/blacsF77.a
BLACSCINIT    = /home1/zh/soft/scalapack-intel/lib/blacsC.a
BLACSLIB      = /home1/zh/soft/scalapack-intel/lib/blacs.a
TESTINGdir    = $(home)/TESTING


CBLACSLIB     = $(BLACSCINIT) $(BLACSLIB) $(BLACSCINIT)
FBLACSLIB     = $(BLACSFINIT) $(BLACSLIB) $(BLACSFINIT)

PBLASdir      = $(home)/PBLAS
SRCdir        = $(home)/SRC
TESTdir       = $(home)/TESTING
PBLASTSTdir   = $(TESTINGdir)
TOOLSdir      = $(home)/TOOLS
REDISTdir     = $(home)/REDIST
REDISTTSTdir  = $(TESTINGdir)

F77           = /home1/zh/soft/openmpi-1.3-intel/bin/mpif77
CC            = /home1/zh/soft/openmpi-1.3-intel/bin/mpicc
NOOPT         =
F77FLAGS      =  $(NOOPT) -O3
CCFLAGS       = -O3
SRCFLAG       =
F77LOADER     = $(F77)
CCLOADER      = $(F77)
F77LOADFLAGS  =
CCLOADFLAGS   =  -nofor_main

CDEFS         = -DNO_IEEE $(USEMPI) -DAdd_

ARCH          = ar
ARCHFLAGS     = cr
RANLIB        = /usr/bin/ranlib

SCALAPACKLIB  = $(home)/libscalapack.a
BLASLIB       = /home1/zh/soft/scalapack-intel/lib/librefblas.a
LAPACKLIB     = /home1/zh/soft/scalapack-intel/lib/libreflapack.a

PBLIBS        = $(SCALAPACKLIB) $(FBLACSLIB) $(LAPACKLIB) $(BLASLIB) $(SMPLIB)
PRLIBS        = $(SCALAPACKLIB) $(CBLACSLIB) $(SMPLIB)
RLIBS         = $(SCALAPACKLIB) $(FBLACSLIB) $(CBLACSLIB) $(LAPACKLIB) $(BLASLIB) $(SMPLIB)
LIBS          = $(PBLIBS)

--------
make
将编译得到的libscalapack.a放到/home1/zh/soft/scalapack-intel/lib

再一次说明:根据自己的mpif90, mpicc, mpif77所放的位置,以及scalapack suite所放的位置,自行进行调整。
5楼2010-06-11 09:54:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

大地飞鹰h

新虫 (初入文坛)

是啊,并行时数据库和siesta都用mpif90编译,通过的话make transiesta就不会出现这个问题。这里让人头痛的是lapack编译时报错
*** Error:  Time for operations was zero
Including SECOND, time        =   0.00     seconds
Average time for SECOND       =   0.00     milliseconds
Time for 1,000,000 DAXPY ops  =   0.00     seconds
*** Error:  Time for operations was zero
这样的错误有时多试几次也能通过编译,但是transiesta计算时就会出问题
siesta: WARNING: Qtot, Tr[D*S] =     156.000000      63.523758
siesta:  195************** 96503554.1989 96503554.1989143.4410********
   
怀疑是不是机器设置上某个环节出问题了。
6楼2010-06-11 09:55:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

大地飞鹰h

新虫 (初入文坛)

引用回帖:
Originally posted by valenhou001 at 2010-06-11 09:54:56:
下面贴出我用ifort,以及scalapck suite 0.96 编译SIESTA3.0的arch.make(重要的部分),以供参考。参考时,针对自己的scalapack所放的位置自行进行调整。

里面最重要的是,去编译scalapack suite 0.96。我的例子 ...

多谢呀,多一种方法,又多种希望。
7楼2010-06-11 10:13:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

163.com

金虫 (著名写手)

实习版主

★ ★
大地飞鹰h(金币+3):谢谢参与
zzy870720z(金币+1):谢谢交流 2010-06-20 13:21:31
mpi问题,多调几次就知道其中源路了
阿什顿联
8楼2010-06-13 00:17:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhangguangping

木虫 (著名写手)

★ ★
大地飞鹰h(金币+3):谢谢参与
zzy870720z(金币+1):谢谢指导 2010-06-20 13:21:41
大地飞鹰h(金币+2): 2010-06-20 20:54:53
引用回帖:
Originally posted by 大地飞鹰h at 2010-06-10 13:59:19:
首先现安装串行,ifort 10, mkl 10,
装siesta,make通过,
make clean , make transiesta,出现
   m_forces.o m_stress.o m_eo.o m_spin.o m_gamma.o m_hsx.o m_fire.o get_target_stress.o fire_optim.o  ...

既然已经选择mkl了为什么还要自己编译lapack?直接用mkl自带的就可以了。另外你先不要用mpich2版本,使用mpich或者openmpi试试。这两个比较好调试一些!安装mpi的时候要用你安装的ifort编译。然后用编译出来的mpi去编译siesta。应该没什么问题的!
弘德明志博学笃行
9楼2010-06-19 22:18:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

大地飞鹰h

新虫 (初入文坛)

引用回帖:
Originally posted by zhangguangping at 2010-06-19 22:18:19:

既然已经选择mkl了为什么还要自己编译lapack?直接用mkl自带的就可以了。另外你先不要用mpich2版本,使用mpich或者openmpi试试。这两个比较好调试一些!安装mpi的时候要用你安装的ifort编译。然后用编译出来的mp ...

我用mkl时也出错。
m_rmaxh.o m_forces.o m_stress.o m_eo.o m_spin.o m_gamma.o m_hsx.o m_fire.o get_target_stress.o fire_optim.o zm_fire_optim.o cell_fire_optim.o m_fire_para.o m_fire_mixing.o write_raw_efs.o m_iodm.o m_sparse.o kpoint_pdos.o  nag.o pxf.o m_ts_options.o m_ts_aux_rout.o m_ts_kpoints.o m_ts_io.o m_ts_scattering.o m_ts_contour.o m_ts_electrode.o m_ts_in_siesta.o libfdf.a \
                 \
               dc_lapack.a liblapack.a libblas.a  `FoX/FoX-config --libs --wcml`   /home/hu/intel/mkl/10.2.4.032/lib/em64t -lmkl_sequential -lmkl_core /home/hu/intel/mkl/10.2.4.032/lib/em64t -lmkl_solver_lp64 -lmkl_intel_lp64 -lguide
IPO Error /home/hu/intel/mkl/10.2.4.032/lib/em64t: file not recognized: Is a directory
ifort: error: problem during multi-file optimization compilation (code 1)
make: *** [transiesta] 错误 1
[hu@node02 Obj]$

我的系统是Centos5.4,后改用red hat enterprise 5.0 用它自带的gfortan,编译并行通过了,不过就是不能两台机器或更多的并起来。用的mpich2
10楼2010-06-20 20:31:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 大地飞鹰h 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见