基于多核dsp的自适应任务调度方法

文档序号:6545581阅读:883来源:国知局
基于多核dsp的自适应任务调度方法
【专利摘要】本发明涉及一种基于多核DSP的自适应任务调度方法,首先需要在多核DSP系统内建立公共的任务池,所有参与运算的核通过算法调度,从公共的任务池中取走相应的任务分别进行计算。将任务分为:均等任务,递增任务,递减任务和无规则随机任务。自适应调度过程分三个步骤实现:1.先将整个任务的前一部分平均分配给多个处理器核进行处理,计算每个核所负责的任务的平均处理时间,推测任务类型。2.依据推测出任务的类型,选取对应的调度策略,直到任务池中的任务都被取走。3.先完成任务的核将找到当前剩余任务最多的核的任务池中,分担工作量。此方法能够根据不同任务的特点进行自适应调度,尽可能使得任务均衡地分配给多个处理器核,提高整体的计算性能。
【专利说明】基于多核DSP的自适应任务调度方法
【技术领域】
[0001]本发明涉及一种多核DSP中的任务调度方法,属于信息【技术领域】。
【背景技术】
[0002]自动并行化研究始于20世纪70年代,历经自动向量化、循环级自动并行化、过程级自动并行化等几个阶段,每个阶段的发展都体现了人们对程序并行特性理解的不断深入。通过对向量化编程规律的发现,人们提出了依赖关系分析理论,从而完成了串行程序的自动向量化。随着自动向量化技术的成功应用,研究人员把注意力转向共享内存体系结构的自动化并行化,并取得了一定的成功。但是,如何把数据分发到多个处理器上去以充分发掘程序的并行性、减少通信成本,是一个较为复杂的问题。
[0003]在多核DSP的任务并行中,最困难的问题之一是在保持所有节点或处理器负载均衡的同时最小化通信和同步的开销。在共享内存体系中,所有处理机对主存拥有相同的访问延迟和贷款,不存在因处理器访问不同位置的数据带来的通信开销。任务调度对于负载均衡和额外开销具有非常重要的影响。其调度策略直接影响着系统资源的利用率和并行效率。
[0004]任务调度的研究包括平衡负载、同步开销和通信开销。在很多共享内存多处理器系统中,一个单独的准备队列是处理调度常用机制。负载平衡是该单独准备队列处理机制的焦点,且单个准备队列容易造成竞争和同步开销,成为性能瓶颈。为并行任务选择合适的调度策略能够获得很大的性能收益。
[0005]常见的负载均衡调度有两种方法一静态调度与动态调度。
[0006]静态调度是在编译时,将任务平均分配到各个线程上。而动态调度是在运行时动态地将任务分配给空闲线程,但是,这将会花费一定的调度开销。
[0007]现有的大多数任务调度算法,都需要在编码的过程中就确认任务的调度策略,一旦确定不能修改,这将直接导致任务调度的策略死板,不灵活。并且在讨论任务调度方法时,许多方法都是默认为所有任务的计算量都是相同的进行调度,鲜有对任务的计算量不同时的情况进行探讨,对任务计算量不同时的解决方案也只是简单地采取通过某些算法将任务递减地分配给处理器。

【发明内容】

[0008]为了克服现有调度方法的不足,本发明提供了一种自适应的任务调度方法,采用良好的调度策略对并行任务进行合理的划分,在调度开销以及负载均衡方面获得更好的权衡,以提高多核的并行计算性能。
[0009]为了实现这个目的,本方法在多核DSP系统内建立一个公共的任务池,所有参与运算的处理器核通过算法调度从公共任务池中取走相应的任务分别进行计算,同时每个处理器核中都有一个共享的任务池,存放当前需要执行的任务;将任务分为4种类型:
[0010](I)均等任务,每个任务的计算量基本相同;[0011](2)递增任务,每个任务的计算量随着任务的进行而递增;
[0012](3)递减任务,每个任务的计算量随着任务的进行而减少;
[0013](4)无规则随机任务,每个任务的计算量无明显规律;
[0014]整个自适应调度过程分三个步骤实现:
[0015]a.先将整个任务的前一部分(如任务的前50% )平均分配给多个处理器核进行处理,这个过程中由任务计数器与计时器对任务的运行状况进行跟踪监测;当其中有一个处理器核完成分配到的任务之后,则开始对当前所有处理器核中的结果进行分析:计算每个处理器核所负责的任务的平均处理时间
【权利要求】
1.基于多核DSP的自适应任务调度方法,其特征是:在多核DSP系统内建立一个公共的任务池,所有参与运算的处理器核通过算法调度从公共任务池中取走相应的任务分别进行计算,同时每个处理器核中都有一个共享的任务池,存放当前需要执行的任务;将任务分为4种类型: (1)均等任务,每个任务的计算量基本相同; (2)递增任务,每个任务的计算量随着任务的进行而递增; (3)递减任务,每个任务的计算量随着任务的进行而减少; (4)无规则随机任务,每个任务的计算量无明显规律; 整个自适应调度过程分三个步骤实现: a.先将整个任务的前一部分平均分配给多个处理器核进行处理,这个过程中由任务计数器与计时器对任务的运行状况进行跟踪监测;当其中有一个处理器核完成分配到的任务之后,则开始对当前所有处理器核中的结果进行分析:计算每个处理器核所负责的任务的平均处理时间,η为参与任务运算的处理器核的个数,再根据计算出来的平均时间,推测任务的类型; b.对接下来还未开始计算的任务,依据推测出任务的类型,选取对应的调度策略进行相应的动态分配,直到公共任务池中的任务都被取走为止:对均等任务类型,每个处理器核分配相同的数量的任务;对递增任务类型,为每个处理器核分配的任务数量满足递减的趋势;对递减任务类型,为每个处理器核分配的任务数量满足递增的趋势;对随机任务类型,为每个处理器核分配均等大小的小块的任务; c.先完成任务的处理器核将找到当前剩余任务最多处理器核的任务池中,进行任务窃取,帮助未完成任务的处理器核分担工作量,以实现平衡;如此反复直到最终所有任务都被完成为止。
2.如权利要求1所述基于多核DSP的自适应任务调度方法,其特征是,步骤a中先将整个任务的前50%平均分配给多个处理器核进行处理。
3.如权利要求1所述基于多核DSP的自适应任务调度方法,其特征是,步骤c所述任务窃取将剩余任务最多处理器核的任务池中的1/3任务取走进行处理。
4.如权利要求1所述基于多核DSP的自适应任务调度方法,其特征是,步骤b中,对均等任务类型,每个处理器核分配到的任务数均为
【文档编号】G06F9/50GK103942109SQ201410185521
【公开日】2014年7月23日 申请日期:2014年5月4日 优先权日:2014年5月4日
【发明者】王丰, 李功燕 申请人:江苏物联网研究发展中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1