一种叠前时间偏移并行处理方法技术

技术编号:9906594 阅读:110 留言:0更新日期:2014-04-11 04:53
本发明专利技术提供了一种叠前时间偏移并行处理方法,属于石油地震勘探中的地震资料处理领域。所述方法利用多进程与多线程结合的方式,将偏移计算的数据分配到多个计算进程,每个计算进程利用多个计算线程并行计算所述数据;数据在多个计算线程之间的划分方式采用的是时间方向循环划分的方式。本发明专利技术方法提高了叠前时间偏移处理计算效率,实现了大规模并行处理以及节点之间的动态负载平衡,充分发挥了节点内部的多核计算能力和内存利用率。

【技术实现步骤摘要】
一种叠前时间偏移并行处理方法
本专利技术属于石油地震勘探中的地震资料处理领域,具体涉及一种叠前时间偏移并行处理方法。
技术介绍
地震勘探的主要任务是实现地质体的精确成像,偏移处理是地震成像的核心技术。目前工业应用最多的是叠前时间偏移方法。在叠前时间偏移方法中,Kirchhoff积分法由于其具有较高的计算效率、很强的适应能力,并且适应野外不规则观测系统等优点,特别是对速度模型精度要求较低,从而成为应用广泛的偏移方法。在复杂构造地区,由于精确的速度模型建立非常困难,叠前深度偏移的优势难以充分发挥,叠前时间偏移由于对速度模型的要求不像深度偏移那样高,因此对复杂构造地区的成像有一定优势。Kirchhoff积分法叠前时间偏移的实现方式是:将一个输入的地震道上各采样点的振幅值按照Kirchhoff积分偏移公式发散到对应时刻的等时面上,这种单道处理方法具有在并行实现过程有很好的灵活性。Kirhhoff积分法偏移公式如下:公式(3-1)中为倾斜因子,θ是成像点到地震道对应的炮检距中点连线的出射角,R代表地震道到成像点的距离,z代表成像点的深度。r=(xi,yi)代表成像点的坐标,τ表示垂向双程旅行时。Ω表示探区的观测范围,u(r,τ)表示对应点的成像结果。随着勘探规模的扩大,面对上千平方公里探区的巨大规模数据体,现有的积分法叠前时间偏移面临计算效率降低的问题。如何提高叠前时间偏移的规模适应性,提高大规模资料处理时的计算效率,是叠前时间偏移面临的一个问题。
技术实现思路
本专利技术的目的在于解决上述现有技术中存在的kirchhoff叠前时间偏移处理计算效率低,不适应大规模计算的难题,提供一种叠前时间偏移并行处理方法,通过利用多线程并行算法和任务循环划分方式,解决负载均衡问题,提高计算效率及内存利用率,充分发挥各个计算节点的硬件资源,提高叠前时间偏移的计算效率和大规模数据适应性,为地震勘探提供高效准确的地震成像数据。本专利技术是通过以下技术方案实现的:一种叠前时间偏移并行处理方法,所述方法利用多进程与多线程结合的方式,将偏移计算的数据分配到多个计算进程,每个计算进程利用多个计算线程并行计算所述数据;数据在多个计算线程之间的划分方式采用的是时间方向循环划分的方式。所述时间方向循环划分的方式具体如下:假设有n个计算线程,则1号计算线程负责计算t=1,n+1,2n+1,直到(n-1)n+1位置的成像结果,2号计算线程负责计算t=2,n+2,2n+2,直到(n-1)n+2位置的成像结果,依此类推,n号计算线程负责计算t=n,n+n,2n+n,直到(n-1)n+n位置的成像结果;所述t表示时间采样点的位置。所述方法包括以下步骤:第一步,程序启动,多进程初始化后启动多进程;第二步,主控进程读入偏移参数,并广播给所有计算进程;计算进程接收主控进程发送的偏移参数;第三步,主控进程根据偏移参数开辟计算空间,计算进程根据偏移参数初始化多线程;第四步,计算进程发送状态信息给主控进程,主控进程接收计算进程发送的状态信息;第五步,主控进程根据计算进程的状态信息,主控进程读入一道或多道偏移数据索引并将其发送给状态信息为空闲的计算进程,该计算进程接收主控进程发送的偏移数据索引;第六步,主控进程判断数据计算是否结束,如果是,则主控进程给计算进程发送偏移结束信息;如果否,则转到第四步继续计算;第七步,此步与第六步同步,计算进程判断数据计算是否结束,如果否,则启动多线程计算数据,计算完成后,转到第四步继续运行;如果是,则释放多线程,计算进程结束计算;第八步,所有数据计算完成,由主控进程归约所有计算进程的计算结果,主控进程给所有计算进程发送偏移结束信号,计算结束并释放多线程空间,主控进程完成偏移结果输出,程序结束。所述第七步中的所述多线程计算数据具体包括以下步骤:(A1)主线程向主控进程接收偏移数据索引;(A2)主线程读入地震数据并存于数据缓冲池;(A3)主线程唤醒计算线程;(A4)主线程读下一段数据体,然后等待计算线程完成计算,如果收到计算线程发来的计算完成的消息,则释放线程,否则返回步骤(A3);(A5)此步与步骤(A4)同步,计算线程等待数据,在接收到数据后进行偏移计算,然后判断计算是否完成,如果是,则发送计算完成的消息给主线程;如果否,则返回步骤(A5)。与现有技术相比,本专利技术的有益效果是:本专利技术显著降低了程序的内存利用率,提高了计算效率,处理效果达到生产要求。附图说明图1是本专利技术叠前时间偏移并行处理方法的步骤框图。图2是本专利技术叠前时间偏移并行处理方法的多线程并行实现过程示意图。图3是本专利技术叠前时间偏移并行处理方法的计算任务循环划分示意图。图4是实施例中利用本专利技术方法处理得到的效果图。具体实施方式下面结合附图对本专利技术作进一步详细描述:本专利技术是通过改进现有叠前时间偏移的实现方法,应用多线程并行技术提高内存利用率,在并行任务划分上采用按时间方向循环划分的模式实现多线程之间的负载均衡,从而提高叠前时间偏移的运行效率和大规模数据的适应性。本专利技术用到的原理如下:(1)节点之间动态负载均衡模式并行算法在多节点之间进行大规模并行计算实现过程中,将节点分为主控节点和计算节点(分别对应下面的主控进程和计算进程),主控节点负责数据与计算节点之间的分配与管理,计算节点负责计算。数据读取过程,主控节点每次读入一道或多道数据的存储位置索引,发送给空闲的计算节点,空闲计算节点接收到数据索引后,读入数据进行计算。计算节点计算完成数据后,向主控节点发送空闲状态信息,请求数据,进入下一道或多道的计算。该方法充分利用各节点的计算能力,实现了各节点之间的动态负载均衡。(2)共享内存的多线程并行方法和数据缓冲池方法每个计算节点由多个计算核心(对应下面的计算线程)组成,节点内部采用多线程并行方法并行计算。线程之间分为主线程和计算线程,主线程负责读入数据,计算线程负责计算,多线程之间共享节点内存。在计算过程中,采用数据缓冲池技术,主线程不断读入数据,存于数据缓冲池,计算线程计算完成后,直接从数据缓冲池中取数据进行计算。通过数据缓冲池技术将读数据时间隐藏于计算之中,提高计算效率。多线程并行方法在充分利用节点内部各计算核的计算资源的同时降低了内存利用率,提高了计算效率。(3)并行任务循环划分方法计算节点内部多线程并行时,按照节点负责的成像结果进行并行任务划分,即将节点负责的成像结果,并行分配给各个计算线程计算(任务分配由各个计算线程根据各自的线程号计算对应的成像空间,线程初始化后,线程按顺序,一个线程对应一个线程号,各个线程根据线程号,计算对应的成像空间。),各个计算线程独立计算一部分,消除线程之间的数据耦合。成像结果的并行划分按照时间方向进行循环划分,假设有n个线程,1号线程负责计算t=1,n+1,2n+1,直到(n-1)n+1位置的成像结果,2号线程负责计算t=2,n+2,2n+2,……位置的成像结果,依次类推(如图3所示,图3给出的是有3个线程的情况,还可以有更多线程。)。成像结果时间方向循环划分方法解决了由于孔径在时间方向上的不均衡性引起的线程之间的负载不均衡问题,实现了多线程之间的负载均衡,提高了节点内各个计算核的利用率。如图1所示,本专利技术方法包括以下步骤:第一步,程序启动,MPI初始化,本文档来自技高网...
一种叠前时间偏移并行处理方法

