CN103713314B - 一种叠前时间偏移并行处理方法 - Google Patents
一种叠前时间偏移并行处理方法 Download PDFInfo
- Publication number
- CN103713314B CN103713314B CN201210370726.5A CN201210370726A CN103713314B CN 103713314 B CN103713314 B CN 103713314B CN 201210370726 A CN201210370726 A CN 201210370726A CN 103713314 B CN103713314 B CN 103713314B
- Authority
- CN
- China
- Prior art keywords
- data
- host process
- calculating
- calculation
- calculation procedure
- 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.)
- Active
Links
Abstract
本发明提供了一种叠前时间偏移并行处理方法,属于石油地震勘探中的地震资料处理领域。所述方法利用多进程与多线程结合的方式,将偏移计算的数据分配到多个计算进程,每个计算进程利用多个计算线程并行计算所述数据;数据在多个计算线程之间的划分方式采用的是时间方向循环划分的方式。本发明方法提高了叠前时间偏移处理计算效率,实现了大规模并行处理以及节点之间的动态负载平衡,充分发挥了节点内部的多核计算能力和内存利用率。
Description
技术领域
本发明属于石油地震勘探中的地震资料处理领域,具体涉及一种叠前时间偏移并行处理方法。
背景技术
地震勘探的主要任务是实现地质体的精确成像,偏移处理是地震成像的核心技术。目前工业应用最多的是叠前时间偏移方法。在叠前时间偏移方法中,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初始化,多进程并行启动;
第二步,主控进程读入偏移参数(包括偏移数据范围,偏移孔径,偏移速度模型等)并广播给所有计算进程;计算进程接收主控进程发送的偏移参数;
第三步,根据偏移参数,所有进程同时计算偏移所需参数(将孔径,和速度数据进行差值计算,生成偏移所需的最终参数)并开辟空间,计算进程初始化多线程;
第四步,计算进程发送状态信息给主控进程,主控进程接收所有计算进程发送的状态信息;
第五步,主控进程根据计算进程的状态信息(即是否空闲的信息),主控进程读入一道或多道的数据索引并发送给状态信息为空闲的计算进程;该计算进程接收主控进程发送的偏移数据索引;
第六步,主控进程判断数据计算是否结束,如果是,则主控进程给计算进程发送偏移结束信息;如果否,则转到第四步继续计算;
第七步,与第六步同步,计算进程判断数据计算是否结束,如果是,则释放多线程,计算进程结束计算;如果否,则启动多线程计算数据,计算完成接收到的数据的计算任务后,转到第四步继续运行;
第八步,所有数据计算完成,由主控进程归约数据(即将所有计算进程计算结果相加),所有计算进程的数据归约结果发给主控进程,主控进程给所有计算进程发送偏移结束信号,计算结束并释放多线程空间,主控进程完成数据输出,程序结束。
如图2所示,本发明方法中的多线程并行实现过程如下:
(A1)计算进程向主控进程接收数据索引;
(A2)读入地震数据并存于数据缓冲池;
(A3)唤醒计算线程,计算线程从数据缓冲池中获取数据进行偏移计算,每个计算线程计算偏移成像体的一部分;
(A4)主线程读下一段数据体,然后等待计算线程完成计算,如果收到计算线程发来的计算完成的消息,则释放计算线程,否则返回步骤(A3);
(A5)与步骤(A4)同时,计算线程等待数据,接收到数据后进行偏移计算,然后判断计算是否完成,如果完成,则发送计算完成的消息给主线程,否则返回(A5)。
本发明是一项地震资料叠前时间偏移处理并行实现方法,下面以某地区的实例来说明发明效果。图4为叠前时间偏移结果剖面图。测试数据量70GB,测试节点13个,每个节点8个物理计算核,主控节点运行一个进程,只使用一个物理计算核,总共运行核数97。表1为不同方法的计算时间和内存利用率比较。从表1的测试结果显示,本发明方法显著降低了程序的内存利用率,提高了计算效率,处理效果达到生产要求。
表1
上述技术方案只是本发明的一种实施方式,对于本领域内的技术人员而言,在本发明公开了应用方法和原理的基础上,很容易做出各种类型的改进或变形,而不仅限于本发明上述具体实施方式所描述的方法,因此前面描述的方式只是优选的,而并不具有限制性的意义。
Claims (3)
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所述的叠前时间偏移并行处理方法,其特征在于:所述方法包括以下步骤:
第一步,程序启动,多进程初始化后启动多进程;
第二步,主控进程读入偏移参数,并广播给所有计算进程;计算进程接收主控进程发送的偏移参数;
第三步,主控进程根据偏移参数开辟计算空间,计算进程根据偏移参数初始化多线程;
第四步,计算进程发送状态信息给主控进程,主控进程接收计算进程发送的状态信息;
第五步,主控进程根据计算进程的状态信息,主控进程读入一道或多道偏移数据索引并将其发送给状态信息为空闲的计算进程,该计算进程接收主控进程发送的偏移数据索引;
第六步,主控进程判断数据计算是否结束,如果是,则主控进程给计算进程发送偏移结束信息;如果否,则转到第四步继续计算;
第七步,此步与第六步同步,计算进程判断数据计算是否结束,如果否,则启动多线程计算数据,计算完成后,转到第四步继续运行;如果是,则释放多线程,计算进程结束计算;
第八步,所有数据计算完成,由主控进程归约所有计算进程的计算结果,主控进程给所有计算进程发送偏移结束信号,计算结束并释放多线程空间,主控进程完成偏移结果输出,程序结束。
3.根据权利要求2所述的叠前时间偏移并行处理方法,其特征在于:所述第七步中的所述多线程计算数据具体包括以下步骤:
(A1)主线程向主控进程接收偏移数据索引;
(A2)主线程读入地震数据并存于数据缓冲池;
(A3)主线程唤醒计算线程;
(A4)主线程读下一段数据体,然后等待计算线程完成计算,如果收到计算线程发来的计算完成的消息,则释放线程,否则返回步骤(A3);
(A5)此步与步骤(A4)同步,计算线程等待数据,在接收到数据后进行偏移计算,然后判断计算是否完成,如果是,则发送计算完成的消息给主线程;如果否,则返回步骤(A5)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210370726.5A CN103713314B (zh) | 2012-09-28 | 2012-09-28 | 一种叠前时间偏移并行处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210370726.5A CN103713314B (zh) | 2012-09-28 | 2012-09-28 | 一种叠前时间偏移并行处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103713314A CN103713314A (zh) | 2014-04-09 |
CN103713314B true CN103713314B (zh) | 2017-05-03 |
Family
ID=50406436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210370726.5A Active CN103713314B (zh) | 2012-09-28 | 2012-09-28 | 一种叠前时间偏移并行处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103713314B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105093283B (zh) * | 2014-05-16 | 2017-12-01 | 中国石油化工股份有限公司 | 一种三维观测系统面元属性多线程快速显示方法 |
WO2016041185A1 (zh) * | 2014-09-19 | 2016-03-24 | 杨顺伟 | 一种高效叠前时间偏移速度分析方法 |
CN106201673B (zh) * | 2016-06-24 | 2019-07-09 | 中国石油天然气集团公司 | 一种地震数据处理方法及装置 |
CN106526666B (zh) * | 2016-09-29 | 2019-04-12 | 中国石油天然气集团公司 | 叠前深度偏移方法、装置及系统 |
CN107918145B (zh) * | 2016-10-10 | 2020-09-15 | 中国石油化工股份有限公司 | 地震炮能量的并行化处理方法及系统 |
CN106526667B (zh) * | 2016-10-26 | 2018-10-16 | 中国石油天然气集团公司 | 叠前时间偏移方法和装置 |
CN106405641B (zh) * | 2016-10-26 | 2018-06-01 | 中国石油天然气集团公司 | 叠前时间偏移方法和装置 |
CN110780842A (zh) * | 2019-10-25 | 2020-02-11 | 无锡恒鼎超级计算中心有限公司 | 基于神威架构的船舶三维声弹性模拟计算的并行优化方法 |
CN114125299B (zh) * | 2021-11-26 | 2023-10-10 | 凌云光技术股份有限公司 | 一种工业相机及其控制方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102135949A (zh) * | 2011-03-01 | 2011-07-27 | 浪潮(北京)电子信息产业有限公司 | 基于图形处理器的计算网络系统、方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1635465A (zh) * | 2003-12-26 | 2005-07-06 | 北京映像天视科技有限公司 | 实现虚拟显示的方法和装置 |
EP1715405A1 (en) * | 2005-04-19 | 2006-10-25 | STMicroelectronics S.r.l. | Processing method, system and computer program product for dynamic allocation of processing tasks in a multiprocessor cluster platforms with power adjustment |
CN101706741B (zh) * | 2009-12-11 | 2012-10-24 | 中国人民解放军国防科学技术大学 | 一种基于负载平衡的cpu和gpu两级动态任务划分方法 |
-
2012
- 2012-09-28 CN CN201210370726.5A patent/CN103713314B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102135949A (zh) * | 2011-03-01 | 2011-07-27 | 浪潮(北京)电子信息产业有限公司 | 基于图形处理器的计算网络系统、方法及装置 |
Non-Patent Citations (1)
Title |
---|
"起伏地表叠前时间偏移及并行实现";邹德志;《中国优秀硕士学位论文全文数据库-基础科学辑》;20100815(第08期);第44至46页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103713314A (zh) | 2014-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103713314B (zh) | 一种叠前时间偏移并行处理方法 | |
CN104181599B (zh) | 一种基于近地表层的折射波静校正处理方法以及系统 | |
CN103969627B (zh) | 基于fdtd的探地雷达大规模三维正演模拟方法 | |
CN105589100A (zh) | 一种微地震震源位置和速度模型同时反演方法 | |
CN106249295B (zh) | 一种井中微地震p、s波联合快速定位方法及系统 | |
CN103076627B (zh) | 一种速度模型平滑优化方法 | |
WO2023098441A1 (zh) | 基于地层记录沉降反演被动陆缘地壳结构的方法及装置 | |
CN109001813A (zh) | 一种压制多次波的方法、装置及系统 | |
CN112014883A (zh) | 一种基于Log-Cosh函数的微震震源定位方法、系统、装置及可读存储介质 | |
CN109696705A (zh) | 深海obs上下行波场成像数据校正方法及装置 | |
CN109100792A (zh) | 基于台站与三维地震联合采集资料的速度反演方法 | |
CN105607119A (zh) | 近地表模型构建方法与静校正量求取方法 | |
CN109657197A (zh) | 一种叠前深度偏移计算方法及系统 | |
CN109100798B (zh) | 实现折射多次波层析反演的方法、装置及处理终端 | |
Hou et al. | Full tensor gravity gradiometry data inversion: Performance analysis of parallel computing algorithms | |
CN103472481B (zh) | 一种利用gpu进行逆时偏移提取角度道集的方法 | |
CN104898162B (zh) | 地质勘探中的裂缝检测方法 | |
CN110568496B (zh) | 一种复杂介质条件下射线追踪方法 | |
US20230095632A1 (en) | Interpretive-guided velocity modeling seismic imaging method and system, medium and device | |
Liu et al. | An efficient scheme for multi-GPU TTI reverse time migration | |
CN108508486B (zh) | 一种基于构造演化地层应变的裂缝预测分析方法 | |
Chen et al. | The GPU-baseds parallel calculation of gravity and magnetic anomalies for 3D arbitrary bodies | |
CN103091708B (zh) | 一种三维地震构造曲率性能优化方法 | |
CN108072895B (zh) | 一种基于gpu的各向异性叠前逆时偏移优化方法 | |
CN102866423B (zh) | 地震叠前时间偏移的处理方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |