LAMMPS 专题

LAMMPS UF3:KOKKOS与能量力对照

P100和V10016G的UF3能量、原子力及独立能量差分,包含实际命令与结果表。

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

同一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/,与参考数据分开。

UF3普通路径/KOKKOS原子力与能量差分对照

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结果均在附件中。不同硬件、并行划分和归约顺序会产生浮点差异,不应要求所有输出文件逐字节相同。更换模型后应重新核对元素映射、势适用范围和代表构型,而不是沿用本模型的误差数值。

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

查看配图

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

100%查看原图 ↗