论文部分内容阅读
黑油及其扩展模型,是描述油藏模拟问题的基础数学模型,是现代石油工业中应用最广泛的计算模型之一。虽然关于此类模型大规模离散化系统的快速算法及解法器的研究已取得了很大的进展,但仍存在许多值得进一步研究的问题。本文面向CPU-GPU异构计算机体系,针对黑油模型及一类聚合物驱模型的数值求解,研究基于多层(重)网格法的高效并行预条件GMRES法,并研制相应的串并行解法器,主要研究工作与创新点如下。 面向CPU-GPU异构计算机体系,首先针对结构网格下泊松方程的有限差分格式,基于多色序设计了两种并行几何多层网格法GMG-V-CUDA和FMG-CUDA。数值实验表明:在一定条件下,采用GPU比采用多核CPU执行GMG-V-CUDA更具成本效益,GMG-V-CUDA比GMG-V-OpenMP解法器具有更好的算法与并行可扩展性,FMG-CUDA比cuFFT库中的泊松方程解法器更加高效。接着通过利用强连通矩阵,以及影响因子与路径长度等要素,设计了一种自由度代数分组算法,并给出分组数的上界估计;通过采用最小稀疏度因子优先的原则,设计了基于自由度分组的并行高斯-赛德尔迭代法,以及两种相应的并行代数多层网格法RS-AMG-MC和SA-AMG-MC。通过分别对泊松问题和复杂油藏问题的压力方程进行对比实验,表明SA-AMG-MC提高了SA-AMG的收敛速度,RS-AMG-MC比SA-AMG-MC具有更好的算法可扩展性和并行可扩展性。 针对标准黑油模型和聚合物驱模型,给出了向后欧拉时间离散格式、算子牛顿线性化法,并利用上游加权有限差分离散格式得到相应的Ja-cobian线性代数系统。接着面向CPU-GPU异构体系为这些Jacobian线性代数系统设计并行多阶段预条件GMRES法,其中主要利用油藏模型的物理与解析性质,借助辅助空间预条件方法框架和交替块分解解耦算法,分别为不含隐式井和含隐式井的油藏方程设计了两种多阶段预条件子MSP1和MSP2。数值实验结果表明,与常用预条件子ILU(0)和传统的CPR预条件子相比,MSP1和MSP2更稳健高效。在此基础上,针对OpenMP和CUDA并行编程环境,利用基于强连通矩阵自由度分组技术以及合理的数据结构,分别设计了相应的并行求解算法并研制了相应的并行解法器MSP-GMRES-OMP和MSP-GMRES-CUDA,数值实验结果表明,MSP-GMRES-OMP和MSP-GMRES-CUDA均具有良好的算法和并行可扩展性。 利用所研制的多阶段预条件GMRES串并行解法器,针对国际油藏工程师协会提供的其中3个标准算例(SPE1、SPE9和SPE10)、源自复杂实际油田的2个典型实例和1个油田机理模型,围绕可靠性、适应性和并行扩展性等方面进行了6组数值测试。数值测试结果表明,所研制的基于多层网格法的多阶段预条件GMRES解法器适应于标准黑油模型和聚合物驱模型的求解;对标准算例及高度非均质、高含水、含断层的实际复杂油田区块均具有良好的适应性和可靠性,例如,对于标准算例的模拟结果(油、气、水压力与饱和度等物理量的时空分布)与实际物理现象相符,对于油田实例的模拟结果与历史生产统计数据相符;并在求解规模和运算效率上均取得了突破,特别地,在某HP桌面工作站上,基于OpenMP的并行加速比最高达到3.2倍、求解规模突破了千万网格单元,基于单GPU卡(Geforce480)的并行加速比最高达到3.6倍。