首页> 中国专利> 一种基于任务申请信号和处理器内核执行代价值的任务调度方法

一种基于任务申请信号和处理器内核执行代价值的任务调度方法

摘要

本发明涉及一种基于任务申请信号和处理器内核执行代价值的任务调度方法。本发明包括:(1)任务申请信号:采用全局链表和处理器内核调度队列来记录任务;(2)处理器内核执行代价值:每个处理器内核维持一个执行代价值向量,处理器内核经计算得出全局链表中每个任务的执行代价值,并存入执行代价值向量中;(3)任务调度概率:处理器内核对任务的执行代价值和任务的申请信号来计算任务从全局链表调度到处理器内核调度队列的概率。本发明采用全局链表和处理器内核调度队列记录任务,使用任务的申请信号的强弱和处理器内核执行任务的代价值的大小作为任务调度的准则,可有效的减少任务迁移过程中产生的开销,降低任务的执行时间。

著录项

  • 公开/公告号CN105117281A

    专利类型发明专利

  • 公开/公告日2015-12-02

    原文格式PDF

  • 申请/专利权人 哈尔滨工程大学;

    申请/专利号CN201510523104.5

  • 发明设计人 李静梅;田乔;毛施平;

    申请日2015-08-24

  • 分类号G06F9/48;

  • 代理机构

  • 代理人

  • 地址 150001 黑龙江省哈尔滨市南岗区南通大街145号哈尔滨工程大学科技处知识产权办公室

  • 入库时间 2023-12-18 12:40:40

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-01-15

    授权

    授权

  • 2015-12-30

    实质审查的生效 IPC(主分类):G06F9/48 申请日:20150824

    实质审查的生效

  • 2015-12-02

    公开

    公开

说明书

技术领域

本发明涉及一种基于任务申请信号和处理器内核执行代价值的任务调度方法。

背景技术

伴随着大规模集成电路的发展,晶体管的速度、功耗和芯片面积等都有了很大改善,促 进了单核处理器性能不断地提升。当前,单核处理器已经几乎无法凭借工艺手段的改进来进 一步明显提高处理器的速度。在同一芯片上集成多个处理器内核心的多核处理器(chip multiprocessors,CMPs)的出现有效地解决了单核处理器发展的瓶颈。2006年IBM推出首款商 用的同构双核处理器POWER4。随后,一系列芯片厂商陆续推出系列产品。根据Amdahl定 律,增加同构多核处理器可以提高程序并行执行部分的效率,而无法提高串行部分的执行效 率。因此,当程序并行执行部分效率接近峰值时,增加若干个同构处理器是无法显著提高多 核处理器的执行效率的。同时,不同的程序对计算核心性能要求不同。在这些因素的推动下, 计算机进入到异构多核处理器时代。

异构多核处理器从处理器内核之间的联系,可以分为两大类:一种是集中式,一种是分 布式。集中式多核处理器的主处理器(简称主核)拥有完整的功能,主要负责向从处理器(简 称辅核)上的任务分配,而辅核主要负责各种应用运算。集中式处理器多用于Soc系统,最 典型的集中式多核处理器是索尼、东芝和IBM联合开发的Cellbe处理器。分布式多核处理 器其各核可以共享缓存或独自拥有私有缓存,它在结构上的特点是每个处理器之间的连接方 式相同,但地位和性能不全一致,每个处理器内核按照自己特有的控制和运算功能独立运行, 互不干扰,协同工作。

异构多核处理器的每个处理器负责实现不同的功能,为了发挥各处理器优势,必须要实 现操作系统的准确调度。也就是说,任务待分配到的处理器内核的计算能力应该与该任务的 计算需求相匹配的。异构多核处理器的任务调度通常分为静态和动态两种。静态任务调度采 用预测技术确定映射方法从而实现任务的分配,所以它是在任务调度之前就已经确定任务调 度的全过程。而动态任务调度则根据调度规则、处理器的可用资源以及并行任务的性质差异 动态地、实时地完成任务调度,并且可以结合负载平衡、最小执行时间等指标进行不同处理 器内核间的任务迁移。显然,动态任务调度由于实时地根据任务调度情况进行调整,因此能 更加有效地发挥异构多核处理器的性能。

经典动态任务调度算法是维持一个全局任务调度队列,队列的队头元素具有最高的优先 级。而如果只维持一个全局任务调度队列,此时某个处理器内核空闲就进行任务调度。这种 按需调度的方式没有考虑到处理器内核的性能和任务特点,显然违背了异构多核处理器将正 确的任务调度到正确的处理器内核这一基本原则,因为队头元素调度到空闲核上未必满足全 部任务执行时间最短。

