地震处理任务预测调度器的制作方法

文档序号:16852498发布日期:2019-02-12 22:51阅读:177来源:国知局
地震处理任务预测调度器的制作方法

本申请要求2016年5月6日提交的美国临时专利申请序列号62/332,661的优先权,所述美国临时专利申请以全文引用的方式并入本文。



背景技术:

分布式计算中的任务管理是借以完成对处理任务的调度和记录的过程。处理任务是可以分配到一个或多个计算装置的一些工作或责任。装置继而执行代码和/或以其他方式应用算法来执行给定的处理任务。例如,在地震背景下,通过应用噪声消除算法,噪声可以在激发集合(shotgather)中衰减。这种类型的应用中的处理任务因而可以包括将噪声衰减算法应用于数据、将数据分类到激发集合中、将算法应用于单独激发集合、在应用算法以处理激发集合的计算节点上开始处理、将应用噪声关注的激发集合写入磁盘等。分布式调度引擎可以在并行作业的执行期间指挥调度这些任务中的一者或多者。

对于复杂的处理序列,可以存在来源于其他处理任务的处理任务。例如,第一处理任务可以是将数据读到存储器中,第二处理任务可以是将数据分类,并且处理任务的下一序列可以是将噪声衰减算法应用于所分类的数据中的每个激发集合。应用噪声衰减算法的任务来源于将数据分类的任务。在这个实例中,单个处理任务用于导出若干处理任务。

对于更复杂的处理场景,一些处理任务可以来源于一个或多个输入任务。例如,如果处理序列扩展到包括将激发集合重新分类到公共图像点集、应用算法以根据偏移来校正信号传播的效果并且合计公共图像点集中的迹线以产生输出迹线,那么很多激发任务可以对应于单个公共图像处理任务。



技术实现要素:

本公开的实施方案可以提供一种用于调度任务的方法。所述方法包括接收使用一个或多个数据收集装置获得的输入,以及在网络的一个或多个计算资源上调度一个或多个输入任务。所述一个或多个输入任务包括处理所述输入。所述方法还包括:至少部分地基于所述输入来预测一个或多个第一任务;至少部分地基于所述网络的拓扑来将用于所述一个或多个预测的第一任务的一个或多个占位符任务分配到所述一个或多个计算资源;在执行输入任务时接收一个或多个更新,所述更新包括待执行的所述一个或多个第一任务的属性;基于待执行的所述一个或多个第一任务的所述属性来更改所述一个或多个占位符任务;以及通过将所述一个或多个第一任务匹配到所述一个或多个占位符任务来在所述一个或多个计算资源上调度所述一个或多个第一任务。

在实施方案中,所述属性包括待执行的所述一个或多个第一任务的数量,并且更改所述一个或多个占位符任务包括拆分所述一个或多个占位符任务,使得一个或多个占位符任务的数量匹配待执行的所述一个或多个第一任务的数量。

在实施方案中,所述方法还包括:基于所述输入、所述一个或多个第一任务或两者来预测一个或多个第二任务;基于所述网络的所述拓扑来调度所述一个或多个第二任务;至少部分地执行所述一个或多个第一任务;将所述一个或多个第一任务的执行结果合并到所述一个或多个第二任务中;以及执行所述一个或多个第二任务。

在实施方案中,所述一个或多个输入任务具有基于所述输入的第一属性,执行所述一个或多个输入任务提供表示所述输入的第二属性的数据,所述一个或多个占位符任务具有与所述一个或多个输入任务的所述第一属性相同的第一属性和被初始化为集外值(out-of-setvalue)的第二属性。此外,调度所述一个或多个第一任务包括将所述一个或多个占位符任务的所述第二属性设置为等于所述第二属性。

在实施方案中,接收来自所述数据收集装置的输入包括接收地震数据;所述第一属性包括激发行号;并且所述第二属性包括激发号。

在实施方案中,所述输入包括地震数据,并且所述方法还包括:执行所述一个或多个输入任务包括将来自采集系统的表示的数据转换成后续处理活动的表示;执行所述一个或多个第一任务包括应用时域处理,所述时域处理包括滤波、振幅标准化或相干噪声衰减中的一者或多者;以及执行所述一个或多个第二任务包括以下一者或多者:在非时域中处理,或生成图像来检查所述数据的质量。

在实施方案中,所述一个或多个输入任务中的相应输入任务对应于在一系列持续时间中的单独持续时间内收集的地震数据,所述一个或多个第一任务中的相应第一任务包括用于在单独输入任务的所述单独持续时间期间记录的预定数据集的一个或多个处理操作,并且所述第二任务对应于所述单独持续时间中的至少一者。

在实施方案中,调度所述一个或多个输入任务包括:在第一组计算资源上调度第一输入任务;以及在第二组计算资源上调度第二输入任务。所述第一组的所述计算资源彼此通信比与所述第二组的所述计算资源通信更快。在实施方案中,分配所述一个或多个占位符任务包括:在所述第一组上调度第一占位符任务;以及在所述第二组上调度第二占位符任务。基于所述第一输入任务来预测所述第一占位符任务,并且基于所述第二输入任务来预测所述第二占位符任务。

本公开的实施方案还提供一种计算系统,所述计算系统包括:一个或多个处理器;以及存储器系统,所述存储器系统包括存储指令的一个或多个计算机可读介质,所述指令在被所述一个或多个处理器中的至少一者执行时致使所述计算系统执行操作。所述操作包括接收使用一个或多个数据收集装置获得的输入,以及在网络的一个或多个计算资源上调度一个或多个输入任务。所述一个或多个输入任务包括处理所述输入。所述操作还包括:至少部分地基于所述输入来预测一个或多个第一任务;至少部分地基于所述网络的拓扑来将用于所述一个或多个预测的第一任务的一个或多个占位符任务分配到所述一个或多个计算资源;在执行输入任务时接收一个或多个更新,所述更新包括待执行的所述一个或多个第一任务的属性;基于待执行的所述一个或多个第一任务的所述属性来更改所述一个或多个占位符任务;以及通过将所述一个或多个第一任务匹配到所述一个或多个占位符任务来在所述一个或多个计算资源上调度所述一个或多个第一任务。

本公开的实施方案还可以提供一种计算机可读介质,所述计算机可读介质存储指令,所述指令在由计算系统的至少一个处理器执行时致使所述计算系统执行操作。所述操作包括接收使用一个或多个数据收集装置获得的输入,以及在网络的一个或多个计算资源上调度一个或多个输入任务。所述一个或多个输入任务包括处理所述输入。所述操作还包括:至少部分地基于所述输入来预测一个或多个第一任务;至少部分地基于所述网络的拓扑来将用于所述一个或多个预测的第一任务的一个或多个占位符任务分配到所述一个或多个计算资源;在执行输入任务时接收一个或多个更新,所述更新包括待执行的所述一个或多个第一任务的属性;基于待执行的所述一个或多个第一任务的所述属性来更改所述一个或多个占位符任务;以及通过将所述一个或多个第一任务匹配到所述一个或多个占位符任务来在所述一个或多个计算资源上调度所述一个或多个第一任务。

