VASP 专题

VASP CPU参数:NCORE、KPAR与NPAR

56核CPU布局、合法分组与六种规模七张实际耗时图。

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

面向鸢算科技 HPC 集群用户。适用起点:cpu-8173m 单节点、56 个 MPI 进程、每进程 1 个 CPU 核心。参数规则于 2026-10-13 核对 VASP 官方文档;性能参考来自本集群 VASP 6.6.1 的 Si 算例及本次定向补测。

推荐使用 KPAR + NCORE,不同时填写 NPAR。 先读取实际 k 点数,再选择能够正确划分 56 个 MPI 进程的组合。没有自己的计时数据时,可从 KPAR=1、NCORE=7 开始;多个 k 点的中等规模体系再比较 KPAR=2/4 与相应合法的 NCORE。合适值还取决于能带、晶胞、算法和运行版本,下面的实测帮助缩小候选范围。

1. 先把提交脚本配对#

8173M 队列按整节点 56 核计费,公共 VASP 模板也按整节点配置。下面采用已经部署的 CPU 模块和 Intel MPI;参数调优主要在 INCAR 中进行。

#!/bin/bash
#SBATCH --job-name=vasp
#SBATCH --partition=cpu-8173m
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=56
#SBATCH --cpus-per-task=1
#SBATCH --exclusive
#SBATCH --output=%j.out

module load vasp/6.6.1-8173m
ulimit -s unlimited
export OMP_NUM_THREADS=1
export MKL_NUM_THREADS=1
export I_MPI_PIN=1
export I_MPI_PIN_DOMAIN=core

mpirun -np "${SLURM_NTASKS}" vasp_std

在准备好输入文件的目录中执行 sbatch sub_vasp.sh。也可以使用 yskit 获取已有模板;现有 6.6.1 CPU 模板是 /public/slurm_scripts/hs_user/vasp/vasp/6.6.1/8173m/sub_vasp_6.6.1_8173m.sh。选择其他版本或扩展时,换用对应模块/模板;资源仍为整节点 56 核。

这里的 --cpus-per-task=1 是每个进程申请一个 CPU 核心,不是让整个作业只用一核。56 个进程各一核正好使用整节点。不要因为 INCAR 里设置 NCORE=7,就把 OMP_NUM_THREADS 或 --cpus-per-task 同时改为 7。

2. 三个参数分别划分什么#

参数 控制的内容 在 56 MPI 进程中的解释
KPAR k 点组数 56 个进程先分为 KPAR 组,每组处理一部分 k 点
NCORE 协同处理一条能带的 MPI 进程数 每个 k 点组内部,再把进程划分为大小为 NCORE 的带组
NPAR 每个 k 点组内部的带组数 与 NCORE 表达同一层划分的不同角度

普通单体系、纯 MPI、没有其他专门并行标签时:

每个 k 点组的 MPI 进程数 = 56 / KPAR
NPAR = 56 / (KPAR × NCORE)
56 = KPAR × NCORE × NPAR

例如 KPAR=4、NCORE=7:4 个 k 点组,每组 14 个 MPI 进程;每组内部又分成 2 个带组,每个带组 7 个进程。等效 NPAR 为 2。这不是“只使用 4×7=28 核”,所有 56 个 MPI 进程仍参与计算。NCORE 定义、NPAR 与可用进程关系。

NCORE 是 MPI 数据/计算分组,不是 OpenMP 线程数,也不是“给每个原子分几核”。参数主要改变数据分布、FFT 和能带之间的通信;理想情况下改变的是性能,不改变研究模型。

3. NCORE 与 NPAR 只选一个#

现代 VASP 推荐通过 NCORE 控制带组大小。旧输入文件若保留 NPAR,应该先处理它:两者同时存在时,NPAR 优先,修改 NCORE 可能没有得到预期分组。VASP 的兼容规则。

下面两份设置在本指南的运行条件下等效,分别选择一种:

# 推荐写法
KPAR = 4
NCORE = 7
# 兼容旧输入的写法
KPAR = 4
NPAR = 2

