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

一种基于多集群网络的任务调度方法及系统与流程

2022-03-26 10:13:26 来源:中国专利 TAG:


1.本技术涉及任通信技术领域,具体而言,涉及一种基于多集群网络的任务调度方法及系统。


背景技术:

2.在传统的任务调度系统中,大部分都没有提供任务依赖功能,或者即使提供了任务依赖功能,在实现各任务时,如何高效地利用多个集群上的资源仍没有合理的解决方案。


技术实现要素:

3.本技术实施例的目的在于提供一种基于多集群网络的任务调度方法及系统,用以解决现有多集群网络的任务调度系统中无法高效地利用多个集群上的资源的问题。
4.本技术实施例提供了一种基于多集群网络的任务调度方法,包括:工作流服务器接收工作流调度请求;所述工作流服务器根据所述工作流调度请求确定需要执行的任务之间的依赖关系和各所述任务的任务信息,并根据所述依赖关系向全局调度器依次发送各所述任务的任务信息;所述任务信息中包括执行所述任务所需资源的资源需求信息;全局调度器根据各所述任务的任务信息以及多集群网络中各集群的资源情况,将各所述任务分发到可满足各自资源需求的集群的本地调度器中;各所述本地调度器将接收到的各所述任务分发至各自对应的节点上执行。
5.在上述实现过程中,工作流服务器根据任务之间依赖关系向全局调度器依次发送各任务的任务信息,以保证每一个任务都能按顺序依次执行,由于全局调度器根据各任务的任务信息以及多集群网络中各集群的资源情况,将各任务分发到可满足各自资源需求的集群的本地调度器中调度执行,可以高效地利用各集群上的资源,尽可能保证每一个集群上分发的任务都能被执行,提升了通信资源的利用率。
6.进一步地,所述根据所述依赖关系向全局调度器依次发送各所述任务的任务信息,包括:针对每一所述任务,当确定该任务满足预设的任务依赖条件中的一种时,再将该任务的任务信息发送给所述全局调度器;所述预设的任务依赖条件包括:条件一:该任务不存在依赖任务;条件二:该任务的依赖任务执行完毕。
7.在上述实现过程中,针对每一任务,当确定该任务不存在依赖任务,或该任务的依赖任务执行完毕后,再将该任务的任务信息发送给全局调度器,保证发送给全局调度器的任务可以被有效执行,减少执行各任务之间的等待时间,提升了任务执行的效率。
8.进一步地,所述多集群网络为多集群算力网络,所述任务为计算任务。
9.在上述实现过程中,支持多集群算力网络中的工作流调度,使得复杂的大规模、跨集群的计算任务可以方便的完成。
10.进一步地,每一所述任务的资源需求信息还包括:执行所述任务所需数据的数据存储地址信息。
11.进一步地,每一所述任务的任务信息还包括:任务执行结果的执行结果存储地址信息;各所述本地调度器中的各所述节点用于根据所述执行结果存储地址信息将任务执行结果存储在对应的位置上。
12.进一步地,所述全局调度器根据各所述任务的任务信息以及多集群网络中各集群的资源情况,将各所述任务分发到可满足各自资源需求的集群的本地调度器中,包括:所述全局调度器根据接收到的各所述任务对应的数据存储地址信息确定执行各所述任务所需的数据所在的目标集群;在判定某一所述任务对应的所述目标集群的资源情况满足该任务的资源需求时,将该任务分发到该目标集群的本地调度器中。
13.进一步地,所述数据存储地址信息为地址索引信息,所述全局调度器根据接收到的各所述任务对应的数据存储地址信息确定执行各所述任务所需的数据所在的目标集群,包括:所述全局调度器根据接收到的各所述任务对应的地址索引信息从分布式数据库中查询各所述地址索引信息对应的目标集群;所述分布式数据库中存储有各数据的地址索引信息与存储该数据的集群的对应关系。
14.在上述实现过程中,通过在分布式数据库中建立数据地址索引和该数据所在的集群的对应关系来满足多集群网络对数据的存储和使用需求。
15.进一步地,所述方法还包括:在判定某一所述任务对应的目标集群的资源情况不满足该任务的资源需求时,将该任务分发到该任务的最优候选集群的本地调度器中;该任务的最优候选集群为所述多集群网络中与该任务的目标集群的数据传输速率最快、且其资源情况满足该任务的资源需求的集群。
16.在上述实现过程中,将任务分配到最优候选集群,以优化数据访问的代价。
17.进一步地,所述方法还包括:各所述节点从公共镜像仓库中拉取镜像,根据所述镜像执行接收到的所述任务,各所述集群通过所述公共镜像仓库中的镜像共享任务执行算法。
18.本技术实施例还提供了一种基于多集群网络的任务调度系统,包括:工作流服务器,用于接收工作流调度请求,根据所述工作流调度请求确定需要执行的任务之间的依赖关系和各所述任务的任务信息,并根据所述依赖关系向全局调度器依次发送各所述任务的任务信息;所述任务信息中包括执行所述任务所需资源的资源需求信息;全局调度器,用于根据各所述任务的任务信息以及多集群网络中各集群的资源情况,将各所述任务分发到可满足各自资源需求的集群的本地调度器中;本地调度器,用于将接收到的各所述任务分发至各自对应的节点上执行。
附图说明
19.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使
用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
20.图1为本技术实施例提供的基于多集群网络的任务调度方法的流程示意图;图2为本技术实施例提供的各任务之间依赖关系的示意图;图3为本技术实施例提供的一种任务流对应的任务信息的信息结构示意图;图4为本技术实施例提供的基于多集群网络的任务调度系统的结构示意图。
具体实施方式
21.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
22.本技术实施例提供了一种基于多集群网络的任务调度方法,请参见图1所示,可以包括以下步骤:s101:工作流服务器接收工作流调度请求。
23.本实施例中的工作流由存在依赖关系的多个任务构成的,组成工作流的各任务需按照依赖关系执行,本实施例中的各任务可以构成一个有向无环图。
24.s102:工作流服务器根据工作流调度请求确定需要执行的任务之间的依赖关系和各任务的任务信息,并根据所述依赖关系向全局调度器依次发送各任务的任务信息。
25.可以理解的是,工作流服务器可以接收用户通过终端提交的工作流调度请求,然后对该工作流调度请求进行分析确定需要执行的任务之间的依赖关系。
26.应当说明的是,本实施例中各任务的任务信息可以以job的形式发送给全局调度器,本实施例中的job提供一个可扩展的机制来描述任务,该机制包含的信息对应本实施例中任务信息的具体内容,本实施例中,每一任务的任务信息可以包括但不限于以下内容中的至少一种:(1)执行该任务所需资源的资源需求信息。
27.(2)任务执行方法。
28.其中,执行该任务所需资源的资源需求信息可以包括但不限于硬件资源,如cpu、gpu、内存和磁盘空间等等,还可以包括算法资源,数据资源等。其中,数据资源可以直接包括数据的具体内容,但通常情况下,数据的具体内容可能过于庞大,终端通常不会直接将数据内容发送给工作流服务器,工作流服务器可以从接收到的工作流调度请求进行分析,提取出执行各任务所需数据的数据存储地址信息。当然,该数据存储地址信息可以直接指示数据所在集群的集群信息,也可以是地址索引信息,这一内容将在下文介绍。
29.针对每一需要执行的任务,当确定该任务满足预设的任务依赖条件中的一种时,再将该任务的任务信息发送给全局调度器,其中,预设的任务依赖条件可以包括:条件一:该任务不存在依赖任务;条件二:该任务的依赖任务执行完毕。
30.应当说明的是,当确定某一任务不满足预设的任务依赖条件中的任意一种,可以不将该任务的任务信息发送给全局调度器,因为即使此时将该任务的任务信息发送给全局调度器,由于该任务的依赖任务还未执行完毕,该任务也无法顺利执行,所以对于当前不满足预设的任务依赖条件的任务,可以不发送这类任务的任务信息给全局调度器,以达到节
约通信资源的目的。优选的,先发送不存在依赖任务的任务的任务信息给全局调度器,在该任务执行完毕后,发送该任务的下一嵌套任务给全局调度器。
31.为便于理解,这里以一个具体的示例进行说明。
32.假设本实施例中的工作流由7个任务构成,各任务之间的依赖关系请参见图2所示,这7个任务之间的输入与输出相连,构成一个有向无环图,不相连的两个任务之间不发生数据交互,可以各自独立运行,图2中,j1为j2和j3的依赖任务,j2为j4和j5的依赖任务,依次类推,这里不再赘述。
33.这里对图2中工作流的执行过程进行简单说明,由于j1无依赖项,先发送j1的任务信息给全局调度器,j1执行完毕,表征j2和j3的依赖任务已经执行完毕,将 j2和j3的任务信息发送给全局调度器,j2执行完毕后,将j4的任务信息发送给全局调度器,j2和j3都执行完毕后,将j5的任务信息发送给全局调度器,如果j5执行失败,可以暂时不发送j6和j7的任务信息给全局调度器,当检测到j5执行成功之后,再发送j6和j7的任务信息给全局调度器。
34.s103:全局调度器根据各任务的任务信息以及多集群网络中各集群的资源情况,将各任务分发到可满足各自资源需求的集群的本地调度器中。
35.本实施例中,集群的资源情况满足某一任务的资源需求可以包括:集群的计算资源满足该任务的计算资源需求、集群上存储的数据满足该任务的数据需求。
36.本实施例中的全局调度器根据各任务对资源的需求为各任务分配集群,各任务可能进入相同集群,也可能进入不同的集群。
37.具体来说,全局调度器可以根据接收到的各任务对应的数据存储地址信息确定执行各任务所需的数据所在的目标集群;在判定某一任务对应的目标集群的资源情况满足该任务的资源需求时,将该任务分发到该目标集群的本地调度器中。
38.本实施例中的数据存储地址信息可以为地址索引信息,全局调度器可以根据接收到的各任务对应的地址索引信息从分布式数据库中查询各地址索引信息对应的目标集群;其中,分布式数据库中存储有各数据的地址索引信息与存储该数据的集群的对应关系。
39.本实施例中的分布式数据库用于提供全局数据存储服务,通过在分布式数据库中建立数据地址索引和该数据所在的集群的对应关系来满足多集群网络对数据的存储和使用需求。
40.应当说明的是,在判定某一任务对应的目标集群的资源情况不满足该任务的资源需求时,可以将该任务分发到该任务的最优候选集群的本地调度器中;该任务的最优候选集群为多集群网络中与该任务的目标集群的数据传输速率最快、且其资源情况满足该任务的资源需求的集群。
41.本实施例中,在为各任务确定出其需要进入的集群时,各对应的集群可以提前下载执行该任务所需的数据到内存,以便于各集群的本地调度器调取,减少任务执行时间。
42.s104:各本地调度器将接收到的各任务分发至各自对应的节点上执行。
43.应当说明的是,本实施例中各集群中的本地调度器可以根据预先设置的本地调度策略将各任务分发至本集群中的具体节点上执行。本实施例中,每一任务的任务信息还可以包括:任务执行结果的执行结果存储地址信息。
44.在步骤s104中,各本地调度器中的各节点可以根据执行结果存储地址信息将任务执行结果存储在对应的位置上。可选的,本实施例中的任务可以是模型训练计算任务,执行
结果存储地址信息用于指示训练模型的存储地址,各节点在进行模型训练得到训练模型后,可以根据该执行结果存储地址信息将各训练模型存储到训练模型数据库中的对应的位置上,以便于后续各训练模型的调用。
45.本实施例中,各节点可以从公共镜像仓库中拉取镜像,根据镜像执行接收到的所述任务,各集群可以通过公共镜像仓库中的镜像共享任务执行算法,当本实施例中的任务包括模型训练计算任务时,各集群可以通过公共镜像仓库中的镜像共享模型代码。
46.为便于理解本实施提供的方案,下面继续以一个具体的示例进行说明。请参见图3所示,图3为构成一个工作流的各任务的任务信息的示例,该工作流包括2个job,也即任务,分别名为data-transform和model-training,其中,data-transform的输出是model-training的输入,因此,任务data-transform是任务model-training的依赖任务,工作流服务器先将任务data-transform的任务信息发送给全局调度器,在任务data-transform执行完毕之后,再发送任务model-training的任务信息给全局调度器,以model-training任务为例介绍job的任务信息的具体内容:input 字段是job的数据来源,对应上述内容介绍的数据存储地址信息。
47.output 字段对应上述内容介绍的数据存储地址信息。
48.type字段中
ꢀ“
tensorflow
”ꢀ
表示该任务是使用tensorflow框架的任务。
49.tasks字段定义了任务的执行方式:需要worker(执行器)和ps(parameter server,参数服务器)这两种节点,其中有4个worker和1个 ps。
50.image 和 command 分别表示 job 所使用的镜像和执行的命令。
51.(3)resources表示job对资源的需求。
52.当全局调度器接收到model-training任务的任务信息后,可以根据input 中的信息从分布式数据库中查询数据所在的目标集群的信息,如果该目标集群的资源符合model-training任务的需求,则 model-training任务分配到该目标集群,否则将model-training任务分配到满足资源需求且与该目标集群之间数据传输速度最快的候选集群。分配model-training任务的集群在接收到该任务的任务信息后,由本地调度器将任务分发到各个节点,需要说明的是,该集群被分配任务之后就可以下载对应的数据到内存,以提高后续任务执行的效率。本地调度器中的各节点从容器镜像仓库拉取镜像,开始执行计算任务,model-training任务执行结束后,将训练出来的模型按照 job的output字段上传到对应的位置。
53.请参见图4所示,本技术实施例还提供了一种基于多集群网络的任务调度系统,包括:工作流服务器,用于接收工作流调度请求,根据所述工作流调度请求确定需要执行的任务之间的依赖关系和各所述任务的任务信息,并根据所述依赖关系向全局调度器依次发送各所述任务的任务信息;所述任务信息中包括执行所述任务所需资源的资源需求信息;全局调度器,用于根据各所述任务的任务信息以及多集群网络中各集群的资源情况,将各所述任务分发到可满足各自资源需求的集群的本地调度器中;本地调度器,用于将接收到的各所述任务分发至各自对应的节点上执行。
54.应当说明的是,本实施例各集群对任务的定义方式可以相同,也即,各集群可处理
任务的任务信息的具体内容都可以包含上述提及的input 字段、output 字段、type字段以及tasks字段,对于本系统以外的其他集群,如果其他集群的本地调度器可处理的任务的任务信息与本实施例中job的任务信息的定义格式相同,也即,如果其他集群的本地调度器可处理的任务的任务信息包含上述提及的input 字段、output 字段、type字段以及tasks字段,则可以将该其他集群加入本系统。因此,对于本实施例提供的基于多集群网络的任务调度系统,当检测到本系统以外的某一其他集群中的本地调度器中的任务的任务信息与本系统中任务的任务信息格式相同时,可以将该其他集群加入到本系统中。
55.通过本实施例提供的基于多集群网络的任务调度方法及系统,可以将算力网络中的计算任务抽象为一个job对象,统一job定义,提供简洁的表达形式来表达任务信息,比如,可以是大小为几十~数百行大小的yaml文件,使任务信息可以方便快速、低成本的在网络中传输;另外,采用多层调度结构,本地调度器与全局调度器之间耦合性低,将计算节点加入到算力网络的过程可以直接复用原集群调度器;任务调度可以与多种全局服务结合,支持计算任务高效地在算力网络中运行和迁徙;支持算力网络中的工作流,使得复杂的大规模,跨集群、跨地理区域的计算任务可以方便的完成。
56.在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
57.另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
58.在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
59.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

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

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

相关文献