本公开的实施方案还可以包括一种计算系统,所述计算系统被配置成接收使用一个或多个数据收集装置获得的输入,并且在网络的一个或多个计算资源上调度一个或多个输入任务。所述一个或多个输入任务包括处理所述输入。所述计算系统还被配置成:至少部分地基于所述输入来预测一个或多个第一任务;至少部分地基于所述网络的拓扑来将用于所述一个或多个预测的第一任务的一个或多个占位符任务分配到所述一个或多个计算资源;在执行输入任务时接收一个或多个更新,所述更新包括待执行的所述一个或多个第一任务的属性;基于待执行的所述一个或多个第一任务的所述属性来更改所述一个或多个占位符任务;以及通过将所述一个或多个第一任务匹配到所述一个或多个占位符任务来在所述一个或多个计算资源上调度所述一个或多个第一任务。

本公开的实施方案还可以提供一种计算系统,所述计算系统包括用于接收使用一个或多个数据收集装置获得的输入的构件,以及用于在网络的一个或多个计算资源上调度一个或多个输入任务的构件。所述一个或多个输入任务包括处理所述输入。所述系统还包括:用于至少部分地基于所述输入来预测一个或多个第一任务的构件;用于至少部分地基于所述网络的拓扑来将用于所述一个或多个预测的第一任务的一个或多个占位符任务分配到所述一个或多个计算资源的构件;用于在执行输入任务时接收一个或多个更新的构件,所述更新包括待执行的所述一个或多个第一任务的属性;用于基于待执行的所述一个或多个第一任务的所述属性来更改所述一个或多个占位符任务的构件;以及用于通过将所述一个或多个第一任务匹配到所述一个或多个占位符任务来在所述一个或多个计算资源上调度所述一个或多个第一任务的构件。

将了解,上述内容不应被视作详尽的或排他的,而仅仅介绍在以下描述中更全面地描述的特征的子集。

附图说明

附图并入本说明书并且构成本说明书的一部分,其示出本教义的实施方案,并且连同描述一起用来解释本教义的原理。在附图中:

图1a、图1b、图1c、图1d、图2、图3a和图3b示出根据实施方案的油田以及其操作的简化示意图。

图4示出根据实施方案的用于调度任务的方法的流程图。

图5示出根据实施方案的任务调度系统的图解。

图6示出根据实施方案的任务调度系统的另一图解。

图7示出根据实施方案的用于调度任务的另一方法的流程图。

图8a和图8b示出根据实施方案的用于调度任务的方法的实施方式的图解。

图9示出根据实施方案的用于分布式计算的系统的图解。

图10示出根据实施方案的用于使用图9的分布式计算系统来建立、发布和执行项目的方法的流程图。

图11示出根据实施方案的用于填充图9的系统的模块注册表的方法的流程图。

图12a、图12b、图12c、图12d和图12e示出根据实施方案的用于调度任务的另一方法的流程图。

图13a和图13b示出根据实施方案的另一方面的流程图。

图14示出根据实施方案的计算系统的示意图。

具体实施方式

现在将详细参考实施方案,实施方案的实例在附图中示出。在以下详细描述中,阐明许多具体细节,以便提供对本发明的透彻理解。然而,本领域的一般技术人员将明白,可以在不具有这些具体细节的情况下实践本发明。在其他情况下,众所周知的方法、程序、部件、电路和网络并未进行详细描述,以免不必要地混淆实施方案的方面。

还应理解,虽然术语第一、第二等可以在本文中用于描述各种元件,但是这些元件不应受这些术语限制。这些术语仅用来将一个元件与另一个元件区分开。例如,在不脱离本发明的范围的情况下,第一对象可以被称为第二对象,并且类似地,第二对象可以被称为第一对象。第一对象和第二对象分别都是对象,但它们不应被视为同一对象。

本文中本发明的描述中使用的术语仅用于描述特定实施方案的目的,而不意图限制本发明。如本发明的说明书和所附权利要求中所用,除非上下文另外明确指出,否则单数形式“一”和“该/所述”也意在包括复数形式。还应当理解,如本文所使用的术语“和/或”是指并且包含一个或多个相关联的所列项目的任何可能的组合。还应理解,当在本说明书中使用时,术语“包括”和/或“包含”指定所述特征、整体、步骤、操作、元件和/或部件的存在,但并不排除一个或多个其他特征、整体、步骤、操作、元件、部件和/或其分组的存在或添加。此外,如本文所使用,可以将术语“如果”解释为意指“当……时”或“在……之后”或“响应于确定”或“响应于检测”,具体取决于上下文。

现在将注意力转向根据一些实施方案的处理过程、方法、技术和工作流程。本文中所公开的处理过程、方法、技术和工作流程中的一些操作可以进行组合和/或一些操作的顺序可以改变。

图1a至图1d示出根据本文中描述的各种技术和工艺的实施方式的油田100的简化示意图,所述油田100具有地下地层102,所述地下地层102中含有储层104。图1a示出由诸如地震卡车106.1的勘测工具执行来测量地下地层的性质的勘测作业。勘测作业是产生声音振动的地震勘测作业。在图1a中,一个这样的声音振动(例如,由源110产生的声音振动112)反射离开地球地层116中的层位114。一组声音振动被位于地球地面上的传感器接收,诸如地音探测仪接收器118。接收的数据120作为输入数据提供到地震卡车106.1的计算机122.1,并且响应于输入数据,计算机122.1生成地震数据输出124。这个地震数据输出可以根据需要例如通过数据简化进行存储、传输或进一步处理。

图1b示出通过钻井工具106.2被钻塔128悬挂并推进到地下地层102中来形成井筒136而执行的钻井作业。泥浆坑130用于经由流动管线132将钻井泥浆吸到钻井工具中,以用于使钻井泥浆向下循环通过钻井工具、随后沿着井筒136向上并且回到地面。钻井泥浆通常被过滤并返回到泥浆坑。循环系统可以储存、控制或过滤流动的钻井泥浆。将钻井工具推进到地下地层102中以到达储层104。每个井可以把一个或多个储层作为目标。钻井工具适合于使用随钻测井工具来测量井下性质。随钻测井工具还可以适合于取得岩心样本133,如图所示。

计算机设施可以置于油田100周围的各种位置(例如,地面单元134)和/或置于远程位置。地面单元134可以用于与钻井工具和/或离线操作以及与其他地面或井下传感器通信。地面单元134能够与钻井工具通信以将命令发送到钻井工具并且从中接收数据。地面单元134还可以收集在钻井作业期间生成的数据并且产生数据输出135,所述数据输出135随后可以被存储或传输。

诸如计量器的传感器(s)可以置于油田100周围,以收集与各种油田操作相关的数据,如先前所述。如图所示,传感器(s)置于钻井工具中和/或钻塔128处的一个或多个位置以测量钻井参数,诸如,钻压、钻头扭矩、压力、温度、流速、成分、转速,和/或野外作业的其他参数。传感器(s)还可以置于循环系统中的一个或多个位置。

钻井工具106.2可以包括在钻头附近(例如,在离钻头的若干钻铤长度内)的统称的井底钻具组件(bha)(未示出)。井底钻具组件包括用于测量、处理和存储信息以及与地面单元134通信的能力。井底钻具组件还包括用于执行各种其他测量功能的钻铤。

