任务调度方法、装置、设备及存储介质制造方法及图纸

技术编号:39188974 阅读:11 留言:0更新日期:2023-10-27 08:36
本申请提供了一种任务调度方法、装置、设备及存储介质,属于计算机领域。本申请将局部搜索有效地引入到如何优化任务调度的问题,基于一个完整的调度方案来构建另一个调度方案,从而考虑到待调度的所有任务,降低了传统的基于贪心算法的调度方案中由于算法短视性带来的影响,并设计邻域动作时考虑了关键路径,通过改变关键路径来构建调度方案。此外,在评估邻域解时不仅考虑执行任务本身的时间开销,也考虑了从内存中读写数据的时间开销。基于此,显著提升了获得的调度方案的质量,从而减小了完成所有任务总共所需耗费的时长。完成所有任务总共所需耗费的时长。完成所有任务总共所需耗费的时长。

【技术实现步骤摘要】
任务调度方法、装置、设备及存储介质


[0001]本申请涉及计算机领域,特别涉及一种任务调度方法、装置、设备及存储介质。

技术介绍

[0002]在智能制造与高性能计算等领域中,一个重要的研究方向是,如何调度资源依次执行多项任务,以节省完成所有任务所需的时间。
[0003]相关技术中,计算机按照设定的贪心规则,一个一个地(one

by

one)地依次为任务分配资源,从而生成一个调度方案,然后计算机使用该调度方案进行任务调度。
[0004]采用上述方法时,由于贪心算法的短视性,导致生成的调度方案的质量不佳,造成按照调度方案进行任务调度时,完成所有任务所需耗费的时间过长。

技术实现思路

