一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

动态修改管线中任务的并行性的制作方法

2022-06-01 18:47:14 来源:中国专利 TAG:

动态修改管线中任务的并行性


背景技术:

1.本发明总体上涉及使用管线指令的领域,并且更具体地涉及动态地识别和修改管线中的特定任务的并行性。
2.在计算中,管线是串联连接的数据处理元素的集合,其中一个级的输出是下一级的输入。处理管线在概念上并行执行,其中一个级的输出流被自动馈送为下一级的输入流。例如,linux系统调用管线是该概念的经典示例。
3.由于管线的吞吐量不能比其最慢元素的吞吐量好,因此设计者尝试在各级之间划分工作和资源,使得每个级花费相同的时间量来完成其任务。如果一个级比其他级花费更长时间,则设计者可以提供两个或更多个处理元件来并行地执行该级,其中单个输入缓冲器馈送该级的所有实例,并且单个输出缓冲器接收该级的所有实例的结果。当管线级的每个实例完成其当前数据项的处理时,其将结果递送到该级的公共输出缓冲器,并且从该级的公共输入缓冲器取得下一数据项。
4.当前的技术状态具有局限性。通常,任务(或作业或运行)的分区数和并行度是在执行开始时确定的。已经存在对动态跨越用于关键资源的更多进程的一些研究。问题在于确定多少并行性可以提高性能而不会使成本过高。。例如,排序操作中的并行性可能不是非常有帮助的,而对于一些其他操作,额外的并行性将是有帮助的。注意,延迟常常取决于工作负荷,并且因此常常不能在作业起始时预测最佳配置。目前,没有现有技术来预测或建议针对数据管线的并行性的良好起始配置。在现有技术中,尚未利用机器学习来优化并行性的使用。另一个在现有技术水平中未解决的领域是保证作业的服务质量(qos),因为许多服务水平协议(sla)包括必须满足的qos条款。


技术实现要素:

5.本发明实施例公开了一种动态识别和修改管线中特定任务的并行性的方法、计算机程序产品和系统。在一个实施例中,计算动态管线中的每一级的最佳执行时间。测量动态管线中每一级的实际执行时间。确定数据处理作业的实际完成时间是否会超过阈值。如果确定数据处理作业的实际完成时间会超过阈值,则创建级的附加实例。
6.在一个实施例中,确定是否有足够的资源可用于产生管线级的导致服务质量受到负面影响的一个或多个新实例。响应于确定足够的资源可用于产生管线级的一个或多个新实例,产生管线级的新实例。管线数据被分割成管线级的新实例。
7.在一个实施例中,测量一个或多个管线级的第一一个或多个新实例的吞吐量。确定管线级的新实例的吞吐量是否已经增加。响应于确定管线级的新实例的吞吐量已经增加,产生管线级的附加新实例。
8.在一个实施例中,测量一个或多个管线级的第一一个或多个新实例的吞吐量。确定管线级的新实例的吞吐量是否已经增加。响应于确定管线级的新实例的吞吐量尚未增加,移除管线级的新实例。存储用于数据处理作业的动态管线的当前配置。训练预测数据处理作业的动态管线的行为的决策树模型。
附图说明
9.图1是示出根据本发明的实施例的分布式数据处理环境的功能框图。
10.图2是根据本发明的实施例的管线数据流模型的示例。
11.图3a是根据本发明的实施例的运行中的三级管线的初始配置的示例。
12.图3b是根据本发明的实施例的运行中的三级管线的中间配置的示例。
13.图3c是根据本发明的实施例的运行中的三级管线的另一中间配置的示例。
14.图4是描绘根据本发明实施例的动态管线程序的操作步骤的流程图,该动态管线程序在图1的分布式数据处理环境内的计算设备上用于动态地标识和修改管线中的特定任务的并行性。
15.图5是描绘根据本发明的实施例在图1的分布式数据处理环境内的计算设备上在图4的流程图的步骤416中智能生成附加实例的操作步骤的流程图,以用于动态地标识和修改管线中的特定任务的并行性。
16.图6描绘了根据本发明的实施例的在图1的分布式数据处理环境内执行动态管线程序的计算设备的组件的框图。
具体实施方式
17.管线,也称为数据管线或数据处理管线,是串联连接的一组数据处理操作,其中一个操作的输出是下一操作的输入。管线的元件常常并行或以时间片方式执行。数据处理工作流由若干处理运算组成,其中x级处理x-1级的输出并将其输出传递到x 1级。基于诸如输入负载和sla条款的因素,为特定工作流预定义并行度的量。
18.当前的技术状态具有局限性。通常,任务(或作业或运行)的分区的数量和并行性是在开始执行时决定的。已经有一些关于为关键资源动态跨越更多进程的研究。问题在于确定多少并行性可以提高性能而不会使成本过高。例如,排序操作中的并行性可能不是很有帮助,而对于一些其他操作,额外的并行性会有所帮助。在现有技术中,尚未利用机器学习来优化并行性的使用。
19.在现有技术水平中未解决的另一领域是保证作业的qos,因为许多sla包括必须满足的qos条款。例如,在sla中可能受制于qos条款的常见操作类型是提取、转换、加载(etl)作业,这通常时间紧迫。注意,中间级的性能延迟常常基于工作负载,因此无法在作业开始时预测最佳配置。如果服务花费的时间超过预期限制,则针对中间级动态地重写作业(通过增加或减少并行性)可导致性能增加以满足sla中的qos条款。
20.此外,现有技术没有预测或建议针对数据管线的并行性的良好起始配置。例如,数据质量(数据处理)工作流在作业中查找重复数据所花费的时间比预期的要长。这个额外时间会威胁到sla中的qos条款。不知道提高整个作业的并行性,还是仅仅提高特定级将是否有益。在现有技术水平中,使用多少并行级的决定是在创建作业时,并且不能改变。该解决方案是使用机器学习,由此可以累积过去的运行的细节以预测每个运算(在任务内)的并行量,从而平衡提高的性能和可用资源。基于这些任务的过去运行,可以创建机器学习模型以预测特定操作在放大(更多并行实例被添加到级)或缩小(并行实例被从级移除)时表现如何。基于预测的行为,可以放大或缩小操作中的一些以满足sla中的qos条款。结果,作业或级的并行性被最佳地修改,而不需要如现有技术状态中所要求的重启。在优选实施例中,触
发数据处理工作流,并且系统将基于系统资源的可用性来自动修改每个单独运算的并行性,而不考虑工作流中的其他运算的并行性。
21.图1是示出根据本发明的至少一个实施例的适于动态管线程序112的操作的分布式数据处理环境(一般指定为100)的功能框图。如本文所使用的术语“分布式”描述了包括多个物理上不同的设备的计算机系统,这些设备作为单个计算机系统一起操作。图1仅提供一个实现方式的图示并且不暗示关于其中可以实现不同实施例的环境的任何限制。本领域技术人员可对所描述的环境作出许多修改,而不脱离权利要求书所述的本发明的范围。
22.计算设备110可以是独立的计算设备、管理服务器、web服务器、移动计算设备或能够接收、发送和处理数据的任何其他电子设备或计算系统。在实施例中,计算设备110可以是膝上型计算机、平板计算机、上网本计算机、个人计算机(pc)、台式计算机、个人数字助理(pda)、智能电话、或能够经由网络120与分布式数据处理环境100内的其他计算设备(未示出)进行通信的任何可编程电子设备。在另一实施例中,计算设备110可表示诸如在云计算环境中利用多个计算机作为服务器系统的服务器计算系统。在又一实施例中,计算设备110表示利用当在分布式数据处理环境100内被访问时充当单个无缝资源池的集群计算机和组件(例如,数据库服务器计算机、应用服务器计算机等)的计算系统。
23.在一实施例中,计算设备110包括动态管线程序112。在实施例中,动态管线程序112是用于动态识别和修改分布式基于行的数据库系统中的管线中的特定任务的并行性的较大程序的程序、应用或子程序。在替代实施例中,动态管线程序112可位于可由计算设备110通过网络120访问的任何其他设备上。
24.在一实施例中,计算设备110包括信息存储库114。在一实施例中,信息存储库114可由动态管线程序112管理。在替代实施例中,信息存储库114可由设备的操作系统单独管理,或与动态管线程序112一起管理。信息存储库114是可以存储、收集、比较和/或组合信息的数据存储库。在一些实施例中,信息存储库114位于计算设备110外部并且通过通信网络(如网络120)访问。在一些实施例中,信息库114存储在计算设备110上。在一些实施例中,信息存储库114可以驻留在另一计算设备(未示出)上,只要信息存储库114可由计算设备110访问。信息库114包括但不限于客户端数据、配置数据、数据库数据、机器学习模型、和动态管线程序112从一个或多个源接收的其他数据、和动态管线程序112创建的数据。
25.如本领域中已知的,信息存储库114可以使用用于存储信息的任何易失性或非易失性存储介质来实现。例如,信息存储库114可用磁带库、光学库、一个或多个独立硬盘驱动器、独立磁盘冗余阵列(raid)中的多个硬盘驱动器、固态驱动器(ssd)或随机存取存储器(ram)来实现。类似地,信息存储库114可用本领域已知的任何合适的存储架构来实现,诸如关系数据库、sql数据库、nosql数据库、面向对象的数据库或一个或多个表。
26.图2是根据本发明的实施例的通常指定为200的管线数据流模型的示例。在实施例中,动态管线包含多个级。在图2中所说明的实例中,动态管线包含三个级,仅用于说明。应注意,该图仅为了说明的目的而提供。在不背离本发明的范围和精神的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。
27.图2包括管线210、吞吐量监视器220、资源监视器230、cpu240、ram250和作业执行优化模块260。
28.在图2中所示的实施例中,管线210是示出三个操作级的管线的区段的示例。在所
示实施例中,操作1、操作2和操作3是较长的管线的三个操作级。例如,操作1将从先前管线级接收其输入(除非操作1是管线的第一级),而操作3将向后续管线级发送其输出(除非操作3是管线的最后一级)。在实施例中,在管线中可以存在任何数量的级。
29.在图2中所说明的实施例中,吞吐量监视器220是由动态管线程序112创建的模块的实例,所述动态管线程序112监视管线的级以检测性能瓶颈。下面解释吞吐量监视器220的操作(见图5中的步骤502)。
30.在图2所示的实施例中,资源监视器230是由动态管线程序112创建的模块的示例,所述动态管线程序112监视可用资源,例如cpu240和ram250。资源监视器230的操作将在下面解释(参见图5中的步骤504)。
31.在图2所示的实施例中,cpu240是系统中的样本处理器。在一实施例中,计算设备110可具有任何数量的处理器,管线210的操作中涉及的任何处理器由资源监视器230监视。cpu240是由资源监视器230监视的所有处理器的表示。
32.在图2所示的实施例中,ram 250是系统中的样本存储器。在一实施例中,计算设备110可具有任何数量的ram、或其他形式的存储器,管线210的操作中涉及的ram中的任一者由资源监视器230监视。ram 250是由资源监视器230监视的所有ram或其他形式的存储器的表示。
33.在图2中所说明的实施例中,作业执行优化模块260是由动态管线程序112创建的模块的实例,所述动态管线程序112取得来自吞吐量监视器220的性能瓶颈和来自资源监视器230的资源可用性数据的输出,且对管线中的每一操作添加或减去并行级以使性能最大化且满足qos要求。下面解释资源监视器230的操作(例如,图5的所有步骤由作业执行优化模块260控制)。
34.图3a至3c示出了根据本发明实施例的动态管线程序112为了最大化性能并满足qos要求(一般指定为300)所采取的步骤的实例。
35.图3a是每级具有单个任务的三级管线的初始配置的示例。
36.在图3b中,动态管线程序112已检测到2级处的管线的减慢,并且因此已将第二实例添加到2级,现在被标记为管线2a级和管线2b级。在实施例中,在正常数据管线执行期间,作业执行优化模块260基于来自吞吐量监视器220的输入确定管线2级在其处理中滞后。作业执行优化模块260用资源监视器230检查以确定是否有足够的系统资源可用于支持管线2级的附加实例。如果是,则作业执行优化模块260创建2级的附加实例(在该示例中为管线2b级)。
37.级2的新实例被注册以允许管线级1将其输出发送到管线级2a和管线级2b两者。在实施例中,动态管线程序112使用算法来将1级的输出分区,以将来自1级的记录基本上等同地分配到2级的不同实例。例如,在一实施例中,动态管线程序112可使用散列来将管线1级的结果分配到管线2a级和管线2b级两者。哈希分割计算行的哈希值(整数),并且计算所计算的哈希值与行数的模以确定应该处理该记录的分区数。哈希值以随机分布的方式计算,从而确保每个分区接收大约相同量的记录。在另一示例中,动态管线程序112可以使用循环算法,其中第一行被发布至分区1,第二行被发布至分区2,

n 1行被发布至分区1,等等。在另一实施例中,动态管线程序112可使用对所属领域的技术人员将显而易见的任何其他合适的算法来将来自管线1级的输出分配到管线2级的两个实例(即,2a级和2b级)。
38.新实例(管线2b级)开始从管线1级获得数据片,这降低了管线2a级上的处理负荷。如果吞吐量增加,则这指示添加管线2级的新实例是正确的选择。如果需要更高的性能,则作业执行优化模块260创建管线2级的附加的新实例以便随着处理负载调整性能。基于管线的改进性能,此配置被存储为用于此特定管线的下一执行的良好开始点。
39.基于以上图3b中收集的数据,动态管线程序112训练决策树模型以基于运算类型、吞吐量、输入运算或输出运算(其在以上图3b中被捕获)中的任一者来预测运算的行为。根据该训练,动态管线程序112基于这些参数来预测哪些运算将受益于放大或缩小。因此,不是随机选择,而是放大或缩小预测将基于所创建的模型。
40.图3c进一步展示了以上图3b的示例。在图3c中,动态管线程序112已检测到3级处的管线中的减速,且因此已将第二实例添加到3级,现在标记为管线3a级和管线3b级。此外,动态管线程序112已检测到2级处的管线现在超过管线1级和管线3级的吞吐量,并且因此动态管线程序112已移除管线2级的第二实例以为其他任务释放资源。在另一实例中,动态管线程序112已基于来自资源监视器230的输入确定系统需要更多资源用于其他任务,且因此动态管线程序112已移除管线2级的第二实例以释放资源用于其他任务。
41.图4是根据本发明的至少一个实施例的工作流400的流程图,描绘了动态管线程序112的操作步骤,用于在分布式的基于行的数据库系统(例如,sql、nosql或任何基于行的源)中无缝地迁移数据和索引,其中可以并行分区和处理数据。在替代实施例中,工作流400的步骤可由任何其他程序在与动态管线程序112一起工作时执行。在一实施例中,动态管线程序112初始化动态管线。在实施例中,动态管线程序112记录每个中间级的吞吐量。在实施例中,动态管线程序112构建模型以预测每个中间级的完成时间。在一实施例中,动态管线程序112标识离群数据点。在实施例中,动态管线程序112确定qos是否将受影响。在实施例中,动态管线程序112创建决策树。在实施例中,动态管线程序112预测将受益于产生附加实例的运算和并行度的组合。在实施例中,动态管线程序112使用额外实例的智能生成。在实施例中,动态管线程序112使用机器学习决策树模型来预测附加实例的最佳配置。
42.应当理解,本发明的实施例提供至少用于动态识别和修改管线中的特定任务的并行性。然而,图4仅提供一个实现方式的图示并且不暗示关于其中可以实现不同实施例的环境的任何限制。本领域技术人员可对所描述的环境作出许多修改,而不脱离权利要求书所述的本发明的范围。
43.动态管线程序112初始化动态管线(步骤402)。在步骤402,动态管线程序112创建作业执行优化模块260、吞吐量监视器220和资源监视器230以启动动态管线优化。作业执行优化模块260基于来自吞吐量监视器220和资源监视器230的输入来执行管线级的实际加法和减法以优化吞吐量。吞吐量监视器220连续地测量管线中的每一级的吞吐量,并将该状态发送给作业执行优化模块260。资源监视器230连续地监视管线的操作所需的每一资源的状态,且将所述状态发送到作业执行优化模块260。
44.动态管线程序112记录每个中间阶段的吞吐量(步骤404)。在步骤404,动态管线程序112基于来自吞吐量监视器220的输入使用作业执行优化模块260来记录管线中的每个操作级的吞吐量。
45.动态管线程序112建立模型以预测完成时间(步骤406)。在实施例中,动态管线程序112使用机器学习算法来预测每个管线级的预期完成时间,并且在给定每个级的实际吞
吐量、级的类型以及自从作业开始以来的实际吞吐量的情况下计算整个作业的完成时间。在实施例中,该算法是简单的线性回归模型。在另一实施例中,该算法是深度学习算法。在另一实施例中,动态管线程序112可使用对本领域的技术人员显而易见的任何其他合适的模型来基于每个管线级的或作业的特性来预测作业完成的预期时间。
46.动态管线程序112标识离群数据点(步骤408)。在步骤408中,动态管线程序112识别其中预测的实际执行时间不同于预期执行时间或不同于最小理论可能执行时间的级。在实施例中,动态管线程序112使用模型来计算在理想条件下(即,如果向其输入提供数据的运算的吞吐量是无限的)可实现的每个级的最佳执行时间。在实施例中,这些模型可以是机器学习模型(例如,其他回归模型)。在另一个实施例中,这些模型可以是更简单的统计公式。在又一实施例中,这些模型可以是对本领域技术人员显而易见的任何其他适当的模型,以识别预测的实际执行时间不同于预期执行时间或者不同于最小理论可能执行时间的级。
47.在实施例中,动态管线程序112使用所计算的每一级的预测的完成时间与该级在理想条件下运行之间的间隙来标识离群数据点。在一实施例中,如果动态管线程序112确定级(且因此作业)的实际执行时间与同一级(且因此作业)的理想条件下的预期执行时间之间的差超过阈值,则检测到离群数据点。在实施例中,阈值是系统默认值。在另一实施例中,阈值可以由动态管线程序112的用户设置。
48.动态管线程序112确定qos将受影响吗?在步骤410,如果动态管线程序112确定qos将受影响,则动态管线程序112使用中间运算运算的智能生成来维持qos。智能派生过程在步骤412开始。如果qos将不受影响,则动态管线程序112结束。
49.动态管线程序112标识引起瓶颈的级(步骤412)。在步骤412,如果动态管线程序112确定qos将受影响,则动态管线程序112确定该级中的哪个或哪些运算应在多个实例中被生成以改善性能。
50.在实施例中,动态管线程序112通过使用简单的试探法来确定哪个级引起瓶颈,该试探法假定流中在预测执行时间与预期执行时间之间具有显著差异的第一级或其之前的级是最可能的瓶颈。在另一实施例中,动态管线程序112通过标识其中来自该级的输出小于到该级的输入的管线级来确定哪个级正在引起瓶颈。在又一实施例中,动态管线程序112使用更高级的算法,使用从类似作业的过去执行历史训练的机器学习模型来给出更准确的预测。
51.动态管线程序112预测运算和并行度的组合(步骤414)。在步骤414处,动态管线程序112预测需要引入的并行度的量。在一实施例中,作业执行优化模块260使用步骤412的输出来预测运算和期望并行性的哪个组合可导致最优管线配置以满足qos要求。基于决策树的预测,作业执行优化模块260智能地生成或移除管线中的运算的新实例。在实施例中,动态管线程序112从输入与输出比预测需要引入的并行度的量。在另一实施例中,动态管线程序112从类似管线作业的过去历史预测需要引入的并行性的量。在实施例中,从在步骤416和步骤518两者中连续地重新训练的机器学习模型确定过去的历史。
52.动态管线程序112使用额外实例的智能生成(步骤416)。在步骤416,动态管线程序112使用在步骤414中识别的级上的额外实例的智能生成。在一实施例中,动态管线程序112使用机器学习决策树模型来确定要生成的运算的候选。在步骤406中创建这些决策树模型,并且在这个步骤和下面的步骤518中更新这些决策树模型。如果动态管线程序112确定增加
级的并行度增加了吞吐量,则动态管线程序112将结果反馈给机器学习决策树模型。以规则的间隔,动态管线程序112重新训练具有来自步骤416和步骤518两者的最新历史结果的那些模型。
53.下面在图5中解释其他实例的智能生成的详细信息。
54.图5是描述根据本发明的至少一个实施例的用于智能生成附加实例的动态管线程序112的操作步骤的工作流500的流程图。在替代实施例中,工作流500的步骤可由任何其他程序在与动态管线程序112一起工作时执行。在实施例中,动态管线程序112标识限制操作级x。在实施例中,动态管线程序112确定是否有足够的资源可用。在实施例中,动态管线程序112产生新的级x实例。在实施例中,动态管线程序112将数据分区到新的级x实例。在实施例中,动态管线程序112测量吞吐量。在实施例中,动态管线程序112确定吞吐量是否已增加。在实施例中,如果吞吐量已经增加,则动态管线程序112产生附加的新级x实例。在一实施例中,如果吞吐量尚未增加,则动态管线程序112移除新级x实例。在实施例中,动态管线程序112存储当前配置。在实施例中,动态管线程序112训练决策树模型。
55.应当理解,本发明的实施例提供至少用于动态识别和修改管线中的特定任务的并行性。然而,图5仅提供一个实现方式的图示并且不暗示关于其中可以实现不同实施例的环境的任何限制。本领域技术人员可对所描述的环境作出许多修改,而不脱离权利要求书所述的本发明的范围。
56.动态管线程序112识别限制操作级x(步骤502)。在步骤502,动态管线程序112确定级x在处理中滞后。在实施例中,动态管线程序112基于来自吞吐量监视器220的输入确定级x在使用作业执行优化模块260的处理中滞后。
57.动态管线程序112确定是否有足够的资源可用(步骤504)。在步骤504,动态管线程序112确定是否有足够的资源可用于产生级x的新实例。在实施例中,动态管线程序112基于来自资源监视器230的输入使用作业执行优化模块260确定是否有足够的资源可用。如果动态管线程序112确定足够的资源可用于产生级x的新实例,那么动态管线程序112继续到步骤506。如果动态管线程序112确定没有足够的资源可用于产生级x的新实例,则动态管线程序112返回到图4中的流程。在实施例中,足够的资源包括处理器资源。在另一实施例中,足够的资源可用存储器资源。在又一实施例中,足够的资源包括创建和管理动态管线可能需要的计算机资源的任何组合。
58.动态管线程序112产生新的级x实例(步骤506)。在步骤506处,动态管线程序112产生级x的一个或一个以上新实例(按比例放大)。在一实施例中,动态管线程序112使用作业执行优化模块260来将级x的一个或多个新实例添加到管线的中间级。在实施例中,动态管线程序112创建的级x的新实例的数量基于在步骤414中执行的性能计算。
59.动态管线程序112将数据分区到新级x(步骤508)。在步骤508中,动态管线程序112将来自级x-1的数据分割到级x的新实例。在一实施例中,动态管线程序112使用作业执行优化模块260来将数据从级x-1分区到级x的新实例以增加中间级的并行性。在以上图3b下描述了将数据分区至新级x。
60.动态管线程序112测量吞吐量(步骤510)。在步骤510处,动态管线程序112测量总管线的吞吐量以确定级x的新实例是否已增加吞吐量。在一实施例中,动态管线程序112基于来自吞吐量监视器220的输入使用作业执行优化模块260来确定管线的吞吐量是否已增
加。
61.动态管线程序112确定吞吐量是否增加(步骤512)。在步骤512,动态管线程序112确定管线的总吞吐量是否已增加。在一实施例中,动态管线程序112基于来自吞吐量监视器220的输入使用作业执行优化模块260来确定管线的吞吐量是否已增加。如果动态管线程序112确定管线的总吞吐量已增加,那么动态管线程序112返回步骤502以通过将额外并行运算添加到级来确定额外性能改进是否可能。如果动态管线程序112确定管线的总吞吐量尚未增加,那么动态管线程序112继续到步骤514。
62.动态管线程序112移除新级x实例(步骤514)。在步骤514处,如果动态管线程序112确定管线的总吞吐量尚未增加,那么动态管线程序112移除级x的新实例(按比例缩小)以释放资源。在一实施例中,动态管线程序112使用作业执行优化模块260来移除级x的新实例以释放资源。
63.动态管线程序112存储当前配置(步骤516)。在步骤516,由于吞吐量已经增加,动态管线程序112存储动态管线的当前配置以用作该管线的下一运行的可能起始点。
64.动态管线程序112训练决策树模型(步骤518)。在步骤518,基于来自上面的数据,动态管线程序112训练模型以基于如从先前步骤捕捉的运算类型、吞吐量、输入运算、输出运算来预测运算的行为。基于在该训练期间收集的这些参数,动态管线程序112预测哪些运算将受益于放大或缩小。在实施例中,动态管线程序112使用决策树模型来预测数据处理作业的动态管线的行为。因此,将来的放大或缩小预测将基于所创建的模型,而不是随机选择。动态管线程序112随后返回到图4。
65.图6是描绘根据本发明的至少一个实施例的适用于动态管线程序112的计算设备110的组件的框图。图6显示了计算机600、一个或多个处理器604(包括一个或多个计算机处理器)、通信结构602、包括随机存取存储器(ram)616和高速缓存618的存储器606、永久性存储器608、通信单元612、i/o接口614、显示器622和外部设备620。应当理解,图6仅提供了一个实施例的图示并且不暗示关于其中可以实现不同实施例的环境的任何限制。可以对所描绘的环境做出许多修改。
66.如所描述的,计算机600在通信结构602上操作,通信结构602提供计算机处理器604、存储器606、永久性存储器608、通信单元612和输入/输出(i/o)接口614之间的通信。通信结构602可以利用适于在处理器604(例如,微处理器、通信处理器和网络处理器)、存储器606、外部设备620和系统内的任何其他硬件组件之间传递数据或控制信息的架构来实现。例如,通信结构602可以利用一个或多个总线来实现。
67.存储器606和永久性存储器608是计算机可读存储介质。在所描绘的实施例中,存储器606包括ram616和高速缓存618。通常,存储器606可以包括任何合适的易失性或非易失性计算机可读存储介质。高速缓冲存储器618是快速存储器,其通过保持来自ram616的最近存取数据和近期存取数据来增强处理器604的性能。
68.用于动态管线程序112的程序指令可存储在永久存储装置608中,或更一般地,存储在任何计算机可读存储介质中,用于由相应计算机处理器604中的一个或多个经由存储器606的一个或多个存储器执行。永久性存储器608可以是磁性硬盘驱动器、固态盘驱动器、半导体存储设备、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、闪存、或能够存储程序指令或数字信息的任何其他计算机可读存储介质。
69.永久性存储器608使用的介质也可以是可移动的。例如,可移动硬盘驱动器可以用于永久性存储器608。其他示例包括光盘和磁盘、拇指驱动器和智能卡,它们被插入到驱动器中以便转移到另计算机可读存储介质(其也是永久性存储器608的一部分)上。
70.在这些示例中,通信单元612提供与其他数据处理系统或设备的通信。在这些示例中,通信单元612包括一个或多个网络接口卡。通信单元612可以通过使用物理和/或无线通信链路提供通信。在本发明的一些实施例中,不同输入数据的源可以在物理上远离计算机600,使得可以经由通信单元612接收输入数据,并且类似地发送输出。
71.i/o接口614允许与可连接到计算机600的其他设备进行数据的输入和输出。例如,i/o接口614可提供至外部设备620(诸如键盘、小键盘、触摸屏、麦克风、数码相机和/或一些其他合适的输入设备)的连接。外部设备620还可包括便携式计算机可读存储介质,诸如例如拇指驱动器、便携式光盘或磁盘、以及存储卡。用于实施本发明的实施例的软件和数据(例如,动态管线程序112)可存储在这种便携式计算机可读存储介质上并且可经由i/o接口614加载到永久性存储器608上。i/o接口614还连接到显示器622。
72.显示器622提供向用户显示数据的机制,并且可以是例如计算机监视器。显示器622还可用作触摸屏,诸如平板计算机的显示器。
73.在此描述的程序是基于应用在本发明的具体实施例中实施的来识别的。然而,应当理解,本文中的任何特定程序术语仅为了方便而使用,并且因此本发明不应局限于仅在由这样的术语标识和/或暗示的任何特定应用中使用。
74.本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
75.计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的任何有形设备。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式紧凑盘只读存储器(cd-rom)、数字通用盘(dvd)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输媒体传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
76.本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
77.用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种程
序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如smalltalk、c 等)、以及常规的过程式程序设计语言(诸如“c”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(lan)或广域网(wan))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
78.下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
79.这些计算机可读程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得通计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
80.也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个方框中规定的功能/动作。
81.附图中的流程图和框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个方框可表示包括用于实现指定的逻辑功能的一个或多个可执行指令的模块、片段或指令的一部分。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个块实际上可以基本上同时执行,或者这些块有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
82.已经出于说明的目的呈现了本发明的各种实施方式的描述,但并不旨在是详尽的或者限于所公开的实施方式。在不背离本发明的范围和精神的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。在此所使用的术语被选择来最好地解释实施例的原理、实际应用、或优于市场中所发现的技术的技术改进、或使得本领域普通技术人员能够理解在此所披露的实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献