井底钻具组件可以包括与地面单元134通信的通信子组件。通信子组件适于使用诸如泥浆脉冲遥测、电磁遥测或有线钻杆通信等通信渠道将信号发送到地面和从地面接收信号。通信子组件可以包括例如发射器,所述发射器生成表示测量到的钻井参数的信号,诸如声学或电磁信号。本领域的一般技术人员将了解,可以采用多种遥测系统,诸如有线钻杆、电磁或者其他已知的遥测系统。

通常,根据在钻井之前建立的钻井计划来钻出井筒。钻井计划通常阐明限定井场的钻井过程的设备、压力、轨迹和/或其他参数。随后可以根据钻井计划来执行钻井作业。然而,随着信息收集,钻井作业可能需要偏离钻井计划。另外,随着钻井或其他操作执行,地下条件可以改变。随着新信息被收集,地球模型可能也需要调整。

由传感器(s)收集的数据可以由地面单元134和/或其他数据收集源收集,以用于分析或其他处理。由传感器(s)收集的数据可以单独使用或者与其他数据结合使用。数据可以被收集在一个或多个数据库中和/或在现场或异地传输。数据可以是历史数据、实时数据或者它们的组合。实时数据可以实时地使用或者存储以供之后使用。数据还可以与历史数据或其他输入结合以进行进一步分析。数据可以存储在单独的数据库中或者组合到单个数据库中。

地面单元134可以包括收发器137,以允许地面单元134与油田100的各个部分或其他位置之间的通信。地面单元134还可以具备或在功能上连接到一个或多个控制器(未示出),以用于致动油田100处的机构。地面单元134随后可以响应于接收的数据而将命令信号发送到油田100。地面单元134可以经由收发器137来接收命令或者可以自己执行对控制器的命令。可以提供处理器来分析数据(本地分析或远程分析)、作出决定和/或致动控制器。通过这种方式,油田100可以基于收集的数据而选择性地调整。这种技术可以用于改进野外作业的部分,诸如控制钻井、钻压、泵速率或其他参数。这些调整可以基于计算机协议自动地作出,和/或由操作员手动地作出。在一些情况下,可以调整井方案以选择最佳(或改进的)操作条件或者避免问题。

图1c示出通过钢丝绳工具106.3被钻塔128悬挂并进入图1b的井筒136而执行的钢丝绳作业。钢丝绳工具106.3适于部署到井筒136中,以用于生成测井记录、执行井下测试和/或收集样本。钢丝绳工具106.3可以用来提供用于执行地震勘测作业的另一方法和设备。钢丝绳工具106.3可以例如具有将电信号发送到周围地层102和其中的流体和/或从中接收电信号的爆炸性能量源、放射性能量源、电能源或声学能量源144。

钢丝绳工具106.3可以可操作地连接到例如图1a的地音探测仪118和地震卡车106.1的计算机122.1。钢丝绳工具106.3还可以将数据提供到地面单元134。地面单元134可以收集在钢丝绳作业期间生成的数据并且可以产生数据输出135,所述数据输出135随后可以被存储或传输。钢丝绳工具106.3可以置于井筒136中的各种深度处,以提供与地下地层102相关的勘测或其他信息。

诸如计量器的传感器(s)可以置于油田100周围,以收集与各种野外作业相关的数据,如先前所述。如图所示,传感器s置于钢丝绳工具106.3中,以测量与例如野外作业的孔隙度、渗透性、流体成分和/或其他参数相关的井下参数。

图1d示出通过生产工具106.4从生产单元或采油树129部署并进入完成的井筒136中以将流体从井下储层吸引到地面设施142中来执行的生产作业。流体从储层104穿过套管(未示出)中的孔眼并流到井筒136中的生产工具106.4中,并且经由集油管网146流到地面设施142。

诸如计量器的传感器(s)可以置于油田100周围,以收集与各种野外作业相关的数据,如先前所述。如图所示,传感器(s)可以置于生产工具106.4或相关联的设备中,诸如采油树129、收集管网146、地面设施142和/或生产设施,以测量流体参数,诸如流体成分、流速、压力、温度和/或生产作业的其他参数。

生产还可以包括用于增加回收率的注入井。一个或多个收集设施可以可操作地连接到井场中的一者或多者,以选择性地收集来自一个或多个井场的井下流体。

尽管图1b至图1d示出用于测量油田的性质的工具,但将了解,所述工具可以与非油田作业结合使用,诸如,气田、矿、蓄水层、储藏设施或其他地下设施。而且,尽管描绘了某些数据采集工具,但将了解,可以使用能够测量地下地层和/或其地质地层的感测参数(诸如,地震双向走时、密度、电阻率、生产率等)的各种测量工具。各种传感器(s)可以定位在沿着井筒和/或监测工具的各个位置处,以收集和/或监测所需的数据。也可以从异地位置提供其他数据来源。

图1a至图1d的野外配置意图提供对可用于油田应用框架的矿田的实例的简单描述。油田100的一部分或全部可以在陆地上、在水上和/或在海上。而且,尽管描绘了在单个位置处测量的单个矿田,但油田应用可以用于一个或多个气田、一个或多个处理设施和一个或多个井场的任何组合。

图2示出根据本文中描述的各种技术和工艺的实施方式的油田200的部分截面示意图,所述油田200具有置于沿着油田200的各种位置处的数据采集工具202.1、202.2、202.3和202.4,以收集地下地层204的数据。数据采集工具202.1至202.4可以分别与图1a至图1d的数据采集工具106.1至106.4或者未示出的其他数据采集工具相同。如图所示,数据采集工具202.1至202.4分别生成数据图或测量值208.1至208.4。沿着油田200描绘这些数据图以展示由各种作业生成的数据。

数据图208.1至208.3分别是可以由数据采集工具202.1至202.3生成的静态数据图的实例;然而,应理解,数据图208.1至208.3也可以是实时地更新的数据图。可以分析这些测量值以更好地定义一个或多个地层的性质和/或确定测量值的准确性和/或检查误差。相应测量值中的每一者的图可以对齐并缩放,以比较和验证性质。

静态数据图208.1是一段时间内的地震双向响应。静态图208.2是从地层204的岩心样本测量的岩心样本数据。岩心样本可以用于提供数据,诸如,岩心的长度上的岩心样本的密度、孔隙度、渗透性或一些其他物理性质的图表。可以在不同的压力和维度下在岩心中的流体上执行密度和粘度测试。静态数据图208.3是通常提供各个深度处的地层的电阻率或其他测量值的测井曲线。

生产下降曲线或图表208.4是流体流速随时间变化的动态数据图。生产下降曲线通常提供随时间而变的生产率。随着流体流过井筒,取得诸如流速、压力、成分等流体性质的测量值。

还可以收集其他数据,诸如,历史数据、用户输入、经济信息,和/或其他测量数据和其他感兴趣的参数。如下文所述,可以分析静态和动态测量值并且用于生成地下地层的模型以确定地层的特性。也可以使用类似的测量来测量地层方面随时间的变化。

地下结构204具有多个地质地层206.1至206.4。如图所示,这个结构具有若干地层或层,包括页岩层206.1、碳酸盐岩层206.2、页岩层206.3和砂土层206.4。断层207延伸穿过页岩层206.1和碳酸盐岩层206.2。静态数据采集工具适于取得测量值并且检测地层的特性。

尽管描绘了具有具体地质结构的具体地下地层,但将了解,油田200可以含有多种地质结构和/或地层,有时具有极端的复杂性。在一些位置,通常在水位线以下,流体可以占据地层的孔隙。测量装置中的每一者可以用于测量地层和/或其地质特征的性质。尽管将每个采集工具示为在油田200中的具体位置,但将了解,可以在一个或多个矿田上的一个或多个位置或者其他位置取得一种或多种类型的测量,以进行比较和/或分析。

随后可以处理和/或评估从诸如图2的数据采集工具的各种来源收集的数据。通常,来自数据采集工具202.1的显示在静态数据图208.1中的地震数据由地球物理学家用来确定地下地层和特征的特性。静态图208.2中示出的岩心数据和/或来自测井记录208.3的记录数据通常由地质学家用来确定地下地层的各种特性。来自图表208.4的生产数据通常由储层工程师用来确定流体流储层特性。由地质学家、地球物理学家和储层工程师分析的数据可以使用建模技术进行分析。

图3a示出根据本文中描述的各种技术和工艺的实施方式的用于执行生产作业的油田300。如图所示,油田具有可操作地连接到中央处理设施354的多个井场302。图3a的油田配置不意图限制油田应用系统的范围。油田的一部分或全部可以在陆地上和/或在海上。而且,尽管描绘了具有单个处理设施和多个井场的单个油田,但可以存在一个或多个气田、一个或多个处理设施和一个或多个井场的任何组合。

每个井场302具有将井筒336形成到地里的设备。井筒延伸穿过包括储层304的地下地层306。这些储层304含有流体,诸如碳氢化合物。井场从储层中吸引出流体并且经由地面管网344将它们传送到处理设施。地面管网344具有用于控制从井场到处理设施354的流体流的管道和控制机构。

现在将注意力转向图3b,该图示出根据本文中描述的各种技术的一个或多个实施方式的对地下表面362的基于海洋的勘测360的侧视图。地下表面362包括海底地面364。震源366可以包括诸如可控震源或气枪的海上震源,其可以在延长的时间段内或者以脉冲源提供的几乎瞬时能量将地震波368(例如,能量信号)传播到地球中。地震波可以被海上震源作为频率扫描信号传播。例如,可控震源类型的海上震源最初可以发射处于低频率(例如,5hz)的地震波并且随时间推移将地震波增加到高频率(例如,80至90hz)。

地震波368的一个或多个分量可以被海底地面364(即,反射器)反射并转换,并且地震波反射370可以被多个地震接收器372接收。地震接收器372可以设置在多个拖缆(即,拖缆阵列374)上。地震接收器372可以生成表示所接收的地震波反射370的电信号。电信号可以被嵌入关于地下表面362的信息并且被捕获作为地震数据的记录。

在一个实施方式中,每个拖缆可以包括拖缆转向装置,诸如吊舱(bird)、偏转器、尾部浮标等,这在本申请中未说明。根据本文中描述的技术,拖缆转向装置可以用于控制拖缆的位置。

在一个实施方式中,地震波反射370可以向上行进并且在水面376处到达水/空气界面,反射370的一部分随后可以再次向下反射(即,海面虚反射波378)并且由多个地震接收器372接收。海面虚反射波378可以被称为表面多次波。水面376上的波被向下反射所在的点通常被称为向下反射点。

电信号可以经由传输电缆、无线通信等传输到船舶380。船舶380随后可以将电信号传输到数据处理中心。或者,船舶380可以包括能够处理电信号(即,地震数据)的船用计算机。受益于本公开的本领域的技术人员将了解,这个说明高度理想化。例如,勘测可以针对在地面下方深处的地层。地层可以通常包括多个反射器,其中一些可以包括下沉事件,并且可以生成多次反射(包括波转换)以便由地震接收器372接收。在一个实施方式中,地震数据可以经过处理以生成地下表面362的地震图像。

海洋地震采集系统在相同深度(例如,5m至10m)处拖曳拖缆阵列374中的拖缆。然而,基于海洋的勘测360可以在不同深度处拖曳拖缆阵列374中的每个拖缆,使得可以获得地震数据并以避免因海面虚反射波引起的相消干涉的影响的方式处理所述地震数据。例如,图3b的基于海洋的勘测360示出由船舶380在八个不同深度处拖曳的八个拖缆。每个拖缆的深度可以使用设置在每个拖缆上的吊舱进行控制和维持。

图4示出根据实施方案的用于调度任务的方法400的流程图,诸如,与处理地震激发数据相关的任务(但其他类型的任务在本公开的范围内)。方法400可以包括接收使用数据采集设备(例如,水听器或地音探测仪)收集的输入,诸如地震输入,如在402处。在其他实施方案中,可以从持久性存储器或任何其他来源接收输入。

方法400还可以包括调度输入任务,如在404处。输入任务可以由计算资源(处理器)的网络作为分布式应用或其一部分来执行。因此,在404处的调度输入任务可以包括确定(相对于其他任务)何时执行输入任务以及在哪些处理资源上执行输入任务。输入任务可以是其中系统接收、分类和/或存储数据(例如,在402处接收的输入)的任务。在一些实施方案中,输入任务可以基于时间来划分,例如,在连续多天中的指定一天获得的地震数据,如下文将描述。在其他实施方案中,输入任务可以基于其他属性来划分,诸如激发行号。输入任务可以以任何合适的方式来划分,具体取决于应用。

方法400还可以包括基于一个或多个输入任务来预测一个或多个第一任务,如在406处。这个预测可以是具体的或大体的,并且可以基于输入的属性来作出,例如,与获得用于输入任务的数据的硬件(例如,海洋地震拖缆)相关的结构数据。通常在环境允许系统基于输入和/或硬件的性质而精确地预测将来会发生什么任务时进行具体预测。另一方面,在系统预测占位符任务时进行大体预测,所述占位符任务可以在数量上缩放。在大体预测的情况下,一旦已经至少部分地执行前导任务,占位符任务便可以转换成具体预测。如下文将更详细地描述,前导任务结果可以向系统提供额外细节,使得系统能够确定调度任务的数量对应于占位符任务。占位符任务随后可以拆分以达到调度任务的数量。将了解,可以存在用于第一任务的若干流,其中一些第一任务充当其他第一任务的前导任务。

方法400可以包括基于一个或多个第一任务来预测一个或多个第二任务,如在408处。第二任务可以是基于所预测的第一任务执行的任务序列的一部分。例如,可以调度第一任务中的两者或更多者的结果以合并到第二任务中的单一任务中。一旦已经完成预测,在410处,方法400可以包括使用所预测的任务来优先将计算资源分配到各种任务,例如,以有效使用网络拓扑并且有助于组合任务的执行结果的方式。例如,被预测为将合并到第二计算任务中的单一任务中的第一任务可以在其间具有快速连接的节点上执行,从而有助于将来自执行第一计算任务的节点的结果传送到第二计算任务的节点。

