用于有限差分建模的统一应用框架的制作方法_3

文档序号:9713419阅读:来源:国知局
sponge;
[0063] //输出
[0064] io,hostOutput(^receiver^, result);
[0065] io.waveFieldOutput("pp_out",result);
[0066] 可注意到的差异包括变量类型的规范以及将类似Java对象的语法用于指定输入 流和输出流的参数。出于优化原因,海绵擦拭运算相对于伪码以不同的顺序实现。最终,注 意,从内核中省略循环结构。
[0067] 图10以数据流形式示出了这个源代码的中间表示,即,作为有向图。它具有六个源 节点902-912、八个操作节点914-928以及两个汇聚节点930-932。节点902是接受源流的主 机-输入节点。节点904是接受用于模型空间中的每个点的平方速度属性的地球-模型输入 节点。节点906是当前压力波场输入节点。节点908是常数值输入节点。节点910是先前压力 波场输入节点。节点912是提供围绕模型空间的边界的衰减的海绵输入节点。
[0068]节点914产生来自节点908的常数与来自节点906的当前压力波场值的乘积。节点 916产生来自节点910的先前压力波场值与来自节点912的海绵系数的乘积。节点918产生来 自节点914和916的乘积的差。节点920是对当前压力波场运算以产生拉普拉斯的卷积节点。 节点922产生拉普拉斯与来自节点904的平方速度属性的乘积。节点924产生来自节点918和 922的值的和。节点926将该和与来自节点902的源输入值合并,以获得更新的压力波场值。 节点928产生更新的压力波场值与海绵系数的乘积。
[0069]汇聚节点930收集节点928的输出用于存储为输出压力波场。汇聚节点932也收集 那个输出用于供给到主机作为接收器信号。
[0070]该框架可以提供API机制,其使得能够逐节点地进行平台特定的优化,同时最小化 对应用内核代码的污染。这种机制是具有可以被平台特定的后端模块应用的平台特定的 "规则"的节点属性的设置。规则指定对数据流图(被称为组)的子集的属性-操作动作(被称 为函子)。可以基于节点类型来定义组,以促进某些运算的优化。每个后端模块可以指定任 意数量的定制函子;通常每个函子将设置一个或多个节点属性。例如,后端模块可以指定整 数值节点属性f〇〇,以及用于应用相关联的函子的方法setFoo(int foo)。函子可以被合并, 以创建较高层次的函子。例如,is(NodeConvolve.class)?setFoo(3)使用预定义的"is"函 子来创建新的函子,如果该节点表示卷积,则该新的函子将f〇〇属性设置为3。这种API机制 促进了计算机科学家和地球物理学家之间的分工,使得每个人都能够专注于其自己的能 力。
[0071]该框架还可以提供用于中间表示的检查和操作的API机制。类似于那些在编译器 图通过(graph passes)期间所执行的,平台特定的后端模块可以采用API以将变换应用到 数据流图。图通过通常被用于:图形检查(例如生成视觉表示)、优化(例如用左移位替代乘 以2)、平台特定的操作(例如为DFE实现插入缓冲区)、以及最终目标呈现。该API机制使得定 制图通过能够被定义并且被注册,以用于在执行中间表示的平台特定的优化中使用。
[0072]图通过可以为根据需要尽可能多的节点类型注册处理程序(handler)方法。然后, 适当的处理程序可以适当地被后端模块自动地调用。缺省情况下,可以以拓扑顺序访问节 点(意味着直到其全部上游节点都已被访问时节点才被访问)。但是,也可以为每个图通过 指定其它的顺序,包括相反的顺序、按类型排序以及通过列表索引(用于任意处理)。
[0073] 一些框架实施例还可以提供用于相对于给定物理内核评估多个硬件目标的API机 制,从而促进未来硬件平台的评估和相关联的购买和管理决定。
[0074]本文所公开的框架采用基于适于指定有限差分建模内核的平台无关的中间表示 阐述的领域特定的语言。该框架使物理建模与硬件-软件优化任务分离。它强加了用于代码 库的基于物理的元结构并且产生非常便携且适用于后续优化的代码设计。因为开发人员可 以将其注意力放到内核,代码库的维护变得容易。就期望平台特定的细化而言,它们可以被 平台特定的后端模块和/或平台特定的转化器模块容纳,使得这些细化能够按照对那个平 台的需要均匀地跨全部内核来应用。该框架还促进各种平台的性能之间的直接比较,因为 各种平台中的每个平台都实现公共内核。
[0075] 一旦以上公开内容被完全理解,对于本领域技术人员来说,许多其它的变化和修 改将变得显而易见。以下权利要求意在被解释为涵盖所有此类变化和修改。
【主权项】
1. 一种波场模拟方法,所述波场模拟方法包括: 指定将要在空间中的每个点处应用的有限差分内核; 将内核表示为平台无关的有向无环图,其具有表示运算的结果的节点并且具有表示依 赖性的边;以及 对于多个实现平台中的每个平台: 从平台无关的图中导出用于实现平台的定制图,其中所述导出包括执行基于图的优 化; 将定制图转化为用于实现平台的配置信息; 将配置信息提供给实现平台,以获得波场模拟器; 采用波场模拟器以利用指定的输入信号或输出信号将运算的所述内核反复应用到空 间中的每个点;以及 至少部分地基于由波场模拟器提供的波场生成图像。2. 如权利要求1所述的方法,其中所述信号包括地震炮点或接收到的地震波形。3. 如权利要求1所述的方法,其中所述配置信息包括用于处理器、协处理器或者图形处 理器单元(GPU)的可执行软件或固件指令。4. 如权利要求1所述的方法,其中所述配置信息包括用于现场可编程门阵列(FPGA)、可 编程逻辑器件(PLD)或专用集成电路(ASIC)的数据流规范。5. 如权利要求1所述的方法,其中所述基于图的优化包括将图运算拆分成组并且将平 台特定的规则应用到所述组中的至少一个,以利用硬件特定的属性。6. -种有限差分建模系统,所述有限差分建模系统包括: 具有用于多个实现平台中的每个平台的构建器模块的非临时性信息存储介质;以及 耦接到信息存储介质以执行构建器模块的一个或多个处理器,其中每个构建器模块致 使所述一个或多个处理器: 获得有限差分内核的平台无关的数据流图; 利用针对平台无关的图的一次或多次优化通过从平台无关的图中导出平台定制的数 据流图;以及 将平台定制的数据流图转化为配置信息,所述配置信息致使当容纳指定的换能器信号 时,相关联的平台将有限差分内核应用到模型空间中的每个点。7. 如权利要求6所述的系统,其中所述信号包括地震炮点或接收到的地震波形。8. 如权利要求6所述的系统,还包括至少部分地基于由波场模拟器提供的波场显示图 像的监视器。9. 如权利要求6所述的系统,其中所述配置信息包括用于处理器、协处理器或者图形处 理器单元(GPU)的可执行软件或固件指令。10. 如权利要求6所述的系统,其中所述配置信息包括用于现场可编程门阵列(FPGA)、 可编程逻辑器件(PLD)或专用集成电路(ASIC)的数据流规范。11. 如权利要求6所述的系统,其中作为所述优化的一部分,每个构建器模块处理图节 点的组,以利用硬件特定的属性。12. -种地震成像系统,所述地震成像系统包括: 多个可配置的实现平台,在被提供平台特定的配置信息之后,每个可配置的实现平台 响应于指定的换能器信号模拟波场,所述波场是可合并的,以形成地下区域的地震图像; 计算机,其从有限差分内核的平台无关的数据流图中导出所述平台特定的配置信息、 将所述平台特定的配置信息存储在非临时性信息存储介质中;以及 通用计算机,其合并模拟的波场,以获得地下图像。13. 如权利要求12所述的系统,其中所述平台包括至少一个通用多处理器计算机以及 具有多个可配置硬件加速器的至少一个异构计算机。14. 如权利要求13所述的系统,其中所述加速器包括具有可配置数据流架构的现场可 编程门阵列(FPGA)。15. 如权利要求13所述的系统,其中所述加速器包括图形处理器单元(GPU)、协处理器 或数字信号处理器(DSP)。
【专利摘要】有限差分波场建模框架通过使用以数据流图形式的平台无关的中间表示使物理建模与硬件-软件优化的任务分离。在至少一些实施例中,波场模拟方法包括指定将要在空间中的每个点处应用的运算的内核以及将内核表示为平台无关的数据流图。对于多个实现平台中的每个平台,该方法还包括:从平台无关的图中导出用于实现平台的定制图;将定制图转化为用于实现平台的配置信息;将配置信息提供给实现平台,以获得波场模拟器;以及采用波场模拟器以利用指定的输入信号或输出信号将运算的所述内核反复应用到空间中的每个点。
【IPC分类】G01V1/28
【公开号】CN105474047
【申请号】CN201480046977
【发明人】O·查尔斯沃斯, T·尼姆西, O·佩尔, T·约翰森, P·阿克博格
【申请人】雪佛龙美国公司
【公开日】2016年4月6日
【申请日】2014年4月23日
【公告号】CA2919650A1, EP3039458A1, US20150066450, WO2015030880A1
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1