VASP 并行参数优化

C. Qiu 于 2025-03-28 发布

单节点 48 核并行的 Gamma 点孤立体系参数优化

在拥有较多核心数的服务器上运行 VASP 进行 DFT 计算时,合理的并行参数设置对于提升计算效率至关重要。

特别是对于孤立体系(如分子、团簇、纳米管等)且仅使用 Gamma点 进行计算的情况,并行策略有其特殊性。

本文整理了相关参数作用和普遍接受的经验,目的是提醒像我一样的半路出家党,上了超算一定要关注并行计算效率,毕竟直接关乎有限经费的消耗速度。下面以宁夏超算中心单节点 48 核服务器为例,对 INCAR 的参数设置进行讨论。

核心并行参数解析

对于 Gamma 点计算,核心数将全部用于处理这一个 K 点,因此 K 点并行参数KPAR不再是优化的重点。我们的主要目标是优化节点内的核心协作。

1. NCORE (NPAR在 VASP < 5.4.4 使用,这里不讨论)

作用:控制多少个核心(core)协同处理一个能带(band)或 FFT 任务。总核心数(48)将被分为 NPROCS / NCORE 个组,每个组有 NCORE 个核心。

# INCAR
NCORE = 8   # 或 NCORE = 12,从这里开始测试

2. KPAR

作用:控制 K 点的并行。

:由于是 Gamma 点计算(NKPTS = 1),此参数无效或应明确设为1。

# KPAR = 1  # (默认值,对于Gamma点计算无需更改)

3. NSIM

作用:控制同时处理的能带块(block)的数量。与NCOREALGO协同工作。

:通常保持默认值 4 即可。在NCORE优化后,如果效率仍不理想,可以尝试 NSIM = 1NSIM = 8 并进行基准测试。

# NSIM = 4    # (默认值,通常不用调整)

电子迭代算法选择

ALGO

作用:选择电子自洽迭代(SCF)的算法。

孤立体系的特殊考虑

LREAL

作用:是否在实空间进行投影操作。对于超胞较大的孤立体系,可以显著加速计算。

推荐INCAR参数模板 (Gamma点, 48核单节点)

# --- General Settings ---
# PREC = Accurate       # 使用LREAL时推荐
# ENCUT = ...
# IBRION = ...          # e.g., 2 (CG) or 1 (RMM-DIIS) for opt, -1 for static
# NSW = ...             # Number of ionic steps
# ISIF = ...            # e.g., 2 or 3 for geometry optimization
# EDIFF = 1E-5          # SCF energy convergence criterion
# EDIFFG = -2E-2        # Ionic step convergence criterion (for forces)
# ISMEAR = 0            # Gaussian smearing, appropriate for isolated systems
# SIGMA = 0.05          # Small sigma for ISMEAR=0

# --- Parallelization Settings ---
NCORE = 8              # **测试值:8, 12, 6, 16, 4**
# KPAR = 1             # (默认,Gamma点无需设置)
# NSIM = 4             # (默认,通常无需首先调整)
# LREAL = .FALSE.      # 默认。若体系超大,可试 LREAL = Auto (并用 PREC=Accurate 仔细验证)

# --- Algorithm ---
ALGO = Fast            

# --- Output Control (Optional but Recommended) ---
LWAVE = .T.
LCHARG = .T.

总结

归根结底,NCORE是最重要的并行优化参数。通过系统地测试不同的NCORE值,并结合合适的ALGOLREAL等设置,可以显著提升 VASP 的计算效率。

当然,不用非得在每项计算中次次计较最优,知道设置哪里能接近效率曲线的峰顶即可。