在处理任务并调度后续任务时,可以将新调度的任务匹配到占位符任务,如在412处,并且调度系统更新所预测的任务的状态,如在414处。例如,处理输入任务可以包括确定第一任务的属性。所述属性可以指定例如可以调度为完成的第一任务的数量,但所述属性可以是第一任务的任何特性。随着第一任务的属性在输入任务的处理期间变得已知,可以将第一任务匹配到所预测的第一任务和第二任务。

因此,本公开的实施方案可以包括将点的图论表示用于其中可以调度任务的应用的任务调度引擎。这个图表中的节点可以指示可以在作业的执行期间引入处理任务的应用部件、人类、装置或其他机构。任务调度点的图表可以是有向图,其中图表中的边指示在源节点上调度的任务与在汇节点上调度的任务之间的关系。这个边可以与预测内核配对,所述预测内核可以用于估计在汇节点处可以调度哪些任务。这些估计的输出任务随后由系统用来预测针对并行作业资源的调度。

图5和图6示出根据实施方案的在概念上描绘这样的图表的两个图解。具体地,图5示出根据实施方案的对包括三个任务调度点的作业500的调度的图解。例如,作业500可以表示为包括三个“流”的图表,例如,输入流501、拆分流502和合并流503,其中边504在流501、502之间并且另一边505在流502、503之间。

图解的右侧示出在每个流501至503中调度的任务。在这个实例中,调度两个输入任务506-1、506-2、五个拆分任务507-1至507-5以及三个合并任务508-1至508-3。任务之间的箭头指示一个任务是箭头所指向的任务的前导任务。每个任务流之间的边504、505表示预测与输入/前导任务对应的任务的应用程序接口(api)。表示任务506-1、506-2、507-1至507-5和508-1至508-3的框的填满部分示出属于任务的整个作业的数据的子集。例如,在输入流501上,大部分的原始地震数据对应于任务506-2,并且其余部分对应于任务506-1。预测的任务被视作占位符或元任务,并且可以对应于在给定的流上调度的一个或多个任务。此外,用虚线示出合并任务508-3,这表示已经由调度引擎预测但尚未调度的任务。

图6示出根据实施方案的任务调度系统的另一图解,示出前两个任务流501、502之间的输入任务506-1与实际调度任务之间的关系。此处,在作业500的第一阶段期间调度输入任务506-1,并且响应于调度输入任务,在第二流502中创建逻辑占位符任务600。之后,在阶段二期间,调度对应于指定的输入任务506-1的两个拆分流任务507-1、507-2。此后,例如,在阶段三期间,可以按照调度来执行这些任务507-1、507-2。

在一些实施方案中,本公开可以提供用于预测任务的技术,例如,在激发(地震)处理应用中。在激发处理实例中,可以基于单独激发处理任务的几何标准来预测激发处理任务与公共图像点任务之间的关系。例如,在给定最大采集偏移的情况下,对于被限定为激发与接收器位置之间的中点的任何给定公共图像点,给定的激发任务可以有助于在勘测的最大偏移的一半内的任何公共中点任务。使用关于激发和公共图像点几何形状的信息,可以通过分布式处理系统指挥任务调度和分配来预测公共图像点任务。

当公共图像点任务可以由管理作业的处理任务的引擎预期时,可以做出决定以给处理激发任务的顺序和分配激发处理任务的计算装置排出优先级。这些决定可以通过减少在处理对应于相同输出的激发的装置之间传输信息的时间而对处理作业的执行产生影响。在已经完成对应的图像点任务时从装置存储器释放激发的情况下,所调度的激发的优先化可以基本上降低在可用装置上运行处理序列所需的存储器。

图7示出根据实施方案的用于调度作业的另一方法700的流程图。通常,方法700可以包括在对应于在给定的持续时间内获得的数据的输入任务上执行工作。例如,在一天内收集的数据可以分集成较小组的数据,例如,单独激发。所述激发随后可以经由分布到多个计算资源(节点)而独立地处理。在处理单独激发之后,激发数据可以重新组合成任务,所述任务包括在单天(持续时间)内获得的数据。例如,输入任务可以分解成中间激发任务,所述中间激发任务随后可以组合成例如“激发日”任务。

方法700可以包括:在702处,接收在一系列的持续时间内获得的地震数据(例如,海洋地震数据)作为输入。在一些实施方案中,在702处的接收可以包括使用一个或多个物理地震数据采集装置(例如,水听器)在实地测量数据,如上文所述。在其他实施方案中,方法700可以在先前收集和存储的数据上操作。

为了通过具体的非限制性实例进行说明,可以将10天的时段作为所述一系列持续时间,其中每一天对应于所述系列中的单独持续时间。在每一天(持续时间)期间,可以获得一个或多个激发,其中单独激发包括一个或多个记录或迹线。单独记录或迹线可以表示在相应激发的特定位置处记录的一系列地震反射。在一些实例中,单独激发可以包括数百个记录或迹线,并且每一天可以包括数百个激发。数据的属性可以在数据被处理之前已知,并且在一些实施方案中,方法700可以使用先验知识来有效地执行任务,例如,如下。

作为说明性实例,可用于中间激发任务(例如,激发日作业)的计算资源可以包括索引在1与100之间的计算节点,其可以分成四组:1至25、26至50、51至75,以及76至100,其中同一组中的节点之间的连接性较高并且不同组的节点之间的连接性较慢。方法700包括调度输入任务,其中相应输入任务对应于在相应持续时间(天)中接收的激发,如在704处。这可以在地震数据的采集之前、期间或之后进行和/或在702处的接收此类数据之前、期间或之后进行。所调度的输入任务可以开始输入流;继续本实例,可以在流中调度10个输入任务,每天的激发数据一个。

将了解,本文中使用具体数量的计算节点、激发数量、持续时间长度等以帮助理解本公开,但不意图限制。实际上,可以使用任何持续时间长度和任何数量的计算节点。

在每一天(持续时间)中记录的激发的实际数量此时可能是未知的;因此,方法700可以包括分配/创建用于中间激发任务(例如,单激发任务)的占位符任务,如在706处。同样,这可以在702处的接收地震输入之前、期间或之后进行。在706处,可以至少部分地基于对可以要求的中间任务的数量的预测来分配占位符任务。

在一些实施方案中,方法700可以在706处使用允许预测中间任务的数量的实施细节。在实施方案中,此类实施细节可以包括用于所调度的任务的任务属性。例如,单独任务可以具有对应于激发的物理行的激发行号的属性。在拆分流上,单独任务可以具有两个属性:对应于输入任务流中的现有激发行号的第一个属性,以及对应于表示激发行中的单独激发的激发索引的第二个属性。

可以在拆分流中利用与输入相同的激发行索引以及用于激发索引的通配符来创建占位符任务。因此,在拆分流上调度的具有相同激发行索引的任务可以与正确的占位符任务相关联。也可以使用其他属性。在一些实施方案中,通配符可以是集外值。在这个背景下,“集外值”是在逻辑上评估为在属性的潜在值的集合之外(例如,大于所述潜在值)的属性的值。因此,所述属性可以是其潜在值是半序集的任何属性。通过这种方式,方法700的执行可以允许通过用集外值中的值取代不与输入任务的已知属性对应的拆分流上的属性值来预测占位符任务。在一些实施方案中,方法700可以包括提供进一步逻辑来分解(或组合)输入属性。这个任务预测框架随后可以取决于并行引擎而与启发法结合,以调度任务。