[0005]本申请实施例提供了一种任务调度方法、装置、设备及存储介质,有助于减小完成所有任务总共所需耗费的时长。所述技术方案如下。
[0006]第一方面,提供了一种任务调度方法,该方法包括:基于待调度的多个任务,获取第一调度方案;基于所述第一调度方案,获取第二调度方案,所述第二调度方案的关键路径和所述第一调度方案的关键路径不同,所述关键路径是指调度方案对应的DAG中最长路径;基于所述第二调度方案中每个任务的数据读取时长、任务执行时长以及数据写入时长,确定所述第二调度方案的质量,所述数据读取时长是指从内存中读取执行任务所依赖的数据的时长,所述数据写入时长是指将执行任务所产生的数据写入至内存的时长;若所述第二调度方案的质量满足条件,使用所述第二调度方案进行任务调度。<br/>[0007]以上方法将局部搜索有效地引入到如何优化任务调度的问题,一方面,基于一个完整的调度方案来构建另一个调度方案,从而考虑到待调度的所有任务,降低了传统的基于贪心算法的调度方案中由于算法短视性带来的影响。另一方面,在设计邻域动作时考虑了关键路径,通过改变关键路径来构建调度方案,从而有助于获得更高质量的调度方案,也减少了构造和评估质量无法优化的调度方案带来的开销。再一方面,在评估邻域解时不仅考虑执行任务本身的时间开销,也考虑了从内存中读写数据的时间开销,从而提高评估调度方案的质量的精确性。总结来看,结合以上三方面的技术改进,显著提升了获得的调度方案的质量,从而减小了完成所有任务总共所需耗费的时长,提升任务调度的效果。
[0008]在一些实施方式中,所述基于所述第一调度方案,获取第二调度方案,包括:
[0009]调整所述第一调度方案中位于关键块的任务在所述关键块中的位置,得到所述第二调度方案,所述关键块是指同一个核上连续的多个关键任务,所述关键任务是指位于关键路径的任务,所述核是指计算设备的处理器中的核;或者,
[0010]将所述第一调度方案中关键任务从第一核调整至第二核,得到所述第二调度方案。
[0011]在一些实施方式中,所述调整所述第一调度方案中位于关键块的任务在所述关键
块中的位置,包括下述至少一项:
[0012]将所述关键块的块首任务调整为所述关键块的内部任务,所述内部任务是指除了块首任务、块尾任务之外其他任务;
[0013]将所述关键块的块尾任务调整至所述关键块的内部任务;
[0014]将所述关键块的内部任务调整至所述关键块的块首任务之前;
[0015]将所述关键块的内部任务调整至所述关键块的块尾任务之后。
[0016]在一些实施方式中,所述将所述第一调度方案中关键任务从第一核调整至第二核,包括:
[0017]将所述第一调度方案中关键任务从第一核调整至第二核的不同任务之间。
[0018]在一些实施方式中,所述将所述第一调度方案中关键任务从第一核调整至第二核之前,所述方法还包括:
[0019]根据所述关键任务的类型以及候选的多个核中每个核的类型,从所述候选的多个核中确定所述第二核,所述第二核的类型和所述关键任务的类型和满足匹配条件。
[0020]在一些实施方式中,所述基于所述第二调度方案中每个任务的数据读取时长、任务执行时长以及数据写入时长,确定所述第二调度方案的质量,包括:
[0021]基于所述第二调度方案中每个任务的数据读取时长、任务执行时长、数据写入时长以及任务对应的CU,确定所述第二调度方案的质量,所述CU是指计算设备的处理器的核中用于数据读取或数据写入的单元。
[0022]在一些实施方式中,所述基于所述第一调度方案,获取第二调度方案,包括:
[0023]基于所述第一调度方案,获取多个候选调度方案,每个所述候选调度方案的关键路径和所述第一调度方案的关键路径不同;
[0024]基于每个所述候选调度方案中每个任务的任务执行时长,确定每个所述候选调度方案的质量;
[0025]基于每个所述候选调度方案的质量,从所述多个候选调度方案中确定所述第二调度方案。
[0026]在一些实施方式中,所述基于每个所述候选调度方案的质量,从所述多个候选调度方案中确定所述第二调度方案,包括:
[0027]按照质量从高到低的顺序,对所述多个候选调度方案进行排序;
[0028]从所述多个候选调度方案中,选择排在前设定位数的候选调度方案,得到所述第二调度方案。
[0029]在一些实施方式中,所述方法还包括:
[0030]基于所述第二调度方案的关键路径,确定第一数据的重要度,所述第一数据的重要度是指关键任务依赖所述第一数据的次数或者关键任务产生所述第一数据的次数,关键任务是指位于关键路径的任务;
[0031]若所述第一数据的重要度满足条件,为所述第一数据分配访问速度满足条件的内存。
[0032]在一些实施方式中,所述基于待调度的多个任务,获取第一调度方案,包括:
[0033]基于所述多个任务的松弛度,从所述多个任务中选择第一任务,所述松弛度是指任务的最晚开始时间与最早开始时间之差,所述第一任务的松弛度在所述多个任务中最
小;
[0034]为所述第一任务分配核,为所述第一任务产生的数据分配内存。
[0035]在一些实施方式中,所述基于待调度的多个任务,获取第一调度方案,包括:
[0036]基于所述多个任务的最早开始时间,从所述多个任务中选择第二任务,所述第二任务的最早开始时间在所述多个任务中最早;
[0037]为所述第二任务分配核,为所述第二任务产生的数据分配内存。
[0038]在一些实施方式中,所述基于待调度的多个任务,获取第一调度方案,包括:
[0039]基于所述多个任务中每个任务的后序任务的松弛度,从所述多个任务中选择第三任务,所述第三任务的后序任务的松弛度在所述多个任务中最小;
[0040]为所述第三任务分配核,为所述第三任务产生的数据分配内存。
[0041]在一些实施方式中,所述若所述第二调度方案的质量满足条件,使用所述第二调度方案进行任务调度包括:
[0042]若所述第二调度方案的质量高于所述第一调度方案的质量,使用所述第二调度方案进行任务调度。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种任务调度方法,其特征在于,所述方法包括:基于待调度的多个任务,获取第一调度方案;基于所述第一调度方案,获取第二调度方案,所述第二调度方案的关键路径和所述第一调度方案的关键路径不同,所述关键路径是指调度方案对应的有向无环图DAG中最长路径;基于所述第二调度方案中每个任务的数据读取时长、任务执行时长以及数据写入时长,确定所述第二调度方案的质量,所述数据读取时长是指从内存中读取执行任务所依赖的数据的时长,所述数据写入时长是指将执行任务所产生的数据写入至内存的时长;若所述第二调度方案的质量满足条件,使用所述第二调度方案进行任务调度。2.根据权利要求1所述的方法,其特征在于,所述基于所述第一调度方案,获取第二调度方案,包括:调整所述第一调度方案中位于关键块的任务在所述关键块中的位置,得到所述第二调度方案,所述关键块是指计算设备的同一个核上连续的多个关键任务,所述关键任务是指位于关键路径的任务;或者,将所述第一调度方案中关键任务从计算设备的第一核调整至计算设备的第二核,得到所述第二调度方案。3.根据权利要求2所述的方法,其特征在于,所述调整所述第一调度方案中位于关键块的任务在所述关键块中的位置,包括下述至少一项:将所述关键块的块首任务调整为所述关键块的内部任务,所述内部任务是指关键块中除了块首任务以及块尾任务之外的其他任务;将所述关键块的块尾任务调整至所述关键块的内部任务;将所述关键块的内部任务调整至所述关键块的块首任务之前;将所述关键块的内部任务调整至所述关键块的块尾任务之后。4.根据权利要求2所述的方法,其特征在于,所述将所述第一调度方案中关键任务从第一核调整至第二核,包括:将所述第一调度方案中关键任务从第一核调整至第二核的不同任务之间。5.根据权利要求2至4中任一项所述的方法,其特征在于,所述将所述第一调度方案中关键任务从第一核调整至第二核之前,所述方法还包括:根据所述关键任务的类型以及候选的多个核中每个核的类型,从所述候选的多个核中确定所述第二核,所述第二核的类型和所述关键任务的类型和满足匹配条件。6.根据权利要求1至5中任一项所述的方法,其特征在于,所述基于所述第二调度方案中每个任务的数据读取时长、任务执行时长以及数据写入时长,确定所述第二调度方案的质量,包括:基于所述第二调度方案中每个任务的数据读取时长、任务执行时长、数据写入时长以及任务对应的CU,确定所述第二调度方案的质量,所述CU是指计算设备的处理器的核中用于数据读取或数据写入的单元。7.根据权利要求1至6中任一项所述的方法,其特征在于,所述基于所述第一调度方案,获取第二调度方案,包括:基于所述第一调度方案,获取多个候选调度方案,每个所述候选调度方案的关键路径
和所述第一调度方案的关键路径不同;基于每个所述候选调度方案中每个任务的任务执行时长,确定每个所述候选调度方案的质量;基于每个所述候选调度方案的质量,从所述多个候选调度方案中确定所述第二调度方案。8.根据权利要求7所述的方法,其特征在于,所述基于每个所述候选调度方案的质量,从所述多个候选调度方案中确定所述第二调度方案,包括:按照质量从高到低的顺序,对所述多个候选调度方案进行排序;从所述多个候选调度方案中,选择排在前设定位数的候选调度方案,得到所述第二调度方案。9.根据权利要求1所述的方法,其特征在于,所述方法还包括:基于所述第二调度方案的关键路径,确定第一数据的重要度,所述第一数据的重要度是指关键任务依赖所述第一数据的次数或者关键任务产生所述第一数据的次数,关键任务是指位于关键路径的任务;若所述第一数据的重要度满足条件,为所述第一数据分配访问速度满足条件的内存。10.根据权利要求1所述的方法,其特征在于,所述基于待调度的多个任务,获取第一调度方案,包括:基于所述多个任务的...

【专利技术属性】
技术研发人员:吕志鹏苏宙行宋良才李思源武琛赫荣华
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1