当前位置: 首页 > 专利查询>之江实验室专利>正文

一种基于无状态运行时的程序分布式执行方法技术

技术编号:37985111 阅读:7 留言:0更新日期:2023-06-30 09:59
本说明书公开了一种基于无状态运行时的程序分布式执行方法。在本说明书提供的程序分布式执行方法中,获取目标程序,并确定执行所述目标程序时所需要完成的子任务;根据各子任务,确定各子任务的算子集合,其中,一个子任务对应的算子集合中包含了完成该子任务所需的全部算子;针对每个子任务,当接收到执行该子任务的事件时,将该子任务确定为目标子任务;采用预先为所述目标子任务分配的计算节点,采用预先为所述目标子任务分配的计算节点,执行所述目标子任务对应的算子集合,执行过程中所产生的事件触发其他子任务进入预备执行状态,子任务执行完毕进入等待状态,等待下一次触发。发。发。

【技术实现步骤摘要】
一种基于无状态运行时的程序分布式执行方法


[0001]本说明书涉及计算机
,尤其涉及一种基于无状态运行时的程序分布式执行方法。

技术介绍

[0002]目前,分布式计算是一种较为常见的计算方式。分布式计算将一个任务分解为多个子任务,部署到不同的计算节点,共同协作完成任务的计算。其中,分布式计算中存在同步与异步两种不同的计算方式。相比于同步计算,异步计算的方式能够将等待的时间用于执行任务,减少系统在多线程下的开销。
[0003]同时,在执行程序时,还存在有状态计算与无状态计算两种不同的计算方式。有状态计算中,各任务之间存在关联,需要保存额外的数据,也就是对状态进行同步;而无状态计算中没有同步状态的开销,更加适配与分布式计算。
[0004]因此,如何实现程序在异步无状态方式下的运行是一个亟待解决的问题。

技术实现思路

