论文部分内容阅读
油藏工程和地下水研究中常使用质点追踪算法达到流线模拟的目的,利用流线的分布反映真实流场的形状,从而给研究者提供直观的流场信息。流线数量随着研究区域的增大而增加。当流线数量达到百万级时,普通处理器计算速度非常慢,计算时间很长,给大规模工程应用和地下水研究带来非常大的不便。为了满足实际应用对流线生成实时性的需求,本文提出并行计算流线模拟过程。本文分析基于质点追踪法的流线模拟过程,发现流线间的计算完全独立,没有先后顺序之分和数据依赖。因此,采用并行计算实现流线的方法在本文中提出。本文主要采用MPI、OpenMP和CUDA三种并行机制,先后实现基于单节点和多节点的并行计算。为了准确分析并行程序的加速性能,我们以三维理想复杂盆地为例。在单节点计算机上,CPU多核、单GPU和多GPU分别作为硬件加速器负责流线的并行计算。实验证明,基于多核技术的并行程序加速效果一般,其加速比受到处理器核数的制约。GPU实现的并行程序能快速获得较好的加速比。计算一亿条流线时,单个GPU加速比约为160倍,6块GPU达到630倍。实验结果证明:使用1~6块GPU时,GPU数量越多,加速效果越好。在多节点集群系统中,多处理器和多GPU作为计算资源实现流线的并行计算。多处理器、多核并行计算中,程序启动若干个进程,分布在多个节点上,每个进程固定开辟40个线程,来充分利用中科院“元”服务器上的处理器资源。当程序启动分布在16个节点上的32个进程,加速比约为170倍。实验结果表明,该并行程序具有很好的可扩展性,适合移植到大规模集群系统中。多处理器、多GPU并行程序是由三种技术混合编程实现。程序设计中,每个节点启动2个进程,每个进程启动4个线程,使得中科院人工智能服务平台上的每个节点中的8块P100被全部利用。使用4个节点,8个进程,32个线程,和32块GPU时,程序加速性能最佳。整体实验结果得出,基于GPU实现的并行程序在可扩展性方面效果较差。