为解决这一不足,本发明方法提出了全局链表和处理器内核调度队列来记录任务,按照 任务申请信号和处理器内核的执行代价值来计算任务调度到处理器内核的概率,进一步明确 任务调度的顺序,能够有效的减少任务开销,降低任务的执行时间,较为准确地建立任务调 度顺序队列。

发明内容

本发明的目的在于提供一种有效减少任务开销,降低任务的执行时间的基于任务申请信 号和处理器内核执行代价值的任务调度方法。

本发明的内容是这样实现的:

(1)任务申请信号:采用全局链表和处理器内核调度队列来记录任务,其中全局链表存 储处理器上等待调度的全部任务;同时每个处理器内核独自拥有一个任务调度队列,存储已 调度到该处理器内核上的任务集合;任务申请信号代表任务期望被调度的紧迫程度,每当一 个新任务生成时,将其插入到全局链表的尾部,同时向所有处理器内核发出等待调度的申请 信号;

(2)处理器内核执行代价值:每个处理器内核维持一个执行代价值向量,处理器内核经 计算得出全局链表中每个任务的执行代价值,并存入执行代价值向量中;

(3)任务调度概率:处理器内核对任务的执行代价值和任务的申请信号来计算任务从全 局链表调度到处理器内核调度队列的概率,明确任务调度的顺序。

所述任务申请信号采用全局链表和处理器内核调度队列来记录任务,每一个新任务生成 时,将新任务插入到全局链表的尾部;处于全局链表上的任务此时尚未分配各种资源,处于 等待状态;新任务ti插入到链表的同时会向所有的处理器内核发出等待调度的申请信号,申 请信号用Si表示,表示公式如下:

其中,WT(ti)表示任务ti进入全局链表后的等待时间,Pr(ti)为任务ti的优先级,其值 取决于与任务ti有依赖关系任务数目。pred(ti)表示任务ti直接前驱任务。

所述处理器内核执行代价值采用执行代价向量,将处理器内核计算得出的全局链表中每 个任务的执行代价值存入其中;任务ti的执行代价值θh,i由任务ti在处理器内核Ph上的计算 开销w(vi,Ph)和与其他处理器内核的通信开销C(vi,vj,Ph,Pk)决定的,表示公式如下:

θh,i=αw(vi,Ph)+βΣvjpred(vi)C(vi,vj,Ph,Pk)

其中,α、β均表示参数。

所述任务调度概率根据任务的执行代价值和任务的申请信号来计算,再进一步明确任务 调度的顺序,记任务ti调度到处理器内核Ph的概率为P(ti,Ph),表示公式如下:

P(ti,Ph)=SiSi+θh,i.

本发明方法的有益效果在于:采用全局链表和处理器内核调度队列记录任务,使用任务 的申请信号的强弱和处理器内核执行任务的代价值的大小作为任务调度的准则,可有效的减 少任务迁移过程中产生的开销,降低任务的执行时间,较为准确地建立任务调度顺序队列。

附图说明

图1是本发明全局链表和处理器内核调度队列的具体调度过程图。

具体实施方式

下面结合附图对本发明进行更详细的描述:

本发明提供的是一种基于任务申请信号和处理器内核执行代价值的任务调度方法,该方 法以如何解决调度任务的先后顺序为主要思想,结合全局链表和处理器内核调度队列来记录 任务,按照任务申请信号的强弱和处理器内核的执行代价值大小来计算任务调度到处理器内 核的概率。其中,任务申请信号反映任务期望被调度的紧迫程度,每当一个新任务生成时, 将其插入到全局链表的尾部,同时向所有处理器内核发出等待调度的申请信号。在此基础上, 每个处理器内核都会维持一个执行代价值向量,处理器内核根据任务的计算开销和通信开销 得出全局链表中每个任务的执行代价值,并将其存入执行代价值向量中,处理器内核根据对 任务的执行代价值和任务的申请信号来计算任务从全局链表调度到处理器内核调度队列的概 率,进一步明确任务调度的顺序。本发明方法能够有效的减少任务开销,降低任务的执行时 间,较为准确地建立任务调度顺序队列。

(一)任务申请信号

