24小时热门版块排行榜    

查看: 1350  |  回复: 1

yangjun102

银虫 (小有名气)

[交流] ifort+openmpi+mkl编译siesta-4.0.2

网上看到一些科研工作者编译siesta-4.0.2有一些疑问,自己试了一下,有一些经验和大家分享。
1.首先是ifort,mkl,openmpi请看zhangguangping的编译过程https://muchong.com/t-1930406-1
2.siesta编译需要的文件都在Src路径中,但是软件是禁止在Src路径下make的,这是为了避免输出和输入文件的混乱。根据manual,编译的时候,可在与Src同级的任意名称的路径下编译,这样的好处是可以编译不同版本的软件在不同路径下。这时可以使用VPATH关键字编译。(此段描述在manual中有更好的解释)
3. (1) $ cd home/path/to/siesta-4.0/Obj  

     $ sh ../Src/obj_setup.sh

     脚本会将编译用到的一些文件复制到Obj文件夹内。

(2) $ ../Src/configure --enable-mpi     在Obj文件夹下生成arch.make文件,对其修改如下

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
FPPFLAGS= -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DMPI
LDFLAGS=


ARFLAGS_EXTRA=


FCFLAGS_fixed_f=
FCFLAGS_free_f90=
FPPFLAGS_fixed_F=
FPPFLAGS_free_F90=


BLAS_LIBS=-L/home/YourPath/intel/composer_xe_2011_sp1.7.256/mkl/lib/intel64 -lmkl_solver_lp64 -lmkl_intel_lp64
LAPACK_LIBS=-L/home/YourPath/intel/composer_xe_2011_sp1.7.256/mkl/lib/intel64 -lmkl_sequential -lmkl_core
BLACS_LIBS=-L/home/YourPath/intel/composer_xe_2011_sp1.7.256/mkl/lib/intel64 -lmkl_blacs_openmpi_lp64
SCALAPACK_LIBS=-L//home/YourPath/intel/composer_xe_2011_sp1.7.256/mkl/lib/intel64 -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/YourPath/openmpi-1.4.4/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)$ cd MPI  进入MPI文件夹修改makefile。

把   ARCH_MAKE_DEFAULT=../arch.make

修改为绝对路径 ARCH_MAKE_DEFAULT=/home/path/to/siesta-4.0/Obj/arch.make

并添加VPATH关键词,VPATH=/home/path/to/siesta-4.0/Src/MPI  否则make指令搜索不到编译用的源文件

然后 $ make

(4) cd..回到Obj路径。查看修改makefile。这里面应该已经有VPATH=/home/path/to/siesta−4.0/Src。目的同上。然后 make即可生成siesta

4.测试可用。

参考链接:https://blog.sciencenet.cn/blog-3126508-1022598.html
回复此楼

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

学术用

» 猜你喜欢

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

yangjun102

银虫 (小有名气)

附上arch.make

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : 参考的arch.make
  • 2020-10-12 12:03:45, 1.75 K
2楼2020-10-12 12:03:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 yangjun102 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见