图调度方法、装置、电子设备及计算机程序产品制造方法及图纸

技术编号:39284940 阅读:10 留言:0更新日期:2023-11-07 10:56
本申请实施例提供了一种图调度方法、装置、电子设备及计算机程序产品,该方法包括:将目标业务的各业务处理阶段作为层节点,并基于各业务处理阶段的执行顺序有向连接各层节点,将每一业务处理阶段中的各逻辑过程作为对应的层节点中的算子,并基于业务处理阶段中的各逻辑过程的依赖关系有向连接对应的层节点中的各算子,得到目标业务对应的有向无环图DAG;在接收到针对目标业务的业务请求时,按各处理阶段的执行顺序调度DAG中的各层节点,并按每一层节点中各逻辑过程之间的依赖关系调度层节点中的各算子,直至DAG中所有算子调度完毕。该方案中由于层节点和算子的表达能力更强,使得得到的DAG的可读性更高,进而提高了图调度的便捷性。的便捷性。的便捷性。

【技术实现步骤摘要】
图调度方法、装置、电子设备及计算机程序产品


[0001]本申请涉及计算机
,具体而言,本申请涉及一种图调度方法、装置、电子设备及计算机程序产品。

技术介绍

[0002]DAG(Directed Acyclic Graph,有向无环图)常常用来表示类似实时应用程序的多个任务组件(子任务)之间复杂依赖关系和形式化描述细粒度的并行任务调度问题,即DAG调度问题。
[0003]现有的DAG调度方法主要集中于研究编排计算逻辑,以Taskflow(任务流)为例,其整个设计是基于Function(函数)来进行任务组织和调度,用户在使用时需要进行繁琐的代码组织和数据管理设计,数据传递也需要采用函数传参方式不断去透传。
[0004]但是,在面对复杂的业务逻辑时,基于函数进行任务组织和调度的方式表达能力差,代码可读性差,降低了图调度的便捷性。

技术实现思路

