
科学家创业融资的技巧和坑(科学家创业必看,一不留神让你卖房子卖车还债,并成为银行失信人员) 【计算材料学】2023年高浏览量文章精选 马丁·格林教授,给钙钛矿稳定性泼了一盆冷水! 北京理工大学物理学院冯万祥教授、姚裕贵院士团队招收博士研究生和博士后 Science公布2025年10大年度突破,第一名竟来自中国 量子计算与半导体缺陷形成能的第一性原理研究 【计算材料学】2024年高浏览量文章精选(上) 【计算材料学】2024年高浏览量文章精选(中) 【计算材料学】2024年高浏览量文章精选(下)
这里以 7.1 版本为例介绍如何安装编译 CP2K,其他版本可参照修改。
环境准备¶
可参考官方支持编译环境:
使用 GCC 5.5.0 以上
Intel MPI 环境
一切就绪后,加载上述环境:
module load intel/17.5.239 mpi/intel/2017.5.239module load gcc/5.5.0安装流程¶
首先,在 Release 页面 下载 CP2K 安装包,以 7.1 为例:
wget-chttps://github.com/cp2k/cp2k/releases/download/v7.1.0/cp2k-7.1.tar.bz2拷贝 cp2k-7.1.tar.bz2 到安装路径下并解压。由于需要预编译所需的库等,这里为了防止后续使用时产生额外路径依赖,推荐直接在安装路径下编译。以/share/apps/cp2k为例:
cp cp2k-7.1.tar.bz2 /share/apps/cp2kcd /share/apps/cp2k/tar -jxf cp2k-7.1.tar.bz2
更改目录名为 7.1,为后续添加 module 文件作准备(本步骤可选,也可保留默认名称,后续环境配置时需要相应修改):
mvcp2k-7.17.1进入到 toolchain 目录下,并修改install_mpich.sh, 将其中的check_command mpic++ "mpich"改为check_command mpicxx "mpich":
cd7.1/tools/toolchainsed-i's/check_command mpic++/check_command mpicxx/g'scripts/install_mpich.sh(可选) 若需安装 ELPA 包,需要将静态库替换为动态库,否则会报错undefined reference to ...:
sed-i's/a libmkl_core.a libmkl_sequential.a/so libmkl_sequential.so libmkl_core.so/g'scripts/install_mkl.shsed-i's/libmkl_gf_lp64.a/libmkl_gf_lp64.so/g'scripts/install_mkl.shsed-i's/libmkl_core.a/libmkl_sequential.so/g'scripts/install_mkl.shsed-i's/libmkl_scalapack_lp64.a/libmkl_scalapack_lp64.so/g'scripts/install_mkl.shsed-i's/libmkl_blacs_intelmpi_lp64.a/libmkl_blacs_intelmpi_lp64.so/g'scripts/install_mkl.shsed-i's/libmkl_blacs_openmpi_lp64.a/libmkl_blacs_openmpi_lp64.so/g'scripts/install_mkl.shsed-i's/libmkl_core.a/libmkl_sequential.so/g'scripts/install_mkl.shref 1 ref 2
(可选) 为加速安装、防止超时报错,在中国大陆可将 Github 统一替换为镜像。但后续从 cp2k 官方网站下载的包也可能出现超时报错,可能需要借助其他平台下载相应的软件包并放到build目录下。
sed-i's/github.com/hub.fastgit.org/g'scripts/install_*.sh随后运行 toolchain 脚本安装依赖软件:
./install_cp2k_toolchain.sh --gpu-ver=no --enable-cuda=no --with-mpich=system --with-sirius=no --with-openmpi=no --with-spfft=no --with-hdf5=no过程中请注意输出信息和报错等,并相应地予以解决。如果一切顺利,会提示需要拷贝 arch 文件,并 source 所需的环境,按照提示操作即可。注意由于步骤不同这里的命令可能不同,仅供参考:
cp install/arch/local* /share/apps/cp2k/7.1/arch/source /share/apps/cp2k/7.1/tools/toolchain/install/setup
之后进行编译安装:
cd /share/apps/cp2k/7.1/make -j 8 ARCH=local VERSION="popt psmp"
如果一切顺利,可以得到编译好的二进制可执行文件,创建bin目录,并拷贝exe目录里的文件到bin:
mkdir bincp ./exe/local/* ./bin最后删除bin和tools之外的所有文件,并删除tools/toolchain里的build和install目录。
Module 文件生成¶
若集群使用 module 管理环境变量,请在 modulefile 目录下(取决于集群的设置)新建目录cp2k并创建文件.module:
#%Module# Help messageproc ModulesHelp { } {set nameversion [module-info name]regsub "/.*" $nameversion "" nameregsub ".*/" $nameversion "" versionputs stderr "\tLoads the $version$name environment"}# Set variablesset nameversion [module-info name]regsub "/.*" $nameversion "" nameregsub ".*/" $nameversion "" versionmodule-whatis "$name$version"# set environment variablesset basedir /share/apps/$name/$versionmodule load intel/17.5.239 mpi/intel/2017.5.239module load gcc/5.5.0prepend-path PATH ${basedir}/bin
然后创建符号链接,提供相应版本号的环境:
ln -s .module 7.1
Q&A¶
如果所有标称为
https://www.cp2k.org的压缩包均无法下载,且单独wget该压缩包时提示Issued certificate has expired,可以尝试更新证书服务,CentOS 7 命令如下:
yuminstallca-certificates以上欺骗手段仅适用于 Intel MPI <= 2018 的版本,对高版本 MPI 推荐直接安装更高版本的 CP2K,Toolchain 可提供完整支持。
如果
make过程中频繁报错,还可能是系统没有正确配置地区设置,请使用如下命令加载环境变量:
export LANG=en_US.UTF-8export LC_ALL=en_US.UTF-8export LC_CTYPE="en_US.UTF-8"

夜雨聆风