任务调度方法及装置与流程

文档序号:37213842发布日期:2024-03-05 15:00阅读:15来源:国知局
任务调度方法及装置与流程

本技术涉及资源调度领域,尤其涉及一种任务调度方法及装置。


背景技术:

1、随着大数据(big data)、人工智能(artificial intelligence,ai)、云计算等技术的发展,面对未来更加多样的数据形态和计算场景。通常,由集群中多个计算设备来运行大数据应用、人工智能应用、高性能计算(high performance computing,hpc)应用或云计算应用。以hpc应用被拆分为多个任务(task)为例,集群中计算设备将该多个task分配到集群中多个计算设备中去执行。然而,每个task的类型不同,计算设备在执行已分配的task后,从其他计算设备的任务队列中获取并执行新task时,导致该新task的执行效率受到影响,集群运行应用的效率降低。因此,如何提供一种更有效的任务调度方法成为目前亟需解决的技术问题。


技术实现思路

1、本技术提供了一种任务调度方法及装置,解决了task的执行受到任务调度的影响,集群运行应用的效率降低的问题。

2、第一方面,提供了一种任务调度方法,该方法由集群中的第一设备执行,该第一设备可以是处理器,还可以是指处理核心(core);集群还包括除第一设备外的一个或多个设备。该任务调度方法包括:第一设备在获取到第一设备集合的调度权限后,识别应用中多个任务的类型,并将第一任务分配至第一队列组中与第一任务的类型匹配的待执行队列。其中,第一设备集合包括至少两个设备,该至少两个设备包括:第一设备以及集群中与第一设备对应第一队列组的其他设备,第一队列组包括一种或多种类型的待执行队列,一个设备对应一个待执行队列,前述的第一任务为应用的多个任务中任一个。

3、在本实施例中,第一设备依据应用中任务的类型,将任务分配至不同类型的待执行队列中,因而,任务在执行过程中不会发生任务类型与待执行队列对应的设备不匹配的问题,提升了任务的执行效率,有利于提高集群运行应用的效率。而且,由于第一设备进行对同属于第一队列组的多个待执行队列的设备进行任务调度,无需对集群中所有的设备分配任务,避免了单个设备调度任务所需资源较大、任务调度的时延增加的问题,提升了任务调度的效率,进一步提高了集群运行应用的效率。

4、一种可选的实现方式中,在第一设备识别应用中多个任务的类型之前,本实施例提供的任务调度方法还包括:第一设备获取集群中运行应用的拓扑信息,并根据该拓扑信息以及应用的执行命令,获取集群中运行应用的一个或多个队列组。其中,该拓扑信息用于指示集群中运行应用的多个设备,多个设备包括至少两个设备。上述应用的执行命令用于指示多个设备中每个设备所属的进程,一个或多个队列组包括第一队列组,一个队列组对应一个设备集合。

5、在本实施例中,第一设备根据集群的拓扑信息来确定应用对应的一个或多个队列组,当集群的拓扑信息以及应用的执行情况(由执行命令来表示)变化时,第一设备也可根据变化后的拓扑信息和应用的执行情况,对应用对应的队列组数进行调整,在应用运行所需的资源较少的情况下,使得应用的运行不会长期占用集群的资源,减少集群的资源消耗;在应用运行所需的资源较多的情况下,使得应用的运行不会因集群的资源限制导致应用的运行效率降低,有利于提升应用的运行效果。

6、一种可选的实现方式中,集群中的一个非统一内存访问(non-uniform memoryaccess,numa)设备包括前述的第一设备集合。以第一设备是指处理核心为例进行说明,一个numa节点可包括多个处理核心(设备),由于一个设备对应一个待执行队列,且第一设备集合包含的至少两个设备同属于一个队列组,因此,一个numa节点包括至少一个独立的队列组,当numa节点中的处理核心执行该独立的队列组中多个待执行队列存储的任务时,这些任务的执行不会受到其他numa节点的影响,提升了应用的运行过程中任务执行的准确性。

7、一种可选的实现方式中,第一设备将第一任务分配至第一队列组中与第一任务的类型匹配的待执行队列,包括:若第一任务的类型与第一队列组中第一待执行队列的类型相匹配,则第一设备将第一任务分配至第一待执行队列;该第一待执行队列为前述一种或多种类型的待执行队列中任一个。若第一任务的类型与第一队列组中第一待执行队列的类型不匹配,则第一设备在第一队列组中创建与第一任务的类型相匹配的第二待执行队列,并将第一任务分配至第二待执行队列。

