【技术实现步骤摘要】
一种面向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为子任务间的通 ...
【技术特征摘要】
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,如果该子任务放置在一个核心上...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。