经验怪谈

技术文章

CP2K 2025.1 安装(Makefile)

用官方 toolchain 编依赖,再 make ssmp / psmp。2026 起请看 CMake 那篇。

2026-09-06 · 科研软件 · HPC / 集群

路径按 /opt/software/... 示例。需先准备适配自己处理器的 MPI(原文写 onempi / openmpi,即 Intel MPI 或 OpenMPI)。2025.2 之后构建方式变了,新版本见 CP2K 2026.1

依赖

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 下载。指定版本,并拉全子模块:

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

GitHub 过慢时,原文用过 gh-proxy。没指定版本、子模块也对不上,评论里说过要小心。需要时代理只当镜像,分支还是 support/v2025.1

# 方法二(原文):没指定版本,和子模块容易对不上
# git clone --recursive https://gh-proxy.com/https://github.com/cp2k/cp2k.git cp2k-2025.1

子模块失败时,删掉对应目录再单独克隆,否则目录还在会跳过:

cd /opt/software/cp2k-2025.1/exts
rm -rf dbcsr/
git clone --recursive https://github.com/cp2k/dbcsr.git
# 网络慢时原文是:git clone --recursive https://gh-proxy.com/https://github.com/cp2k/dbcsr.git

Toolchain

cd /opt/software/cp2k-2025.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)

仅供参考的另外两组:

./install_cp2k_toolchain.sh --with-sirius=no --with-intelmpi=install --with-plumed=install -j$(nproc)
./install_cp2k_toolchain.sh --with-sirius=no --with-openmpi=install --with-plumed=install -j$(nproc)

编译

把 toolchain 生成的 arch 文件拷到源码 arch/

cp /opt/software/cp2k-2025.1/tools/toolchain/install/arch/* \
   /opt/software/cp2k-2025.1/arch/
source /opt/software/cp2k-2025.1/tools/toolchain/install/setup
cd /opt/software/cp2k-2025.1
make -j$(nproc) ARCH=local VERSION=ssmp
make -j$(nproc) ARCH=local VERSION=psmp

环境变量

写入 ~/.bashrc(路径按实际改):

vim ~/.bashrc
source /opt/software/cp2k-2025.1/tools/toolchain/install/setup
export PATH=$PATH:/opt/software/cp2k-2025.1/exe/local
source ~/.bashrc

验收

原文检查命令是 cp2k.popt -v。可执行文件名以 exe/local 目录实际生成为准,有的环境是 cp2k.psmp

cp2k.popt -v
# 或
cp2k.psmp -v