一种基于异构多处理器的任务调度方法及系统

文档序号:35958149发布日期:2023-11-08 20:11阅读:38来源:国知局
一种基于异构多处理器的任务调度方法及系统

本发明属于操作系统,更具体地,涉及一种基于异构多处理器的任务调度方法及系统。


背景技术:

1、21世纪以来,为了满足不断扩大的市场需求,商业化处理器的发展可谓日新月异,逐步进入到了多核时代。在当前处理器技术快速发展的形势下,单核处理器难以满足生活及商业需求,而多核处理器则显露了无以伦比的优势,在商业化的进程中得到了用户的广泛的信任和使用,同时也被寄予更多的厚望。异构多处理器是为许多现代实时系统提供高性能计算能力的一种主要硬件,使用并行编程模型(如openmp)实现的实时应用程序也可以有效利用此类并行异构的架构。然而,将异构平台用于实时系统的一大难点在于保证执行时间的可预测性,即如何保证并行程序在实际执行时能够满足其截止时间。

2、有向无环图(dag)在建模许多并行实时应用程序方面非常强大。dag对一个应用程序进行建模,并具有一组表示顺序任务的节点和一组表示任务之间依赖关系的边。不相关的异构多处理器模型具备通用性,可以覆盖同构和相关的多处理器模型,并且许多商业异构平台都符合不相关模型。不相关平台的特征之一是平台的处理器或内核是不同类型的。与相关的处理器模型不同,dag中的不同任务在不相关平台的相同处理器类型上可以具有不同的执行速度。因此,对于不相关平台,研究dag内任务与处理器类型间的速度关系使得调度算法的设计和时序分析而言具有较大挑战性。

3、现有的对于不相关平台的任务调度方法,针对每一个任务,对其所有类型的节点将所有类型处理器的最坏执行时间进行排序,计算出每个处理器类型在每个节点中的排名(最坏执行时间越短,排名越靠前);对于一个任务而言,选择处理器的方式就是计算每一个处理器在所有节点中排名的加权求和和,即假设某一处理器在所有类型的任务中,排名第一的个数为2,排名第二的个数为3,那么此时的处理器值即为1*2+3*1/2。然后根据这个处理器值选择调用的处理器。但是,该方法仅仅关注了不同类型处理器在不同节点下的排名,并未关注具体数值,为此,某些情况下,计算出来的排序数值可能相同,但相同排名下的数值差异很大,所以在一定程度上无法更优地选择处理器,存在可调度性差以及资源浪费的问题,任务通过率较低。


技术实现思路

1、针对现有技术的以上缺陷或改进需求,本发明提供了一种基于异构多处理器的任务调度方法及系统,用以解决现有技术在实际运行过程中任务通过率较低的技术问题。

2、为了实现上述目的,第一方面,本发明提供了一种基于异构多处理器的任务调度方法,包括:

3、获取待调度的任务集中每个任务在不同处理器类型下的处理器值,针对任务集中的每一个任务,基于其在不同处理器类型下的处理器值为其分配处理器:处理器值越大,优先将对应处理器类型下处理器分配给该任务;

4、其中,第i个任务在第x个处理器类型下的处理器值为:第i个任务对第x个处理器类型的偏好值与第i个任务在第x个处理器类型下的最坏执行时间之比;为第i个任务对应的dag图中的各子任务节点对第x个处理器类型的偏好值总和;第j个子任务节点对第x个处理器类型的偏好值为第j个子任务节点在各处理器类型下的最小最坏执行时间与第j个子任务节点在第x个处理器类型下的最坏执行时间之比;为第i个任务对应的dag图中的各子任务节点在第x个处理器类型下的最坏执行时间总和。

5、进一步优选地,第j个子任务节点对第x个处理器类型的偏好值为:

6、

7、其中,为第j个子任务节点在第x个处理器类型下的最坏执行时间;np为操作系统中的处理器类型总数。

8、进一步优选地,第i个任务在第x个处理器类型下的最坏执行时间为:

9、

10、其中,ni为采用dag图对第i个任务进行建模后的子任务节点总数;为第j个子任务节点在第x个处理器类型下的最坏执行时间。

11、进一步优选地,上述基于异构多处理器的任务调度方法,包括以下步骤:

12、s1、初始化任务集st为待调度的任务集,处理器集sp为操作系统中所有处理器所构成的集合;

13、s2、对于任务集st中的任意任务t,获取其在不同处理器类型下的最大处理器值所对应的处理器类型p,从处理器集sp中获取处理器类型p下能够调度任务t的处理器,若获取成功,为任务t生成包含任务t及获取到的处理器的临时任务子集;否则,则将任务t在处理器类型p下的处理器值更新为0,重复步骤s2进行迭代,直至生成临时任务子集,或者任务集st中的所有任务在每一个处理器类型下的处理器值均为0;

14、s3、计算任务t的临时任务子集中任务t对所有处理器的处理器值之和,得到任务t的分配值;

15、s4、获取任务集st中分配值最大的任务t*及其临时任务子集s;判断是否存在能够调度的决策任务子集,若是,则将任务t*放入任意能够调度的决策任务子集s*中,为任务t*分配决策任务子集s*中的处理器,将任务t*从任务集st中删除;否则,生成决策任务子集,并初始化为临时任务子集s,为任务t*分配临时任务子集s中的处理器,并将任务t*及分配的对应处理器从任务集st和处理器集sp中删除;

16、s5、重复步骤s2-s4,直至直至任务集st为空,或者任务集st中的所有任务在每一个处理器类型下的处理器值均为0;

17、其中,当任务集st中的所有任务在每一个处理器类型下的处理器值均为0时,终止操作,直接返回调度失败。

18、进一步优选地,所述步骤s2中,从处理器集sp中获取处理器类型p下能够调度任务t的处理器的方法,包括以下步骤:

19、s21、获取一个处理器类型p下的处理器;

20、s22、预估对任务t分配所获取的当前数量的处理器类型p下的处理器的实际执行时间,判断是否满足实际执行时间小于任务t的截止时间、且所获取的各处理器的利用率小于或等于预设阈值,若是,则判定获取成功;否则,执行步骤s23;

21、s23、判断处理器集sp中是否还存在处理器类型p下的处理器,若存在,则额外再获取一个处理器类型p下的处理器,并转至步骤s22;否则,判定获取失败。

22、进一步优选地,采用makespan公式预估对任务t分配所获取的当前数量的处理器类型p下的处理器的实际执行时间。

23、第二方面,本发明提供了一种基于异构多处理器的任务调度系统,包括:存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时执行本发明第一方面所提供的基于异构多处理器的任务调度方法。

24、第三方面,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序被处理器运行时控制所述存储介质所在设备执行本发明第一方面所提供的基于异构多处理器的任务调度方法。

25、总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:

26、1、本发明提供了一种基于异构多处理器的任务调度方法,采用任务对处理器类型的偏好值与任务在对应处理器类型下的最坏执行时间之比作为任务在对应处理器类型下的处理器值;其中,本发明中的偏好值是根据对一种类型的任务,计算出所有类型处理器中的最小最坏执行时间相较于每种处理器的最坏执行时间的比值,即每种类型的处理器在此类型处理器下的偏好值取值在0到1之间,左开右闭,从而引入不同处理器之间的最坏执行时间的值的大小对结果的影响,关注于具体数值,而不是简单地根据排序先后来决定,以在选择处理器的时候更能够比较出不同类型的处理器对当前节点的影响,从而更便于选择处理器。在这个基础上,本发明从子任务节点和处理器类型两个维度上进行综合考虑,考虑到了任务的不同子任务节点在不同处理器上最坏情况执行时间不同的影响,偏好值越大表示该类型的处理器对该任务的调度成功的可能性越大,最坏执行时间越短表示采用该类型的处理器执行任务的效率越高,使得处理器值能够作为为任务分配处理器的较优性能指标;本发明综合考虑了操作系统实际运行过程中处理器与任务的适配程度,通过优先为任务分配最大处理器值所对应的处理器类型下的处理器,减少了处理器资源不必要的损失,提高了资源利用率以及任务集的可调度性,任务通过率较高。

27、2、进一步地,本发明所提供的基于异构多处理器的任务调度方法,考虑到在实际的操作系统中,异构处理器的缓存是不同的,若是将一个任务分配给两种以上的处理器,由于处理器之间是无法共享缓存,因此在实际分配过程中两种类型的处理器是无法同时运行任务的,只有一种处理器在运行任务,基于此,本发明对于同一个任务分配相同的处理器类型,更符合实际运行过程,提高了实际过程中任务集的可调度性。

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