基于DAG模型的并行调度方法与流程

文档序号:16087190发布日期:2018-11-27 22:34阅读:1206来源:国知局

本发明涉及高性能计算机的多处理器任务调度领域,具体涉及一种并行调度方法。



背景技术:

近年来,对于拥有高性能计算功能的多处理器(包括多核处理器)系统的研究已逐渐成熟,在很多的并行系统中已经开始采用多处理器,例如大数据时代下的云计算就是采用多处理的一种并行处理方式来完成。但是现在针对多处理器的平台的任务调度算法尚未成熟,多数的算法还是停留在理论阶段,对于实际的拥有复杂结构的大规模系统来说,很难或不能保证多处理器并行系统在这种情况下实际的性能需求。使之现在对于大多数的多处理器并行系统的调度来说仍然采用的是传统的任务调度技术(将各个任务随机分配给处于空闲状态下的处理器),这样就导致了分配到各个处理器上的任务不均等,出现一些处理器超负荷的工作而另一些处理器处于空置状态的情况,从而使得多处理器的高效处理的优势不能得到充分的发挥,造成资源上的浪费。所以研究具有应对大规模系统的任务调度算法在多处理器并行系统技术的研究中变得尤为重要。



技术实现要素:

本发明的目的在于针对上述问题,提供一种基于DAG模型的并行调度方法,根据具有多处理器的复杂处理系统,进行两次集群化处理,满足最大化并行执行各个任务的同时,减少各个任务间的通信延迟,保证让总的任务执行时间最小化,提高多处理器的运算效率。

为此本发明公布了一种基于DAG模型的并行调度方法,主要包括以下步骤:

S1:根据多任务处理器的复杂调度系统构建DAG模型图,使得所述DAG模型图满足有向无环的特点;

S2:重构DAG模型图:

S201:将满足第一次集群化条件的两个任务节点进行第一次集群化处理;

S202:将第一次集群化处理后的任务节点进行优先等级排序,构造第一级优先调度表;

S203:采用基于DAG模型重构的调度算法来计算各任务节点的处理时间上限和下限;

S204:根据对比计算出的各任务节点的处理时间上限和下限将满足第二次集群化条件的两个节点进行第二次集群化处理;

S205:将第二次集群化处理后的任务节点进行优先等级重新排序,并构造第二级优先调度表。

集群化处理前各任务节点之间均存在通信延迟。

步骤S201所述的满足第一次集群化条件的两个节点具有相同的祖先任务节点且具有相同的子孙任务节点。

步骤S203所述的基于DAG模型重构的调度算法主要通过以下方式实现:

zf={zf1,zf2,…zfm}是任务节点zx的父任务节点的集合,zs={zs1,zs2,…zsn}是任务节点zx的子任务节点的集合,

其中esf是zf的最早开始时刻,cg,f和cf,y是zf的读入时间和写出时间;

其中lsx是zs的最迟开始时刻,γx是zx的权值,cf,x和cx,s分别是zx的读入时间和写出时间;

由此计算出各任务节点的处理时间上限和下限。

所述读入时间和写出时间为通信时间,所述权值为任务节点的处理时间。

步骤S204所述的第二次集群化条件通过以下方法判定:

当任务节点之间的关系为多个父任务节点对应一个子任务节点时,子任务节点和其中一个父任务节点组成的块开始处理的时刻不早于其他的父任务节点处理结束的时刻;

当任务节点之间的关系为一个父任务节点对应多个子任务节点时,父任务节点和其中一个子任务节点组成的块处理结束的时刻不晚于其他的子任务节点开始处理的时刻。

任务节点在根据基于DAG模型重构的调度算法计算出的任务节点的处理时间上限和下限之间的时间段被处理器处理。

两个任务节点满足第二次集群化条件时,则消除集群中两个任务节点之间的通信延迟。

对于满足第二次集群化条件的任务节点进行第二次集群化处理,并将第二次集群化后形成的块分配给同一个处理器处理。

对于两个相邻任务节点zx和zy,块可以被调度到同一个处理器进行处理需满足以下条件:

zx和zy必须是父子任务节点;

满足st(zx)≥et(IP(zy)),其中st(zx)是zx的处理开始时刻,et(IP(zy))是zy全部父任务节点的处理结束时刻;

满足et(zy)-2cx,y≤st(IS(zx)),其中et(zy)是zy的处理结束时刻,st(IS(zx))是zx全部子任务节点的处理开始时刻,cx,y是zx和zy的通信时间。

本发明的有益效果是:利用重构生成的随机参数再次进行模型重构的动态的调度算法,与现有的基于任务集群或聚簇的调度算法有着本质的区别;从真实系统处理角度分析构建的关联、参数的扰动、任务间的通信延迟的变化、模型构造的变化和处理器的数目的变化对多处理并行系统任务调度的影响,使得多处理器并行系统任务调度算法更符合实际需求、更能体现其动态的特征。

附图说明:

图1为本发明所述的基于DAG模型的并行调度方法中两个任务节点具有共同祖先节点的结构示意图。

图2为本发明所述的基于DAG模型的并行调度方法中两个任务节点具有共同子孙节点的结构示意图。

图3为本发明所述的基于DAG模型的并行调度方法中zx任务节点的父任务节点和子任务节点的分布图。

图4为本发明所述的基于DAG模型的并行调度方法中第二次集群化过程中对于一个父任务节点对应多个子任务节点的情况下满足第二次集群化条件的任务节点第二次集群化处理过程示意图。

图5为本发明所述的基于DAG模型的并行调度方法中第二次集群化过程中对于多个父任务节点对应一个子任务节点的情况下满足第二次集群化条件的任务节点第二次集群化处理过程示意图。

图6为本发明所述的基于DAG模型的并行调度方法集群化处理前后任务节点的通信时间变化示意图。

图7为本发明所述的基于DAG模型的并行调度方法采用基于Matlab/Simulink设计的汽车控制模型转化为DAG模型图。

图8为本发明所述的基于DAG模型的并行调度方法代表DAG模型各个参数的任务图队列及与系统图相关的部件关联表。

图9为本发明所述的基于DAG模型的并行调度方法中不同情况下的集群化处理过程示意图。

具体实施方式

下面结合具体实施方式对本发明作进一步说明。

实施例

结合图1、图2、图3、图4、图5、图6、图9,本发明公布的基于DAG模型的并行调度方法,包括以下步骤:

S1:根据多任务处理器的复杂调度系统构建DAG模型图,使得所述DAG模型图满足有向无环的特点;

S2:因为大多数多处理器系统中的任务节点之间均存在通信延迟或者说通信时间,因此根据此类系统结构重构DAG模型图:

S201:将满足第一次集群化条件的两个任务节点进行第一次集群化处理;在这一步中,满足第一次集群化条件的两个节点必须具有相同的祖先任务节点且具有相同的子孙任务节点。

S202:将第一次集群化处理后的任务节点进行优先等级排序,构造第一级优先调度表;此时,部分节点已经被第一次集群化处理了,形成了新的块,第一级优化过程已经完成。

第一次集群化处理的目的是让大规模的复杂调度系统趋于简单,而后再根据被第一次集群化处理后的较为简单的任务节点关系进行第二次集群化处理,进一步提高处理速度。

S203:采用基于DAG模型重构的调度算法来计算各任务节点的处理时间上限和下限;通过以下方法来进行计算:

设定zf={zf1,zf2,…zfm}是任务节点zx的父任务节点的集合,zs={zs1,zs2,…zsn}是任务节点zx的子任务节点的集合,

其中esf是zf的最早开始时刻,cg,f和cf,y是zf的读入时间和写出时间,其中,读入时间和写出时间即为通信时间;

其中lsx是zs的最迟开始时刻,γx是zx的权值,即任务节点的处理时间,cf,x和cx,s分别是zx的读入时间和写出时间;

由上述公式(1)和公式(2)可以计算出各个任务节点被处理的时间上限以及时间下限,处理器在任务节点的处理时间的上限和下限之间对任务节点进行处理,则不会影响到系统任务的总时长。

S204:根据对比计算出的各任务节点的处理时间上限和下限将满足第二次集群化条件的两个节点进行第二次集群化处理;当两个节点之间满足以下条件则对这两个节点进行第二次集群化处理,并消除满足第二次集群化条件的两个任务节点之间的通信延迟;

当任务节点之间的关系为多个父任务节点对应一个子任务节点时,子任务节点和其中一个父任务节点组成的块开始处理的时刻不早于其他的父任务节点处理结束的时刻;

当任务节点之间的关系为一个父任务节点对应多个子任务节点时,父任务节点和其中一个子任务节点组成的块处理结束的时刻不晚于其他的子任务节点开始处理的时刻。

S205:将第二次集群化处理后的任务节点进行优先等级重新排序,并构造第二级优先调度表;对于两个相邻任务节点zx和zy第二次集群化后组成的块需要同时满足以下三个条件才能被调度到同一个处理器进行处理:

zx和zy必须是父子任务节点;st(zx)≥et(IP(zy)),其中st(zx)是zx的处理开始时刻,et(IP(zy))是zy全部父任务节点的处理结束时刻;et(zy)-2cx,y≤st(IS(zx)),其中et(zy)是zy的处理结束时刻,st(IS(zx))是zx全部子任务节点的处理开始时刻,cx,y是zx和zy的通信时间。

结合附图7和图8,本实施例将汽车控制系统模型转化为DAG模型进行仿真,首先将汽车控制系统模型转化为DAG模型,根据DAG模型中的任务节点之间的不同情况,对满足第一次集群化的任务节点进行第一次集群化处理,然后根据第一次集群化处理的结果构造第一级优先调度表,然后再根据第一级优先调度表将任务节点分配给处理器处理,再根据第二次集群化条件对所有任务节点进行判定,对于满足条件的任务节点做第二次集群化处理,并构造第二级优先调度表,对于第二次集群化处理后且满足分配给同一个处理器处理条件的节点进行任务分配。以此来最大化缩短任务处理时间,消除不必要的通信延迟,最大化提高多处理器系统的高效运算。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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