一种利用cpu/mic协同计算加速地震叠前时间偏移的方法

文档序号:5963221阅读:369来源:国知局
专利名称:一种利用cpu/mic协同计算加速地震叠前时间偏移的方法
技术领域
本发明涉及计算机高性能计算领域、石油地震勘探领域,具体地说是一种利用 CPU/MIC协同计算加速地震叠前时间偏移的方法。
背景技术
地震叠前时间偏移(简称PSTM)已进行了多年研究,上世纪九十年代初期开始初 步应用,中后期在不少探区的地震勘探中发挥了重要作用,进入本世纪后开始了较为广泛 的应用,目前部分处理公司和计算中心已把该技术作为常规软件加入到常规处理流程中, 成为获取保幅信息实现属性分析、AV0/AVA/AVP反演和其它参数反演的重要步骤和依据。
PSTM是复杂构造成像最有效的方法之一,能适应纵横向速度变化较大的情况,适 用于大倾角的偏移成像。PSTM每输出一个地震道,就是一次海量运算。以I毫秒采样,6秒 数据为例,一个地震道的输出需要至少1000万道甚至更多(偏移孔径决定)的输入道,每一 个点要做两次均方根运算以及两次加法运算,振幅补偿两次乘法运算。如此计算下来,实现 一道偏移需要10000(K)X6(KK)X2X (平方+加法+乘法)次数学运算,计算量和需要处理 的数据量都极其巨大!目前,人们往往使用大规模的服务器集群来进行叠前偏移处理,其原理是将数据先分 配到各个CPU核上,然后由各个CPU核单独进行计算,最后将结果汇总输出。这种做法消耗 了大量的时间、电力和维护费用。而且,随着人们对石油勘探地震资料处理的周期要求越来 越短,精度要求越来越高,服务器集群的规模越做越大,在系统构建成本、数据中心机房空 间、内存和I/o带宽、功耗散热和电力限制、可管理性、编程简易性、扩展性、管理维护费用 等方面都面临着巨大的挑战。
MIC是Intel公司开发的,用于高性能并行计算的众核芯片,具有超高计算性能。 MIC在计算机体系中,并非欲取代CPU,而是作为协处理器存在的。MIC芯片通常有50个以 上精简的x86核心,每个core支持4个硬件线程,可并行执行的任务数达到200以上,提供 高度并行的计算能力,其双精峰值性能达到lTFlops。发明内容
本发明鉴于现有地震叠前时间偏移(简称PSTM)在应用中存在的问题,及MIC高性 能并行计算的特点,提供一种利用CPU/MIC协同计算加速地震叠前时间偏移的方法。本发明是以PSTM的计算划分、PSTM的性能瓶颈及PSTM计算部分串行算法的并行分析 为基础进行提出的,下面对这三点加以说明a)PSTM的计算划分分析PSTM程序,按照功能把PSTM划分为FFT计算部分和PSTM 计算部分;b)PSTM的性能瓶颈PSTM计算占整个PSTM程序运行的绝大部分时间,PSTM计算部 分是整个PSTM的性能瓶颈部分;c)PSTM计算部分串行算法的并行分析通过分析PSTM计算部分串行算法,地震道数据之间可以并行处理,而每一地震道数据内,它所要处理L_NUM条侧线与每条 侧线对应的CMP_NUM个CMP点,即所要处理的CMP点数为L_NUM*CMP_NUM,每个点可以实现 并行。
本发明所提出的加速地震叠前时间偏移的方法,是按如下方式解决所述技术问题 的该方法采用CPU与MIC异构架构,其中CPU负责FFT计算、读地震道数据、进程控制与调 度,还参与PSTM计算,而MIC只做PSTM计算,同时计算之间采用异步并行思想及动态负载 均衡方式,实现CPU与MIC协同计算与共同计算,达到加速PSTM的目的;该方法整体设计包 含三个方面=PSTM计算部分串行算法的并行设计、PSTM整体逻辑结构设计及CPU与MIC的 异步计算设计。
下面对该方法整体设计的各个方面进行说明(1)PSTM计算部分串行算法的并行设计不同的地震道放在CPU或者MIC设备,实现设备间的并行,同时达到动态负载均衡,对 于每一道数据而言,CMP点按照每个设备所起的线程数进行并行;(2)PSTM整体逻辑结构设计该CPU/MIC异构系统包含2个MIC卡和2块CPU,CPU端负责进程调度、FFT计算,并参 与PSTM计算;MIC端只负责PSTM计算,CPU与MIC实现协同计算与共同计算;CPU端起3个 计算进程计算进程I负责控制MICl的计算,计算进程2负责控制MIC2的计算,计算进程 3负责控制2块CPU的计算;(3)CPU与MIC的异步计算设计每个计算进程内起2个线程,开辟2个缓冲区,线程O负责读地震道数据,并开始进行 多道FFT计算,线程I负责PSTM计算;PSTM计算与读数据与FFT计算并行,同时CPU到MIC 的数据传输采用异步方式,也能隐藏在PSTM计算中。
此外,该方法所述异步并行思想,是指CPU不同线程和MIC不同线程之间的任务 能实现并行,并且通过利用双缓冲区方式实现异步,使FFT计算、读地震道数据、PSTM计算、 CPU与MIC之间的数据传输能相互隐藏。
该方法所述动态负载均衡方式,是指按照地震道数据进行划分,CPU设备与MIC设 备各自计算不同的地震道数据,谁算完就取下一道数据进行计算,(PU与MIC之间实现动态 负载均衡。
本发明的一种利用CPU/MIC协同计算加速地震叠前时间偏移的方法的有益效果 是该方法利用CPU/MIC异构提高了 PSTM的计算性能,满足石油地震勘探资料处理的需求, 显著降低功耗,减少机房构建成本和管理、运行、维护费用,且该方法实现简单,需要的开发 成本低。


附图1为该方法的整体逻辑结构设计示意图;附图2为该方法的异步并行计算设计示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清晰,下面结合附图和实施例,对本发明作进一步详细说明。
该方法整体设计包含三个方面PSTM计算部分串行算法的并行设计、PSTM整体逻 辑结构设计及CPU与MIC的异步计算设计;该方法采用CPU与MIC异构架构,其中CPU负 责FFT计算、读地震道数据、进程控制与调度,还参与PSTM计算,而MIC只做PSTM计算,实 现CPU与MIC协同计算与共同计算,整个PSTM计算实现异步方式,读地震道数据、FFT计算、 PSTM计算及CPU到MIC的数据传输,都可以相互隐藏,达到加速PSTM的目的,使性能达到最 优。
实施例下面通过一个实施例和性能测试来说明该方法的具体实施过程和优点,详细过程如下(1)定位PSTM的性能瓶颈;a)PSTM的计算划分分析PSTM程序,按照功能把PSTM划分为FFT计算部分和PSTM 计算部分,整个PSTM程序的运行时间为FFT计算运行时间和PSTM计算运行时间之和;b)找出PSTM的性能瓶颈选选用一个体偏成像空间,其侧线数为91,每条侧线的CMP 点数为963,输入道道数为110000,大小为70G,运行PSTM程序,发现PSTM计算占整个PSTM 程序运行时间的97%,说明PSTM计算部分是整个PSTM的性能瓶颈部分;(2)PSTM计算部分串行算法的并行性分析把整个PSTM计算的代码从PSTM程序中抽取出来,研究PSTM计算的串行算法,分析其 是否具有并行性,研究发现110000道数据间都可以并行,91*963个CMP点间也可以并行;(3)PSTM计算部分串行算法的并行设计不同的地震道可以放在CPU或MIC设备,实现设备间的并行,CPU和MIC每次取100道 数据进行计算,谁算完,就取下100道数据,CPU与MIC计算达到动态负载均衡。对于每一道 数据而言,CI3U端采用2块CPU(16核),启动16个OpenMP线程,16个线程并行计算91*963 个CMP点,MIC端采用2块MIC (KNF),每个MIC有30个核心,启动120个线程。120个线 程并行计算91 * 963个CMP点;(4)PSTM整体逻辑结构设计PSTM整体逻辑结构采用2块CPU和2块MIC异构协同计算,CPU端负责进程调度、FFT 计算,并参与PSTM计算,MIC端只负责PSTM计算,CPU与MIC实现协同计算与共同计算;CPU 端起3个计算进程,计算进程I负责控制MICl的计算,计算进程2负责控制MIC2的计算, 计算进程3负责控制2块CPU的计算,逻辑结构图如图1所示;(5)CPU与MIC的异步计算设计每个计算进程内起两个线程,开辟2个缓冲区,线程I读第I批100道地震道数据, 读完后开始进行100道FFT计算,并把结果存放在缓冲区I中。线程2开始从缓冲区I中 拿100道数据进行PSTM计算的同时,线程I又开始读第2批100道数据,读完后开始进行 这一批的100道FFT计算,并把结果存放在缓冲区2中,线程2开始从缓冲区2中拿第2批 数据开始PSTM计算的同时,线程I又开始读第3批数据,如此类推,所以PSTM计算与读数 据、FFT计算可以并行,实现相互隐藏,而且CPU到MIC的数据传输采用异步方式,也可以隐 藏在PSTM计算中。整个CPU与MIC的异步计算设计如图2所示;(6)性能测试测试91条测线,每条测线上963个CMP点,输入110000道数据进行偏移,在原 有CPU同构系统下,PSTM以单线程串行方式花费的时间为76053s,而本系统运行时间为 1075s,性能大大提升。
由上可知,该方法通过将FFT计算部分放在CPU端执行,PSTM计算部分采用CPU与 MIC同时并行计算,整个PSTM计算实现异步方式,读地震道数据、FFT计算、PSTM计算及CPU 到MIC的数据传输,都可以相互隐藏。最后通过测试,说明该方法的优点利用MIC大大加 速了 PSTM的性能,不但满足了石油地震勘探处理的需求,而且大大降低了功耗,减少了机 房构建成本和管理、运行、维护费用。
除说明书所述技术特征之外,均为本专业技术人员的已知技术。
权利要求
1.一种利用CPU/MIC协同计算加速地震叠前时间偏移的方法,其特征在于该方法采用CPU与MIC异构架构,其中CPU负责FFT计算、读地震道数据、进程控制与调度,还参与PSTM计算,而MIC只做PSTM计算,同时计算之间采用异步并行思想及动态负载均衡方式,实现CPU与MIC协同计算与共同计算;其整体设计包含三个方面PSTM计算部分串行算法的并行设计、PSTM整体逻辑结构设计及CPU与MIC的异步计算设计;下面对该方法整体设计的各个方面进行说明 PSTM计算部分串行算法的并行设计 不同的地震道放在CPU或者MIC设备,实现设备间的并行,同时达到动态负载均衡,对于每一道数据而言,CMP点按照每个设备所起的线程数进行并行; 所述PSTM整体逻辑结构设计为 该CPU/MIC异构系统包含2个MIC卡和2块CPU,CPU端负责进程调度、FFT计算,并参与PSTM计算;MIC端只负责PSTM计算,CPU与MIC实现协同计算与共同计算;CPU端起3个计算进程计算进程I负责控制MICl的计算,计算进程2负责控制MIC2的计算,计算进程3负责控制2块CPU的计算; 所述CPU与MIC的异步计算设计为 每个计算进程内起2个线程,开辟2个缓冲区,线程O负责读地震道数据,并开始进行多道FFT计算,线程I负责PSTM计算;PSTM计算与读数据与FFT计算并行,同时CPU到MIC的数据传输采用异步方式,也能隐藏在PSTM计算中。
全文摘要
本发明提供了一种利用CPU/MIC协同计算加速地震叠前时间偏移的方法,涉及到高性能计算领域。该方法采用CPU与MIC异构架构,其中CPU负责FFT计算、读地震道数据、进程控制与调度,还参与PSTM计算,而MIC只做PSTM计算,同时计算之间采用异步并行思想及动态负载均衡方式,实现CPU与MIC协同计算与共同计算;其整体设计包含三个方面PSTM计算部分串行算法的并行设计、PSTM整体逻辑结构设计及CPU与MIC的异步计算设计。该方法的有益效果是利用CPU/MIC协同计算提高了PSTM的性能,减少了机房构建成本和管理、运行、维护费用,且实现简单,需要的开发成本低。
文档编号G01V1/30GK103018776SQ20121047587
公开日2013年4月3日 申请日期2012年11月22日 优先权日2012年11月22日
发明者张清, 张广勇 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1