CP2K6.1 Install

CP2K 6.1 编译安装 (Intel 编译器)

CP2K 6.1.0-release 多进程多线程(MPI+OPENMP)

                                                                                                                                             制作者:曹立群

                                                                                   更新时间:2019.10.09

                                                                                                 测试版本:CP2K 6.1.0-release

 

本文基于前辈安装老版本的说明撰写:

https://blog.csdn.net/zh314js/article/details/76258705

 

 

1.下载并安装intel编译器(最新版本2019)

安装后在~/.bashrc添加:

source /opt/intel/compilers_and_libraries_2017.4.196/linux/bin/ifortvars.sh intel64

source /opt/intel/compilers_and_libraries_2017.4.196/linux/mkl/bin/mklvars.sh intel64

source /opt/intel/compilers_and_libraries_2017.4.196/linux/mpi/intel64/bin/mpivars.sh intel64

然后 source ~/.bashrc

测试:

which ifort / which mpiifort 显示具体路径

Intel编译器套件安装完后,在任意目录下,执行:icc -v 显示版本号

然后进入$MKLROOT/interfaces/fftw3xf文件夹,执行:make libintel64 将会生成一个名为libfftw3xf_intel.a的静态库文件

在/etc/目录中新建一个名为mpd.conf的文本文件,在里面填写上(需root权限):

MPD_SECRETWORD=mr45-j9z

然后保存退出,给这个文件加上权限:

chmod 600 /etc/mpd.conf

2. 安装libint (1.1.6版本):

下载安装包解压,进入执行:

aclocal -I lib/autoconf

autoconf

注意,上面两个如果执行后都报错的话,不用管,直接下一步。

./configure –prefix=/opt/libint –with-ar=ar FC=ifort F77=ifort F90=ifort \

FCFLAGS=”-O3 -xHost” CC=icc CFLAGS=”-O3 -xHost ” CXX=icpc \

CXXFLAGS=”-O3 -xHost ” –with-cc-optflags=”-O3 -xHost ” \

 –with-cxx-optflags=”-O3  -xHost ” –with-libint-max-am=5 –with-libint-opt-am=4 \ –with-libderiv-max-am1=4 –with-libderiv-max-am2=2 –with-libr12-max-am=2 –with-libr12-opt-am=2

make -j 8

make install

make realclean

3. 安装最新libxsmm (1.8.1的master版本,其他版本也行,用于矩阵运算加速的):

解压安装包后,进入安装包,执行:

make CXX=icpc CC=icc FC=ifort AR=ar OPT=3 TARGET=”-xHost” ROW_MAJOR=0 \

INDICES_M=”$(echo $(seq 1 24))” INDICES_N=”$(echo $(seq 1 24))” INDICES_K=”$(echo $(seq 1 24))” PREFIX=/opt/libxsmm/ install

make clean

4. 安装libxc (3.0.0版本,其他版本也行):

下载安装包解压进入安装:

./configure –prefix=/opt/libxc/ FC=ifort FCFLAGS=”-O3 -xHost ” CC=iccCFLAGS=”-O3 -xHost “

make -j 8

make install

make clean

5. 安装elpa :

cp2k 6.1.0-release版本目前采用elpa-2018.05.001

openmp版本(用于多线程多进程(psmp)版本:

./configure –prefix=/opt/elpa/ FC=mpiifort CC=mpiicc CXX=mpiicpc \

CFLAGS=”-O3 -xHost ” CXXFLAGS=”-O3 -xHost ” FCFLAGS=”-O3 -xHost ” \

–with-avx-optimization=yes –enable-openmp SCALAPACK_LDFLAGS=”- \

L$MKLROOT/lib/intel64 -lmkl_blas95_lp64 -lmkl_lapack95_lp64 \

-lmkl_scalapack_lp64 -Wl,–start-group -lmkl_cdft_core -lmkl_intel_lp64 \

-lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64 -Wl,–end-group \

-liomp5 -lpthread -lm -ldl -Wl,-rpath,$MKLROOT/lib/intel64″ \

SCALAPACK_FCFLAGS=”-L$MKLROOT/lib/intel64 -lmkl_blas95_lp64 \ -lmkl_lapack95_lp64 -lmkl_scalapack_lp64 -lmkl_cdft_core -lmkl_intel_lp64 \ -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64 -liomp5 -lpthread -lm -ldl \ -I$MKLROOT/include/intel64/lp64″

make

make install

make clean

6. 下载并安装cp2k:

下载6.1.0版本cp2k(development版本):

手动进入网页下载:https://sourceforge.net/p/cp2k/code/HEAD/tree/

下载完成后,将trunk目录里面的cp2k/ 这个文件夹拷贝到/opt/目录中

然后进入/opt/cp2k/makefile目录,修改cp2k配置文件:

vim ../arch/Linux-x86-64-intel.psmp

然后对照着修改:

LIBXSMM  = /opt/libxsmm(对应各人安装路径)

LIBXC    = /opt/libxc

LIBINT   = /opt/libint

LIBELPA  = /opt/elpa

elpa部分的include后面部分要注意,每个版本的elpa此处数字路径是不一样的,具体路径请到elpa的安装目录自己查看

DFLAGS   = -D__ELPA=201805(elpa版本号)

FCFLAGS += -I$(LIBELPA)/include/elpa_openmp-2018.05.001/modules -I$(LIBELPA)/include/elpa_openmp-2018.05.001/elpa

保存文件,然后进入cp2k/makefils编译cp2k.psmp

cd cp2k/makefiles

多线程多进程版本

make -j 8 ARCH=Linux-x86-64-intel-host VERSION=psmp

使用多线程版本cp2k时,需要手动设置线程数:

export OMP_NUM_THREADS=2

然后再执行:

mpirun -n 14 cp2k.psmp -i test.inp

这样的命令,程序就会自动使用14核2线程,需要注意的是,核心数乘以线程数不能大于单节点上总的物理核心数,不然计算会非常慢!