[0005]本申请的目的旨在至少能解决上述的技术缺陷之一,本申请实施例所提供的技术方案如下:
[0006]第一方面,本申请实施例一种图调度方法,包括:
[0007]将目标业务划分为多个业务处理阶段,获取各业务处理阶段的执行顺序,并获取每一业务处理阶段中包含的至少一个逻辑过程和各逻辑过程之间的依赖关系;各业务处理阶段的执行顺序指示各业务处理阶段之间的串行关系,各逻辑过程之间的依赖关系指示业务处理阶段中各逻辑过程的连接关系和相连的逻辑过程的执行顺序;
[0008]将各业务处理阶段作为层节点,并基于各业务处理阶段的执行顺序有向连接各层节点,将每一业务处理阶段中的各逻辑过程作为对应的层节点中的算子,并基于业务处理阶段中的各逻辑过程的依赖关系有向连接对应的层节点中的各算子,得到目标业务对应的有向无环图DAG;
[0009]在接收到针对目标业务的业务请求时,按各处理阶段的执行顺序调度DAG中的各层节点,并按每一层节点中各逻辑过程之间的依赖关系调度层节点中的各算子,直至DAG中所有算子调度完毕。
[0010]在本申请的一种可选实施例中,按每一层节点中各逻辑过程之间的依赖关系调度层节点中的各算子,包括:
[0011]基于依赖关系,确定当前时刻层节点中的可执行算子;
[0012]基于目标业务的运行上下文,调度当前时刻层节点中的可执行算子,运行上下文包含目标业务中数据对象的信息。
[0013]在本申请的一种可选实施例中,基于依赖关系,确定当前时刻层节点中的可执行算子,包括:
[0014]基于依赖关系,确定层节点中各算子对应的前置算子,每一算子的前置算子为与算子连接、且执行顺序在算子之前的算子,并将各算子中在当前时刻对应的所有前置算子都已被调度的算子确定为可执行算子。
[0015]在本申请的一种可选实施例中,基于目标业务的运行上下文,调度当前时刻层节点中的可执行算子,包括:
[0016]从运行上下文数据中,依次获取各可执行算子所要处理的目标数据对象的信息;
[0017]分别基于各可执行算子的目标数据对象的信息,并行获取可执行算子的目标数据对象的更新信息;
[0018]将各可执行节点的目标数据对象的更新信息,依次合并至运行上下文。
[0019]在本申请的一种可选实施例中,算子包括第一类型算子和第二类型算子,第一类型算子用于处理目标业务中的多个数据对象,第二类型算子用于处理目标业务中的一个数据对象;
[0020]基于每一可执行算子的目标数据对象的信息获取可执行算子的目标数据对象的更新信息,包括:
[0021]若可执行算子为第一类型算子,则将可执行算子的多个目标数据对象划分为多份,分别基于各份目标数据对象的信息并行处理对应的目标数据对象,得到可执行算子的目标数据对象的更新信息;
[0022]若可执行算子为第二类型算子,则基于可执行算子的目标数据对象的信息对目标数据对象进行处理,得到可执行算子的目标数据对象的更新信息。
[0023]在本申请的一种可选实施例中,分别基于各份目标数据对象的信息并行处理对应的目标数据对象,包括:
[0024]若可执行算子对应的逻辑过程为本地逻辑,则利用第一数量的线程分别基于各份目标数据对象的信息并行处理对应的目标数据对象;
[0025]若可执行算子对应的逻辑过程为远程逻辑,则利用第二数量的协程分别基于各份目标数据对象的信息并行处理对应的目标数据对象;
[0026]其中,第一数量不小于第二数量。
[0027]在本申请的一种可选实施例中,基于业务处理阶段中的各逻辑过程的依赖关系有向连接对应的层节点中的各算子,包括:
[0028]若业务处理阶段中存在至少两个逻辑过程的关联逻辑过程相同,则基于关联逻辑过程获取对应的子层算子,并将子层算子作为至少两个逻辑过程对应的算子的前置算子,分别与至少两个逻辑过程对应的算子有向连接;
[0029]其中,关联逻辑过程在执行顺序上,分别与至少两个逻辑过程相邻、且在至少两个逻辑过程之前。
[0030]在本申请的一种可选实施例中,该方法还包括:
[0031]若任一算子携带有跨层调度信息,则在任一算子被调度后,调度跨层调度信息所指示的其他层节点的一个或多个算子。
[0032]在本申请的一种可选实施例中,该方法还包括:
[0033]在接收到针对目标业务的业务请求时,获取目标业务对应的资源对象,资源对象为目标业务中数据对象被线程或协程处理时所需的外部资源;
[0034]基于资源对象,分别为本地的每一线程和每一协程创建对应的资源对象副本,并在本地有新增线程或新增协程时,为新增线程或新增协程创建对应的资源对象副本。
[0035]第二方面,本申请实施例提供了一种图调度装置,包括:
[0036]业务分析模块,用于将目标业务划分为多个业务处理阶段,获取各业务处理阶段的执行顺序,并获取每一业务处理阶段中包含的至少一个逻辑过程和各逻辑过程之间的依赖关系;各业务处理阶段的执行顺序指示各业务处理阶段之间的串行关系,各逻辑过程之间的依赖关系指示业务处理阶段中各逻辑过程的连接关系和相连的逻辑过程的执行顺序;
[0037]DAG获取模块,用于将各业务处理阶段作为层节点,并基于各业务处理阶段的执行顺序有向连接各层节点,将每一业务处理阶段中的各逻辑过程作为对应的层节点中的算子,并基于业务处理阶段中的各逻辑过程的依赖关系有向连接对应的层节点中的各算子,得到目标业务对应的有向无环图DAG;
[0038]图调度模块,用于在接收到针对目标业务的业务请求时,按各处理阶段的执行顺序调度DAG中的各层节点,并按每一层节点中各逻辑过程之间的依赖关系调度层节点中的各算子,直至DAG中所有算子调度完毕。
[0039]在本申请的一种可选实施例中,图调度模块具体用于:
[0040]基于依赖关系,确定当前时刻层节点中的可执行算子;
[0041]基于目标业务的运行上下文,调度当前时刻层节点中的可执行算子,运行上下文包含目标业务中数据对象的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种图调度方法,其特征在于,包括:将目标业务划分为多个业务处理阶段,获取各业务处理阶段的执行顺序,并获取每一业务处理阶段中包含的至少一个逻辑过程和各逻辑过程之间的依赖关系;各业务处理阶段的执行顺序指示各业务处理阶段之间的串行关系,各逻辑过程之间的依赖关系指示所述业务处理阶段中各逻辑过程的连接关系和相连的逻辑过程的执行顺序;将各业务处理阶段作为层节点,并基于各业务处理阶段的执行顺序有向连接各层节点,将每一业务处理阶段中的各逻辑过程作为对应的层节点中的算子,并基于所述业务处理阶段中的各逻辑过程的依赖关系有向连接对应的层节点中的各算子,得到所述目标业务对应的有向无环图DAG;在接收到针对所述目标业务的业务请求时,按各处理阶段的执行顺序调度所述DAG中的各层节点,并按每一层节点中各逻辑过程之间的依赖关系调度所述层节点中的各算子,直至所述DAG中所有算子调度完毕。2.根据权利要求1所述的方法,其特征在于,按每一层节点中各逻辑过程之间的依赖关系调度所述层节点中的各算子,包括:基于所述依赖关系,确定当前时刻所述层节点中的可执行算子;基于所述目标业务的运行上下文,调度所述当前时刻所述层节点中的可执行算子,所述运行上下文包含所述目标业务中数据对象的信息。3.根据权利要求2所述的方法,其特征在于,所述基于所述依赖关系,确定当前时刻所述层节点中的可执行算子,包括:基于所述依赖关系,确定所述层节点中各算子对应的前置算子,每一算子的前置算子为与所述算子连接、且执行顺序在所述算子之前的算子,并将各算子中在所述当前时刻对应的所有前置算子都已被调度的算子确定为可执行算子。4.根据权利要求2所述的方法,其特征在于,所述基于所述目标业务的运行上下文,调度所述当前时刻所述层节点中的可执行算子,包括:从所述运行上下文数据中,依次获取各可执行算子所要处理的目标数据对象的信息;分别基于各可执行算子的目标数据对象的信息,并行获取所述可执行算子的目标数据对象的更新信息;将各可执行节点的目标数据对象的更新信息,依次合并至所述运行上下文。5.根据权利要求4所述的方法,其特征在于,所述算子包括第一类型算子和第二类型算子,所述第一类型算子用于处理所述目标业务中的多个数据对象,所述第二类型算子用于处理所述目标业务中的一个数据对象;所述基于每一可执行算子的目标数据对象的信息获取所述可执行算子的目标数据对象的更新信息,包括:若可执行算子为第一类型算子,则将所述可执行算子的多个目标数据对象划分为多份,分别基于各份目标数据对象的信息并行处理对应的目标数据对象,得到所述可执行算子的目标数据对象的更新信息;若可执行算子为第二类型算子,则基于所述可执行算子的目标数据对象的信息对所述目标数据对象进行处理,得到所述可执行算子的目标数据对象的更新信息。6.根据权利要求5所述的方法,其特征在于,所述分别基于各份目标数据对象的信息并
行处理对应的目标数据对象,包括:若所述可执行算子对应的逻辑过程为本地逻辑,...

【专利技术属性】
技术研发人员:王超李辉邵杰
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1