首先,本发明方法采用全局链表和处理器内核调度队列来记录任务。全局链表用于存储 处理器上等待调度的全部任务,每个处理器内核都有一个调度队列,用于存储已调度到该处 理器内核上的任务集合。每当一个新任务生成时,将其插入到全局链表的尾部。处于全局链 表上的任务此时尚未分配各种资源,处于等待状态。新任务插入到链表的同时会向所有的处 理器内核发出等待调度的申请信号,申请信号由申请信号的初始值、任务进入全局链表后的 等待时间和任务优先级决定,其值反映任务期望被调度的紧迫程度。申请信号值越大,那么 任务需要调度的迫切程度就越高。

(二)处理器内核执行代价值

每个处理器内核都会维持一个执行代价值向量,处理器内核经计算得出全局链表中每个 任务的执行代价值,并将其存入执行代价值向量中。任务产生立即进入全局链表,此时会发 出任务调度申请信号,处理器内核计算当前时刻的任务申请信号存入任务的相应字段中,同 时在执行代价值向量的末尾处插入任务的执行代价值,并置为-1,表示处理器内核未计算任 务的执行代价值。任务的执行代价值取决于任务的计算开销和通信开销。

当任务进入全局链表时,为避免中断处理器内核产生的额外开销,处理器内核并不立即 对任务的执行代价值进行计算,而是等到处理器内核调度任务时,处理器内核才扫描全局链 表进行任务执行代价值的计算计算,对于已经已知执行代价值的任务不重新计算。处理器内 核依据调度规则调度任务,同时唤醒其他处理器内核计算全局链表上的任务执行代价值。当 任务被调度到处理器内核队列时,该处理器内核会清除调度后任务的执行代价值,并通知其 他处理器内核清除任务的执行代价值。

值得注意的是,一开始任务进入到全局链表时,任务在各处理器内核的执行代价值为-1。 如果该任务所依赖的任务尚未调度到处理器内核队列时,那么该任务在各个处理器的执行代 价值仍为-1。当处理器内核的执行代价向量中任务的执行代价值为-1,表示任务不可调度, 可以避免任务过早地调度到处理器内核,导致等待依赖任务执行的情况发生。

(三)任务调度概率

处理器内核根据对任务的执行代价值和任务的申请信号来调度全局链表的任务进入处理 器内核队列,定量分析任务被调度的概率。当处理器内核需要调度任务时,对于全局链表中 满足调度条件的任务,如果处理器内核对任务执行代价值越小,任务的申请信号越大,则任 务被调度到处理器内核的概率就越大。

其中:

(一)任务申请信号

首先,本发明方法采用全局链表和处理器内核调度队列来记录任务。全局链表用于存储 处理器上等待调度的全部任务,每个处理器内核都有一个调度队列,用于存储已调度到该处 理器内核上的任务集合。具体的调度过程如图1所示,其中箭头表示任务调度的方向:每当 一个新任务生成时,将其插入到全局链表的尾部。处于全局链表上的任务此时尚未分配各种 资源,处于等待状态。新任务ti插入到链表的同时会向所有的处理器内核发出等待调度的申 请信号,申请信号用Si表示,用S0表示申请信号的初始值。处理器内核会将任务ti的编号、 申请信号Si和初始值S0记录下来。任务ti发出的申请信号Si反映任务期望被调度的紧迫程度, 申请信号Si值越大,那么任务ti需要调度的迫切程度就越高。任务申请信号Si表示为公式(1):

其中,WT(ti)表示任务ti进入全局链表后的等待时间,Pr(ti)为任务ti的优先级,取决 于与任务ti有依赖关系任务数目。为方便比较,任务ti的优先级Pr(ti)等于依赖任务累计执行 时间之和,表示为公式(2):

Pr(ti)=ΣkvΣhmw(tk,Ph)m---(2)

其中,任务平均执行时间w(tk,Ph)用公式(3)表示如下:

w(ti,Ph)=DiCPh=INiCPh---(3)

采用指令条数IN(instructionnumber)来表示任务计算量的颗粒大小。因此,任务ti在处 理器内核Ph上的执行时间等于任务ti的指令数与处理器内核Ph计算速率的比值,即INi/CPh(0<i<n+1)表示第i个任务的计算量,CPh表示第j个处理器内核计算速率。

由公式(2)可知,随着时间的增加,依赖任务的数目可能随着增加,任务的优先级也会 随之增大,同时任务的等待时间也会随时间的增加而增大,因此任务期望被调度程度也越大。

(二)处理器内核执行代价值

每个处理器内核都会维持一个执行代价值向量,处理器内核经计算得出全局链表中每个 任务的执行代价值,并将其存入执行代价值向量中。任务产生后立即进入全局链表,此时会 发出任务调度申请信号,处理器内核根据公式(1)计算当前时刻的任务申请信号存入任务的 相应字段中,同时在执行代价值向量的末尾处插入任务的执行代价值,并置为-1,表示处理 器内核未计算任务的执行代价值。为方便叙述,记处理器内核Ph执行代价值向量为θi。若当 前全局链表有m个任务,则处理器内核Ph的执行代价值向量为 θi=(θ1,i2,i,…,θh,i,…,θm,i),θh,i表示处理器内核Ph对任务ti的执行代价值。任务的 执行代价值取决于任务的计算开销和通信开销。

其中,C(vi,vj,Ph,Pk)表示分配到处理器内核Ph的任务ti与分配到处理器内核Pk的任务ti之间的通信开销

任务ti的执行代价θh,i由任务ti在处理器内核Ph上的计算开销和与其他处理器内核的通 信开销决定的,可以进一步表述为:

θh,i=αw(vi,Ph)+βΣvjpred(vi)C(vi,vj,Ph,Pk)---(5)

其中,α、β均为参数,如果任务ti为计算密集型任务,为了使任务ti能够被调度到计算 能力较强的处理器内核上,在β正常取值的情况下,通常采用减小α的取值方式来增加调度 概率。为避免任务的计算开销所占比重减少过多,一般情况下α的取值范围为0.5~1.0。由公 式(5)可知,计算能力较强的处理器内核的计算开销值较小,通过赋予α较小的值可以进一 步降低计算开销值所占的权值,因此有利于将计算量大的任务调度到计算能力强的处理器内 核。

如果任务ti为通信密集型任务,一般情况下将其调度到计算能力较弱或通信能力较强的 处理器内核上。一般情况下α正常取值,β取值范围为1.0~1.5。由于通信开销的权值β增大, 与处理器内核Ph通信速率较大的处理器内核的通信开销增加幅度较小,因此任务ti更容易被 调度到与处理器内核Ph通信速率较大的处理器内核上。在通信速率相同的情况下,计算能力 较强的处理器内核与计算能力较弱的处理器内核对任务ti的执行代价值差值较小。

当任务进入全局链表时,为避免中断处理器内核产生的额外开销,处理器内核并不立即 对任务的执行代价值进行计算,而是等到处理器内核调度任务时,处理器内核才扫描全局链 表中进行任务执行代价值计算,对于已经已知执行代价值的任务不重新计算。处理器内核依 据调度规则调度任务,同时唤醒其他处理器内核计算全局链表上的任务执行代价值。当任务 被调度到处理器内核队列时,该处理器内核会清除调度后任务的执行代价值,并通知其他处 理器内核清除任务的执行代价值。

值得注意的是,一开始任务进入到全局链表时,任务在各处理器内核的执行代价值为-1。 如果该任务所依赖的任务尚未调度到处理器内核队列时,那么该任务在各个处理器的执行代 价值仍为-1。当处理器内核Ph的执行代价向量中任务ti的执行代价值为-1,表示任务ti不可调 度,可以避免任务ti过早地调度到处理器内核,导致等待依赖任务执行的情况发生。

当处理器内核Ph调度任务ti时,会通知其他各处理器内核更新依赖于任务tj的任务代价 执行值。如果依赖任务tj还依赖其他任务tj1,且tj1尚未被调度,则依赖任务tj的执行代价值 仍为-1,不进行更新。

如果任务ti为独立任务,表示任务ti不与其他任务进行通信,当处理器内核Ph调度任务ti时,处理器内核则只需要计算任务的执行代价值,公式(5)演变为

θh,i=αw(vi,Ph)(6)

(三)任务调度概率

处理器内核根据对任务的执行代价值和任务的申请信号来调度全局链表的任务进入处理 器内核队列。假设处理器内核Ph需要调度任务,对于全局链表中满足调度条件的任务ti,如 果处理器内核Ph对任务ti执行代价值越小,任务ti的申请信号越大,则任务ti被调度到处理器 内核Ph的概率越大。为了定量的分析任务ti被调度的概率,记任务ti调度到处理器内核Ph的 概率为P(ti,Ph),P(ti,Ph)可以进一步详细地表述为:

P(ti,Ph)=SiSi+θh,i---(7)

当处理器开始进行任务调度时,此时为0时刻,若初始值S0值为0,则申请信号Si值为 0,每个处理器内核任务调度概率均为0,并不能反映任务调度的相关信息。为此,任务进入 链表时给初始信号S0赋值为1,使初始时刻的概率不为0。

以上是本发明的较佳实施例,凡依本发明技术方案作为改变的,所产生的功能作用未超 出本发明方案范围的,均属于本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号