LAMMPS UF3:KOKKOS与能量力对照
P100和V10016G的UF3能量、原子力及独立能量差分,包含实际命令与结果表。
阅读本篇目录
同一UF3模型在普通主机和KOKKOS后端计算时,先对照能量与力,再考虑速度。本例以小体系演示正确性对照,不做GPU性能排名。
1. 下载并读数据#
下载完整输入、实际输出、数据与绘图脚本,保存为example.zip:
python3 -m zipfile -e example.zip .
cd lammps-uf3-niobium
module load ase/3.29.0
bash read.sh
bash plot.sh
这两条脚本默认读取资料包已有结果,在analysis-read/生成CSV,在figures/出图。新计算单独写入work-new/,与参考数据分开。

2. 在哪个环境中计算#
使用LAMMPS 30Sep2026对应GPU构建(GCC 13.3、CUDA 12.8、OpenMPI 5.0.10)。
cat p100.slurm
cat v100.slurm
bash submit.sh
默认申请一张P100。V10016G在新的解压目录中用bash submit.sh v100。每次作业顺序运行两种后端,脚本自动选择相应模块,使用同一模型、元素顺序、输入结构和精度输出。
KOKKOS关键启动参数:
mpirun --bind-to none -np 1 "$LAMMPS_ROOT/bin/lmp" \
-k on g 1 -sf kk \
-pk kokkos newton on neigh half gpu/aware off -in in.lmp
普通主机路径使用同一个可执行文件,不加这些KOKKOS参数。GPU资源分配中的主机路径不等于独立CPU节点性能测试。
3. 能量差分怎么做#
本例对90°三原子结构的全部9个力分量,以及扰动BCC的3个分量做中心差分。步长分别为10⁻⁴和3×10⁻⁵ Å;每个后端20个基准几何外增加48次位移能量求值。
采用F≈-[E(x+h)-E(x-h)]/(2h)。位移前后必须保持同一个模型、盒子与其他原子位置;不是各自优化结构后比较能量。
bash read.sh work-new analysis-new
bash plot.sh analysis-new figures-new work-new
head -8 analysis-new/UF3-Nb-force-energy-difference.csv
head -5 analysis-new/UF3-Nb-energy-force-configurations.csv
4. 实际对照结果#
| 对照 | 本例最大差异 |
|---|---|
| 后端能量 | 2.66×10⁻¹¹ eV/atom |
| 后端原子力 | 2.05×10⁻¹² eV/Å |
| 原子力与独立能量差分 | 1.27×10⁻⁸ eV/Å |
两种硬件、两种后端的20个几何和短NVE结果均在附件中。不同硬件、并行划分和归约顺序会产生浮点差异,不应要求所有输出文件逐字节相同。更换模型后应重新核对元素映射、势适用范围和代表构型,而不是沿用本模型的误差数值。
需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。