如果同时写 KPAR=4、NCORE=14、NPAR=2,NPAR 指定两个带组,每组实际为 7 个 MPI 进程,而不是输入中期望的 14。本次补测已把启动输出中的实际分组与能量/力一起核对,结果列在第 9 节。

NPAR 没有独立于 NCORE 的额外加速能力。对于相同进程数和 KPAR,比较等价的两种写法主要用于核对配置,不是再增加一个独立扫描维度。

4. 56 核允许哪些组合#

需要同时满足:KPAR 整除总 MPI 进程数,NCORE 整除每个 k 点组的进程数。下表列完整的整数分组,不代表每个合法组合都值得运行。

KPAR 每个 k 点组的 MPI 进程 合法 NCORE 示例 NCORE → 等效 NPAR
1 56 1、2、4、7、8、14、28、56 7 → 8;14 → 4;28 → 2
2 28 1、2、4、7、14、28 4 → 7;7 → 4;14 → 2
4 14 1、2、7、14 7 → 2;14 → 1
7 8 1、2、4、8 1 → 8;4 → 2
8 7 1、7 1 → 7;7 → 1
14 4 1、2、4 1 → 4;2 → 2
28 2 1、2 1 → 2
56 1 1 1 → 1

所以 KPAR=4、NCORE=4 不满足组内整除:每组只有 14 个进程,不能平均分成 4 进程的带组。常见的 48/64 核建议不能原样套到本机;例如 KPAR=3/6、NCORE=6/12 都需要重新检查,而不是只看值是否常见。

公式使用的是 MPI 进程数。若使用 IMAGES、GW/RPA 的专门分组或经过验证的混合并行配置,还需要扣除对应分组,不能直接套用这个 56 核表。VASP 并行层次。

5. KPAR 按实际 k 点数选择#

5.1 怎样查实际点数#

已有计算完成初始化后,在该算例目录读取:

grep -m 1 'NKPTS' OUTCAR
awk 'NR==2 {print "实际 k 点数 =", $1}' IBZKPT

例如完整的 6×6×6 网格有 216 个网格点,本集群 8 原子应变 Si 算例实际 NKPTS=64。对称性、磁性、SOC 和结构改变都会影响实际点数;不要只把 KPOINTS 三个数字相乘。IBZKPT 输出说明。

没有历史输出时,可在独立的预检查目录中使用版本支持的 --dry-run,或参考官方 ALGO=None 初始化方法取得实际点数与能带。预检查设置与生产输入分开保存,初始化本身不是性能测试。官方预检查方法。

5.2 单点、多点与分组平衡#

实际 k 点情况 优先比较的 KPAR 为什么
1 个点,包括纯 Γ 点 1 k 点之间没有可并行工作
2 个点 1、2 两组可以各处理一个点
3 个点 1、2 KPAR=3 不整除 56;KPAR=2 会形成 2/1 点的分配,需看实际时间
4 个点 1、2、4 可比较组间并行与组内能带并行
8 个点,中等或较多能带 2、4、8,并保留 1 对照 本集群中等 Si 体系常以 4 为较好候选,但需要配对 NCORE
较多点、少量能带 4、7、8、14;需要时再试 28/56 每个点工作小,可比较更细的 k 点并行;大值不保证更快

VASP 按轮转方式分配 k 点。KPAR 必须整除 MPI 进程数;能均分实际 k 点数通常更有利于负载平衡,但不是合法运行的强制条件。KPAR 分配机制。

例如 125 个点、KPAR=14 时,各组取得 8 或 9 个点,仍可运行;第 8 节给出它在本机小体系上的补测。本指南通常不把 KPAR 设得超过实际点数,以避免空组或过度分组;特殊方法另按其官方规则判断。

KPAR 增大还能改变内存分布,通常需要更多内存,容量紧张时应检查峰值。它的合理值取决于每个点的能带数、平面波数量和组间/组内通信,不能只由 NKPTS 决定。官方调优建议。

6. 为什么这台机器适合试 4、7、14、28 等 NCORE#

本次只读硬件查询确认:ccn001-8173m 为双路 Intel Xeon Platinum 8173M,每路 28 个物理核心,共 56 核;超线程当前关闭。两个 NUMA 域对应 CPU0–27 和 CPU28–55。硬件查询记录。

