一种基于异步流的地震数据多GPU快速正演计算方法技术

技术编号:13768349 阅读:71 留言:0更新日期:2016-09-29 03:05
本发明专利技术公开了一种基于异步流的地震数据多GPU快速正演计算方法。所述方法将地震数据按照慢维域进行分割,分割的子域个数与GPU数目相同,将每个子域的数据分配给一个GPU进行计算;实现各GPU两两之间双向实时通信;采用多异步流技术控制计算流程。通过所述方法既可以保证高效率实施大数据体正演计算,又可以使双GPU计算效率与单GPU相比达到2:1。

【技术实现步骤摘要】

本专利技术属于地球物理勘探
,具体涉及一种基于异步流的地震数据多GPU快速正演计算方法
技术介绍
波动方程正演模拟在地震数据的反演解释中发挥着重要意义。对于三维地震资料的处理和解释需要有效的正演模型来验证。同时波动方程正演模拟是逆时偏移成像技术和全波形反演技术的基础。最常用的波动方程正演模拟方法是基于全波方程的,如有限差分、伪谱法和有限元方法,可以模拟地震波在地下的传播特征,适用复杂介质模型,但是计算量和内存开销很大,尤其是三维波动方程模拟。有限差分是通过对时间和空间导数的网格差分离散近似来实现波动方程的模拟。伪谱法是通过正、反傅里叶变换来实现空间导数的精确求解,计算量相比有限差分大。有限差分方法在地震波正演模拟和偏移领域已经得到了长足的发展和广泛的应用,它的优点是差分格式稳定性强,能适应速度任意变化的介质,并且有限差分方法适合GPU并行加速计算。但是有限差分方法存在数值频散问题,这直接影响到有限差分方法在波动方程中的应用。数值频散问题是由于对时间和空间偏导数的网格化离散造成的,导致地震波模拟的数值相速度不等于实际介质的真实相速度,使波场模拟的精度降低。为了改善或压制网格数值频散问题,一般采用有以下几种方法:一是采用低阶差分格式,给定一个很小的模拟时间步长和空间步长,这极大的加大了计算量,尤其三维情况,所以该方法一般不适用三维数据;二是采用高阶有限差分格式,一般时间导数采用二阶差分格式,空间导数采用高阶有限差分格式;三是采用更高精度的算法,比如以交错网格替代常规的均匀网格算法。Dablain和Chen提出了时间方向导数的四阶有限差分格式,提高了波场模拟的精度。总之,一般高精度的数值模拟对应更大的计算量。综上所述,随着数据量和计算量的增加,计算效率是制约正演工业界广泛应用的重要因素。基于PC集群的并行计算越来越不能满足计算需求,并且成本高,而基于GPU计算的众核并行计算技术因其强大的计算能力并且成本较低、占用空间少、方便等特点在地震资料正演以及偏移成像中被广泛应用。Micikevicius(2008)提出了GPU平台的三维有限差分正演算法,李博等(2010)对比分析了基于CPU/GPU平台的逆时偏移实现策略,刘红伟等(2010)讨论了地震叠前逆时偏移高阶有限差分算法及GPU实现,刘国峰等(2013)给出了基于CPGPU系统逆时偏移实现的快速计算算法。但是,GPU相对于普通的PC集群计算,内存较小,对于大规模三维数据来说,单个GPU的内存不足以完成计算。因此,迫切需要研究提出利用多个GPU并行实施地震数据正演模拟计算的方法。
技术实现思路
为了克服在大规模地震数据推演计算需求中存在的PC集群计算能力不足,单个GPU内存不足等问题,本专利技术提供一种基于异步流的地震数据多GPU快速正演计算方法,所述方法既可以保证高效率实施大数据体正演计算,又可以使双GPU计算效率与单GPU相比达到2:1。为实现上述目标,本专利技术采用以下技术方案:1、计算原理波动方程正演计算的原理可以描述为:以子波模拟实际震源,沿时间实现波动方程的延拓计算,最后抽取地表的波场值得到地震正演记录。其本质是求解波动方程,进行波场的延拓。声波方程可以写作如下形式:经2N阶有限差分离散后得到:其中fdcoe[l]为有限差分计算的差分系数,s(it)为震源子波。2、方法步骤基于多GPU计算的快速正演算法核心是基于异步流的慢维域的分解,本专利技术的慢维对应深度。正演计算时,沿着深度将模型空间等分为n份(n对应GPU的个数),每个GPU计算一个子模型域的网格波场值,并且在计算过程中实现子模型域间的实时通讯。每个GPU是通过将对应模型网格点波场的值分配到GPU的不同线程进行计算。多卡计算的核心问题之一是两两GPU卡间直接的通讯,这里以双卡并行计算为例,图1展示了两GPU实现正演模拟的模型分解示意图。具体过程如下:整个模型区域沿着深度Z方向一分为二(S0、S1),分别分配给GPU0、GPU1计算;为了保证两个GPU之间的实时通讯,同时设置交换区域(transfer)及对应的接收区域(图中0-1与1-1),各GPU接收区域0-1(1-1)用于接收对方GPU的transfer区域1-0(0-0)计算更新的波场,以实现两卡之间的实时通信,保证波场的连续传播。我们为了进一步提高计算效率,提出多异步流的计算策略,这是一种任务级别的并行,旨在提高并行度,最大化占用带宽,充分发挥并行优势。具体步骤如下:1.首先图1中所示的0-0和1-0所指示的交换区域进行波场递推,与此同时GPU0、GPU1分别计算模型主体中的S0、S1所示区域,四者并发执行,这四块区域的计算采用四个不同的异步流实现并发计算,如图2所示的流Ct_S0、Tf_00、Tf_10、Ct_S1。2. 上述步骤计算过程中,发送交换区域拷贝的任务进程,0-1所示接收区域等待1-0区域更新的波场拷入,即将1-0区域计算更新后的波场传递给0-1,类似的,1-1所示接收区域等待0-0区域更新的波场拷入,即将0-0计算更新的波场传递给1-1,这种存在等待,具有先后顺序的计算,可以采用流技术控制,具体指通过同一个流来控制这些顺序任务,使之位于一个队列,如图2中的流Tf_00与Tf_10,这种GPU0与GPU1间的直接通信,就是我们所说的P2P技术,如图2所示的虚线箭头。3、专利技术要点一种基于异步流的地震数据多GPU快速正演计算方法,所述方法将地震数据按照慢维域进行分割,分割的子域个数与GPU数目相同,将每个子域的数据分配给一个GPU进行计算;实现各GPU两两之间双向实时通信;采用多异步流技术控制计算流程。一种基于异步流的地震数据多GPU快速正演计算方法,包括以下步骤:1)基于异步流的慢维域的分解;2)实现两两GPU卡间直接的通讯;3)多异步流的计算策略。所述步骤1)包括以下子过程:a)沿着慢维域将模型空间等分为n份,n等于GPU的个数;b)将每一个子模型域的网格波场值分配给一个GPU实施计算;c)将对应子模型域的网格点波场值分配到每个GPU的不同线程进行并行计算。所述步骤2)的实现过程是:在每个子模型域同时设置交换区域及对应的接收区域,用于保证两个GPU之间的实时通讯;各GPU的接收区域用于接收对方GPU的交换区域计算更新的波场,以实现两卡之间的实时通信,保证波场的连续传播。所述步骤3)包括以下子过程:a)N个交换区域进行波场递推,与此同时N个GPU分别计算模型主体中的对应区域,2N个进程并发执行,这2N个区域的计算采用2N个不同的异步流实现并发计算;b)计算过程中,发送交换区域拷贝的任务进程,即各GPU的接收区域,等待对方GPU的交换区域更新的波场拷入,这种具有先后顺序的计算,采用流技术控制,具体指通过同一个流来控制这些顺序任务,使之位于一个队列,这种GPU之间的直接通信,就是P2P技术。参见附图2,单炮具体正演模拟的主要步骤如下:1)设置时间初值it=0;2)添加震源子波;3)炮点波场延拓;4)交换不同时刻波场;5)增加时间值it=it+1;6)判别时间是否达到阈值,若达到,则抽取正演记录,否则,返回步骤2)。本专利技术的优点和有益效果为:和传统的PC集群计算方法相比,该方法计算效率高,成本较低。与单GPU计算方法相比,本文档来自技高网
...

