使用Intel编译器编译CP2K 7.1.0 主要借鉴参考了https://ccportal.ims.ac.jp/en/node/2640 上提供的方法,并找到合适方式解决了编译过程中遇到的问题。
这次编译测试平台是i5-8400,32G,GTX Titan(是的没错,我也尝试了CUDA编译),系统为Ubuntu 18.04.04LTS。
首先当然是安装Intel Parallel Studio XE 2020,网上关于如何申请学生版和学术版均有介绍,此处再不介绍。然后是进入 $CP2K$/tool/toolchian下运行install_requirements.sh脚本,自动安装Ubuntu系统下的依赖环境。
从https://ccportal.ims.ac.jp/en/node/2640 上复制文件名为 tc_install_***.****.diff 文件。使用patch命令,将这些修改应用到toolchain下及toolchain/scripts下的脚本中。然后在终端中加载Intel编译器。
export CC=icc
export CXX=icpc
export FC=ifort
export MPICC=mpiicc
export MPICXX=mpiicpc
export MPIFC=mpiifort
再在toolchain目录下执行 ./install_cp2k_toolchain.sh --math-mode=mkl --mpi-mode=mpich --with-cmake=install --with-mpich=system --with-openmpi=no --with-libxc=install --with-libint=install --with-fftw=install --with-openblas=no --with-scalapack=no --with-reflapack=no --with-libxsmm=install --with-elpa=install --with-ptscotch=install --with-pexsi=install --with-parmetis=install --with-superlu=install --with-quip=no --with-plumed=install --with-gsl=install --with-libvdwxc=install --with-spglib=install --with-hdf5=install --with-spfft=install --enable-cuda=no
第一个问题时安装cmake的问题,由于编译SpFFT需要3.11版本以上的cmake,而ubuntu自带的cmake为3.10版本,所以必须要安装新版本的cmake。这里可以取巧地,先使用gnu编译器安装cmake-3.15。
我遇到的第二个问题就是intel编译器在编译fftw-3.3.8时产生的报错。在build/fftw-3.3.8/configure.log中 configure: error: sizeof(fftw_r2r_kind) test failed,处理方法如下:在/scripts/install_fftw.sh脚本45和47行的./configure后加入 -CFLAGS="-gcc-sys" 即可。具体可参考https://community.intel.com/t5/Intel-C-Compiler/FFTW-compilation-issue-autoconf-for-standard-headers-fails/td-p/1146077
第三个问题是困扰我最久地,PLUMED。PLUMED是MD增强库,可以提供伞形采样等增强分子动力学模拟功能。所以,解决这个问题最简单的办法就是不安装,直接设置--with-plumed=no。若确实需要,可以修改scripts/install_plumed.sh脚本,在44行,make后插入LD_RO="ld.gold -r -o" 即可
由于使用intel编译器,需要再修改arch文件夹中编译文件,在“LDFLAGS = $(FCFLAGS) ” 后插入 -static-intel -nofor_main。之后可根据toolchain工具提示,进行复制编译文件到主目录下的arch文件夹中等操作,最后即可执行make命令完成编译。
生成的可执行文件在exe/local目录之下,也可使用tool/regtesting目录下的do_regtest工具测试生成的可执行文件。