ABACUS NEP:个人目录编译与环境使用
固定3.11.0-beta10和NEP_CPU源码,在个人目录编译独立环境,直接复用到单点、MD和MPI算例。
阅读本篇目录
已有GPUMD训练好的nep.txt,想在ABACUS中计算能量、力或运行分子动力学,可以使用NEP_CPU接口。本组以实际运行过的Si NEP4模型演示。它调用机器学习势,不是在每一步重新进行DFT自洽。
当前公共模块为ABACUS 3.10.1;本组使用独立编译的3.11.0-beta10及固定NEP_CPU。环境只写入资料包目录,不修改公共模块和个人.bashrc。模型与脚本可以下载,不分发第三方编译程序。
unzip abacus-beta10-NEP-wave674-*.zip
cd abacus-beta10-NEP
bash results.sh
bash plot.sh
以上两步读取本集群已完成的参考数据并重绘,不启动计算。inputs/存放完整输入,reference-data/是参考表,新计算写入work/,新提取表写入results/。每个资料包都附独立环境的编译脚本;已有本篇环境时可复用,无需反复编译。
1. 下载固定源码#
bash download.sh
cat SOURCE-LOCK.json
脚本从ABACUS官方仓库及NEP_CPU上游仓库下载固定归档,校验SHA256后解压到toolchain/sources/。ABACUS归档中的CITATIONS.md文档软链接不参与编译,脚本仅解压普通源码及目录;没有改动计算实现。下载失败可检查网络后重试;源码目录已生成时不要覆盖,保留后继续编译。
2. 提交编译任务#
sbatch build.slurm
squeue -u "$USER"
tail -f build-作业号.log
请把作业号换成提交返回的数字。编译脚本申请56核整节点、实际最多16个并行编译进程;cmake主要设置如下,完整参数见build.py:
CMAKE_C_COMPILER=icx
CMAKE_CXX_COMPILER=icpx
CMAKE_Fortran_COMPILER=ifx
MPI_CXX_COMPILER=mpiicpx
ENABLE_MPI=ON
ENABLE_OPENMP=OFF
ENABLE_LCAO=OFF
ENABLE_ELPA=OFF
ENABLE_LIBRI=OFF
ENABLE_LIBXC=OFF
ENABLE_MLALGO=OFF
USE_CUDA=OFF
MKL_THREADING=sequential
CMAKE_CXX_FLAGS=-O2 -xCORE-AVX512
本地安装位置为:
ls toolchain/install/abacus/bin/abacus
ls toolchain/install/nep/lib/libnep.so
cat toolchain/BUILD-FINISHED.json
最后一个JSON的passed为true且可执行文件存在,才继续提交计算。源码下载和编译不会替代公共abacus命令;运行脚本显式选择这里的程序。
3. 运行第一个例子#
cat inputs/abacus-static/Si8-case2/INPUT
sbatch job.slurm
该包依次运行4个Si单点以及18个有限差分能量例,CPU时间很短。job.slurm自动复制输入、调用本地程序并提取数据;work已存在时会停止,避免覆盖已有结果。不要为重跑直接删除唯一结果,可另解压一个新目录。
cat results/singlepoint.csv
cat results/finite-differences.csv
4. 其他资料包复用同一环境#
以分子动力学包为例,在新包目录执行:
bash use-toolchain.sh ../abacus-beta10-NEP/toolchain/install
cat TOOLCHAIN_PATH
sbatch job.slurm
这个选择只写入当前目录的TOOLCHAIN_PATH。如果两个目录不相邻,传入已编译环境的完整路径即可。运行脚本自动设置NEP动态库路径,并限制每个MPI进程的数学库线程为1。
模型适用于本组Si教学构型;扩展到其他元素、温度、缺陷或相变前,应使用适合目标体系的势并检查训练覆盖。接下来可按单点与GPUMD对照、力与维里单位、MD和续算依次操作。