ABACUS 专题

ABACUS:DeePKS与TDOFDFT独立环境

固定新版源码和DeePKS接口,在个人目录准备CPU环境,复用于机器学习修正和实时电子密度实例。

更新于 2026-11-11约 3 分钟阅读按任务与环境选择适用配置
阅读本篇目录

本组实例使用同一套独立CPU构建,完成DeePKS描述符、训练与自洽推断,以及TDOFDFT实时电子密度传播。首次准备环境后,其他包直接复用,不必反复编译。

公共ABACUS 3.10.1模块与本组固定的3.11.0-beta10分别使用。本组环境只写入解压目录,不修改公共module或个人.bashrc。

下载本篇输入、脚本与参考数据。

unzip abacus-ml-env-wave679-*.zip
cd abacus-ml-env
bash results.sh
bash plot.sh

以上仅读取已完成的参考数据并重绘,未启动新计算。reference-data/是本集群实算参考,重新执行的原生结果放在work/、提取的数值和图片放在analysis/。每次完整重算使用新解压的目录,避免覆盖已有结果。

1. 准备源码和Python依赖#

bash prepare.sh
cat SOURCE-LOCK.json

脚本下载以下固定来源并检查SHA256,解压到toolchain/sources/:

组件 本组固定版本
ABACUS 3.11.0-beta10,提交40e7ce8c575abb2ae7fc0df1bd6ec4b48a695d2d
DeePKS-kit develop提交bf7175bf5e887fa16f98becdcfb72d05528a5d82
libnpy 提交a445a8bce52569f01168e1b04b564ce5712c62b6
PyTorch 现有2.8.0+cu126,C++11 ABI
ruamel.yaml 0.17.40,安装在本目录toolchain/python

DeePKS旧版安装说明提到的abacus分支目前已不存在;本组固定了保留ABACUS接口的官方develop提交。源码准备同时处理归档版本元数据和NumPy公开API的兼容写法,未改变训练算法。

2. 提交编译#

sbatch build.slurm
squeue -u "$USER"
tail -f build-作业号.log

把作业号换成提交返回的数字。脚本申请56核整节点,最多16个并行编译进程。主要选项如下,完整设置在build.py:

ENABLE_MPI=ON
ENABLE_LCAO=ON
ENABLE_MLALGO=ON
ENABLE_ELPA=ON
ENABLE_LIBXC=ON
ENABLE_OPENMP=ON
ENABLE_LIBRI=OFF
USE_CUDA=OFF
MKL_THREADING=sequential
CMAKE_CXX_FLAGS=-O2 -xCORE-AVX512

编译器使用oneAPI 2024.2的icx/icpx/ifx,MPI为Intel MPI 2021.13,MKL为2024.2顺序库。ELPA与Libxc复用现有库。PyTorch发行包带CUDA依赖,编译阶段通过CUDA 12.8发现相关依赖;ABACUS的CUDA求解器未启用,本文计算和模型训练都走CPU。运行时OMP_NUM_THREADS和数学库线程均为1。

cat toolchain/BUILD-FINISHED.json
ls toolchain/install/bin/abacus

确认编译、安装均成功后继续。此构建面向AVX512 CPU,只提供本组所需功能;LibRI未启用,不应据此推断所有杂化泛函、BSE或其他专用功能都已具备。

3. 实例包选择环境#

进入DeePKS或TDOFDFT包,执行:

bash use-toolchain.sh ../abacus-ml-env/toolchain
cat TOOLCHAIN_PATH

目录不相邻时,填入已编译toolchain的完整路径。该选择只作用于当前包;env.sh自动设置程序、Python源码及动态库路径。

4. 接下来按顺序操作#

编译接口依据:ABACUS固定源码与安装说明。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