【技术保护点】
一种叠前时间偏移并行处理方法,其特征在于:所述方法利用多进程与多线程结合的方式,将偏移计算的数据分配到多个计算进程,每个计算进程利用多个计算线程并行计算所述数据;数据在多个计算线程之间的划分方式采用的是时间方向循环划分的方式。

【技术特征摘要】
1.一种叠前时间偏移并行处理方法,其特征在于:所述方法利用多进程与多线程结合的方式,将基于Kirchhoff积分法的偏移计算的数据分配到多个计算进程,每个计算进程利用多个计算线程并行计算所述数据;数据在多个计算线程之间的划分方式采用的是时间方向循环划分的方式,其中,所述时间方向循环划分的方式具体如下:假设有n个计算线程,则1号计算线程负责计算t=1,n+1,2n+1,直到(n-1)n+1位置的成像结果,2号计算线程负责计算t=2,n+2,2n+2,直到(n-1)n+2位置的成像结果,依此类推,n号计算线程负责计算t=n,n+n,2n+n,直到(n-1)n+n位置的成像结果;所述t表示时间采样点的位置。2.根据权利要求1所述的叠前时间偏移并行处理方法,其特征在于:所述方法包括以下步骤:第一步,程序启动,多进程初始化后启动多进程;第二步,主控进程读入偏移参数,并广播给所有计算进程;计算进程接收主控进程发送的偏移参数;第三步,主控进程根据偏移参数开辟计算空间,计算进程根据偏移参数初始化多线程;第四步,计算进程发送状态信息给主控进程,主控进程接收计算进程发送的状态信息;第五步,主控进程根据计算进程的状态信息,主控进程读入一道或多道偏移数...

【专利技术属性】
技术研发人员:亢永敢许自龙孙成龙杨祥森杨尚琴李满树刘百红
申请(专利权)人:中国石油化工股份有限公司中国石油化工股份有限公司石油物探技术研究院
类型:发明
国别省市:

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

1