1. 大规模CFD并行计算工程导论
当网格规模从几十万单元增长到几千万甚至上亿单元时,单核求解已经无法在可接受时间内完成计算。以典型的三维外流场为例,若网格量为 5000 万单元,采用耦合隐式求解器、每步迭代约需 200 次通量计算,单核每秒大约能处理 5 万单元·迭代,那么单步迭代耗时约为 2000 秒,即 33 分钟;完成 1000 步收敛过程需要约 23 天。而如果使用 256 个计算核心并行,理想情况下单步迭代可压缩到约 8 秒,1000 步约 2.2 小时。这个数量级的差异,正是并行计算在 CFD 工程中不可替代的根本原因。
并行计算的价值不仅在于“算得快”,更在于它改变了工程决策的方式。过去因为算力受限,工程师往往只能使用粗网格、简化模型或二维近似;而在并行环境下,可以在同一物理时间内完成多方案对比、网格无关性验证、湍流模型敏感性分析,甚至把原本用于“等结果”的时间投入到设计空间探索中。因此,大规模 CFD 并行计算工程的核心目标,是让计算资源、网格划分、求解器配置和后处理流程形成一个可重复、可扩展、可诊断的工程体系,而不是单纯追求核数堆叠。
Fluent 并行架构概览
Fluent 的并行架构可以理解为“分区—通信—汇总”三层结构。求解前,网格被划分为多个分区(partition),每个分区分配给一个计算进程(compute node/process);求解过程中,各进程独立计算自己分区内的通量、梯度和方程系数,在需要全局信息时通过 MPI 进行边界数据交换;最后,残差、通量、力和监测数据由主进程(host)汇总输出。理解这一结构,是后续排查并行效率、负载均衡和通信瓶颈的基础。
从图中可以看到,并行效率并不只取决于核数。分区数量、分区边界面积、通信频率、负载均衡程度以及 I/O 策略都会直接影响加速比。例如,当分区数量远大于核数时,每个核需要处理多个分区,通信次数增加;当分区边界面积过大时,MPI 消息量上升,计算通信比下降。因此,工程上通常建议分区数等于或略大于物理核数,并尽量使各分区单元数接近。
课程目标与学习路径
本课程围绕“能算、算得快、算得稳、算得准”四个层次展开。第一层是环境与启动:理解 Fluent 并行启动方式、MPI 类型选择、核数与分区设置。第二层是性能调优:掌握网格分区方法、负载均衡策略、通信优化和 I/O 并行化。第三层是稳定性与排障:能够识别并行发散、分区错误、内存溢出和通信死锁等典型问题。第四层是工程化:把并行计算流程固化为可复用的脚本、配置模板和检查清单。
学习路径建议按“单机多核 → 单节点多核 → 多节点集群 → 大规模异构”逐步推进。在单机阶段,重点观察核数与加速比的关系,记录不同分区数下的残差收敛行为;在多节点阶段,重点分析网络延迟、MPI 实现差异和节点间负载均衡;在大规模阶段,则需要关注并行文件系统、任务调度器和容错机制。每一阶段都应保留可对比的基准算例,否则性能变化无法归因。
需要特别强调的是,并行计算不是“核数越多越好”。当核数增加到一定程度后,通信开销和串行部分会逐渐主导总耗时,出现加速比饱和甚至下降。工程上更关心的是“在给定硬件条件下,如何用最合理的核数和分区策略,在可接受时间内获得可信结果”。这也是本课程后续所有章节的共同出发点。