基于多核DSP的自适应任务调度方法技术

技术编号:15400740 阅读:125 留言:0更新日期:2017-05-24 10:32
本发明专利技术涉及一种基于多核DSP的自适应任务调度方法,首先需要在多核DSP系统内建立公共的任务池,所有参与运算的核通过算法调度,从公共的任务池中取走相应的任务分别进行计算。将任务分为:均等任务,递增任务,递减任务和无规则随机任务。自适应调度过程分三个步骤实现:1.先将整个任务的前一部分平均分配给多个处理器核进行处理,计算每个核所负责的任务的平均处理时间,推测任务类型。2.依据推测出任务的类型,选取对应的调度策略,直到任务池中的任务都被取走。3.先完成任务的核将找到当前剩余任务最多的核的任务池中,分担工作量。此方法能够根据不同任务的特点进行自适应调度,尽可能使得任务均衡地分配给多个处理器核,提高整体的计算性能。

Adaptive task scheduling method based on multi-core DSP

The invention relates to an adaptive task scheduling method based on multi core DSP, we need to establish the public pool of tasks in the multi-core DSP system, all participated in the operation of nuclear based scheduling algorithm, the task is removed from the public pool corresponding tasks were calculated. The tasks are divided into equal tasks, incremental tasks, diminishing tasks and random random tasks. Adaptive scheduling process is divided into three steps: 1. the first part of the task assigned to the average number of processor cores for processing, the average processing time is calculated for each nuclear charge of the task, that task type. 2., according to guess the type of task, select the corresponding scheduling strategy until the task in the task pool is taken away. 3. the kernel that performs the task first will find the most remaining task in the current task pool, and share the workload. This method can adaptively schedule according to the characteristics of different tasks, so as to make the task distribute to several processor cores as much as possible, so as to improve the overall computing performance.

【技术实现步骤摘要】
基于多核DSP的自适应任务调度方法
本专利技术涉及一种多核DSP中的任务调度方法,属于信息

