24小时热门版块排行榜    

CyRhmU.jpeg
查看: 3053  |  回复: 17
本帖产生 1 个 1ST强帖 ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

mayim2008

金虫 (正式写手)


[交流] 【求助】安装siesta2.0.2时如何编译arch.make??

汗,又遇到问题了,特请善良的好心的虫虫指点~~~~
前面编译MKL 和ifort都成功了
后来又安装了openmpi,可是,如果我不做并行计算,这个MPI不安装也行吧,安装了也没坏处吧?
俺是菜鸟啊,大侠们多多体谅啊~~
安装SIESTA2.0.2时,我的命令是这样的;
先 tar -zxvf siesta-2.0.2.tgz 解压缩
然后cd Src
然后cp  Sys/intel-mkl.make   arch.make  就是把Sys的intel-mkl.make文件拷贝到Src下,然后改名为arch.make吧
之后,是不是要修改arch.make呢
命令是vi  arch.make么?这个命令不太符合XP下的编辑习惯,有没有适合XP编辑下的命令呢??
然后,编译arch.make文件后,是不是输入$make就可以了?

下面是我的原始arch.make文件,没有做任何修改的
我应该改哪些参数呢?
我看了别人编译的一些例子,用红字标记的应该是要改的吧,怎么改呢?还有,貌似我的arch.make好像不完善啊?
求高人指点,小女子感激不尽!


我的系统是ubantu9.04
MKL是10.3.2.137
ifort是2011.2.137
openmpi是1.4.2
------------------------------------------
#
# This file is part of the SIESTA package.
#
# Copyright (c) Fundacion General Universidad Autonoma de Madrid:
# E.Artacho, J.Gale, A.Garcia, J.Junquera, P.Ordejon, D.Sanchez-Portal
# and J.M.Soler, 1996-2006.
#
# Use of this software constitutes agreement with the full conditions
# given in the SIESTA license, as signed by all legitimate users.
#
SIESTA_ARCH=intel-mkl#
# Intel fortran compiler for linux with mkl optimized blas and lapack
#
# Be sure to experiment with different optimization options.
# You have quite a number of combinations to try...
#
FC=ifc
#
FFLAGS= -w -mp -tpp5 -O3
FFLAGS_DEBUG= -g
LDFLAGS=-Vaxlib
COMP_LIBS=
RANLIB=echo
#
NETCDF_LIBS=
NETCDF_INTERFACE=
DEFS_CDF=
#
MPI_INTERFACE=
MPI_INCLUDE=
DEFS_MPI=
#
GUIDE=/opt/intel/mkl/lib/32/libguide.a
LAPACK=/opt/intel/mkl/lib/32/libmkl_lapack.a
BLAS=/opt/intel/mkl/lib/32/libmkl_p3.a
#G2C=/usr/lib/gcc-lib/i386-redhat-linux/2.96/libg2c.a
LIBS=$(LAPACK) $(BLAS) $(G2C) $(GUIDE)  -lpthread
SYS=bsd
DEFS= $(DEFS_CDF) $(DEFS_MPI)
#
.F.o:
        $(FC) -c $(FFLAGS) $(INCFLAGS)  $(DEFS) $<
.f.o:
        $(FC) -c $(FFLAGS) $(INCFLAGS)   $<
.F90.o:
        $(FC) -c $(FFLAGS) $(INCFLAGS)  $(DEFS) $<
.f90.o:
        $(FC) -c $(FFLAGS) $(INCFLAGS)   $<
#

[ Last edited by mayim2008 on 2011-4-6 at 22:01 ]
回复此楼

» 猜你喜欢

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

» 抢金币啦!回帖就可以得到:

查看全部散金贴

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

mayim2008

金虫 (正式写手)


引用回帖:
Originally posted by acridine at 2011-04-13 22:38:18:
现在的提示是正常的了,是说找不到文件
File not found '/home/juan/intel/mkl/lib/ia32/libguide.a"

google了一下libguide.a,第一条结果就是说
libguide has been deprecated and removed from our  ...

你好,我今天去看了,并没有libiomp文件啊
然后,我删除了GUIDE=、增加了BLACS=*****,SCALAPACK=*****
先make clean 后,再make,出现了:

