Linux系统中AOE网计算任务的调度方法及系统与流程

文档序号:36938713发布日期:2024-02-02 22:07阅读:67来源:国知局
Linux系统中AOE网计算任务的调度方法及系统与流程

本发明涉及任务调度技术,尤其涉及一种linux系统中aoe网计算任务的调度方法及系统。


背景技术:

1、在图论中,有向无环图 (directed acyclic graph,dag)表示在一个有向图中,无法从任一顶点出发经过若干条边再回到该点的图。dag图常常用来对操作系统中计算任务的建模,反映子任务之间先后的调度执行依赖关系。

2、activity on edge(aoe)网是一种特殊的dag图,如图1所示,在aoe网中,节点表示任务,有向边表示任务之间的依赖关系,边上的权值表示前驱任务执行完成到后继任务准备调度执行的时间,简称为节点的执行时间。在任务调度领域,常常用aoe网对计算任务进行建模。通过aoe网的建模,除了可以反映整个计算任务中所有子任务之间的先后依赖关系,同时还可以根据每个子任务的执行时间,预测整个aoe计算任务的执行时间。

3、在aoe网中,节点的入度表示当前有多少边指向它,节点的入度为0表示没有前驱节点指向该点,即该节点不依赖于其它节点,则该节点表示的子任务可立即调度执行。同时入度为0的多个节点之间无依赖关系,可以并行调度执行。同时,在aoe网中,从源点的节点到终点的节点有多条由不同的边组成的路径,由于边的长度(权重)不同,这些路径的长度可能各不相同。如图2所示,其中具有最大路径长度(权重)的路径称为关键路径,关键路径上的节点被称为关键节点。关键路径的长度决定了整个aoe网表示的计算任务的执行时间。

4、针对aoe网表示的计算任务,现有的调度算法仅根据子任务之间的依赖关系,确定各节点表示的子任务的调度顺序,但是并没有针对关键路径上的节点表示的子任务进行有针对性的优化,具体是没有区分可以并行调度执行的多个子任务的调度优先级。例如子任务v2和v3可并行执行如果v2和v3在同一处理核上调度执行时,v3可能先于关键任务v2进行调度;如果v2和v3在不同的处理核上调度执行,v2同样可能会被其它任务影响调度的进度。因为在linux系统中,v2虽然是aoe网中的关键节点任务,但是linux系统默认是将v2和其它任务一起看成为普通的进程进行统一的调度。


技术实现思路

1、本发明要解决的技术问题就在于:由于关键路径上的关键节点是影响整个aoe网计算任务执行时间的关键因素,因此必须针对这些关键节点的调度执行时间进行有针对性的优化,从而保证整个aoe网计算任务的执行时间较短。

2、针对现有技术存在的技术问题,本发明提供一种linux系统中aoe网计算任务的调度方法及系统,对aoe网中关键节点任务的调度进行优化,可以减少整个aoe网计算任务的完成时间。

3、为解决上述技术问题,本发明提出的技术方案为:

4、一种linux系统中aoe网计算任务的调度方法,包括以下步骤:

5、s101)获取aoe网表示的计算任务,根据节点的入度确定aoe网中节点的调度顺序,并且对aoe网中节点划分关键节点和非关键节点;

6、s102)按照调度顺序对aoe网中节点依次进行调度时,对关键节点分别进行实时调度,对非关键节点分别进行普通调度。

7、进一步的,步骤s102具体包括以下步骤:

8、若当前批次待调度节点包括至少两个节点,遍历当前批次待调度节点;

9、若当前节点为关键节点,使用实时调度器将当前节点调度到对应的处理器或处理核上执行,所述处理器或处理核与关键节点一一对应;

10、若当前节点为非关键节点,使用完全公平调度器将当前节点调度到负载最小的处理器或处理核上执行。

11、进一步的,步骤s102具体包括以下步骤:

12、若当前批次待调度节点包括一个节点,且所述节点为关键节点,使用实时调度器将所述节点调度到负载最小的处理器或处理核上执行;

13、若当前批次待调度节点包括一个节点,且所述节点为非关键节点,使用完全公平调度器将所述节点调度到负载最小的处理器或处理核上执行。

14、可选的,所述实时调度器采用fifo实时调度算法,所述完全公平调度器采用sched_normal调度算法,步骤s102之前还包括:

15、将所有关键节点的调度策略设置为fifo实时调度算法,并设置所有关键节点的进程优先级为第一值;

16、将所有非关键节点的调度策略设置为sched_normal调度算法,并设置所有非关键节点的进程优先级为第二值。

17、可选的,所述第一值为实时任务的进程优先级范围最大值,所述第二值为普通进程的优先级范围中间值。

18、进一步的,步骤s101中,根据节点的入度确定aoe网中节点的调度顺序时,包括:

19、s201)统计aoe网中入度为0的节点,将所统计的节点加入当前批次待调度节点的依赖调度集合;

20、s202)在aoe网中删除当前批次待调度节点的依赖调度集合中的节点,将下一批次待调度节点的依赖调度集合作为当前批次待调度节点的依赖调度集合,跳转执行步骤s201,直到aoe网中的节点删除完毕。

21、进一步的,步骤s101中,对aoe网中节点划分关键节点和非关键节点时,包括:

22、s301)正序计算每个节点的最早发生时间,然后逆序计算每个节点的最晚发生时间;

23、s302)将每条边的前驱节点的最早发生时间作为每条边的最早发生时间,计算每条边后继节点的最晚发生时间与每条边的权值的差,得到每条边的最晚发生时间;

24、s303)将最早发生时间与最晚发生时间相同的边作为关键边,关键边的前驱节点与后继节点作为关键节点,且其余节点作为非关键节点。

25、进一步的,正序计算每个节点的最早发生时间时,包括:

26、将源点的节点的最早发生时间设置为0;

27、针对每个节点,分别计算所述节点的所有前驱节点的最早开始时间与对应边的权重的和,并将所有前驱节点的最早开始时间与对应边的权重的和的最大值作为所述节点的最早发生时间。

28、进一步的,逆序计算每个节点的最晚发生时间时,包括:

29、将终点的节点的最早发生时间作为最晚发生时间;

30、针对每个节点,分别计算所述节点的所有后继节点的最晚开始时间与对应边的权重的差,并将所有后继节点的最晚开始时间与对应边的权重的差的最小值作为所述节点的最晚发生时间。

31、本发明还提出一种linux系统中aoe网计算任务的调度系统,包括互相连接的微处理器和计算机可读存储介质,所述微处理器被编程或配置以执行任一项所述的linux系统中aoe网计算任务的调度方法。

32、与现有技术相比,本发明的优点在于:

33、本发明针对aoe网表示的计算任务,根据节点的入度确定aoe网中节点的调度顺序,并且对aoe网中节点划分关键节点和非关键节点,按照调度顺序对aoe网中节点依次进行调度时,对关键节点进行实时调度,对非关键节点进行普通调度。通过实时调度将aoe网中的关键节点创建为实时任务,使其有更高的优先级,在调度时,无论将关键节点调度到哪一个处理器或处理核上执行,都能保证其有最快的执行时间,从而保证整个aoe网计算任务能够在最快的时间内能够完成执行。

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