这些占位符任务还可以用于预测源于重新组合单独中间任务的后续激发日(合并流)任务。然而,在这种情况下,调度引擎可以预测之后在执行期间将存在10个激发日任务。在其他情形下,合并流任务的数量可以不与所调度的输入流任务的数量相同,并且另外,来自一个输入流的拆分流任务可以输入到两个或更多个合并流任务,如图5所示。

由于调度系统已经预测输入任务将分成很多小任务并且随后重新组合,因此方法700可以包括根据可用网络拓扑在节点上调度输入任务。例如,输入任务1去到节点1,输入任务2去到节点26,输入任务3去到节点51,输入任务4去到节点76,输入任务5去到节点2等。

在处理输入任务时,如在710处,系统也许能够更新中间任务的属性,从而可以提供待调度的中间任务的数量。因此,可以拆分占位符任务,如在712处,以匹配待调度的中间任务的数量,并且随后可以通过与占位符任务匹配来调度中间任务,如在714处。处理输入任务可以包括将来自采集系统的表示的数据转换成后续处理活动的表示。

方法700可以包括处理中间任务,如在715处,其可以包括应用时域处理,所述时域处理包括滤波、振幅标准化或相干噪声衰减中的一者或多者。

例如,如果输入任务1导致150个中间激发任务,那么由于这些激发任务可以重新组合成单个最终任务,因此方法700可以包括将对应于输入任务1的150个中间任务调度到与输入任务1相同的网络拓扑组中的计算节点。具体地,可以在节点1至25上调度对应于输入1的150个任务。因此,可以在节点26至50上调度对应于输入任务2的任务,所述节点对应于分配输入任务2的位置。通过这种方式,调度器允许分布式作业利用节点组中的每一组中的互连拓扑。一旦完成对应于拆分任务流的任务,在716处它们便可以组合。组合/合并的拆分流随后可以用作合并任务的前导,在718处可以处理所述合并任务。处理一个或多个合并任务可以包括在非时域中处理,或者生成图像来检查数据的质量。

图8a和图8b示出方法700的实施方案的具体实施方式的图解。在描述图8a和图8b时,也参考图7的流程图。

以图8a开始,示出方法700的第一阶段。在800处,可以接收地震数据作为输入,这对应于方法700的框702。方法700可以行进到调度输入任务802-1、802-2和802-3,例如,在不同节点组的节点中,这对应于方法700的框704。继续上面的实例,输入任务802-1、802-2和802-3可以与在不同持续时间、在不同激发行上等接收的激发相关联。输入任务802-1、802-2和802-3可以基于网络拓扑进行调度。例如,可以在索引为1至25的节点中的一个(或多个)节点(例如,节点1)上调度输入任务802-1,可以在索引为26至50的节点中的一个(或多个)节点(例如,节点26)上调度输入任务802-2,并且可以在索引为51至75的节点中的一个(或多个)节点(例如,节点51)上调度输入任务802-3。任务802-1、802-2和802-3可以是输入流。

占位符任务804-1、804-2、804-3可以在拆分流中调度,例如,在与其中调度相应输入任务的节点组对应的组中的节点上。例如,可以在节点1至25中的一个或多个节点上调度占位符任务804-1,可以在节点26至50中的一个或多个节点上调度占位符任务804-2,并且可以在节点51至75中的一个或多个节点上调度占位符任务804-3。单独占位符任务804-1、804-2、804-3可以具有两个或更多个属性。属性中的一者可以基于采集系统来预测,例如,激发行号或激发日等。其他属性可能要直到输入数据之后才知道,例如,激发号,因为激发的数量可能是未知的。通配符‘*’可以如上文论述用于这个第二属性。

方法700还可以调度合并流任务806-1、806-2和806-3,这可以从拆分字符串任务804-1、804-2、804-2中的两者或更多者取得输出并且将它们组合,例如,以从若干激发或甚至两个或更多激发日中产生地震域的图像。

输入任务802-1、802-2和802-3可以充当拆分流任务的前导任务;也就是,在将占位符任务804-1、804-2、804-3转换成调度任务之前,可以至少部分地执行输入/前导任务802-1、802-2、802-3。例如,输入任务802-1、802-2、802-3的执行可以为系统提供丢失信息以调度正确数量的拆分流任务(例如,在这种情况下,相应行中的激发的数量)。继续前进到图8b,可以至少部分地处理输入任务802-1,这对应于图7的框710,其可以提供以下认识:激发行1中存在4个激发、激发行2中存在3个激发并且激发行3中存在5个激发。因此,可以通过在712处拆分占位符任务并且在714处将新任务匹配到占位符任务而在拆分流中调度对应的新任务850-1、850-2、850-3。一旦至少部分地执行输入任务802-2、802-3,占位符任务804-2、804-3便可能出现相同或类似的序列。

将了解,可以存在不止一个拆分流。例如,可以存在三个或更多属性,其中至少两个属性是未知的并且用通配符表示。输入任务802-1、802-2、802-3可以充当两个或更多此类拆分流的前导任务,和/或一个拆分流任务可以充当后续拆分流任务的前导。

图9示出计算系统900的概念图,所述计算系统900可以在分布式背景下用于执行前述方法中的任一者的实施方案和/或其他实施方案。系统900使用容器,所述容器有助于封装内核开发者902、模块开发者904、服务提供者906和“用户”908(例如,负责创建将要在测试、生产或两者中实施的工作流程的人/一群人)的功能。

容器是可以包括代码、运行时环境、系统工具、库和设置中的一者或多者的可执行软件包。容器可以加载到执行环境(例如,虚拟机)中并且可以运行,通常不关心正在作出执行的系统的细节。因此,容器将软件与其环境隔离,并且可以减轻或避免开发与模拟环境之间的差异的后果。这可以有助于改变系统900,例如,降低不同团队之间的协调。

在所示实施方案中,内核开发者902创建运行时环境图像,例如,容器908。在一些实施方案中,容器908可以是刀片运行时环境。单独容器908可以包括用于执行软件应用或“模块”的基本功能,所述软件应用或“模块”用来执行由用户908设计的流程。因此,单独容器908可以包括操作系统内核,诸如发行版,例如centos。容器908还可以包括一个或多个基本库910和运行时环境912。多种其他软件应用可以被包括在容器908中。

当由内核开发者902开发时,容器908可以被发布到容器注册表916,所述容器注册表可以包括若干个此类容器(全都标记为918)。注册表916中的容器918可以由模块开发者904使用。模块开发者904继而可以生成模块920,所述模块920可以是被配置成执行与将要生成的流程相关的任务(例如,地震处理任务)的软件包。因此,模块920可以包括库922、模块定义924、可以被要求来完成指定任务的任何第三方软件(例如,开源)926,和/或任何其他软件工具。模块928可以被发布到模块注册表928,所述模块注册表可以含有若干此类模块(全都标记为930)。

