高度并发处理任务的记录和执行制造技术

技术编号:9798411 阅读:82 留言:0更新日期:2014-03-22 12:49
一种依赖性数据结构描绘了处理任务。该依赖性数据结构包括多个部件,每个部件都封装代码单元。该依赖性数据结构可以包括针对部件间依赖性的依赖性弧线。并不被该依赖性数据结构内的部件所满足的依赖性可以被表示为伪部件。执行环境使用该依赖性数据结构和/或并发性状态元数据识别出能够执行(例如,具有满意依赖性)的部件。该执行环境能够识别并采用处理任务中的并发性,允许多个部件并行地执行。

【技术实现步骤摘要】
【国外来华专利技术】高度并发处理任务的记录和执行
本公开涉及并发处理并且,具体涉及高度并发处理任务的记录和执行。【附图说明】图1描绘了依赖性数据结构的一个示例;图2描绘了依赖性数据结构的另一个示例;图3描绘了依赖性数据结构的另一个示例;图4描绘了依赖性数据结构的另一个示例;图5A描绘了依赖性数据结构的另一个示例;图5B描绘了依赖性数据结构和并发性状态元数据的示例;图5C描绘了依赖性数据结构和并发性状态元数据的另一个示例;图6A描绘了从其提取子图形的依赖性数据结构;图6B描绘了子图形的示例;图6C描绘了包括伪部件的子图形的示例;图6D描绘了具有输入参数依赖性的子图形的示例;图6E描绘了被配置为产生输出的子图形的示例;图6F描绘了依赖性数据结构内的子图形的示例;图7描绘了依赖性数据结构;图8是用于并发处理的方法的一个实施例的流程图;图9是用于并发处理的另一种方法的一个实施例的流程图;和图10是用于并发处理的系统的框图。【具体实施方式】许多处理任务包括未被加以利用的并发性。如这里所使用的,“并发性”是指能够同时或并行进行操作的两个或更多的处理任务(例如,期间没有相互依赖性)。研发人员可能由于潜在并发性的利用中所涉及的困难而并未对它们充分加以利用。通常,研发人员在设计时必须事先识别出并发性、创建定制代码(例如,多线程和/或线程间通信)等等,这导致了高成本并且向所产生的系统引入了潜在的问题。因此,需要一种用于记录处理并发性的系统且有效的方法以及一种被配置为有效利用那些并发性的执行管理器。在一些实施例中,处理任务被安排为独立的“代码单元”。如这里所使用的,“代码单元”或“代码的单元”是指逻辑上有所不同的机器可执行指令的集合。代码单元可以是较大处理任务的一部分或部件。代码单元可以在非瞬时的机器可读存储介质上实现,诸如硬盘、非易失性存储、光学存储介质等。代码单元可以从非瞬时存储介质中进行加载以便由诸如通用处理器、应用特定集成电路(ASIC)、现场可编程门阵列(FPGA)等的计算设备来执行。在代码单元之间可能存在着依赖性;例如,第一代码单元的输出可能是第二代码单元的所需输入。这些依赖性可以记录在依赖性数据结构中。如这里所使用的,依赖性数据结构是指在其中记录有代码单元间的依赖性的数据结构。依赖性数据结构可以被实施为图形,诸如有向无环图(DAG)、树、数组或任意适当的数据结构。代码单元可以被代表为该数据结构内的“部件”。如这里所使用的,部件是依赖性数据结构中封装代码单元并且允许其调用的节点。代码单元之间的依赖性可以被描绘成该数据结构中的部件之间的连接。如这里所使用的,当第一代码单元的输出被用来形成另一代码单元的所需输入时出现依赖性。在该数据结构中,“依赖部件”是指需要另一部件的输出的部件。相反地,“独立”代码单元是指并不需要另一部件的输出的代码单元。部件间的依赖性可以被描绘成部件之间的连接(例如,弧线)。在一些实施例中,执行管理器实施依赖性数据结构所定义的处理任务。执行管理器使用依赖性数据结构而识别出能够执行的部件(例如,识别出其依赖性得以被满足的部件)。在一些情况下,代码单元可以具有由“外部”实体(例如,执行管理器以外的实体)所满足的依赖性。例如,部件可以依赖于单独I/o处理系统的输出、远程处理任务的输出等。外部实体可以在依赖性数据结构中被描绘成“伪部件”。如这里所使用的,伪部件代表依赖性数据结构之外的能够被该数据结构内的另一部件(或执行管理器)所满足的依赖性。相反地,对依赖性数据结构的其它部件(例如,数据结构的“内部部件”)的依赖性可以通过执行管理器执行与该部件相关联的代码单元而被解决。如这里所使用的,“明确伪部件”是指被研发人员或其它实体明确添加至依赖性数据结构的伪部件。“隐含伪部件”是指在某型情况下,例如当该部件被指定为子图形(以下进行讨论)的入口部件时,被自动添加至依赖性数据结构(或者替代依赖性数据结构中的存在的部件)的伪部件。图1描绘了依赖性数据结构100的一个示例。数据结构100可以在诸如硬盘、非易失性存储器、光学存储介质等的非瞬时的机器可读存储介质上实施。数据结构100也可以在诸如互联网协议(IP)网络、无线网络等的通信网络上进行通信。在图1的示例中,数据结构100包括DAG;然而,本公开并不局限于此并且可以适于使用任意适当的数据结构。数据结构100包括独立部件110,其代表不依赖于数据结构100中的其它代码单元的代码单元。依赖部件112依赖于部件110的输出。该依赖性被描绘为部件110和部件112之间的依赖性弧线111。依赖性弧线111的“方向”表示部件110的输出是部件112的所需输入。依赖性弧线111的“方向”表示部件112的代码单元不会被执行直至部件110产生了所需输出。弧线111可以包括描述该依赖性的元数据,诸如名称、数据类型、接口定义(例如,应用编程接口(API)、回叫记录等)、依赖性的“方向”,等等。图2描绘了依赖性数据结构200的另一个示例,其中多个依赖部件212和214需要独立部件210的输出。这些依赖性由部件210以及部件212和214之间的依赖性弧线211所代表。如以上所描述的,弧线211可以包括与该依赖性的属性相关的元数据。在图3所描绘的另一个示例中,依赖性数据结构包括依赖于多个部件(部件322和324)的输出的部件320。这些依赖性由相应的依赖性弧线321和323所代表。图4描绘了包括伪部件(例如,外部依赖性)的依赖性数据结构400的示例。在图4的示例中,部件430依赖于外部的伪部件432的输出(由依赖性弧线431所代表)以及“非伪”部件434的输出(由依赖性弧线433所代表)。如以下所描述的,依赖性431可能无法由依赖性数据结构400的执行管理器所解决。相反地,依赖性433可以被执行部件434的代码单元以生成部件430所需的一个或多个输出的执行管理器所解决。这里所公开的依赖性数据结果可以包括多个不同的“代(generation)”。如这里所使用,“代”是指部件之间的依赖性弧线的数量。第一代可以包括没有内部依赖性的独立部件。第二代可以包括依赖于来自第一代的输出的部件,等等。图5A描绘了包括多个不同代的依赖性数据结构500。在图5A的示例中,数据结构500包括独立部件502、504和506,其可以包括数据结构500的“第一代”501。部件506代表伪部件。独立部件的“第二代”(部件510、512和514)需要由第一代中的部件(部件502和/或504)生成的输出。部件512依赖于502和504两者的输出。部件的“第三代”521 (包括部件520、522、524、526和528)需要由“第二代”中的部件所产生的输出。然而,依赖性可以跨越多个代。如图5A中所描绘的,部件524需要由处于“第二代”中的部件510所产生的输出以及由处于“第一代”中的部件502所生成的输出。因此,虽然在描述多级别依赖性数据结构时参考“代”可能是方便的,但是数据结构500中的部件之间的实际依赖性和/或与部件相关联的代码单元的并发执行并不局限于相邻的代。依赖性数据结构500以(“第四代”531中的)一个或多个“输出”部件530和532“终止”。如这里所使用的,“输出”部件是指依赖性数据结构中产生不被该数据结构中本文档来自技高网...

【技术保护点】
一种用于高度并发处理的计算机实施的方法,包括:执行以下步骤的计算机设备:访问依赖性数据结构,所述依赖性数据结构包括:多个部件,每个部件都代表相应代码单元,和连接所述部件的多条依赖性弧线,每条依赖性弧线都代表为了执行所述依赖性数据结构中的相对应的部件所要满足的依赖性,保管并发性状态元数据以指示出得到满足的部件依赖性,基于所述依赖性数据结构的所述并发性状态元数据识别所述依赖性数据结构中可用于执行的部件,以及并发地执行所识别的部件。

【技术特征摘要】
【国外来华专利技术】2011.05.13 US 13/107,6341.一种用于高度并发处理的计算机实施的方法,包括: 执行以下步骤的计算机设备: 访问依赖性数据结构,所述依赖性数据结构包括: 多个部件,每个部件都代表相应代码单元,和连接所述部件的多条依赖性弧线,每条依赖性弧线都代表为了执行所述依赖性数据结构中的相对应的部件所要满足的依赖性, 保管并发性状态元数据以指示出得到满足的部件依赖性, 基于所述依赖性数据结构的所述并发性状态元数据识别所述依赖性数据结构中可用于执行的部件,以及 并发地执行所识别的部件。2.根据权利要求1所述的方法,进一步包括,响应于执行所识别的部件而更新所述并发性状态元数据。3.根据权利要求2所述的方法,其中,更新所述并发性状态元数据包括高速缓存通过执行所述依赖性数据结构的部件所生成的输出。4.根据权利要求1所述的方法,进一步包括,在接收到来自所述依赖性数据结构以外的外部输入后更新所述并发性状态元数据,其中,所述外部输入不是通过执行所述依赖性数据结构的部件而生成的。5.根据权利要求1所述的方法,其中,当部件的所有依赖性都满足时所述部件可用于执行。6.根据权利要求1所述的方法,进一步包括: 响应于执行所识别部件而更新所述并发性状态元数据;以及 响应于所述更新,识别能够被用于执行的所述依赖性数据结构的部件并且执行所识别的部件直至所述依赖性数据结构中的每个部件都已经被执行。7.根据权利要求1所述的方法,进一步包括: 响应于执行所识别部件更新所述并发性状态元数据;以及 响应于所述更新,识别能够被用于执行的所述依赖性数据结构的部件并且执行所识别的部件直至生成了所述依赖性数据结构的输出结果。8.根据权利要求1所述的方法,其中,所述依赖性数据结构的执行生成输出结果,所述方法进一步包括如下之一:在人机界面设备上向用户显示输出结果、在网络上传送所述输出结果、以及在非瞬时计算机可读存储介质上存储所述输出结果。9.根据权利要求1所述的方法,其中,使用执行平台执行所识别的部件,并且其中,所述执行平台是如下之一:虚拟机、线程、进程、脚本解释器、本地执行平台和仿真执行平台。10.根据权利要求1所述的方法,进一步包括: 将处理任务的多个步骤封装至多个部件之中,每个部件包括相应代码单元以实施以下多个处理任务步骤之一; 识别部件依赖性,每个部件依赖性都代表为了执行所述部件中相应的一个所要满足的依赖性;以及 定义依赖性数据结构,所述依赖性数据结构包括: 所述多个部件,和 对所述部件进行互连的依赖性弧线,每条依赖性弧线都代表相应的所识别出的部件依赖性。11.根据权利要求10所述的方法,其中,所识别的部件依赖性之一是没有被多个部件中的任何部件所满足的外部部件依赖性,所述方法进一步包括在所述依赖性数据结构中包括伪部件以代表所述外部依赖性。12.—种非瞬时机器可读存储介质,包括使得机器执行一种用于高度并发处理的方法的指令,所述方法包括: 访问依赖性数据结构,所述依赖性数据结构包括: 多个部件,每个部件都代表相应的可执行代码单元,和连接所述部件的多条依赖性弧线,每条依赖性弧线都代表为了执行所述依赖性数据结构中的相对应的部件所要满足的依赖性, 保管并发性状态元数据以指示出得到满足的部件依赖性, 基于所述依赖性数据结构的所述并发...

【专利技术属性】
技术研发人员:杰里米·D·马丁
申请(专利权)人:益焦com有限公司
类型:
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1