技术介绍
自动并行化研究始于20世纪70年代,历经自动向量化、循环级自动并行化、过程级自动并行化等几个阶段,每个阶段的发展都体现了人们对程序并行特性理解的不断深入。通过对向量化编程规律的发现,人们提出了依赖关系分析理论,从而完成了串行程序的自动向量化。随着自动向量化技术的成功应用,研究人员把注意力转向共享内存体系结构的自动化并行化,并取得了一定的成功。但是,如何把数据分发到多个处理器上去以充分发掘程序的并行性、减少通信成本,是一个较为复杂的问题。在多核DSP的任务并行中,最困难的问题之一是在保持所有节点或处理器负载均衡的同时最小化通信和同步的开销。在共享内存体系中,所有处理机对主存拥有相同的访问延迟和带宽,不存在因处理器访问不同位置的数据带来的通信开销。任务调度对于负载均衡和额外开销具有非常重要的影响。其调度策略直接影响着系统资源的利用率和并行效率。任务调度的研究包括平衡负载、同步开销和通信开销。在很多共享内存多处理器系统中,一个单独的准备队列是处理调度常用机制。负载平衡是该单独准备队列处理机制的焦点,且单个准备队列容易造成竞争和同步开销,成为性能瓶颈。为并行任务选择合适的调度策略能够获得很大的性能收益。常见的负载均衡调度有两种方法——静态调度与动态调度。静态调度是在编译时,将任务平均分配到各个线程上。而动态调度是在运行时动态地将任务分配给空闲线程,但是,这将会花费一定的调度开销。现有的大多数任务调度算法,都需要在编码的过程中就确认任务的调度策略,一旦确定不能修改,这将直接导致任务调度的策略死板,不灵活。并且在讨论任务调度方法时,许多方法都是默认为所有任务的计算量都是相同的进行调度,鲜有对任务的计算量不同时的情况进行探讨,对任务计算量不同时的解决方案也只是简单地采取通过某些算法将任务递减地分配给处理器。
技术实现思路
为了克服现有调度方法的不足,本专利技术提供了一种自适应的任务调度方法,采用良好的调度策略对并行任务进行合理的划分,在调度开销以及负载均衡方面获得更好的权衡,以提高多核的并行计算性能。为了实现这个目的,本方法在多核DSP系统内建立一个公共的任务池,所有参与运算的处理器核通过算法调度从公共任务池中取走相应的任务分别进行计算,同时每个处理器核中都有一个共享的任务池,存放当前需要执行的任务;将任务分为4种类型:(1)均等任务,每个任务的计算量相同;(2)递增任务,每个任务的计算量随着任务的进行而递增;(3)递减任务,每个任务的计算量随着任务的进行而减少;(4)无规则随机任务,每个任务的计算量无明显规律;整个自适应调度过程分三个步骤实现:a.先将整个任务的前一部分(如任务的前50%)平均分配给多个处理器核进行处理,这个过程中由任务计数器与计时器对任务的运行状况进行跟踪监测;当其中有一个处理器核完成分配到的任务之后,则开始对当前所有处理器核中的结果进行分析:计算每个处理器核所负责的任务的平均处理时间n为参与任务运算的处理器核的个数,再根据计算出来的平均时间,推测任务的类型;b.对接下来还未开始计算的任务,依据推测出任务的类型,选取对应的调度策略进行相应的动态分配,直到公共任务池中的任务都被取走为止:对均等任务类型,每个处理器核分配相同的数量的任务;对递增任务类型,为每个处理器核分配的任务数量满足递减的趋势;对递减任务类型,为每个处理器核分配的任务数量满足递增的趋势;对随机任务类型,为每个处理器核分配均等大小的小块的任务;c.先完成任务的处理器核将找到当前剩余任务最多处理器核的任务池中,进行任务窃取(比如取走1/3任务),帮助未完成任务的处理器核分担工作量,以实现平衡;如此反复直到最终所有任务都被完成为止。具体的,步骤b中,对均等任务类型,每个处理器核分配到的任务数均为对递增任务类型,对递减任务类型,对随机任务类型,其中,s:总的任务数量,l:剩余未被执行的任务数量,r:调度的次数,w(r,i):第r轮调度,第i个处理器当前分配到的任务数量。本专利技术的优点是:此方法能够根据不同任务的特点进行自适应调度,尽可能使得任务均衡地分配给多个处理器,提高整体的计算性能。附图说明图1是自适应任务调度方法流程图。具体实施方式本专利技术需要在多核DSP系统内建立一个公共的任务池,将任务放入公共的任务池中,所有参与运算的核通过算法调度,从公共的任务池中取走相应的任务分别进行计算,同时每个核中都有一个共享的任务池,存放当前需要执行的任务。首先,在本专利技术中将任务分为5种类型:(1)均等任务,每个任务的计算量基本相同;(2)递增任务,每个任务的计算量随着任务的进行而递增;(3)递减任务,每个任务的计算量随着任务的进行而减少;(4)无规则随机任务,每个任务的计算量无明显规律。如图1所示,整个自适应调度过程分三个步骤实现:1.试探先将整个任务的前一部分平均分配给多个处理器核进行处理,这个过程中有任务计数器与计时器对任务的运行状况进行跟踪监测。当其中有一个处理器核完成分配到的任务之后,则开始对当前所有处理器核中的结果进行分析——计算每个核所负责的任务的平均处理时间,再根据计算出来的平均时间,推测任务的类型。2.应用策略对接下来还未开始计算的任务,依据推测出任务的类型,选取对应的调度策略,进行相应的动态分配;直到任务池中的任务都被取走为止。3.收尾先完成任务的处理器核将找到当前剩余任务最多处理器核的任务池中,进行任务窃取,帮助未完成任务的核分担工作量,尽可能实现平衡。如此反复直到最终所有任务都被完成为止。以下结合实施例对本专利技术做进一步说明。主要的符号说明如下:n:参与任务运算的处理器核的个数,s:总的任务数量,l:剩余未被执行的任务数量,r:调度的次数,w(r,i):第r轮调度,第i个处理器核当前分配到的任务数量。为了在调度开销以及负载均衡方面获得更好的权衡,需要采用良好的调度策略对并行任务进行合理的划分,以提高多核的运行性能。整个自适应调度过程分三个步骤实现:1.试探。先将整个任务的前50%平均分配给多个处理器核进行处理,这个过程中有任务计数器与计时器对任务的运行状况进行跟踪监测。计时器计算每个处理器核中每个任务的平均处理时间。即在这个阶段中每个处理器核分配到的任务数量皆为:表示向上取整。当其中有一个处理器核完成分配到的任务之后,则开始对当前所有处理器核中的结果,根据任务计数器与计时器进行分析,将每个处理器核的已执行任务数除以当前的运行时间,可以得到每个处理器核所负责任务的平均时间(1)如果平均时间几乎相同,则推测当前任务是均等任务类型;(2)如果平均时间呈递增趋势,则推测当前任务是递增任务类型,计算出趋势因子k;(3)如果平均时间呈递减趋势,则推测当前任务是递减任务类型,计算出趋势因子k;(4)否则,推测当前任务为无规则随机任务类型。2.对整个任务剩下的50%部分应用相应的调度策略。(1)均等任务类型。每个处理器核分配相同的数量的任务,每个处理器核分配到的任务数均为(2)递增任务类型。为每个处理器核分配的任务数量满足递减的趋势。(3)递减任务类型。为每个处理器核分配的任务数量满足递增的趋势。(4)随机任务类型。为每个处理器核分配均等本文档来自技高网
...
基于多核DSP的自适应任务调度方法

