CN104133240A - 大规模并行的克希霍夫叠前深度偏移方法及装置 - Google Patents
大规模并行的克希霍夫叠前深度偏移方法及装置 Download PDFInfo
- Publication number
- CN104133240A CN104133240A CN201410367547.5A CN201410367547A CN104133240A CN 104133240 A CN104133240 A CN 104133240A CN 201410367547 A CN201410367547 A CN 201410367547A CN 104133240 A CN104133240 A CN 104133240A
- Authority
- CN
- China
- Prior art keywords
- node
- imaging
- prestack depth
- group
- kirchhoff prestack
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Apparatus For Radiation Diagnosis (AREA)
- Image Processing (AREA)
Abstract
本发明实施例提供了一种大规模并行的克希霍夫叠前深度偏移方法及装置,其中,该方法包括:将待偏移数据存储为多个炮检距文件,同一炮检距文件中待偏移数据的炮检距相同;将所有参与克希霍夫叠前深度偏移计算的节点分成多个节点组;触发各节点组分别对不同的炮检距文件进行克希霍夫叠前深度偏移计算,触发该节点组的组长节点读取一个炮检距文件,并广播给该节点组的组员节点,触发该节点组内的每个节点领取该炮检距文件的一个成像任务,并获取与该成像任务对应的共成像点旅行时表,根据获取的共成像点旅行时表,独立完成各自成像任务的偏移计算。该方案解决了地震数据的网络传输密集型问题,避免了由于多次读取旅行时表导致的本地I/O问题。
Description
技术领域
本发明涉及石油地球物理勘探地震数据的处理技术领域,特别涉及一种大规模并行的克希霍夫叠前深度偏移方法及装置。
背景技术
克希霍夫叠前深度偏移技术是地球物理勘探地震数据处理过程中最重要的一种深度域成像方法,该方法相对于时间偏移具有更高的成像质量,而且具有不受野外数据观测方式的限制等优点。另外它还能输出基于炮检距的共成像点道集,这类道集又是进一步速度分析的重要信息。
在水平地表情况下,Kirchhoff积分法偏移公式为:
其中,成像点ξ=(xξ,yξ,zξ),对于深度偏移为ξ=(xξ,yξ,zξ),I(ξ)是成像结果,D[t,m,h]是野外观测的地震数据,m是共中心点,h是半炮检距,Ωξ是偏移孔径。叠前偏移过程就是对一系列观测数据进行加权求和,W(ξ,m,h)是加权因子,tD(ξ,m,h)是由炮点到成像点再到接收点的旅行时间。
克希霍夫叠前深度偏移方法的数学表达虽然较为抽象,但其物理实现过程可简单描述为:地震道是从待偏移数据空间到偏移结果数据空间多对多的映射,映射关系为程函方程旅行时计算公式,在不考虑时变孔径的条件下,克希霍夫叠前深度偏移就是把每一道待偏移地震数据(炮检距为h)映射到偏移结果数据集中的一个椭圆柱体中,椭圆柱体的轴心是当前待偏移地震道按大地坐标在偏移结果数据空间中的投影位置。若偏移孔径采用圆形且孔径值为300,则一个待偏移地震采样点将要映射到282600(3.14*300*300)个偏移结果地震采样点上。
在水平地表情况下,克希霍夫积分法偏移用公式为前面所述公式(1)。(1)可以进行深度偏移,当进行深度偏移时采用图1所示的方式计算旅行时。其计算公式采用(2)式和(3)式联合计算。
T=Ts+Tr (2)
公式(2)中Ts和Tr分别为炮点和检波点到成像点的旅行时。公式(3)中的t为炮点或检波点到成像点的旅行时,V为介质的层速度。
结合公式(1)(2)和(3)可以看出,完成一个地震样点的叠前深度偏移要包括旅行时计算、振幅加权、反假频滤波和积分求和等计算。一般地,一个地震道包含几千个地震样点、一个工区包含几千万至几亿个地震道,所以一个工区叠前深度偏移的计算量是极其庞大的,传统计算机的计算能力无法满足叠前深度偏移计算量的要求。直到计算机集群技术的发展和普及后,地球物理勘探才开始研究并行克希霍夫叠前深度偏移方法,现在已形成了以下两类算法:
一类是输入道并行算法。这种方法以观测面上包含的面元总数为单位把整个偏移结果数据空间平均分配到参与计算的各个节点的内存中。待偏移数据空间中的每一道地震数据都要传送到各个计算节点上,然后从本地的存储空间上读取成像空间所对应的共炮点(或起始点)旅行时表,再进行偏移计算。等待偏移的地震数据都偏移完成后,再把各个节点内存中的偏移结果合并成完整的偏移结果。这类方法存在的主要缺点是网络间数据的传输量和节点个数成正比,对硬件的可扩展性受到了限制。
另一类是输出道并行算法。这类方法一次完成输出空间沿观测线方向一条线(Inline)的偏移,因为一条Inline线的成像空间和旅行时表不算太大,因此所有参与计算的节点平均分配整条线的成像空间和共炮点(或起始点)旅行时表空间,并读入内存中。将该条线对应偏移孔径内的所有叠前地震数据依次读取,并广播到所有的计算节点上进行偏移计算,直到所有偏移孔径内的叠前地震数据都偏移完毕。偏移结束后把各个节点内存中的偏移结果输出,当前Inline线偏移结束,再转入下一条输出线偏移。该类方法存在的主要缺点是需要多次重复读取叠前地震数据,而且地震数据的读取量、网络传输数量和输出空间inline线的个数以及参与并行计算的节点个数成一定的比例关系,随着偏移工区增大、节点个数增大,地震数据的网络流量快速增长。
目前实际生产中叠前深度偏移会按照两种方式运行,一种是目标线偏移,目的是优化偏移速度场和偏移参数试验等,另一种是体偏移,其目的是得到最终的叠前深度偏移结果。目标线偏移计算量较小采用输出道并行算法效率较高,体偏移计算量较大采用输入道并行算法效率较高。
但是,不管是输入道并行算法还是输出道并行算法,随着计算节点个数增加地震数据网络流量将随之快速增大,当地震数据网络流量过大,计算机集群带宽不能满足叠前深度偏移的网络流量要求时,叠前深度偏移就会遇到加速比瓶颈,这时再增加计算的节点个数,偏移的运行时间反而会增加、运行效率降低,从而降低了硬件的可扩展性。
发明内容
本发明实施例提供了一种大规模并行的克希霍夫叠前深度偏移方法及装置,解决了现有技术中由于随着计算节点个数增加地震数据网络流量随之快速增大导致的硬件的可扩展性低的技术问题。
本发明实施例提供了一种大规模并行的克希霍夫叠前深度偏移方法,该方法包括:将待偏移数据存储为多个炮检距文件,同一炮检距文件中待偏移数据的炮检距相同;将所有参与克希霍夫叠前深度偏移计算的节点分成多个节点组,以节点本身的编号顺序为;触发各节点组分别对不同的炮检距文件进行克希霍夫叠前深度偏移计算;触发各节点组分别对不同的炮检距文件进行克希霍夫叠前深度偏移计算,包括:对于每一个节点组,触发该节点组的组长节点根据所述待偏移数据中每一道数据的道头字信息与所述炮检距文件的对应关系,读取一个炮检距文件,并将该炮检距文件广播给该节点组的组员节点,该节点组内的第一个节点为组长节点,其他节点为组员节点;触发该节点组内的每个节点领取该炮检距文件的一个成像任务,并获取与该成像任务对应的共成像点旅行时表;触发每个节点根据获取的共成像点旅行时表,独立完成各自成像任务的克希霍夫叠前深度偏移计算,得到成像结果;触发组长节点接收各个组员节点的成像结果,并输出。
在一个实施例中,将所有参与克希霍夫叠前深度偏移计算的节点分成多个节点组,包括:若所述待偏移数据的成像空间的总任务个数大于预设数值,则将相邻的所述预设数值个节点分为一个节点组;或者若所述待偏移数据的成像空间的总任务个数小于预设数值且大于1,则将所述成像空间的总任务个数个节点分为一个节点组;或者若所述待偏移数据的成像空间的总任务个数小于1,则将1个节点分为一个节点组。
在一个实施例中,所述待偏移数据的成像空间的总任务个数为所述成像区间的总面元数与单个节点存储单个成像空间旅行时表个数的比值。
在一个实施例中,所述成像区间的总面元数为所述成像区间的测线数与每条测线上的共中心点CMP数的乘积。
在一个实施例中,所述单个节点存储单个成像空间旅行时表个数为单个节点的物理内存与单个成像空间旅行时表所占用的存储空间的比值。
在一个实施例中,触发每个节点获取与该成像任务对应的共成像点旅行时表,包括:触发每个节点确定所有到成像任务中每个成像点的射线追踪起始点;触发每个节点从确定的射线追踪起始点的射线追踪起始点旅行时表中抽取所述每个成像点的旅行时表,组成所述共成像点旅行时表。
在一个实施例中,所述射线追踪起始点旅行时表为所有参与克希霍夫叠前深度偏移计算的节点分别计算的每个射线追踪起始点到预设范围空间内任意点的时间,该预设范围空间以该射线追踪起始点为起始点、以偏移孔径为横向范围且以最大偏移深度为纵向范围。
在一个实施例中,触发每个节点根据获取的共成像点旅行时表,独立完成各自成像任务的克希霍夫叠前深度偏移计算,得到成像结果之后,还包括:触发每个节点领取该炮检距文件的下一个成像任务,并进行克希霍夫叠前深度偏移计算,直至完成该炮检距文件中的所有成像任务。
在一个实施例中,触发各节点组分别对不同的炮检距文件进行克希霍夫叠前深度偏移计算,包括:对于每一个节点组,触发该节点组对读取的一个炮检距文件进行克希霍夫叠前深度偏移计算后,触发该节点组读取下一个炮检距文件并进行克希霍夫叠前深度偏移计算,直到完成所有的炮检距文件的克希霍夫叠前深度偏移计算。
本发明实施例还提供了一种并行的克希霍夫叠前深度偏移装置,该装置包括:存储模块,用于将待偏移数据存储为多个炮检距文件,同一炮检距文件中待偏移数据的炮检距相同;分组模块,用于将所有参与克希霍夫叠前深度偏移计算的节点分成多个节点组,以节点本身的编号顺序为同一节点组内各节点的顺序;触发计算模块,用于触发各节点组分别对不同的炮检距文件进行克希霍夫叠前深度偏移计算;所述触发计算模块,包括:触发读取单元,用于对于每一个节点组,触发该节点组的组长节点根据所述待偏移数据中每一道数据的道头字信息与所述炮检距文件的对应关系,读取一个炮检距文件,并将该炮检距文件广播给该节点组的组员节点,该节点组内的第一个节点为组长节点,其他节点为组员节点;触发领取单元,用于触发该节点组内的每个节点领取该炮检距文件的一个成像任务,并获取与该成像任务对应的共成像点旅行时表;触发计算单元,用于触发每个节点根据获取的共成像点旅行时表,独立完成各自成像任务的克希霍夫叠前深度偏移计算,得到成像结果;触发输出单元,用于触发组长节点接收各个组员节点的成像结果,并输出。
在一个实施例中,所述分组模块,包括:第一分组单元,用于若所述待偏移数据的成像空间的总任务个数大于预设数值,则将相邻的所述预设数值个节点分为一个节点组;或者第二分组单元,用于若所述待偏移数据的成像空间的总任务个数小于预设数值且大于1,则将所述成像空间的总任务个数个节点分为一个节点组;或者第三分组单元,用于若所述待偏移数据的成像空间的总任务个数小于1,则将1个节点分为一个节点组。
在一个实施例中,所述待偏移数据的成像空间的总任务个数为所述成像区间的总面元数与单个节点存储单个成像空间旅行时表个数的比值。
在一个实施例中,所述成像区间的总面元数为所述成像区间的测线数与每条测线上的共中心点CMP数的乘积。
在一个实施例中,所述单个节点存储单个成像空间旅行时表个数为单个节点的物理内存与单个成像空间旅行时表所占用的存储空间的比值。
在一个实施例中,所述触发领取单元,包括:触发确定子单元,用于触发每个节点确定所有到成像任务中每个成像点的射线追踪起始点;触发获取子单元,用于触发每个节点从确定的射线追踪起始点的射线追踪起始点旅行时表中抽取所述每个成像点的旅行时表,组成所述共成像点旅行时表。
在一个实施例中,所述射线追踪起始点旅行时表为所有参与克希霍夫叠前深度偏移计算的节点分别计算的每个射线追踪起始点到预设范围空间内任意点的时间,该预设范围空间以该射线追踪起始点为起始点、以偏移孔径为横向范围且以最大偏移深度为纵向范围。
在一个实施例中,所述触发领取单元,还用于触发每个节点根据获取的共成像点旅行时表,独立完成各自成像任务的克希霍夫叠前深度偏移计算,得到成像结果之后,触发每个节点领取该炮检距文件的下一个成像任务,并进行克希霍夫叠前深度偏移计算,直至完成该炮检距文件中的所有成像任务。
在一个实施例中,所述触发计算模块,还用于对于每一个节点组,触发该节点组对读取的一个炮检距文件进行克希霍夫叠前深度偏移计算后,触发该节点组读取下一个炮检距文件并进行克希霍夫叠前深度偏移计算,直到完成所有的炮检距文件的克希霍夫叠前深度偏移计算。
在本发明实施例中,通过将待偏移数据存储为多个炮检距文件,同一炮检距文件中待偏移数据的炮检距相同,即将炮检距相同的待偏移数据独立存储为一个炮检距文件,并将所有参与克希霍夫叠前深度偏移计算的节点分成多个节点组,再触发各节点组对不同的炮检距文件进行克希霍夫叠前深度偏移计算,由于待偏移数据是按照炮检距为单位进行单独存储的,使得各个炮检距文件之间没有依赖关系,避免了地震数据在网络上大量地冗余传递;同时,由于是每个节点组对一个炮检距文件进行克希霍夫叠前深度偏移计算,只需在本节点组的节点上传送一个炮检距文件的待偏移数据,而一个节点组内的节点个数远小于所有参与克希霍夫叠前深度偏移计算的节点数。因此,该并行的克希霍夫叠前深度偏移方法从方法本身上大大减少了地震数据在节点之间的传输总量,解决了地震数据的网络传输密集型问题,避免了随着计算节点个数增加地震数据网络流量随之快速增大的问题,从而提高硬件的可扩展性,有助于计算硬件规模扩展,缩短克希霍夫叠前深度偏移的计算周期;此外,由于在每个节点完成成像任务时,使用的是与该成像任务对应的共成像点旅行时表,使得将共炮点旅行时表按照成像空间划分并组织为共成像点旅行时表,从而避免了由于多次读取旅行时表导致的本地I/O问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1是现有技术中水平地表旅行时计算示意图;
图2是本发明实施例提供的一种大规模并行的克希霍夫叠前深度偏移方法的流程图;
图3是本发明实施例提供的一种待偏移地震数据分割的示意图;
图4是本发明实施例提供的一种成像空间的面元数的计算示意图;
图5是本发明实施例提供的一种共成像点旅行时表的抽取示意图;
图6是本发明实施例提供的一种成像区间确定的待偏移地震数据范围的示意图;
图7是本发明实施例提供的一种模型的速度场示意图;
图8是本发明实施例提供的一种采用本发明的并行的克希霍夫叠前深度偏移方法偏移结果的示意图;
图9是本发明实施例提供的一种采用本发明的并行的克希霍夫叠前深度偏移和输入道法目标线偏移的效率对比示意图;
图10是本发明实施例提供的一种采用本发明和输入道法目标线偏移效率的加速比对比示意图;
图11是本发明实施例提供的一种大规模并行的克希霍夫叠前深度偏移装置的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
在本发明实施例中,提供了一种大规模并行的克希霍夫叠前深度偏移方法,如图2所示,该方法包括:
步骤201:将待偏移数据存储为多个炮检距文件,同一炮检距文件中待偏移数据的炮检距相同;
步骤202:将所有参与克希霍夫叠前深度偏移计算的节点分成多个节点组,以节点本身的编号顺序为同一节点组内各节点的顺序;例如,当本身编号分别为ibm2-010,ibm2-011,ibm2-012,ibm2-013的节点被分到一个节点组时,则该节点组内各个节点的顺序为ibm2-010,ibm2-011,ibm2-012,ibm2-013,因此,在节点组分组时,可以按照节点编号的顺序进行分组,因为各个节点本身的编号是连续的,只要按照节点编号的顺序进行分组,就可以保证节点组内各个节点顺序是各个节点的编号顺序且编号连续。
步骤203:触发各节点组分别对不同的炮检距文件进行克希霍夫叠前深度偏移计算;
步骤203中触发各节点组分别对不同的炮检距文件进行克希霍夫叠前深度偏移计算,包括:
对于每一个节点组,触发该节点组的组长节点根据所述待偏移数据中每一道数据的道头字信息与所述炮检距文件的对应关系,读取一个炮检距文件,并将该炮检距文件广播给该节点组的组员节点,该节点组内的第一个节点为组长节点,其他节点为组员节点;
触发该节点组内的每个节点领取该炮检距文件的一个成像任务,并获取与该成像任务对应的共成像点旅行时表;
触发每个节点根据获取的共成像点旅行时表,独立完成各自成像任务的克希霍夫叠前深度偏移计算,得到成像结果;
触发组长节点接收各个组员节点的成像结果,并输出。
由图2所示的流程可知,在本发明实施例中,通过将待偏移数据存储为多个炮检距文件,同一炮检距文件中待偏移数据的炮检距相同,即将炮检距相同的待偏移数据独立存储为一个炮检距文件,并将所有参与克希霍夫叠前深度偏移计算的节点分成多个节点组,再触发各节点组对不同的炮检距文件进行克希霍夫叠前深度偏移计算,由于待偏移数据是按照炮检距为单位进行单独存储的,使得各个炮检距文件之间没有依赖关系,避免了地震数据在网络上大量地冗余传递;同时,由于是每个节点组对一个炮检距文件进行克希霍夫叠前深度偏移计算,只需在本节点组的节点上传送一个炮检距文件的待偏移数据,而一个节点组内的节点个数远小于所有参与克希霍夫叠前深度偏移计算的节点数。因此,该并行的克希霍夫叠前深度偏移方法从方法本身上大大减少了地震数据在节点之间的传输总量,解决了地震数据的网络传输密集型问题,避免了随着计算节点个数增加地震数据网络流量随之快速增大的问题,从而提高硬件的可扩展性,有助于计算硬件规模扩展,缩短克希霍夫叠前深度偏移的计算周期;此外,提出了共成像点旅行时表的概念,以及如何抽取共成像点旅行时表的方法,在每个节点完成成像任务时,使用的是与该成像任务对应的共成像点旅行时表,使得将共炮点旅行时表按照成像空间划分并组织为共成像点旅行时表,从而避免了由于多次读取旅行时表导致的本地I/O问题,也使得叠前深度偏移计算时并行对成像任务计算的分配方式变得非常简单。
具体实施时,如图3所示,可以通过以下步骤来实现将所述待偏移数据存储为多个炮检距文件,同一炮检距文件中待偏移数据的炮检距相同,即将炮检距相同的待偏移数据独立存储为一个炮检距文件:
野外采集得到待偏移地震数据,进行静校正、去噪、反褶积后对该待偏移地震数据进行预处理;
该预处理过程是:
A、收集每一道数据的炮点位置X坐标、炮点位置Y坐标、检波点位置X坐标、检波点位置Y坐标、沿测线方向(Inline)线号,垂直测线方向(Xline或者CMP)线号等道头字信息;
B、把待偏移地震数据按照炮检距(offset)、沿测线方向(Inline)线号,CMP号三级关键字分选,将每一个炮检距数据保存为一个独立的地震数据文件,称为炮检距文件;以炮检距(offset)、沿测线方向Inline线号、垂直测线方向CMP号三级关键字分选来形成炮检距文件的过程具体为:首先,以炮检距为单位,将相同炮检距或一个炮检距的待偏移地震数据独立存储为一个炮检距文件,对于一个炮检距文件中的数据,可以再按照Inline线号和CMP号排序。
C、建立A中的道头字信息和B中炮检距文件的相互对应关系。例如,每一道的道头字信息如炮点坐标、检波点坐标、沿测线方向线号、CMP号等被单独拿出来存储在一个文件中,将所对应的数据存储在另外的文件中,并建立索引表将两者对应起来。在后续的偏移计算过程中,首先扫描道头信息,如果该道数据对偏移成像有贡献则将对应的数据体读入内存中进行偏移计算,否则不读取该道数据,这样节省了数据读取时间。
具体的,根据最小炮检距、最大炮检距、炮检距增量参数,可以按下式计算炮检距个数:炮检距个数=(最大炮检距-最小炮检距)/炮检距增量。
具体的,以工区范围(Inline线数×CMP数)大小为标准,可以通过以下步骤确定炮检距文件的个数:
单个临时盘的待偏移数据量=工区Inline线数×工区每条Inline线的CMP数×单道数据大小;
炮检距文件个数=单个临时盘的待偏移数据量/一个炮检距的数据量;
A、如果炮检距文件个数小于1,则将单个炮检距文件拆分为多个文件。
B、如果炮检距文件个数大于1,则将多个炮检距文件合并为一个文件。
具体实施时,可以通过以下步骤来实现将所有参与克希霍夫叠前深度偏移计算的节点分成多个节点组:
若所述待偏移数据的成像空间的总任务个数大于预设数值(例如,该预设数值可以是4),则将相邻的所述预设数值个节点分为一个节点组;或者
若所述待偏移数据的成像空间的总任务个数小于预设数值且大于1,则将所述成像空间的总任务个数个节点分为一个节点组;或者
若所述待偏移数据的成像空间的总任务个数小于1,则将1个节点分为一个节点组。
其中,具体的,所述待偏移数据的成像空间的总任务个数为所述成像区间的总面元数与单个节点存储单个成像空间旅行时表个数的比值。
如图4所示,所述成像区间的总面元数为所述成像区间的测线数(图4中的L)与每条测线上的共中心点CMP数(图4中的X)的乘积。
所述单个节点存储单个成像空间旅行时表个数为单个节点的物理内存(例如,节点的物理内存乘以0.8)与单个成像空间旅行时表所占用的存储空间的比值。
可以通过以下方式确定单个成像空间旅行时表所占用的存储空间:单个成像空间旅行时表所占用的存储空间=(偏移孔径/线间距)×(偏移孔径/CMP间距)×(偏移深度/深度采样间隔)×4字节。
具体的,如图5所示,触发每个节点获取与该成像任务对应的共成像点旅行时表包括:触发每个节点确定所有到成像任务中每个成像点的射线追踪起始点;触发每个节点从确定的射线追踪起始点的射线追踪起始点旅行时表中抽取所述每个成像点的旅行时表,组成所述共成像点旅行时表。
其中,所述射线追踪起始点旅行时表为所有参与克希霍夫叠前深度偏移计算的节点分别计算的每个射线追踪起始点到预设范围空间内任意点的时间,该预设范围空间以该射线追踪起始点为起始点、以偏移孔径为横向范围且以最大偏移深度为纵向范围,具体的,所有参与克希霍夫叠前深度偏移计算的节点分别领取一个射线追踪起始点,并计算该射线追踪起始点的射线追踪起始点旅行时表,计算完毕后,以该射线追踪起始点为标号,将射线追踪起始点旅行时表存储在共享盘上,并领取新的射线追踪起始点,直至所有的射线追踪起始点都计算完毕。
具体的,可以通过以下方式计算射线追踪起始点的个数:
首先,根据偏移孔径确定上述待偏移数据的成像区间所需要的待偏移地震数据的范围,如图6所示,线条较粗、范围较大且箭头指向的数据范围是旅行时表计算范围,线条较细、范围较小的数据范围是偏移范围,具体方法为:
需要的待偏移地震数据的最小沿测线方向线号=成像区间的最小沿测线方向线号-(垂直测线方向的最大孔径/线间距);
需要的待偏移地震数据的最大沿测线方向线号=成像区间的最大沿测线方向线号+(垂直测线方向的最大孔径/线间距);
需要的待偏移地震数据的最小CMP号=成像区间的最小CMP号-(沿直测线方向的最大孔径/CMP间距);
需要的待偏移地震数据的最大CMP号=成像区间的最大CMP号+(沿直测线方向的最大孔径/CMP间距);
其次,根据已经确定的需要的待偏移地震数据范围,确定总旅行时计算的射线追踪起始点个数,具体方法为:
总旅行时计算的射线追踪起始点=(需要的待偏移地震数据的最大沿测线方向线号-需要的待偏移地震数据的最小沿测线方向线号)×(需要的待偏移地震数据的最大CMP号-需要的待偏移地震数据的最小CMP号)。
具体实施时,为了将任务分配模式变为“能者多劳”式,更适合于异步通讯机制,以解决慢节点或故障节点对整体计算性能的影响,在本实施例中,触发每个节点根据获取的共成像点旅行时表,独立完成各自成像任务的克希霍夫叠前深度偏移计算,得到成像结果之后,还包括:触发每个节点领取该炮检距文件的下一个成像任务,并进行克希霍夫叠前深度偏移计算,直至完成该炮检距文件中的所有成像任务。
同时,触发各节点组分别对不同的炮检距文件进行克希霍夫叠前深度偏移计算,包括:
对于每一个节点组,触发该节点组对读取的一个炮检距文件进行克希霍夫叠前深度偏移计算后,触发该节点组读取下一个炮检距文件并进行克希霍夫叠前深度偏移计算,直到完成所有的炮检距文件的克希霍夫叠前深度偏移计算。
以下结合示例具体描述上述并行的克希霍夫叠前深度偏移方法,该方法包括以下步骤:
步骤1:野外采集得到的地震数据,进行静校正、去噪、反褶积后,对该地震数据进行预处理;
步骤1中所述的预处理过程是:
A、收集每一道数据的炮点位置X坐标、炮点位置Y坐标、检波点位置X坐标、检波点位置Y坐标、沿测线方向(Inline)线号,垂直测线方向(Xline或者CMP)线号等道头字信息;
B、把待偏移地震数据按照炮检距(offset)、沿测线方向(Inline)线号,、CMP号三级关键字分选,将每一个炮检距的待偏移地震数据保存为一个独立的地震数据文件,称为炮检距文件;
C、建立A中的道头字信息和B中炮检距文件的相互对应关系。
步骤2:根据最小炮检距、最大炮检距、炮检距增量参数,按下式计算炮检距个数:炮检距个数=(最大炮检距-最小炮检距)/炮检距增量。步骤3:以工区范围(Inline线数×CMP数)大小为标准,确定炮检距文件的个数,如图3所示,炮检距文件个数的确定按照以下原则进行:
单个临时盘的待偏移数据量=工区Inline线数×工区每条Inline线的CMP数×单道数据大小;
炮检距文件个数=单个临时盘的待偏移数据量/一个偏移距的数据量;
A、如果炮检距文件个数小于1,则将单个炮检距文件拆分为多个文件;
B、如果炮检距文件个数大于1,则将多个炮检距文件合并为一个文件。
步骤4:确定待偏移数据的成像区间的面元数,如图4所示,具体方法如下:
成像区间的总面元数=成像区间的测线数(L)×每条测线上的CMP数(X)。
步骤5:根据偏移孔径确定成像区间所需要的待偏移地震数据的范围,如图6所示,具体方法为:
需要的待偏移地震数据的最小沿测线方向线号=成像区间的最小沿测线方向线号-(垂直测线方向的最大孔径/线间距);
需要的待偏移地震数据的最大沿测线方向线号=成像区间的最大沿测线方向线号+(垂直测线方向的最大孔径/线间距);
需要的待偏移地震数据的最小CMP号=成像区间的最小CMP号-(沿直测线方向的最大孔径/CMP间距);
需要的待偏移地震数据的最大CMP号=成像区间的最大CMP号+(沿直测线方向的最大孔径/CMP间距);
步骤6:根据已经确定的成像区间所需要的待偏移地震数据范围,确定总旅行时计算的射线追踪起始点个数,具体方法为:
总旅行时计算的射线追踪起始点个数=(需要的待偏移地震数据的最大沿测线方向线号-需要的待偏移地震数据的最小沿测线方向线号)×(需要的待偏移地震数据的最大CMP号-需要的待偏移地震数据的最小CMP号)。
步骤7:所有参与克希霍夫叠前深度偏移计算的节点,每个节点领到一个旅行时计算的射线追踪起始点,以该点为起始点,以偏移孔径为横向范围,以最大偏移深度为纵向范围计算起始点到该范围内空间任意点的时间。计算完毕后,以起始点为标号,将射线追踪起始点旅行时表存储在共享盘上。并领取新的射线追踪起始点,直到所有的射线追踪起始点都计算完毕。
步骤8:确定单个成像空间旅行时表所占用的存储空间大小,具体方法为:
单个成像空间旅行时表所占用的存储空间大小=(偏移孔径/线间距)×(偏移孔径/CMP间距)×(偏移深度/深度采样间隔)×4字节。
步骤9:确定单个节点存储的单个成像空间旅行时表个数,具体方法如下:
单个节点存储的单个成像空间旅行时表个数=(节点的物理内存×0.8)/单个成像空间旅行时表所占用的存储空间大小。
步骤10:确定成像空间的总任务个数,具体方法如下:
成像空间的总任务个数=成像区间的总面元数/单个节点存储的单个成像空间旅行时表个数
步骤11:把所有参与克希霍夫叠前深度偏移计算的节点进行分组,同一组内的节点在节点名的顺序连续,且节点分组按照一下原则进行:
A、如果成像空间的总任务个数大于4(即预设数值),则将相邻的4个节点划分为一组,如果不整分则最后剩余的节点为一组;
B、如果成像空间的总任务个数小于4且大于1,则将成像空间的总任务个数个节点划分为一组;
C、如果成像空间的总任务个数小于1,则以1个节点为一组。
步骤12:将步骤11分组的节点组内的第一个节点确定为组长节点,节点组内其它节点作为组员节点。
步骤13:每一组的组长节点从本地盘逐道读取单个炮检距待偏移地震数据的炮检距文件,并广播给本组所有组员节点。
步骤14:节点组内每个节点领取一个成像任务,并读取该成像任务对应的共成像点旅行时表到内存中,如图5所示,读取共成像点旅行时表按照以下原则进行:
A、确定所有到该成像任务中每个成像点的射线追踪起始点;
B、从确定的射线追踪起始点的射线追踪起始点旅行时表中抽取到每个成像点的旅行时表,组成共成像点旅行时表。
步骤15:组内每个节点依据内存中的共成像点旅行时表独立完成各自的克希霍夫叠前深度偏移计算任务。
步骤16:偏移计算任务完成后,组长节点回收该组员节点的成像结果并输出。
步骤17:组内所有节点领取该炮检距文件中剩余的偏移计算任务,完成后由组长节点回收偏移结果并输出。再领取剩余的计算任务,直到该炮检距文件中所有的偏移计算任务都完成。
步骤18:重复步骤13~17完成下一个炮检距文件的克希霍夫叠前深度偏移计算,直到所有的炮检距文件都完成偏移计算。
具体的,本发明中上述并行的克希霍夫叠前深度偏移方法的原理如下:
设:待偏移数据空间
其中:S----待偏移数据总大小
L----待偏移数据L条Inline线;
X----待偏移数据X个CMP点;
O----待偏移数据O个偏移距道;
Rijk----第i条线第j个cmp点第k个偏移距道集内地震数据大小;
设:单个旅行时表空间
其中:T----旅行时表总大小;
A----Inline线方向的偏移孔径确定的旅行时表线数;
B----Crossline线方向的偏移孔径确定的旅行时表CMP点数;
设:偏移结果数据空间
其中:M----偏移结果数据总大小;
L----偏移结果L条Inline线;
X----每条Inline线X个crp点;
O----每个crp面元内O个偏移距道集数据;
设:节点个数为R,总计算量为P
则,一个节点上要完成的计算量
Pi=P/R (7)
设:传统的输入道并行方法的网络流量和本地流量为G
则G=(R+1)×S+M+8×S×T (8)
其中,(R+1)×S为主节点读取地震数据S,并广播给所有的节点。M为成像数据的输出,8×S×T为待偏移数据S的每一道都需要读取8个成像点旅行时表T。
从(7)式可以看出,单个节点上的计算量和节点个数成反比,随着节点个数的增加,单个节点上的计算量将减少,整体计算速度将提高。
从(8)式可以看出,前两部分是网络流量和节点个数成正比,随着节点个数的增加,网络流量将正比例增加,数据传送的开销将要增加。当结点个数多于某个数值时,集群的网络资源将不能满足并行程序数据传输量的需求,使得节点的计算单元不能及时得到数据处于等待状态,从而降低整体计算速度。第三部分本地流量与偏移数据空间成正比,数据空间越大则本地流量急剧增加。
综合分析(7)式和(8)式,输入道并行方法虽然在工业界发挥着重要的作用,当计算节点增加到一定个数时,增加的网络流量严重超越了集群网络资源传送能力,这就限制了输入道并行方法只能在中小规模的并行环境中运行。同样输出道方法也存在相同的问题,这里不再论述。
另外,本地流量随着数据空间的增大而急剧增加,其主要表现形式为旅行时表反复读取多次。因此,本地磁盘的I/O瓶颈也是制约积分法叠前深度偏移的又一项因素。
王华忠2012年(石油地球物理勘探,第三期)提出的Kirchhoff叠前深度偏移方法的总网络流量为:
G=K×S+M+R×T×L×X (9)
其中,K×S为读取地震数据的总流量,S为地震数据,K为深度上的分段数目;M为成像数据的输出;R×T×L×X为旅行时表的读取总流量,R为节点数据,T×L×X为总旅行时表大小。
本发明是一种大规模并行的克希霍夫叠前深度偏移并行方法,把输出空间细分为四维空间,四个坐标轴分别指的是:Inline线号、Crossline线号、成像深度、炮检距。从(6)式可以看出,Inline线数和Crossline线数是地震工区的成像范围,由用户编码提供,在地面上的投影是规则的矩形网格,同时每个CRP道集中包含的地震道数也是由用户填写的成像炮检距区间和炮检距增量参数组确定。
设:MinOffset---最小炮检距
MaxOffset---最大炮检距
IncOffset---炮检距增量
则每个CRP道集中的地震道数
m=(MaxOffset-MinOffset)/IncOffset+1 (10)
其中第i道的炮检距为
Offseti=(i-0.5)×IncOffset+MinOffset (11)
把四维空间中相同道号或相同炮检距的所有数据抽取为一组,整个输出空间将变成一系列共道号或共炮检距的三维数据集。
本发明的一种大规模并行的克希霍夫叠前深度偏移并行方法以共道号或共炮检距数据集为单位进行并行任务划分,由一个或几个节点共同完成一个共炮检距数据集的三维叠前深度偏移的计算工作。
由于其它炮检距的待偏移数据不会给该炮检距的输出结果产生贡献,所以只需要在本组节点上传送该组炮检距的待偏移数据。
设:每个节点组内的节点个数为H,H由实现步骤(11)确定;
则本发明方法的地震数据的网络流量和本地流量:
G=(H+1)×S+M+(L×X×T)×(S/(L×X))=(H+1)×S+M+T×S (12)
其中,(H+1)×S为组长节点读取地震数据S,并广播给本组的组员节点。M为成像数据的输出,T×S为所有本地磁盘的I/O流量。
比较(8)式和(12)式的前两部分,一般来说待偏移数据S和偏移结果数据M的大小基本相当,(8)式中节点个数R远大于(12)式中H,所以(12)式表示的网络流量要远远小于(8)式的网络流量,随着节点个数增加,(8)式的网络流量成线性关系递增,(12)式网络流量保持不变。
比较(8)式和(12)式的最后一部分,从(8)式中的8×S×T变为(12)式的T×S,本地磁盘的I/O流量变为原来的1/8。大大减少了本地磁盘的I/O流量,从而解决了积分法叠前深度偏移的关键难题。
再比较本发明的(12)式和王华忠提出方法的(9)式的前两部分,K的分段数目一般为几十段到几百段,远远大于本发明中一个组内的组员数量几个,所以王华忠提出方法的网络流量为本发明方法的10倍以上。
再比较本发明的(12)式和王华忠提出方法的(9)式的第三部分,
本发明的总旅行时表流量为单个旅行时表T的S倍,S一般为108左右。王华忠方法的总旅行时表流量为单个旅行时表T的R×L×X倍,R×L×X也为108左右。故旅行时表的总流量相当。
总体上看,本发明的方法比王华忠提出方法的总网络流量少很多,所以更高效,更适合大规模并行。
本发明为了验证效果,选用一个理论数据进行了偏移试验,图7是速度模型,图8是采用本发明并行的克希霍夫叠前深度偏移方法的偏移结果,从对比结果可以看出本发明并行的克希霍夫叠前深度偏移方法是完全正确的。
本发明为了进一步验证效果,选用某一实际三维工区,工区待偏移数据大小为300GB,在HP4集群上进行大规模并行积分法叠前深度偏移网络流量测试。HP4集群包含64个节点,本次测试使用了30个节点。从测试过程可以看出CPU利用率非常高,本地磁盘流量较低,网络流量只有在内存切换时出现。本发明成功地解决了克希霍夫叠前深度偏移的网络流量大和本地磁盘流量大的问题,仅剩下计算密集型,计算密集型通过增加计算节点就能解决。
本发明为了验证效果采用的硬件环境:测试集群有256个计算节点,每个节点有24个核。
测试数据:测试的地震数据是某三维工区,工区范围:Inline1001~Inline1543,Xline350~Xline1788,目标线测试范围:Inline1001~Inline1500~Step60,即从1001线起每隔60条线进行偏移总共偏移9条线。
图9是分别采用本发明的并行的克希霍夫叠前深度偏移和输入道平行算法测试的目标线偏移的运行时间和加速比。纵轴为运行时间,单位为秒。蓝色代表本发明的算法,红色代表输入道方法。图10是图9运行时间的加速比图,有圆点的线条代表本发明的算法,有方形的线条代表输入道方法,有三角形的线条代表理论加速比。以17个节点为最小测试作业,按递增关系依次测试17,37、61、81、101、121、141、201个节点的运行时间,并计算相应的加速比。
从图9和图10的目标线偏移测试结果可以看出本发明方法随着节点个数的增加,运行时间基本按倍数关系减少,加速比曲线非常接近于理论值。输入道并行方法随着节点个数的增加,程序的时间在61节点处达到最小,再增加节点个数时,程序运行时间将不再减少,加速比曲线在61节点处达到最高值,继续增加节点时,该曲线严重偏离理论值。
对于体偏计算的过程就是多个目标线计算的过程,因此与目标线偏移效率对比结论类似,本发明与输入道法体偏的计算效率也有与目标线有类似的结论。
基于同一发明构思,本发明实施例中还提供了一种并行的克希霍夫叠前深度偏移装置,如下面的实施例所述。由于并行的克希霍夫叠前深度偏移装置解决问题的原理与并行的克希霍夫叠前深度偏移方法相似,因此并行的克希霍夫叠前深度偏移装置的实施可以参见并行的克希霍夫叠前深度偏移方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图11是本发明实施例的大规模并行的克希霍夫叠前深度偏移装置的一种结构框图,如图11所示,包括:存储模块1101、分组模块1102和触发计算模块1103,下面对该结构进行说明。
存储模块1101,用于将待偏移数据存储为多个炮检距文件,同一炮检距文件中待偏移数据的炮检距相同;
分组模块1102,与存储模块1101连接,用于将所有参与克希霍夫叠前深度偏移计算的节点分成多个节点组,以节点本身的编号顺序为同一节点组内各节点的顺序;
触发计算模块1103,与分组模块1102连接,用于触发各节点组分别对不同的炮检距文件进行克希霍夫叠前深度偏移计算;
所述触发计算模块1103,包括:
触发读取单元,用于对于每一个节点组,触发该节点组的组长节点根据所述待偏移数据中每一道数据的道头字信息与所述炮检距文件的对应关系,读取一个炮检距文件,并将该炮检距文件广播给该节点组的组员节点,该节点组内的第一个节点为组长节点,其他节点为组员节点;
触发领取单元,与触发读取单元连接,用于触发该节点组内的每个节点领取该炮检距文件的一个成像任务,并获取与该成像任务对应的共成像点旅行时表;
触发计算单元,与触发领取单元连接,用于触发每个节点根据获取的共成像点旅行时表,独立完成各自成像任务的克希霍夫叠前深度偏移计算,得到成像结果;
触发输出单元,与触发计算单元连接,用于触发组长节点接收各个组员节点的成像结果,并输出。
在一个实施例中,所述分组模块1102,包括:第一分组单元,用于若所述待偏移数据的成像空间的总任务个数大于预设数值,则将相邻的所述预设数值个节点分为一个节点组;或者第二分组单元,用于若所述待偏移数据的成像空间的总任务个数小于预设数值且大于1,则将所述成像空间的总任务个数个节点分为一个节点组;或者第三分组单元,用于若所述待偏移数据的成像空间的总任务个数小于1,则将1个节点分为一个节点组。
在一个实施例中,所述待偏移数据的成像空间的总任务个数为所述成像区间的总面元数与单个节点存储单个成像空间旅行时表个数的比值。
在一个实施例中,所述成像区间的总面元数为所述成像区间的测线数与每条测线上的共中心点CMP数的乘积。
在一个实施例中,所述单个节点存储单个成像空间旅行时表个数为单个节点的物理内存与单个成像空间旅行时表所占用的存储空间的比值。
在一个实施例中,所述触发领取单元,包括:触发确定子单元,用于触发每个节点确定所有到成像任务中每个成像点的射线追踪起始点;触发获取子单元,与触发确定子单元连接,用于触发每个节点从确定的射线追踪起始点的射线追踪起始点旅行时表中抽取所述每个成像点的旅行时表,组成所述共成像点旅行时表。
在一个实施例中,所述射线追踪起始点旅行时表为所有参与克希霍夫叠前深度偏移计算的节点分别计算的每个射线追踪起始点到预设范围空间内任意点的时间,该预设范围空间以该射线追踪起始点为起始点、以偏移孔径为横向范围且以最大偏移深度为纵向范围。
在一个实施例中,所述触发领取单元,还用于触发每个节点根据获取的共成像点旅行时表,独立完成各自成像任务的克希霍夫叠前深度偏移计算,得到成像结果之后,触发每个节点领取该炮检距文件的下一个成像任务,并进行克希霍夫叠前深度偏移计算,直至完成该炮检距文件中的所有成像任务。
在一个实施例中,所述触发计算模块,还用于对于每一个节点组,触发该节点组对读取的一个炮检距文件进行克希霍夫叠前深度偏移计算后,触发该节点组读取下一个炮检距文件并进行克希霍夫叠前深度偏移计算,直到完成所有的炮检距文件的克希霍夫叠前深度偏移计算。
在本发明实施例中,通过将待偏移数据存储为多个炮检距文件,同一炮检距文件中待偏移数据的炮检距相同,即将炮检距相同的待偏移数据独立存储为一个炮检距文件,并将所有参与克希霍夫叠前深度偏移计算的节点分成多个节点组,再触发各节点组对不同的炮检距文件进行克希霍夫叠前深度偏移计算,由于待偏移数据是按照炮检距为单位进行单独存储的,使得各个炮检距文件之间没有依赖关系,避免了地震数据在网络上大量地冗余传递;同时,由于是每个节点组对一个炮检距文件进行克希霍夫叠前深度偏移计算,只需在本节点组的节点上传送一个炮检距文件的待偏移数据,而一个节点组内的节点个数远小于所有参与克希霍夫叠前深度偏移计算的节点数。因此,该并行的克希霍夫叠前深度偏移方法从方法本身上大大减少了地震数据在节点之间的传输总量,解决了地震数据的网络传输密集型问题,避免了随着计算节点个数增加地震数据网络流量随之快速增大的问题,从而提高硬件的可扩展性,有助于计算硬件规模扩展,缩短克希霍夫叠前深度偏移的计算周期;此外,由于在每个节点完成成像任务时,使用的是与该成像任务对应的共成像点旅行时表,使得将共炮点旅行时表按照成像空间划分并组织为共成像点旅行时表,从而避免了由于多次读取旅行时表导致的本地I/O问题。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选的,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (18)
1.一种大规模并行的克希霍夫叠前深度偏移方法,其特征在于,包括:
将待偏移数据存储为多个炮检距文件,同一炮检距文件中待偏移数据的炮检距相同;
将所有参与克希霍夫叠前深度偏移计算的节点分成多个节点组,以节点本身的编号顺序为同一节点组内各节点的顺序;
触发各节点组分别对不同的炮检距文件进行克希霍夫叠前深度偏移计算;
触发各节点组分别对不同的炮检距文件进行克希霍夫叠前深度偏移计算,包括:
对于每一个节点组,触发该节点组的组长节点根据所述待偏移数据中每一道数据的道头字信息与所述炮检距文件的对应关系,读取一个炮检距文件,并将该炮检距文件广播给该节点组的组员节点,该节点组内的第一个节点为组长节点,其他节点为组员节点;
触发该节点组内的每个节点领取该炮检距文件的一个成像任务,并获取与该成像任务对应的共成像点旅行时表;
触发每个节点根据获取的共成像点旅行时表,独立完成各自成像任务的克希霍夫叠前深度偏移计算,得到成像结果;
触发组长节点接收各个组员节点的成像结果,并输出。
2.如权利要求1所述大规模并行的克希霍夫叠前深度偏移方法,其特征在于,将所有参与克希霍夫叠前深度偏移计算的节点分成多个节点组,包括:
若所述待偏移数据的成像空间的总任务个数大于预设数值,则将相邻的所述预设数值个节点分为一个节点组;或者
若所述待偏移数据的成像空间的总任务个数小于预设数值且大于1,则将所述成像空间的总任务个数个节点分为一个节点组;或者
若所述待偏移数据的成像空间的总任务个数小于1,则将1个节点分为一个节点组。
3.如权利要求2所述大规模并行的克希霍夫叠前深度偏移方法,其特征在于,所述待偏移数据的成像空间的总任务个数为所述成像区间的总面元数与单个节点存储单个成像空间旅行时表个数的比值。
4.如权利要求3所述大规模并行的克希霍夫叠前深度偏移方法,其特征在于,所述成像区间的总面元数为所述成像区间的测线数与每条测线上的共中心点CMP数的乘积。
5.如权利要求3所述大规模并行的克希霍夫叠前深度偏移方法,其特征在于,所述单个节点存储单个成像空间旅行时表个数为单个节点的物理内存与单个成像空间旅行时表所占用的存储空间的比值。
6.如权利要求1至5中任一项所述大规模并行的克希霍夫叠前深度偏移方法,其特征在于,触发每个节点获取与该成像任务对应的共成像点旅行时表,包括:
触发每个节点确定所有到成像任务中每个成像点的射线追踪起始点;
触发每个节点从确定的射线追踪起始点的射线追踪起始点旅行时表中抽取所述每个成像点的旅行时表,组成所述共成像点旅行时表。
7.如权利要求6所述大规模并行的克希霍夫叠前深度偏移方法,其特征在于,所述射线追踪起始点旅行时表为所有参与克希霍夫叠前深度偏移计算的节点分别计算的每个射线追踪起始点到预设范围空间内任意点的时间,该预设范围空间以该射线追踪起始点为起始点、以偏移孔径为横向范围且以最大偏移深度为纵向范围。
8.如权利要求1至5中任一项所述大规模并行的克希霍夫叠前深度偏移方法,其特征在于,触发每个节点根据获取的共成像点旅行时表,独立完成各自成像任务的克希霍夫叠前深度偏移计算,得到成像结果之后,还包括:
触发每个节点领取该炮检距文件的下一个成像任务,并进行克希霍夫叠前深度偏移计算,直至完成该炮检距文件中的所有成像任务。
9.如权利要求1至5中任一项所述大规模并行的克希霍夫叠前深度偏移方法,其特征在于,触发各节点组分别对不同的炮检距文件进行克希霍夫叠前深度偏移计算,包括:
对于每一个节点组,触发该节点组对读取的一个炮检距文件进行克希霍夫叠前深度偏移计算后,触发该节点组读取下一个炮检距文件并进行克希霍夫叠前深度偏移计算,直到完成所有的炮检距文件的克希霍夫叠前深度偏移计算。
10.一种大规模并行的克希霍夫叠前深度偏移装置,其特征在于,包括:
存储模块,用于将待偏移数据存储为多个炮检距文件,同一炮检距文件中待偏移数据的炮检距相同;
分组模块,用于将所有参与克希霍夫叠前深度偏移计算的节点分成多个节点组,以节点本身的编号顺序为同一节点组内各节点的顺序;
触发计算模块,用于触发各节点组分别对不同的炮检距文件进行克希霍夫叠前深度偏移计算;
所述触发计算模块,包括:
触发读取单元,用于对于每一个节点组,触发该节点组的组长节点根据所述待偏移数据中每一道数据的道头字信息与所述炮检距文件的对应关系,读取一个炮检距文件,并将该炮检距文件广播给该节点组的组员节点,该节点组内的第一个节点为组长节点,其他节点为组员节点;
触发领取单元,用于触发该节点组内的每个节点领取该炮检距文件的一个成像任务,并获取与该成像任务对应的共成像点旅行时表;
触发计算单元,用于触发每个节点根据获取的共成像点旅行时表,独立完成各自成像任务的克希霍夫叠前深度偏移计算,得到成像结果;
触发输出单元,用于触发组长节点接收各个组员节点的成像结果,并输出。
11.如权利要求10所述大规模并行的克希霍夫叠前深度偏移装置,其特征在于,所述分组模块,包括:
第一分组单元,用于若所述待偏移数据的成像空间的总任务个数大于预设数值,则将相邻的所述预设数值个节点分为一个节点组;或者
第二分组单元,用于若所述待偏移数据的成像空间的总任务个数小于预设数值且大于1,则将所述成像空间的总任务个数个节点分为一个节点组;或者
第三分组单元,用于若所述待偏移数据的成像空间的总任务个数小于1,则将1个节点分为一个节点组。
12.如权利要求11所述大规模并行的克希霍夫叠前深度偏移装置,其特征在于,所述待偏移数据的成像空间的总任务个数为所述成像区间的总面元数与单个节点存储单个成像空间旅行时表个数的比值。
13.如权利要求12所述大规模并行的克希霍夫叠前深度偏移装置,其特征在于,所述成像区间的总面元数为所述成像区间的测线数与每条测线上的共中心点CMP数的乘积。
14.如权利要求13所述大规模并行的克希霍夫叠前深度偏移装置,其特征在于,所述单个节点存储单个成像空间旅行时表个数为单个节点的物理内存与单个成像空间旅行时表所占用的存储空间的比值。
15.如权利要求10至14中任一项所述大规模并行的克希霍夫叠前深度偏移装置,其特征在于,所述触发领取单元,包括:
触发确定子单元,用于触发每个节点确定所有到成像任务中每个成像点的射线追踪起始点;
触发获取子单元,用于触发每个节点从确定的射线追踪起始点的射线追踪起始点旅行时表中抽取所述每个成像点的旅行时表,组成所述共成像点旅行时表。
16.如权利要求15所述大规模并行的克希霍夫叠前深度偏移装置,其特征在于,所述射线追踪起始点旅行时表为所有参与克希霍夫叠前深度偏移计算的节点分别计算的每个射线追踪起始点到预设范围空间内任意点的时间,该预设范围空间以该射线追踪起始点为起始点、以偏移孔径为横向范围且以最大偏移深度为纵向范围。
17.如权利要求10至14中任一项所述大规模并行的克希霍夫叠前深度偏移装置,其特征在于,所述触发领取单元,还用于触发每个节点根据获取的共成像点旅行时表,独立完成各自成像任务的克希霍夫叠前深度偏移计算,得到成像结果之后,触发每个节点领取该炮检距文件的下一个成像任务,并进行克希霍夫叠前深度偏移计算,直至完成该炮检距文件中的所有成像任务。
18.如权利要求10至14中任一项所述大规模并行的克希霍夫叠前深度偏移装置,其特征在于,所述触发计算模块,还用于对于每一个节点组,触发该节点组对读取的一个炮检距文件进行克希霍夫叠前深度偏移计算后,触发该节点组读取下一个炮检距文件并进行克希霍夫叠前深度偏移计算,直到完成所有的炮检距文件的克希霍夫叠前深度偏移计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410367547.5A CN104133240B (zh) | 2014-07-29 | 2014-07-29 | 大规模并行的克希霍夫叠前深度偏移方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410367547.5A CN104133240B (zh) | 2014-07-29 | 2014-07-29 | 大规模并行的克希霍夫叠前深度偏移方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104133240A true CN104133240A (zh) | 2014-11-05 |
CN104133240B CN104133240B (zh) | 2017-02-01 |
Family
ID=51805983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410367547.5A Active CN104133240B (zh) | 2014-07-29 | 2014-07-29 | 大规模并行的克希霍夫叠前深度偏移方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104133240B (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104849751A (zh) * | 2015-05-15 | 2015-08-19 | 中国石油集团川庆钻探工程有限公司地球物理勘探公司 | 叠前地震资料成像的方法 |
CN105403913A (zh) * | 2015-10-30 | 2016-03-16 | 中国石油天然气集团公司 | 叠前深度偏移方法和装置 |
CN106250101A (zh) * | 2015-06-12 | 2016-12-21 | 中国石油化工股份有限公司 | 基于MapReduce的叠前偏移并行处理方法和装置 |
CN106526667A (zh) * | 2016-10-26 | 2017-03-22 | 中国石油天然气集团公司 | 叠前时间偏移方法和装置 |
CN106560792A (zh) * | 2015-12-27 | 2017-04-12 | 北京科胜永昌软件有限公司 | 海量观测系统双缓存面元计算方法 |
CN107505653A (zh) * | 2017-08-30 | 2017-12-22 | 中国石油集团东方地球物理勘探有限责任公司 | 一种确定叠前偏移时间结果的方法和装置 |
CN107576986A (zh) * | 2017-08-30 | 2018-01-12 | 中国石油集团东方地球物理勘探有限责任公司 | 一种确定海底地震反射波旅行时的方法和装置 |
CN108802820A (zh) * | 2018-05-28 | 2018-11-13 | 中国石油天然气股份有限公司 | 一种深度域反假频方法、装置及系统 |
CN108983292A (zh) * | 2018-04-28 | 2018-12-11 | 西安交通大学 | 基于三角滤波的局部倾斜叠加波束形成偏移假频压制方法 |
CN109144405A (zh) * | 2017-06-28 | 2019-01-04 | 中国石油化工股份有限公司 | 一种旅行时数据缓存方法与装置 |
CN109657197A (zh) * | 2017-10-10 | 2019-04-19 | 中国石油化工股份有限公司 | 一种叠前深度偏移计算方法及系统 |
CN110019002A (zh) * | 2017-08-22 | 2019-07-16 | 中国石油化工股份有限公司 | 一种叠前数据快速编目的方法及系统 |
CN111638551A (zh) * | 2019-03-01 | 2020-09-08 | 中国石油天然气集团有限公司 | 地震初至波走时层析方法及装置 |
CN111965699A (zh) * | 2020-09-09 | 2020-11-20 | 中国海洋石油集团有限公司 | 一种克西霍夫叠前深度偏移地震数据处理方法和系统 |
CN112230284A (zh) * | 2019-07-15 | 2021-01-15 | 中国石油天然气集团有限公司 | 三维叠前数据的并行随机噪声衰减方法、监控方法及节点 |
WO2024087126A1 (en) * | 2022-10-28 | 2024-05-02 | Saudi Arabian Oil Company | Method and system for determining migration data using cross-spread gathers and parallel processing |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010051854A1 (en) * | 1998-10-01 | 2001-12-13 | Patrick Lailly | 3D prestack seismic data migration method |
US20050219949A1 (en) * | 2004-03-30 | 2005-10-06 | Taner M T | Method for detecting earth formation fractures by seismic imaging of diffractors |
CN101937100A (zh) * | 2010-08-17 | 2011-01-05 | 中国科学院地质与地球物理研究所 | 一种叠前深度偏移方法 |
CN103698809A (zh) * | 2012-09-28 | 2014-04-02 | 中国石油天然气集团公司 | 一种无加速比瓶颈的克希霍夫叠前时间偏移并行方法 |
US20140149046A1 (en) * | 2011-05-23 | 2014-05-29 | Total Sa | Method of processing seismic data by providing surface offset common image gathers |
-
2014
- 2014-07-29 CN CN201410367547.5A patent/CN104133240B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010051854A1 (en) * | 1998-10-01 | 2001-12-13 | Patrick Lailly | 3D prestack seismic data migration method |
US20050219949A1 (en) * | 2004-03-30 | 2005-10-06 | Taner M T | Method for detecting earth formation fractures by seismic imaging of diffractors |
CN101937100A (zh) * | 2010-08-17 | 2011-01-05 | 中国科学院地质与地球物理研究所 | 一种叠前深度偏移方法 |
US20140149046A1 (en) * | 2011-05-23 | 2014-05-29 | Total Sa | Method of processing seismic data by providing surface offset common image gathers |
CN103698809A (zh) * | 2012-09-28 | 2014-04-02 | 中国石油天然气集团公司 | 一种无加速比瓶颈的克希霍夫叠前时间偏移并行方法 |
Non-Patent Citations (6)
Title |
---|
张清 等: "一种使用GPU加速地震叠前时间偏移的方法", 《微型机与应用》 * |
李家康 等: "三维叠前深度偏移复杂构造成像", 《地学前缘》 * |
李家康等: "大规模并行处理机三维叠前深度偏移", 《石油物探》 * |
王华忠 等: "大规模三维地震数据kirchhoff叠前深度偏移及其并行实现", 《石油地球物理勘探》 * |
郑启明: "基于叠前时间偏移理论的煤田三维地震资料处理研究", 《中国优秀硕士学位论文全文数据库 基础科学辑》 * |
陈志德等: "高精度克希霍夫三维叠前深度偏移及并行实现", 《大庆石油地质与开发》 * |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104849751A (zh) * | 2015-05-15 | 2015-08-19 | 中国石油集团川庆钻探工程有限公司地球物理勘探公司 | 叠前地震资料成像的方法 |
CN106250101A (zh) * | 2015-06-12 | 2016-12-21 | 中国石油化工股份有限公司 | 基于MapReduce的叠前偏移并行处理方法和装置 |
CN105403913A (zh) * | 2015-10-30 | 2016-03-16 | 中国石油天然气集团公司 | 叠前深度偏移方法和装置 |
CN106560792A (zh) * | 2015-12-27 | 2017-04-12 | 北京科胜永昌软件有限公司 | 海量观测系统双缓存面元计算方法 |
CN106560792B (zh) * | 2015-12-27 | 2020-05-01 | 北京科胜永昌软件有限公司 | 海量观测系统双缓存面元计算方法 |
CN106526667A (zh) * | 2016-10-26 | 2017-03-22 | 中国石油天然气集团公司 | 叠前时间偏移方法和装置 |
CN106526667B (zh) * | 2016-10-26 | 2018-10-16 | 中国石油天然气集团公司 | 叠前时间偏移方法和装置 |
CN109144405B (zh) * | 2017-06-28 | 2021-05-25 | 中国石油化工股份有限公司 | 一种旅行时数据缓存方法与装置 |
CN109144405A (zh) * | 2017-06-28 | 2019-01-04 | 中国石油化工股份有限公司 | 一种旅行时数据缓存方法与装置 |
CN110019002B (zh) * | 2017-08-22 | 2021-09-28 | 中国石油化工股份有限公司 | 一种叠前数据快速编目的方法及系统 |
CN110019002A (zh) * | 2017-08-22 | 2019-07-16 | 中国石油化工股份有限公司 | 一种叠前数据快速编目的方法及系统 |
CN107505653B (zh) * | 2017-08-30 | 2019-07-05 | 中国石油集团东方地球物理勘探有限责任公司 | 一种确定叠前偏移时间结果的方法和装置 |
CN107576986A (zh) * | 2017-08-30 | 2018-01-12 | 中国石油集团东方地球物理勘探有限责任公司 | 一种确定海底地震反射波旅行时的方法和装置 |
CN107505653A (zh) * | 2017-08-30 | 2017-12-22 | 中国石油集团东方地球物理勘探有限责任公司 | 一种确定叠前偏移时间结果的方法和装置 |
CN109657197A (zh) * | 2017-10-10 | 2019-04-19 | 中国石油化工股份有限公司 | 一种叠前深度偏移计算方法及系统 |
CN109657197B (zh) * | 2017-10-10 | 2022-11-22 | 中国石油化工股份有限公司 | 一种叠前深度偏移计算方法及系统 |
CN108983292A (zh) * | 2018-04-28 | 2018-12-11 | 西安交通大学 | 基于三角滤波的局部倾斜叠加波束形成偏移假频压制方法 |
CN108983292B (zh) * | 2018-04-28 | 2019-10-11 | 西安交通大学 | 基于三角滤波的局部倾斜叠加波束形成偏移假频压制方法 |
CN108802820B (zh) * | 2018-05-28 | 2019-10-11 | 中国石油天然气股份有限公司 | 一种深度域反假频方法、装置及系统 |
CN108802820A (zh) * | 2018-05-28 | 2018-11-13 | 中国石油天然气股份有限公司 | 一种深度域反假频方法、装置及系统 |
CN111638551A (zh) * | 2019-03-01 | 2020-09-08 | 中国石油天然气集团有限公司 | 地震初至波走时层析方法及装置 |
CN112230284A (zh) * | 2019-07-15 | 2021-01-15 | 中国石油天然气集团有限公司 | 三维叠前数据的并行随机噪声衰减方法、监控方法及节点 |
CN111965699A (zh) * | 2020-09-09 | 2020-11-20 | 中国海洋石油集团有限公司 | 一种克西霍夫叠前深度偏移地震数据处理方法和系统 |
WO2024087126A1 (en) * | 2022-10-28 | 2024-05-02 | Saudi Arabian Oil Company | Method and system for determining migration data using cross-spread gathers and parallel processing |
Also Published As
Publication number | Publication date |
---|---|
CN104133240B (zh) | 2017-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104133240A (zh) | 大规模并行的克希霍夫叠前深度偏移方法及装置 | |
CN111510157B (zh) | 基于神经网络的量子纠错解码方法、装置及芯片 | |
Gyulassy et al. | Efficient computation of Morse-Smale complexes for three-dimensional scalar functions | |
CN103698809A (zh) | 一种无加速比瓶颈的克希霍夫叠前时间偏移并行方法 | |
CN112669463B (zh) | 三维点云的曲面重建方法、计算机设备和计算机可读存储介质 | |
CN106597540B (zh) | 高斯束偏移成像方法及装置 | |
CN105403913A (zh) | 叠前深度偏移方法和装置 | |
CN103440238A (zh) | 图形处理单元中的3d加速结构的完全并行适当地构造 | |
CN103605161B (zh) | 地震三维观测系统的共中心点面元属性的分析方法及装置 | |
CN104821013A (zh) | 基于大地坐标系数字高程模型的地表面积提取方法及系统 | |
CN102692644A (zh) | 生成深度域成像道集的方法 | |
CN104182571A (zh) | 基于Delaunay和GPU的Kriging插值方法 | |
CN107818534A (zh) | 一种具有空间约束的人类活动网络区域划分方法 | |
Bertini et al. | By chance is not enough: preserving relative density through nonuniform sampling | |
CN111638551A (zh) | 地震初至波走时层析方法及装置 | |
CN106023317B (zh) | 一种用于大数据测试的加权Voronoi图生成方法 | |
Fernández-Baca et al. | Using sparsification for parametric minimum spanning tree problems | |
CN109710403B (zh) | 应用进程映射方法、电子装置及计算机可读存储介质 | |
CN109446478A (zh) | 一种基于迭代和可重构方式的复协方差矩阵计算系统 | |
CN107506572A (zh) | 获取目标点的高度的方法和装置 | |
CN108460424B (zh) | 一种基于线点转换和聚类对比的空间运动轨迹识别方法 | |
CN103543468A (zh) | 一种地震正演模拟的方法和系统 | |
CN106526666A (zh) | 叠前深度偏移方法、装置及系统 | |
CN106526667B (zh) | 叠前时间偏移方法和装置 | |
Noveiri et al. | Community detection in social networks using ant colony algorithm and fuzzy clustering |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |