Page 84 - 2025年第56卷第6期
P. 84
分辨率的流域洪水演进过程时,由于研究范围大、计算网格单元数目多以及库朗数(Courantnumber)
对步长的限制,需要大量计算资源和时间 [6] 。而雨洪预报预警对计算精度与时效性的高标准,对洪水
演进过程模拟提出了更高的算力要求。
高性能计算综合利用并行计算、高速网络和大容量存储等技术手段,以提供高效、高吞吐量、可
扩展的计算能力。目前主流并行技术以 OpenMulti - Processing(OpenMP)和 MessagePassingInterface
(MPI)为代表。OpenMP适用于中央处理器(CPU)多线程或单路多 CPU等内存共享的简单场景。大中
型计算平台为了避免内存共享造成的通信开销和同步问题,大多使用非内存共享的 MPI将多个 CPU
或图形处理器(GPU)组建为多路计算集群,是一种较为理想的大规模并行计算实现途径。吴俊香 [12] 、
江春波等 [13 - 14] 利用 MPI技术和基于 CPU的计算机集群,对浅水方程进行了并行数值计算,验证了基
于 MPI + CPU并行系统的可扩展性和并行性。然而,随着 CPU生产工艺水平趋近物理极限,单个 CPU
的性能提升难度越来越大,硬件成本和能耗也在不断提高。因此,依赖 CPU的并行计算,性能提升趋
缓,收益大打折扣。与此同时,GPU制造技术显著进步为并行计算提供了新的动力。与功能全面的
CPU不同,GPU不适合复杂的逻辑运算,但专精于大量数组的算术运算(如图像渲染),其运算单元
数量远超主流 CPU,对于大型数组算术运算等计算密集型任务的执行效率非常高。近年来,异构并行
计算技术逐渐兴起,这种技术结合了 CPU与 GPU、可编程门阵列(FPGA)等协处理器的优势,实现了
更高效的并行计算。关于异构并行计算技术的发展历程,可以参考文献[ 15 - 16]。
在二维浅水方程求解方面,近年来单 GPU计算及 “单节点 - 多 GPU” 并行计算取得了显著进展。
许栋等 [17] 采用有限体积法模拟洪水演进过程,并利用 GPU并行计算实现了 GPU单卡相对于 CPU单
核 112倍的加速比。汪煜等 [18] 构建了一套基于非结构网格的二维浅水方程数值模型,并使用三角网格
对数字高程模型( DEM)进行剖分以适应不规则地形边界,在 GPU上进行了加速计算。Xia等 [19] 、练
继建等 [20] 提出了一种基于非结构网格的二维浅水方程 “单节点- 多 GPU” 模拟方法,采用多线程方法
实现了 “单节点- 多 GPU” 并行计算;冯新政等 [21] 采用类似方案在 8GPU平台上进行流域地表径流
的并行计算,取得了最高 5.77的加速比。与现有的 CPU多核并行和单 GPU并行加速模拟方法相比,
该方法对大尺度洪水演进过程动力学模拟的计算效率更高,但仍然不足以实现大规模实时洪水预报。
尽管基于 “单节点- 多 GPU” 的并行路线在技术上是可行的,但支持的 GPU数量非常有限,其性
能提升严重依赖于 GPU制造技术升级和先进 GPU硬件获取。然而,目前先进计算 GPU(如美国英伟
达公司 NVIDIAA100、H100等产品)的研发与生产被国外垄断。由于外部环境变化,这些产品目前在
国内已难以获得,而且这种困难可能会在未来相当长时间内持续存在,国内研发类似产品的企业也面
临严峻制裁风险;软件层面,美国英伟达公司也已禁止其 CUDA软件生态用于第三方硬件。这些客观
因素在事实上阻碍了我国 “单节点- 多 GPU” 并行计算的发展。因此,为实现超高维模型在大量 GPU
上的并行计算,有必要发展 “多节点- 多 GPU” 并行计算路线。作为多节点并行计算与多 GPU并行计
算两条技术路线的融合, “多节点 - 多 GPU” 并行计算需要在多个节点之间进行大量数据传输和任务
协调,如何降低并行计算中的性能损失、保证较高加速比是关键。Morales - Hernandez等 [22] 基于 MPI +
CUDA环境在美国橡树岭国家实验室 SUMMIT超级计算机上实现了二维洪水模型 “多节点 - 多 GPU”
异构并行计算,但 64个节点上加速比仅有 6倍左右,并行效率不理想。
为了进一步发展水动力模型异构并行计算技术,加强我国水资源领域科研自主能力、提升洪水模
拟与预警水平,本研究基于国产处理器( CPU?GPU)研发 “多节点- 多 GPU” 大规模水动力模型分布式
异构并行计算技术,对流域尺度二维浅水方程进行快速、并行求解,实现流域尺度高精度洪水演进过
程的分钟级模拟,以期为防洪减灾的预报预警工作提供自主、可靠的技术支撑,同时为流域大模型、
区域地下水模型等其他水动力模型的并行计算提供借鉴。
2 数值模型
2.1 控制方程 水动力模型采用的控制方程为深度平均的二维浅水方程,其矢量形式表示如下:
2
— 7 7 —