2. 并行计算硬件基础与选型

大规模CFD并行计算的性能上限,往往不是由求解器算法决定的,而是由硬件平台决定的。理解CPU/GPU架构、内存带宽、网络互连和存储I/O这四个层次,是做出合理选型决策的前提。本节从CFD求解器的实际访存与通信特征出发,逐层分析硬件参数如何影响求解速度,并给出可操作的选型判断依据。

一、CPU架构:核心数、缓存与内存通道

Fluent的CPU求解器以有限体积法为核心,每个时间步的主要计算是遍历网格单元、面,计算通量并更新守恒量。这类计算属于典型的内存带宽受限型负载:每处理一个单元,需要读取多个面邻接单元的数据,算术强度(每字节内存访问对应的浮点运算次数)通常只有1~3 FLOP/Byte。因此,CPU选型不能只看核心数和主频,必须同时关注内存带宽和缓存层次。

以典型的双路服务器为例,AMD EPYC 9654(96核/路,12通道DDR5-4800)单路理论内存带宽约460 GB/s,双路合计约920 GB/s;Intel Xeon Platinum 8480+(56核/路,8通道DDR5-4800)单路约307 GB/s,双路约614 GB/s。在Fluent中,若网格规模为5000万单元、采用压力基耦合求解器,每步迭代需要读取的网格与场数据量约为单元数×(坐标+面连接+压力+速度+湍流量)×8字节,粗略估算单步访存量在数GB量级。此时内存带宽直接决定迭代速度上限。

缓存方面,L3缓存容量影响面邻接数据的复用率。EPYC 9654每路384 MB L3,Xeon 8480+每路105 MB L3。对于非结构网格,面邻接访问的局部性较差,大L3能显著减少对主存的重复访问。实际选型时,建议优先选择每核心内存带宽较高的平台:EPYC 9654约为4.8 GB/s/核,Xeon 8480+约为5.5 GB/s/核,两者接近,但EPYC在总带宽和总核心数上更有优势,适合大规模网格。

二、GPU架构:显存带宽与计算吞吐

Fluent的GPU求解器(Native GPU Solver)将压力修正、通量计算和代数多重网格(AMG)求解全部映射到GPU上。GPU的优势在于极高的显存带宽和浮点吞吐:NVIDIA H100 SXM的HBM3显存带宽约3.35 TB/s,FP64峰值约34 TFLOPS;A100 80GB的HBM2e带宽约2.0 TB/s,FP64约9.7 TFLOPS。相比之下,双路CPU平台的内存带宽不足1 TB/s,FP64吞吐也低一个数量级。

但GPU选型的关键约束是显存容量。Fluent GPU求解器要求网格、场变量、AMG粗化层和临时缓冲区全部驻留显存。经验上,每百万网格单元约需0.8~1.2 GB显存(取决于求解器类型和湍流模型)。因此,80 GB显存的A100/H100可处理约6000万~8000万单元的单卡问题;若网格超过此规模,需要多卡并行并借助NVLink或NVSwitch进行卡间通信。NVLink 4.0在H100上提供900 GB/s的双向带宽,远高于PCIe 5.0的128 GB/s,多卡GPU并行时务必确认卡间互连方式。

三、网络互连:InfiniBand与RoCE的选择

当计算规模超过单节点能力时,节点间通信成为瓶颈。Fluent的并行通信主要发生在:分区边界面的通量交换、AMG粗化层的全局归约、以及压力修正方程的全局求解。这些通信具有低延迟、小消息、高频次的特征,对网络延迟和消息速率敏感,而非单纯看带宽。

InfiniBand(IB)是HPC领域的标准选择。以NDR 400G IB为例,单端口带宽400 Gb/s(约50 GB/s),端到端延迟约1.0~1.3 μs,消息速率可达数亿消息/秒。RoCEv2(RDMA over Converged Ethernet)在100G/200G以太网上实现RDMA,带宽与IB相当,但延迟通常高0.5~1.0 μs,且对无损网络配置(PFC、ECN)依赖较强。对于Fluent大规模并行,若节点数超过8个、网格超过1亿单元,建议优先选择IB NDR/HDR;若节点数较少(4~8个)、预算有限,RoCEv2 200G也可接受,但需确保交换机支持PFC和ECN,并在Fluent中启用相应的MPI参数。

实际配置中,Fluent通过MPI进行通信,常见选择是Intel MPI或OpenMPI。对于IB网络,需确保MPI编译时链接了UCX或InfiniBand Verbs支持;对于RoCE,需设置UCX_TLS=rc,ud并确认ibv_devinfo能识别RoCE设备。一个常见的性能陷阱是:MPI默认走TCP/IP而非RDMA,导致延迟从1 μs恶化到20 μs以上。可通过UCX_LOG_LEVEL=info检查实际使用的传输层。

