有向无环图的可重构系统的混合任务调度方法

文档序号:6546900阅读:240来源:国知局
有向无环图的可重构系统的混合任务调度方法
【专利摘要】本发明公布了一种有向无环图的可重构系统的混合任务调度方法,所述方法如下:将应用分解为DAG描述的多个小任务经过调度器调度,软件任务进入Q1,Q1中的软件任务经过任务管理器后按照CPU是否空闲以及调度优先级进行计算;而硬件任务进入Q2,当Q2中的硬件任务能重复利用可重构资源,则进入Q3,否则继续保持在Q2中按优先级排队,并通过加载器配置加载;完成配置加载或者Q3中的任务进入Q4,Q4中的任务经过任务管理器进入Q5按照优先级运行,依次循环,直到任务全部运行结束,返回总的运行时间;其中Q1:软件任务队列、Q2:预配置硬件任务队列、Q3:配置重用队列、Q4:配置完成队列、Q5:运行任务队列。本发明通过配置重用策略减少配置次数,进而降低整体调度开销。
【专利说明】有向无环图的可重构系统的混合任务调度方法

【技术领域】
[0001]本发明涉及可重构计算领域,具体是一种动态可重构任务调度方法。

【背景技术】
[0002]可重构计算既保持了传统的基于硬件的执行效率,又保持了可变的体系结构,可以适应实际应用中的多元需求,是当今一种前沿技术。它打破了软硬件之间的界线,其性能介于微处理器和专用集成电路之间,在高性能计算领域应用广泛。
[0003]可重构计算技术的研究对可重构逻辑器件的开发有着极强的依赖性,以FPGA为代表的动态可重构器件内部由一系列可配置逻辑块CLBs (Configurable Logic Blocks)组成,这使其具备了部分可重构的能力。它可以根据应用对可重构逻辑器件上的资源做相应的调配,特别是对已有任务正常执行的器件的空闲资源进行新的配置。为了充分利用可重构资源,提高系统的并行执行能力,需要对硬件任务和可重构资源进行有效管理。
[0004]现有的可重构系统可以简化为由主CPU和可重构器件(FPGA)组成,如图1,CPU主要由调度器、放置器和加载器构成,分别负责可重构任务的调度、放置和配置加载。以FPGA为代表的可重构系统在实际运行时存在重构过程即配置过程的延迟,以及多次配置过程大量的数据访问,导致FPGA的能耗很大。
[0005]一个实际应用可以依据一定的算法将其划分为软件任务和硬件任务。一般地,软件任务被分配在处理器上执行,而硬件任务是指内部综合,宽度、高度固定,具备特定的功能且不可旋转的逻辑模块,需要配置后才能在硬件资源上执行,因此配置时间不可缺少。将可重构硬件任务的配置时间隐藏在前一个任务的执行时间里,对其进行调度。在许多计算密集型的应用中可能会使用相同的逻辑单元处理不同的数据。因此,对于相同类型的任务,可以通过重复使用之前配置好的逻辑单元,这样可以减少配置次数,降低配置开销,极大地提高可重构任务的调度效率。


【发明内容】

[0006]本发明针对现有技术的问题提出了一种基于有向无环图(Directed AcyclicGraph, DAG)以及预配置优先级的可重构任务调度方法,应用DAG改进预配置优先级,具体为一种有向无环图的可重构系统的混合任务调度方法。
[0007]—种有向无环图的可重构系统的混合任务调度方法,所述方法如下:将应用分解为DAG描述的多个小任务经过调度器调度,软件任务进入Q1, Q1中的软件任务经过任务管理器后按照CPU是否空闲以及调度优先级进行计算;而硬件任务进入Q2,当Q2中的硬件任务能重复利用可重构资源,则进入Q3,否则继续保持在Q2中按优先级排队,并通过加载器配置加载;完成配置加载或者Q3中的任务进入Q4, Q4中的任务经过任务管理器进入Q5按照优先级运行,依次循环,直到任务全部运行结束,返回总的运行时间;其中Q1:软件任务队列、Q2:预配置硬件任务队列、Q3:配置重用队列、Q4:配置完成队列、Q5:运行任务队列。
[0008]所述任务采用五元组Iwi, hi; Ci, e,, sj进行描述,Wi, h表示任务占用可重构资源的宽和高,Ci表示任务的配置时间,e,表示任务的运行时间,Si表示任务类型,如果是软件任务,则令Wi, hi; Ci为零。
[0009]所述调度优先级如下:

