计算化学公社
标题:
CP2K-2025.2 Apptainer(singularity) 镜像分享
[打印本页]
作者Author:
s8ga
时间:
4 hour ago
标题:
CP2K-2025.2 Apptainer(singularity) 镜像分享
本帖最后由 s8ga 于 2026-5-1 17:45 编辑
1. 前言
站内的 CP2K Singularity 镜像都比较老了,最近需要频繁的更换计算节点,所以编译了一份带 全部依赖的CP2K 容器镜像,方便在不同服务器上使用。
使用了 podman构建
CP2K
然后使用 apptainer(singularity 的开源版本)打包 sif
1.1 使用环境要求
单机:
不需要
root、需要足够高的内核版本 (3.8+)
无法在docker内嵌套运行
(可以在 wsl / kvm / vmware 等虚拟化方案内运行)
集群:
没尝试过
1.2 镜像列表
文件下载链接:
https://pan.baidu.com/s/1AdlUGY40yEmDj-M32Q37Xw?pwd=s8ga
cp2k-opensource-2025.2
(260501添加)
(
regtest
通过)
标准 2025.2 build
cp2k-opensource-2025.2-force-avx512
(260501添加)
(
regtest
通过)
解决了使用 avx2处理器 上构建的 cp2k在 avx512处理器 上使用时
Setting real_kernel for ELPA failed
的问题 (强制编译 ELPA的 AVX512内核就好了)
cp2k-rocm-2026.1-gfx942
(260501添加)
(实验性)
AMD Mi300X 加速版本 (未经充分测试)
cp2k-mkl-2025.2-experimental
(260501添加)
(
regtest
通过)
(实验性)
使用的是Openmpi + mkl 构建方式
存在经验性修补内容,不推荐在生产环境中使用
与Opensource速度基本相同
2.
使用指南
先将
镜像
下载好,并将你选择的 sif文件 和 apptainer-1.4.5-3.el8-x86_64.run放入服务器你选择的位置
# 1.首先切换到你放置文件的目录
cd "Your preferred location"
# 2.给run文件添加可执行权限
chmod +x apptainer-1.4.5-3.el8-x86_64.run
# 3.解压apptainer
./apptainer-1.4.5-3.el8-x86_64.run
# 4.将apptainer source到PATH中
# 请根据屏幕上面的提示 source指定文件
# (仅供参考) source /tmp/apptainer-test/apptainer-bundle/activate-apptainer.sh
# 5.你可以使用 apptainer run 来启动镜像 (下面的例子仅供参考 - 只是显示了cp2k的版本号/编译信息)
apptainer run cp2k-opensource_2025.2-force-avx512.sif mpirun cp2k.psmp --version | head -n10
# 或者是使用screen + apptainer shell 方式启动
screen apptainer shell cp2k-opensource_2025.2-force-avx512.sif
# 具体使用方式
# apptainer exec cp2k-opensource_2025.2-force-avx512.sif mpirun -np <Input thread count> cp2k.psmp -i [Your Input].inp -o [Your Output].out
# 或者是使用screen + apptainer shell 方式启动
apptainer shell cp2k-opensource_2025.2-force-avx512.sif
# <在新的shell内部>
mpirun -np <Input thread count> cp2k.psmp -i [Your Input].inp -o [Your Output].out
######################################
# 6.如果你想运行cp2k的regtest
apptainer shell cp2k-opensource_2025.2-force-avx512.sif
# 然后在容器内部运行
python /opt/cp2k/tests/do_regtest.py --mpiranks 2 --ompthreads 2 --maxtasks $(nproc) --keepalive --workbasedir /tmp --mpiexec "mpirun $MPI_RUNVAR -np {N}" $(dirname $(which cp2k.psmp)) psmp
复制代码
如果用户重新登录了,只要找到 4提示的sh文件位置,source后正常使用
如果你想看更形象一点的使用demo的话,可以查看这个
Demo
3. 构建镜像
(更详细的信息 请参照 构建程序
链接
)
(构建过程所有文件已经
开源
)
构建机要求:
需要有podman, uv
,同时需要有
良好
的网络连接
推荐使用 Debian / WSL2 或 VMWare 进行编译
前置条件
# 0. cd 到 clone下来的目录
# cd HPC-Container-Factory
# 1. Python 依赖
uv venv venv
uv pip install -r requirements.txt --python ./venv/bin/python
# 2. 需要 Podman
podman info
# 3. 需要 clone spack
# 下载 Spack v1.1.0 release tarball
mkdir -p assets
curl -fSL -o assets/spack-v1.1.0.tar.gz \
https://github.com/spack/spack/releases/download/v1.1.0/spack-1.1.0.tar.gz
# 解压出 spack-src/(bootstrap 阶段需要)
tar -xzf assets/spack-v1.1.0.tar.gz -C assets/
mv assets/spack-1.1.0 assets/spack-src
# 4. 激活环境
source ./activate.sh
# 5. 准备离线资源 (spack 源代码包)
python generate.py assets --env cp2k-opensource-2025.2-force-avx512
# 预计输出
# [OK] All packages available in mirror
# 6. 构建
python generate.py build --app-version cp2k-opensource-2025.2-force-avx512 --network-host
# 构建过程较慢 大概需要45 min +
# 预计输出
# Successfully tagged localhost/cp2k-opensource:2025.2-force-avx512
# 7. 转换为 SIF文件
python generate.py build-sif --app-version cp2k-opensource-2025.2-force-avx512
# 首次使用需要安装apptainer (需要一些时间)
# 产出文件在 artifacts
# 8. 运行
source ./activate.sh
apptainer shelll artifacts/cp2k-opensource_2025.2-force-avx512.sif
# 9. [可选] 打包apptainer 便于分发至其他机器
python generate.py pack-apptainer
# 产物在 artifact/apptainer-<version>-x86_64.run
复制代码
如果有需要的话,构建产物可以随意分享(MIT协议)
Happy Computing!
欢迎光临 计算化学公社 (http://bbs.keinsci.com/)
Powered by Discuz! X3.3