[0005]本说明书提供一种基于无状态运行时的程序分布式执行方法,以至少部分地解决现有技术存在的上述问题。
[0006]本说明书采用下述技术方案:本说明书提供了一种基于无状态运行时的程序分布式执行方法,包括:获取目标程序,并确定执行所述目标程序时所需要完成的子任务;根据各子任务,确定各子任务的算子集合,其中,一个子任务对应的算子集合中包含了完成该子任务所需的全部算子;针对每个子任务,当接收到执行该子任务的事件时,将该子任务确定为目标子任务;采用预先为所述目标子任务分配的计算节点,执行所述目标子任务对应的算子集合,执行过程中所产生的事件触发其他子任务进入预备执行状态,子任务执行完毕进入等待状态,等待下一次触发。
[0007]可选地,根据各子任务,确定各子任务的算子集合,具体包括:针对每个子任务,根据该子任务的输入和输出,确定完成该子任务所需的全部算子,作为该子任务的算子集合。
[0008]可选地,所述算子包括网络服务接口算子、标准输入输出接口算子、文件读写接口算子、数据库接口算子、数据流过滤算子、数据流合并算子、数据流复制算子中的至少一种。
[0009]可选地,采用算子图表示所述算子集合;根据各子任务,确定各子任务的算子集合,具体包括:针对每个子任务,确定完成该子任务所需的全部算子,并以完成该子任务所需的各算子为结点,根据所述各算子的存储路径构建算子图;
针对所述算子图中的每个结点,当该结点有且仅有一个子结点时,将该结点的子结点与该结点合并。
[0010]可选地,在将该子任务确定为目标子任务之前,所述方法还包括:以所述各子任务的算子集合为结点,根据所述各子任务之间的关联关系,构建程序图。
[0011]可选地,针对每个子任务,当接收到执行该子任务的事件时,将该子任务确定为目标子任务,具体包括:针对每个子任务,当接收到执行该子任务的事件时,根据所述程序图,确定该子任务的上游任务;若该子任务的上游任务已被执行,则将该子任务确定为目标子任务;若该子任务的上游任务未被执行,将该子任务的上游任务确定为目标子任务。
[0012]可选地,预先分配计算节点,具体包括:根据分组策略,对各子任务进行分组;根据分组结果,为每组子任务分配不同的计算节点。
[0013]可选地,所述方法还包括:在执行子任务的过程中,当检测到计算资源发生变化时,根据变化后的当前计算资源,重新对未执行的子任务进行分组;根据重新分组的分组结果,重新为每组子任务分配不同的计算节点。
[0014]本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于无状态运行时的程序分布式执行方法。
[0015]本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述基于无状态运行时的程序分布式执行方法。
[0016]本说明书采用的上述至少一个技术方案能够达到以下有益效果:在本说明书提供的程序分布式执行方法中,获取目标程序,并确定执行所述目标程序时所需要完成的子任务;根据各子任务,确定各子任务的算子集合,其中,一个子任务对应的算子集合中包含了完成该子任务所需的全部算子;针对每个子任务,当接收到执行该子任务的事件时,将该子任务确定为目标子任务;采用预先为所述目标子任务分配的计算节点,采用预先为所述目标子任务分配的计算节点,执行所述目标子任务对应的算子集合,执行过程中所产生的事件触发其他子任务进入预备执行状态,子任务执行完毕进入等待状态,等待下一次触发。
[0017]在采用本说明书提供的程序分布式执行方法时,可通过算子集合的形式表征执行程序的过程中需要执行的每个子任务,当接收到子任务需要执行的事件时,执行相应的算子集合来完成子任务的执行。通过分布式计算的形式,异步地在多个计算节点下执行多个子任务,且各子任务可无状态地分别执行,无需保存状态,减少程序执行过程中的数据处理量,加快程序的执行效率。
附图说明
[0018]此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,
本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:图1为本说明书中一种基于无状态运行时的程序分布式执行方法的流程示意图;图2为本说明书中一种基数树形式的算子图的结构示意图;图3为本说明书中一种基于无状态运行时的程序分布式执行方法对应的运行时的结构示意图;图4为本说明书提供的一种程序执行装置的示意图;图5为本说明书提供的对应于图1的电子设备示意图。
具体实施方式
[0019]为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0020]以下结合附图,详细说明本说明书各实施例提供的技术方案。
[0021]图1为本说明书中一种基于无状态运行时的程序分布式执行方法的流程示意图,具体包括以下步骤:S100:获取目标程序,并确定执行所述目标程序时所需要完成的子任务。
[0022]本说明书所提供的程序分布式执行方法中的所有步骤均可由任何具有计算功能的电子设备实现,例如终端、服务器等设备。
[0023]本说明书所提供的程序分布式执行方法旨在多计算节点分布式计算的环境下,以异步无状态的方式执行程序。对于不同程序,在执行时所需要完成的功能都不相同。通常情况下,可将一个程序执行时最终所要实现的功能或达到的目标作为执行该程序时所要完成的任务。在分布式计算中,程序所对应的完整的任务通常会被拆分为多个子任务,并部署到不同的计算节点,由多个计算节点分别处理子任务,协作完成计算。其中,每个子任务所实现的功能各不相同,当全部子任务都完成时,便能够实现程序最终的功能,也就是完成程序的执行。
[0024]基于此,可首先在此步骤中获取需要执行的目本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于无状态运行时的程序分布式执行方法,其特征在于,包括:获取目标程序,并确定执行所述目标程序时所需要完成的子任务;根据各子任务,确定各子任务的算子集合,其中,一个子任务对应的算子集合中包含了完成该子任务所需的全部算子;针对每个子任务,当接收到执行该子任务的事件时,将该子任务确定为目标子任务;采用预先为所述目标子任务分配的计算节点,执行所述目标子任务对应的算子集合,执行过程中所产生的事件触发其他子任务进入预备执行状态,子任务执行完毕进入等待状态,等待下一次触发。2.如权利要求1所述的方法,其特征在于,根据各子任务,确定各子任务的算子集合,具体包括:针对每个子任务,根据该子任务的输入和输出,确定完成该子任务所需的全部算子,作为该子任务的算子集合。3.如权利要求1所述的方法,其特征在于,采用算子图表示所述算子集合;根据各子任务,确定各子任务的算子集合,具体包括:针对每个子任务,确定完成该子任务所需的全部算子,并以完成该子任务所需的各算子为结点,根据所述各算子的存储路径构建算子图;针对所述算子图中的每个结点,当该结点有且仅有一个子结点时,将该结点的子结点与该结点合并。4.如权利要求1所述的方法,其特征在于,所述算子包括网络服务接口算子、标准输入输出接口算子、文件读写接口算子、数据库接口算子、数据流过滤算子、数据流合并算子、数据流复制算子中的至少一种。5.如权利要求1...

【专利技术属性】
技术研发人员:高丰王晓阳孙铭鸽
申请(专利权)人:之江实验室
类型:发明
国别省市:

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

1