候选因素 对选择的意义
每 NUMA 域 28 核 7、14、28 能形成与28核相容的工作组,值得比较
总数 56 核 KPAR=1 时 NCORE=8 也合法,虽然不能整除单路28
KPAR=2 每 k 点组28核,可以试4、7、14
KPAR=4 每组14核,只能从1、2、7、14中选择
能带少 NCORE=1 也可能合适;小体系不能机械使用大 NCORE
能带与平面波较多 可试7、14及相应合法候选,比较FFT、正交化和通信成本

NUMA 是选择候选的依据,不是单独的强制除数条件。本机 Γ 单点的32/64原子数据中,NCORE=8与4/7接近或稍快,说明“必须整除28”过于绝对。

保持 MPI 进程绑定可减少核间迁移;本集群 CPU 模板使用 I_MPI_PIN=1、I_MPI_PIN_DOMAIN=core。本次补测抽查的56个进程分别绑定到56个不同核心,rank0对应CPU0、rank28对应CPU28,见实际进程亲和性记录。实际进程排列仍由 MPI 与调度环境决定,不能仅凭 NCORE=14 就认定所有带组一定落在同一 NUMA 域。MPI 进程放置与 NUMA。

7. 已有 Si 测试:用实测缩小候选#

原 CPU 扫描保存270条结果,其中269条满足完成和数值检查,一条32原子密网格失败结果排除。覆盖8、32、64、96、144、216原子,Γ单点、较疏网格和较密网格。程序为普通 vasp_std 6.6.1,56 MPI × 1,固定30电子步、ALGO=Normal、NSIM=32、ENCUT=350 eV、LREAL=Auto,每尺寸固定NBANDS。

下表是原候选集合中单次测量最短的 LOOP+ real 时间;原扫描KPAR取1/2/4/8,NCORE取相应合法的1/2/4/7/8/14/28,没有宣称遍历所有可能参数。这里的 NPAR 是公式换算值,并非另写进这些测试的 INCAR。

网格 原子数 实际 k 点 NBANDS KPAR NCORE 等效 NPAR LOOP+ real / s
Γ单点(1×1×1) 8 1 56 1 7 8 1.290
Γ单点(1×1×1) 32 1 112 1 8 7 5.248
Γ单点(1×1×1) 64 1 168 1 8 7 9.674
Γ单点(1×1×1) 96 1 280 1 14 4 21.039
Γ单点(1×1×1) 144 1 392 1 14 4 43.432
Γ单点(1×1×1) 216 1 560 1 28 2 88.311
较疏网格 8 64 56 8 1 7 18.992
较疏网格 32 16 112 4 1 14 32.248
较疏网格 64 8 168 4 7 2 45.969
较疏网格 96 8 280 4 7 2 104.007
较疏网格 144 8 392 4 14 1 236.844
较疏网格 216 8 560 4 14 1 481.058
较密网格 8 125 56 8 1 7 31.890
较密网格 32 45 112 8 1 7 76.500
较密网格 64 27 168 4 7 2 137.855
较密网格 96 18 280 4 7 2 233.891
较密网格 144 12 392 4 14 1 340.217
较密网格 216 8 560 4 14 1 479.787

来源:原始269条有效CPU结果。

其中8原子Γ单点的时间只有约1秒,4/7/8之间的细微差别不宜认定为稳定排名。32/64原子Γ单点可优先比较4/7/8;96~216原子可把7/14/28纳入对应合法组。对多k点的64~216原子Si,KPAR=4与NCORE=7或14是已有测试中的较好起点。

7.1 全部原子数怎样看图#

下面七张图均包含 8、32、64、96、144、216原子六个面板,直接使用LOOP+ real秒数,不再按各尺寸最快值归一化。横纵轴上的参数只是原扫描候选,不表示所有合法值都已测完。每幅图的六个面板采用各自的秒数刻度,比较某一体系的候选时应在对应面板内读取。

想比较什么 图号与控制条件
同时选择KPAR和NCORE 图1较疏网格、图2较密网格;每格一个实际组合
固定KPAR后怎样选择NCORE 图3Γ单点、图4较疏网格、图5较密网格;每条曲线固定KPAR
只改变KPAR会怎样 图6较疏网格、图7较密网格;统一固定NCORE=7

