软件环境

分子动力学软件

LAMMPS、PLUMED、GROMACS和SPPARKS的版本、编译环境、输入及运行方式。

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

各章节保留原指南中的版本、平台、操作示例与适用边界;章节日期不同,使用时按所列版本核对。全部软件分项

环境与使用说明#

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 加速版。

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

查看配图

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

100%查看原图 ↗