b level +1 level.μ., u-’,.+/?,.、
[0010]Pi= a、一——-~=-+ 0^(1— ~l^)
[0011]其中α为权重系统,Wi,比分别表示任务的宽、高,S表示可重构器件矩形面积,t_level值即从DAG图的顶层出发,计算从源节点到任务Ti节点之前耗时最长路径的时间开销;而b_level则从DAG图的底层出发,计算从汇节点到任务Ti节点的耗时最长路径的时间开销,Imax指最长路径长度,Imax = t_level+b_level。
[0012]所述计算t_level时,建立拓扑顺序的节点列表,对列表中节点的每个父节点的配置开销和运行开销的和进行比较,其中的最大值作为t_level值。
[0013]与现有的技术相比,本发明的优点是:
[0014]本发明利用DAG描述可重构软硬件任务,清晰地显示各个任务间的相关通信及先后关系。在可重构系统结构上,调度器利用预先配置和配置重用,先根据考虑影响任务调度因素的改进优先级计算得到预配置任务,通过预先配置部分后继任务隐藏部分配置和延迟时间,还可以通过配置重用策略减少配置次数,进而降低整体调度开销。

【专利附图】

【附图说明】
[0015]图1为可重构系统简化模型;
[0016]图2为t_level计算流程图;
[0017]图3为b_level计算流程图;
[0018]图4为可重构结构的混合任务调度模型;
[0019]图5为方法流程图。

【具体实施方式】
[0020]该方法包括调度器、加载器和布局器,调度器中包括任务替换策略判断模块、预配置模块和配置重用模块,调度器根据DAG描述的任务以及任务类型,将任务分别调度进入软件任务队列和预配置硬件任务队列。对于软件任务队列中的任务,将依据CPU是否空闲以及优先级进行计算;对于预配置硬件任务队列中的任务,先应用配置重用策略进行判断,若可以重用,则进入配置重用队列;若不可以重用,则利用预配置优先级计算方法,考虑对任务调度长度的影响因素,优先调度关键路径上和面积较小的任务有利于降低延时,缩短调度时间长度。按优先级大小等待预先配置,任务运行结束后,不立即收回其占用的可重构资源,而是让其继续保持,以便新任务与其类型相同时可以直接执行,当新任务没有资源可用时,则使用最近最少使用算法进行替换。布局器采用Bazargan布局算法进行布局。
[0021]调度器维护Q1:软件任务队列、Q2:预配置硬件任务队列、Q3:配置重用队列、Q4:配置完成队列、Q5:运行任务队列、HTL:硬件任务列表和FRL:空闲矩形列表。
[0022]对于每一个新任务,用五元组Iw^hi, Ci,ei,Si}进行描述,Wi,比表示任务占用可重构资源的宽和高,Ci表示任务的配置时间,e,表示任务的运行时间,Si表示任务类型,如果是软件任务,则令Wi, hi; Ci为零。
[0023]1、可重构任务模型
[0024]用有向无环图(Directed Acyclic Graph, DAG)对软硬件任务进行描述:G =(T,E),T表示应用中所有的任务集合且|T| = n,有向边集E = TXT且|E I = m,E(TilTj)表示Ti和L之间存在数据依赖关系。不失一般性,本发明规定DAG只包含唯一的源节点和汇聚点。DAG可以清晰地显示各个任务间的通信和先后关系,每个节点代表一个软/硬件任务,有向边表示任务间的先后关系,边的权重代表通信开销。
[0025]如果Ti的运行结果会对Tj的运行产生影响,即在Ti运行结束后,Tj才可以运行,称Ti称为任务L的前驱任务,L称为任务Ti的后继任务。即只有前驱任务执行完毕,后继任务才可以执行。设总的任务集为T,T = Tstjft U Thari,Tstjft是所有软件任务的集合,Thmd是所有硬件任务的集合。对于任意Ti e T,可以用五元组I^hi, Ci, ei,Sj (I彡i彡η)进行描述,Wi, h表示任务占用可重构资源的宽和高,Ci表示任务的配置时间,ei表示任务的运行时间,Si表示任务类型,如果Ti e Tstjft,则令Wi,hi,Ci为零。
[0026]2、预配置策略
[0027]可重构任务配置是通过单一的通道下载实施,下载以串行方式进行。采用隐藏配置时间的预配置策略,即在前一个任务运行的同时对后一个任务进行配置,进而可以缩短整体运行时间。当然每个任务的配置时间均完全隐藏在前一个任务的运行时间中,只是一种理想情况。在采用预配置策略的基础上,合理的选择配置顺序可以最大化地减少时间消耗。关键路径和任务面积大小是影响任务调度长度的因素,优先调度关键路径上和面积较小的任务有利于降低延时,缩短调度时间长度。
[0028]3、调度优先级策略
[0029]根据本发明的预先配置策略可知,优先调度关键路径上的任务和面积较小的任务,可以缩短整体调度时间。因此本发明对调度优先级的计算进行改进,增加关键路径上任务和面积较小任务的优先级,以下是具体的计算公式:

