分子动力学软件
LAMMPS、PLUMED、GROMACS和SPPARKS的版本、编译环境、输入及运行方式。
阅读本篇目录
各章节保留原指南中的版本、平台、操作示例与适用边界;章节日期不同,使用时按所列版本核对。全部软件分项
环境与使用说明#
5.4 LAMMPS 与 PLUMED#
增加GPU前,参阅逐软件多卡修改说明,同步核对资源、启动命令和输入限制。
通用 LAMMPS 安装根目录包括:
| 构建 | 安装根目录 |
|---|---|
| 29Aug2024 Update 4 | /public/software/lammps/29Aug2024_update4 |
| 22Jul2025 Update 6 | /public/software/lammps/22Jul2025_update6 |
DeePMD 配套构建按下表分别安装,不只根据 LAMMPS 日期选择可执行程序。
| DeePMD 版本 | LAMMPS 安装目录名,位于 /public/software/lammps |
|---|---|
| 2.2.11 | 2Aug2023_update4-deepmd-2.2.11-source |
| 3.0.0rc0 | 29Aug2024_update4-deepmd-3.0.0rc0-source |
| 3.0.1 | 29Aug2024_update4-deepmd-3.0.1-source |
| 3.1.3 | 22Jul2025_update6-deepmd-3.1.3-source |
| 3.2.0 | 22Jul2025_update6-deepmd-3.2.0-source |
配套构建按 {p100,v100}/{gpu,kokkos} 区分,内置 DeePMD 和 PLUMED 2.9.5。PLUMED 安装在 /public/software/plumed/2.9.5/deepmd-kit-<版本>,启用 crystallization、opes、ves、funnel,不启用 PLUMED 的 pytorch 模块。
公共脚本位于 /public/slurm_scripts/{hs_user,tc_user}/lammps,目录名同时标明 LAMMPS、DeePMD 和 PLUMED 版本。GPU 包与 KOKKOS 的启动参数不同,优先选择相应模板。
3.2.0 的 V100 deepmd/kk 图模型路径已做定向验证;P100 受该路径使用的 Triton 算力要求限制,不能把“已编译注册”理解为该路径可用。2.2.11 配套使用普通 pair_style deepmd,没有 deepmd/kk。
LAMMPS / PLUMED 编译方式与环境#
DeePMD 配套 LAMMPS 使用 CMake,内置集成 DeePMD 与 PLUMED,不是启动时要求用户执行 plugin load 的部署。每个 DeePMD 版本对应独立前缀,P100/V100 再各分 GPU 包和 KOKKOS 两套,共四套。
| 构建项 | 已交付方式 |
|---|---|
| C/C++ 工具链 | 与对应 DeePMD 源码栈匹配,见上一节 GCC/CUDA 版本表 |
| MPI | HPC-X 2.50 原装 /public/toolkit/hpcx/2.50/ompi5;3.2.0 记录为 Open MPI 5.0.10rc2 |
| GPU 包 | CUDA 构建,P100/V100 分目标;GPU_PREC=mixed |
| KOKKOS | CUDA 后端,分别匹配 Pascal60/Volta70;保留上游数值精度配置 |
| PLUMED 接口 | 内置 LAMMPS 接口,运行脚本指向匹配的 PLUMED kernel |
| 精度边界 | GPU 包 mixed 不等于 DeePMD 模型、TF/PT 或整套 KOKKOS 全部变为 mixed |
| 构建范围 | 3.2.0 使用 most.cmake 包集合加 PLUMED;旧版包集合与兼容修改查各自记录 |
PLUMED 2.9.5 从源码通过 configure → make → make install 构建,各 DeePMD 环境独立安装。使用匹配的 MPI C/C++ 包装器,链接各自环境的 BLAS/LAPACK、GSL、FFTW,提供共享库与 Python 接口。已启用 MPI、rpath,并明确增加 crystallization、opes、ves、funnel;关闭 libtorch / pytorch 模块。这四个是指定增加的模块,不表示程序只有四个模块。
3.2.0 配套 PLUMED 最终构建采用 -O3 -march=haswell -ffp-contract=off;其他版本应以各自最终日志为准,不能仅因同为 2.9.5 就认定依赖 ABI 完全相同。
GROMACS 使用的 PLUMED 2.9.4 是另两套环境:CPU 为 oneAPI 2024.2 / Intel MPI,GPU 为 GCC / Open MPI 5.0.10。不要把这两套旧模块叠加到 DeePMD 2.9.5 的作业环境。来源见 PLUMED 索引。
通用 LAMMPS 是另一套源码交付,每个日期版本有 8173m、P100 GPU/KOKKOS、V100 GPU/KOKKOS 五套:
| 通用构建 | 编译与依赖 |
|---|---|
| CPU 8173m | oneAPI 2024.2、Intel MPI、匹配的 PLUMED 2.9.4 |
| P100 / V100 | GCC、独立 Open MPI 5.0.10、CUDA 12.8、MKL、匹配的 PLUMED 2.9.4 |
| GPU 包 | mixed 精度 |
| KOKKOS / LAMMPS 22Jul2025 Update 6 | 双精度;Kokkos 4.6.2 |
| KOKKOS / LAMMPS 29Aug2024 Update 4 | 双精度;Kokkos 4.3.1 |
PLUMED 2.9.4 的 CPU 构建通过 mpiicx/mpiicpx、ifx 编译,目标 skylake-avx512,MKL LP64 sequential,启用 GSL/zlib/OpenMP,关闭 Python 接口。它不适用于 P100 的 Haswell CPU。通用版与 DeePMD 配套版即使 LAMMPS 日期相同,也不意味着包集合、MPI 或依赖相同。来源:LAMMPS 部署索引、PLUMED 2.9.4 CPU 配置。
已保留的旧 DeePMD/PLUMED 配套 LAMMPS#
| LAMMPS版本 | 路径 | 配套关系 |
|---|---|---|
| 22Jul2025 Update6 | /public/software/lammps/22Jul2025_update6-deepmd-3.2.0-plumed-2.9.4 |
旧离线DeePMD3.2.0库、PLUMED2.9.4,P100/V100 × GPU/KOKKOS四套 |
该套程序仍在公共目录,使用普通deepmd路径;不要与*-deepmd-3.2.0-source及PLUMED2.9.5混用。旧LJ/PLUMED短测试曾通过,但真实模型V100多卡测试有未解决失败,不能按“已安装”判断生产可用。新任务选择当前源码配套模板。原始编译脚本、验证边界见旧部署记录。
PLUMED版本与宿主对应表#
| 版本 | 安装前缀 | 构建及使用关系 |
|---|---|---|
| 2.9.4 | /public/software/plumed/2.9.4 |
oneAPI2024.2/Intel MPI与GCC/Open MPI5.0.10分别构建,供通用LAMMPS/GROMACS使用;模块plumed/2.9.4-oneapi2024.2与plumed/2.9.4-gcc-openmpi5.0.10 |
| 2.9.5 | /public/software/plumed/2.9.5/deepmd-kit-<版本> |
各DeePMD源码环境独立构建,原装HPC-X MPI;crystallization/opes/ves/funnel,无pytorch模块 |
| 2.9.3 | /public/software/cp2k/deps/2025.2/8173m/plumed-2.9.3 |
oneAPI工具链,供CP2K2025.2 CPU使用;opes/ves/funnel,无pytorch/libtorch |
| 2.9.3 | /public/software/cp2k/deps/2025.2/p100/plumed-2.9.3 |
GNU13.3、私有MPICH4.3.1,供CP2K2025.2 P100使用;opes/ves/funnel,无pytorch/libtorch |
| 2.9.3 | /public/software/cp2k/deps/2025.2/v100/plumed-2.9.3 |
GNU13.3、私有MPICH4.3.1,供CP2K2025.2 V100使用;opes/ves/funnel,无pytorch/libtorch |
| 2.10.1 | /public/software/cp2k/deps/2026.2/<平台> |
CP2K工具链配套,随CPU/P100/V100环境使用;opes/ves/funnel,无pytorch模块 |
| 2.10.1 | /public/software/gpumd/deps/plumed/2.10.1/gcc-13.3 |
GCC13.3、OpenMP、无MPI,供GPUMD使用;opes/ves/funnel,无pytorch模块 |
同一版本的不同工具链构建不能任意互换kernel;PLUMED2.10.1不包含旧crystallization模块。
LAMMPS:提交与模式选择#
以 DeePMD 3.2.0 + PLUMED 2.9.5 的 P100 GPU 包构建为例:
cp -i /public/slurm_scripts/hs_user/lammps/22Jul2025_update6-deepmd-3.2.0-plumed-2.9.5/p100/gpu/sub_lammps_p100_gpu.sh .
sbatch sub_lammps_p100_gpu.sh in.lammps deepmd
准备 in.lammps 及其引用的结构、势函数或模型。若使用 PLUMED,还需输入中启用相应 fix 并提供 PLUMED 输入文件;安装了 PLUMED 不代表普通模拟自动施加偏置。
| 模式 | 适用内容 | 注意事项 |
|---|---|---|
deepmd |
普通 DeePMD TF/PT 模型 | 后端使用 GPU,不自动为所有 pair_style 加 /kk |
classic |
支持所选加速包的传统势 | GPU 与 KOKKOS 的加速参数由各自模板处理 |
deepmd-kk |
相应图模型及 deepmd/kk | 当前 3.2.0 要选 V100 KOKKOS 模板;P100 GPU 模板会拒绝 |
以上模式参数以这套 3.2.0 模板为准,其他版本先阅读其脚本头部。输出日志名可能带作业编号,例如 log.lammps.12345;检查实际运行步数、温压/能量、报错和结束信息。PLUMED 的 COLVAR/HILLS 等输出取决于具体输入动作,不是每次运行都会生成。
单/双卡比较时,除了是否完成,还应比较物理量、每步时间和重复运行的一致性。不同浮点归约顺序会造成数值差异,不应要求长时间混沌轨迹逐帧完全一致。
5.6 GROMACS#
增加GPU前,参阅逐软件多卡修改说明,同步核对资源、启动命令和输入限制。
| 版本 | 平台 | 构建类型 | 路径规则 |
|---|---|---|---|
| 2025.5 | 8173m、P100、V100 | threadmpi、mpi-plumed |
/public/software/gromacs/2025.5/<节点>/<构建类型> |
| 2026.3 | 8173m、P100、V100 | threadmpi、mpi-plumed |
/public/software/gromacs/2026.3/<节点>/<构建类型> |
两类构建均采用 mixed 精度。threadmpi 使用内部线程 MPI;mpi-plumed 使用外部 MPI,并配套 PLUMED 2.9.4。
公共脚本位于 /public/slurm_scripts/{hs_user,tc_user}/gromacs。准备 md.tpr;需要 PLUMED 时另准备与体系匹配的 plumed.dat。
thread-MPI 的 -ntmpi/-ntomp 与外部 MPI 的进程配置不同,不能只调整 Slurm 的 --ntasks 就认为完成了多卡配置。已有 CPU 水盒验证与其他构建的验证范围见 GROMACS 记录。
GROMACS 编译方式与环境#
2025.5 与 2026.3 均按三种硬件、两类并行模式从源码 CMake Release 构建,采用共享库、OpenMP 和 mixed 精度(GMX_DOUBLE=OFF)。
| 项目 | 8173m | P100 / V100 |
|---|---|---|
| 编译器 | oneAPI 2024.2.1 | GCC/G++ 13.3.0 |
| CPU SIMD | AVX_512 |
AVX2_256 |
| GPU | CPU 后端 | CUDA 12.8,nvcc 12.8.93;sm_60 / sm_70 |
| FFT | FFTW;BLAS/LAPACK 链接 MKL | FFTW 3.3.10 + cuFFT;内部 BLAS/LAPACK |
| 外部 MPI 构建 | Intel MPI 2021.13 | Open MPI 5.0.10,独立 CUDA12.8 前缀 |
| PLUMED kernel | 2.9.4 oneapi2024.2 | 2.9.4 gcc-openmpi5.0.10 |
threadmpi 开启内部线程 MPI、关闭 PLUMED;mpi-plumed 设置 GMX_MPI=ON、GMX_THREAD_MPI=OFF、GMX_USE_PLUMED=ON。因此两种目录不只是不同启动脚本,而是编译配置不同的程序。
已有配置包含 TNG,关闭 hwloc/tracing;精确的 Colvars 版本随 GROMACS 版本而异,不统一填成同一版。动态库检查通过不等于 GPU 直接通信、跨节点或 PLUMED 偏置生产算例全部验证。相关编译配置来自用户回传及保存的版本/缓存信息,完整证据范围见 GROMACS 索引。
GROMACS:输入和输出#
当前模板默认读取 md.tpr,以 md 为输出前缀。TPR 应由与目标运行环境兼容的 GROMACS 工作流生成,并包含所需的拓扑、坐标和运行参数。
以核时用户 P100、2026.3 thread-MPI 为例:
cp -i /public/slurm_scripts/hs_user/gromacs/2026.3/p100/threadmpi/sub_gmx-2026.3-p100-threadmpi.sh .
sbatch sub_gmx-2026.3-p100-threadmpi.sh
模板内部已经设置 CPU 线程和 GPU offload 选项。当前单卡模板将 --cpus-per-task 直接传给 -ntomp;thread-MPI 改成多rank时,应将申请的总CPU分配给各rank,而不是继续把总CPU数当作每rank线程数。双卡、四卡替换示例见3.9节。PLUMED 任务应改选 mpi-plumed 模板并核对其输入,而不是只给 thread-MPI 命令追加 PLUMED 参数。
重点检查 md.log 的运行设备、步数与性能信息,保留续算需要的检查点。断点续算应核对原始输出和检查点的一致性,不在未检查的情况下覆盖原目录重新开始。
5.7 SPPARKS#
安装版本标识:08Oct25。8173m 程序位于:
/public/software/spparks/spparks-08Oct25/8173m/spparks
公共模板在 spparks/08Oct25/8173m 子目录,当前示例读取 in.potts。按实际模型修改输入文件,使用 CPU 分区提交。
SPPARKS 编译环境的已知范围#
当前 08Oct25 二进制和模板采用 oneAPI 2024.2 运行环境,通过 Intel MPI 启动,定位为 8173m CPU MPI 程序,脚本设 OMP_NUM_THREADS=1。目前项目未归档该二进制的完整编译命令、具体编译器版本及优化 flags;不能仅凭脚本加载 oneAPI 就断言原始 C++ 编译器必为 icpx,也不将它列为已编译 GPU 加速版。