用户908可以与流程设计师932相互作用,所述流程设计师可以是允许用户使用模块930的功能性以及容器918的扩展性和封装性在分布式系统中执行计算密集型工作流程的开发环境。流程设计师932也许能够收集来自容器注册表916的容器信息以及来自模块注册表928的模块信息。使用这个信息,流程设计师932可以帮助创建流程文件,所述流程文件指定将作为作业的一部分完成的一系列任务。流程文件(即,作业)随后可以传送到作业执行器934,根据用户908使用流程设计师932开发的流程的要求,所述作业执行器934可以使用容器938和相关联的模块940将此类作业中的一者或多者实例化为项目936并进行调度。

因此,在各种实体之间提供封装。实施项目936的机器(例如,虚拟机)通过执行容器938来这样做,并且在容器938内执行模块940。用户908使用模块940,但可能没有改变模块940操作的方式的透明度。这由模块开发者904控制。同样地,由容器938执行的模块940可能没有意识到容器938的内核的改变。因此,只要功能保持不变,容器938的改变可以不被模块940发现,并且只要功能保持不变,模块940的改变可以不影响它们被用户908用于流程设计。

图10示出根据实施方案的用于使用系统900来建立项目(诸如,地震处理项目)的方法1000的流程图。方法1000可以包括接收用于建立和测试的环境的规格,如在1001处。方法1000还可以包括基于所述规格来建立环境容器,如在1002处。例如,用户可以生成文件,所述文件指定用于建立和测试的环境。

随后可以运行环境容器,如在1004处。随后可以将流程接收到环境中,如在1006处。方法1000随后可以包括生成指挥容器,如在1008处,并且建立工作者容器1010。通常,指挥容器可以被配置成例如在分布式计算/云系统中在一个或多个计算节点上将一个或多个工作者容器实例化。指挥容器可以控制发送到节点或者以其他方式在节点上调度的任务,所述节点继而可以使用工作者容器来执行任务。一旦创建了容器,容器便可以发布到容器注册表916,如上文说明。

方法1000可以包括启动指挥容器,如在1012处。这可以例如使用作业执行器934来执行。指挥容器可以包括节点服务应用,所述节点服务应用可以被配置成与在计算节点上实例化的工作者节点通信。

方法1000还可以包括从容器中创建工作者实例模板,如在1014处。方法1000还可以包括使用指挥容器在一个或多个节点上将一个或多个工作者容器实例化,如在1016处。指挥容器和工作者容器可以存储在容器注册表916中。方法1000随后可以包括使用工作者容器在一个或多个节点上执行一个或多个任务,如在1016处。指挥容器和工作者容器可以包括节点服务应用,所述节点服务应用可以实现容器之间的通信。因此,指挥节点可以将计算任务分布到工作者节点、将输入提供到工作者节点,和/或从中接收输出。

图11示出根据实施方案的用于填充模块注册表928(例如,生成和发布模块920)的方法1100的流程图。方法1100可以包括利用相关联的代码库来注册和定义模块和库,如在1102处。方法1100还可以包括建立容器,如在1104处。可以测试所述容器并部署到开发和/或模拟环境中,例如,以用于集成和/或大规模测试,如在1106处。注册表928可以知道在系统900上执行的流程,这可以允许方法1100包括响应于容器和模块的执行、测试和部署而公布数据,如在1108处。这可以有助于对新模块版本执行影响分析并且支持兼容版本的自动转换。

在一个或多个实施方案中,所描述的功能可以在硬件、软件、固件或者它们的任何组合中实施。对于软件实施方式,可以利用执行本文中描述的功能的模块(例如,过程、功能、子程序、程序、例程、子例程、模块、软件包、类别等等)来实施本文中描述的技术。模块可以通过传递和/或接收信息、数据、自变量、参数或存储器内容来耦合到另一模块或硬件电路。信息、自变量、参数、数据等可以使用任何合适的手段(包括存储器共享、消息传递、令牌传递、网络传输等)来传递、转发或传输。软件代码可以存储在存储器单元中并且由处理器执行。存储器单元可以实施在处理器内或在处理器外部,在这种情况下,它可以经由各种手段通信地耦合到处理器,如本领域中已知。

图12a至图12e示出根据实施方案的用于调度任务的方法1200的流程图。方法1200可以包括使用一个或多个数据收集装置获得的数据,如在1202处(例如,702,图7)。在实施方案中,接收来自数据收集装置的输入可以包括接收地震数据,如在1204处(例如,702,图7)。

方法1200还可以包括在网络的一个或多个计算资源上调度一个或多个输入任务(例如,704,图7)。一个或多个输入任务可以包括处理所述输入,如在1208处。在一些实施方案中,一个或多个输入任务可以具有基于输入的第一属性和被初始化为集外值的第二属性,如在1210处。在实施方案中,一个或多个输入任务中的相应输入任务对应于在一系列持续时间中的单独持续时间内收集的地震数据,如在1212处(例如,802-1,图8a)。在实施方案中,调度一个或多个输入任务包括在第一组计算资源上调度第一输入任务(例如,802-1,图8a,示出在第一组节点上调度的输入任务),如在1214处。调度一个或多个输入任务还可以包括在第二组计算资源上调度第二输入任务,其中第一组的计算资源彼此通信比与第二组的计算资源通信更快,如在1216处(例如,802-2,图8b,示出在第二组节点上调度的输入任务)。

方法1200还可以包括至少部分地基于输入来预测一个或多个第一任务,如在1218处(例如,706,图7,基于一个或多个任务的预测来分配占位符任务)。在实施方案中,一个或多个第一任务中的相应第一任务可以包括用于在单独输入任务的单独持续时间期间记录的预定数据集的一个或多个处理操作,如在1220处(例如,804-1,图8a)。

方法1200还可以包括至少部分地基于网络的拓扑来将用于一个或多个预测的第一任务的一个或多个占位符任务分配到一个或多个计算资源,如在1222处(例如,706,图7,分配占位符任务)。一个或多个占位符任务具有与一个或多个输入任务的第一属性相同的第一属性,如在1224处(例如,804-1,图8a,基于在激发日期间获得的激发行来分配激发行号)。第一属性可以是激发行号,并且第二属性可以包括激发号,如在1226处(例如,804-1,图8a)。分配一个或多个占位符任务可以包括在第一组上调度第一占位符任务,如在1228处(例如,804-1,图8a,分配到第一组节点)。分配一个或多个占位符任务还可以包括在第二组上调度第二占位符任务,如在1230处(例如,804-2,图8a,分配到第二组节点)。可以基于第一输入任务来预测第一占位符任务,如在1232处。可以基于第二输入任务来预测第二占位符任务,如在1234处。

在实施方案中,方法1200可以包括:执行一个或多个输入任务包括将来自采集系统的表示的数据转换成后续处理活动的表示,如在1235处(例如,710,图7)。方法1200还可以包括在执行输入任务时接收一个或多个更新,所述更新包括待执行的一个或多个第一任务的属性,如在1236处(例如,710,图7,在处理输入任务时,确定对诸如占位符任务的数量的属性的更新)。在实施方案中,所述属性包括待执行的一个或多个第一任务的数量,如在1238处。

方法1200还可以包括基于待执行的一个或多个第一任务的属性来更改一个或多个占位符任务,如在1240处(例如,712,图7,拆分占位符任务是更改占位符任务的属性的实例,其中所述属性是占位符任务的数量)。在实施方案中,更改一个或多个占位符任务包括拆分一个或多个占位符任务,使得一个或多个占位符任务的数量匹配待执行的一个或多个第一任务的数量,如在1242处(例如,712,图7)。

