多核和众核架构下加速油藏模拟
1 引言
在科学与工程计算领域,油藏模拟是一个重要的研究方向。在油藏模拟中,全隐式方法(FIM)因其鲁棒性和稳定性,常用于商业模拟器。然而,求解牛顿线性化产生的雅可比系统计算成本高,通常占油藏模拟计算时间的 80% 以上。本文聚焦于在 CPU 和 GPU 上实现 BILU(k) 的策略,以加速油藏模拟。
2 石油油藏模拟
2.1 线性求解器组成
在油藏模拟中,采用流行的两阶段 CPR 预条件器。第一阶段,用代数多重网格方法(AMG)近似求解压力方程;第二阶段,将 BILU(0) 方法应用于整个雅可比系统。因此,线性求解器主要由 BILU(0)、AMG 和 GMRES 组成。
2.2 各部分时间占比
通过对线性求解器进行时间剖析,发现 BILU(0) 在几乎所有测试用例中占线性求解器时间的 30% 以上,在某些情况下甚至达到 40%,且该比例随问题规模增大而增加。这表明 BILU(0) 的可扩展性差会导致线性求解器在多核和众核平台上的整体并行性能不佳。
2.3 测试问题
选择了十个来自不同实际油藏问题的雅可比矩阵,这些问题可分为三类,矩阵规模从数万到数百万不等,块大小为 2 或 3。由于井和断层的存在,雅可比矩阵的带宽受射孔数量和非相邻连接数量的影响,不同来源的矩阵带宽差异很大。具体信息如下表所示:
| Case | #Rows | Blocksize | #Nonzeros | #MaxRowNZ | #Colors(0) | #Colors(1) | #Levels(0) | #Levels(1) |
| — |
超级会员免费看
订阅专栏 解锁全文
20

被折叠的 条评论
为什么被折叠?



