CN102243321A - 一种地震叠前时间偏移的处理方法及系统 - Google Patents
一种地震叠前时间偏移的处理方法及系统 Download PDFInfo
- Publication number
- CN102243321A CN102243321A CN2011100617169A CN201110061716A CN102243321A CN 102243321 A CN102243321 A CN 102243321A CN 2011100617169 A CN2011100617169 A CN 2011100617169A CN 201110061716 A CN201110061716 A CN 201110061716A CN 102243321 A CN102243321 A CN 102243321A
- Authority
- CN
- China
- Prior art keywords
- calculation
- result
- pstm
- buffer zone
- gpu
- 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
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000013508 migration Methods 0.000 title claims abstract description 26
- 230000005012 migration Effects 0.000 title claims abstract description 26
- 238000012545 processing Methods 0.000 title abstract description 16
- 238000004364 calculation method Methods 0.000 claims abstract description 106
- 230000005540 biological transmission Effects 0.000 claims abstract description 35
- 238000003384 imaging method Methods 0.000 claims description 40
- 230000015654 memory Effects 0.000 claims description 40
- 230000008569 process Effects 0.000 claims description 19
- 238000005516 engineering process Methods 0.000 abstract description 12
- 230000007547 defect Effects 0.000 abstract 2
- 239000002699 waste material Substances 0.000 abstract 2
- 230000007423 decrease Effects 0.000 abstract 1
- 238000012360 testing method Methods 0.000 description 10
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 8
- 230000000694 effects Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 230000002950 deficient Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000003208 petroleum Substances 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
Images
Landscapes
- Geophysics And Detection Of Objects (AREA)
Abstract
本发明公开了一种地震PSTM的处理方法及系统,克服现有技术PSTM处理较为耗时的缺陷。该方法将该PSTM程序代码划分为FFT计算部分及PSTM计算部分,将所有的地震道数据两批并在CPU端进行分时计算,将计算结果异步传输到GPU端;在GPU对其中一批数据进行PSTM计算部分的计算时,CPU对另一批地震数据进行FFT计算部分的计算。本发明的技术方案中,CPU与GPU之间采用CUDA的流技术来实现数据的异步传输,克服了克服现有技术中PSTM处理较为耗时的缺陷,较大程度地降低了实现难度和成本。
Description
技术领域
本发明涉及地震叠前时间偏移(PreStack Time Migration,PSTM)的处理,尤其涉及一种地震PSTM的处理方法及系统。
背景技术
在石油地震勘探等领域,叠前时间偏移(PreStack Time Migration,PSTM)是复杂构造成像最有效的方法之一,能适应纵横向速度变化较大的情况,适用于大倾角的偏移成像,进入本世纪后,PSTM开始了较为广泛的应用,目前部分处理公司和计算中心已把该技术嵌入到常规处理流程中,成为获取保幅信息实现属性分析、AVO/AVA/AVP反演和其它参数反演的重要步骤和依据。
PSTM每输出一个地震道,就是一次海量运算。以1毫秒采样,6秒数据为例,一个地震道的输出需要至少1000万道甚至更多(偏移孔径决定)的输入道,每一个点要做两次均方根运算以及两次加法运算,振幅补偿两次乘法运算。如此计算下来,实现一道偏移需要10000000×6000×2×(平方+加法+乘法)次数学运算,计算量和需要处理的数据量都极其巨大。
目前,人们往往使用大规模的服务器集群来进行叠前偏移处理,其基本原理是将数据先分配到各个CPU核上,然后由各个CPU核单独进行计算,最后将结果汇总输出。
这种做法消耗了大量的时间、电力和维护费用等各种成本。而且,随着人们对石油勘探地震资料处理的周期要求越来越短,精度要求越来越高,服务器集群的规模越做越大,因此在系统构建成本、数据中心机房空间、内存和I/O带宽、功耗散热和电力限制、可管理性、编程简易性、扩展性、管理维护费用等等诸多方面都面临着巨大的挑战,尤其是需要对PSTM进行快速的处理。
发明内容
本发明所要解决的技术问题是需要提供一种地震叠前时间偏移的处理技术,克服现有技术中叠前时间偏移处理较为耗时的缺陷。
为了解决上述技术问题,本发明提供了一种地震叠前时间偏移(PSTM)的处理方法,预先分析PSTM程序代码,将该PSTM程序代码划分为快速傅立叶(FFT)计算部分及PSTM计算部分;在CPU端设置第一缓冲区及第二缓冲区,并将所有的地震道数据分为第一批地震道数据及第二批地震道数据;
该方法包括如下步骤:
该CPU端对该第一批地震道数据进行该FFT计算部分的第一计算,采用该第一缓冲区对该第一计算所获得的第一计算结果进行缓存,在该第一缓冲区中的数据量到达第一阈值时,将该第一缓冲区中的第一计算结果异步传输到图形处理器(GPU)端进行处理;并在该GPU端处理该第一计算结果的同时,该CPU端对该第二批地震道数据进行FFT计算部分的第三计算,采用第二缓冲区对该第三计算所获得的第三计算结果进行缓存,并在该第二缓冲区中的数据量到达第二阈值时,将该第二缓冲区中的第三计算结果异步传输到该GPU端进行处理;
该GPU端采用并行算法对该第一计算结果进行该PSTM计算部分的第二计算,对成像空间中对应于该第一批地震数据的点进行更新,获得第二计算结果并发送给该CPU端;并在该CPU端对该第一批地震道数据进行第一计算时,该GPU端采用并行算法对该第三计算结果进行PSTM计算部分的第四计算,对成像空间中对应于该第二批地震数据的点进行更新,获得第四计算结果并发送给CPU端。
优选地,该第一缓冲区与该第二缓冲区的缓存容量相等。
优选地,在该CPU端,采用第一数据流将该第一缓冲区中的该第一计算结果异步传输到该GPU端,采用第二数据流将该第二缓冲区中的该第三计算结果异步传输到该GPU端。
优选地,采用走时计算的并行算法,对该第一计算结果进行该第二计算,以及对该第三计算结果进行该第四计算。
优选地,对成像空间建立三维X-Y-Z坐标系,整个成像空间的点按照(x,y,z)三维坐标唯一确定,根据该GPU端上的线程数量对X、Y坐标相同的点构成的线进行分层,在每层中每个线程完成一个点的走时计算。
本发明还提供了一种地震叠前时间偏移(PSTM)的处理系统,预先分析PSTM程序代码,将该PSTM程序代码划分为快速傅立叶(FFT)计算部分及PSTM计算部分,并将所有的地震道数据分为第一批地震道数据及第二批地震道数据;
该系统包括CPU端及图形处理器(GPU)端,其中:
该CPU端包括:
第一计算模块,用于对该第一批地震道数据进行该FFT计算部分的第一计算,获得第一计算结果;并用于该GPU端处理该第一计算结果的同时,对该第二批地震道数据进行FFT计算部分的第三计算,获得第三计算结果;
第一缓冲区,用于缓存该第一计算结果;
第二缓冲区,用于缓存该第三计算结果;
第一发送模块,用于该第一缓冲区中的数据量到达第一阈值时,将该第一缓冲区中的第一计算结果异步传输到该GPU端;并用于该第二缓冲区中的数据量到达第二阈值时,将该第二缓冲区中的第三计算结果异步传输到GPU端;
该GPU端包括:
第二计算模块,用于采用并行算法对该第一计算结果进行该PSTM计算部分的第二计算,对成像空间中对应于该第一批地震数据的点进行更新,获得第二计算结果;并用于该第一计算模块对该第一批地震道数据进行该第一计算时,采用并行算法对该第三计算结果进行PSTM计算部分的第四计算,对成像空间中对应于该第二批地震数据的点进行更新,获得第四计算结果;
第二发送模块,用于将该第二计算结果发送给该CPU端,以及将该第四计算结果发送给该CPU端。
优选地,该第一缓冲区与该第二缓冲区的缓存容量相等。
优选地,该第一发送模块用于采用第一数据流将该第一缓冲区中的该第一计算结果异步传输到该GPU端,采用第二数据流将该第二缓冲区中的该第二计算结果异步传输到该GPU端。
优选地,该第二计算模块用于采用走时计算的并行算法,对该第一计算结果进行该第二计算,以及对该第三计算结果进行该第四计算。
优选地,该第二计算模块包括:
建立单元,用于对成像空间建立三维X-Y-Z坐标系,整个成像空间的点按照(x,y,z)三维坐标唯一确定;
分层单元,用于根据该GPU端上的线程数量对X、Y坐标相同的点构成的线进行分层;
计算单元,用于在每层中每个线程完成一个点的走时计算。
与现有技术相比,本发明的技术方案中,CPU与图形处理器(GPU)之间采用CUDA的流技术来实现数据的异步传输,并利用CUDA技术对PSTM计算部分进行并行化改造,移植到NVIDIA(英伟达)的GPU上的PSTM计算部分的内核接口与原串行算法的接口保持不变,节约了整个PSTM的处理时间,克服了克服现有技术中叠前时间偏移处理较为耗时的缺陷,较大程度地降低了实现难度和成本。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。在附图中:
图1为本发明技术方案中走时计算的并行设计示意图;
图2为本实施例地震叠前时间偏移的处理方法的流程示意图;
图3为本实施例地震叠前时间偏移的处理系统的组成示意图;
图4为现有技术进行PSTM处理的测试用成像效果图;
图5为本发明技术方案进行PSTM处理的测试用成像效果图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。
首先,如果不冲突,本发明实施例以及实施例中的各个特征在不相冲突前提下的相互结合,均在本发明的保护范围之内。另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在实现本发明的过程中,首先定位整个PSTM处理过程的性能瓶颈。本发明的发明人在分析PSTM的处理过程时,发现PSTM计算过程主要包括两个计算部分,一个是快速傅立叶变换(FFT)计算部分,另一个是PSTM计算部分。整个PSTM程序的运行时间为FFT计算部分的运行时间和PSTM计算部分的运行时间之和。然后选用不同的成像空间和输入道数据规模来确定整个PSTM处理过程的性能瓶颈。在这其中,本发明选用了一个线偏成像空间,其规模为1*1098*55*1504,又选用了一个体偏成像空间,其规模为11*366*55*1504,输入道的道数为661443,大小为70G,运行PSTM程序。在线偏时,PSTM计算占整个PSTM程序运行时间的90%;体偏时,PSTM计算占整个PSTM程序运行时间的97%。通过进一步的比较,发现PSTM计算部分是非常耗时的,占到整个PSTM处理时间的90%以上,所以PSTM计算部分为PSTM处理的性能瓶颈。
之后,对PSTM计算部分的串行算法进行并行性分析。将PSTM计算部分的程序代码从PSTM程序中抽取出来,研究PSTM计算部分的串行算法,分析其是否具有并行性。研究发现,PSTM计算部分的核心算法,即走时计算,是PSTM计算部分最耗时的部分。而且还发现,对于成像空间(以下简称WOT)中的每一个成像点而言,走时计算都是数据并行的,如果走时计算实现并行,那么整个PSTM计算时间将大大为减小。因此,通过研究发现了每一点的走时计算是数据并行的。
基于以上分析,可以将叠前时间偏移的FFT计算部分放在CPU端执行,而将PSTM计算部分移植到在GPU端进行执行。因为PSTM计算部分是数据并行的,因此FFT计算的结果可以从CPU端异步传输到GPU端。对于所有的输入道,PSTM计算部分计算完成,成像空间所有点更新完成,最后把成像空间从GPU端传输回CPU端。
在对PSTM计算部分的CUDA并行化改造过程中,首先对走时计算进行并行化设计。把对成像空间中每一点的走时计算从串行的循环执行,设计为并行执行,确定每个线程计算的粒度,使得GPU的32个线程(在其他的实施例中,GPU上的线程数量也可以是其他值)负责计算成像空间Z方向上一条线上所有点的走时计算。具体地,对成像空间建立三维X-Y-Z坐标系,整个空间的点按照(x,y,z)坐标唯一确定,X、Y坐标相同的点构成一条与Z轴平行的线,物理上是一条垂直于地面的竖线,根据该GPU端上的线程数量对X、Y坐标相同的点构成的线进行分层,在每层中每个线程完成一个点的走时计算。本实施例的线程数量为32,因此将这条线上的连续的32个点划分为一层。如图1走时计算的并行设计示意图(streaml表示第一数据流,stream2表示第二数据流)所示,线AB为成像空间的一条平行于Z轴的线,此条线一共有4层,每层32个点,线程0串行计算每一层的第0点、线程1串行计算每一层的第1点,如此类推,线程31串行计算每一层的第31个点,而对于同一层的32个点是并行进行走时计算。
然后根据GPU的寄存器个数、内存资源及并行算法来设计CUDA的线程模型,确定总线程数和总线程块数。以下对网格Grid和块Block进行定义。
在对网格Grid定义中,Grid主要是定义线程被分成多少块及其维度。对于三维的WOT而言,其X-Y平面将对应线程模型中的Grid,即对其X-Y平面进行分块,每一块对应深度的10条线。假设成像空间X方向的最大值为NX,Y方向上的最大值为NY,则Grid将被定义为(NX,(NY+9)/10)。Grid的定义是二维的,通过Grid的第一维可以得出线程对应WOT的x坐标,通过第二维可以得出线程对应WOT的y坐标,所以线程模型的总块数为NX*(NY+9)/10。
在对块Block定义中,Block主要是定义每一块的线程个数及其维度,每个Block被定义(32,10)的二维形式,每个Block包括320个线程,其中10代表WOT的Z方向的10条线,每个Block的320个线程处理10个x,y坐标所对应的Z轴的所有点,即处理Z轴的10条线。一个Block的前32个线程,即threadIdx.y等于0的线程处理WOT的Z方向的第0条线;其后32个线程,即threadIdx.y等于1的线程处理WOT的Z方向的第1条线,以此类推,threadIdx.y等于9的线程处理WOT的Z方向的第9条线。
在GPU内存的使用中,是根据PSTM算法、数据访问特点及GPU内存资源特性,选择不同的内存存放不同的数据,以达到性能最优。其中:
对Global memory的使用中,WOT数据存储方式是先按照z方向连续,同时z方向维度大小总是32的整数倍。Z方向的计算总是以32为单位进行计算。因此在同一时刻,half warp线程可以同时访问WOT的16个点,16点在内存中是连续的,并且可以做到线程与访问点的一一对应,从而形成对Global Memory的合并访问,提高访存性能。
对Texture memory的使用中,由于GPU中的Texture memory有cache,把输入道数据、速度场等只读的频繁访问的大数据存放其中,提高了访存性能。
对Shared memory的使用中,由于Shared memory为GPU的片上内存,访问速度快,对于一个Block块中公共的数据可以放入共享内存中,提高了访存性能。
对Constant memory的使用中,对于PSTM计算中只读的、频繁被访问的小数据块可以放入Constant memory中,大大提高了访存性能。
实施例一、地震叠前时间偏移的处理方法
图2为本实施例地震叠前时间偏移的处理方法的流程示意图。本实施例通过预先分析PSTM程序代码,将PSTM程序代码划分为FFT计算部分及PSTM计算部分。在CPU端设置第一缓冲区和第二缓冲区,并将所有的地震道数据分为两批,即第一批地震道数据及第二批地震道数据。在本实施例中,该第一缓冲区与该第二缓冲区的缓存容量相等;当然,在其他实施例中,该第一缓冲区与该第二缓冲区的缓存容量也可以不相等。
如图2所示,本实施例主要包括如下步骤:
在CPU端,对第一批地震道数据进行FFT计算部分的第一计算(对第一批地震道数据中的n个地震道数据进行反复的轮询计算,直至后续的第一缓冲区中缓存的数据量到达该第一阈值)(步骤S211),采用第一缓冲区对该第一计算所获得的第一计算结果进行缓存(步骤S212),在该第一缓冲区中的数据量(即第一计算结果的数据量)到达第一阈值(为便于理解,本实施例将第一缓冲区的最大容量作为该第一阈值;在其他实施例中,也可以是小于第一缓冲区最大容量的其他缓存容量值)时,采用第一数据流将该第一缓冲区中的第一计算结果异步传输到GPU端(步骤S213)。
在GPU端,在接收到通过第一数据流传输的第一计算结果(步骤S221)后,即采用走时计算并行算法对第一计算结果进行PSTM计算部分的第二计算(步骤S222),对成像空间中对应于第一批地震数据的点进行更新,获得第二计算结果并发送给CPU端(步骤S223),至此,利用第一批地震数据对成像空间中对应于该第一批地震数据的所有点进行了更新。
与GPU端处理该第一计算结果的同时,CPU端对第二批地震道数据进行FFT计算部分的第三计算(对第二批地震道数据中的m个地震道数据进行反复的轮询计算,直至后续的第二缓冲区中缓存的数据量到达该第二阈值)(步骤S231),采用第二缓冲区对该第三计算所获得的第三计算结果进行缓存(步骤S232),并在该第二缓冲区中的数据量(即第三计算结果的数据量)到达第二阈值(为便于理解,本实施例将第二缓冲区的最大容量作为该第二阈值;在其他实施例中,也可以是小于第二缓冲区最大容量的其他缓存容量值)时,采用第二数据流将该第二缓冲区中的第三计算结果异步传输到GPU端(步骤S233)。
在GPU端,在接收到通过第二数据流传输的第三计算结果(步骤S241)后,即采用走时计算并行算法对第三计算结果进行PSTM计算部分的第四计算(步骤S242),对成像空间中对应于第二批地震数据的点进行更新,获得第四计算结果并发送给CPU端(步骤S243),至此,利用第二批地震数据对成像空间中对应于该第二批地震数据的所有点进行了更新。
与GPU端处理该第三计算结果的同时,CPU端又开始对新的第一批地震道数据进行前述的步骤S211至步骤S213的过程。
由此可见,本实施例采用双数据流双缓冲技术实现了所有地震道数据的FFT计算和PSTM计算的并行处理,以及如图1所示的异步传输,同时还实现了FFT计算、数据传输以及PSTM计算的相互隐藏,最终实现了PSTM处理的运行时间取决于FFT计算、数据传输以及PSTM计算这三者中的最大者,相比现有技术的FFT计算、数据传输以及PSTM计算的串行流程,节省了大量的时间成本,明显提高了处理效率。
本发明的技术方案对PSTM计算部分利用统一计算设备架构(ComputeUnified Device Architecture,CUDA)技术进行并行化改造,采用走时计算的并行算法,对于FFT计算部分还是放在CPU端执行,FFT计算完的结果传输给走时PSTM计算部分,通过CUDA的流机制实现CPU端到GPU端的异步IO传输,使其计算与数据传输相互隐藏。
实施例二、地震叠前时间偏移的处理系统
本实施例预先分析PSTM程序代码,将该PSTM程序代码划分为快速傅立叶(FFT)计算部分及PSTM计算部分,并将所有的地震道数据分为第一批地震道数据及第二批地震道数据。如图3所示的本实施例地震叠前时间偏移的处理系统,其主要包括CPU端310及图形处理器(GPU)端320,其中:
该CPU端310包括:
第一计算模块311,用于对该第一批地震道数据进行该FFT计算部分的第一计算,获得第一计算结果;并用于该GPU端320的第二计算模块321处理该第一计算结果的同时,对该第二批地震道数据进行FFT计算部分的第三计算,获得第三计算结果;
第一缓冲区312,与该第一计算模块311相连,用于缓存该第一计算结果;
第二缓冲区313,与该第一计算模块311相连,用于缓存该第三计算结果;
第一发送模块314,与该第一缓冲区312及第二缓冲区313相连,用于该第一缓冲区312中的数据量到达第一阈值时,将该第一缓冲区312中的第一计算结果异步传输到该GPU端320;并用于该第二缓冲区313中的数据量到达第二阈值时,将该第二缓冲区313中的第三计算结果异步传输到GPU端320;
该GPU端320包括:
第二计算模块321,用于接收该第一计算结果,采用并行算法对该第一计算结果进行该PSTM计算部分的第二计算,对成像空间中对应于该第一批地震数据的点进行更新,获得第二计算结果;并用于该第一计算模块311对该第一批地震道数据进行该第一计算时,接收该第三计算结果,采用并行算法对该第三计算结果进行PSTM计算部分的第四计算,对成像空间中对应于该第二批地震数据的点进行更新,获得第四计算结果;
第二发送模块322,与该第二计算模块321相连,用于将该第二计算结果发送给该CPU端310,以及将该第四计算结果发送给该CPU端310。
其中,该第一缓冲区312与该第二缓冲区313的缓存容量相等。
其中,该第一发送模块314用于采用第一数据流将该第一缓冲区312中的该第一计算结果异步传输到该GPU端320,采用第二数据流将该第二缓冲区313中的该第二计算结果异步传输到该GPU端320。
其中,该第二计算模块321用于采用走时计算的并行算法,对该第一计算结果进行该第二计算,以及对该第三计算结果进行该第四计算。
其中,该第二计算模块321包括:
建立单元,用于对成像空间建立三维X-Y-Z坐标系,整个成像空间的点按照(x,y,z)三维坐标唯一确定;
分层单元,用于根据该GPU端320上的线程数量对X、Y坐标相同的点构成的线进行分层;
计算单元,用于在每层中每个线程完成一个点的走时计算。
本发明的技术方案可以采用一集群环境进行测试。
该集群环境中的每个硬件环境为7个GPU/CPU混合服务器节点,每个节点包括2个Tesla C1060,2个4核CPU,其中6个混合服务器节点作为计算节点,1个混合服务器节点作为IO节点,各节点之间通过万兆网络连接。
该集群环境中的软件环境包括运行在CPU上的CPU多线程版PSTM和运行在GPU上的GPU版PSTM。
测试数据包括成像空间和输入的测试地震道数据集。对于成像空间而言,它是四维的,其中第一维为X轴方向的大小,第二维为Y轴方向的大小,第三维为炮点与接收点的偏移范围大小,第四维为Z轴方向的大小。
测试环境及测试数据如下表所示。
为了保证测试性能结果的稳定性,本发明对上述体偏作业进行了3次测试,CPU多线程版PSTM在集群上运行3次的平均时间是110908秒,而GPU版PSTM在集群上运行上述同样体偏作业3次的平均时间是21454秒,GPU版PSTM运行的性能是CPU多线程版PSTM的110908/21454=5倍。
通过上述作业测试,采用现有技术进行处理的CPU版PSTM运行的成像效果图如图4所示,采用本发明技术方案进行处理的GPU版PSTM运行的成像效果图如图5所示。其中,图4和图5中的横坐标表示共中心点,纵坐标表示时间。从图像来看,两幅图像基本一致,说明GPU版PSTM运行结果正确可靠。
由本发明的技术方案可见,本发明通过把地震叠前时间偏移分为FFT计算部分和PSTM计算部分,并对相比较为耗时的PSTM计算部分利用CUDA技术进行并行化改造,使其在GPU端运行,而把相比不耗时的FFT计算放在CPU端执行,并在CPU与GPU之间通过CUDA的流机制来实现异步传输,使得CPU与GPU能够进行协同计算。
通过集群测试,GPU版PSTM程序较CPU多线程PSTM程序的加速比能达到5倍,即一个GPU节点相当于5个CPU节点,这样不但满足了石油地震勘探处理的需求,而且大大降低了功耗,减少了机房构建成本和管理、运行和维护费用,实现简单,成本低廉。
本领域的技术人员应该明白,上述的本发明所提供的系统的实施例中各组成部分,以及方法类的实施例中各步骤,可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (10)
1.一种地震叠前时间偏移(PSTM)的处理方法,预先分析PSTM程序代码,将该PSTM程序代码划分为快速傅立叶(FFT)计算部分及PSTM计算部分;在CPU端设置第一缓冲区及第二缓冲区,并将所有的地震道数据分为第一批地震道数据及第二批地震道数据;
该方法包括如下步骤:
该CPU端对该第一批地震道数据进行该FFT计算部分的第一计算,采用该第一缓冲区对该第一计算所获得的第一计算结果进行缓存,在该第一缓冲区中的数据量到达第一阈值时,将该第一缓冲区中的第一计算结果异步传输到图形处理器(GPU)端进行处理;并在该GPU端处理该第一计算结果的同时,该CPU端对该第二批地震道数据进行FFT计算部分的第三计算,采用第二缓冲区对该第三计算所获得的第三计算结果进行缓存,并在该第二缓冲区中的数据量到达第二阈值时,将该第二缓冲区中的第三计算结果异步传输到该GPU端进行处理;
该GPU端采用并行算法对该第一计算结果进行该PSTM计算部分的第二计算,对成像空间中对应于该第一批地震数据的点进行更新,获得第二计算结果并发送给该CPU端;并在该CPU端对该第一批地震道数据进行第一计算时,该GPU端采用并行算法对该第三计算结果进行PSTM计算部分的第四计算,对成像空间中对应于该第二批地震数据的点进行更新,获得第四计算结果并发送给CPU端。
2.根据权利要求1所述的方法,其中:
该第一缓冲区与该第二缓冲区的缓存容量相等。
3.根据权利要求1所述的方法,其中:
在该CPU端,采用第一数据流将该第一缓冲区中的该第一计算结果异步传输到该GPU端,采用第二数据流将该第二缓冲区中的该第三计算结果异步传输到该GPU端。
4.根据权利要求1所述的方法,其中:
采用走时计算的并行算法,对该第一计算结果进行该第二计算,以及对该第三计算结果进行该第四计算。
5.根据权利要求4所述的方法,其中:
对成像空间建立三维X-Y-Z坐标系,整个成像空间的点按照(x,y,z)三维坐标唯一确定,根据该GPU端上的线程数量对X、Y坐标相同的点构成的线进行分层,在每层中每个线程完成一个点的走时计算。
6.一种地震叠前时间偏移(PSTM)的处理系统,预先分析PSTM程序代码,将该PSTM程序代码划分为快速傅立叶(FFT)计算部分及PSTM计算部分,并将所有的地震道数据分为第一批地震道数据及第二批地震道数据;
该系统包括CPU端及图形处理器(GPU)端,其中:
该CPU端包括:
第一计算模块,用于对该第一批地震道数据进行该FFT计算部分的第一计算,获得第一计算结果;并用于该GPU端处理该第一计算结果的同时,对该第二批地震道数据进行FFT计算部分的第三计算,获得第三计算结果;
第一缓冲区,用于缓存该第一计算结果;
第二缓冲区,用于缓存该第三计算结果;
第一发送模块,用于该第一缓冲区中的数据量到达第一阈值时,将该第一缓冲区中的第一计算结果异步传输到该GPU端;并用于该第二缓冲区中的数据量到达第二阈值时,将该第二缓冲区中的第三计算结果异步传输到GPU端;
该GPU端包括:
第二计算模块,用于采用并行算法对该第一计算结果进行该PSTM计算部分的第二计算,对成像空间中对应于该第一批地震数据的点进行更新,获得第二计算结果;并用于该第一计算模块对该第一批地震道数据进行该第一计算时,采用并行算法对该第三计算结果进行PSTM计算部分的第四计算,对成像空间中对应于该第二批地震数据的点进行更新,获得第四计算结果;
第二发送模块,用于将该第二计算结果发送给该CPU端,以及将该第四计算结果发送给该CPU端。
7.根据权利要求6所述的系统,其中:
该第一缓冲区与该第二缓冲区的缓存容量相等。
8.根据权利要求6所述的系统,其中:
该第一发送模块用于采用第一数据流将该第一缓冲区中的该第一计算结果异步传输到该GPU端,采用第二数据流将该第二缓冲区中的该第二计算结果异步传输到该GPU端。
9.根据权利要求6所述的系统,其中:
该第二计算模块用于采用走时计算的并行算法,对该第一计算结果进行该第二计算,以及对该第三计算结果进行该第四计算。
10.根据权利要求9所述的系统,其中,该第二计算模块包括:
建立单元,用于对成像空间建立三维X-Y-Z坐标系,整个成像空间的点按照(x,y,z)三维坐标唯一确定;
分层单元,用于根据该GPU端上的线程数量对X、Y坐标相同的点构成的线进行分层;
计算单元,用于在每层中每个线程完成一个点的走时计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110061716 CN102243321B (zh) | 2011-03-15 | 2011-03-15 | 一种地震叠前时间偏移的处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110061716 CN102243321B (zh) | 2011-03-15 | 2011-03-15 | 一种地震叠前时间偏移的处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102243321A true CN102243321A (zh) | 2011-11-16 |
CN102243321B CN102243321B (zh) | 2012-12-19 |
Family
ID=44961476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110061716 Active CN102243321B (zh) | 2011-03-15 | 2011-03-15 | 一种地震叠前时间偏移的处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102243321B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102636808A (zh) * | 2012-02-07 | 2012-08-15 | 浪潮(北京)电子信息产业有限公司 | 一种地震叠前时间偏移走时处理方法及装置 |
CN102866423A (zh) * | 2012-09-13 | 2013-01-09 | 浪潮(北京)电子信息产业有限公司 | 地震叠前时间偏移的处理方法和系统 |
CN103018776A (zh) * | 2012-11-22 | 2013-04-03 | 浪潮电子信息产业股份有限公司 | 一种利用cpu/mic协同计算加速地震叠前时间偏移的方法 |
CN104459781A (zh) * | 2014-12-09 | 2015-03-25 | 中国石油天然气集团公司 | 三维叠前地震数据的随机噪声衰减方法 |
CN104536938A (zh) * | 2015-01-27 | 2015-04-22 | 浪潮(北京)电子信息产业有限公司 | 一种地震叠前时间偏移的计算方法及系统 |
CN104570081A (zh) * | 2013-10-29 | 2015-04-29 | 中国石油化工股份有限公司 | 一种积分法叠前时间偏移地震资料处理方法及系统 |
CN104635258A (zh) * | 2013-11-06 | 2015-05-20 | 中国石油天然气集团公司 | 一种应用cpu-gpu平台进行地震波逆时偏移成像方法 |
CN105223613A (zh) * | 2014-07-04 | 2016-01-06 | 中国石油化工股份有限公司 | 基于伪多道匹配的非一致性时移地震叠前互均化处理方法 |
CN105974471A (zh) * | 2016-07-19 | 2016-09-28 | 中国地质大学(北京) | 一种基于异步流的地震数据多gpu快速正演计算方法 |
CN106257308A (zh) * | 2016-08-22 | 2016-12-28 | 中国石油天然气股份有限公司 | 地震数据处理方法及系统 |
CN106303162A (zh) * | 2016-08-16 | 2017-01-04 | 江苏火米互动科技有限公司 | 一种gpu抠像方法 |
CN106294273A (zh) * | 2015-06-05 | 2017-01-04 | 中国石油化工股份有限公司 | 一种cpu与协处理器的通信方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020087272A1 (en) * | 2000-12-15 | 2002-07-04 | Dwight Mackie | Method for optimizing migration fields using time slice analysis |
US20070021951A1 (en) * | 2003-07-23 | 2007-01-25 | Lee Seislink Wook B | 3D velocity modeling, with calibration and trend fitting using geostatistical techniques, particularly advantageous for curved for curved-ray prestack time migration and for such migration followed by prestack depth migration |
GB2443514A (en) * | 2006-11-01 | 2008-05-07 | Pgs Geophysical As | Method for multi-azimuth prestack time migration for general heterogeneous, anisotropic media |
CN101285894A (zh) * | 2008-05-30 | 2008-10-15 | 中国科学院地质与地球物理研究所 | 起伏地表下采集的地震资料的直接叠前时间偏移方法 |
CN101349763A (zh) * | 2007-07-18 | 2009-01-21 | 薛爱民 | 用于起伏地表地震勘探数据处理的Kirchhoff叠前时间偏移方法 |
CN101839999A (zh) * | 2009-03-20 | 2010-09-22 | 中国石油集团东方地球物理勘探有限责任公司 | 一种确定叠前时间偏移最佳速度剖面的方法 |
-
2011
- 2011-03-15 CN CN 201110061716 patent/CN102243321B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020087272A1 (en) * | 2000-12-15 | 2002-07-04 | Dwight Mackie | Method for optimizing migration fields using time slice analysis |
US20070021951A1 (en) * | 2003-07-23 | 2007-01-25 | Lee Seislink Wook B | 3D velocity modeling, with calibration and trend fitting using geostatistical techniques, particularly advantageous for curved for curved-ray prestack time migration and for such migration followed by prestack depth migration |
GB2443514A (en) * | 2006-11-01 | 2008-05-07 | Pgs Geophysical As | Method for multi-azimuth prestack time migration for general heterogeneous, anisotropic media |
CN101349763A (zh) * | 2007-07-18 | 2009-01-21 | 薛爱民 | 用于起伏地表地震勘探数据处理的Kirchhoff叠前时间偏移方法 |
CN101285894A (zh) * | 2008-05-30 | 2008-10-15 | 中国科学院地质与地球物理研究所 | 起伏地表下采集的地震资料的直接叠前时间偏移方法 |
CN101839999A (zh) * | 2009-03-20 | 2010-09-22 | 中国石油集团东方地球物理勘探有限责任公司 | 一种确定叠前时间偏移最佳速度剖面的方法 |
Non-Patent Citations (2)
Title |
---|
刘国峰第: "山地地震资料叠前时间偏移方法及其GPU实现", 《地球物理学报》 * |
李博等: "地震叠前时间偏移的一种图形处理器提速实现方法", 《地球物理学报》 * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102636808B (zh) * | 2012-02-07 | 2014-11-05 | 浪潮(北京)电子信息产业有限公司 | 一种地震叠前时间偏移走时处理方法及装置 |
CN102636808A (zh) * | 2012-02-07 | 2012-08-15 | 浪潮(北京)电子信息产业有限公司 | 一种地震叠前时间偏移走时处理方法及装置 |
CN102866423B (zh) * | 2012-09-13 | 2015-07-22 | 浪潮(北京)电子信息产业有限公司 | 地震叠前时间偏移的处理方法和系统 |
CN102866423A (zh) * | 2012-09-13 | 2013-01-09 | 浪潮(北京)电子信息产业有限公司 | 地震叠前时间偏移的处理方法和系统 |
CN103018776A (zh) * | 2012-11-22 | 2013-04-03 | 浪潮电子信息产业股份有限公司 | 一种利用cpu/mic协同计算加速地震叠前时间偏移的方法 |
CN103018776B (zh) * | 2012-11-22 | 2016-08-10 | 浪潮电子信息产业股份有限公司 | 一种利用cpu/mic协同计算加速地震叠前时间偏移的方法 |
CN104570081B (zh) * | 2013-10-29 | 2017-12-26 | 中国石油化工股份有限公司 | 一种积分法叠前时间偏移地震资料处理方法及系统 |
CN104570081A (zh) * | 2013-10-29 | 2015-04-29 | 中国石油化工股份有限公司 | 一种积分法叠前时间偏移地震资料处理方法及系统 |
CN104635258B (zh) * | 2013-11-06 | 2017-06-13 | 中国石油天然气集团公司 | 一种应用cpu‑gpu平台进行地震波逆时偏移成像方法 |
CN104635258A (zh) * | 2013-11-06 | 2015-05-20 | 中国石油天然气集团公司 | 一种应用cpu-gpu平台进行地震波逆时偏移成像方法 |
CN105223613A (zh) * | 2014-07-04 | 2016-01-06 | 中国石油化工股份有限公司 | 基于伪多道匹配的非一致性时移地震叠前互均化处理方法 |
CN104459781B (zh) * | 2014-12-09 | 2017-09-01 | 中国石油天然气集团公司 | 三维叠前地震数据的随机噪声衰减方法 |
CN104459781A (zh) * | 2014-12-09 | 2015-03-25 | 中国石油天然气集团公司 | 三维叠前地震数据的随机噪声衰减方法 |
CN104536938A (zh) * | 2015-01-27 | 2015-04-22 | 浪潮(北京)电子信息产业有限公司 | 一种地震叠前时间偏移的计算方法及系统 |
CN106294273A (zh) * | 2015-06-05 | 2017-01-04 | 中国石油化工股份有限公司 | 一种cpu与协处理器的通信方法及系统 |
CN106294273B (zh) * | 2015-06-05 | 2020-01-10 | 中国石油化工股份有限公司 | 一种cpu与协处理器的通信方法及系统 |
CN105974471A (zh) * | 2016-07-19 | 2016-09-28 | 中国地质大学(北京) | 一种基于异步流的地震数据多gpu快速正演计算方法 |
CN106303162A (zh) * | 2016-08-16 | 2017-01-04 | 江苏火米互动科技有限公司 | 一种gpu抠像方法 |
CN106257308A (zh) * | 2016-08-22 | 2016-12-28 | 中国石油天然气股份有限公司 | 地震数据处理方法及系统 |
CN106257308B (zh) * | 2016-08-22 | 2018-09-04 | 中国石油天然气股份有限公司 | 地震数据处理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102243321B (zh) | 2012-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102243321B (zh) | 一种地震叠前时间偏移的处理方法及系统 | |
Tahmasebi et al. | Accelerating geostatistical simulations using graphics processing units (GPU) | |
Chakroun et al. | Combining multi-core and GPU computing for solving combinatorial optimization problems | |
Cui et al. | Hybrid parallel framework for multiple-point geostatistics on Tianhe-2: A robust solution for large-scale simulation | |
Lei et al. | Optimization and acceleration of flow simulations for CFD on CPU/GPU architecture | |
CN103310122B (zh) | 一种并行随机采样一致方法及其装置 | |
Gasparini et al. | Hybrid parallel iterative sparse linear solver framework for reservoir geomechanical and flow simulation | |
Raghavan et al. | Asynchronous evolutionary shape optimization based on high-quality surrogates: application to an air-conditioning duct | |
Hou et al. | 3D density inversion of gravity gradiometry data with a multilevel hybrid parallel algorithm | |
Hou et al. | Fast density inversion solution for full tensor gravity gradiometry data | |
Hou et al. | Full tensor gravity gradiometry data inversion: Performance analysis of parallel computing algorithms | |
CN103279446A (zh) | 一种利用cpu+gpu+mic异构混合计算的多平台系统 | |
CN103294639A (zh) | 一种实现大规模计算的cpu+mic混合异构集群系统 | |
Ciznicki et al. | Elliptic solver performance evaluation on modern hardware architectures | |
Zheng et al. | GPU-based multifrontal optimizing method in sparse Cholesky factorization | |
Chen et al. | The GPU-baseds parallel calculation of gravity and magnetic anomalies for 3D arbitrary bodies | |
Fan et al. | Model aggregation method for data parallelism in distributed real-time machine learning of smart sensing equipment | |
Kandalla et al. | Can network-offload based non-blocking neighborhood MPI collectives improve communication overheads of irregular graph algorithms? | |
CN102866423B (zh) | 地震叠前时间偏移的处理方法和系统 | |
Li et al. | A GPU-based parallel algorithm for large scale linear programming problem | |
Yu et al. | A geometry-aware data partitioning algorithm for parallel quad mesh generation on large-scale 2d regions | |
Shchur et al. | Evolution of time horizons in parallel and grid simulations | |
Yan et al. | Optimizing parallel S n sweeps on unstructured grids for multi-core clusters | |
Khudhair et al. | An innovative fractal architecture model for implementing MapReduce in an open multiprocessing parallel environment | |
CN103018776A (zh) | 一种利用cpu/mic协同计算加速地震叠前时间偏移的方法 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20201109 Address after: 215100 No. 1 Guanpu Road, Guoxiang Street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province Patentee after: SUZHOU LANGCHAO INTELLIGENT TECHNOLOGY Co.,Ltd. Address before: 100085 Beijing, Haidian District on the road to information on the ground floor, building 2-1, No. 1, C Patentee before: Inspur (Beijing) Electronic Information Industry Co.,Ltd. |
|
TR01 | Transfer of patent right |