【技术保护点】
基于多核DSP的自适应任务调度方法,其特征是:在多核DSP系统内建立一个公共的任务池,所有参与运算的处理器核通过算法调度从公共任务池中取走相应的任务分别进行计算,同时每个处理器核中都有一个共享的任务池,存放当前需要执行的任务;将任务分为4种类型:(1)均等任务,每个任务的计算量相同;(2)递增任务,每个任务的计算量随着任务的进行而递增;(3)递减任务,每个任务的计算量随着任务的进行而减少;(4)无规则随机任务,每个任务的计算量无明显规律;整个自适应调度过程分三个步骤实现:a.先将整个任务的前一部分平均分配给多个处理器核进行处理,这个过程中由任务计数器与计时器对任务的运行状况进行跟踪监测;当其中有一个处理器核完成分配到的任务之后,则开始对当前所有处理器核中的结果进行分析:计算每个处理器核所负责的任务的平均处理时间

【技术特征摘要】
1.基于多核DSP的自适应任务调度方法,其特征是:在多核DSP系统内建立一个公共的任务池,所有参与运算的处理器核通过算法调度从公共任务池中取走相应的任务分别进行计算,同时每个处理器核中都有一个共享的任务池,存放当前需要执行的任务;将任务分为4种类型:(1)均等任务,每个任务的计算量相同;(2)递增任务,每个任务的计算量随着任务的进行而递增;(3)递减任务,每个任务的计算量随着任务的进行而减少;(4)无规则随机任务,每个任务的计算量无明显规律;整个自适应调度过程分三个步骤实现:a.先将整个任务的前一部分平均分配给多个处理器核进行处理,这个过程中由任务计数器与计时器对任务的运行状况进行跟踪监测;当其中有一个处理器核完成分配到的任务之后,则开始对当前所有处理器核中的结果进行分析:计算每个处理器核所负责的任务的平均处理时间n为参与任务运算的处理器核的个数,再根据计算出来的平均时间,推测任务的类型;b.对接下来还未开始计算的任务,依据推测出任务的类型,选取对应的调度策略进行相应的动态分配,直到公共任务池中的任务都被取走为止:对均等任务类型,...

【专利技术属性】
技术研发人员:王丰李功燕
申请(专利权)人:江苏物联网研究发展中心
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1