一种任务调度方法及装置

文档序号:30308422发布日期:2022-06-05 08:20阅读:106来源:国知局
一种任务调度方法及装置

1.本发明涉及计算机领域,特别涉及一种任务调度方法及装置。


背景技术:

2.随着计算机和半导体等相关技术的快速发展,芯片设计和芯片制造也随之飞速发展。在芯片制造之前,芯片的设计尤为重要,电子设计自动化(electronic design automation,eda)作为一种芯片设计工具,被芯片设计师广泛使用。
3.当前eda工具可以完成芯片的设计、仿真、综合和验证等操作,随着芯片设计规模的增长和设计复杂度的增加,eda工具需要的计算资源越来越多,因此当前eda工具的计算资源已经迁移到高性能计算集群,以满足eda工具的算力需求。
4.高性能计算集群需要处理eda工具的众多任务,因此需要对多个任务进行调度,以便能够快速的进行芯片设计,但是当前的任务调度方法,任务等待时间较长,全部任务完成时间较长,不能满足芯片的快速设计需求。


技术实现要素:

5.有鉴于此,本技术的目的在于提供一种任务调度方法,能够缩短任务等待时间,加快任务调度时间,缩短全部任务的完成时间,满足芯片的快速设计需求。
6.为实现上述目的,本技术有如下技术方案:
7.本技术实施例提供了一种任务调度方法,所述方法包括:
8.获取多个工作流中每个任务的许可值,所述许可值反映所述任务的可执行节点,所述每个工作流包括至少一个任务;
9.将每个工作流中的任务按照许可值的降序分配优先级;
10.将不同工作流中相同优先级的多个目标任务分为同一组;
11.获取同一组中所述多个目标任务中每个目标任务的等级值;
12.根据所述每个组的优先级、同一优先级中多个目标任务的等级值顺序和每个目标任务的可执行节点,调度所述多个目标任务。
13.可选地,所述根据所述每个组的优先级、同一优先级中多个目标任务的等级值顺序和每个目标任务的可执行节点,调度所述多个目标任务包括:
14.按照优先级的降序确定每个组的第一调度顺序;
15.将同一优先级中多个目标任务按照等级值的降序排列,得到第二调度顺序;
16.按照所述第二调度顺序调度完毕第一优先级中多个目标任务之后,继续按照所述第一调度顺序调度其他优先级中多个目标任务。
17.可选地,所述第二调度顺序包括多个顺序,所述按照所述第二调度顺序调度完毕第一优先级中多个目标任务包括:
18.判断第一顺序的目标任务对应的可执行节点的剩余资源是否满足所述第一顺序的目标任务执行;
19.若满足,则将所述第一顺序的目标任务调度至所述第一顺序的目标任务对应的可执行节点;
20.若不满足,则继续判断第二顺序的目标任务对应的可执行节点的剩余资源是否满足所述第二顺序的目标任务执行,直到判断完毕第一优先级中全部调度顺序的目标任务。
21.可选地,若所述第一顺序的目标任务对应的可执行节点为多个且多个可执行节点的剩余资源都满足所述第一顺序的目标任务执行;
22.所述将所述第一顺序的目标任务调度至所述第一顺序的目标任务对应的可执行节点包括:
23.获取所述第一顺序的目标任务对应的多个可执行节点执行所述第一顺序的目标任务的执行时间;
24.将所述第一顺序的目标任务调度至执行时间最短的可执行节点。
25.可选地,所述执行时间是利用时间预测模型进行预测得到的。
26.可选地,所述每个目标任务的可执行节点为同一节点,所述节点包括多个资源;所述第二调度顺序包括多个顺序;
27.所述按照所述第二调度顺序调度完毕第一优先级中多个目标任务包括:
28.判断所述节点的资源是否满足所述第一顺序的目标任务执行;
29.若满足,则为所述第一顺序的目标任务分配资源;
30.若不满足,则继续判断所述节点的剩余资源是否满足所述第二顺序的目标任务执行,直到判断完毕第一优先级中全部调度顺序的目标任务。
31.可选地,所述每个任务的许可值是根据所述任务在每个可执行节点中的执行时间、所述任务和其他任务的平均通讯时间、其他任务的许可值和所述任务的每个可执行节点数量进行确定的。
32.可选地,所述每个目标任务的等级值是根据所述目标任务对应的工作流的关键路径长度cpl和所述目标任务对应的工作流的剩余任务数量进行确定的。
33.可选地,所述方法还包括:
34.实时监测所述任务的可执行节点的资源信息。
35.本技术实施例还提供一种任务调度装置,所述装置包括:
36.第一获取单元,用于获取多个工作流中每个任务的许可值,所述许可值反映所述任务的可执行节点,所述每个工作流包括至少一个任务;
37.第一分配单元,用于将每个工作流中的任务按照许可值的降序分配优先级;
38.第二分配单元,用于将不同工作流中相同优先级的多个目标任务分为同一组;
39.第二获取单元,用于获取同一组中所述多个目标任务中每个目标任务的等级值;
40.调度单元,用于根据所述每个组的优先级、同一优先级中多个目标任务的等级值顺序和每个目标任务的可执行节点,调度所述多个目标任务。
41.本技术实施例提供了一种任务调度方法,包括获取多个工作流中每个任务的许可值,其中,每个工作流包括至少一个任务,即多个任务分属至不同的工作流,许可值反映任务的可执行节点,即该任务只能在其可执行节点进行执行,将每个工作流中的任务按照许可值的降序分配优先级,将不同工作流中相同优先级的多个目标任务分为同一组,即针对同一工作流中的多个任务进行资源分配排序,获取同一组中多个目标任务中每个目标任务
的等级值,即针对不同工作流中的多个任务进行资源排序,根据每个组的优先级、同一优先级中多个目标任务的等级值顺序和每个目标任务的可执行节点,调度多个目标任务,也就是说,可以根据优先级分组,后续可以先为优先级较高的组的任务分配资源,同一优先级的组可以先为该组内等级值较高的任务分配资源,本技术实施例在进行任务调度时,既考虑了同一工作流中任务的优先级,又考虑了不同工作流中任务的等级,能够最大化的缩短任务等待时间,加快任务调度时间,并且在分配资源时参考了每个任务的可执行节点情况,能够避免为任务分配不能执行该任务的节点,进一步缩短了全部任务的完成时间,满足芯片的快速设计需求。
附图说明
42.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
43.图1示出了本技术实施例提供的一种任务调度方法的流程示意图;
44.图2示出了本技术实施例提供的一种工作流的示意图;
45.图3示出了本技术实施例提供的另一种工作流的示意图;
46.图4示出了本技术实施例提供的工作流到来间隔和平均队列等待时间的示意图;
47.图5示出了本技术实施例提供的工作流到来间隔和平均等待比例的示意图;
48.图6示出了本技术实施例提供的工作流到来间隔和平均完工时间的示意图;
49.图7示出了本技术实施例提供的一种任务调度装置的结构示意图。
具体实施方式
50.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
51.随着计算机和半导体等相关技术的快速发展,芯片设计和芯片制造也随之飞速发展,目前的半导体工艺节点已2000年的180纳米(nm)缩小至了3nm,芯片上晶体管数量也由千万级达到了百亿级的规模。因此,在芯片制造之前,芯片的设计尤为重要,电子设计自动化(electronic design automation,eda)作为一种芯片设计工具,被芯片设计师广泛使用。
52.当前eda工具可以完成芯片的设计、仿真、综合和验证等操作,随着芯片设计规模的增长和设计复杂度的增加,eda工具需要的计算资源越来越多,因此当前eda工具的计算资源已经迁移到高性能计算集群,以满足eda工具的算力需求。
53.高性能计算集群需要处理eda工具的众多任务,因此需要对多个任务进行调度,以便能够快速的进行芯片设计。
54.当前的任务调度方法包括rank_hybd方法和在线工作流管理(online workflow management,owm)方法。rank_hybd方法为将所有可执行任务放入准备队列,然后在准备队
列中将任务按照优先级排序,若准备队列中的任务都属于同一个工作流,按照升序排列,反之,按照降序排列。该方法存在一些问题:若新来的任务优先级大于队列中的任务,则队列中的任务会一致延迟,造成较差的公平性,导致任务等待时间较长,全部任务完成时间较长。owm方法对上述方法进行改进,在每次调度时从每个工作流中取出一个优先级最高的任务放入准备队列,在准备队列中按照优先级进行排序,排序方式和rank_hybd方法一致。在为任务分配资源时,采用自适应分配策略(adaptive allocation),若当前有且仅有一个节点满足任务资源需求,且该节点为最佳节点(完成任务时间最短),才会将任务分配到该节点。但owm方法的自适应分配策略也会存在一些问题,若当前任务未分配到资源,那么在下一次分配之前,有可能新到来的工作流中的任务的优先级高于该任务,会导致当前任务资源分配延迟,从而导致了任务等待时间较长,全部任务完成时间较长。
55.由此可见,当前的任务调度方法,任务等待时间较长,全部任务完成时间较长,并且当前的任务调度方法,没有考虑调度中任务收到许可(license)限制的问题,即该任务只能在该节点许可的情况下执行,若该节点不允许该任务执行,则无法为该任务分配该节点的资源,也就是说,当前的任务调度方法,不能满足芯片的快速设计需求。
56.基于此,本技术实施例提供了一种任务调度方法,包括获取多个工作流中每个任务的许可值,其中,每个工作流包括至少一个任务,即多个任务分属至不同的工作流,许可值反映任务的可执行节点,即该任务只能在其可执行节点进行执行,将每个工作流中的任务按照许可值的降序分配优先级,将不同工作流中相同优先级的多个目标任务分为同一组,即针对同一工作流中的多个任务进行资源分配排序,获取同一组中多个目标任务中每个目标任务的等级值,即针对不同工作流中的多个任务进行资源排序,根据每个组的优先级、同一优先级中多个目标任务的等级值顺序和每个目标任务的可执行节点,调度多个目标任务,也就是说,可以根据优先级分组,后续可以先为优先级较高的组的任务分配资源,同一优先级的组可以先为该组内等级值较高的任务分配资源,本技术实施例在进行任务调度时,既考虑了同一工作流中任务的优先级,又考虑了不同工作流中任务的等级,能够最大化的缩短任务等待时间,加快任务调度时间,并且在分配资源时参考了每个任务的可执行节点情况,能够避免为任务分配不能执行该任务的节点,进一步缩短了全部任务的完成时间,满足芯片的快速设计需求。
57.为了更好地理解本技术的技术方案和技术效果,以下将结合附图对具体的实施例进行详细的描述。
58.参考图1所示,为本技术实施例提供的一种任务调度方法的流程图,该方法包括以下步骤:
59.s101,获取多个工作流中每个任务的许可值。
60.在本技术的实施例中,eda工具进行芯片设计的多个任务可以分属于多个工作流,每个工作流包括至少一个任务,即工作流为任务的集合。工作流可以用有向无环图(dag)来进行表示,表示为g={v,e,c,w},参考图2所示。其中,v表示工作流中的任务集合,e表示有任务节点之间有向边的集合,e
i,j
表示任务ni和nj之间的有向边,c表示有向边的权值集合,c
i,j
表示任务ni和nj之间的平均通讯时间,w表示任务执行时间的集合,w
i,k
表示任务ni在节点k上的需要的执行时间。
61.工作流的关键路径是指从入口entry节点到推出exit节点之间具有最大路径长度
的路径。参考图2所示,dag从entry节点到exit节点共有5条路径,每条路径的路径长度如表1所示,可以看出a
→d→
g为该dag的关键路径,则该dag的关键路径长度为19。
62.表1 dag中的所有路径表
63.序号路径路径长度1a
→c→
f162a
→c→
g153a
→d→
g194b
→d→
g185b
→e→
g11
64.可以获取每个工作流的关键路径长度(critical path length,cpl),具体可以从exit节点开始,向上通过递归的方式计算dag的关键路径长度,计算公式如下所示:
[0065][0066]
其中,为任务ni的平均执行时间,为任务ni与nj之间的平均通讯时间,cpl(ni)为从entry节点到ni节点的关键路径长度。将exit节点和entry节点的执行时间视为0,与其他任务的通讯时间视为0。
[0067]
在本技术的实施例中,获取每个任务的许可值(license-based rank value in heterogeneous environment,lrhe),该许可值可以反映任务的可执行节点,即该任务只能在其可执行节点进行执行。
[0068]
在eda工具中,每个任务可以对应可执行节点的浮动许可证,此时该任务可以分配全部节点的资源进行执行。每个任务也可以对应可执行节点的固定许可证,此时该任务被限制使用范围,仅可以分配至固定的可执行节点进行执行。
[0069]
具体的,每个任务的许可值是根据任务在每个可执行节点中的执行时间w
i,k
、任务和其他任务的平均通讯时间其他任务的许可值lrhe(nj)和任务的每个可执行节点数量nums(pset(ni))进行确定的。
[0070]
作为一种示例,可以利用以下的公式获得:
[0071][0072]
其中,pset(ni)为任务ni的可执行节点集合,nums(pset(ni))为任务ni的可执行节点的总数。对于使用浮动许可证的eda任务,该集合为所有节点,对于使用固定许可证的任务或者限制了使用范围的许可证,该集合为仅有对应许可license的节点。w
i,k
为任务ni在节点k所需要的执行时间,为任务ni和其子任务所需的平均通讯时间。
[0073]
以上公式本领域技术人员可以进行任意变型,不作为限定得到每个任务的许可值的具体手段。
[0074]
s102,将每个工作流中的任务按照许可值的降序分配优先级。
[0075]
在本技术的实施例中,在获取得到每个任务的许可值之后,可以将每个任务都加
入准备队列中,以便为任务分配资源。
[0076]
可以将准备队列中每个工作流中的任务按照许可值的降序进行排序,根据排序为多个任务分配优先级(level),level值可以从1开始递增,代表优先级从高至低。
[0077]
也就是说,针对同一工作流中的任务,可以按照许可值lrhe进行优先级排序,确定任务的顺序。
[0078]
s103,将不同工作流中相同优先级的多个目标任务分为同一组。
[0079]
在本技术的实施例中,在根据许可值lrhe排序完毕之后,可以将不同工作流中相同优先级的多个目标任务分为同一组。也就是说,根据任务在不同工作流中的level值,将level相同的任务分为同一组。
[0080]
在将level相同的任务分为同一组之后,每个组对应的level值也不相同,即每个组也具有优先级。
[0081]
s104,获取同一组中所述多个目标任务中每个目标任务的等级值。
[0082]
在本技术的实施例中,在将不同工作流同一优先级的任务分为同一组之后,可以获取同一组中多个目标任务中每个目标任务的等级rankr值,而后可以根据等级值在组内为每个目标任务进行排序,确定资源的分配顺序。
[0083]
具体的,每个目标任务的等级rankr值可以根据目标任务对应的工作流的关键路径长度cpl和目标任务对应的工作流的剩余任务数量进行确定。
[0084]
作为一种示例,可以利用以下的公式获得:
[0085][0086]
其中,prt为目标任务对应的工作流的剩余任务数量百分比,cpl为目标任务对应的工作流的关键路径长度。
[0087]
以上公式本领域技术人员可以进行任意变型,不作为限定得到每个目标任务的rankr值的具体手段。
[0088]
s105,根据所述每个组的优先级、同一优先级中多个目标任务的等级值顺序和每个目标任务的可执行节点,调度所述多个目标任务。
[0089]
在本技术的实施例中,在根据每个任务的许可值将任务分组之后,每个组的优先级,即level值不同,同一优先级中多个目标任务的等级值也不同,每个目标任务的可执行节点也不同,后续可以根据每个组的优先级、同一优先级中多个目标任务的等级值顺序和每个目标任务的可执行节点,调度多个目标任务。
[0090]
具体的,可以按照优先级的降序确定每个组的第一调度顺序,由于将不同工作流的同一优先级,即level值的任务分为同一组,因此每个组的level值也不相同,可以按照level值由低到高的顺序,即优先级的降序为多个组进行排序,得到多个组的第一调度顺序。
[0091]
而后将同一优先级中多个目标任务按照等级值的降序排列,得到第二调度顺序,也就是说,在将不同工作流的同一优先级的任务分为同一组之后,该组内的多个目标任务可以继续按照等级rankr值进行降序排列,以便为不同工作流同一level值的目标任务进行排序,得到多个目标任务的第二调度顺序。
[0092]
之后按照第二调度顺序调度完毕第一优先级中多个目标任务之后,继续按照第一
调度顺序调度其他优先级中多个目标任务,也就是说,可以先为第一优先级,即level值为1的多个目标任务分配资源,分配资源的顺序为根据等级值排序的第二调度顺序,在调度完毕level值为1的组之后,继续按照第一调度顺序,为第二优先级,即level值为2的多个目标任务分配资源,在继续按照该组内的第二调度顺序调度完毕之后,继续按照第一调度顺序依次调度其他level值的目标任务,直到调度完毕。
[0093]
在本技术的实施例中,第二调度顺序可以包括多个顺序,即每一个组具有较多目标任务,并且目标任务的等级值不同,则每个目标任务都具有不同的顺序。
[0094]
具体的,按照第二调度顺序调度完毕第一优先级中多个目标任务可以按照以下2种可能的实现方式进行:
[0095]
第一种可能的实现方式,判断第一顺序的目标任务对应的可执行节点的剩余资源是否满足第一顺序的目标任务执行,也就是判断该level组内等级值最高的目标任务对应的节点剩余资源是否足够该目标任务执行,若满足,则将第一顺序的目标任务调度至第一顺序的目标任务对应的可执行节点,若不满足,则本轮先不为该目标任务分配资源,继续判断第二顺序的目标任务对应的可执行节点的剩余资源是否满足第二顺序的目标任务执行,即继续判断该level组内等级值第二高的目标任务对应的节点剩余资源是否足够该目标任务执行,直到按照等级值的顺序判断完毕第一优先级中全部调度顺序的目标任务。
[0096]
在实际应用中,若第一顺序的目标任务对应的可执行节点为多个且多个可执行节点的剩余资源都满足第一顺序的目标任务执行,则可以获取第一顺序的目标任务对应的多个可执行节点执行第一顺序的目标任务的执行时间,即获取多个可执行节点执行该目标任务的执行时间,而后将第一顺序的目标任务调度至执行时间最短的可执行节点,以便进一步缩短任务执行之间,缩短全部任务完成时间。
[0097]
在本技术的实施例中,目标任务在不同的可执行节点的执行时间可以有以下3种方法获取:
[0098]
第一种方法:根据目标任务的属性信息,例如目标任务所属用户或应用,目标任务请求的资源或请求执行时间等信息确定执行时间。可以将请求的执行时间作为可执行节点的执行时间。但是该种方法主要应用在无相关历史数据的情况下。
[0099]
第二种方法:根据目标任务的属性信息查询到较多的相关历史数据,相关历史数据的条数可以大于3条。根据相关历史数据生成特征数据,特征数据可以是历史执行时间平均值或最大值,将特征数据输入时间预测模型,预测得到目标任务的执行时间。
[0100]
第三种方法:若目标任务的属性信息中不包括请求执行时间,则利用目标任务所属的应用的相似应用的平均执行时间作为目标任务的执行时间。具体的,可以将获取得到的相似应用的执行时间作为最慢的悲观估计值t
p
,即速度最快的节点的执行时间,其他的节点根据该悲观估计值t
p
按如下公式进行适当延长:
[0101][0102]
其中,sf为速度最快的节点的算力,sk为节点k的算力。
[0103]
以上介绍了3中预测可执行节点执行目标任务的执行时间,可以辅助进行任务调度,以便任务分配至最优节点,即执行时间最短的节点进行执行,进一步缩短全部任务的完成时间,加快芯片设计。
[0104]
第二种可能的实现方式,每个目标任务的可执行节点为同一节点,该节点包括多个资源。可以判断该节点的资源是否满足第一顺序的目标任务执行,也就是判断该level组内等级值最高的目标任务对应的节点剩余资源是否足够该目标任务执行,若满足,则为第一顺序的目标任务分配资源,若不满足,则本轮先不为该目标任务分配该节点的资源,继续判断该节点的剩余资源是否满足第二顺序的目标任务执行,直到判断完毕第一优先级中全部调度顺序的目标任务。
[0105]
在本技术的实施例中,任务调度方法应用于计算机设备,例如服务器等。计算机设备还能够实时检测任务对应的可执行节点的资源信息和任务的许可信息,以便及时调整任务调度安排。计算机设备还能够接收eda工具在任意时刻提交的任务或工作流。
[0106]
下面以具体的示例来介绍本技术实施例提供的任务调度方法:假设计算机集群中有一个节点,且该节点中有20份资源。假设当前有四个工作流a、b、c、d,参考图3所示。工作流到来后,计算机设备会接收工作流中的多个任务,利用接收到的多个任务的属性信息对任务的执行时间进行预测,以便得到任务的执行时间辅助任务进行调度。
[0107]
可以计算四个工作流每个工作流的关键路径长度cpl,以及计算多个任务每个任务的许可lhre值。当计算机集群中存在空闲资源,则将当前全部可执行任务放入准备队列。参考图3所示,a1、a2、b1、b2、c1、c2、d1为就绪的任务,为可执行任务,即当前可执行任务有a1、a2、b1、b2、c1、c2、d1,而a3、a4、b3~b7、c3~c5、d2~d5为未就绪的任务,为不可执行任务。参考表1所示,为当前可执行任务的许可lrhe值和需求资源resource。
[0108]
表1可执行任务的许可lrhe值和需求资源resource
[0109]
taska1a2b1b2c1c2d1lrhe1298151396resource164842048
[0110]
将每个工作流中的任务按照许可lrhe值的降序分配优先级,将不同工作流中相同优先级的多个目标任务分为同一组,即将属于同一工作流的任务按照其lrhe值进行降序排列,然后按照排序对任务进行level标记,完成任务分组,分组结果为a1、b2、c1、d1属于第一优先级,属于level_1组,任务a2、b1、c2属于第二优先级,属于level_2组。
[0111]
获取同一组中多个目标任务中每个目标任务的等级值,而后根据等级值降序将多个目标任务进行排序。在第一优先级的组中,即level_1组中,如表2所示,任务a1的rankr值为0.0833、任务b2的rankr值为0.071、任务c1的rankr值为0.077,任务d1的rankr值为0.167,将这四个任务按照rankr降序排列,顺序为d1、a1、c1、b2。在第二优先级的组中,即level_2组中,如表3所示,任务a2的rankr值为0.0833,任务b1的rankr值为0.778,任务c2的值为0.0769,将任务按照rankr值降序排列,顺序为a2、b1、c2。
[0112]
表2第一优先级的目标任务资源分配结果
[0113]
任务rankr需求资源是否分配到资源d10.1678√a10.083316
×
c10.076920
×
b20.06674√
[0114]
接下来按照优先级的顺序,即第一调度顺序,先为level_1组中的目标任务进行分
配资源,集群中有20份资源,d1的需求资源数目为8,集群中的资源满足任务d1的资源需求,d1分配到资源。而任务a1、c1的需求资源数目分别为16和20,在根据第二调度顺序为d1分配资源之后,集群的剩余资源为12,任务a1、c1不满足资源需求,因此放弃本轮资源分配,任务b2的需求资源数目为8,集群的剩余资源满足任务b2的资源需求,将资源分配给b2,第一轮资源分配结束,此时集群剩余8份资源。
[0115]
表3第二优先级的目标任务资源分配结果
[0116]
任务rankr需求资源是否分配到资源a20.08334√b10.7788
×
c20.07694√
[0117]
后续依旧依照第一调度顺序,接着为level_2组中的目标任务进行分配资源,此时集群剩余8份资源。根据level_2组中的第二调度顺序,首先为任务a2分配资源,任务a2的需求资源数目为4,集群的剩余资源满足a2的需求,将资源分配给a2,在根据第二调度顺序为a2分配资源之后,此时集群的剩余资源为4,任务b1的需求资源数目为8,无法满足任务b1的资源需求,故本轮放弃b1的资源分配,任务c2的需求资源数目为4,集群的剩余资源满足任务c2资源需求,将剩余资源分配给c2。
[0118]
由此可见,本技术实施例提供的任务调度方法,可以根据优先级分组,后续可以先为优先级较高的组的任务分配资源,同一优先级的组可以先为该组内等级值较高的任务分配资源,本技术实施例在进行任务调度时,既考虑了同一工作流中任务的优先级,又考虑了不同工作流中任务的等级,能够最大化的缩短任务等待时间,加快任务调度时间,并且在分配资源时参考了每个任务的可执行节点情况,能够避免为任务分配不能执行该任务的节点,进一步缩短了全部任务的完成时间,满足芯片的快速设计需求。
[0119]
相较于owm方法,本技术实施例提出的任务调度方法能够为每个工作流中的任务都分配资源,公平性更高,可以更公平的对工作流进行调度,同时降低工作流的等待时间。
[0120]
下面以具体的示例来介绍本技术实施例提供的owm方法:owm使用向上权重ranku来进行调度,例如:
[0121][0122]
其中,是任务的平均计算代价,succ(nj)为任务ni的直接后继任务,为任务ni和nj之间的通讯时间。另外,对于退出节点,ranku(n
exit
)=0。
[0123]
owm每次从每个工作流中取出一个ranku值最大的可执行任务放入准备队列,并将准备队列中的任务按照ranku升序排列。如下表4所示,按照d1、a1、c1、b2的顺序依次为任务分配资源。任务d1和b2得到了资源,第一轮分配结束。此时集群剩余8份资源。
[0124]
表2 owm第一轮分配结果
[0125]
任务ranku需求资源是否分配到资源d168√a11216
×
c11320
×
b2154√
[0126]
在第二轮分配中,owm依旧是取出每个工作流中ranku最大的任务放入准备队列,并在准备队列中按照ranku降序排列。排序结果如下表5所示,开始进行资源分配,集群资源不满足任务c1和a1的资源需求,满足任务b1的资源需求,故将资源分配给b1。结果如下表所示。结束第二轮调度。
[0127]
表3 owm第二轮分配结果
[0128]
任务ranku需求资源是否分配到资源b188√a11216
×
c11320
×
[0129]
根据上述结果可以看到,本技术实施例提供的任务调度方法和owm方法在第一轮资源分配结果一致,但在第二轮资源分配中表现出了差异。owm总共分配给工作流b中的2个任务资源,工作流d中1个任务资源,并没有给工作流a、c中的任务分配资源。而本技术实施例提供的任务调度方法给工作流a、b、c、d中的任务都分配了资源,也就是说,本技术提出的任务调度方法可以更公平的对工作流进行调度,同时降低工作流的等待时间。
[0130]
作为一种示例,利用以下结果对本技术实施例提供的任务调度方法的效果进行展示。集群配置如下表6所示,有四个不同配置的节点,同时集群中还有3种浮动许可证(可以在任意节点上使用)和3种绑定节点的许可证(只能在固定节点使用)。我们生成了50组任务流来进行实验,每个任务流中有20~40个不等的工作流(每个工作流中的任务数量从1~40随机,执行时间从100~1000不等),测试了工作流到来间隔从50~300时刻的工作流调度结果。
[0131]
表6集群资源配置情况表
[0132]
节点速度cpumem固定许可证node0最快64128l1、l3node1快64128l2node2慢64128l1node3最慢128256l1、l2、l3
[0133]
参考图4所示,为本技术实施例提供的工作流到来间隔和平均队列等待时间的示意图。队列等待时间(tw)指的是工作流提交到准备队列的第一个任务开始的时间。由图中看出,本技术实施例提供的任务调度方法hews相较于其他方法,平均队列等待时间(tw)较短,任务调度效率较高。
[0134]
参考图5所示,为本技术实施例提供的工作流到来间隔和平均等待比例的示意图。平均等待比例(wait ratio,wr)指的是工作流的队列等待时间tw比其关键路径长度cpl。用wr来衡量工作流提交到集群后延迟执行的情况,wr值越低,说明工作流遭到延迟的程度越低。由图中看出,本技术实施例提供的任务调度方法hews相较于其他方法,wr值较低,工作流延迟程度较低,任务调度效率较高。
[0135]
参考图6所示,为本技术实施例提供的工作流到来间隔和平均完工时间的示意图。平均完工时间(tm)指的是工作流从提交到工作流的所有任务都执行结束的时间。由图中看出,本技术实施例提供的任务调度方法hews相较于其他方法,平均完工时间(tm)较低,任务
调度效率较高。
[0136]
本技术实施例提供了一种任务调度方法,包括获取多个工作流中每个任务的许可值,其中,每个工作流包括至少一个任务,即多个任务分属至不同的工作流,许可值反映任务的可执行节点,即该任务只能在其可执行节点进行执行,将每个工作流中的任务按照许可值的降序分配优先级,将不同工作流中相同优先级的多个目标任务分为同一组,即针对同一工作流中的多个任务进行资源分配排序,获取同一组中多个目标任务中每个目标任务的等级值,即针对不同工作流中的多个任务进行资源排序,根据每个组的优先级、同一优先级中多个目标任务的等级值顺序和每个目标任务的可执行节点,调度多个目标任务,也就是说,可以根据优先级分组,后续可以先为优先级较高的组的任务分配资源,同一优先级的组可以先为该组内等级值较高的任务分配资源,本技术实施例在进行任务调度时,既考虑了同一工作流中任务的优先级,又考虑了不同工作流中任务的等级,能够最大化的缩短任务等待时间,加快任务调度时间,并且在分配资源时参考了每个任务的可执行节点情况,能够避免为任务分配不能执行该任务的节点,进一步缩短了全部任务的完成时间,满足芯片的快速设计需求。
[0137]
基于以上实施例提供的任务调度方法,本技术实施例还提供了一种任务调度装置,参见图7,为本实施例提供的一种任务调度装置的结构示意图,该装置700包括:
[0138]
第一获取单元710,用于获取多个工作流中每个任务的许可值,所述许可值反映所述任务的可执行节点,所述每个工作流包括至少一个任务;
[0139]
第一分配单元720,用于将每个工作流中的任务按照许可值的降序分配优先级;
[0140]
第二分配单元730,用于将不同工作流中相同优先级的多个目标任务分为同一组;
[0141]
第二获取单元740,用于获取同一组中所述多个目标任务中每个目标任务的等级值;
[0142]
调度单元750,用于根据所述每个组的优先级、同一优先级中多个目标任务的等级值顺序和每个目标任务的可执行节点,调度所述多个目标任务。
[0143]
可选地,所述调度单元750,具体用于:
[0144]
按照优先级的降序确定每个组的第一调度顺序;
[0145]
将同一优先级中多个目标任务按照等级值的降序排列,得到第二调度顺序;
[0146]
按照所述第二调度顺序调度完毕第一优先级中多个目标任务之后,继续按照所述第一调度顺序调度其他优先级中多个目标任务。
[0147]
可选地,所述第二调度顺序包括多个顺序,所述调度单元750,具体用于:
[0148]
判断第一顺序的目标任务对应的可执行节点的剩余资源是否满足所述第一顺序的目标任务执行;
[0149]
若满足,则将所述第一顺序的目标任务调度至所述第一顺序的目标任务对应的可执行节点;
[0150]
若不满足,则继续判断第二顺序的目标任务对应的可执行节点的剩余资源是否满足所述第二顺序的目标任务执行,直到判断完毕第一优先级中全部调度顺序的目标任务。
[0151]
可选地,若所述第一顺序的目标任务对应的可执行节点为多个且多个可执行节点的剩余资源都满足所述第一顺序的目标任务执行;
[0152]
所述调度单元750,具体用于:
[0153]
获取所述第一顺序的目标任务对应的多个可执行节点执行所述第一顺序的目标任务的执行时间;
[0154]
将所述第一顺序的目标任务调度至执行时间最短的可执行节点。
[0155]
可选地,所述执行时间是利用时间预测模型进行预测得到的。
[0156]
可选地,所述每个目标任务的可执行节点为同一节点,所述节点包括多个资源;所述第二调度顺序包括多个顺序;
[0157]
所述调度单元750,具体用于:
[0158]
判断所述节点的资源是否满足所述第一顺序的目标任务执行;
[0159]
若满足,则为所述第一顺序的目标任务分配资源;
[0160]
若不满足,则继续判断所述节点的剩余资源是否满足所述第二顺序的目标任务执行,直到判断完毕第一优先级中全部调度顺序的目标任务。
[0161]
可选地,所述每个任务的许可值是根据所述任务在每个可执行节点中的执行时间、所述任务和其他任务的平均通讯时间、其他任务的许可值和所述任务的每个可执行节点数量进行确定的。
[0162]
可选地,所述每个目标任务的等级值是根据所述目标任务对应的工作流的关键路径长度cpl和所述目标任务对应的工作流的剩余任务数量进行确定的。
[0163]
可选地,所述装置还包括:
[0164]
监测单元,用于实时监测所述任务的可执行节点的资源信息。
[0165]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
[0166]
以上所述仅是本技术的优选实施方式,虽然本技术已以较佳实施例披露如上,然而并非用以限定本技术。任何熟悉本领域的技术人员,在不脱离本技术技术方案范围情况下,都可利用上述揭示的方法和技术内容对本技术技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本技术技术方案的内容,依据本技术的技术实质对以上实施例所做的任何的简单修改、等同变化及修饰,均仍属于本技术技术方案保护的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1