24小时热门版块排行榜    

CyRhmU.jpeg
查看: 3093  |  回复: 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的回帖

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的回帖

acridine

木虫 (正式写手)


★ ★
sunyang1988(金币+2): 谢谢指点 2011-04-09 09:47:38
mayim2008(金币+5): 谢谢啊~~ 2011-04-11 18:44:00
这个是提示你编译器命令不对。
我印象中你前一个贴提到过编译器安装成功之后是用ifort命令测试的吧,可能我记差了,总之这里应该是你的编译器命令,如果编译器安装测试成功了是不会提示Command not found的

另外这些数据库名称我只是复制的你贴的内容,不是说正确的名字就是这些。
比如BLACS_LIBS= 对应的是Blacs库,真实的名字中肯定会含有blacs的,但具体的名字肯定千奇百怪的,比如楼上兄弟用的em64t -lmkl_blacs_openmpi_lp64大概是表示: 64位机器,openmpi并行编译的mkl中的blacs库,你的文件名是什么还是需要自己找一下的。
5楼2011-04-09 01:04:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

acridine

木虫 (正式写手)


★ ★
mayim2008(金币+5): 太感谢了~~ 2011-04-11 22:26:57
zzy870720z(金币+2): 谢谢指教 2011-04-12 08:41:06
应该是没错, 那么你在设置环境变量之后有没有测试过ifort命令呢?在终端输入ifort命令试验一下
一般出现 ifort: Command not found
表示系统不识别ifort是什么意思,表示编译器安装或环境变量设置有误。
如果设置正确,系统见到ifort会启动fortran编译器去编译接下来的内容,由于只输入了ifort,提示会是
Command line error: no files specified; for help type "ifort -help"
这和Command not found 是完全不同的
7楼2011-04-11 20:20:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

acridine

木虫 (正式写手)



zzy870720z(金币+1): 谢谢指点 2011-04-13 22:48:30
mayim2008(金币+5): 非常感谢~~ 2011-04-14 19:38:44
现在的提示是正常的了,是说找不到文件
File not found '/home/juan/intel/mkl/lib/ia32/libguide.a"

google了一下libguide.a,第一条结果就是说
libguide has been deprecated and removed from our earlier versions itself.  Now, you have to link with libiomp library which conforms to the latest OpenMP standard.   Please refer the MKL userguide for more detals.
似乎新版本里 libguide 被替换成了libiomp

你找找看有没有类似 libiomp.a 的文件
10楼2011-04-13 22:38:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

acridine

木虫 (正式写手)


★ ★
zzy870720z(金币+2): 谢谢指点 2011-04-15 00:00:47
嘿嘿,没有关系
虽然错误多,但是原因比较简单,就是库没有链接好,导致找不到这个库的函数,所以fortran在编译到siesta代码中引用到库中函数的部分时,就会提示undefined reference,看上去比较壮观,但把库设置好后就都会消失的。
你这个库的设置确实比较麻烦,因为你的mkl版本特别新,而你siesta提供的make文件好像是针对特别旧版本mkl的,所以差别可能比较大
另外仔细看了下你给出的这个arch.make,感觉里面有的地方挺奇怪的,比如红字的SIESTA_ARCH=intel-mkl 怎么跑到说明部分去了?虽然不影响编译~但说明你这个文件不是官方提供的,或是被别人修改过,那么也不要过于信任它了。找找看有没有官方提供的使用新版本mkl的make文件
(3楼提供的10.0版本应该比较接近,可惜是并行+64位,你可以对比一下)
12楼2011-04-14 23:44:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

acridine

木虫 (正式写手)



小木虫(金币+0.5):给个红包,谢谢回帖
这个可能是ifort11和siesta存在不兼容的问题及解决方法。和你的找不到库函数还是不同的。
看了下siesta主页上的说明,它不是有自动configure嘛?你可以使用这个功能自动找一下函数库

执行软件目录中的Src/configure,应该可以自动搜索系统已经安装的编译器和数学库,并生成个make文件。可能会比你自己找起来容易些。
不过之后你可能会遇到这个不兼容的问题,具体是怎么回事,我没有用过,也就不了解了。
15楼2011-04-26 17:30:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 mayim2008 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见