VASP GPU 加速专题二:VASP 多版本与扩展功能支持
按研究任务选择VASP版本和扩展构建。
阅读本篇目录
材料计算往往需要同时解决两类问题:计算资源是否合适,以及软件是否具备所需功能。复现已有工作可能需要旧版 VASP,过渡态计算需要 VTST,溶液环境研究需要 VASPsol,二维材料的晶胞优化可能需要 optcell。这些需求还涉及编译器、MPI、数学库以及 CPU/GPU 平台之间的匹配。
鸢算科技 HPC 集群已为这些工作流准备多版本、分功能的 VASP 构建,覆盖 8173m CPU、P100 GPU 和 V100 GPU。用户可以按研究任务选择版本和扩展,通过环境模块加载程序,并使用 yskit 获取相应的 Slurm 提交脚本。
目前公共部署覆盖 6 个 VASP 发布版本、100 套构建、300 个可执行程序。其中 GPU 部分覆盖 5 个发布版本、6 类构建、P100/V100 两个平台,共 60 套构建、180 个可执行程序。
这里的“一套构建”指一个确定的“VASP 版本 × 功能分支 × 平台”组合,每套提供 vasp_std、vasp_gam、vasp_ncl 三个程序。300 个程序并不代表 300 个不同的 VASP 发布版本,也不代表每个扩展在三种程序中都没有使用限制。
1. 从旧版复现到新版本计算,六个版本均有公共入口#
集群保留 VASP 5.4.4,并提供多个 VASP 6.x 版本,方便用户保持既有计算流程,或者在对照验证后使用较新版本。每个版本的支持范围如下。
| VASP 版本 | 8173m CPU 已部署分支 | P100 GPU 已部署分支 | V100 GPU 已部署分支 |
|---|---|---|---|
| 5.4.4 | 普通版、VTST、optcell、Wannier90、VASPsol、VTST + VASPsol++、BEEF | 暂无正式公共构建 | 暂无正式公共构建 |
| 6.3.2 | 普通版、VTST、optcell、Wannier90、VASPsol、HDF5、VTST + VASPsol++、CP-VASP | 普通版、VTST、optcell、Wannier90、VASPsol、HDF5 | 普通版、VTST、optcell、Wannier90、VASPsol、HDF5 |
| 6.4.2 | 普通版、VTST、optcell、Wannier90、VASPsol、HDF5、CP-VASP | 普通版、VTST、optcell、Wannier90、VASPsol、HDF5 | 普通版、VTST、optcell、Wannier90、VASPsol、HDF5 |
| 6.4.3 | 普通版、VTST、optcell、Wannier90、VASPsol、HDF5 | 普通版、VTST、optcell、Wannier90、VASPsol、HDF5 | 普通版、VTST、optcell、Wannier90、VASPsol、HDF5 |
| 6.5.1 | 普通版、VTST、optcell、Wannier90、VASPsol、HDF5 | 普通版、VTST、optcell、Wannier90、VASPsol、HDF5 | 普通版、VTST、optcell、Wannier90、VASPsol、HDF5 |
| 6.6.1 | 普通版、VTST、optcell、Wannier90、VASPsol、HDF5 | 普通版、VTST、optcell、Wannier90、VASPsol、HDF5 | 普通版、VTST、optcell、Wannier90、VASPsol、HDF5 |
| 平台 | 发布版本数量 | 构建数量 | 可执行程序数量 |
|---|---|---|---|
| 8173m CPU | 6 | 40 | 120 |
| P100 GPU | 5 | 30 | 90 |
| V100 GPU | 5 | 30 | 90 |
| 合计 | 6 个不同发布版本 | 100 | 300 |
不同分支分别编译、分别安装。例如,VASPsol 分支包含对应溶剂模型,optcell 分支包含晶胞约束补丁;只有明确标注的 VTST + VASPsol++ 是组合构建。选择一个扩展分支,不意味着其他扩展也同时包含在内。
2. 各类扩展能帮助用户完成什么工作#
普通版:日常第一性原理计算#
普通版用于常规能量、力、结构优化和电子结构计算,具体物理功能取决于所选版本及程序。CPU 和 GPU 普通版分别提供入口,用户可以保持相同科学输入开展对照,再根据体系规模、k 点和计算方法选择计算资源。
每套构建的三个程序对应不同任务:vasp_std 为标准程序,vasp_gam 用于适用的 Gamma-only 计算,vasp_ncl 用于非共线磁性及 SOC 等任务。单 k 点并不自动意味着可以使用 vasp_gam,还需要确认实际 k 点和科学设置符合该程序要求。
VTST:过渡态搜索与反应路径#
VTST 分支面向 NEB、dimer 及相关优化工作流,方便开展扩散、迁移、表面反应和势垒计算。集群已提供六个版本的 CPU 构建,以及五个 VASP 6.x 版本的 P100/V100 构建。
GPU VTST 构建可以使用 VASP 的 GPU 电子结构计算能力,但这不表示路径处理和所有优化步骤都在 GPU 上执行。集群还单独部署了 VTST scripts 1040,用于图像生成、结构处理和能垒分析;它与编入 VASP 的 VTST 源码版本分别管理。
optcell:按研究需要约束晶胞优化#
optcell 分支通过 IOPTCELL 等对应补丁设置约束晶胞自由度,适合需要固定部分晶格方向的计算,例如保留二维体系真空方向、只放松指定晶格方向等。晶胞约束与原子的 Selective dynamics 是两个不同层面的控制。
六个版本均有 CPU 构建,五个 VASP 6.x 版本均有 P100/V100 构建。使用时应根据相应补丁的参数含义设置输入,避免直接把另一个版本的配置照搬过来。
Wannier90:从 VASP 结果接入 Wannier 工作流#
Wannier90 分支提供 VASP–Wannier90 接口,可生成局域化所需的接口数据,也可在 VASP 中调用已链接的 Wannier90 库。VASP 5.4.4 CPU 构建链接 Wannier90 2.1.0;五个 VASP 6.x 版本的 CPU/GPU 构建链接 Wannier90 3.1.0。
在 GPU 构建中,VASP 的电子结构部分可以使用 GPU,Wannier90 库内的局域化仍在 CPU 上执行。调用库也不等同于启动独立的 wannier90.x。需要独立局域化或后处理时,可使用集群已部署的 Wannier90 程序;3.1.0 的 wannier90.x 和 postw90.x 均有 8173m MPI 构建及提交脚本。
VASPsol:隐式溶剂与电解质环境#
经典 VASPsol 分支面向隐式溶剂、界面和相关电化学研究。六个版本均有 CPU 构建,五个 VASP 6.x 版本均有 P100/V100 构建。
GPU 分支采用 VASPsol_gpu 的适配源码,已开展对应溶剂算例的能量、力及 FERMI_SHIFT 等检查。因此,集群的 GPU 支持不仅覆盖普通真空计算,也为适用的溶剂模型工作流提供了公共入口。经典 VASPsol 使用 sol 简称,与下面的 sol++ 分支区分。
VTST + VASPsol++:溶剂环境下的组合功能#
集群提供 VASP 5.4.4 和 6.3.2 的 CPU 组合构建,将 VTST 与 VASPsol++ 接入同一程序。用户可以在对应模型和输入条件下开展溶剂环境中的优化、路径及电化学相关计算。这两个组合分支目前属于仅支持 CPU 交付,暂不支持 GPU 部署。
CP-VASP:恒电势电化学计算#
集群已部署 CP-VASP v2 的两个 CPU 分支:VASP 6.3.2 基于 VASPsol++,VASP 6.4.2 基于经典 VASPsol。它们为恒电势工作流提供程序入口,需要按照各自溶剂模型和电势定义设置参数。
两个分支的输入约定和收敛行为不能直接视为相同。生产任务应使用对应版本的已验证配置,并检查目标电势、电子自洽及优化过程的实际收敛情况。
BEEF:BEEF-vdW 与能量集合分析#
VASP 5.4.4 CPU 的 BEEF 分支静态链接 libbeef 0.1.3,为适用的 BEEF-vdW 计算及能量集合分析提供支持,并配套部署 bee 工具。
此分支目前没有正式 GPU 构建。尤其需要区分程序存在与功能覆盖:5.4.4 的 vasp_ncl 不具备与标准程序相同的完整 BEEF-vdW 非局域功能,不能仅凭目录中有该程序就推断所有组合都可用。
HDF5:结构化输出与 Python 后处理#
五个 VASP 6.x 版本均提供 CPU/P100/V100 的 HDF5 分支,可以生成结构化结果供 py4vasp 读取。集群已单独部署 py4vasp 0.11.3,方便用户通过 Python 分析结构、能量、力及相应电子结构输出。
HDF5 扩展改善的是数据存储和访问方式,不是一种新的计算精度或独立加速算法。当前链接的是匹配编译器的串行 HDF5 I/O 库,VASP 计算仍可使用 MPI 并行。波函数 HDF5 重启已经验收;电荷密度读回和旧格式文件保留方式需按对应版本说明设置,不能默认用 HDF5 密度文件替代所有 CHGCAR 工作流。
3. 编译环境与硬件相匹配#
集群按平台分别构建程序,避免用户自行组合不匹配的 Fortran 库、MPI 和 GPU 工具链。主要编译环境如下。
| 构建范围 | 编译环境 | MPI 与数学库 | 平台优化 |
|---|---|---|---|
| 新编 VASP 5.4.4 CPU 扩展 | Intel oneAPI 2023.2,ifort/icc | Intel MPI、MKL | 8173m,采用已确认的 AVX-512 配置 |
| 新编 VASP 6.x CPU 常规扩展 | Intel oneAPI 2024.2,ifx/icx | Intel MPI、MKL 2024.2 | 8173m,多数使用 -xCORE-AVX512;普通 6.6.1 及其 HDF5 构建沿用 -xHOST |
| VASPsol++ 与部分兼容性 CPU 分支 | 按分支使用 oneAPI 2023.2/ifort | 匹配的 Intel MPI、MKL | 保留各分支已批准配置,以交付记录为准 |
| P100 GPU | NVIDIA HPC SDK 25.3,nvfortran,OpenACC,CUDA 12.8 | NVHPC 自带 HPC-X 2.22.1/Open MPI 4.1.7rc1、MKL 2023.2、CUDA 数学库 | GPU 目标 cc60,宿主 CPU 使用 -tp host |
| V100 GPU | NVIDIA HPC SDK 25.3,nvfortran,OpenACC,CUDA 12.8 | NVHPC 自带 HPC-X 2.22.1/Open MPI 4.1.7rc1、MKL 2023.2、CUDA 数学库 | GPU 目标 cc70,宿主 CPU 使用 -tp host |
旧普通版的历史配置与后续重编分支分别记录,不把新分支的全部优化选项追认到旧程序。GPU 构建中的 oneAPI 主要提供 MKL;Fortran 编译器使用 NVHPC。VASP GPU 使用的 MPI 也应与上述工具链匹配,不能随意改用另一个公共 MPI 模块。
Wannier90、HDF5 等含 Fortran 接口的库均按对应编译器分别构建。环境模块负责加载相应运行环境,用户通常不需要手工拼接这些依赖路径。
4. CPU、P100 与 V100 如何选择#
| 资源 | 主要特点 | 使用时需要关注 |
|---|---|---|
| 8173m CPU | 每节点 56 核,提供全部六个版本和更广的组合扩展 | 按整节点 56 核申请;适合 CPU 专属分支及 CPU/GPU 对照 |
| P100 GPU | 16 GB 显存,具有双精度计算能力 | 根据体系、能带和 k 点选择卡数;使用 P100 对应构建 |
| V100 GPU | 集群提供 16 GB 和 32 GB 显存节点 | 显存容量与所选分区匹配;使用 V100 对应构建 |
GPU 是否划算、增加卡数是否更快,取决于实际任务。原子数、不可约 k 点、能带数量、计算方法以及 KPAR、NSIM 等参数都会影响运行时间和显存。小体系可能受到启动或通信开销限制,大体系也可能首先受到显存约束。
集群已完成 Si 多尺寸、不同 k 点密度及单/双/四/八卡等测试,并整理了性能、显存和核时分析。用户可先参考我们发布的《VASP GPU 加速专题四:性能实测》,再用自己的算例做短测试。yskit 还提供显存估算功能,用于资源选择;估算范围不能替代实际计算的显存检查。
5. 使用入口:选择分支、复制脚本、提交计算#
公共模块采用统一命名。普通版为 vasp/<版本>-<平台>,扩展版追加功能后缀。
| 所需程序 | 模块示例 |
|---|---|
| CPU 普通版 | vasp/6.6.1-8173m |
| P100 VTST | vasp/6.4.3-p100-vtst |
| V100 optcell | vasp/6.5.1-v100-optcell |
| P100 Wannier90 | vasp/6.4.2-p100-wannier90 |
| V100 VASPsol | vasp/6.6.1-v100-sol |
| CPU VTST + VASPsol++ | vasp/6.3.2-8173m-vtst-sol++ |
| CPU CP-VASP | vasp/6.3.2-8173m-cpvasp |
| CPU BEEF | vasp/5.4.4-8173m-beef |
| V100 HDF5 | vasp/6.6.1-v100-hdf5 |
查看模块与确认程序入口:
module avail vasp/
module load vasp/6.6.1-v100-sol
which vasp_std
这些命令用于选择和确认环境,正式计算通过 Slurm 提交。运行 yskit,进入 “复制 Slurm 脚本” → 用户类型 → VASP → 功能分支 → 版本 → 平台,选择已提供的模板,即可复制到当前计算目录。公共脚本集中在:
/public/slurm_scripts/hs_user/vasp/<功能分支>/<版本>/<平台>/
/public/slurm_scripts/tc_user/vasp/<功能分支>/<版本>/<平台>/
模板列表以实际可用入口为准,账户可用分区也须匹配;部分构建没有独立模板,不能根据构建数量推算脚本数量。
GPU VASP 模板采用 每张 GPU 对应一个 MPI 进程,每个进程使用一个 CPU 核心。从单卡改成多卡时,同步修改 --gres 的 GPU 数量和 --ntasks,保持 --cpus-per-task=1;KPAR、NSIM 仍需根据实际算例选择。8173m 模板按每节点总计 56 核使用。修改完成后,在包含计算输入的目录执行 sbatch 实际提交脚本名.sh。
6. 计算前后都有配套工具#
VASP 的完整工作流还包括输入准备、结果检查和后处理。集群已部署相应公共工具,让用户可以在同一环境中完成多个步骤。
| 工作环节 | 配套工具与用途 |
|---|---|
| 建模与输入准备 | VASPKIT、qvasp、ASE、pymatgen,辅助结构处理及计算输入准备 |
| 作业与资源选择 | yskit,复制 Slurm 模板、配置适用的 DP-GEN 工作流、估算 VASP GPU 显存 |
| 反应路径处理 | VTST scripts,处理 NEB 图像、结构和能垒数据 |
| 电荷与化学键分析 | Bader、LOBSTER、Multiwfn nogui,按各自要求读取相应输出 |
| Wannier 工作流 | Wannier90 及相关后处理工具,接续接口数据、局域化和电子结构分析 |
| Python 结果读取 | py4vasp、ASE、pymatgen,支持脚本化分析与数据整理 |
使用后处理工具前,应确认 VASP 已输出所需文件。例如,HDF5 输出设置会影响旧格式文件的输出路线,而一些分析程序仍需要 CHGCAR、WAVECAR 或专门的投影数据。
7. 支持不仅是编译完成,还包括对应算例验收#
集群的各功能分支保留了配置、补丁、编译和验收记录。不同分支按用途开展检查:Wannier90 检查接口、内部局域化及独立后处理;VASPsol 检查能量、力和 FERMI_SHIFT;HDF5 检查结构化输出、py4vasp 读取和波函数重启。
针对“GPU 计算是否与 CPU 一致”,还单独完成了 VASP 6.6.1 的能量、非零力和电子结构对照。在对应的非磁性 PBE Si 测试中,GPU 与 CPU 的最大力分量差约为 2.67 × 10⁻⁶ eV/Å,指定低能带能区的最大本征值差约为 0.002 meV。这些结果支持已验证设置下的 CPU/GPU 一致性;计算方法、能区、收敛条件及空带影响见《VASP GPU 加速专题三:计算准确性》。
模块和二进制数量按实际部署核对,功能验收按各分支记录判断。小型安装算例通过,不等同于全部泛函、磁性、SOC、长时间动力学和生产规模参数都已完成回归。
几个已知边界也需要在选用时核对:CPU Wannier90 的部分版本对 exclude_bands、SOC 投影或 Gamma 的 UMCO 参数有特定限制;5.4.4 的 VTST + VASPsol++ 和 BEEF 验收记录保留了 Gamma 力异常,相关任务优先使用已验证的标准程序。具体触发条件和有效输入以对应交付记录为准。
8. 门户、AI 助手和公共工具共同辅助工作流#
鸢算科技 HPC 集群提供网页门户,用户可查看计算节点在线状态、GPU 使用情况和可用 CPU 核心,跟踪自己的运行及排队作业,并查询存储空间、核时余额、套餐资源和到期时间。
集群还提供 Codex AI 智能体,可辅助检查输入和提交脚本、整理计算结果、编写分析代码及串联工作流。用户可以结合明确的研究目标和已有结果开展这些操作,科学参数和结论仍需依据实际输出及收敛测试判断。
多版本 VASP、按平台编译的扩展、公共模块、yskit 和配套分析工具,使用户能够把更多时间用于建立可靠的计算方案、完成对照和分析研究结果。
合集
《VASP GPU 加速专题一:发展历程、GPU选型》
《VASP GPU 加速专题二:VASP 多版本与扩展功能支持》
《VASP GPU 加速专题三:性能实测》
《VASP GPU 加速专题四:计算准确性》
《VASP GPU 加速专题五:加速参数选择》
《VASP GPU 加速专题六:显存容量规划》