8、应理解,在任务的类型较多的情况下,第一设备可为应用创建多种类型不同的待执行队列,一个待执行队列对应一个设备,因此,不同的设备可以用于执行不同类型的任务,如访存密集型任务、计算密集型任务或者其他类型的任务等,避免了一个设备执行多种任务的效率较低的问题,有利于提升集群运行应用的性能。

9、一种可选的实现方式中,前述第一队列组包括的第一待执行队列中的任务将由其他设备中的第二设备执行,本实施例提供的任务调度方法还包括:在第二设备执行第一待执行队列中的任务后,第一设备将第一队列组包括的第二待执行队列中的第二任务分配至第一待执行队列。其中,第二设备的剩余资源支持执行前述的第二任务,以及,第二任务的预期开销小于或等于第二任务被第二设备执行的预期收益,该第二任务的预期开销用于指示:第二任务从第二待执行队列分配至第一待执行队列的资源消耗情况。

10、在本实施例中,在第一队列组的待执行队列中不存在待执行的任务时,第一设备还可以从同属于一个队列组中的其他待执行队列中获取任务,从而将队列组中所有任务快速的执行完成,有利于提升应用的运行效率。由于第一设备可主动的从其他待执行队列中获取任务,并将获取到得任务分配到其他空闲的设备对应的待执行队列中,在队列组中初始分配的任务不均匀的情况下,可以快速的对队列组对应的所有设备的待执行队列进行协调,因此,可以调队列组对应的所有设备运行应用中多个任务的效率,提升集群运行应用的整体性能。

11、一种可选的实现方式中,在第一队列组中所有待执行队列中无任务时,本实施例提供的任务调度方法还包括:第一设备从应用对应的第二队列组中获取第三任务,并将该第三任务分配至前述的第一待执行队列。其中,该第二设备的剩余资源支持执行第三任务,以及,第三任务的预期开销小于或等于第三任务被第二设备执行的预期收益,该第三任务的预期开销用于指示:第三任务从第二队列组分配至第一队列组的资源消耗情况。

12、应理解,当应用需集群中多个队列组对应的设备来运行时,在第一队列组中已不存在待执行的任务,而应用对应的其他队列组(如第二队列组)还存在大量未执行的任务的情况下,第一设备可从其他队列组中获取任务,并在预期开销小于或等于任务调度所产生的预期收益时,将其他队列组中的任务调度到第一设备所对应的第一队列组,从而提升应用的整体运行效率,避免少数队列组的运行效率较低或者待执行的任务较多导致的处理时延增加的问题。

13、一种可选的实现方式中,本实施例提供的任务调度方法还包括:第一设备释放调度权限。以及,第一设备执行前述第一队列组中与第一设备对应的待执行队列中的任务。示例性的,第一设备释放第一设备集合的调度权限之后,该第一设备用于使用该调度权限的资源也会被释放,有利于第一设备执行应用的一个或多个任务,或者该第一设备还可用于执行其他任务,避免设备的资源被无效的进程或任务所占用,从而提高集群中每个设备的资源利用率。

14、一种可选的实现方式中,假设第一设备对应于第一队列组中的第三待执行队列,该第三待执行队列中的任务是由至少两个设备中任一设备分配的。本实施例提供的任务调度方法还包括:第一设备执行第三待执行队列中的任务。

15、在一种可能的示例中,第一设备释放调度权限之前,还分配了任务到第一设备对应的第三待执行队列中,第一设备点释放调度权限之后,第一设备可执行该第三待执行队列中的任务,因此,集群包括的第一设备集合运行应用中多个任务的效率提升,也避免了第一设备仅有调度功能、而不具有业务运行功能导致资源被占用的问题。

16、在另一种可能的示例中,若第一设备不再具有第一设备集合的调度权限,而是由第一设备集合中其他设备(如第二设备)获取到调度权限,则该第二设备也可为第一设备对应的第三待执行队列分配任务,从而使得第一设备集合中每个设备都可以运行应用中的一个或多个任务,避免了队列组对应的部分设备处于空闲状态,导致应用的运行效率降低的问题。

17、第二方面,提供了一种任务调度装置,该任务调度装置应用于集群中的第一设备。该任务调度装置包括:识别单元和调度单元。

18、识别单元,用于在获取到第一设备集合的调度权限后,识别应用中多个任务的类型。其中,第一设备集合包括至少两个设备,至少两个设备包括:第一设备以及集群中与第一设备对应第一队列组的其他设备,第一队列组包括一种或多种类型的待执行队列,一个设备对应一个待执行队列。

19、调度单元,用于将第一任务分配至第一队列组中与第一任务的类型匹配的待执行队列,第一任务为多个任务中任一个。