ifort: command line remark #10010: option '-Vaxlib' is deprecated and will be removed in a future release. See '-help deprecated'
chkgmx.o: In function `chkgmx_':
chkgmx.f:(.text+0x2f5): undefined reference to `ddot_'
chkgmx.f:(.text+0x325): undefined reference to `ddot_'
denmat.o: In function `denmat_':
denmat.F:(.text+0x1b19): undefined reference to `dscal_'
denmat.F:(.text+0x1b30): undefined reference to `dscal_'
dhscf.o: In function `dhscf_':
dhscf.F:(.text+0x14e1): undefined reference to `ddot_'
dhscf.F:(.text+0x150c): undefined reference to `ddot_'
dhscf.F:(.text+0x158d): undefined reference to `ddot_'
dhscf.F:(.text+0x15b8): undefined reference to `ddot_'
dhscf.F:(.text+0x3d98): undefined reference to `ddot_'
dhscf.o:dhscf.F:(.text+0x3e12): more undefined references to `ddot_' follow
diagg.o: In function `diagg_':
diagg.F:(.text+0x8a2): undefined reference to `dcopy_'
efield.o: In function `efield_':
efield.F:(.text+0x10a): undefined reference to `ddot_'
efield.F:(.text+0x142): undefined reference to `ddot_'
efield.F:(.text+0x18c): undefined reference to `ddot_'
efield.F:(.text+0x1bf): undefined reference to `ddot_'
efield.F:(.text+0x24e): undefined reference to `ddot_'
efield.o:efield.F:(.text+0x286): more undefined references to `ddot_' follow
inver.o: In function `inver_':
inver.f:(.text+0x132): undefined reference to `dgetrf_'
inver.f:(.text+0x17d): undefined reference to `dgetri_'
ksv.o: In function `ksv_pol_':
ksv.f:(.text+0xfe1): undefined reference to `ddot_'
ksv.f:(.text+0x1240): undefined reference to `ddot_'
ksv.f:(.text+0x12af): undefined reference to `ddot_'
ksv.f:(.text+0x23b9): undefined reference to `ddot_'
linpack.o: In function `zgedi_':
linpack.F:(.text+0x115): undefined reference to `zscal_'
linpack.F:(.text+0x182): undefined reference to `zaxpy_'
linpack.F:(.text+0x4d9): undefined reference to `zaxpy_'
linpack.F:(.text+0x524): undefined reference to `zswap_'
linpack.o: In function `zgefa_':
linpack.F:(.text+0x89a): undefined reference to `zscal_'
linpack.F:(.text+0x961): undefined reference to `zaxpy_'
minvec.o: In function `m_minvec_mp_minvec_':
minvec.f:(.text+0xa4): undefined reference to `ddot_'
minvec.f:(.text+0xed): undefined reference to `ddot_'
minvec.f:(.text+0x136): undefined reference to `ddot_'
minvec.f:(.text+0x386): undefined reference to `ddot_'
minvec.f:(.text+0x5a0): undefined reference to `ddot_'
ranger.o:ranger.f:(.text+0x1365): more undefined references to `ddot_' follow
cdiag.o: In function `cdiag_':
cdiag.F:(.text+0x3df): undefined reference to `ilaenv_'
cdiag.F:(.text+0x42f): undefined reference to `ilaenv_'
cdiag.F:(.text+0x714): undefined reference to `zhegvx_'
cdiag.F:(.text+0x89c): undefined reference to `zpotrf_'
cdiag.F:(.text+0x949): undefined reference to `zhegst_'
cdiag.F:(.text+0xae3): undefined reference to `zheevx_'
cdiag.F:(.text+0xcd9): undefined reference to `zcopy_'
cdiag.F:(.text+0xd7a): undefined reference to `ztrsm_'
cdiag.F:(.text+0x126f): undefined reference to `zhegv_'
cdiag.F:(.text+0x16aa): undefined reference to `zcopy_'
cdiag.F:(.text+0x17c9): undefined reference to `zhemm_'
cdiag.F:(.text+0x189c): undefined reference to `zgemm_'
cdiag.F:(.text+0x3f48): undefined reference to `zgemm_'
cdiag.F:(.text+0x3f99): undefined reference to `zcopy_'
rdiag.o: In function `rdiag_':
rdiag.F:(.text+0x3b2): undefined reference to `ilaenv_'
rdiag.F:(.text+0x5ff): undefined reference to `dsygvx_'
rdiag.F:(.text+0x768): undefined reference to `dpotrf_'
rdiag.F:(.text+0x813): undefined reference to `dsygst_'
rdiag.F:(.text+0x1474): undefined reference to `dsyevx_'
rdiag.F:(.text+0x1afe): undefined reference to `dcopy_'
rdiag.F:(.text+0x1b9c): undefined reference to `dtrsm_'
rdiag.F:(.text+0x1eb4): undefined reference to `dsygv_'
rdiag.F:(.text+0x20dd): undefined reference to `dcopy_'
rdiag.F:(.text+0x24e6): undefined reference to `dsymm_'
rdiag.F:(.text+0x2ad0): undefined reference to `dgemm_'
rdiag.F:(.text+0x34d1): undefined reference to `dgemm_'
rdiag.F:(.text+0x3727): undefined reference to `dcopy_'
dsyevds.o: In function `dsyevds_':
dsyevds.f:(.text+0x3f): undefined reference to `lsame_'
dsyevds.f:(.text+0x59): undefined reference to `lsame_'
dsyevds.f:(.text+0xda): undefined reference to `lsame_'
dsyevds.f:(.text+0x114): undefined reference to `lsame_'
dsyevds.f:(.text+0x25e): undefined reference to `dlamch_'
dsyevds.f:(.text+0x279): undefined reference to `dlamch_'
dsyevds.f:(.text+0x2ef): undefined reference to `dlansy_'
dsyevds.f:(.text+0x36a): undefined reference to `dlascl_'
dsyevds.f:(.text+0x3e2): undefined reference to `dsytrd_'
dsyevds.f:(.text+0x442): undefined reference to `dsterf_'
dsyevds.f:(.text+0x49d): undefined reference to `dstedc_'
dsyevds.f:(.text+0x4f8): undefined reference to `dormtr_'
dsyevds.f:(.text+0x53e): undefined reference to `dscal_'
dsyevds.f:(.text+0x589): undefined reference to `xerbla_'
zheevds.o: In function `zheevds_':
zheevds.f:(.text+0x3b): undefined reference to `lsame_'
zheevds.f:(.text+0x55): undefined reference to `lsame_'
zheevds.f:(.text+0x105): undefined reference to `lsame_'
zheevds.f:(.text+0x13f): undefined reference to `lsame_'
zheevds.f:(.text+0x2ea): undefined reference to `dlamch_'
zheevds.f:(.text+0x305): undefined reference to `dlamch_'
zheevds.f:(.text+0x37b): undefined reference to `zlanhe_'
zheevds.f:(.text+0x3f6): undefined reference to `zlascl_'
zheevds.f:(.text+0x488): undefined reference to `zhetrd_'
zheevds.f:(.text+0x4f9): undefined reference to `dsterf_'
zheevds.f:(.text+0x572): undefined reference to `zstedc_'
zheevds.f:(.text+0x5c7): undefined reference to `zunmtr_'
zheevds.f:(.text+0x671): undefined reference to `xerbla_'
zheevds.f:(.text+0x6c1): undefined reference to `dscal_'
spher_harm.o: In function `spher_harm_mp_ylmexp_':
spher_harm.f:(.text+0x1fd1): undefined reference to `ddot_'
m_broyddj.o: In function `m_broyddj_mp_dlinds_.':
m_broyddj.f90:(.text+0x6f2a): undefined reference to `dgetrf_'
m_broyddj.f90:(.text+0x6ff7): undefined reference to `dgetri_'
mneighb.o: In function `neighbour_mp_mranger_.':
mneighb.f:(.text+0x17a2): undefined reference to `ddot_'
mneighb.f:(.text+0x1d1a): undefined reference to `ddot_'
mneighb.f:(.text+0x2da8): undefined reference to `ddot_'
mneighb.f:(.text+0x3f83): undefined reference to `ddot_'
conjgr.o: In function `m_conjgr_mp_conjgr_':
conjgr.f:(.text+0x1e9): undefined reference to `ddot_'
conjgr.o:conjgr.f:(.text+0x21b): more undefined references to `ddot_' follow
m_broyddj_nocomm.o: In function `m_broyddj_nocomm_mp_dlinds_.':
m_broyddj_nocomm.f90:(.text+0x6fea): undefined reference to `dgetrf_'
m_broyddj_nocomm.f90:(.text+0x70b7): undefined reference to `dgetri_'
make: *** [siesta] Error 1

