[论文解读] Load Balancing using Hilbert Space-filling Curves for Parallel Reservoir Simulations
本文提出了一种基于希尔伯特空间填充曲线(HSFC)的网格划分方法,用于并行储层模拟,以实现高效的负载均衡。通过将三维结构化网格映射到一维希尔伯特曲线,并将该曲线划分为相等的区间,该方法确保了空间局部性,并在MPI进程之间实现了均衡的工作负载。该方法表现出优异的可扩展性和划分质量,在包含数十亿个单元的大规模模拟中,于最多4,096个MPI进程中实现了线性加速。
The goal of load balancing (grid partitioning) is to minimize overall computations and communications, and to make sure that all processors have a similar workload. Geometric methods divide a grid by using a location of a cell while topological methods work with connectivity of cells, which is generally described as a graph. This paper introduces a Hilbert space-filling curve method. A space-filling curve is a continuous curve and defines a map between a one-dimensional space and a multi-dimensional space. A Hilbert space-filling curve is one special space-filling curve discovered by Hilbert and has many useful characteristics, such as good locality, which means that two objects that are close to each other in a multi-dimensional space are also close to each other in a one dimensional space. This property can model communications in grid-based parallel applications. The idea of the Hilbert space-filling curve method is to map a computational domain into a one-dimensional space, partition the one-dimensional space to certain intervals, and assign all cells in a same interval to a MPI. To implement a load balancing method, a mapping kernel is required to convert high-dimensional coordinates to a scalar value and an efficient one-dimensional partitioning module that divides a one-dimensional space and makes sure that all intervals have a similar workload. The Hilbert space-filling curve method is compared with ParMETIS, a famous graph partitioning package. The results show that our Hilbert space-filling curve method has good partition quality. It has been applied to grids with billions of cells, and linear scalability has been obtained on IBM Blue Gene/Q.
研究动机与目标
- 解决并行储层模拟中的负载不平衡问题,该问题会阻碍大规模网格上的可扩展性和性能。
- 开发一种几何负载均衡方法,其相较于基于图的划分方法更易于实现,同时保持较高的划分质量。
- 利用空间填充曲线实现结构化网格工作负载在MPI进程间的高效分配,以保持空间局部性。
- 在IBM Blue Gene/Q上使用HSFC方法,证明其在大规模储层模拟中具有线性可扩展性和高性能。
- 为科学计算工作负载提供一种实用且可扩展的替代方案,以替代复杂的图划分工具(如ParMETIS)
提出的方法
- 将三维结构化计算区域映射到单位立方体,以对希尔伯特曲线映射进行空间坐标的归一化。
- 应用希尔伯特空间填充曲线,将三维单元坐标映射为一维标量值,通过曲线的连续性和保持局部性的特性来保留空间局部性。
- 将一维希尔伯特曲线划分为Np个相等区间,其中Np为MPI进程的数量,将每个区间内的所有单元分配给单个进程。
- 使用一维划分模块,确保每个MPI进程接收尽可能均衡的工作负载,从而最小化负载不平衡。
- 实现一个映射内核,以高效地将三维网格坐标转换为一维希尔伯特值,从而实现快速且可扩展的划分。
- 将HSFC划分方法集成到并行储层模拟器中,以在真实储层模型上评估其性能和可扩展性。
实验结果
研究问题
- RQ1希尔伯特空间填充曲线方法在大规模储层模拟中能否实现与基于图的划分方法(如ParMETIS)相当的负载均衡质量?
- RQ2HSFC-based划分方法在数千个MPI进程上的运行时间和通信效率方面如何实现可扩展性?
- RQ3该划分方法对储层模拟工作负载中牛顿法和线性求解器的收敛行为有何影响?
- RQ4在划分时间、通信量和整体模拟时间方面,HSFC方法与ParMETIS相比性能如何?
- RQ5HSFC方法在结构化网格模拟中在多大程度上保持了空间局部性并最小化了进程间通信?
主要发现
- 在IBM Blue Gene/Q上,HSFC方法在最多4,096个MPI进程中实现了线性可扩展性,当进程数加倍时,模拟时间减半。
- 对于一个包含50亿个单元的网格,整体运行时间从512个进程时的1,504.32秒减少到4,096个进程时的193.52秒,表现出强大的可扩展性。
- 牛顿法和线性求解器在所有进程数下均表现出一致的收敛行为,表明计算分布稳定且均衡。
- 划分时间几乎呈线性扩展,尽管由于单个MPI进程负责一维划分步骤,其性能略低于理想情况。
- 网格生成、线性系统组装和求解阶段表现出极佳的可扩展性,GMRES(30)求解器和RAS预条件子保持了高效率。
- HSFC方法产生的划分质量与ParMETIS相当,使其成为大规模储层模拟中复杂图划分工具的实用且更简单的替代方案。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。