,h level + t level.一 u',.+/?,.、
[0030]P,+ ^ (I——-—)

,—Y
[0031]其中α为权重系统,取0.5,Wi,比分别表示任务的宽、高,S表示可重构器件矩形面积,优先级表达式的前后部分分别表达了节点路径和面积大小对任务调度的影响。
[0032]t_level值即从DAG图的顶层出发,计算从源节点到任务Ti节点之前耗时最长路径的时间开销WbJevel则从DAG图的底层出发,计算从汇节点到任务Ti节点的耗时最长路径的时间开销。Imax指最长路径长度,Ifflax = t_level+b_level。
[0033]t_level和b_level的计算涉及到任务图有向边的权值,即任务之间的通信开销。计算t_level时,需要建立拓扑顺序的节点列表,对列表中节点的每个父节点的配置开销和运行开销的和进行比较,其中的最大值作为t_level值;计算b_level时,需要建立反向拓扑顺序的节点列表,对列表中节点的每个子节点的配置时间和运行时间的和进行比较计算。图2、图3分别给出了适合本发明的t_level和b_level计算流程图。
[0034]4、配置重用策略
[0035]对于相同类型的任务可以利用之前配置好的逻辑单元重复使用,这样可以节约配置时间,极大的提高可重构任务的调度效率。
[0036]本发明采取的策略是当一个硬件任务执行完成后,并不立即收回它所占用的可重构资源,而是让其继续保持,当新任务与其类型相同可以直接执行,当新任务没有资源可用时,则使用最近最少使用算法(Least Recently Used, LRU)进行替换。即配置前先检查任务是否在硬件任务列表HTL上,若存在,则提高优先级,使其优先调度执行。
[0037]5、方法流程
[0038]如图4,为本发明提出的基于可重构结构的混合任务调度模型。将应用分解为DAG描述的多个小任务,经过调度器调度,软件任务进入Q1,按照CPU是否空闲以及优先级进行计算;而硬件任务进入Q2,通过替换策略判断Q2中的任务能否重复利用可重构资源,若可重复利用则进入Q3,若不可,继续保持在Q2中按优先级排队,并配置加载,完成配置或者Q3的任务进入Q4,按照优先级运行,依次循环,直到任务全部运行结束,返回总的运行时间。
[0039]输入:DAG输出:任务的执行时间
[0040]图5为整个可重构方法的流程图
[0041]Stepl:初始化 Q1, Q2, Q3, Q4, Q5, HTC0
[0042]St印2:DAG的源节点为T1,
[0043]If T1 e Tsoft, T1进入CPU计算,返回运行时间,T1的子节点按类型进入Q1或Q2,删去T1节点,释放T1占用的CPU资源。
[0044]else T1进入Q2,从FRL中选择一个矩形给T1配置,配置后进入Q4,再进入Q5运行计算,返回运行时间,T1进入HTL列表,T1的子节点按类型进入Q1或Q2,删去!\。
[0045]Step3:如果CPU空闲,选择Q1中优先级最高的任务1\。Ti进入CPU计算,返回运行时间,Ti的子节点按类型进入Q1或Q2,删去Ti,释放Ti占用的CPU资源。
[0046]Step4:如果FRL非空,选择Q2中优先级最高的任务Tj,
[0047]If Tj e HTL, T1 进入 Q3,优先级 +1 后到达 Q4,
[0048]else Tj配置后进入Q4。
[0049]St印5 =Q4中入度为O的任务进入Q5运行计算,返回运行时间,任务进入HTL列表,并将该任务的子节点按类型进入Q1或Q2,删去该任务。
[0050]St印6:重复St印2?St印5,直到Q1, Q2为空,返回总的运行时间。
【权利要求】
1.一种有向无环图的可重构系统的混合任务调度方法,其特征在于所述方法如下:将应用分解为DAG描述的多个小任务经过调度器调度,软件任务进入Q1, Q1中的软件任务经过任务管理器后按照CPU是否空闲以及调度优先级进行计算;而硬件任务进入Q2,当Q2中的硬件任务能重复利用可重构资源,则进入Q3,否则继续保持在Q2中按优先级排队,并通过加载器配置加载;完成配置加载或者Q3中的任务进入Q4, Q4中的任务经过任务管理器进入Q5按照优先级运行,依次循环,直到任务全部运行结束,返回总的运行时间;其中Q1:软件任务队列、Q2:预配置硬件任务队列、Q3:配置重用队列、Q4:配置完成队列、Q5:运行任务队列。
2.根据权利要求1所述的一种有向无环图的可重构系统的混合任务调度方法,其特征在于所述任务采用五元组Iwi, hi; Ci, e,, sj进行描述,Wi, h表示任务占用可重构资源的宽和高,Ci表示任务的配置时间,ei表示任务的运行时间,Si表示任务类型,如果是软件任务,则令Wi,hi,Ci为零。
3.根据权利要求1所述的一种有向无环图的可重构系统的混合任务调度方法,其特征在于所述调度优先级如下:
,b level +1 level.,, w.+h.η =以*^-=-+ α^'(\—~J-——'-)ηjV
iHiax° 其中α为权重系统,Wi,Iii分别表示任务的宽、高,S表示可重构器件矩形面积,t_level值即从DAG图的顶层出发,计算从源节点到任务Ti节点之前耗时最长路径的时间开销;而b_level则从DAG图的底层出发,计算从汇节点到任务Ti节点的耗时最长路径的时间开销,Imax 指最长路径长度,Imax = t_level+b_level。
4.根据权利要求3所述的一种有向无环图的可重构系统的混合任务调度方法,其特征在于所述计算t_level时,建立拓扑顺序的节点列表,对列表中节点的每个父节点的配置开销和运行开销的和进行比较,其中的最大值作为t_level值。
【文档编号】G06F9/48GK104239135SQ201410211523
【公开日】2014年12月24日 申请日期:2014年5月19日 优先权日:2014年5月19日
【发明者】朱志宇, 沈舒, 吴将, 王彪, 王逊, 陈迅, 李阳, 薛文涛, 黄巧亮 申请人:江苏科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1