经验怪谈

技术文章

CP2K 2026.1 安装(CMake)

2025.2 之后改用 CMake。toolchain 编完后,DBCSR 版本号对不上是常见坑。

2026-09-16 · 科研软件 · 编译与依赖 · HPC / 集群

CP2K 2025.2 以上改用 CMake。路径按 /opt/software/... 示例。需先准备适配自己处理器的 MPI(oneAPI 或 OpenMPI)。

依赖

Red Hat / Rocky:

sudo dnf makecache
sudo dnf groupinstall -y "Development Tools"
sudo dnf install -y gcc gcc-gfortran zlib zlib-devel unzip vim wget curl make openssl-devel

Debian / Ubuntu:

sudo apt-get update
sudo apt-get install -y gcc gfortran zlib1g zlib1g-dev unzip vim build-essential wget curl make libssl-dev

源码

指定版本并拉全子模块:

git clone -b support/v2026.1 --recursive https://github.com/cp2k/cp2k.git /opt/software/cp2k-2026.1

GitHub 过慢时,原文走 gh-proxy,分支还是 support/v2026.1

# git clone -b support/v2026.1 --recursive https://gh-proxy.com/https://github.com/cp2k/cp2k.git /opt/software/cp2k-2026.1

Toolchain

cd /opt/software/cp2k-2026.1/tools/toolchain

注意:AMD 编译的 OpenMPI 可能不被这份 toolchain 接受,不要用 --with-openmpi=system 硬接。

Intel MPI + MKL(原文写 onempi):

./install_cp2k_toolchain.sh \
  --with-intelmpi=system \
  --with-mkl=system \
  --with-intel=system \
  --with-sirius=no \
  --with-plumed=install \
  --with-elpa=no \
  -j$(nproc)

GCC + 自编译 OpenMPI:

./install_cp2k_toolchain.sh \
  --with-gcc=system \
  --with-openmpi=install \
  --with-sirius=no \
  --with-plumed=install \
  --with-elpa=no \
  -j$(nproc)
source /opt/software/cp2k-2026.1/tools/toolchain/install/setup

DBCSR 版本对不上

cmake 配置时可能报:找不到与请求版本 2.6 兼容的 DBCSR,实际看到的是 toolchain 编出来的 2.9.0。可先备份再改版本文件:

cd /opt/software/cp2k-2026.1/tools/toolchain/install/dbcsr-2.9.0/lib/cmake/dbcsr
cp DBCSRConfigVersion.cmake DBCSRConfigVersion.cmake.bak.$(date +%F_%H%M%S)
sed -i 's/set(PACKAGE_VERSION ".*")/set(PACKAGE_VERSION "2.9.0")/' DBCSRConfigVersion.cmake
sed -i 's/set(PACKAGE_VERSION_UNSUITABLE TRUE)/set(PACKAGE_VERSION_UNSUITABLE FALSE)/' DBCSRConfigVersion.cmake

cd /opt/software/cp2k-2026.1
cp CMakeLists.txt CMakeLists.txt.bak.$(date +%F_%H%M%S)
sed -i 's/find_package(DBCSR 2.6 REQUIRED)/find_package(DBCSR 2.9.0 REQUIRED)/' CMakeLists.txt

路径和版本号以你机器上 dbcsr-* 目录为准。

编译

cd /opt/software/cp2k-2026.1
cmake -S . -B build \
  -DCMAKE_BUILD_TYPE=Release \
  -DCP2K_USE_MPI=ON \
  -DCP2K_USE_PLUMED=ON \
  -DCP2K_USE_FFTW3=ON \
  -DCP2K_USE_LIBINT2=ON \
  -DCP2K_USE_LIBXC=ON \
  -DCP2K_USE_COSMA=ON \
  -DCP2K_USE_SPGLIB=ON
cmake --build build -j$(nproc)

验收

ls /opt/software/cp2k-2026.1/build/bin
./build/bin/cp2k.psmp --version

写入 ~/.bashrc

vim ~/.bashrc
source /opt/software/cp2k-2026.1/tools/toolchain/install/setup
export PATH=/opt/software/cp2k-2026.1/build/bin:$PATH
source ~/.bashrc