type
status
date
slug
summary
tags
category
icon
password
从头开始离线编译最新版 CP2K
ALKEMIE 集群 3 中已预装 CP2K 7.1 与 9.1 版本。然而,鉴于 CP2K 软件迭代迅速,新功能持续引入,因此掌握其编译方法十分必要。
使用 Apptainer 安装 Docker 打包的镜像
首先在
Docker Desktop 中拉取 apptainer/1.0.0(因为集群 3 也是这个版本),然后按 Win + R 打开 cmd 终端,输入:下载 OpenMPI 版本的
CP2K 2024.1。将 SIF 文件拖入集群,修改提交脚本 runcp2k.pbs 即可。在虚拟机上使用 Docker 编译 CP2K
首先准备好 Git,执行以下命令:
修改
install_cp2k_toolchain.sh 中:修改
install_elpa.sh:修改
build_dockerhub_images.sh 中 Dockerfile 的文件名:使用 bash 命令运行脚本:
脚本会在虚拟机上生成一个 CP2K 的镜像。使用
docker images 获取镜像 ID(本例中为 913358d296d9),并将其保存为 .tar 文件:将 .tar 文件上传至集群,
ssh cu02 切换到编译节点,加载 apptainer 模块并构建 sandbox:使用
apptainer shell -w cp2k-2024 以写入模式(-w)打开容器,并键入 nano /.singularity.d/env/91-environment.sh 编辑环境变量文件如下:修改完成后,按
Ctrl + X 保存并退出。最后,apptainer build cp2k-2024.sif cp2k-2024 将容器压缩成 SIF 可执行文件。这样就完成了 CP2K 的编译和部署,确保在集群上能够充分利用 AVX512 指令集,获得更好的性能。从源码离线编译 CP2K 的详细步骤
提示:对于环境变量管理较为混乱的集群,建议使用
env -i bash --noprofile --norc 启动一个无痕 shell 进行编译,以避免环境干扰。1. ELPA 安装
访问 ELPA 官网下载
.tar.gz 安装包,上传至集群后,在 Python 3 环境中按顺序执行以下命令然后,设置环境变量:
2. CP2K 离线编译
安装前,请从 CP2K 官网下载 .tar.bz2 格式的安装包,上传至集群后使用
tar -jxvf cp2k-2023.1.tar.bz2 解压。之后,通过 ssh cu02 命令切换到编译节点,然后进入源码目录。注意:由于集群网络通常无法直接访问 GitHub 等外部代码仓库,因此务必下载离线安装包(.tar.bz2格式),切勿使用 Git 克隆源码。
首先打扫干净安装环境:
然后加载编译环境(编译环境的准备见从头开始离线编译最新版GROMACS):
加载环境后,使用 toolchain 方法安装 CP2K 依赖库:
CP2K 的 toolchain 编译脚本 (
install_cp2k_toolchain.sh) 在默认情况下需要联网运行,它会自动下载并编译所需的依赖库。若在无法联网的集群 3 上进行离线安装,则会因 wget失败而中断。当脚本因网络问题报错时,它会输出所需依赖的下载网址。请根据这些网址手动下载对应的安装包,并将其上传至 toolchain/build目录中,然后重新运行安装命令即可继续。配置选项说明:
您可以通过
./install_cp2k_toolchain.sh -h查看帮助文档。对于依赖库的配置,主要有以下三种方式:-with-xxx=system:使用系统中已安装的库。
-with-xxx=install:由脚本自动下载并安装(需联网)。
-with-xxx=no:不安装此库。
通常情况下,直接使用脚本提供的默认配置方案即可。
最后编译 CP2K:
如果编译报错,重新编译前记得打扫干净安装环境。
编译完成后,使用命令
./exe/local/cp2k.ssmp -v 查看CP2K的版本、编译时用的库和参数信息。CP2K 提交脚本
使用 PBS 脚本提交运行 CP2K 时,需要把以下内容加入到提交脚本里:
- 作者:wangchr1617
- 链接:https://www.wangchr1617.top/learning/cp2k-2
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。