【技术保护点】
一种基于异步流的地震数据多GPU快速正演计算方法,其特征在于:所述方法将地震数据按照慢维域进行分割,分割的子域个数与GPU数目相同,将每个子域的数据分配给一个GPU进行计算;实现各GPU两两之间双向实时通信;采用多异步流技术控制计算流程。

【技术特征摘要】
1.一种基于异步流的地震数据多GPU快速正演计算方法,其特征在于:所述方法将地震数据按照慢维域进行分割,分割的子域个数与GPU数目相同,将每个子域的数据分配给一个GPU进行计算;实现各GPU两两之间双向实时通信;采用多异步流技术控制计算流程。2.如权利要求1所述的一种基于异步流的地震数据多GPU快速正演计算方法,其特征在于,所述方法包括以下步骤:1)基于异步流的慢维域分解;2)实现两两GPU卡间直接的通讯;3)多异步流的计算策略。3.如权利要求1或2所述的一种基于异步流的地震数据多GPU快速正演计算方法,其特征在于,所述步骤1)包括以下子过程:a)沿着慢维域将模型空间等分为n份,n等于GPU的个数;b)将每一个子模型域的网格波场值分配给一个GPU实施计算;c)将对应子模型域的网格点波场值分配到每个GPU的不同线程进行并行计算。4.如权利要求1或2所述的一种基于异步流的地震数据多GPU快速正演计算方法,其特征在于,所述步骤2)的实现过程是:在每个子模型域同时设置交换区域及对应的接收区域,用于保证两个GPU之间的实...

【专利技术属性】
技术研发人员:刘国峰李春
申请(专利权)人:中国地质大学北京
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1