20、一种可选的实现方式中,本实施例提供的任务调度装置还包括:采集单元和队列组调整单元。采集单元,用于获取集群中运行应用的拓扑信息;拓扑信息用于指示集群中运行应用的多个设备,多个设备包括至少两个设备。队列组调整单元,用于根据拓扑信息以及应用的执行命令,获取集群中运行应用的一个或多个队列组。应用的执行命令用于指示多个设备中每个设备所属的进程,一个或多个队列组包括第一队列组,一个队列组对应一个设备集合。

21、一种可选的实现方式中,集群中的一个numa节点包括第一设备集合。

22、一种可选的实现方式中,调度单元,具体用于:若第一任务的类型与第一队列组中第一待执行队列的类型相匹配,则将第一任务分配至第一待执行队列;第一待执行队列为一种或多种类型的待执行队列中任一个。调度单元,具体用于:若第一任务的类型与第一队列组中第一待执行队列的类型不匹配,则在第一队列组中创建与第一任务的类型相匹配的第二待执行队列,并将第一任务分配至第二待执行队列。

23、一种可选的实现方式中,第一队列组包括的第一待执行队列中的任务将由其他设备中的第二设备执行。调度单元还用于:在第二设备执行第一待执行队列中的任务后,将第一队列组包括的第二待执行队列中的第二任务分配至第一待执行队列。其中,第二设备的剩余资源支持执行第二任务,以及,第二任务的预期开销小于或等于第二任务被第二设备执行的预期收益,第二任务的预期开销用于指示:第二任务从第二待执行队列分配至第一待执行队列的资源消耗情况。

24、一种可选的实现方式中,在第一队列组中所有待执行队列中无任务时,调度单元还用:从应用对应的第二队列组中获取第三任务。以及,将第三任务分配至第一待执行队列。其中,第二设备的剩余资源支持执行第三任务,以及,第三任务的预期开销小于或等于第三任务被第二设备执行的预期收益,第三任务的预期开销用于指示:第三任务从第二队列组分配至第一队列组的资源消耗情况。

25、一种可选的实现方式中,本实施例提供的任务调度装置还包括:权限控制单元,用于释放调度权限。

26、一种可选的实现方式中,第一设备对应于第一队列组中的第三待执行队列,第三待执行队列中的任务是由至少两个设备中任一设备分配的。本实施例提供的任务调度装置还包括:任务执行单元,用于执行第三待执行队列中的任务。

27、第三方面,提供了一种集群,该集群包括第一设备,以及除第一设备外的一个或多个设备。第一设备在获取到第一设备集合的调度权限后,识别应用中多个任务的类型,并将第一任务分配至第一队列组中与第一任务的类型匹配的待执行队列。其中,第一设备集合包括至少两个设备,该至少两个设备包括:第一设备以及集群中与第一设备对应第一队列组的其他设备,第一队列组包括一种或多种类型的待执行队列,一个设备对应一个待执行队列,前述的第一任务为应用的多个任务中任一个。

28、第四方面,提供了一种芯片,包括:处理器和供电电路。该供电电路用于为处理器供电。处理器用于执行第一方面中任一种实现方式提供的任务调度方法。

29、第五方面,提供了一种网卡,包括:第四方面提供的芯片和接口。该接口用于接收来自板卡之外的其他装置的信号并发送至芯片,或用于将来自芯片的信号发送给板卡之外的其他装置。

30、在一些可选的情形中,该网卡可以是一种可插拔的中介(interposer)卡、转换卡或者其他印制电路板(printed circuit board,pcb)卡等。

31、第六方面,提供了一种计算设备,包括:第五方面所述的网卡。该计算设备可用于实现第一方面中任一种可能的实现方式所示出的方法步骤。

32、第七方面,提供了一种计算机可读存储介质,该存储介质中存储有计算机程序或指令,当计算机程序或指令被计算设备执行时,实现第一方面中任一种实现方式提供的任务调度方法。如该计算设备是指一个处理单元、处理核心或者处理器等。

33、第八方面,提供了一种计算机程序产品,计算机程序产品在计算设备上运行时,使得计算设备执行第一方面中任一种实现方式提供的任务调度方法。如该计算设备是指一个处理单元、处理核心或者处理器等。

34、第九方面,提供一种芯片系统,该芯片系统包括处理器,用于实现上述第一方面的方法中第一设备的功能。在一种可能的设计中,所述芯片系统还包括存储器,用于保存程序指令和/或数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。

35、以上第二方面至第九方面中任一种实现方式的有益效果,可参照第一方面以及第一方面中任一种实现方式的阐述,在此不予赘述。

36、本技术在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1