Γ单点仅比较KPAR=1;没有多k点工作可供KPAR分组,因此不绘制KPAR=2/4/8的Γ点性能曲线。图6/7用合法且在所有尺寸、各KPAR下均已测量的NCORE=7进行对照,不把每个KPAR下不同NCORE的最快值连成同一条参数曲线。

7.2 KPAR与NCORE的联合耗时:六种规模全部展示#

CPU图1 较疏网格六种原子数KPAR与NCORE耗时

CPU图1:较疏网格,格内数值与颜色均为耗时(秒)。每个面板列出实际NKPTS和NBANDS,橙框标该面板原扫描中最短的有效结果。斜线灰格不满足所列56MPI分组的整除条件。各面板色条独立,不能把不同面板的相同颜色当成相同秒数。

较疏网格的8原子体系实际有64个k点,已测最快是KPAR=8/NCORE=1;32原子有16个k点,已测最快为4/1。64、96原子的最快组合为4/7,而144、216原子为4/14。这里同时改变了体系规模、能带数和实际k点工作量,不能把原子数单独作为选择NCORE的公式。96与216原子的数据分别完整保留在六面板中的对应位置。

CPU图2 较密网格六种原子数KPAR与NCORE耗时

CPU图2:较密网格,同样显示实际耗时。32原子、KPAR=1/NCORE=1的运行只完成29步,红格明确标为失败,没有用不完整运行时间补格或参与最短值选择。

较密网格中,8、32原子的实际k点数分别为125、45,原扫描较快组合均为KPAR=8/NCORE=1;64、96原子为4/7,144、216原子为4/14。点数更多不意味着KPAR必须随之增大,例如144原子仍应结合NCORE比较KPAR=4与8,不能仅凭12个实际k点选一个更大的组数。8原子的额外高KPAR测试仍单列在第8节,没有混入本组原扫描图。

7.3 固定KPAR观察NCORE:Γ、疏网格和密网格#

CPU图3 Gamma单点六种原子数NCORE实际耗时

CPU图3:Γ单点,KPAR固定为1,每个原子规模单独显示NCORE与秒数;橙圈标该面板最短值。这里使用普通vasp_std,不能作为专用vasp_gam的计时。

Γ点的32、64原子分别在NCORE=8时测得5.248、9.674秒,NCORE=4也很接近;96、144原子的最短值在NCORE=14,216原子在28。216原子的14与28分别为88.822和88.311秒,单次结果接近,不宜据此给出稳定的严格排名。8原子的最快时间约1.290秒,微小差异更容易受到运行波动影响。

CPU图4 较疏网格六种原子数固定KPAR的NCORE耗时

CPU图4:较疏网格,每条曲线固定KPAR,只比较对应合法NCORE。非法或未完成点不补值;曲线连接仅辅助识别已测候选。

这组图可以看出,NCORE的影响与KPAR有关:KPAR增加后每个k点组分到的MPI进程减少,可用NCORE候选也随之减少。不能脱离KPAR只说“NCORE越大越快”。例如144、216原子的KPAR=4曲线在NCORE=14较快,而8、32原子相应曲线的NCORE=1较快。

CPU图5 较密网格六种原子数固定KPAR的NCORE耗时

CPU图5:较密网格的全部NCORE曲线,失败配置保留缺口。各尺寸的实际NKPTS、NBANDS随面板给出,方便核对同一体系内的比较条件。

较密网格并没有消除NCORE调优的必要性。对于64、96原子,KPAR=4/NCORE=7较好;对于144、216原子,还应比较同一KPAR下的NCORE=14。原扫描中某些最快组合对应等效NPAR=1,它们是这些特定输入的测量结果,不能作为所有材料的默认设置。

7.4 固定NCORE=7观察KPAR:分清参数本身的影响#

CPU图6 较疏网格六种原子数固定NCORE的KPAR耗时

CPU图6:较疏网格,所有面板固定NCORE=7,横轴只改变KPAR。橙圈仅标这条固定NCORE曲线中的最短点,不一定等于联合热图的全候选最短值。

