CN101996105A - 可重构计算平台上的静态软硬件任务划分与调度方法 - Google Patents
可重构计算平台上的静态软硬件任务划分与调度方法 Download PDFInfo
- Publication number
- CN101996105A CN101996105A CN 201010223723 CN201010223723A CN101996105A CN 101996105 A CN101996105 A CN 101996105A CN 201010223723 CN201010223723 CN 201010223723 CN 201010223723 A CN201010223723 A CN 201010223723A CN 101996105 A CN101996105 A CN 101996105A
- Authority
- CN
- China
- Prior art keywords
- task
- ready
- static
- software
- hardware
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Multi Processors (AREA)
Abstract
本发明公开了一种可重构计算平台上的静态软硬件任务划分与调度方法。该机制以任务平台信息和任务集合为输入,计算任务的静态优先级并初始化就绪任务队列,然后针对每个计算任务选择最优的计算单元,最终获得任务的调度队列。此方案在参考任务间的依赖关系和计算资源间的并发关系的前提下给出解决方案,有效解决了传统方法中任务静态划分与任务的静态调度不能有效相结合的问题。当任务图的规模增大时,本发明中提出的算法获得的加速比随之增长,同时算法的时间复杂度也比较低。
Description
技术领域
本发明涉及一种任务划分与调度方法,特别涉及一种基于可重构计算平台上的静态软硬件任务划分与调度方法。
背景技术
可重构计算是权衡传统的通用处理器与专用集成电路的有效计算手段。对于很多任务,较之在通用处理器上使用软件实现,使用可重构逻辑器件的硬件实现可以获得很高的加速比。与专用集成电路的硬件实现方式相比,随着动态可重构技术的普及,使用可重构逻辑器件的实现具有更高的灵活性。
在对于给定的任务集合,为了能够使其在可重构计算平台上高效的完成,发挥可重构计算平台中各个器件的能力,首先需要对任务进行合理的划分,划分出在GPP上运行的软件任务和布局在可重构逻辑单元上的硬件任务;同时还要决定任务与GPP和可重构逻辑单元的动态映射关系。软硬件任务划分和任务调度是保证任务集合在可重构计算平台上高效运行的重要技术。
目前应用于可重构计算平台上的软硬件任务划分和调度方法单独考虑软硬件任务划分的方法,难以综合考虑任务间的依赖关系以及计算资源间的并发关系,使得获得很高加速的硬件任务可能会受限于低速任务的执行,难以保证整个任务集合的执行效率。单独考虑软硬件任务划分难以顾及到任务间的依赖关系,也难以顾全计算资源间的并发关系,获得很高加速的硬件任务可能会受限于低速任务的执行,使得任务集的执行速度难以有效的提高,影响任务划分的效果。
发明内容
为克服现有技术中的不足,本发明的目的在于提供一种可重构计算平台上的静态软硬件任务划分与调度方法,本发明将软硬件任务划分与任务调度相结合,同时给出软硬件任务的划分方案和调度方案,可以有效的加速任务集的执行。
为解决上述技术问题,实现上述技术目的,本发明通过以下技术方案来实现:
一种可重构计算平台上的静态软硬件任务划分与调度方法,其包括以下步骤:
步骤①,输入任务平台信息参数;
所述平台信息参数包括:
1)目标平台信息P=(N,M)
式中:P表示目标平台信息,N为系统中通用处理器核心的数量,M为可重构计算单元的数量;
2)使用任务图建模的任务集合G=(V,E,Tw,Tc)
式中:G表示任务图建模的任务集合,V为顶点的集合,E为边集合。其中的每个顶点t表示一个任务,代表一段不可抢占的指令执行序列,也就是过程的实例。每个任务t∈V都含有计算开销Tw。任务间的依赖关系,即前序约束,由有向弧表示。每条有向弧(t1,t2)的权值为Tc。
3)任务图中每个任务实现为硬件任务时的任务加速比Accl。
步骤②,计算任务静态优先级并初始化就绪任务队列;
取任务的底端距离Tb为任务优先级,如果Tb越大,则其优先级越高。
优选的,静态优先级确定后,在运行中不会改变。
计算任务的静态优先级需要遍历整个任务图。
在计算完静态优先级后,将所有的入口任务加入到就绪队列中。
步骤③,选择就绪任务t;
在每个调度步中,从就绪任务队列中选取当前最高优先级的任务。
步骤④,选择最优计算单元P,在每个调度步中,从计算单元集合中选取与当前被选中任务最匹配的计算单元;
选取的原则为使当前被选中的任务最早启动。
步骤⑤,将就绪任务t和最优计算单元P记入任务调度序列;
步骤⑥,判断最优计算单元P是否为可重构逻辑单元,如果是,将就绪任务t加入硬件任务集合,如果不是,将就绪任务t加入软件任务集合;
步骤⑦,处理后续任务,在每个调度步中调度完一项任务后,遍历所述任务的后继节点,若其后继节点成为新的入口节点,则将其加入就绪任务队列;
步骤⑧,判断就绪队列是否为空,如果不为空则重复自步骤③以后的步骤,
步骤⑨,如果就绪队列为空,输出处理后的信息,其包括,任务调度序列、硬件任务集合和软件任务集合。
进一步的,所述步骤④中任务选取原则为:
当任务t∈V就绪时,其全部前序任务都已经被调度,获得了一个部分调度。
在部分调度中,处理器p的就绪时间定义为该计算单元上最近一个任务的完成时间。
Tr(p)=max(Tf(t,Pt(t))) t∈V (1)
给定一个部分调度,定义最早空闲计算单元pr为具有最小Tr(p)时间的计算单元。
Tr(pr)=min(Tr(p)) p∈P (2)
如果有多个具有相同Tr时间的计算单元,pr则从中随机选取。
一个就绪任务t的最近消息到达时间定义为
Tm(t)=max(Tf(t’)+Tc(t’,t)) (t’,t)∈E (3)
一个就绪任务t的启动计算单元用pe(t)表示,指最后到达消息的来源计算单元。当有多个Tm相同时,pe(t)随机选取。消息是由计算单元发送给自身时通信开销定义为0,定义有效消息到达时间如下:
Te(t,p)=max(Tf(t’)+Tc(t’,t)) (t’,t)∈E,Pt(t)≠p (4)
就绪任务t调度到一个计算单元p上执行必须同时满足三个条件:1)计算单元p空闲;2)所有前序任务的消息已经到达;3)如果p为可重构计算单元,则该计算单元必须完成局部重构。
记最早空闲的通用处理器核心为prs,最早空闲的可重构计算单元为prh。记通用处理器核心的就绪时间为Trs(p),记可重构计算单元的就绪时间为Trh(p)。记重构开销为Tro。
则通用处理器核心p上的任务最早启动时间为
Tss(t,p)=max(Te(t,p),Trs(p)) (5)
可重构计算单元p上任务最早启动时间为
Tsh(t,p)=max(Te(t,p)+Tro,Trh(p)+Tro) (6)
所以任务的启动时间为
Ts(t,p)=min(Ts s(t,p),Tsh(t,p)) (7)
对(5),为使得Tss(t,p)取得最小值,则必须使Te(t,p)最小或者Trs(p)最小。当且仅当p=pe(t)且p是通用处理器核心时Te(t,p)取得最小值;当且仅当p=prs时Trs(p)取得最小值所以,最优的通用处理器核心必定为prs或pe(t)(如果存在)。
对(6),为使得Tsh(t,p)取得最小值,则必须使Te(t,p)最小或者Trh(p)最小。当且仅当p=pe(t)且p是可重构计算单元时Te(t,p)取得最小值;当且仅当p=prh时Trh(p)取得最小值。所以,最优的可重构计算单元必定为prh或pe(t)(如果存在)。
由(7),为使Ts(t,p)取得最小值,最优的计算单元必定为prs,prh,pe(t)之一。由此可以定义任务的完成时间。
本发明技术方案的优点主要体现在:综合了软硬件任务静态划分与任务的静态调度,同时在给出解决方案时参考了任务间的依赖关系和计算资源间的并发关系,当任务图的规模增大时,本发明中提出的算法获得的加速比随之增长,同时算法的时间复杂度也比较低。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。本发明的具体实施方式由以下实施例及其附图详细给出。
附图说明
图1是本发明的任务划分和调度方法流程的示意图。
具体实施方式
参见图1所示一种可重构计算台上的静态软硬件任务划分与调度方法,包括以下步骤:
步骤①,输入任务平台信息参数1;
步骤②,计算任务静态优先级并初始化就绪任务队列2;
步骤③,选择就绪任务t3;
步骤④,选择最优计算单元P,在每个调度步中,从计算单元集合中选取与当前被选中任务最匹配的计算单元4;
步骤⑤,将就绪任务t和最优计算单元P记入任务调度序列5;
步骤⑥,判断最优计算单元P是否为可重构逻辑单元,如果是,将就绪任务t加入硬件任务集合,如果不是,将就绪任务t加入软件任务集合6;
步骤⑦,处理后续任务,在每个调度步中调度完一项任务后,遍历所述任务的后继节点,若其后继节点成为新的入口节点,则将其加入就绪任务队列7;
步骤⑧,判断就绪队列是否为空,如果不为空则重复自步骤③以后的步骤8;
步骤⑨,如果就绪队列为空,输出处理后的信息,其包括,任务调度序列、硬件任务集合和软件任务集合9。
下面通过一个访问控制的过程来说明平台无关的访问框架上具体流程。
在本实施例中设定通用处理器核心数量N为2,可重构计算单元的数量M为2。即P0和P1为通用处理器核心,P2和P3为可重构计算单元,即同时最多有两个任务在通用处理器上执行,也同时最多有两个任务在可重构计算单元上执行。可重构开销设定为10000。故可得目标平台信息为P=(2,2)。
在每个任务中,包含任务的执行时间,依赖关系和加速比三个参数,在本实施例中,以T0为例,执行的时间为11096,加速比为24%,即用硬件实现的时间为在通用处理器上用软件实现的24%。
按照本发明对优先级的定义,取任务的底端距离Tb为任务优先级,如果Tb越大,则其优先级越高,可得优先级排序为0,2,1,5,6,4,3,9,7,8。入口任务仅有T0。且0号任务的优先级最高,获得最先调度权,又由于可重构的开销较大,故该任务将被调度为软件任务,在P0号通用处理器上运行。
0号处理器运行完毕之后,2,1,5,6号任务进入就绪队列。之后选择2号任务进行调度,将2号任务调度到P0上执行。
按照此方法,最终调度的结果是:
任务编号 | 分派计算单元 | 任务启动时间 | 任务完成时间 |
0 | P0 | 0 | 11096 |
2 | P0 | 11096 | 47393 |
1 | P1 | 12226 | 58118 |
5 | P0 | 47393 | 115181 |
6 | P2 | 29488 | 29975 |
4 | P1 | 58118 | 131741 |
3 | P3 | 57966 | 59137 |
9 | P2 | 71842 | 77202 |
7 | P3 | 69137 | 71823 |
8 | P0 | 115181 | 133568 |
Claims (3)
1.可重构计算平台上的静态软硬件任务划分与调度方法,其特征在于,包括如下步骤:
步骤①,输入任务平台信息参数;
步骤②,计算任务静态优先级并初始化就绪任务队列;
步骤③,选择就绪任务t,在每个调度步中,从所述就绪任务队列中选取当前最高优先级的任务;
步骤④,选择最优计算单元P,在每个调度步中,从计算单元集合中选取与当前被选中任务最匹配的计算单元,选取的原则为使当前被选中的任务最早启动;
步骤⑤,将就绪任务t和最优计算单元P记入任务调度序列;
步骤⑥,判断最优计算单元P是否为可重构逻辑单元,如果是,将就绪任务t加入硬件任务集合,如果不是,将就绪任务t加入软件任务集合;
步骤⑦,处理后续任务,在每个调度步中调度完一项任务后,遍历所述任务的后继节点,若其后继节点成为新的入口节点,则将其加入就绪任务队列;
步骤⑧,判断就绪队列是否为空,如果不为空则重复自步骤③以后的步骤,
步骤⑨,如果就绪队列为空,输出处理后的信息,其包括,任务调度序列、硬件任务集合和软件任务集合。
2.根据权利要求1所述的可重构计算平台上的静态软硬件任务划分与调度方法,其特征在于:步骤①中所述任务平台信息参数包括,目标平台信息、任务图信息以及任务的加速比信息。
3.根据权利要求1所述的可重构计算平台上的静态软硬件任务划分与调度方法,其特征在于:在步骤②计算任务静态优先级和初始化任务队列之后,首先进入步骤⑧,查看就绪队列是否为空,若为空,则程序执行完毕,输出任务调度序列、硬件任务集合和软件任务集合;若不为空,则直接开始步骤③。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010223723 CN101996105A (zh) | 2010-07-09 | 2010-07-09 | 可重构计算平台上的静态软硬件任务划分与调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010223723 CN101996105A (zh) | 2010-07-09 | 2010-07-09 | 可重构计算平台上的静态软硬件任务划分与调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101996105A true CN101996105A (zh) | 2011-03-30 |
Family
ID=43786288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010223723 Pending CN101996105A (zh) | 2010-07-09 | 2010-07-09 | 可重构计算平台上的静态软硬件任务划分与调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101996105A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102354289A (zh) * | 2011-09-21 | 2012-02-15 | 苏州大学 | 一种并发事务的调度方法和相关装置 |
CN104239135A (zh) * | 2014-05-19 | 2014-12-24 | 江苏科技大学 | 有向无环图的可重构系统的混合任务调度方法 |
CN108399097A (zh) * | 2018-02-27 | 2018-08-14 | 天津大学 | 一种基于双层反馈的软硬件划分方法 |
CN111158886A (zh) * | 2019-12-31 | 2020-05-15 | 青岛海尔科技有限公司 | 用于优化操作系统任务调度的方法、装置和智能设备 |
CN112905317A (zh) * | 2021-02-04 | 2021-06-04 | 西安电子科技大学 | 快速可重构信号处理异构平台下任务调度方法和系统 |
-
2010
- 2010-07-09 CN CN 201010223723 patent/CN101996105A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102354289A (zh) * | 2011-09-21 | 2012-02-15 | 苏州大学 | 一种并发事务的调度方法和相关装置 |
CN104239135A (zh) * | 2014-05-19 | 2014-12-24 | 江苏科技大学 | 有向无环图的可重构系统的混合任务调度方法 |
CN108399097A (zh) * | 2018-02-27 | 2018-08-14 | 天津大学 | 一种基于双层反馈的软硬件划分方法 |
CN111158886A (zh) * | 2019-12-31 | 2020-05-15 | 青岛海尔科技有限公司 | 用于优化操作系统任务调度的方法、装置和智能设备 |
CN112905317A (zh) * | 2021-02-04 | 2021-06-04 | 西安电子科技大学 | 快速可重构信号处理异构平台下任务调度方法和系统 |
CN112905317B (zh) * | 2021-02-04 | 2023-12-15 | 西安电子科技大学 | 快速可重构信号处理异构平台下任务调度方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102129390B (zh) | 片上多核计算平台的任务调度系统及进行任务并行化方法 | |
CN110717574B (zh) | 一种神经网络运行方法、装置及异构智能芯片 | |
CN111026519B (zh) | 基于分布式的任务优先级调度方法和系统及存储介质 | |
US9104491B2 (en) | Batch scheduler management of speculative and non-speculative tasks based on conditions of tasks and compute resources | |
CN103401939A (zh) | 一种采用混合调度策略的负载均衡方法 | |
CN105260818A (zh) | 混合云环境下带截止日期约束工作流组的在线优化调度方法 | |
CN104636204A (zh) | 一种任务调度方法与装置 | |
CN103885835A (zh) | 最优化映射减少框架中数据处理的装置和方法 | |
CN105320570B (zh) | 资源管理方法和系统 | |
CN102866912A (zh) | 一种单指令集异构多核系统静态任务调度方法 | |
CN104899089A (zh) | 一种面向异构多核体系的任务调度方法 | |
CN101996105A (zh) | 可重构计算平台上的静态软硬件任务划分与调度方法 | |
CN102521056A (zh) | 任务分配装置和任务分配方法 | |
CN102364447A (zh) | 一种优化多任务间通信能耗的作业调度方法 | |
CN106648831B (zh) | 基于萤火虫算法和动态优先级的云工作流调度方法 | |
CN106598717B (zh) | 一种基于时间片段的任务调度方法 | |
CN103914556A (zh) | 大规模图数据处理方法 | |
CN113225269B (zh) | 基于容器的工作流调度方法、装置、系统及存储介质 | |
CN101464965A (zh) | 一种基于tbb的多核并行蚁群设计方法 | |
CN103488531A (zh) | 基于多核处理器和fpga的软硬件混合实时任务调度方法 | |
CN105389204A (zh) | 一种多资源偏序调度策略 | |
CN110928666B (zh) | 一种Spark环境中基于内存优化任务并行度的方法和系统 | |
Cho et al. | Scheduling parallel real-time tasks on the minimum number of processors | |
CN103257900A (zh) | 减少cpu占用的多处理器上实时任务集资源预留方法 | |
Davidović et al. | Parallel local search to schedule communicating tasks on identical processors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110330 |