Page 33 - 2023年第54卷第6期
P. 33

展,加之 CUDA、OpenCL、Stream、DirectCompute等通用计算标准被相继提出,大大提高了 GPU的
              可编程性和开发性,促进了 CPU - GPU异构并行计算在各个领域的成功应用。例如,刘明贵等                                        [41] 探讨
              了 GPGPU在岩土工程中的应用前景,分析了 GPU加速在溶蚀岩体渗透特性的随机模型研究中的显著
              作用。覃金帛等        [42] 综述了 GPU并行技术在水动力模拟和分布式水文模型中的应用,展望了 GPU加速
              技术在水库调度、中长期水文预报、水文模型和智慧水务大数据计算中的应用前景。CPU - GPU异构
              并行计算已经在岩土工程、水动力模型、水文模型等方面取得了良好的结果。此外,GPU中大量的计
              算线程十分适合数组循环问题,在洪涝模型的离散化求解中有着很好的适用性。因此,近十余年来,
              国内外学者基于 CPU - GPU异构并行计算对洪涝模型开展了大量研究。
              4.2 洪涝模型 CPU - GPU异构并行计算研究 GPU异构编程模型可分为 OpenCL、CUDA等显式异构
              编程模型和 OpenACC、OpenHMPP等制导式编程模型两种                      [40] 。其中,显式异构编程模型的编程接口
              偏底层,开发难度较大;制导式编程模型开发维护较为简便,只需通过注释的形式让编译器自动完成
              GPU并行工作,但模型计算效率较低,因此目前的 GPU加速研究工作还是以显式异构编程为主。
                  洪涝模型 GPU并行加速研究主要集中在城市二维地表模型。二维地表模型的空间离散主要基于
              结构网格或者非结构网格进行。其中,结构网格拓扑结构简单、网格排列有序,单元信息在计算机内
              存中存储连续,具有很好的并行性,在 GPU加速研究中备受关注。在 NVIDIA公司推出 CUDA并行编
              程模型初期,Lamb等         [43] 基于有限差分法和 CUDA编程语言建立了 JFlow模型,在英国格拉斯哥市洪
              水案例中取得了良好的效果,并行编程模型将运行时间由 18h缩短至 9.5min。之后,Rostrup等                                     [44] 将
              CUDA编程模型应用于结构网格的有限体积法洪涝模型求解中,建立了 SWsolver模型。相较于有限差
              分法模型,有限体积法模型守恒性好,在复杂地形、不连续问题中具有较大的优势,因此,基于有限
              体积法的 GPU加速二维地表模型研究得到大量开展。Vacondio等                          [45] 采用显式有限体积法离散浅水方
              程,利用 CUDA实现地表模型的并行化,并在测试案例中实现了两个数量级加速。Carlotto等                                       [46] 提出
              了一种基于 GPGPU且可以考虑潜在蒸发的二维浅水动力模型,在案例测试中可以实现约 34倍的加
              速。单 GPU的物理内存有限,在一定程度上限制了并行化模型在大规模高分辨率情景下的应用,因
              此,有学者通过联结多 GPU的方式克服单个 GPU的物理内存限制。Xia等                                [47] 利用 Godunov型有限体
              积格式和 OpenCL加 速 技 术 实 现 浅 水 方 程 的 时 空 离 散 化 求 解,开 发 了 可 同 时 在 多 GPU中 运 行 的
                                                      2
              HiPIMS模型。他们将模型应用于约 2500km 的伊甸园集水区,并成功再现了德斯蒙德风暴造成的降
              雨淹没过程。Ming等        [48] 将 HiPIMS模型与数值天气预报模型耦合,所提出的实时洪水预报系统只需
              105min即可完成伊甸园集水区 10m分辨率网格条件下 36h的洪水预报计算。2021年,美国橡树岭
              国家实验室      [49] 推出一种开源多 GPU的二维洪水模型 TRITON,该模型使用增强型 Roe格式黎曼求解器
              和显式一阶迎风格式求解二维浅水方程,可以在 30min内完成 10m分辨率、大范围的飓风哈维案例
              洪水模拟。多 GPU联合并行的方式,极大限度地促进了并行化洪水模型的大规模模拟应用。
                  相较于结构网格,非结构网格不受边界形状和网格正交特性的限制,在复杂边界和网格生成、调
              整及加密等方面具有天然的优势,因此被广泛应用于计算流体领域。但非结构网格拓扑结构复杂,网
              格单元排列不规则,数据存储结构具有非连续性,会造成异构并行编程困难、加速效果欠佳问题,导
              致目前基于非结构网格的洪涝模型 GPU加速研究相对较少。Castro等                             [50] 测试了 CUDA并行化洪涝模
              型分别在结构网格和非结构网格上的表现,结果表明非结构网格加速效果较差。Petaccia等                                          [51] 利用
              OpenMP和 CUDA加速技术,提出了可并行化计算的二维溃坝模型,该模型的运行速度较串行版本模
              型实现了一个数量级的加速,但 GPU加速对比 CPU加速效果并不明显。这主要是因为 CPU与 GPU之
              间的数据交换需要通过 PCIE总线进行传输,会耗费大量的时间,而 CPU多线程加速并不会存在这样
              的问题。侯精明        [52] 等构建了基于非结构网格的流域雨洪模型,并通过 CUDA实现并行化,模型在宝
              盖寺流域和王茂沟流域得到成功的应用,取得了良好的效果,加速比达到 38.4及以上。此外,优化非
              结构网格数据存储结构,结合 GPU特点,探索有利于 GPU线程内存访问的数组形式对提高计算效率
              具有十分重要的意义。在计算机编程中,数组的排列方式分为 StructureofArray(SoA)排列和 Arrayof
              Structure (AoS)排列两种,两种数组排列方式对 CPU并行加速技术影响不大,但会显著影响异构并行

                                                                                                —  6 6 1 —
   28   29   30   31   32   33   34   35   36   37   38