方法1200还可以包括通过将一个或多个第一任务匹配到一个或多个占位符任务来在一个或多个计算资源上调度一个或多个第一任务,如在1244处(例如,412,图4;714,图7)。调度一个或多个第一任务可以包括将一个或多个占位符任务的第二属性设置为等于所述第二属性,如在1246处(例如,851-1,图8b)。

在实施方案中,方法1200还可以包括基于输入、一个或多个第一任务或两者来预测一个或多个第二任务,如在1250处(例如,716,图7,基于中间任务的处理来预测合并任务)。方法1200还可以包括基于网络的拓扑来调度一个或多个第二任务,如在1252处。

方法1200还可以包括至少部分地执行一个或多个第一任务,如在1254处(例如,715,图7)。在实施方案中,执行一个或多个第一任务包括应用时域处理,所述时域处理包括滤波、振幅标准化或相干噪声衰减中的一者或多者,如在1256处。

方法1200还可以包括将一个或多个第一任务的执行结果合并到一个或多个第二任务中,如在1258处(例如,716,图7)。第二任务可以对应于与输入任务对应的单独持续时间中的至少一者,如在1260处(例如,806-1,图8a)。

方法1200还可以包括执行一个或多个第二任务包括以下一者或多者:在非时域中处理,或生成图像来检查数据的质量,如在1264处。

图13a至图13b示出根据实施方案的例如用于使用分布式系统进行计算的另一方法1300。方法1300可以包括生成包括操作环境的容器,1302(例如,1002,图10)。方法1300可以包括将容器发布到容器注册表,如在1304处(例如,916,图9)。方法1300可以包括使用发布到注册表的容器中的一者或多者来生成用于执行的一个或多个模块,如在1308处(例如,1102,图11)。方法1300可以包括将一个或多个模块发布到模块注册表,如在1310处(例如,928,图9)。可以将包括模块中的一者或多者的容器中的一者或多者分配到分布式计算项目上的项目,如在1311处,以执行一个或多个工作流程(例如,936,图9)。

方法1300可以包括接收使用发布到注册表的一个或多个模块生成的一个或多个工作流程,如在1312处(例如,图9,932;图10,1006)。方法1300可以包括在计算节点上执行被发布在注册表中的指挥容器,如在1314处(例如,1008,图10)。方法1300可以包括通过指挥容器的操作来将一个或多个工作者容器实例化,如在1316处(例如,1010,图10)。可以例如基于网络拓扑将工作者容器分配到一个或多个计算节点,如在1318处(例如,1012,图10)。工作者容器可以执行模块,如在1320处(例如,1016,图10)。工作者容器可以将执行的结果提供到指挥容器,如在1322处。

在一些实施方案中,本公开的方法中的任一者可以由计算系统执行。图14示出根据一些实施方案的这种计算系统1400的实例。计算系统1400可以包括计算机或计算机系统1401a,其可以是单独计算机系统1401a或分布式计算机系统的布置。计算机系统1401a包括一个或多个分析模块1402,其被配置成根据一些实施方案来执行各种任务,诸如本文中公开的一种或多种方法。为了执行这些各种任务,分析模块1402独立地执行,或者与一个或多个处理器1404协同执行,所述处理器连接到一个或多个存储介质1406。一个或多个处理器1404也连接到网络接口1407,以允许计算机系统1401a通过数据网络1409与一个或多个另外的计算机系统和/或计算系统(诸如1401b、1401c和/或1401d)通信(注意,计算机系统1401b、1401c和/或1401d可以共享或不共享与计算机系统1401a相同的架构,并且可以位于不同的物理位置,例如,计算机系统1401a和1401b可以位于处理设施中,同时与位于一个或多个数据中心中和/或位于不同大陆上的不同国家的一个或多个计算机系统(诸如1401c和/或1401d)通信)。

处理器可以包括微处理器、微控制器、处理器模块或子系统、可编程集成电路、可编程门阵列或者另一控制或计算装置。

存储介质1406可以被实施为一个或多个计算机可读或机器可读存储介质。注意,尽管在图14的示例实施方案中,存储介质1406被描绘为在计算机系统1401a内,但在一些实施方案中,存储介质1406可以分布在和/或跨计算系统1401a和/或额外的计算系统的多个内部和/或外部机箱。存储介质1406可以包括一个或多个不同形式的存储器,包括半导体存储器装置,诸如动态或静态随机存取存储器(dram或sram)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)和闪存;磁盘,诸如固定磁盘、软盘和可移动磁盘;其他磁介质,包括磁带;光学介质,诸如光盘(cd)或数字视频盘(dvd),盘,或其他类型的光存储;或者其他类型的存储介质。应注意,以上所讨论的指令可以提供在计算机可读或机器可读存储介质上,或者可以提供在分布在具有可能多个节点的大系统中的多个计算机可读或机器可读存储介质上。一个或多个此类计算机可读或机器可读储存介质被视为是物品(或制品)的一部分。物品或制品可以指的是任何制造的单个部件或多个部件。一个或多个存储介质可以位于运行机器可读指令的机器中,或者位于可以通过网络从中下载机器可读指令以供执行的远程位点处。

在一些实施方案中,计算系统1400包含一个或多个调度模块1408。在计算系统1400的实例中,计算机系统1401a包括调度模块1408。在一些实施方案中,单个调度模块可以用于执行方法的一个或多个实施方案的一些或所有方面。在替代实施方案中,多个调度模块可以用于执行方法的一些或所有方面。

应该理解,计算系统1400仅仅是计算系统的一个实例,并且计算系统1400可以具有比所示更多或更少的部件,可以结合未在图14的示例实施方案中描绘的附加部件,和/或计算系统1400可以具有图14中描绘的部件的不同配置或布置。图14中示出的各种部件可以在硬件、软件或者硬件和软件两者的组合中实施,包括一个或多个信号处理和/或专用集成电路。

此外,本文中描述的处理方法中的步骤可以通过在信息处理设备中运行一个或多个功能模块来实施,信息处理设备诸如是通用处理器或专用芯片,诸如asic、fpga、pld或其他适当的装置。这些模块、这些模块的组合和/或它们与通用硬件的组合全都包括在本发明的保护范围内。

地质解译、模型和/或其他解译辅助设备可以以迭代的方式改善;这个概念适用于本文中讨论的方法的实施方案。这可以包括使用在算法基础上(诸如,在计算装置(例如,计算系统1400,图14)处)执行的反馈回路和/或通过由可以做出关于给定步骤、动作、模板、模型或曲线组是否已足以准确地对在考虑中的地下三维地质构造进行评估的确定的用户手动控制的反馈回路。

为了解释的目的,已经参照具体实施方案描述了前述描述。然而,上面的示例性讨论并不意图穷举或将本发明限制为所公开的精确形式。鉴于上述教导,许多更改和变化是可能的。此外,说明和描述方法的元素的顺序可以重新排列,和/或两个或更多个元素可以同时发生。选择并描述所述实施方案,以便更好地解释本发明的原理及其实际应用,以由此使本领域技术人员能够最好地利用本发明和具有适于所预期的具体用途的各种更改的各种实施方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1