CP2K入门教程-1:CP2K的安装

CP2K的安装

1.1 直接使用二进制版本

CP2K的安装有很多种方法。最简单的方法是直接使用预编译版本的二进制可执行文件。

用户可以选择从发行版所带的软件源安装预编译版本的CP2K

Debian http://packages.debian.org/search?keywords=cp2k

Fedora https://apps.fedoraproject.org/packages/cp2k

Ubuntu http://packages.ubuntu.com/search?keywords=cp2k

或者直接从CP2K官方网站下载预编译可执行文件

sourceforge.net/projects/cp2k/files/precompiled/

预编译版本的CP2K运行比较可靠,缺点是由于其采用了没有优化过的blas库和lapack库,计算速度比较慢。

 

或者从CP2K源码(http://www.cp2k.org/download)进行编译,获得可执行文件。好处是可以使用MKL等速度更快的数学库,计算速度比预编译版本快很多。测试表明,使用Intel编译器以及MKL数学库编译的CP2K执行速度是预编译版本的3倍左右。

1.2 从源代码编译

从源码进行编译得到的CP2K可执行文件有更快的运行速度。CP2K的编译比较复杂。希望进行CP2K编译的话,可以参考

www.cp2k.org/howto:compile

下面,介绍使用Intel编译器以及GNU编译器编译CP2K的步骤。下面的编译均在Debian testing系统上完成。CPU型号为Intel(R) Core(TM) i5-4210M,内核版本为3.17-1-amd64。为了减少编译的工作量,可以从Debian软件源里安装各种数学库,如libintelpafftw3openblas, libxc等。以root权限运行:

apt-get install libxc1 libxc-dev libint-dev libint1 libelpa-dev libelpa0 libopenblas-base libopenblas-dev libfftw3-3 libfftw3-bin libfftw3-dev libfftw3-mpi3 openmpi-bin gcc gfortran g++

安装-dev包可以获得数学库的静态链接库,方便进行静态编译。

系统安装了4.9.1 版本的GNU编译器,包括gcc以及gfortranopenmpi版本为1.6.5

  1. 使用Intel Fortran编译器以及MKL编译CP2K

首先,安装Intel Fortran编译器以及MKL。我安装的Intel Fortran编译环境是composerxe-2011.3.174。其中包含了Fortran编译器ifort以及MKL,没有Intel MPIifort版本是12.0.3 20110309Intel编译器安装到了/opt/intel目录中。

要使用Intel编译器,打开终端,运行

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

然后,编译安装MPI运行环境。如果你安装的Intel编译环境已经包含了impi,可以跳过该步骤。我安装的MPI环境是openmpi 1.6.5,目前最新版本是1.8.3 。从http://www.open-mpi.org 上下载源码,解压缩后运行:

./configure –prefix=/opt/openmpi-1.6.5 F77=ifort FC=ifort

make

make install

注意,make install时需要root权限。

从 http://sourceforge.net/projects/cp2k/files

下载CP2K 2.5.1的源码,解压缩,修改arch目录中的Linux-x86-64-intel.popt文件如下 :

CC = cc

CPP =

FC = /opt/openmpi-1.6.5/bin/mpif90

LD = /opt/openmpi-1.6.5/bin/mpif90

AR = ar -r

INTEL_MKL = /opt/intel/mkl

INTEL_INC = $(INTEL_MKL)/include

INTEL_LIB = $(INTEL_MKL)/lib/intel64

MKL_LIB = $(INTEL_MKL)/lib/intel64

FFTW3_INC = /usr/include/

FFTW3_LIB = /usr/lib/x86_64-linux-gnu/

DFLAGS = -D__INTEL -D__FFTSG -D__parallel -D__BLACS -D__SCALAPACK -D__FFTW3 -D__LIBINT

CPPFLAGS = -C -traditional $(DFLAGS) -I$(INTEL_INC) -I$(FFTW3_INC)

FCFLAGS = $(DFLAGS) -I$(INTEL_INC) -I$(FFTW3_INC) -O2 -xHost -heap-arrays 64 -funroll-loops -fpp -free

FCFLAGS2 = $(DFLAGS) -I$(INTEL_INC) -I$(FFTW3_INC) -O1 -xHost -heap-arrays 64 -fpp -free

LDFLAGS = $(FCFLAGS) -I$(INTEL_LIB) -L$(FFTW3_LIB)

LIBS = -L$(MKL_LIB) -lmkl_blas95_lp64 -lmkl_lapack95_lp64 -lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lmkl_blacs_openmpi_lp64 -lfftw3 -lpthread -lderiv -lint -lstdc++

OBJECTS_ARCHITECTURE = machine_intel.o

graphcon.o: graphcon.F

$(FC) -c $(FCFLAGS2) $<

et_coupling.o: et_coupling.F

$(FC) -c $(FCFLAGS2) $<

qs_vxc_atom.o: qs_vxc_atom.F

$(FC) -c $(FCFLAGS2) $<

hfx_screening_methods.o: hfx_screening_methods.F

$(FC) -c $(FCFLAGS2) $<

注意,如果编译使用intelmpiblacs库就设置为-lmkl_blacs_intelmpi_lp64;如果使用openmpi,则设置为-lmkl_blacs_openmpi_lp64makefiles目录中运行

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

-j 4参数可以使编译并行进行,以加快编译速度。

CPU性能,一般15分钟左右即可在exe/Linux-x86-64-intel目录下获得编译好的cp2k.popt可执行文件。

     2. 使用GNU Fortran编译器,MKL以及ELPA库编译CP2K

使用gfortran编译器,并使用MKL数学库和ELPA库编译CP2K,流程与上述类似。编辑arch目录中的Linux-x86-64-gfortran_mkl_elpa.popt文件如下:

INTEL_MKL = /opt/intel/mkl

INTEL_INC = $(INTEL_MKL)/include

INTEL_MKL_LIB = $(INTEL_MKL)/lib/intel64

FFTW3_INC = /usr/include/

FFTW3_LIB = /usr/lib/x86_64-linux-gnu/

ELPA_INC = /usr/include/elpa/modules

CC = cc

CPP =

FC = /usr/bin/mpif90

LD = /usr/bin/mpif90

AR = ar -r

CPPFLAGS =

DFLAGS = -D__GFORTRAN -D__FFTSG -D__parallel -D__SCALAPACK -D__BLACS -D__LIBINT -D__LIBXC2 -D__FFTW3 -D__ELPA

FCFLAGS = -O3 -ffast-math -funroll-loops -ftree-vectorize -march=native -ffree-form $(DFLAGS) -g -I$(FFTW3_INC) -I$(ELPA_INC) -I$(INTEL_INC)

LDFLAGS = $(FCFLAGS) -L${FFTW3_LIB} -L${INTEL_MKL_LIB}

LIBS =

-lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64 -lmkl_gf_lp64 -lmkl_sequential -lmkl_core

-lderiv -lint -lfftw3 -lxc -lelpa

makefiles目录中运行

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

exe/Linux-x86-64-gfortran_mkl_elpa 目录中即可获得编译好的cp2k.popt可执行文件。

经过测试,使用gfortranintel编译器编译的CP2K可执行文件运行速度相当,后者稍微快一点点。这主要是因为它们均使用了经过优化的MKL数学库。本文转载自zevan,转载目的在于知识分享,本文观点不代表V-suan云平台立场。

 

我们邀请了从头算分子动力学领域世界顶尖学者Hutter教授团队兰晶岗博士进行“计算化学模拟,让你的实验更“有数”!”的培训,本培训基于知名免费开源计算软件CP2K,此软件由Hutter团队开发并运维,功能与VASP比肩。

 

本课程重点侧重应用,弱化过于抽象的公式和理论。通过简单介绍理论并且结合计算输入文件,帮助学员快速上手使用CP2K软件来完成自己计算要求。

原创文章,作者:菜菜欧尼酱,如若转载,请注明来源华算科技,注明出处:https://www.v-suan.com/index.php/2023/12/01/4065766bfd/

(0)

相关推荐

发表回复

登录后才能评论