8原子在这条曲线上从KPAR=1增至8持续缩短耗时;32原子在4附近较好;64~216原子也应比较4与8,更多k点组并非必然更快。96原子的4与8分别为104.007、104.356秒,两者很接近。144、216原子的固定NCORE=7曲线还未使用它们在联合扫描中更快的NCORE=14,最终选择应返回图1核对。

CPU图7 较密网格六种原子数固定NCORE的KPAR耗时

CPU图7:较密网格,仍固定NCORE=7;保持同一尺寸、网格、能带数及电子步数,便于独立观察KPAR变化。

在这条固定NCORE曲线上,8、32原子以KPAR=8较快,64~216原子以4较快。144原子从4增加到8,耗时由357.908秒增至441.736秒,说明k点组更多也可能带来额外开销。32原子的固定NCORE=7最短值为80.444秒,而图2中允许联合调整NCORE后为76.500秒;这正是需要同时检查两个参数的原因。

七图共使用原来的269条有效CPU结果,未生成新的性能测量,也未把第8节的补测或第9节的等价NPAR验证与原扫描混为一次扫描。全部数值、参数及来源可下载绘图数据CSV,PNG/SVG/PDF图件索引提供可放大的独立文件。

这些数据表明,不填写并行标签对应的 NCORE=1/KPAR=1 并非总是合适,NCORE也没有适用于所有规模的单一最优值。某些较大Si算例的已测最快配置对应NPAR=1;官方一般不推荐把它当作默认起点,本机这些特定输入的结果仍应如实保留,而不是据此推广“NPAR=1总是更快”。NPAR 的一般建议。

Si 原子数只是这些算例的规模标签。含半芯态赝势的过渡金属、较多空带、磁性/SOC、杂化泛函、大真空晶胞和不同ALGO都可能需要重新选择;本表没有验证它们的最优参数。

8. 补测:小体系可以尝试更大的 KPAR,但不能一味增加#

本次对8原子Si增加7/14/28/56等KPAR候选,NCORE=1,物理输入与原对应网格保持一致,并在同批重跑KPAR=8作为对照。各配置仍只运行一次,56MPI、固定30步。

原子数 / 实际 k 点 KPAR 每组MPI NCORE 实际 NPAR LOOP+ real / s 完整 Elapsed / s
8 / 64 7 8 1 8 18.094 20.026
8 / 64 8 7 1 7 19.027 21.044
8 / 64 14 4 1 4 18.159 20.232
8 / 64 28 2 1 2 23.018 25.473
8 / 64 56 1 1 1 31.410 34.226
8 / 125 8 7 1 7 31.788 34.152
8 / 125 14 4 1 4 27.987 30.631
8 / 125 28 2 1 2 31.654 34.450
8 / 125 56 1 1 1 39.202 42.734

125点的同批比较中,KPAR=14相对8的LOOP+时间减少约12.0%;提高到28/56没有继续获益。64点时,7/14与8是接近的候选,56相对8耗时增加约65.1%。这说明点数均分和更多k点组都需要结合实际测试。

来源:本次12组定向补测。

这类小单胞与多k点计算值得比较更细的k点分组,但“合法的大KPAR”不自动意味着更快;组内效率、轮转分配尾部、公共工作和通信仍影响最终耗时。接近的单次结果用于选候选,不能当作重复测量后的稳定胜负。

9. 补测:NPAR 等价设置与覆盖优先级#

96原子Si、8个实际k点、280条能带、KPAR=4,比较以下三份输入。除NCORE/NPAR写法外,物理输入、总MPI数、NSIM与电子步数一致。

INCAR写法(均 KPAR=4) 实际 NCORE 实际 NPAR LOOP+ real / s 完整 Elapsed / s
只写 NCORE=7 7 2 104.213 108.451
只写 NPAR=2 7 2 103.793 108.019
同时写 NCORE=14、NPAR=2 7 2 104.133 108.332

三组均正常完成30步并有收敛标志;相对原同物理输入,能量与力在OUTCAR打印精度下均一致。启动输出都为“每条带7个进程、2个带组”,直接支持等价关系及NPAR优先级;这些Si对称结构的力为零,不能把该项当作非零力全面回归。

