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 时,需要把以下内容加入到提交脚本里:
使用Multiwfn创建CP2K输入文件CP2K入门
Loading...