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

一种任务调度方法、装置以及相关设备与流程

2022-03-01 18:21:07 来源:中国专利 TAG:


1.本技术涉及计算技术领域,尤其涉及一种任务调度方法、装置、设备以及计算机可读存储介质。


背景技术:

2.随着计算机等智能设备在不同应用领域的深入推广,越来越多的领域特定架构(domain specific architecture,dsa)在不断涌现。基于这些领域特定架构,产生了新的处理引擎。其中,处理引擎是指处理数据的处理器。
3.例如在图像处理领域,基于领域特定架构的处理引擎包括图形处理器(graphical processing unit,gpu)、图像处理器(image processor,ip)等。在数字信号处理领域,基于领域特定架构的处理引擎包括数字信号处理器(digital signal processor,dsp)。在人工智能领域,基于领域特定架构的处理引擎包括神经网络处理器(neural-network processing unit,npu)等。
4.其中,包括两种或两种以上的处理引擎的数据处理系统称之为异构系统。针对该异构系统开发的应用为异构应用。异构应用通常包括至少一个异构应用程序编程接口(application programming interface,api)调用。其中,异构api具体是接口统一,但在不同处理引擎上有不同的优化实现的api。
5.目前,异构系统在执行包括异构api调用的任务时的效率较低。业界亟需提供一种高效的任务调度方法。


技术实现要素:

