编译 cp2k 7.1 简略记录

首先我们参考一下官网的说明:

howto:compile [CP2K Open Source Molecular Dynamics ]

还有一个第三方网站

CP2K - XCONFIGURE

推荐的编译环境

Current Release (v7.1)

This step-by-step guide uses (a) GNU Fortran (version 8.3, 8.4, 9.2, or 9.3 are recommended, 9.1 is not recommended), or (b) Intel Compiler (version 19.1 "2020"). In any case, Intel MKL (2018, 2019, 2020 recommended) and Intel MPI (2018, 2020 recommended) need to be sourced. The following components are used:

  • Intel Math Kernel Library (also per Linux' distro's package manager) acts as:
    • LAPACK/BLAS and ScaLAPACK library
    • FFTw library
  • LIBXSMM (replaces LIBSMM)
  • LIBINT (2.x from CP2K.org!)
  • LIBXC (version 4.x, not 5.x)
  • ELPA (version 2019.11.001)

来自 <CP2K - XCONFIGURE>

说明,从V7.1开始,libint 要2.5 + 最好用他们提供的专用版本,尽管专用版也有问题

Python 最好是3.6 +

如果系统的python是2.x 那么需要手动修改各个 tools目录下的python头,指定到python3,而且makefile 里边也可能调用python,将其变量改为python3的地址

为了免去安装scalapack的麻烦,我们选用intel composer xe 2020 (19.1) 包含mkl 和mpi 库

source /opt/intel2019/bin/compilervars.sh intel64

================================

先编译libint

注意要从 Release Libint v2.6.0 CP2K · cp2k/libint-cp2k · GitHub 下载最新版

Make install 出错导致fortran模块没安装

将fortran/Makefile 改成如下

fortran_example: fortran_example.o libint_f.o

        $(LTLINK) $(CXX) $(CXXFLAGS) $(LDFLAGS) $(COMPUTE_LIB) $(SYSLIBS) $(FCLIBS) -o $@ $^

变成

fortran_example: fortran_example.o libint_f.o

        $(LTLINK) $(CXX) $(CXXFLAGS) $(LDFLAGS) $(COMPUTE_LIB) $(SYSLIBS) $(FCLIBS) -o -lstdc++ -o $@ $^

自动配置makefile

CC=icc FC=ifort F77=ifort ./configure --prefix=/home/username/cp2k/lib/libint --enable-fortran

注意一定要编译Fortran模块!!

Make 成功

Make install 成功,在include 目录会有 mod文件

=========================================

然后编译 elpa

Please use ELPA 2017.11.001 for CP2K 6.1. For CP2K 7.1, please rely on ELPA 2019. ELPA 2018 fails or crashes in several regression tests in CP2K (certain rank-counts produce an incorrect decomposition), and hence ELPA 2018 should be avoided in production.

来自 <ELPA - XCONFIGURE>

可以去下载最新版的elpa  https://elpa.mpcdf.mpg.de/elpa-tar-archive

FC=mpiifort CC=mpiicc ../configure --prefix=/home/username/cp2k/lib/elpa SCALAPACK_LDFLAGS="-L$MKL_ROOT/lib/intel64 -lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_sequential \

-lmkl_core -lmkl_blacs_intelmpi_lp64 -lpthread -lm -Wl,-rpath,$MKL_HOME/lib/intel64" \

SCALAPACK_FCFLAGS="-L$MKL_ROOT/lib/intel64 -lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_sequential \

-lmkl_core -lmkl_blacs_intelmpi_lp64 -lpthread -lm -I$MKL_HOME/include/intel64/lp64"

注意复制的时候可能复制到错误的换行,执行的时候检查一下格式,只有“\”结尾才能换行

然后 make; make install

=====================================

接下来编译libxsmm

可以去cp2k的网站下载这个库,这个库安装了就不需要libsmm了

https://www.cp2k.org/static/downloads/libxsmm-1.15.tar.gz

进入解压目录

export CC=icc FC=ifort

make PREFIX=/home/username/cp2k/lib/libxsmm install

=====================================

接下来编译libxc

https://www.cp2k.org/static/downloads/libxc-4.3.4.tar.gz

FC=ifort CC=icc F77=ifort ./configure --prefix=/home/username/cp2k/lib/libxc

然后 make ; make install

=====================================

接下来下载 dbcsr

先下载 Releases · cp2k/dbcsr · GitHub

然后解压拷贝到exts/dbcsr目录

=======================================

接下来编译cp2k

编辑 arch/Linux-x86-64-intel.popt

 LIBXSMM  =  /home/username/cp2k/lib/libxsmm

 LIBXC    = /home/username/cp2k/lib/libxc

 LIBINT   =  /home/username/cp2k/lib/libint

 LIBELPA  =/home/username/cp2k/lib/elpa

 CC       = icc

 FC       = mpifort

 LD       = mpifort

FCFLAGS += -I$(LIBELPA)/include/elpa-2019.05.001/modules -I  修改

$(LIBELPA)/include/elpa-2019.05.001/elpa/elpa  修改

FCFLAGS += -I$(LIBINT)/include 添加

LIBS    += -L$(LIBINT)/lib -lint2 -lstdc++ 修改

-D__LIBINT_MAX_AM=7 -D__LIBDERIV_MAX_AM1=6  去掉

-D__ELPA=201901 \  修改

然后编译

make -j 4 ARCH=Linux-x86-64-intel VERSION=popt

编译完成后,elpa是动态库,需要加在环境变量里边

export LD_LIBRARY_PATH=/home/username/cp2k/lib/elpa/lib:$LD_LIBRARY_PATH

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值