完整输入标签、实际分组和输出SHA见补测记录。

两种等价写法的耗时不必逐毫秒相同;系统状态和启动过程仍有波动。判断配置是否等价,首先看实际进程分组与完成/数值一致性,不能仅以时间完全相等作为标准。

10. 从自己的算例得到可靠参数#

先在生产目录之外准备参数试算,保持结构、POTCAR、k点、ENCUT、算法、自旋和输出要求一致;重启条件也统一。先做一次初始化,记录实际 NKPTS、NBANDS 与FFT网格,然后选少量合法候选。

步骤 做什么 记录什么
1 用同一56核模板和同一物理输入建立对照 版本、节点、MPI/线程、实际点数和能带
2 比较KPAR=1/2/4等适用值 每组进程数,完成时间与内存
3 每个KPAR内比较合法NCORE 实际带组分布,不保留冲突NPAR
4 比较前几名,并检查科学结果 能量、力、收敛、NaN/错误和是否完成
5 把合适值用于同类生产任务 不把试算的固定步数设置带到生产输入

这里也可以直接联合比较,例如8个实际k点的中等规模体系先试 (KPAR,NCORE)=(2,7)、(2,14)、(4,7)、(4,14)、(8,1)、(8,7)。它们全部合法;更全面的扫描应按第4节结合实际需求筛选。

短试算可以固定电子步数,例如本集群性能测量采用 NELM=NELMIN=30,使各组合比较相同工作量。它是计时协议,不表示生产计算必须至少30步或最多30步,也不表示达到步数就已收敛。正常生产应恢复适用于体系的收敛设置和足够的NELM。VASP 的短试算流程。

看实际分组,而不是只看 INCAR#

在Slurm标准输出中读取:

grep -m 1 'running.*mpi-ranks' 作业号.out
grep -m 1 'distrk:' 作业号.out
grep -m 1 'distr:' 作业号.out

56进程、KPAR=4、NCORE=7的典型信息为:

distrk:  each k-point on   14 cores,    4 groups
distr:  one band on    7 cores,    2 groups

第一行确认k点组,第二行确认带组。若显示与预计不同,先检查NPAR遗留、进程数、线程模式、专门并行标签,以及该版本/算法的实际限制。

统一计时口径#

# 所有已输出LOOP+段的real time之和,单位秒
awk '/^[[:space:]]*LOOP\+:/ {s += $NF; n++} END {if(n) printf "LOOP+ real total = %.4f s\n", s}' OUTCAR

# VASP完整运行时间
grep 'Elapsed time (sec)' OUTCAR

# 完成标志与实际工作规模
grep 'General timing and accounting' OUTCAR
grep -m 1 'NKPTS' OUTCAR
grep -m 1 'NBANDS' OUTCAR

LOOP+适合比较相同电子/离子工作量,包含该段电子计算及后续工作;完整Elapsed包括更多初始化和输出开销。正式任务还应看从启动到收敛完成的总体时间。若改变ALGO导致步数变化,只比较单步快慢不足以决定整体收益。

NBANDS可能随并行分组自动向上调整。公平比较应核对输出中的实际NBANDS,并在满足所需空带的前提下保持相同工作量;不要仅因为输入写同一个NBANDS就认为实际一定相同。NBANDS 与并行分组。

11. 其他相关设置:先分清是否改变科学近似#

设置 在CPU队列的使用原则
NSIM 是处理能带的批量,不是CPU核数;本文测试固定32,没有做CPU的完整NSIM优化。先固定,再按自己的算法比较
ALGO Normal/Fast等改变求解流程与收敛表现;本文证据来自Normal。比较完整收敛时间及结果后再采用
LREAL Auto对较大体系可能有性能收益,但包含投影近似,需与False检查误差;不能当作纯并行参数
LSCALAPACK 当前CPU程序提供相应库;一般先沿用交付默认,不凭旧网络教程关闭
LWAVE、LCHARG、HDF5输出 只生成工作流确实需要的文件;重启、Bader、Wannier或后处理需要的数据仍应保留
ENCUT、k网格、PREC、收敛阈值 由研究的精度要求决定;比较NCORE/KPAR时保持一致