6.本技术提供了一种任务调度方法,该方法支持根据任务中异构api调用的参数规模值,选择合适的处理引擎,将异构api调用调度到合适的处理引擎,从而提高异构api调用的执行效率,进而提高异构应用的执行效率。本技术还提供了上述方法对应的装置、设备、计算机可读存储介质以及计算机程序产品。
7.第一方面,本技术提供了一种任务调度方法。该方法应用于包括多节点的异构系统。其中,异构系统是指包括多种处理引擎的数据处理系统。处理引擎是能够进行数据处理操作的单元。处理引擎包括中央处理器(central processing unit,cpu)以及基于基于领域特定架构(domain specific architecture,dsa)的处理单元。其中,基于dsa架构的处理单元包括图形处理器(graphical processing unit,gpu)、图像处理器(image processor,ip)、数字信号处理器(digital signal processor,dsp)、神经网络处理器(neural-network processing unit,npu)和现场可编程逻辑门阵列(field programmable gate array,fpga)等等。
8.针对异构系统开发的应用为异构应用。异构应用通常包括至少一个异构应用程序编程接口(application programming interface,api)调用。其中,异构api具体是接口统一,但在不同处理引擎上有不同的优化实现的api。提交到异构系统上的任务包括至少一个
异构api调用。
9.异构系统在执行异构api调用时,根据该异构api调用的参数规模值,确定异构api调用的调度参考信息。其中,调度参考信息用于描述异构系统中多种处理引擎的执行效率。异构系统根据调度参考信息,从异构系统可用的处理引擎中确定执行效率满足预设条件的目标处理引擎,将异构api调用调度到对应的目标处理引擎。
10.该方法支持根据异构api调用的参数规模值选择合适的处理引擎,将异构api调用调度到上述合适的处理引擎上执行,提高了异构api调用的执行效率,进而提高了任务的执行效率。
11.在一些可能的实现方式中,满足预设条件的目标处理引擎包括执行效率最高的处理引擎,如此可以将异构api调用的执行效率最大化。在一些实施例中,满足预设条件的目标处理引擎包括执行效率高于预设效率的处理引擎。具体地,当多个异构api调用对应的执行效率最高的处理引擎为同一处理引擎时,为了避免一些异构api调用处于等待状态,可以将多个异构api调用中的一个异构api调用调度到执行效率最高的处理引擎,将其他异构api调用调度到执行效率高于预设效率的其他处理引擎,如执行效率次高的处理引擎。如此可以提高任务整体执行效率。
12.在一些可能的实现方式中,异构系统包括异构集群,该异构集群包括主节点和多个从节点。任务被主节点调度至多个从节点中的第一从节点。异构系统(具体是异构系统中的第一从节点)可以根据调度参考信息,从第一从节点可用的处理引擎中确定执行效率满足预设条件的目标处理引擎。如此,实现在节点内调度异构api调用,提高了异构api调用的执行效率,进而提高了任务的执行效率。
13.在一些可能的实现方式中,异构系统包括异构集群。该异构集群包括主节点和多个从节点。任务被主节点调度至多个从节点中的第一从节点。当第一从节点中执行效率满足预设条件的处理引擎不可用时,异构系统(具体是异构系统中的第一从节点)可以根据调度参考信息,从异构集群中确定第二从节点,然后从该第二从节点可用的处理引擎中确定执行效率满足预设条件的目标处理引擎。如此实现跨节点调度异构api调用,提高了异构api调用的执行效率,提高了任务整体的执行效率。
14.在一些可能的实现方式中,考虑到跨节点调度时,需要传输实参以及回写结果,由此会产生额外的调度开销。异构系统(具体是第一系统的第一从节点)在确定第二从节点时还可以考虑调度开销。异构系统可以根据所述调度参考信息,从所述异构集群中确定可用的处理引擎满足预设条件,且调度开销小于预设开销的节点为第二从节点。
15.具体地,异构系统可以根据调度参考信息,从异构集群中确定可用的处理引擎满足预设条件的多个从节点,分别确定第一从节点到上述多个从节点的调度开销,确定调度开销小于预设开销的节点为第二从节点。
16.该方法在跨节点调度异构api调用时,不仅提高了异构api调用的执行效率,还避免了调度开销大幅增加。
17.在一些可能的实现方式中,异构系统可以通过查表方式确定调度参考信息。具体地,异构系统(具体是异构系统中的第一从节点)根据所述异构api调用的参数规模值查找关系表,该关系表包括参数规模值与处理引擎的执行效率的对应关系,如此,可以获得异构api调用的调度参考信息。基于该调度参考信息可以将异构api调用调度到合适的处理引
擎,提高了异构api调用的执行效率。
18.在一些可能的实现方式中,多个从节点为同构单节点异构系统或者异构单节点异构系统。其中,单节点异构系统是指包括不同种类的处理引擎的单节点所形成的异构系统。
19.同构单节点异构系统是指具有相同结构的单节点异构系统。例如从节点1至从节点n均为包括处理引擎1、处理引擎2、
……
处理引擎n的节点,则从节点1至从节点n即为同构单节点异构系统。
20.异构单节点异构系统是指具有不同结构的单节点异构。例如从节点1为包括处理引擎1、处理引擎2的节点,从节点2为包括处理引擎3、处理引擎4的节点,则节点1、节点2为异构单节点异构系统。
21.如此,可以实现节点内调度异构api调用,或者跨节点调度异构api调用,从而提高异构api调用的执行效率,进而提高任务整体的执行效率。
22.在一些可能的实现方式中,对于多节点的异构系统而言,多个从节点中的每个从节点可以是同构系统。即一个从节点包括一种处理引擎。并且,至少有两个从节点的处理引擎的架构不同。例如,从节点1包括cpu这一种处理引擎,从节点2包括gpu这一种处理引擎。如此,可以跨节点调度异构api调用,提高该异构api调用的执行效率。
23.在一些可能的实现方式中,多个从节点为云环境、边缘环境或终端环境中的节点。其中,云环境具体为包括至少一个云计算设备(例如中心服务器)的计算集群。边缘环境具体为包括至少一个边缘计算设备(例如边缘服务器)的计算集群。终端环境包括至少一个终端计算设备。终端计算设备可以简称为终端或终端设备,包括但不限于台式机、笔记本电脑以及智能手机等等。
24.第二方面,本技术提供了一种任务调度装置。该装置应用于包括多节点的异构系统,待执行的任务包括至少一个异构api调用。该装置包括:
25.确定模块,用于根据异构api调用的参数规模值,确定异构api调用的调度参考信息,该调度参考信息用于描述异构系统中多种处理引擎的执行效率;
26.确定模块,还用于根据调度参考信息,从异构系统可用的处理引擎中确定执行效率满足预设条件的目标处理引擎;
27.调度模块,用于将异构api调用调度到对应的目标处理引擎。
28.在一些可能的实现方式中,满足预设条件的目标处理引擎包括:执行效率最高的处理引擎或执行效率高于预设效率的处理引擎。
29.在一些可能的实现方式中,异构系统包括异构集群,该异构集群包括主节点和多个从节点,任务被主节点调度至多个从节点中的第一从节点;
30.确定模块具体用于:
31.根据调度参考信息,从第一从节点可用的处理引擎中确定执行效率满足预设条件的目标处理引擎。
32.在一些可能的实现方式中,异构系统包括异构集群,异构集群包括主节点和多个从节点,任务被主节点调度至多个从节点中的第一从节点;
33.确定模块具体用于:
34.当第一从节点中执行效率满足预设条件的处理引擎不可用时,根据调度参考信息,从异构集群中确定第二从节点;
35.从第二从节点可用的处理引擎中确定执行效率满足预设条件的目标处理引擎。
36.在一些可能的实现方式中,确定模块具体用于:
37.根据调度参考信息,从异构集群中确定可用的处理引擎满足预设条件,且调度开销小于预设开销的节点为第二从节点。
38.在一些可能的实现方式中,确定模块具体用于:
39.根据异构api调用的参数规模值查找关系表,获得异构api调用的调度参考信息,关系表包括参数规模值与处理引擎的执行效率的对应关系。
40.在一些可能的实现方式中,多个从节点为同构单节点异构系统或者异构单节点异构系统。
41.在一些可能的实现方式中,多个从节点中的每个从节点为同构系统,并且至少有两个从节点的处理引擎的架构不同。
42.在一些可能的实现方式中,多个从节点为云环境、边缘环境或终端环境中的节点。
43.第三方面,本技术提供一种设备,设备包括处理器和存储器。处理器、存储器进行相互的通信。处理器用于执行存储器中存储的指令,以使得设备执行如第一方面或第一方面的任一种实现方式中的任务调度方法。
44.第四方面,本技术提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,指令指示设备执行上述第一方面或第一方面的任一种实现方式中的任务调度方法。
45.第五方面,本技术提供了一种包含指令的计算机程序产品,当其在设备上运行时,使得设备执行上述第一方面或第一方面的任一种实现方式中的任务调度方法。
46.本技术在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
47.为了更清楚地说明本技术实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。
48.图1a为本技术实施例提供的一种任务调度方法的系统架构图;
49.图1b为本技术实施例提供的一种任务调度方法的系统架构图;
50.图1c为本技术实施例提供的一种任务调度方法的系统架构图;
51.图2为本技术实施例提供的一种端边云协同的示意图;
52.图3为本技术实施例提供的一种任务调度方法的流程图;
53.图4为本技术实施例提供的一种任务调度方法的流程图;
54.图5为本技术实施例提供的一种任务调度方法的流程图;
55.图6为本技术实施例提供的一种任务调度装置的结构示意图;
56.图7为本技术实施例提供的一种计算设备的结构示意图。
具体实施方式
57.本技术实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
58.首先对本技术实施例中所涉及到的一些技术术语进行介绍。
59.处理引擎,也称之为硬件引擎,具体是能够进行数据处理操作的单元。本技术并不限定处理引擎的具体类型和形态,凡是能够进行数据处理操作的单元均可以作为处理引擎。在一些示例中,处理引擎可以包括中央处理器(central processing unit,cpu)。
60.进一步地,处理引擎还可以包括基于领域特定架构(domain specific architecture,dsa)的处理单元。例如,处理引擎还可以包括图形处理器(graphical processing unit,gpu)、图像处理器(image processor,ip)、数字信号处理器(digital signal processor,dsp)、神经网络处理器(neural-network processing unit,npu)和现场可编程逻辑门阵列(field programmable gate array,fpga)中的任意一种或多种。
61.异构系统是包括多个不同类型处理引擎的数据处理系统。具体地,多个不同类型处理引擎可以包括至少一个cpu,其余处理引擎可以为与cpu类型不同的处理引擎。例如,其余处理引擎可以包括下列的部分或全部:gpu、ip、dsp、npu、或fpga。当然,在一些实施例中,其余处理引擎也可以包括cpu。
62.异构系统具体可以是多节点的异构系统。多节点的异构系统是指部署在多个计算节点上的异构系统。在一些实施例中,异构系统可以分布式地部署在多个计算节点。进一步地,多个计算节点可以形成异构集群。异构集群包括一个主节点和多个从节点。
63.针对上述异构系统开发的应用为异构应用。异构应用通常包括至少一个异构应用程序编程接口(application programming interface,api)调用。其中,异构api具体是接口统一,但在不同处理引擎上有不同的优化实现的api。
64.多个处理引擎中的一个处理引擎可以作为调度者,用于与其余处理引擎进行数据交互,协助其余处理引擎进行数据处理。在本技术实施例以调度者是cpu为例,为了方便说明,在本技术实施例中将作为调度者的cpu称为调度cpu,或主cpu(host cpu)。
65.运行时是指提供程序运行环境的组件。该组件可以包括一个虚拟机和标准的函数类库。以java为例,java运行时(java runtime,jre)提供java程序的运行环境。jre包括一个java虚拟机(java virtual machine,jvm)和标准的java函数类库。
66.在异构系统(具体是异构系统的host cpu)上运行的运行时(runtime)称为异构运行时(heterogeneous runtime,hrt)。其中,异构运行时用于将针对异构系统的决策从编译时和链接时推迟到运行时执行。针对异构系统的决策可以是指从异构系统中选择处理引擎以用于执行异构api调用。
67.异构api的定义中包括该异构api的形式参数(简称形参),调用异构api时还需要提供与上述形参对应的实际参数(实参)。同一异构api在不同调用点被调用时的参数规模可以是不同的。参数规模能够描述调用该异构api所需要的参数的大小。需要说明的是,在本技术实施例中参数的大小并非指参数的数值大小,而是指参数所占用内存或在处理引擎中占用的字节数。基于此,参数规模的值(即参数规模值)可以取值为区间(0, ∞)的任意整数。
68.参数规模值通常可以根据计算参数规模的表达式确定。举例说明,可以在异构api的原型声明文件中添加如下语句:
69.#pragma hapi_para_size(hapi_para_size_expr)
70.其中,#pragma hapi_para_size表征此处声明异构api的参数规模,hapi_para_
size_expr为参数规模的表达式。
71.举例来说,参数规模的表达式可以为max(max(a.size(),b.size()),c.size())),这里的max(max(a.size(),b.size()),c.size())表示取三个参数a、b、c中size最大的那个值作为参数规模。
72.本技术实施例并不限定参数规模的表达式的具体内容,一般情况下出现在表达式中的操作数可以是正整数常量、相应异构api原型声明文件中的正整数参数、参数的正整数成员变量、或返回值为正整数的成员函数。
73.异构api被调用时的参数规模值不同,其在异构系统包括的不同处理引擎上的执行效率可以是不同的。针对异构系统在执行包括异构api调用的任务时的效率较低的问题,本技术实施例提供了一种任务调度方法。该方法可以由运行在host cpu上的异构运行时执行。
74.具体地,任务包括至少一个异构api调用。针对任意一个异构api调用,异构运行时根据异构api调用的参数规模值,确定异构api调用的调度参考信息。该调度参考信息用于描述多节点异构系统中多种处理引擎的执行效率。然后异构运行时根据调度参考信息,从异构系统可用的处理引擎中确定执行效率满足预设条件的目标处理引擎,接着将异构api调用调度到对应的目标处理引擎。
75.该方法支持根据异构api调用的参数规模值选择合适的处理引擎,将异构api调用调度到上述合适的处理引擎上执行,提高了异构api调用的执行效率,进而提高了任务的执行效率。
76.其中,异构系统包括多节点。在一些实施例中,异构系统可以是异构集群,该异构集群包括一个主节点和多个从节点。当任务被调度到一个从节点时,该从节点上的异构运行时可以从该从节点可用的处理引擎中选择合适的处理引擎,将异构api调用调度到该处理引擎上执行。进一步地,当前从节点上执行效率高的处理引擎不可用时,从节点上的异构运行时可以从其他从节点选择合适的处理引擎,将该异构api调用调度到该处理引擎上执行,如此可以进一步提高异构api调用的执行效率,提高任务的执行效率。
77.为了使得本技术的技术方案更加清楚、易于理解,下面结合附图对本技术实施例提供的任务调度方法的系统架构进行介绍。
78.参见图1a所示的系统架构图,异构系统100包括一个主节点102和多个从节点104。其中,多个从节点104为同构单节点异构系统,即多个从节点104为相同结构的单节点异构系统(包括多种处理引擎的节点)。如图1a所示,从节点104包括处理引擎1、处理引擎2、
……
处理引擎n(n为正整数)。其中,处理引擎1为调度处理引擎。在一些实施例中,处理引擎1为host cpu。处理引擎1中包括异构运行时。
79.当任务被主节点102调度至一个从节点104时,该从节点104的处理引擎1上运行的异构运行时可以根据该任务包括的异构api调用的参数规模值,确定异构api调用的调度参考信息。异构运行时可以根据调度参考信息,从异构系统100可用的处理引擎中确定执行效率满足预设条件的目标处理引擎,将异构api调用调度到对应的目标处理引擎。
80.在一些可能的实现方式中,多个从节点104也可以为异构单节点异构系统。即多个从节点104可以为不同结构的单节点异构系统。如图1b所示,第一个从节点104包括处理引擎11、处理引擎12、
……
处理引擎1n,第二个从节点104包括处理引擎21、处理引擎22、
……
处理引擎2n,以此类推,第m个从节点104包括处理引擎m1、处理引擎m2、
……
处理引擎mn。其中,n、m正整数。需要说明的是,图1b是以各从节点104包括的处理引擎的种类数均为n进行示例说明的,在一些实施例中,不同从节点104包括的处理引擎的种类数也可以不同。例如一个从节点104可以包括n种处理引擎,另一个从节点104可以包括k种处理引擎,k为正整数。处理引擎11、处理引擎21、
……
处理引擎m1为各从节点104的调度处理引擎。调度处理引擎中包括异构运行时。
81.当任务被主节点102调度至一个从节点104时,例如第一个从节点104时,该从节点104的处理引擎11上运行的异构运行时可以根据该任务包括的异构api调用的参数规模值,确定异构api调用的调度参考信息。异构运行时根据该调度参考信息,从异构系统100可用的处理引擎中确定执行效率满足预设条件的目标处理引擎,将异构api调用调度到对应的目标处理引擎。
82.在图1a、图1b所示实施例中,异构运行时从异构系统100可用的处理引擎中确定目标处理引擎,可以是在节点内可用的处理引擎中确定执行效率满足预设条件的目标处理引擎。在另一些可能的实现方式中,异构运行时也可以从其他从节点104可用的处理引擎中确定目标处理引擎,实现跨节点调度异构api调用。
83.在一些可能的实现方式中,多个从节点104中的每个从节点104为同构系统。并且,至少有两个从节点104的处理引擎的架构不同。如图1c所示,第一个从节点104的处理引擎均为处理引擎1,第二个从节点104的处理引擎均为处理引擎2,以此类推,第n个从节点104的处理引擎均为处理引擎n。每个从节点104包括一个调度处理引擎,调度处理引擎包括异构运行时。
84.当任务被主节点102调度至一个从节点104时,该从节点104的处理引擎上运行的异构运行时根据该任务包括的异构api调用的参数规模值,确定异构api调用的调度参考信息。异构运行时根据该调度参考信息,从异构系统100(包括各个从节点104)可用的处理引擎中确定执行效率满足预设条件的目标处理引擎,将异构api调用调度到对应的目标处理引擎。
85.需要说明的是,上述多个从节点104可以是如图2所示的云环境、边缘环境或者终端环境中的节点。其中,云环境具体为包括至少一个云计算设备(例如中心服务器)的计算集群。边缘环境具体为包括至少一个边缘计算设备(例如边缘服务器)的计算集群。终端环境包括至少一个终端计算设备。终端计算设备可以简称为终端或终端设备,包括但不限于台式机、笔记本电脑以及智能手机等等。
86.以上对任务调度方法的系统架构进行详细说明。接下来,结合附图对本技术实施例提供的任务调度方法进行详细说明。
87.参见图3所示的任务调度方法的流程图,该方法包括:
88.s302:异构运行时根据异构api调用的参数规模值,确定异构api调用的调度参考信息。
89.调度参考信息用于描述异构系统中多种处理引擎的执行效率。异构运行时可以将异构api调用优先调度到执行效率高的处理引擎,因此,执行效率可以表征处理引擎的调度优先级。
90.执行效率是指单位时间内执行异构api调用的工作量。执行效率可以根据异构api
的执行时间确定。假设执行异构api调用的工作量为1,则执行效率为执行时间的倒数。在一些实施例中,调度参考信息可以包括多种处理引擎的执行效率。在另一些实施例中,调度参考信息可以包括多种处理引擎的执行时间,执行时间可以用于描述执行效率。
91.当然,调度参考信息还可以是对执行效率或执行时间进行排序所得的排名(rank),该排名可以描述执行效率的高低。具体地,调度参考信息可以是对执行效率或者执行时间按照由大至小或由小至大的顺序排序所得的排名。该排名可以作为异构api调用的调度优先级。以对执行时间按照由小到大的顺序排序所得排名为例,排名越靠前,调度优先级越高,排名越靠后,调度优先级越低。
92.其中,调度参考信息的格式具有多样性,例如调度参考信息可以是向量格式,也可以是键值对格式,或者是其他格式,本技术实施例不再一一列举。
93.在一些实施例中,调度参考信息可以为调度优先向量。调度优先向量的每一个元素的元素值分别用于表征一种处理引擎的调度优先级。在另一些实施例中,调度参考信息也可以为键值对,该键值对包括处理引擎及其对应的调度优先级。
94.具体地,异构运行时可以根据异构api调用的参数规模值,结合预先构建的参数规模与处理引擎的关系,确定异构api调用的调度参考信息。其中,参数规模与处理引擎的关系描述了异构api的不同参数规模值对应的调度参考信息。异构运行时可以根据异构api的标识、异构api调用的参数规模值确定对应的调度参考信息。
95.参数规模与处理引擎的关系具体可以通过关系表、关系文本或关系图中的一种或多种呈现。为了便于描述,后文以通过关系表呈现参数规模与处理引擎的关系进行示例说明。其中,关系表主要用于为异构运行时选择一个合适的处理引擎提供帮助,因此,上述关系表也可以称为处理引擎选择表。为了便于理解,本技术实施例还提供了关系表的示例,如下所示:
96.表1参数规模与处理引擎的关系表
97.[0098][0099]
由上表可知,异构运行时可以根据异构api的标识查找关系表,得到异构api调用在不同参数规模值情况下对应的调度优先向量,然后异构运行时可以根据参数规模值查找关系表,得到该参数规模值对应的调度优先向量。
[0100]
s304:异构运行时根据调度参考信息,从异构系统可用的处理引擎中确定执行效率满足预设条件的目标处理引擎。
[0101]
可用的处理引擎是指具有空闲资源的处理引擎。在一些实施例中,可用的处理引擎可以是负载率小于预设阈值的处理引擎。异构系统可用的处理引擎可以是当前节点内可用的处理引擎,也可以是异构系统整体(包括其他节点,如其他从节点)可用的处理引擎。
[0102]
异构运行时可以根据调度参考信息,从当前节点(如第一从节点)内可用的处理引擎中确定执行效率满足预设条件的目标处理引擎。其中,满足预设条件的目标处理引擎可以是执行效率最高的处理引擎或执行效率高于预设效率的处理引擎。当调度参考信息为多种处理引擎的执行效率的排名也即多种处理引擎的调度优先级时,执行效率最高的处理引擎可以是排名最靠前的处理引擎,执行效率高于预设效率的处理引擎可以是排名靠前的若干处理引擎。
[0103]
在一些可能的实现方式中,任务被主节点调度至多个从节点104中的第一从节点。当第一从节点中执行效率满足预设条件的处理引擎不可用时,异构运行时可以根据调度参考信息,从异构集群中确定第二从节点,该第二从节点为可用的处理引擎的执行效率满足预设条件的从节点。然后异构运行时可以从上述第二从节点可用的处理引擎中确定执行效率满足预设条件的目标处理引擎。
[0104]
进一步地,跨节点调度异构api调用时还需要额外的开销,如传输异构api的实参的开销、回写结果的开销等等,为此,异构运行时在确定第二从节点时还可以考虑开销,以确定合适的第二从节点。
[0105]
具体地,异构运行时可以根据调度参考信息,从异构集群中确定可用的处理引擎满足预设条件,且调度开销小于预设开销的节点为第二从节点。在一些实施例中,异构运行时可以从异构集群中确定可用的处理引擎满足预设条件的多个从节点,然后分别确定将异构api调用由第一从节点调度到上述多个从节点的调度开销,异构运行时确定调度开销小于预设开销的节点为第二从节点。
[0106]
s306:异构运行时将异构api调用调度到对应的目标处理引擎。
[0107]
当目标处理引擎为节点内的处理引擎时,异构运行时直接将异构api调用调度到
对应的目标处理引擎。当目标处理引擎包括其他节点上的处理引擎时,异构运行时还可以将异构api调用跨节点调度到对应的目标处理引擎。
[0108]
在一些实施例中,主节点将多个任务调度至一个从节点,若多个任务中至少有2个任务包括的异构api调用对应的目标处理引擎包括同一处理引擎,如调度优先级最高的处理引擎为同一处理引擎,且该处理引擎剩余的资源不足以支持执行多个任务时,则该从节点上运行的异构运行时还可以将一些任务调度到调度优先级次高的处理引擎(该处理引擎的调度优先级高于预设等级)。
[0109]
基于上述内容描述,本技术实施例提供了一种任务调度方法。在该方法中,异构运行时根据异构api调用的参数规模值,确定异构api调用的调度参考信息。然后异构运行时根据调度参考信息,从异构系统可用的处理引擎中确定执行效率满足预设条件的目标处理引擎,接着将异构api调用调度到对应的目标处理引擎。
[0110]
该方法支持根据异构api调用的参数规模值选择合适的处理引擎,将异构api调用调度到上述合适的处理引擎上执行,提高了异构api调用的执行效率,进而提高了任务的执行效率。并且,该方法还可以支持节点内可用的处理引擎的执行效率不满足预设条件时,从其他节点可用的处理引擎选择执行效率满足预设条件的处理引擎为目标处理引擎,将异构api调用跨节点调度到上述目标处理引擎,以提高异构api调用的执行效率,进而提高任务的执行效率。此外,从整个异构系统中选择合适的调度引擎执行异构api调用,有利于提高异构系统整体资源利用率。
[0111]
接下来,结合附图对节点内调度和跨节点调度的具体实现进行详细说明。
[0112]
参见图4,主节点和从节点各自维护异构应用任务队列。异构应用任务队列用于存储异构应用任务。主节点主要负责将异构应用任务调度到从节点,负责从节点上异构应用任务的负载均衡。从节点负责执行调度到本节点上的异构应用任务。其中,从节点在执行异构应用任务时,可以仅利用本节点内的处理引擎执行异构应用任务包括的异构api调用。
[0113]
具体地,主节点通过如下处理逻辑,将异构应用任务调度到从节点:
[0114]
主节点检测主节点的异构应用任务队列。当该异构应用任务队列不为空时,主节点在所有的从节点中找到异构应用任务队列较空(例如为最空)的从节点n,接着将主节点的异构应用任务队列中的第一个异构应用任务(具体是任务t)移出队列,将任务t加入从节点n的异构应用任务队列。
[0115]
进一步地,主节点还可以通过如下处理逻辑,平衡从节点的负载:
[0116]
主节点检测到从节点m的异构应用任务队列为空时,在其他从节点中找到异构应用任务队列较满(例如为最满)的从节点n,将从节点n的异构应用任务队列中的第一个异构应用任务(具体是任务t)移出队列,将任务t加入从节点m的异构应用任务队列。
[0117]
从节点n主要通过如下处理逻辑,执行任务:
[0118]
从节点n的异构应用任务队列不为空时,从节点n将该从节点n的异构应用任务队列中的第一个异构应用任务(具体是任务t)移出队列,向主节点上报任务t的状态变化,具体是由等待状态变为执行状态,从节点n在本单节点异构系统上执行任务t。其中,从节点n根据任务t中异构api调用的参数规模值确定异构api调用的调度参考信息,根据该调度参考信息确定执行效率满足预设条件的目标处理引擎,将异构api调用调度至目标处理引擎上执行。在执行完毕后,从节点n还可以向主节点上报任务t的状态变化,具体是由执行状态
变为完成状态。
[0119]
图4主要对节点内调度过程中主节点和从节点的处理逻辑进行详细说明,接下来,对跨节点调度过程中主节点和从节点的处理逻辑进行详细说明。
[0120]
参见图5,主节点和从节点各自维护异构应用任务队列。异构应用任务队列用于存储异构应用任务。主节点主要负责将异构应用任务调度到从节点,负责从节点上异构应用任务的负载均衡。从节点负责执行调度到本节点上的异构应用任务。
[0121]
从节点在执行异构应用任务的过程中,具体是通过异构运行时实现。异构运行时通过检索处理引擎选择表获得调度优先向量,确定优先级满足预设条件(执行效率满足预设条件)的处理引擎eh。当该处理引擎不可用时,如该处理引擎被占用时,当前从节点n上的异构运行时可以查看其它从节点上的eh是否可用。如果某从节点m上的eh可用并且在m上执行本异构api调用的开销小于预设开销,则可以请求从节点m去执行本异构api调用。
[0122]
其中,异构集群中的各节点共享一个全局内存池时,则节点间传递实参以及回写结果的开销可以大大缩短。从节点n可以将异构api调用调度到从节点m,在从节点m的处理引擎eh上执行异构api调用。
[0123]
需要说明的是,从节点n上的异构运行时查看其它从节点上的eh是否可用,具体是通过向主节点查询得到。主节点的处理逻辑可以参见图4所示实施例,从节点的处理逻辑如下所示:
[0124]
从节点n(具体为从节点n的异构运行时)通过api id以及参数规模值查找处理引擎选择表,得到对应的调度优先向量v。对于本从节点n中调度优先级满足预设条件的处理引擎eh。如果该eh可用,则将本从节点n的处理引擎eh标志为不可用,在本从节点n的eh上执行当前异构api调用,当执行完成时,将本从节点n的处理引擎eh标志为可用。
[0125]
如果本从节点n的eh不可用,则向主节点发送查询请求,请求查询eh可用且执行当前异构api调用开销小于预设开销的从节点。从节点n接收到主节点返回的查询响应。查询响应中携带有主节点查询到的、从节点m的标识。从节点n根据从节点m的标识,向从节点m发送调度请求,以请求将异构api调用调度到从节点m。
[0126]
上文结合图1至图5对本技术实施例提供的任务调度方法进行了详细介绍,下面将结合附图对本技术实施例提供的任务调度装置、设备进行介绍。
[0127]
参见图6所示的任务调度装置的结构示意图,该装置600应用于包括多节点的异构系统,该任务包括至少一个异构应用程序编程接口api调用,该装置600包括:
[0128]
确定模块602,用于根据异构api调用的参数规模值,确定异构api调用的调度参考信息,该调度参考信息用于描述异构系统中多种处理引擎的执行效率;
[0129]
确定模块602,还用于根据调度参考信息,从异构系统可用的处理引擎中确定执行效率满足预设条件的目标处理引擎;
[0130]
调度模块604,用于将异构api调用调度到对应的目标处理引擎。
[0131]
在一些可能的实现方式中,满足预设条件的目标处理引擎包括:执行效率最高的处理引擎或执行效率高于预设效率的处理引擎。
[0132]
在一些可能的实现方式中,异构系统包括异构集群,该异构集群包括主节点和多个从节点,任务被主节点调度至多个从节点中的第一从节点;
[0133]
确定模块602具体用于:
[0134]
根据调度参考信息,从第一从节点可用的处理引擎中确定执行效率满足预设条件的目标处理引擎。
[0135]
在一些可能的实现方式中,异构系统包括异构集群,该异构集群包括主节点和多个从节点,任务被主节点调度至多个从节点中的第一从节点;
[0136]
确定模块602具体用于:
[0137]
当第一从节点中执行效率满足预设条件的处理引擎不可用时,根据调度参考信息,从异构集群中确定第二从节点;
[0138]
从第二从节点可用的处理引擎中确定执行效率满足预设条件的目标处理引擎。
[0139]
在一些可能的实现方式中,确定模块602具体用于:
[0140]
根据调度参考信息,从异构集群中确定可用的处理引擎满足预设条件,且调度开销小于预设开销的节点为第二从节点。
[0141]
在一些可能的实现方式中,确定模块602具体用于:
[0142]
根据异构api调用的参数规模值查找关系表,获得异构api调用的调度参考信息,关系表包括参数规模值与处理引擎的执行效率的对应关系。
[0143]
在一些可能的实现方式中,多个从节点为同构单节点异构系统或者异构单节点异构系统。
[0144]
在一些可能的实现方式中,多个从节点中的每个从节点为同构系统,并且至少有两个从节点的处理引擎的架构不同。
[0145]
在一些可能的实现方式中,多个从节点为云环境、边缘环境或终端环境中的节点。
[0146]
根据本技术实施例的任务调度装置600可对应于执行本技术实施例中描述的方法,并且任务调度装置600的各个模块/单元的上述和其它操作和/或功能分别为了实现图3所示实施例中的各个方法的相应流程,为了简洁,在此不再赘述。
[0147]
本技术实施例还提供了一种计算设备700。该计算设备700可以是笔记本电脑、台式机等端侧设备,也可以是云环境中的云计算设备,例如中心云中的中心服务器,或者边缘云中的边缘服务器。该计算设备700具体用于实现如图6所示实施例中任务调度装置600的功能。
[0148]
图7提供了一种计算设备700的结构示意图,如图7所示,计算设备700包括总线701、处理器702、通信接口703和存储器704。处理器702、存储器704和通信接口703之间通过总线701通信。
[0149]
总线701可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0150]
处理器702可以为中央处理器(central processing unit,cpu)、图形处理器(graphics processing unit,gpu)、微处理器(micro processor,mp)或者数字信号处理器(digital signal processor,dsp)等处理器中的任意一种或多种。
[0151]
通信接口703用于与外部通信。例如,获取异构api调用的参数规模值,获取可用的处理引擎满足预设条件的从节点的标识等等。
[0152]
存储器704可以包括易失性存储器(volatile memory),例如随机存取存储器
(random access memory,ram)。存储器704还可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,rom),快闪存储器,机械硬盘(hard disk drive,hdd)或固态硬盘(solid state drive,ssd)。
[0153]
存储器704中存储有可执行代码,处理器702执行该可执行代码以执行前述任务调度方法。具体地,在实现图6所示实施例的情况下,且图6实施例中所描述的任务调度装置600的各模块为通过软件实现的情况下,执行图6中各模块功能所需的软件或程序代码存储在存储器704中。处理器702执行存储器704中存储的程序代码,以执行图3所示实施例中的任务调度方法。
[0154]
本技术实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行上述应用于任务调度装置600的任务调度方法。
[0155]
本技术实施例还提供了一种计算机程序产品。所述计算机程序产品包括一个或多个计算机指令。在计算设备上加载和执行所述计算机指令时,全部或部分地产生按照本技术实施例所述的流程或功能。
[0156]
所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机或数据中心进行传输。
[0157]
所述计算机程序产品可以为一个软件安装包,在需要使用前述任务调度方法的任一方法的情况下,可以下载该计算机程序产品并在计算设备上执行该计算机程序产品。
[0158]
上述各个附图对应的流程或结构的描述各有侧重,某个流程或结构中没有详述的部分,可以参见其他流程或结构的相关描述。
再多了解一些

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

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

相关文献