一种面向CPU-GPU异构的低能耗任务调度策略制造技术

技术编号:21513561 阅读:33 留言:0更新日期:2019-07-03 08:55
一种面向CPU‑GPU异构的低能耗任务调度策略,针对异构多核系统的特点和传统蚁群算法存在的仅对单目标进行优化和收敛速度过慢的问题,提出一种同时关注实时约束和系统能耗的蚁群任务调度算法。方法首先根据任务在异构核心上的能耗在信息素初始化过程中提供指导信息,加快算法收敛速度,然后经过任务实时约束条件对核心的筛选后,再根据任务在异构核心上的计算能耗,不同任务的核间通信能耗以及信息素含量来选择合适的执行核心,最后通过蚁群算法的多次迭代不断寻找能耗更低的调度方案,并根据所得结果调整信息素含量,进一步加快算法收敛速度。经过若干次迭代后得到最终任务调度方案能在满足任务实时性约束的情况下使系统的能耗得到优化。

A Low Energy Consumption Task Scheduling Strategy for CPU-GPU Heterogeneity

【技术实现步骤摘要】
一种面向CPU-GPU异构的低能耗任务调度策略
本专利技术属于异构系统任务分配与资源调度领域,具体涉及一种面向CPU-GPU异构系统结构,同时考虑实时约束和系统能耗的资源分配与任务调度策略。
技术介绍
现今,处理器结构逐渐朝着多核化和异构化的方向发展。多核处理器已经成为当前的主流处理器。由于拥有多个处理核心,应用程序可以把并行的线程同时交付给多个核心分别处理,因此程序的运行速度得到很大的提高。根据其内核结构是否存在差异,多核处理器分为同构多核处理器和异构多核处理器。同构多核处理器大多是指所有处理器核的体系结构相同,多个处理器核执行相同或者类似的任务。同构多核处理器往往针对特征单一的应用。而异构多核处理器包含多个不同体系结构的处理器核,不同的核心能够起到缺陷互补的作用,尤其对于CPU+GPU的异构体系,CPU弥补了GPU逻辑控制方面的不足,GPU弥补了传统的CPU多核结构在面对图形数据处理这样的高计算密集程度和高并行度问题时表现出的不足,从而能够面对更为广泛的应用场景。异构多核系统上的任务调度算法已成为当今学术界研究的热点问题,而CPU-GPU异构多核任务调度更是重点研究方向,并且在接本文档来自技高网...

【技术保护点】
1.一种面向CPU‑GPU异构的低能耗任务调度策略,其特征在于包括以下步骤:步骤1、处理器模型的初始化,所述的处理器模型包括核心状态和核心性能;核心状态包括:处理器中N个核心的集合P={P1,P2,P3,...,PN},各个核心的空闲时间列表PEN,每当一个任务调度完成,更新该列表;核心性能包括:每个核心与任务类型有关的处理能力α,每个核心的动态功耗β,处理器的静态功耗Pstatic,任意两核间的单位数据通信能耗W;步骤2、任务的初始化处理,包括得到DAG任务图G={T,Ed,m,d,D},其中,T为子任务集合,Ed为子任务依赖关系集合,m为子任务的计算量,d为子任务间的通信量,D为对应实时约...

【技术特征摘要】
1.一种面向CPU-GPU异构的低能耗任务调度策略,其特征在于包括以下步骤:步骤1、处理器模型的初始化,所述的处理器模型包括核心状态和核心性能;核心状态包括:处理器中N个核心的集合P={P1,P2,P3,...,PN},各个核心的空闲时间列表PEN,每当一个任务调度完成,更新该列表;核心性能包括:每个核心与任务类型有关的处理能力α,每个核心的动态功耗β,处理器的静态功耗Pstatic,任意两核间的单位数据通信能耗W;步骤2、任务的初始化处理,包括得到DAG任务图G={T,Ed,m,d,D},其中,T为子任务集合,Ed为子任务依赖关系集合,m为子任务的计算量,d为子任务间的通信量,D为对应实时约束的子任务组截止期限;根据任务依赖关系集合Ed对所有任务节点建立前驱任务列表Pre,建立任务执行顺序列表que和临时调度方案列表temp,其中temp的第i个元素temp[i]表示子任务Ti的执行核心编号;步骤3、完成蚁群算法中任务执行顺序、基础参数和初始信息素的初始化;其中,所述的任务执行顺序通过对子任务集合T使用HEFT算法求解得到;所述的基础参数包括:各路径上的初始信息素含量ρ,每只蚂蚁经过留下的信息素m,每只蚂蚁遍历完成之后的局部衰减因子Pl,每次迭代开始时信息素的全局衰减因子Pg,信息素影响因子g,蚂蚁数量n和迭代次数N;其中,一个子任务放置到一个核心上执行视作一条路径,子任务或核心有所不同则视为不同路径;所述的初始信息素的初始化具体为:按任务执行顺序选择每个子任务的最优执行核心,所述的最优执行核心为所有核心中执行该子任务的能耗最小的核心,所述的能耗为两部分之和,其中,第一部分是当前子任务在所选处理核心上的计算能耗c,第二部分是所有前驱任务最优处理核心与当前子任务所选处理核心之间的通信能耗之和,其中,Eix表示第i个子任务在核心x上的能耗,具体计算公式如下:其中,cix=tix*βx,tix=mi/αx,tix表示第i个子任务在第x个核心上的预估执行时间;mi表示第i个子任务的计算量,αx表示第x个核心与任务类型有关的处理能力,βx表示第x个核心的动态功耗,|Pre[i]|表示第i个子任务的前驱任务数量,Pre[i][j]表示第i个子任务的第j个前驱任务,ePre[i][j]i表示执行第i个子任务的第j个前驱任务和第i个子任务的核心之间的通信能耗,ePre[i][j]i=dPre[i][j]i*Wtemp[Pre[i][j]]temp[i],dPre[i][j]i表示第i个子任务的第j个前驱任务和第i个子任务之间的通信量,Wtemp[Pre[i][j]]temp[i]表示临时调度方案temp中第i个子任务的第j个前驱任务的处理核心与第i个任务的处理核心间的单位数据通信能耗之积;所有子任务及其对应的最优执行核心构成的路径的初始信息素含量翻倍,即完成初始信息素的初始化;步骤4、选取可行路径:根据步骤3中得到的任务执行顺序取出待调度子任务,通过EFT算法判断在各个核心上执行时任务最早完成时间是否小于截止期限D,如果该子任务放置在一个核心上...

【专利技术属性】
技术研发人员:方娟周宽
申请(专利权)人:北京工业大学
类型:发明
国别省市:北京,11

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

1