多节点 MPI 并行值不值

"两台 32 核 = 一台 64 核"是本领域最贵的错觉。跨节点并行的天花板由网络和通信量决定,而大多数体系的通信量并不小。

2026-10-17 · 约 9 分钟读完

一、单节点为什么更快

同一个节点内的 MPI 进程通过共享内存与 NUMA 互联通信,延迟在百纳秒级;跨节点走的是网卡与交换机,延迟在微秒级,差了两个数量级。VASP 每个电子步都要做全局归约与波函数分发,这些操作在跨节点时全部变成网络往返。

经验规律:

节点数典型并行效率说明
1 节点内 32→64 核70%~85%受内存带宽限制,仍值得
2 节点50%~75%小体系可能低于 50%
4 节点35%~60%需要大体系与好网络才成立
8 节点以上25%~45%基本只有 AIMD、GW 这类超大任务才划算

换句话说:4 个节点的费用是单节点的 4 倍,墙钟可能只缩短一半。这笔账必须自己算一遍。

二、什么情况下"必须"多节点

  1. 单节点内存装不下。这是最正当的理由:波函数与 FFT 工作区超过最大规格实例的内存时,只能分到多台机器上。
  2. 体系大到单节点核数不够(一般 500 原子以上)。
  3. 任务本身是分布式的:多个独立算例各占一个节点,这其实不算并行,是批量。

除这三种,其余情况多节点通常是"看起来更快、实际更贵"。

三、网络要多快

互联带宽量级适合
普通云内网(万兆级)~10 Gbps2 节点、体系中等,勉强可用
高网络性能规格 / 25 Gbps 以上25~100 Gbps4 节点以上的 MPI
RDMA 类(InfiniBand / RoCE / eRDMA)100 Gbps 起,延迟最低大规模 MPI、AIMD、GW

云上有个容易忽略的点:实例的网络带宽随规格变化。便宜的小规格实例网络能力也弱,拿四台小机器组集群,瓶颈可能先出现在网络上。选多节点时,网络规格和 CPU 规格要一起看。

四、VASP 跨节点的参数怎么设

两条硬规则:

# 4 节点 × 32 核,共 128 核,12 个 k 点
NCORE = 4      # 不超过单节点核数
KPAR  = 4      # 12 个 k 点可分给 4 组,剩下的核在每个 k 点组内并行
NSIM  = 1      # 跨节点不要开 NSIM

NSIM(同时算多个能带)在单节点内能提升效率,但跨节点会显著增加通信,一般不推荐。

五、自己测一次并行效率

不要相信任何通用表格,用同一个输入跑四次:

# 固定 10 个电子步,分别用不同节点数运行,记录墙钟
time mpirun -np 32 --host n1 vasp_std > log_1node
time mpirun -np 64 --host n1,n2 vasp_std > log_2node
time mpirun -np 128 --host n1,n2,n3,n4 vasp_std > log_4node

并行效率 = 单节点时间 ÷ 节点数 ÷ 该节点数的时间。把效率乘回到成本上:

每小时每万步成本 = 节点数 × 单节点小时价 ÷ 实际墙钟

如果 4 节点的这个值高于 1 节点,那多节点就是纯亏——哪怕它"看起来跑得快"。

六、云上组多节点集群的三个注意点

相关阅读:Gaussian 常见报错对照手册:19 条错误原文、原因与改法 · LAMMPS 常见报错对照手册:16 条错误原文、原因与改法 · 每月 300 / 1000 / 3000 元预算,在云上能跑多少计算 · INCAR 检查器 · 配置推荐器 · 常见问题 · 离线单文件估算器 · 内存与 WAVECAR 估算器 · core-hour 机时估算器

先算单节点的账

如果单节点就能装下你的体系,多节点的钱通常花得不值。先用估算器把单节点成本定下来,再决定要不要扩。

打开 core-hour 估算器 内存估算器
本站部分链接为推广链接,你购买的价格不变。并行效率区间为经验值,务必以自己的实测为准。