四、存储I/O: checkpoint与瞬态数据写入

CFD大规模计算的存储压力主要来自两方面:瞬态模拟的中间结果写入(每若干时间步写一次),以及checkpoint文件。以1亿单元瞬态案例为例,单个瞬态场文件(压力+速度+湍流量)约2~4 GB,若每100步写一次、共1000步,则总写入量约20~40 GB。若使用并行文件系统(如Lustre、GPFS),需保证聚合带宽足够;若使用本地NVMe RAID,需注意写入时的条带化配置。

存储选型建议:对于瞬态大规模案例,优先选择并行文件系统,单客户端带宽不低于2 GB/s;对于稳态案例,checkpoint频率低,本地NVMe即可满足。需避免将瞬态结果写入网络文件系统(NFS)的单块盘,否则写入延迟会阻塞求解进程,导致整体迭代速度下降。

Fluent大规模并行计算硬件层次与瓶颈关系 CPU 节点(内存带宽受限) 双路 EPYC 9654 192核 / 920 GB/s L3 768 MB 双路 Xeon 8480+ 112核 / 614 GB/s L3 210 MB Fluent CPU求解器:内存带宽受限型负载 算术强度 1~3 FLOP/Byte · 面邻接访问局部性差 GPU 节点(显存容量+带宽) NVIDIA H100 SXM 80GB HBM3 / 3.35 TB/s FP64 34 TFLOPS NVIDIA A100 80GB 80GB HBM2e / 2.0 TB/s FP64 9.7 TFLOPS 显存约束:约 0.8~1.2 GB / 百万单元 80GB单卡 ≈ 6000万~8000万单元 · 多卡需NVLink 网络互连(延迟敏感) InfiniBand NDR 400 Gb/s · 延迟 ~1.0 μs 消息速率高 · HPC标准 推荐:>8节点 / >1亿单元 RoCEv2 200G 200 Gb/s · 延迟 ~1.5~2.0 μs 需PFC/ECN无损配置 适用:4~8节点 / 预算有限 存储 I/O(瞬态写入压力) 并行文件系统 Lustre / GPFS 聚合带宽 ≥ 2 GB/s/客户端 适用:瞬态大规模案例 本地 NVMe RAID 条带化配置 单盘 ≥ 3 GB/s 适用:稳态 / checkpoint 选型决策要点 CPU优先 每核心带宽 > 4.5 GB/s GPU优先 显存 ≥ 网格需求 × 1.2 网络优先 RDMA实际生效 · 延迟 < 2 μs 存储优先 写入不阻塞求解进程

五、选型决策的实操判断

综合以上四层,选型时可遵循以下判断顺序:

  1. 先定规模:若网格小于2000万单元,单节点CPU(双路EPYC或Xeon)即可,无需网络;若2000万~8000万单元,可考虑单卡GPU(A100 80GB或H100 80GB);若超过8000万单元,需多节点CPU或多卡GPU。
  2. 再定互连:多节点时,若节点数≤4且预算有限,RoCEv2 200G可接受;若节点数≥8或网格≥1亿单元,选IB NDR/HDR。务必用ib_write_bw或ucx_perftest验证实际带宽和延迟。
  3. 后定存储:瞬态案例必须用并行文件系统,稳态案例可用本地NVMe。写入带宽应至少为单步输出数据量除以期望写入时间(例如40 GB / 20 s = 2 GB/s)。
  4. 最后验证:在目标硬件上运行一个代表性案例,用Fluent的/parallel/timer/usage查看计算、通信、I/O的时间占比。若通信占比超过20%,说明网络或分区策略需要优化;若I/O占比超过10%,说明存储写入阻塞了求解。
实操提示:在Linux下可用numactl --hardware查看NUMA节点与内存通道对应关系,用lscpu确认L3缓存大小。对于GPU,用nvidia-smi topo -m查看卡间互连是NVLink还是PCIe。对于IB,用ibstat确认端口速率和状态;对于RoCE,用ibv_devinfo确认RDMA设备已识别。
常见误区:盲目追求核心数而忽略内存带宽,导致192核平台的实际迭代速度不如112核平台;或使用RoCE但未配置PFC/ECN,导致RDMA退化为TCP,延迟从1.5 μs恶化到20 μs以上。选型时务必以实际案例的/parallel/timer/usage数据为准,而非纸面参数。

硬件选型的本质是匹配求解器的访存与通信特征。CPU平台看内存带宽与缓存,GPU平台看显存容量与带宽,网络看延迟与RDMA是否真正生效,存储看写入是否阻塞求解。四者中任何一层成为瓶颈,整体并行效率都会显著下降。建议在采购前用目标规模的代表性案例做基准测试,以实测数据驱动决策。