相关依据:NSIM、ALGO、LREAL、LSCALAPACK。

Γ单点与gam版本也要分开。 确实只有Γ点且满足gam功能限制的任务可以评估专用 vasp_gam,但本指南的时间表使用 vasp_std;不能把std计时当作gam加速结论。SOC/非共线等需要相应程序和方法限制核对,不能仅因k网格是1×1×1就换gam。

12. 为什么不把它直接改成 28MPI × 2线程#

本指南和已测CPU模板采用56MPI×1。混合并行需要程序确实支持OpenMP,并重新设置进程/线程绑定;仅修改OMP_NUM_THREADS或减少MPI进程,不能保证开启有效的混合加速。

对支持的混合版本,多线程运行时VASP会把NCORE重置为1,FFT工作由线程承担;MPI分组公式此时使用实际MPI数,而不是申请到的总CPU核数。MPI/OpenMP 与 NCORE。

例如28MPI×2线程仍申请整节点56核,但不是本表的56MPI参数环境。本轮没有进行混合并行的性能扫描,不把它写成已经验证更快的方案。当前普通6.6.1抽验链接为MKL sequential,未见OpenMP运行库/入口,实际选择线程模式前还应核对对应构建。

13. NEB、杂化、响应与扩展分支怎样用这份指南#

任务 可以沿用的部分 需要重新核对
普通结构优化/AIMD 56核资源、分组规则、短试算方法 实际收敛和每离子步成本;固定结构测试不是完整优化性能
NEB / 多IMAGES 总MPI仍为56,分组公式增加IMAGES因子 每图像剩余进程、根/图像目录设置;图像数由研究需求决定
杂化泛函 资源配置与合法性检查 所用算法和交换工作可能改变最优分组,不能套Si-PBE耗时
GW/RPA/BSE/DFPT 检查并行标签及实际输出的原则 专门频率/算法并行与相关限制,普通SCF公式需调整
VTST/sol/sol++/optcell/Wannier/HDF5 对应8173m模块与56核模板 功能适配、附加工作和结果验证;不同分支独立选择

有IMAGES时,普通MPI分组可先写为 56 = IMAGES × KPAR × NCORE × NPAR;其他算法标签再另计。例如IMAGES=7、KPAR=1时,每图像8MPI,NCORE=4对应NPAR=2。这只是整数分组示例,不是对NEB图像数或最快配置的推荐。并行层次与专门标签。

14. 常见配置问题速查#

现象 优先检查
改NCORE后实际带组不变 是否还保留NPAR;是否启用了线程/GPU或其他分组
KPAR=4、NCORE=4报错或分组不符合预期 56/4=14不能被4整除,改为合法值
只有一个实际k点,却设置KPAR=8 采用KPAR=1,再调组内NCORE
多k点用更大的KPAR反而慢 同时看组内NPAR/NCORE、点分配尾部、公共工作与内存
总核申请正确但实际启动进程少 查看mpirun的-np、SLURM_NTASKS与启动输出
56MPI又每进程开启56线程 已经超出56核;恢复匹配的进程×线程设置
两组时间不同,但实际能带也不同 先统一实际NBANDS及物理输入再比较
试算很快但生产结果不收敛 恢复生产收敛设置,检查算法/初始态,不把短计时当科学验收

15. 数据、来源与使用范围#

本文给出的是8173m单节点CPU帮助文档。VASP5.4.4~6.6.1的一般标签含义可以参考官方说明,但具体性能数据来自6.6.1;没有声称所有版本、扩展、材料和计算方法都通过同样参数的全量回归。

  • 本次CPU指南与补测记录:协议、来源、完整参数和验收。
  • 原CPU参数汇总:最短与5%范围内的已测组合。
  • 原较疏网格完整测量。
  • 原Γ与较密网格完整测量。
  • 集群软件与提交指南、VASP多版本与扩展。

使用相同56核节点时,更快完成同一任务通常也能减少核时。选参数时同时考虑收敛后的完整时间和可用内存;以上分组与计时方法可直接用于自己的短试算,最终采用自己体系中完成且结果可靠的组合。

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