| 查看: 3051 | 回复: 17 | |||
| 本帖产生 1 个 1ST强帖 ,点击这里进行查看 | |||
[交流]
【求助】安装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=bsdDEFS= $(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 ] |
» 猜你喜欢
Bioresource Technology期刊,第一次返修的时候被退回好几次了
已经有6人回复
2025冷门绝学什么时候出结果
已经有4人回复
真诚求助:手里的省社科项目结项要求主持人一篇中文核心,有什么渠道能发核心吗
已经有8人回复
寻求一种能扛住强氧化性腐蚀性的容器密封件
已经有5人回复
论文投稿,期刊推荐
已经有6人回复
请问哪里可以有青B申请的本子可以借鉴一下。
已经有4人回复
孩子确诊有中度注意力缺陷
已经有14人回复
请问下大家为什么这个铃木偶联几乎不反应呢
已经有5人回复
请问有评职称,把科研教学业绩算分排序的高校吗
已经有5人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
» 本主题相关价值贴推荐,对您同样有帮助:
ubuntu下载下来提示安装后什么都没安装就可以启动,感觉奇怪啊。。。
已经有21人回复
I make some change about myself
已经有12人回复
用CTEX编辑论文,可是编译老过不去
已经有3人回复
求助vasp编译好后无法运行问题??
已经有24人回复
Siesta3.1编译出错:ld: cannot find -libmkl_scalapack_lp64
已经有3人回复
求助-如何得到羟基自由基(.OH)、单线态氧分子(1O2)、超氧负离子(O2-)
已经有6人回复
如何采用循环伏安法算锂离子的扩散速率
已经有6人回复
siesta-3.1编译成功,但有几个问题求助
已经有7人回复
申请减免版而费不成功如何处理?
已经有7人回复
vasp5.2 并行编译如何修改makefile
已经有5人回复
【分享】openmpi-intelmkl-siesta3.0 并行安装--两种方式---原创
已经有5人回复
【求助】Siesta安装报错
已经有3人回复
【求助】siesta2.0.2 安装有些警告
已经有4人回复
» 抢金币啦!回帖就可以得到:
双一流大学湘潭大学“化工过程模拟与强化”国家地方联合工程研究中心招收各类博士生
+1/86
双一流大学-湘潭大学“电化学能源储存与转换”湖南省重点实验室招生电池方向博士生
+1/76
Call for papers,征稿
+1/57
南京理工大学优青课题组招收2026年博士1名(电催化方向)
+2/46
南昌大学药学博士招生
+1/40
国家青年人才叶立群教授课题组招收2026级博士研究生
+1/31
长春理工大学和西安工业大学主动光电探测成像技术重点实验室招收博士生
+1/23
华北电力大学(北京)(第一性原理计算)博士招生——学博,专博各1人
+2/18
澳门科技大学2026年数学博士招生——计算物理与数学课题组: 相场与计算流体动力学
+1/12
招若干有分子生物,细胞培养,动物实验背景的人员(中山大学)
+1/9
海南大学国家高层次人才团队2026年博士招生
+1/7
浙江大学-化工学院刘平伟课题组-二维材料/功能聚合物开发
+1/6
山东大学集成电路学院博士招生
+1/5
大连工业杰青、长江团队-生物质材料方向招收2026级博士生
+1/5
想替换掉环状DNA中心通道中的金属离子 如何替换才是正确操作
+1/4
三峡集团科研院海上风电研究项目实习生招聘公告
+1/2
东莞理工学院-大连化物所联合招聘光催化方向博士后2名(年薪48W)
+1/2
招收2026年秋季入学博士生1名(北京科技大学 力学超材料/机器学习/增材制造相关方向)
+1/2
中国科学技术大学 精准智能化学重点实验室 武建昌课题组招聘博士,博士后
+1/1
兰州大学物理学院韩卫华教授课题组招收 2026年博士研究生 (物理、电子以及核能源方向)
+1/1
★ ★ ★
zzy870720z(金币+3, 1ST强帖+1): 谢谢详细指点 2011-04-06 23:42:17
mayim2008(金币+5): 太感谢了~~~ 2011-04-07 18:15:16
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
★ ★ ★
zzy870720z(金币+3): 谢谢分享,呵呵 2011-04-07 16:18:39
mayim2008(金币+5): 谢谢啊~~ 2011-04-07 18:15:38
zzy870720z(金币+3): 谢谢分享,呵呵 2011-04-07 16:18:39
mayim2008(金币+5): 谢谢啊~~ 2011-04-07 18:15:38
|
我也是用的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
|
你好,今天去编译了一下,修改了如下参数, 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
★ ★
sunyang1988(金币+2): 谢谢指点 2011-04-09 09:47:38
mayim2008(金币+5): 谢谢啊~~ 2011-04-11 18:44:00
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
6楼2011-04-11 18:52:34
★ ★
mayim2008(金币+5): 太感谢了~~ 2011-04-11 22:26:57
zzy870720z(金币+2): 谢谢指教 2011-04-12 08:41:06
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
8楼2011-04-11 22:27:46
|
你好,我今天去测试了 ifort编译是成功的,出现了Command line error: no files specified; for help type "ifort -help" 然后,我又修改了: BLAS=/home/juan/intel/mkl/lib/ia32/libmkl_blas95.a GUIDE文件名始终找不到,不知道为什么 MAKE之后出现: ifort:command line remark #10010 : option" -Vaxlib" is deprecated and will beremoved in a future release. see "-help deprecated" ifort:error #10236:File not found '/home/juan/intel/mkl/lib/ia32/libguide.a" make: ***[siesta] error 1 怎么回事呢? GUIDE文件名就是没看到啊 |
9楼2011-04-13 21:11:12
★
zzy870720z(金币+1): 谢谢指点 2011-04-13 22:48:30
mayim2008(金币+5): 非常感谢~~ 2011-04-14 19:38:44
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
|
你好,我今天去看了,并没有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
★ ★
zzy870720z(金币+2): 谢谢指点 2011-04-15 00:00:47
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
13楼2011-04-24 21:32:31
|
guohuazhong 在这个帖子回复说: http://muchong.com/bbs/viewthread.php?tid=3076767&fpage=1 一)如果你坚持要用intel ifort 11来进行编译。可以采取如下方式(siesta网站主页上的方法,见http://www.icmab.es/siesta/) 在生成的arch.make文件中新加入 DUMMY_FOX= --enable-dummy FFLAGS_DEBUG= -g -O2 而后在Obj文件夹中的makefile文件修改第148-153行,将这几行写成如下形式 $(FoX_configured): (cd FoX; touch arch.make ; \ CONFIGURE="$(VPATH)/FoX/configure"; \ $$CONFIGURE VPATH="$(VPATH)/FoX" \ FC="$(FC_SERIAL)" FCFLAGS="$(FFLAGS_DEBUG)" \ --enable-wcml $(DUMMY_FOX) || false ) 注意(cd FoX; touch arch.make ; \这一行前是一个Tab空格,而不是一个space空格 将这两个地方修改好后, make clen make 之后生成的siesta可执行文件并行计算不会出现问题。但要注意的是,arch.make文件中的优化级别是FFLAGS=-g -O2或FFLAGS=-g -O1或FFLAGS=-g -O0,不能是FFLAGS=-g -O3,我试了一下FFLAGS=-g -O3,发现计算过程中出现下面的错误 SPLIT: Orbitals with angular momentum L= 0 SPLIT: Basis orbitals for state 4s izeta = 1 lambda = 1.000000 rc = 6.000769 energy = -0.359899 kinetic = 0.368794 potential(screened) = -0.728693 potential(ionic) = -6.200046 WARNING: Minimum split_norm parameter: 0.52689. Will not be able to generate orbital with split_norm = 0.15000 See manual for new split options ERROR STOP from Node: 0 当改用FFLAGS=-g -O2和FFLAGS=-g -O0或FFLAGS=-g -O1之后则没用出现类似的错误提示,具体原因我就没去深究了。当然不同的优化级别在计算时间上会有一些差异。 比如用FFLAGS=-g -O2时,运行时间如下(用的Fe.fdf例子) * Running on 8 nodes in parallel >> Start of run: 6-DEC-2010 17:19:33 >> End of run: 6-DEC-2010 17:27:54 当改用FFLAGS=-g -O0时,运行时间如下(用的Fe.fdf例子) * Running on 8 nodes in parallel >> Start of run: 6-DEC-2010 16:48:25 >> End of run: 6-DEC-2010 16:58:58 (二)如果你不使用ifort11编译器,而是使用ifort10或以下的版本,建议配合使用openmpi来进行并行计算。 1)安装openmpi,详细步骤不说了,只是在configure的时候我使用的是如下的命令: ./configure --prefix=要安装的目录 F77=ifort FC=ifort FCFLAGS=-em64t FFLAGS=-em64t FCFLAGS和FFLAGS是告诉编译器用的是64位的编译器,如果机器不是64位的就不用了。 make make install 安装完成后还得添加环境变量,至于怎么添加,网上很多,搜索一下就知道了。 2)编译siesta 步骤就写了,大家都知道。下面是我的arch.make文件 # # 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-unknown-linux-gnu--unknown FPP= FPP_OUTPUT= FC=mpif90 RANLIB=ranlib SYS=nag SP_KIND=4 DP_KIND=8 KINDS=$(SP_KIND) $(DP_KIND) FFLAGS=-g -O2 #-i-static FPPFLAGS= -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DMPI LDFLAGS= FFLAGS_DEBUG= -g -O2 # whatever options you might need,guohuazhong DUMMY_FOX= --enable-dummy # whatever options you might need,guohuazhong ARFLAGS_EXTRA= FCFLAGS_fixed_f= FCFLAGS_free_f90= FPPFLAGS_fixed_F= FPPFLAGS_free_F90= BLAS_LIBS=-L/public/software/intel/Compiler/11.1/059/mkl/lib/em64t -lmkl_intel_lp64 -lmkl_sequential -lmkl_lapack -lmkl_core -lguide -pthread LAPACK_LIBS=-L/public/software/intel/Compiler/11.1/059/mkl/lib/em64t -lmkl_sequential -lmkl_core -pthread BLACS_LIBS=-L/public/software/intel/Compiler/11.1/059/mkl/lib/em64t -lmkl_blacs_openmpi_lp64 -pthread SCALAPACK_LIBS=-L/public/software/intel/Compiler/11.1/059/mkl/lib/em64t -lmkl_scalapack_lp64 -pthread COMP_LIBS= COMP_LIBS=dc_lapack.a liblapack.a libblas.a ######guohuazhong screened 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=/public/software/mpi/openmpi1.4.2-intel/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) $< --------------------------- 是不是因为我是用ifort11编译的,所以库的设置才不正确? 我看他的回帖,在生成的arch.make文件中新加入 DUMMY_FOX= --enable-dummy FFLAGS_DEBUG= -g -O2 然后还是出现前面类似的错误 而且,他说的: 后在Obj文件夹中的makefile文件修改第148-153行,将这几行写成如下形式 $(FoX_configured): (cd FoX; touch arch.make ; \ CONFIGURE="$(VPATH)/FoX/configure"; \ $$CONFIGURE VPATH="$(VPATH)/FoX" \ FC="$(FC_SERIAL)" FCFLAGS="$(FFLAGS_DEBUG)" \ --enable-wcml $(DUMMY_FOX) || false ) 注意(cd FoX; touch arch.make ; \这一行前是一个Tab空格,而不是一个space空格 将这两个地方修改好后, make clen make 我在我安装目录下的makefile文件下根本没找到类似的语句啊,怎么修改呢? 还有,我想做串行不做并行,编译是不是简单一点? |
14楼2011-04-24 21:38:22
15楼2011-04-26 17:30:22
16楼2011-04-26 20:07:08
|
啊,不好意思,又来找你帮忙了~~ 我重装了系统,换了低一级版本 MKL和ifort版本跟zhangguangping的帖子是一样的 后面安装siesta2.0.2时,出现: ==> 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 /home/juan/intel/fc/10.1.021/bin/fortcom:error while loading shared libraries:libstdc++ .so.5:cannot open shared object file: no such file or directory ifort:error #10257:fatal error in /home/juan/intel/fc/10.1.021/bin/fortcom,terminated by OX7f make[1]: *** [compinfo.o] Error 127 make[1]: Leaving directory `/home/juan/tem/siesta-2.0.2/Src' make: *** [version] Error 2 我以为是没安装openmpi弄成的,于是又去安装openmpi 安装openmpi时,出现了,could not run a simple fortrun77 program~~ openmpi我的版本是1.4.2的 怎么回事呢? |
17楼2011-05-04 19:48:28
18楼2011-05-09 22:34:27














回复此楼