CP2K 4.x-5.x 最新多进程并行版(host.popt 版)安装教程完美版
制作者:甄江苏(湘潭大学材料科学与工程学院)
注意,本安装教程主要用 intel 编译器,其包括了 mpi 并行库和 MKL 等数学库,这里使用的
编译器是 Intel 编译器的 2015 年版本,在 2013 版本上会报错,所以建议 Intel 编译器是 2015
年至以后的版本,并且要求 gcc 编译器支持 c++11 标准(即 gcc 版本要等于或高于 4.8.1),否
则安装过程可能会出错,如果不是,则要安装 gcc 高版本(建议安装 5.2.0 版本)。
我另做了 gcc-5.2.0 的安装文档,有需要可以向我索取。
我这里安装是用 root 权限安装的,非 root 用户当然也可以安装,但只能安装到本用户主目
录下的目录中,并且一些涉及 root 权限的操作不能执行,比如添加环境变量,只能添加到本
用户的环境变量中(~/.bashrc 文件)
这里安装的是 Linux-x86-64-intel-host.popt 版本的(多进程并行版本),但是修改的内容是在
Linux-x86-64-intel-mic.psmp 这个文件中。安装过程主要参考 cp2k 官网安装教程和 cp2k 安
装包中的 Linux-x86-64-intel-mic.psmp 这个文件里的相关提示。
此外,下面安装的额外的软件包可以从 cp2k 提供的专门的下载地址下载(cp2k 官网推荐版
本,但一般不是最新版本):
https://www.cp2k.org/static/downloads/
此外,此文档的最后有每个软件的单独下载地址(我测试的各个最新可用版本)
建议将所有软件安装在非/root/目录下,也不要安装在/home/目录下的任何目录,一般都安
装在/opt/目录下。那些不需要 configure 就直接 make 的软件则直接把安装文件拷贝到安装
目录,比如/opt/目录。
1. 安装 Intel 编译器:
。。。。。。。。
我安装在了/opt/目录下
然后添加环境变量,在/etc/profile 文件中最下面插入:
source /opt/intel/composer_xe_2015.2.164/bin/ifortvars.sh intel64
source /opt/intel/composer_xe_2015.2.164/mkl/bin/mklvars.sh intel64
source /opt/intel/impi/5.0.3.048/intel64/bin/mpivars.sh intel64
注意,不同版本的 intel 上面的目录的数字部分一般都不一样,但其他部分应该是一样的(假
如你是安装到/opt/目录下的 intel 目录中的话)。
然后在终端执行:
[root]# source /etc/profile
此外,安装完后后,最好把 licence 文件放到安装目录里,Intel 编译器指定的 license 存放目
录之一是/opt/intel/composer_xe_2015.2.164/license/这个文件夹,这个文件夹要自己新建,然
后把 license 文件拷贝进去即可,不然的话,对于共享此软件的其他节点来说,会找不到 license。
然后进入/opt/intel/composer_xe_2015.2.164/mkl/interfaces/fftw3xf/文件夹,执行:
[root]# make libintel64
将会生成一个名为 libfftw3xf_intel.a 的静态库文件,用于后面 cp2k 的链接。
注意,要想使并行库能正确运行,貌似要设置一下:(非 root 用户就无法设置了。。。)
在/etc/目录中新建一个名为 mpd.conf 的文本文件,在里面填写上:
MPD_SECRETWORD=mr45-j9z
然后保存退出,给这个文件加上权限:
[root]# chmod 600 /etc/mpd.conf
Intel 编译器安装完后,在任意目录下,执行:
icc -v
将会显示版本号。
2. 安装 libint (1.1.6 版本):
下载安装包解压,进入执行:
[root]# aclocal -I lib/autoconf
[root]# autoconf
[root]# ./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="-O2 -xHost" \
--with-cxx-optflags="-O2 -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
[root]# make -j 8
[root]# make install
[root]# make realclean
3. 安装 libxsmm (1.6 的 master 版本,其他版本也行,用于矩阵运算加速的):
解压安装包后,进入安装包,执行:
[root]# make CXX=icpc CC=icc FC=ifort AR=ar \
OPT=3 SSE=3 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
[root]# make clean
4. 安装 libxc (3.0.0 版本,其他版本也行):
下载安装包解压进入安装:
[root]# ./configure --prefix=/opt/libxc/ FC=ifort F90=ifort FCFLAGS="-O3 -xHost" \
CC=icc CFLAGS="-O3 -xHost"
[root]# make -j 8
[root]# make install
[root]# make clean
5. 安装 elpa(新版,可以看 INSTALL 文档,进行更多优化,比如 avx):
[root]# ./configure --prefix=/opt/elpa/ FC=mpiifort CC=mpiicc CXX=mpiicpc \
CFLAGS="-O3 -xHost" CXXFLAGS="-O3 -xHost" \
FCFLAGS="-O3 -xHost" --with-avx-optimization \
SCALAPACK_LDFLAGS="-L$MKLROOT/lib/intel64 -lmkl_scalapack_lp64 \
-lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lmkl_blacs_intelmpi_lp64 \
-lpthread -lm -Wl,-rpath,$MKLROOT/lib/intel64" \
SCALAPACK_FCFLAGS="-I$MKLROOT/include/intel64/lp64"
[root]# make
[root]# make install
[root]# make clean
然后要把 elpa 的库文件路径加到环境变量中:
export LD_LIBRARY_PATH=/opt/elpa/lib:$LD_LIBRARY_PATH
然后在终端执行:
[root]# source /etc/profile
6. 安装 quip (最新版):这个感觉用处不太大,且安装麻烦,不用的话,不建议安装
最新版 quip 在:https://github.com/libAtoms/QUIP/tree/public 下载,不过还要把一个子目录
下载一下:https://github.com/libAtoms/fox/tree/fa52e885ad687d01181f2d7fbc5e2b71a99eaa99
第二个地址可能会变,反正就是 src 目录下的一个叫做 fox 的目录,进去下载就是了:
进入下面这个 fox,然后下载:
下载完成后,将主文件和子文件解压,然后将子文件里面的所有文件(如果进入发现只有一
个文件夹,则再进入那个文件夹,会发现有很多文件)都拷贝到主文件的 src/fox/目录下。最
后将主文件拷贝到/opt/目录中。进行下面的安装。
quip 可以配置很多版本,具体在解压目录的/arch/中。
首先修改配置文件,我这里要安装的是 linux_x86_64_ifort_icc_mpi 版本,所以修改其配置文
件:
打开 Makefile.linux_x86_64_ifort_icc 文件修改:
[root]# vim arch/Makefile.linux_x86_64_ifort_icc
然后将里面的 DEBUG 行全部注释掉:
然后打开 Makefile.linux_x86_64_ifort_icc_mpi 文件:
[root]# vim arch/Makefile.linux_x86_64_ifort_icc_mpi
修改 CPLUSPLUS 并在最下面添加:
QUIPPY_OPT = -O3 –xHost
完成后在终端输入:
[root]# export QUIP_ARCH=linux_x86_64_ifort_icc_mpi #等号前后不能有空格
[root]# make config
下面没填 y 或 n 的表示默认选项
注意,上面这里填写时不能退格,不然要重来,这里填写的就是安装 elpa 时的双引号中的配
置,这里不要双引号,不要反斜杠,该空格的地方要空格。
然后打开配置文件修改:
保存后,在终端执行:
[root]# make deepclean
[root]# make
等几十分钟后就行了,这里 make 不能用并行 make
编译完成后,生成库文件(库文件会在 quip 的 build 目录下面的 linux_...目录中):
[root]# make libquip
然后将库文件路径加到环境变量中:
export LD_LIBRARY_PATH=/opt/quip/build/linux_x86_64_ifort_icc_mpi:$LD_LIBRARY_PATH
然后在终端执行:
[root]# source /etc/profile
7. 安装 cp2k:
下载 5.x 最新版 cp2k:直接在已经联网的 linux 终端中输入一下内容:(这种下载方式下载的
是最新开发版本的 cp2k,不是标准稳定发布版本,但是开发版本我感觉也很稳定,它会包含
最新的错误修正以及优化和新功能的引入)
svn checkout http://svn.code.sf.net/p/cp2k/code/trunk
或者手动进入网页下载:https://sourceforge.net/p/cp2k/code/HEAD/tree/
进入网页后,进入 trunk 目录:
然后如下图所示,点击右上角的 Download Snapshot 下载就行了: