[发明专利]基于关键路径和任务复制的单任务多核调度方法有效
申请号: | 201210554170.5 | 申请日: | 2012-12-19 |
公开(公告)号: | CN103034614A | 公开(公告)日: | 2013-04-10 |
发明(设计)人: | 谢志强;韩英杰 | 申请(专利权)人: | 哈尔滨理工大学 |
主分类号: | G06F15/163 | 分类号: | G06F15/163;G06F9/48 |
代理公司: | 哈尔滨东方专利事务所 23118 | 代理人: | 陈晓光 |
地址: | 150080 黑龙江省*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 关键 路径 任务 复制 多核 调度 方法 | ||
技术领域:
本发明涉及一种基于关键路径和任务复制的单任务多核调度方法。
背景技术:
多核处理器是当今以及未来处理器发展的主要趋势,单个处理器中所集成的核的数量已经由两个发展到四个、八个甚至更多。微机上使用的多核处理器都使用了片上多核处理器架构,片上多核处理器(Chip Multi-Processor,CMP)是将多个处理器内核集成在一个处理器芯片中,从而提高计算能力。CMP可根据计算内核的对等与否分为同构多核和异构多核,现在Inter和AMD主推的多核处理器,就是同构的多核处理器。
高效的通信机制是CMP处理器高性能的重要保障,目前比较主流的片上通信机制主要有两种,一种是基于总线共享cache结构,一种是基于片上互连结构。总线共享cache结构是指每个CPU内核拥有共享的二级或三级cache,用于保存比较常用的数据,并通过连接核心的总线进行通信。这种系统的优点是结构简单,通信速度较高,缺点是基于总线结构的可扩展性较差;基于片上互连结构是指每个CPU核心具有独立的处理单元和cache,各个CPU核心通过交叉开关或片上网络等方式连接在一起,各个CPU核心间通过消息通信。这种结构的优点是可扩展性好,数据带宽有保证,缺点是硬件结构复杂,且软件的改动较大。
在基于片上互连的同构多核结构中,一个程序可以看成是一个任务集,这些任务在满足它们之间存在的优先约束和次序约束关系的前提下,可以并行或串行的执行。多核调度技术就是如何在满足一定的性能指标和约束关系的前提下,将任务分配到各工作核上有序并行地执行,使任务执行总时间得以缩短成为任务调度的主要目标。
任务调度需要通过任务调度算法来实现,而任务调度算法是NP完全的。目前较为具有代表性的多核任务调度算法主要有基于任务复制(Task-Duplication-Base,TDB)方式的DSH,BTDH,PY,CPFD,TDMSCL,ETDS,PPA,IREA等。由于采用任务复制的方式将加权有向无环图(Directed Acyclic Graph, DAG)转换为只含有join节点的任务图后,join任务图与树状结构工艺图可以相互转换;又由于对产品加工树采用关键路径法调度,可以通过优先加工关键路径上的工序缩短产品完成时间,而以往算法没有考虑任务图可以转换为与之对应的产品加工树形式,并通过优先调度关键路径上的任务节点的方式缩短任务执行总时间,因此在任务完成时间上会有所延迟,同时由于不能根据处理器内核多少调整调度序列,因此在处理器内核不足时无法进行有效的调度。
发明内容:
本发明的目的是提供一种基于关键路径和任务复制的单任务多核调度方法,提高了基于片上互连的同构多核处理器的效率,使任务图中每个节点都能得到充分调度,使任务完成时间得以提前,使处理器内核充分并行,使内核间通信时间得到较好控制,提升了同构多核处理器的性能。
上述的目的通过以下的技术方案实现:
一种基于关键路径和任务复制的单任务多核调度方法,该方法主要包括如下步骤:DAG任务图处理模块,采用任务复制的方法,将DAG任务图中的fork节点复制给其后继任务节点,形成join结构任务图,再进一步将join图转换为产品加工树;任务节点调度分配模块,引入综合调度中关键路径思想,查找产品加工树的关键路径,并优先调度关键路径上节点,尽量提前关键路径上节点开始执行时间;调度序列调整优化模块,采用合并相似度最大的调度序列的方式,将调度序列合并以使调度序列数不大于处理器内核数,实现处理器内核充分并行处理。
所述的基于关键路径和任务复制的单任务多核调度方法,所述的调度方法具体实施步骤如下:
步骤1:遍历DAG任务图,并将任务图中fork节点复制给它的后继任务节点,形成只含有join节点的任务图;
步骤2:将join任务图转换为与之对应的产品加工树;
步骤3:在产品加工树中计算由根节点到各叶节点的路径长度,找到路径最长的,作为关键路径,如路径长度相同,则找到包含节点数最多的,作为关键路径;
步骤4:将关键路径由第一个节点起,依次加入队列;
步骤5:判断队列是否为空,如不为空继续向下执行,否则跳转至步骤14;
步骤6:取队列中第一个任务节点,判断该节点入度是否大于1,并从队列中删除该节点,如该任务节点入度不大于1,继续向下执行,否则跳转至步骤8;
步骤7:与紧前节点序列形成调度序列,跳转到步骤5;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨理工大学,未经哈尔滨理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210554170.5/2.html,转载请声明来源钻瓜专利网。