基于MapReduce的叠前偏移并行处理方法和装置与流程

文档序号:12469430阅读:179来源:国知局
基于MapReduce的叠前偏移并行处理方法和装置与流程
本发明属于地震勘探领域中地震资料处理
技术领域
,具体涉及一种基于MapReduce的叠前偏移并行处理方法和装置。
背景技术
:叠前偏移处理一直以来对大规模并行计算有很高要求,随着勘探规模的扩大,面对上千平方公里探区的巨大规模数据体,现有的积分法叠前时间偏移面临计算效率降低,并行处理规模小,对硬件的要求高的问题。如何提高叠前时间偏移的规模适应性,提高大规模资料处理时的计算效率和系统适应性,提高叠前时间偏移处理的经济效益,是叠前时间偏移处理面临的一个问题。技术实现要素:本公开的目的在于解决上述现有技术中存在的难题,提供一种基于MapReduce的叠前偏移并行处理方法和装置,提高了叠前偏移处理的计算效率,使之适应于大规模计算。一方面提供了一种基于MapReduce的叠前偏移并行处理方法,该方法包括:将地震道集数据按照偏移距大小排序,生成共偏移距道集数据;根据预先设置的偏移距分组参数,将共偏移距道集数据分组成偏移距组;针对每个偏移距组执行映射Map操作,得到成像空间;合并各成像空间得到成像结果数据。另一方面提供了一种基于MapReduce的叠前偏移并行处理装置,该装置包括:用于将地震道集数据按照偏移距大小排序,生成共偏移距道集数据的部件;用于根据预先设置的偏移距分组参数,将共偏移距道集数据分组成偏移距组的部件;用于针对每个偏移距组执行映射Map操作,得到成像空间的部件;用于 合并各成像空间得到成像结果数据的部件。本发明的各方面通过利用MapReduce并行模型,改进了叠前偏移并行实现方式,提高了叠前偏移的计算效率和大规模数据适应性,为地震勘探提供高效准确的地震成像数据。附图说明通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。图1示出了基于MapReduce的处理流程的示意图。图2示出了根据本发明的一个实施例的基于MapReduce的叠前偏移并行处理方法的流程图图3示出了偏移距组分组方案的一个示例的示意图。图4示出了本发明的一个具体示例的处理过程示意图。图5示出了本发明实施例的处理效果示意图。具体实施方式下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。本发明利用MapReduce并行计算模型改进现有叠前偏移处理的并行实现方式,利用高效的数据分组方案实现大规模并行计算。通过并行方式的改造,提高了叠前偏移处理的计算效率。MapReduce是Google公司开发的一种并行处理计算模型,由于在海量数据的处理中具有很好的扩展性和良好的容错性,被广泛应用在网页索引、数据 挖掘、科学模拟以及云计算平台中。MapReduce提供了一种在大规模计算机集群上对海量数据进行分布式处理的方法,它将复杂并行计算过程高度的抽象到了两个函数,映射Map和归约Reduce。通过将海量数据集分割成小数据集交给不同的计算机进行处理,从而实现并行化。对于数据,MapReduce将其看作一系列的〈key,value〉对(键值对),对数据处理过程则简化成Map映射和Reduce归约两个阶段。在MapReduce平台里,往往将一个作业的输入数据集分成若干个独立的数据库,由Map并行处理,将一组〈key,value〉对映射成一组新的〈key,value〉对,作为Reduce的输入,执行相关操作。MapReduce的处理流程示意图如图1所示,由输入(分块)、Map任务、Reduce任务、输出(结果)四部分构成。MapReduce是通常应用于互联网的大数据处理中的技术,然而发明人认识到,MapReduce并行模型的海量数据处理优势,能够为叠前偏移处理实现大规模、高效计算提供一种有效的解决方案。实施例1图2示出了根据本发明的一个实施例的基于MapReduce的叠前偏移并行处理方法的流程图,该方法包括:步骤201,将地震道集数据按照偏移距大小排序,生成共偏移距道集数据;步骤202,根据预先设置的偏移距分组参数,将共偏移距道集数据分组成偏移距组;步骤203,针对每个偏移距组执行映射Map操作,得到成像空间;以及步骤204,合并各成像空间得到成像结果数据。本实施例通过利用MapReduce并行模型改进了叠前偏移并行实现方式,提高了叠前偏移的计算效率和大规模数据适应性,为地震勘探提供高效准确的地震成像数据。生成共偏移距道集数据在一个示例中,首先对地震道集数据(例如共中心点地震道集数据)按照偏移距大小进行排序,例如,可将地震道集数据按照偏移距从小到大(或者从大到小)的顺序排列,所得到的排列后数据在本文中称为共偏移距道集数据。分组成偏移距组在一个示例中,将共偏移距道集数据分组成偏移距组可包括:根据预先设置的偏移距分组参数将共偏移距道集数据进行一次分组得到初级偏移距组;以及在初级偏移距组的道数不超过阈值的情况下,将初级偏移距组作为所述偏移距组,在初级偏移距组的道数超过阈值的情况下,针对所述初级偏移距组进行二次分组,得到次级偏移距组,作为所述偏移距组。1、一次分组在一个示例中,可根据预先设置的偏移距分组参数,将共偏移距道集数据进行一次分组得到初级偏移距组,其中每个初级偏移距组对应于一块一次分组后的共偏移距道集数据(也称为数据块)。在一个示例中,偏移距分组参数可以由用户根据需要预先设置。例如,用户可以通过不同的分组参数进行试处理,从试处理结果中选择效果好的分组参数作为偏移距分组参数。以下给出一种分组方式的示例,其中,以最大偏移距值Fmax、最小偏移距值Fmin、偏移距间隔Df作为偏移距分组参数。本领域技术人员应理解,偏移距分组参数不限于该示例中所列的这些,只要其能够作为偏移距组分组方案的依据即可。在该示例中,共偏移距道集数据的一次分组方案可由下式来表达:FNmax=[|Fmax-Fmin|Df+1]---(1)]]>FN=[|Fi-Fmin|Df+1.5]---(2)]]>公式(1)表示总分组数,FNmax表示分组数,Fmax表示最大偏移距值,Fmin表示 最小偏移距值,Df表示初级偏移距组之间的偏移距间隔。公式(2)表示每个初级偏移距组的组号。Fi为组成一个初级偏移距组的所有地震道集数据的偏移距,FN为初级偏移距组的组号。也就是说,偏移距为Fi的所有地震道集数据,组成组号为FN的初级偏移距组。该示例的偏移距组分组方案可以最大限度地保持原处理的基本结构,保证了分组前后计算效果的一致性。本领域技术人员应理解,分组方案并不限于以上示例,本领域技术人员可以根据需要选择其他分组方案,只要能够实现对共偏移距道集数据进行分组的目的即可。图3示出了根据本实施例的偏移距分组方案的一个具体示例。本领域技术人员应理解,该示例仅为了便于理解,其中包括具体数值在内的任何细节均不意在对本发明构成限制。图3中给出了以最小偏移距值100,最大偏移距值900,偏移距分组间隔200为例的分组过程,图3中黑白相间块体表示按偏移距从大到小排列后的地震数据,CIG后的数据表示分组后的初级偏移距组对应成像空间中的偏移距值,在该示例中,取初级偏移距组的偏移距中间值作为此初级偏移距组成像后的偏移距值。在该示例中,偏移距分正负,偏移组的划分采用绝对值处理。在初级偏移距组的道数不超过阈值的情况下,可以将初级偏移距组作为最终得到的偏移距组。2、二次分组在另一个示例中,若一次分组后的初级偏移距组的道数超过阈值(如5000道或其他用户根据实际需要设置的其他阈值),可以对初级偏移距组进行二次分组处理,也就是说,可以将一次分组后的初级偏移距组作为分组对象,对每个初级偏移距组按照道数进行再次分组,得到次级偏移距组(也称为子偏移距组)作为最终得到的偏移距组。每个初级偏移距组二次分组的块数可以取决于该初 级偏移距组包含的总道数。以阈值为5000道为例,当初级偏移距组总道数少于5000道时,不进行二次分组;当初级偏移距组总道数大于5000道小于10000道时,可将每个初级偏移距组分组为两块,例如一块5000道,另一份为剩下部分道数;当初级偏移距组总道数大于10000大,小于15000道时,可分组为三块,两块为5000道,第三块为剩下的道数,依次类推,对大于5000的每个初级偏移组进行二次分组。相同初级偏移距组内的次级偏移距组拥有相同的偏移距组号。执行Map操作完成上述偏移距组的分组处理后,可针对每个偏移距组执行映射Map操作,得到成像空间。即利用一个Map对一个偏移距组进行处理,在进行一次分组的情况下,该偏移距组是初级偏移距组,在进行二次分组的情况下,该偏移距组是次级偏移距组。每个成像空间对应于一个初级偏移距组,也就是说,一个初级偏移距组内不论再分组成多少次级偏移距组,他们都对应于相同的一个成像空间。这样得到的成像空间的大小取决于一个初级偏移距组的成像数据的规模,这种处理方式与整体计算整个成像空间相比,内存利用率降低。Map计算通常分为三个过程:数据读入、偏移核函数计算、计算结果输出。数据读入有多种方式,可以一次读入一道数据,计算完成后再读入下一道数据;也可以一次读入多道数据。为了提高核函数的计算效率,数据读入方式可以采取一次读入一个完整数据块的处理方式。归约操作在一个示例中,在进行二次分组的情况下,可对每个Map操作的结果进行归约Reduce操作,以对属于同一初级偏移距组的结果进行归约处理。归约原则为:对针对同一初级偏移距组的Map操作的结果进行归约处理,以生成同一个成像空间。完成归约处理后的成像数据文件个数与初级偏移距组的分组数一致。 之后,可以合并各Reduce操作的结果作为最终处理结果,即得到完整的成像道集数据。成像空间分块处理在一个示例中,还可以根据硬件资源对得到的成像空间进行分块处理。如前文所述,一个初级偏移距组对应一个成像空间,该实施例的处理得到的完整的成像结果数据是所有初级偏移距组对应的成像空间合并后的总和。然而,在每个Map只计算一个初级偏移距组的成像空间的情况下,内存利用率仍有提高的空间,面对大工区,海量数据计算时,内存仍然存在不足的情况。为了解决海量数据处理问题,可以采取成像空间分块处理。该分块处理可以是针对单个map的内部处理过程,也就是map在计算对应的一个初级偏移距组的成像空间时,如果处理资源不足,则可以对这个成像空间进行分块处理,经过多次计算,完成一个成像空间的处理。成像空间的分块是指根据计算设备的处理资源状态,对每个初级偏移距组对应的成像空间进行分块,以分别处理分块后的成像空间。成像空间的大小是根据处理要求确定的,由设定的参数决定,与偏移距组的大小无关,与偏移距组分组数也无关。在一个示例中,针对成像空间太大的情况下,计算设备的处理资源(例如内存等存储资源)状态可能不能满足同时处理(如存放)的要求,因此可以进行成像空间分块处理,分块的大小与内存等存储资源或其他处理资源相关,与偏移距组的大小无关。以下为便于理解,给出一个成像空间分块处理的具体示例。在该示例中,经过偏移距组分组处理后,在处理大规模数据时,首先获取计算设备中可利用的处理资源信息,例如内存量,对比成像空间与内存大小,当成像空间超过内存量时,对成像空间进行分块处理,每次处理一部分成像空间。可以根据内存的大小和成像空间的大小进行分块,例如内存为1GB,成像空间为4GB,内存一次只能处理四分一的成像空间,因此成像空间分为四块,每次处理一块,经过 四次处理完成一个成像空间的处理,处理完成后,处理结果输出到硬盘,内存空出,供下一块成像空间处理,经过多次循环利用内存,实现海量数据的一次性处理能力。为便于理解,图4给出了包含上述示例中的偏移距组的二次分组、成像空间分块和归约操作的本发明一个具体示例的处理过程示意图。本领域技术人员应理解,该示意图的目的仅在于帮助理解上述示例的方案,其中,偏移距组的二次分组、成像空间分组和归约操作并非是实现本公开的目的所必须执行的步骤。实施例2根据本发明的另一实施例,提供了一种基于MapReduce的叠前偏移并行处理装置,该装置包括:用于将地震道集数据按照偏移距大小排序,生成共偏移距道集数据的部件;用于根据预先设置的偏移距分组参数,将共偏移距道集数据分组成偏移距组的部件;用于针对每个偏移距组执行映射Map操作,得到成像空间的部件;以及用于合并各成像空间得到成像结果数据的部件。在一个示例中,将共偏移距道集数据分组成偏移距组可以包括:根据预先设置的偏移距分组参数将共偏移距道集数据进行一次分组得到初级偏移距组;以及在初级偏移距组的道数不超过阈值的情况下,将初级偏移距组作为所述偏移距组,在初级偏移距组的道数超过阈值的情况下,针对所述初级偏移距组进行二次分组,得到次级偏移距组,作为所述偏移距组。在一个示例中,该装置还可包括:用于在进行二次分组的情况下,对每个Map操作的结果进行归约Reduce操作,以对属于同一初级偏移距组的结果进行归约处理的部件。在一个示例中,可以按照以下表达式,将共偏移距道集数据进行一次分组:FNmax=[|Fmax-Fmin|Df+1]]]>FN=[|Fi-Fmin|Df+1.5]]]>其中,FNmax表示分组数,Fmax表示最大偏移距值,Fmin表示最小偏移距值,Df表示初级偏移距组之间的偏移距间隔,Fi为组成一个初级偏移距组的所有地震道集数据的偏移距,FN为初级偏移距组的组号。在一个示例中,该装置还可包括:用于根据计算设备的处理资源状态,对成像空间进行分块,以分别处理分块后的成像空间的部件。应用示例为便于理解本发明实施例的方案及其效果,以下给出一个具体应用示例。本领域技术人员应理解,该示例仅是说明性的,其任何具体细节并非意在限制本发明。在该应用示例中,利用地震勘探数据对本发明实施例的方案进行测试。测试数据量2.1TB,测试节点67个,每个节点20个物理计算核。图5为叠前时间偏移结果剖面图,其示意了本发明实施例的处理效果。表1为不同并行模式处理时间和内存利用率比较。测试结果显示,本发明实施例显著降低了程序的内存利用率,提高了计算效率,实现了海量数据的大规模处理能力,提高了地震勘探数据处理的经济效益。处理模式处理时间单节点内存需求MPI并行处理92小时48.5GBMapReduce并行处理86小时8.4GB表1本公开中提到了“成像道集”,“成像空间”,“成像数据”三个概念。如无特别限定,每个map计算得到的成像数据一般称为成像空间,由成像空间构成 的结果数据一般称为成像道集(例如通过对成像空间进行组合后按照成像道集排列顺序进行数据重排后得到成像道集),无论成像道集还是成像空间、或者是处理过程中得到的中间结果(例如规约后结果)都可以称为成像数据。本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构 (ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一 系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本
技术领域
的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本
技术领域
的其它普通技术人员能理解本文披露的各实施例。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1