我都快崩溃了。。。。。
想必大侠被我问得也郁闷了,对不起~~~~
11楼2011-04-14 19:42:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 18 个回答

acridine

木虫 (正式写手)


★ ★ ★
zzy870720z(金币+3, 1ST强帖+1): 谢谢详细指点 2011-04-06 23:42:17
mayim2008(金币+5): 太感谢了~~~ 2011-04-07 18:15:16
我没有安装过siesta,不了解有什么特别注意的地方,说下我知道的
首先,用不惯vi 你可以使用 gedit arch.make  来编辑它

至于文件中需要修改的地方
GUIDE=/opt/intel/mkl/lib/32/libguide.a
LAPACK=/opt/intel/mkl/lib/32/libmkl_lapack.a
BLAS=/opt/intel/mkl/lib/32/libmkl_p3.a
这些是数学库的路径,应该设置成你系统的情况,也就是说找到libmkl_p3.a,libmkl_lapack.a,libguide.a 在哪,把正确的路径添加到这里。
另外FC=ifc 这个是你的fortran编译器命令,现在intel的命令应该是ifort吧
MPI_... 相关行的是设置并行的,如果你不打算并行计算可以忽略

你可以试着执行下编译,看有什么提示
编译的命令应该是make,不过也可能需要加入选项,比如make -all之类的。你可以看下程序的主文件夹下有没有Readme,或者打开Makefile文件看文件最开始有没有相关的提示
2楼2011-04-06 23:15:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
★ ★ ★
zzy870720z(金币+3): 谢谢分享,呵呵 2011-04-07 16:18:39
mayim2008(金币+5): 谢谢啊~~ 2011-04-07 18:15:38
引用回帖:
Originally posted by mayim2008 at 2011-04-06 14:57:16:
汗,又遇到问题了,特请善良的好心的虫虫指点~~~~
前面编译MKL 和ifort都成功了
后来又安装了openmpi,可是,如果我不做并行计算,这个MPI不安装也行吧,安装了也没坏处吧?
俺是菜鸟啊,大侠们多多体谅啊~~
...

我也是用的mkl编译的。只不过我用的是64位的,当然也有对应的32位的。可以类比一下。
#
# This file is part of the SIESTA package.
#
# Copyright (c) Fundacion General Universidad Autonoma de Madrid:
# E.Artacho, J.Gale, A.Garcia, J.Junquera, P.Ordejon, D.Sanchez-Portal
# and J.M.Soler, 1996- .
#
# Use of this software constitutes agreement with the full conditions
# given in the SIESTA license, as signed by all legitimate users.
#
.SUFFIXES:
.SUFFIXES: .f .F .o .a .f90 .F90

SIESTA_ARCH=x86_64-REHL-5.4

FPP=
FPP_OUTPUT=
FC=mpif90
RANLIB=ranlib

SYS=nag

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

FFLAGS= -O2 -i-static
FFLAGS_DEBUG= -g
LDFLAGS=-Vaxlib
FPPFLAGS= -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DMPI

ARFLAGS_EXTRA=

FCFLAGS_fixed_f=
FCFLAGS_free_f90=
FPPFLAGS_fixed_F=
FPPFLAGS_free_F90=

BLAS_LIBS=-L/home/zhanggp/intel/mkl/10.0.2.018/lib/em64t -lmkl_solver_lp64 -lmkl_intel_lp64 -lguide
LAPACK_LIBS=-L/home/zhanggp/intel/mkl/10.0.2.018/lib/em64t -lmkl_sequential -lmkl_core
BLACS_LIBS=-L/home/zhanggp/intel/mkl/10.0.2.018/lib/em64t -lmkl_blacs_openmpi_lp64
SCALAPACK_LIBS=-L/home/zhanggp/intel/mkl/10.0.2.018/lib/em64t -lmkl_scalapack_lp64

COMP_LIBS=

NETCDF_LIBS=
NETCDF_INTERFACE=

LIBS=$(SCALAPACK_LIBS) $(BLACS_LIBS) $(LAPACK_LIBS) $(BLAS_LIBS) $(NETCDF_LIBS)

#SIESTA needs an F90 interface to MPI
#This will give you SIESTA's own implementation
#If your compiler vendor offers an alternative, you may change
#to it here.
MPI_INTERFACE= libmpi_f90.a
MPI_INCLUDE=/home/zhanggp/software/openmpi-1.2.6/include

#Dependency rules are created by autoconf according to whether
#discrete preprocessing is necessary or not.
.F.o:
        $(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_fixed_F)  $<
.F90.o:
        $(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_free_F90) $<
.f.o:
        $(FC) -c $(FFLAGS) $(INCFLAGS) $(FCFLAGS_fixed_f)  $<
.f90.o:
        $(FC) -c $(FFLAGS) $(INCFLAGS) $(FCFLAGS_free_f90)  $<
3楼2011-04-07 15:18:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mayim2008

金虫 (正式写手)


引用回帖:
Originally posted by acridine at 2011-04-06 23:15:47:
我没有安装过siesta,不了解有什么特别注意的地方,说下我知道的
首先,用不惯vi 你可以使用 gedit arch.make  来编辑它

至于文件中需要修改的地方
GUIDE=/opt/intel/mkl/lib/32/libguide.a
LAPACK=/opt/in ...

你好,今天去编译了一下,修改了如下参数,
FC=ifort
LAPACK=/home/juan/intel/mkl/lib/ia32/libmkl_lapack.a
另,没有libmkl_p3.a这个文件啊,只有libmkl_p4.so文件
也找不到libguide.a文件

make后
出现了:
Compilation architecture to be used: intel-mkl
If this is not what you want, create the right
arch.make file using the models in Sys

Hit ^C to abort...

==> Incorporating information about present compilation (compiler and flags)
make[1]: Entering directory `/home/syzx/TEM/siesta-2.0.2/Src'
ifort -c -w -mp -tpp5 -O3     compinfo.F90
make[1]: ifort: Command not found
make[1]: *** [compinfo.o] Error 127
make[1]: Leaving directory `/home/syzx/TEM/siesta-2.0.2/Src'
make: *** [version] Error 2
----------------------------------------------
4楼2011-04-08 22:07:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见