前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从零开始安装CP2K 8.1 (patched with PLUMED)

从零开始安装CP2K 8.1 (patched with PLUMED)

作者头像
用户7592569
发布2021-07-16 17:09:17
4.6K0
发布2021-07-16 17:09:17
举报
文章被收录于专栏:量子化学量子化学

CP2K安装的方法有很多(我们曾分享过CP2K 5.1版本的安装及简单介绍),笔者最近尝试在课题组新买的服务器上从源码编译安装CP2K,过程中遇到了各种问题。根据这次安装的经验,在此笔者想和大家分享如何从零开始安装CP2K(支持PLUMED)。

在正式介绍软件的安装之前,请容许笔者啰嗦几句。CP2K最为突出的特征是其在周期性体系的Ab-initio MD或者DFT-MD模拟时,计算速度真的非常快。在此笔者想重点推荐的是PLUMED软件(https://www.plumed.org/), PLUMED到底是个玩意儿呢?官方对其描述如下:

PLUMED是一个非常有用的开源软件,笔者用得最多的就是通过PLUMED来实现各种增强采样模拟及数据分析。一些主流的增强采样方法如Metadynamics、Umbrella sampling以及Basin hopping,都可以通过PLUMED软件来实现。同时,一些最新开发的增强采样方法,如Michele Parrinello和Michele Invernizzi于2020年开发的OPES (On-the-fly Probability Enhanced Sampling Method, Phys. Rev. X, 10, 041034 (2020) )方法,也在最新版本的PLUMED(V2.7.1)中有实时更新。笔者认为OPES是非常有效的增强采样方法,在某些情况下比Metadynamics方法更强大,感兴趣的朋友可以去试试。此外,PLUMED能和当前很多非常流行的MD模拟软件对接,如Amber、GROMACS、LAMMPS、CP2K等。希望以后有机会可以和大家分享一些PLUMED的相关内容。

回归正题,来介绍CP2K的安装(联网安装)。

一、笔者所用安装环境:

  • OS:Ubuntu 20.04
  • MPI:OpenMPI 4.0.3
  • GCC:9.3.0

二、下载 CP2K 8.1.0 源代码:

代码语言:javascript
复制
git clone https://github.com/cp2k/cp2k.git -b v8.1.0 

或者

代码语言:javascript
复制
wget https://github.com/cp2k/cp2k/releases/download/v8.1.0/cp2k-8.1.tar.bz2

笔者曾尝试安装CP2K 7.1.0,但遇到了一些奇怪的问题,所以直接跳转到更新版本的CP2K 8.1.0。

三、安装CP2K 8.1.0

1. toolchain安装各种库文件

代码语言:javascript
复制
cd $your-cp2k-folder/tools/toolchain 
./install_cp2k_toolchain.sh --with-plumed=system

采用toolchain来安装编译CP2K所需的各种库文件是最简单省事的,还可以根据自己的需求安装各种插件(如PLUMED),强烈推荐!!!

执行

代码语言:javascript
复制
./install_cp2k_toolchain.sh  -h

我们可以查看toolchain的默认设置,它分为三种情况,可以根据自己的需求修改:

代码语言:javascript
复制
--with-PKG= system: toolchain自动在环境路径里寻找库文件;
--with-PKG= install:toolchain自动联网下载($PWD/build)安装库文件($PWD/install);
--with-PKG= no:toolchain自动跳过该库文件

读者也可以将“--with-plumed=system“改成“--with-plumed=install”,这样toolchain会自动安装PLUMED(你就不需要事先安装了), 但toolchain安装的PLUMED (V2.6.2)不是最新版本,不能满足笔者的计算需求,所以笔者采用了事先安装好的PLUMED(V2.7.1)(后续笔者会跟大家分享PLUMED的安装及使用)。

这一步通常需要运行很长的时间(耐心等待就好),也是安装CP2K最困难的一步,以下几点读者可能需要注意:

(1) 默认情况下同时存在下列三个选项:--with-openmpi=system; --with-mpich=system和--with-intelmpi=system,但OpenMPI、MPICH 和Intel MPI这三种并行环境读者只需选择其中的一种,不要在安装过程中有多个并行工具的环境变量同时生效,否则在最后的编译过程可能会出问题。如果你的服务器上最初没有安装并行工具,也可以使用--with-openmpi=install或者--with-mpich=install让toolchain自动安装(笔者机器事先安装了OpenMPI 4.0.3)。

(2) 读者可以通过添加“--math-mode=mkl --with-scalapack=no”来让CP2K调用MKL数学库。据说使用intel MKL库的计算速度会比默认的调用openblas和scalapack库更快。但笔者测试了一些体系,基本没啥差别,所以如果你嫌安装MKL库麻烦,也可以直接使用默认设置。使用Intel MKL库时需事先安装并导入MKL的环境变量:

代码语言:javascript
复制
source /opt/intel/compilers_and_libraries/linux/mkl/bin/mklvars.sh intel64
export LD_LIBRARY_PATH='/opt/intel/compilers_and_libraries/linux/mkl/lib/intel64':$LD_LIBRARY_PATH

Intel MKL的安装可以参见《Linux下安装Intel oneAPI》一文。

(3) 如果编译elpa时出现问题,可以尝试将以下两行代码添加到scripts/install_elpa.sh的第84行(../configure)后。如果仍失败,则可直接使用“--with-elpa=no”。

代码语言:javascript
复制
SCALAPACK_LDFLAGS="-L$MKL_HOME/lib/intel64-lmkl_scalapack_lp64 -lmkl_gf_lp64 -lmkl_sequential \ 
-lmkl_core -lmkl_blacs_intelmpi_lp64 -lpthread -lm -Wl,-rpath,$MKL_HOME/lib/intel64"  
SCALAPACK_FCFLAGS="-L$MKL_HOME/lib/intel64 -lmkl_scalapack_lp64-lmkl_gf_lp64 -lmkl_sequential \ 
-lmkl_core -lmkl_blacs_intelmpi_lp64 -lpthread -lm -I$MKL_HOME/include/intel64/lp64

2. CP2K的编译

代码语言:javascript
复制
cd $your-cp2k-folder/tools/toolchain/
cp install/arch/* ../../arch/
source install/setup 
cd ../../
make -j 12 ARCH=local VERSION=psmp

在此笔者只编译了psmp版本,但在$your-cp2k-folder/exe/local文件夹下,同时生成了cp2k.psmp和cp2k.popt。psmp和popt 两者都支持MPI跨节点并行,其中psmp采用MPI+OpenMP混编。对于笔者的体系,单纯使用MPI的并行效率更高(export OMP_NUM_THREADS=1)。当然最优并行方式强烈依赖于你的服务器和计算体系,所以建议读者在计算之前做一些benchmark。

3. 设置环境变量

代码语言:javascript
复制
source $your-cp2k-folder/tools/toolchain/install/setup 
export PATH=“$your-cp2k-folder/exe/local:$PATH”

4. 测试

代码语言:javascript
复制
make -j 12 ARCH=local VERSION=psmp test

这一步需要比较长的时间,可以跳过。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-06-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量子化学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档