CN102866912A - 一种单指令集异构多核***静态任务调度方法 - Google Patents
一种单指令集异构多核***静态任务调度方法 Download PDFInfo
- Publication number
- CN102866912A CN102866912A CN2012103912768A CN201210391276A CN102866912A CN 102866912 A CN102866912 A CN 102866912A CN 2012103912768 A CN2012103912768 A CN 2012103912768A CN 201210391276 A CN201210391276 A CN 201210391276A CN 102866912 A CN102866912 A CN 102866912A
- Authority
- CN
- China
- Prior art keywords
- task
- population
- processor core
- power consumption
- random
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种单指令集异构多核***静态任务调度方法,该方法有五大步骤:步骤一:种群初始化;步骤二:计算适应度值;步骤三:选择算子操作;步骤四:交叉算子操作;步骤五:变异算子操作。本发明使用局部排序表征无依赖关系的两个任务的执行顺序,使种群初始化效率和有效个体大大提高,使用先序关系矩阵来确定任务的执行顺序,克服了传统高度值方法存在的严重不足。本方法能扩大最优个体搜索范围,在种群规模足够大时,可以找到高度值方法漏掉的部分最优解,从而得到更优的调度序列。对同样的任务集而言,使用它可以使整个任务集的完成时间更短、功耗更低,实现节能降耗的目的。
Description
技术领域
本发明涉及基于多目标优化遗传算法(multi-objective optimization geneticalgorithm)的一种单指令集异构多核***静态任务调度方法,属于计算机***结构技术领域。
背景技术
云计算的兴起使数据中心的能耗快速增长,然而能耗并没有得到有效利用。单指令集异构多核处理器是近年提出的一种新型体系结构,与同构多核处理器相比,该处理器具有更好的性能功耗比,但同时给任务调度带来了巨大的挑战。
调度问题具有复杂性、多约束性等特点,是组合优化问题中的NP完全问题,采用穷举法来搜索最优调度是不现实的。启发式算法具有较好的时间复杂度和在特定条件下获得近优解的能力,但启发式算法是局部寻优,无法保证解的质量,研究人员开始尝试其他搜索算法,如遗传算法、模拟退火算法、粒子群算法等,其中遗传算法应用最为广泛,可以在大状态空间随机高效采样和搜索,并很快收敛到最优解或近优解,能很好的解决NP完全问题,在任务调度等很多领域都得到了应用。
遗传算法是模拟生物在自然环境中的遗传和进化过程而形成的一种自适应全局优化概率搜索算法,E.S.H Hou首次将遗传算法应用于多处理器任务调度。异构多核处理器的优势在于性能功耗比,通常情况下,性能和功耗是一对矛盾,高性能就意味着高功耗。评价异构多核处理器调度算法的优劣要同时看性能和功耗两个方面,这是典型的多目标优化(Multi-Objective Optimization)问题,本发明使用多目标优化遗传算法寻找异构多核环境下最优的静态任务调度方案。
本发明的创新点有两个方面,一是针对现有的高度值方法确定任务执行顺序和依赖关系存在的严重不足,提出使用先序关系矩阵来确定任务执行的先后顺序并给出了运算模式,二是将染色体编码结构中表示任务先后顺序的基因位从一般算法中定义的全局排序改为没有依赖关系的两个任务之间的局部顺序,使种群初始化时的有效个体所占比例变为100%。
发明内容
1、发明目的:
本发明提供了一种单指令集异构多核***静态任务调度方法。这种方法使用局部排序表征无依赖关系的两个任务的执行顺序,使种群初始化效率和有效个体大大提高,使用先序关系矩阵来确定任务的执行顺序,克服了传统高度值方法存在的严重不足。本方法能扩大最优个体搜索范围,在种群规模足够大时,可以找到高度值方法漏掉的部分最优解,从而得到更优的调度序列。对同样的任务集而言,使用本方法可以使整个任务集的完成时间更短、功耗更低,实现节能降耗的目的。
2、技术方案:
2.1问题描述
设异构多核***由分布在不同处理器上的多个处理器核组成C={C1,C2,…,Cn},工作负载已分解为一系列线程级任务T={T1,T2,…,Tm},n和m分别为处理器核个数和任务个数。该任务分配模型可以用七元组表示:(C,T,Θ,Ψ,Ω,E,Λ)。
Θ是一个m×n的执行时间矩阵,其元素θij表示任务Ti在处理器核Cj上的执行时间,与同构多核***不同,异构多核***中同一个任务在不同类型核上的执行时间不同。因此需要用一个矩阵来表示,假设每个任务的执行时间都是预知的。在计算处理器核的功耗时,只考虑两种状态,有任务运行和无任务运行。当有任务运行时,以动态功耗为主,与时钟频率和电压相关;没有任务运行时,以静态功耗为主。
Ψ是一个m×m的通信延迟矩阵,其元素ψij表示任务Ti与Tj之间的通信延迟。任务之间的通信延迟与它们之间的传输数据量有关,还与它们所在的处理器核的相对位置有关。
Ω是一个m×n的任务分配矩阵,ωij=1表示任务Ti被分配到处理器核Cj上,否则,ωij=0。
E是任务依赖关系图中的有向边集。<Ti,Tj>∈E表示在任务Ti没有完成之前,任务Tj不能执行,即Ti为Tj的直接前驱,Tj为Ti的直接后继。
Λ是一个m×m的任务先序关系矩阵,其中的λij表示任务Ti与Tj之间的约束关系,定义如下:
任务的先序关系矩阵表示任务之间的依赖关系,这是保证调度结果正确的关键。现有技术普遍使用高度值来确定任务执行的先后顺序。定义如下:
其中,H(Ti)表示Ti的高度值,pred(Ti)表示任务Ti的前驱结点集合。
H(Ti)的定义只是给出了得到调度有效解的一个充分条件,然而它并不是一个必要条件,根据该定义不能得到问题的所有有效解,张聪为此给出了一个扩展定义:
其中,G(Ti)表示Ti的高度值,succ(Ti)表示任务Ti的后继结点集合。根据公式(2)和(3)就得到了DAG图中每个结点的两个高度值H(Ti)和G(Ti),分别表示每个任务可能取得的最小高度值和最大高度值。定义HG(Ti)=random(H(Ti),G(Ti))为任务Ti的实际高度值,其是介于H(Ti)和G(Ti)之间的随机整数。如果处理器核上的k个任务的高度值满足HG(T1)≤HG(T2)≤…≤HG(Tk),则符合此约束关系的调度序列为有效调度序列。
本发明发现,使用高度值来表述任务之间的依赖关系并不严格,比如,如果DAG图由多个不连通的子图构成,即同时有多个不相关的程序同时运行,每个子图的任务之间是没有约束关系的,此时根据高度值来决定调度顺序显然不合理;再如,即使对一个子图的两个任务而言,高度值小的任务与高度值大的任务也并非一定存在约束关系。图1和图2中任务旁边标注的数字是该任务的高度值,前者是H(Ti),后者是G(Ti)。从图1可以看到,T2的高度值为1,T5的高度值为2,依据高度值定义,T2必须在T5之前执行,但实际上T2和T5之间并没有约束关系,只要T3(无论在哪个核上)执行完毕后的输出数据传递到T5所在的处理器核,T5就可以执行,T2可以在T5之后运行。扩展定义G(Ti)并没有改变高度值的先天不足,比如图2中,T2的实际高度值HG(T2)可以取值为0、1、2。如果HG(T2)=0,则T3与T8之间的所有任务必须等T2结束之后才能运行,实际上除T7外其余任务与T2并没有任何约束关系,如果HG(T2)=2,则T2必须在T1,T3,T5结束之后才能运行,显然也不合理。另一方面,如果有两个处理器核,每个处理器核上的任务都满足先序关系,并不意味着某个任务结束后,该处理器核上紧挨着的下一个任务就能立即运行,仍然要看其它处理器核上与该任务存在依赖关系的任务是否都已经运行结束,如果还有依赖任务没有结束,同样需要等待,直到它们运行结束且数据传输完毕后才能启动该任务的执行。本发明提出使用先序关系矩阵替换高度值用于任务依赖关系的比较。对于图1所示的DAG图,其先序关系矩阵如4.a所示。
其中,第1行表任务T1,第2行表示任务T2,依此类推。第1列表示任务T1,第2列表示任务T2,依此类推。一个任务是否可以运行,取决于任务先序关系矩阵中该任务所在的行是否全部为0或1,即没有-1,如果有,就说明该任务依赖的前驱任务还没有结束。一个任务执行完毕之后,则将该任务所在的列全部置为0。从初始矩阵4.a来看,此时只有T1所在的行全0,因此只有T1可以运行,T1运行结束后,将T1所在的列全部置0,如4.b所示,此时的先序关系矩阵除T1外,T2和T3所在的行也全0或1,说明T2和T3此时可以开始运行。
2.2 编解码结构
每一个染色体都代表一个解,对染色体进行正确的编码是遗传算法的基础。高效的编码方式要易于理解和实现,以及提高算法搜索能力。
本文使用与现有技术基本相同的整数编码方案,染色体中的每一个基因位都是一个整数,范围与处理器核的数量和任务数相关。假设种群规模为popSize,一个个体就是一个染色体,代表一种可行的调度方案,即全部任务分配到处理器核上并满足约束关系。每个染色体编码分为两部分,u(·)和v(·),u(·)表示调度顺序,要求满足任务之间的先序关系,v(·)表示任务分配到哪个处理器核上,u(·)和v(·)的长度均为任务数。u(i)=k表示任务Ti处在调度顺序中的第k个位置,v(i)=j表示任务Ti分配到处理器Cj上。与现有技术不同的是,本发明规定u(·)中的调度顺序为没有约束关系的两个任务之间的相对顺序,即为局部排序,而不是现有方法中所提到的全局排序。如果u(·)中的调度顺序为全局排序,则种群初始化时随机生成的有效个体会很少,大部分为无效个体,为了生成更多的有效个体,不得不耗费更多的时间。比如,对于10个任务的DAG图,如果入口任务只有1个,则随机产生的有效排列概率小于1/10,如果再考虑其他任务的先后顺序,实际的有效排列会更少。
解码是编码的逆过程,是指根据染色体画出甘特图。甘特图能够清晰准确地给出任务的分配位置以及调度顺序。解码过程除了要看染色体编码信息外,还要看计算时间矩阵、通信延迟矩阵以及任务关系矩阵等。图3给出了一个解码示例,根据u(·)和v(·)可以得到8个任务的空间位置和时间顺序。
2.3 方法的基本流程
综上所述,见图7,本发明一种单指令集异构多核***静态任务调度方法,该方法具体步骤如下:
步骤一:种群初始化
遗传算法初始种群的产生通常有两种方法,一是没有任何条件限制,随机的产生初始种群;二是种群的产生必须满足一定的要求,在满足这些条件的前提下再随机的产生初始种群。根据具体问题选择相应的方法。
设n为处理器数量,m为总的任务数。当染色体S的u(·)部分为任务的全局排序时,种群初始化步骤如下:
(1)产生一个新的染色体S。
(2)初始化染色体S的v(·)部分,其中的每一个基因位均为随机数,类型为整数,取值范围为[0,n-1]。
(3)初始化染色体S的u(·)部分,取值为1,2,…,m的一个排列,鉴于全局排序存在的问题,这里在u(·)部分使用局部排序,用于确定两个没有依赖关系的任务之间的执行顺序。因此,任何一个随机序列都是有效的,不需要判断个体是否有效,种群初始化的过程因此变得简单。
(4)当种群规模达到设定值时,退出初始化,否则,转向(1)继续产生新个体。
步骤二:计算适应度值
要实现的调度目标是寻找一个调度策略,将m个子任务分配到n个处理器核上,合理安排各个子任务的执行次序,使得各子任务在满足依赖关系图的约束下,整个任务的完成时间尽量短,功耗尽量低。多目标优化遗传算法不需要像权重法那样设置权重系数,仍然同单目标优化遗传算法那样分别计算多个目标的适应度值,采用Pareto方法来判断一个解是否是非劣解。异构多核***的调度目标是总的任务完成时间和功耗,因此需要同时计算两个适应度值。适应度值的计算是在甘特图的基础上完成的,甘特图的生成还要以及执行时间矩阵Θ、通信延迟矩阵Ψ、任务分配矩阵Ω,任务先序关系矩阵Λ。
1)任务完成时间
假设一个有效的调度策略S,将T中的m个任务分配到n个处理器核上,那么任务Ti在处理器核Cj上的执行时间满足:
Finish(Ti,Cj)=Begin(Ti,Cj)+θij (5)
公式(5)中,Begin(Ti,Cj)和Finish(Ti,Cj)分别表示任务Ti在处理器Cj核上的开始执行时刻和结束执行时刻,假设任务Tk∈pred(Ti)被分配到处理器核Cr上。根据公式(5)可以得到所有任务的结束执行时刻。某个调度策略S下的总的任务完成时间为最后一个任务的结束时间,令Γ(S)=max(Finish(Ti,Cj)),任务调度的目标之一是寻找一个调度策略S,使得Γ(S)最小。
2)***能耗模型
处理器核的功耗主要来自三个方面:动态功耗Pdyn、静态功耗Pstatic和短路功耗Pshort。动态功耗来自处理器核内部各元件正常工作时的功耗;静态功耗是来自亚阈值漏电流和栅极漏电流产生的功耗;短路功耗是晶体管在逻辑门打开的瞬间产生的功耗。处理器核的功耗主要由Pdyn决定,约占70%。动态功耗用公式表示为Pdyn=KCV2f,其中,K是晶体管的翻转次数,C是晶体管的装载电容,f是时钟频率,V是供电电压。随着工艺的发展,动态功耗在降低,使得静态功耗所占比重增大。每个处理器核都有一个电压和频率成对匹配的离散有限集合,频率和电压已知后可以估算出每个处理器核的动态功耗P={Pdyn_0,Pdyn_1,…,Pdyn_n},根据静态功耗与动态功耗的大致比例关系,可以粗略地估算每个处理器核的静态功耗P={Pstatic_0,Pstatic_1,…,Pstatic_n},暂且忽略短路功耗。当调度序列确定后,每个处理器核的正常工作时间及空闲时间就确定了,假设每个处理器核的正常工作时间为Twork={Twork_0,Twork_1,…,Twork_n},空闲时间为Tidle={Tidle_0,Tidle_1,…,Tidle_n},则完成全部任务所消耗的能量任务调度的目标之二是寻找一个调度策略S,使得energy(S)最小。
步骤三:选择算子操作
选择操作是将种群中优秀个体选出,将劣质个体淘汰,遗传算法的选择操作就是基于个体适应度值的选择,适应度值大的个体被选中的概率大,适应度值小的个体被淘汰的概率大。常见的选择方法有随机遍历抽样、局部选择、锦标赛选择、轮盘赌选择等。本算法使用带放回(with replacement)的二选一锦标赛选择法。具体流程是:在精英种群中随机抽取两个个体,记录其中适应度高的个体,然后再把它们全部放回到精英种群中,如果选择N个个体,则重复N次。
步骤四:交叉算子操作
交叉算子是为了扩大算法的搜索空间,避免算法过早地收敛于某个局部最优解,防止早熟。在用于任务调度的交叉算子中,要保证任务集不增不减,同时还要保证交叉运算后的调度序列依然满足任务之间的先序关系。
本发明提出交叉算子仅作用于染色体的v(·)部分,u(·)部分在种群初始化后不再变化,原因在于任务之间的先后顺序主要是通过任务先序关系矩阵来保证的,u(·)部分定义的先后顺序只是一种补充。具体算法如下:
(1)从种群中随机选择个体S;
(2)从个体S中随机选择两个任务,Tx和Ty;
(4)退出交叉运算。
步骤五:变异算子操作
在异构多核处理器任务分配中,不能采用传统的随机变异操作,变异算子必须保证任务总数和种类不变、处理器核的范围也不变。这里的变异算子限定只作用在v(·)上,相当于将任务迁移。具体算法如下:
(1)从种群中随机选择个体S;
(2)从个体S的v(·)中随机选择1个基因位i;
(3)随机产生一个整数m∈[0,N-1],其中N是处理器核的数量;
(4)令v(·)=m;
(5)退出变异运算。
3、优点及效果:
本发明使用局部排序表征无依赖关系的两个任务的执行顺序,使种群初始化效率和有效个体大大提高,使用先序关系矩阵来确定任务的执行顺序,克服了传统高度值方法存在的严重不足。本方法能扩大最优个体搜索范围,在种群规模足够大时,可以找到高度值方法漏掉的部分最优解,从而得到更优的调度序列。从而使整个任务集的完成时间更短、功耗更低。
附图说明
图1有向无环示意图1
图2有向无环示意图2
图3染色体编解码示意图
图4先序关系矩阵与高度值方法调度顺序比较示意图
图530个任务4核Pareto前沿示意图
图630个任务8核Pareto前沿示意图
图7本发明流程框图
图中符号说明如下:
T1——表示任务1
T2——表示任务2
T3——表示任务3
T4——表示任务4
T5——表示任务5
T6——表示任务6
T7——表示任务7
T8——表示任务8
具体实施方式
下面通过两个实例来说明使用先序关系矩阵与使用高度值方法导致的结果差异。
实例1:
从图1所示的DAG图可以看到,T2的高度值为1,T5的高度值为2,依据高度值定义,T2必须在T5之前执行,实际上,该约束条件不是必要的,从图1可以看出,T2和T5之间并没有约束关系,只要T3(无论在哪个核上)执行完毕后的输出数据传递到T5所在的处理器核,T5就可以执行,T2可以在T5之后运行。同样的道理,图2所示的DAG图中,如果使用高度值,则T2的高度值为0,T3与T5的高度值为1,则T2必须在T5之前完成,实际上,该约束条件也是不必要的,T2在执行过程中,T3与T5是白白等待的,为了让位于另一个处理器核上的T4尽早启动运行,应该让T3先于T2运行。假设所有任务的执行时间是相同的,忽略传输延迟,根据图3所示的染色图编码,可以画出基于高度值方法的甘特图和基于先序关系矩阵的甘特图,如图4所示,可以看出,基于先序关系矩阵的调度长度要短于基于高度值的调度长度。原因在于,对于某些DAG图,高度值方法可能会漏掉一些合法解,这些合法解中有的可能比高度值方法得到的解更优,当然,也有可能比高度值方法得到的解更差。图1和图2所示的DAG图任务数量少,并假设所有任务的执行时间相同并忽略传输延迟,使得可以很容易画出甘特图,当任务数量较多且任务执行时间不同、传输延迟不能忽略时,就需要通过计算了。
实例2:
为了对任务数较多时多目标优化遗传算法的效果进行仿真测试,用C语言实现了该算法算法。随机生成30个任务的DAG图及任务相关属性。处理器核的配置设为两种,4核(1个快核3个慢核)和8核(2个快核6个慢核),其中,快核的主频为慢核的两倍。当有程序运行时,处理器核的功耗主要是动态功耗,与主频和电压相关,近似估算慢核的功耗为2个能耗单位,快核的功耗为5个能耗单位(近似为慢核的2.5倍),假设没有程序运行时,快核的功耗为1个能耗单位,慢核的功耗为0.5个能耗单位,主要用于计算快核或慢核空闲等待时的静态功耗。种群数量定义为400,其中精英个体数量为80(20%*400),其余为非精英个体,数量为320(80%*400),迭代次数为1000,变异概率是0.25,由于交叉和变异都是改变任务的位置,可以不进行交叉运算。
见图7,本发明提出面向单指令集异构多核***的基于多目标优优化遗传算法的静态任务调度方法,该方法具体步骤如下:
步骤一:种群初始化
遗传算法初始种群的产生通常有两种方法,一是没有任何条件限制,随机的产生初始种群;二是种群的产生必须满足一定的要求,在满足这些条件的前提下再随机的产生初始种群。根据具体问题选择相应的方法。
设n为处理器数量,m为总的任务数。当染色体S的u(·)部分为任务的全局排序时,种群初始化步骤如下:
(1)产生一个新的染色体S。
(2)初始化染色体S的v(·)部分,其中的每一个基因位均为随机数,类型为整数,取值范围为[0,n-1]。
(3)初始化染色体S的u(·)部分,取值为1,2,…,m的一个排列,鉴于全局排序存在的问题,这里在u(·)部分使用局部排序,用于确定两个没有依赖关系的任务之间的执行顺序。因此,任何一个随机序列都是有效的,不需要判断个体是否有效,种群初始化的过程因此变得简单。
(4)当种群规模达到设定值时,退出初始化,否则,转向(1)继续产生新个体。
步骤二:计算适应度值
要实现的调度目标是寻找一个调度策略,将m个子任务分配到n个处理器核上,合理安排各个子任务的执行次序,使得各子任务在满足依赖关系图的约束下,整个任务的完成时间尽量短,功耗尽量低。多目标优化遗传算法不需要像权重法那样设置权重系数,仍然同单目标优化遗传算法那样分别计算多个目标的适应度值,采用Pareto方法来判断一个解是否是非劣解。异构多核***的调度目标是总的任务完成时间和功耗,因此需要同时计算两个适应度值。适应度值的计算是在甘特图的基础上完成的,甘特图的生成还要以及执行时间矩阵Θ、通信延迟矩阵Ψ、任务分配矩阵Ω,任务先序关系矩阵Λ。
1)任务完成时间
假设一个有效的调度策略S,将T中的m个任务分配到n个处理器核上,那么任务Ti在处理器核Cj上的执行时间满足:
Finish(Ti,Cj)=Begin(Ti,Cj)+θij (5)
公式(5)中,Begin(Ti,Cj)和Finish(Ti,Cj)分别表示任务Ti在处理器Cj核上的开始执行时刻和结束执行时刻,假设任务Tk∈pred(Ti)被分配到处理器核Cr上。根据公式(5)可以得到所有任务的结束执行时刻。某个调度策略S下的总的任务完成时间为最后一个任务的结束时间,令Γ(S)=max(Finish(Ti,Cj)),任务调度的目标之一是寻找一个调度策略S,使得Γ(S)最小。
2)***能耗模型
处理器核的功耗主要来自三个方面:动态功耗Pdyn、静态功耗Pstatic和短路功耗Pshort。动态功耗来自处理器核内部各元件正常工作时的功耗;静态功耗是来自亚阈值漏电流和栅极漏电流产生的功耗;短路功耗是晶体管在逻辑门打开的瞬间产生的功耗。处理器核的功耗主要由Pdyn决定,约占70%。动态功耗用公式表示为Pdyn=KCV2f,其中,K是晶体管的翻转次数,C是晶体管的装载电容,f是时钟频率,V是供电电压。随着工艺的发展,动态功耗在降低,使得静态功耗所占比重增大。每个处理器核都有一个电压和频率成对匹配的离散有限集合,频率和电压已知后可以估算出每个处理器核的动态功耗P={Pdyn_0,Pdyn_1,…,Pdyn_n},根据静态功耗与动态功耗的大致比例关系,可以粗略地估算每个处理器核的静态功耗P={Pstatic_0,Pstatic_1,…,Pstatic_n},暂且忽略短路功耗。当调度序列确定后,每个处理器核的正常工作时间及空闲时间就确定了,假设每个处理器核的正常工作时间为Twork={Twork_0,Twork_1,…,Twork_n},空闲时间为Tidle={Tidle_0,Tidle_1,…,Tidle_n},则完成全部任务所消耗的能量任务调度的目标之二是寻找一个调度策略S,使得energy(S)最小。
步骤三:选择算子操作
选择操作是将种群中优秀个体选出,将劣质个体淘汰,遗传算法的选择操作就是基于个体适应度值的选择,适应度值大的个体被选中的概率大,适应度值小的个体被淘汰的概率大。常见的选择方法有随机遍历抽样、局部选择、锦标赛选择、轮盘赌选择等。本算法使用带放回(with replacement)的二选一锦标赛选择法。具体流程是:在精英种群中随机抽取两个个体,记录其中适应度高的个体,然后再把它们全部放回到精英种群中,如果选择N个个体,则重复N次。
步骤四:交叉算子操作
交叉算子是为了扩大算法的搜索空间,避免算法过早地收敛于某个局部最优解,防止早熟。在用于任务调度的交叉算子中,要保证任务集不增不减,同时还要保证交叉运算后的调度序列依然满足任务之间的先序关系。
本发明提出交叉算子仅作用于染色体的v(·)部分,u(·)部分在种群初始化后不再变化,原因在于任务之间的先后顺序主要是通过任务先序关系矩阵来保证的,u(·)部分定义的先后顺序只是一种补充。具体算法如下:
(1)从种群中随机选择个体S;
(2)从个体S中随机选择两个任务,Tx和Ty;
(3)如果任务Tx和Ty所在的处理器核不同,即v(x)≠v(y),则进行交叉,否则,直接转入(4);
(4)退出交叉运算。
步骤五:变异算子操作
在异构多核处理器任务分配中,不能采用传统的随机变异操作,变异算子必须保证任务总数和种类不变、处理器核的范围也不变。这里的变异算子限定只作用在v(·)上,相当于将任务迁移。具体算法如下:
(1)从种群中随机选择个体S;
(2)从个体S的v(·)中随机选择1个基因位i;
(3)随机产生一个整数m∈[0,N-1],其中N是处理器核的数量;
(4)令v(·)=m;
(5)退出变异运算。
通过运算,得到了4个处理器核核8个处理器核的Pareto前沿,如图5至图6所示,位于Pareto前沿的每一个解都是最优解,可以看到,基于先序关系矩阵方法得到的Pareto最优解大部分都位于基于高度值方法得到的Pareto最优解的左下侧。如果一个解S1位于另一个解S2的左下侧,说明调度方案S1的能耗和完成时间均比调度方案S2要小,根据Pareto占优的概念说明S1要优于S2。这说明基于矩阵的方法可以找到更优的调度序列,从而可以缩短整个任务的完成时间,同时降低功耗。
Claims (1)
1.一种单指令集异构多核***静态任务调度方法,其特征在于:该方法具体步骤如下:步骤一:种群初始化
遗传算法初始种群的产生有两种方法,一是没有任何条件限制,随机的产生初始种群;二是种群的产生必须满足一定的要求,在满足这些条件的前提下再随机的产生初始种群;根据具体问题选择相应的方法;
设n为处理器数量,m为总的任务数,当染色体S的u(·)部分为任务的全局排序时,种群初始化步骤如下:
(1)产生一个新的染色体S;
(2)初始化染色体S的v(·)部分,其中的每一个基因位均为随机数,类型为整数,取值范围为[0,n-1];
(3)初始化染色体S的u(·)部分,取值为1,2,…,m的一个排列,鉴于全局排序存在的问题,这里在u(·)部分使用局部排序,用于确定两个没有依赖关系的任务之间的执行顺序;因此,任何一个随机序列都是有效的,不需要判断个体是否有效,种群初始化的过程因此变得简单;
(4)当种群规模达到设定值时,退出初始化,否则,转向(1)继续产生新个体;
步骤二:计算适应度值
要实现的调度目标是寻找一个调度策略,将m个子任务分配到n个处理器核上,合理安排各个子任务的执行次序,使得各子任务在满足依赖关系图的约束下,整个任务的完成时间尽量短,功耗尽量低;多目标优化遗传算法不需要像权重法那样设置权重系数,仍然同单目标优化遗传算法那样分别计算多个目标的适应度值,采用Pareto方法来判断一个解是否是非劣解;异构多核***的调度目标是总的任务完成时间和功耗,因此需要同时计算两个适应度值;适应度值的计算是在甘特图的基础上完成的,甘特图的生成还要以及执行时间矩阵Θ、通信延迟矩阵Ψ、任务分配矩阵Ω,任务先序关系矩阵Λ;
1)任务完成时间
假设一个有效的调度策略S,将T中的m个任务分配到n个处理器核上,那么任务Ti在处理器核Cj上的执行时间满足:
Finish(Ti,Cj)=Begin(Ti,Cj)+θij (5)
公式(5)中,Begin(Ti,Cj)和Finish(Ti,Cj)分别表示任务Ti在处理器Cj核上的开始执行时刻和结束执行时刻,假设任务Tk∈pred(Ti)被分配到处理器核Cr上;根据公式(5)得到所有任务的结束执行时刻;某个调度策略S下的总的任务完成时间为最后一个任务的结束时间,令Γ(S)=max(Finish(Ti,Cj)),任务调度的目标之一是寻找一个调度策略S,使得Γ(S)最小;
2)***能耗模型
处理器核的功耗主要来自三个方面:动态功耗Pdyn、静态功耗Pstatic和短路功耗Pshort;动态功耗来自处理器核内部各元件正常工作时的功耗;静态功耗是来自亚阈值漏电流和栅极漏电流产生的功耗;短路功耗是晶体管在逻辑门打开的瞬间产生的功耗;处理器核的功耗主要由Pdyn决定,约占70%,动态功耗用公式表示为Pdyn=KCV2f,其中,K是晶体管的翻转次数,C是晶体管的装载电容,f是时钟频率,V是供电电压;随着工艺的发展,动态功耗在降低,使得静态功耗所占比重增大;每个处理器核都有一个电压和频率成对匹配的离散有限集合,频率和电压已知后估算出每个处理器核的动态功耗P={Pdyn_0,Pdyn_1,…,Pdyn_n},根据静态功耗与动态功耗的大致比例关系,粗略地估算每个处理器核的静态功耗P={Pstatic_0,Pstatic_1,…,Pstatic_n},暂且忽略短路功耗;当调度序列确定后,每个处理器核的正常工作时间及空闲时间就确定了,假设每个处理器核的正常工作时间为Twork={Twork_0,Twork_1,…,Twork_n},空闲时间为Tidle={Tidle_0,Tidle_1,…,Tidle_n},则完成全部任务所消耗的能量任务调度的目标之二是寻找一个调度策略S,使得energy(S)最小;
步骤三:选择算子操作
选择操作是将种群中优秀个体选出,将劣质个体淘汰,遗传算法的选择操作就是基于个体适应度值的选择,适应度值大的个体被选中的概率大,适应度值小的个体被淘汰的概率大;常见的选择方法有随机遍历抽样、局部选择、锦标赛选择、轮盘赌选择;这里使用带放回即with replacement的二选一锦标赛选择法;具体流程是:在精英种群中随机抽取两个个体,记录其中适应度高的个体,然后再把它们全部放回到精英种群中,如果选择N个个体,则重复N次;
步骤四:交叉算子操作
交叉算子是为了扩大算法的搜索空间,避免算法过早地收敛于某个局部最优解,防止早熟;在用于任务调度的交叉算子中,要保证任务集不增不减,同时还要保证交叉运算后的调度序列依然满足任务之间的先序关系;
提出交叉算子仅作用于染色体的v(·)部分,u(·)部分在种群初始化后不再变化,原因在于任务之间的先后顺序是通过任务先序关系矩阵来保证的,u(·)部分定义的先后顺序只是一种补充;具体算法如下:
(1)从种群中随机选择个体S;
(2)从个体S中随机选择两个任务,Tx和Ty;
(4)退出交叉运算;
步骤五:变异算子操作
在异构多核处理器任务分配中,不能采用传统的随机变异操作,变异算子必须保证任务总数和种类不变、处理器核的范围也不变;这里的变异算子限定只作用在v(·)上,相当于将任务迁移;具体算法如下:
(1)从种群中随机选择个体S;
(2)从个体S的v(·)中随机选择1个基因位i;
(3)随机产生一个整数m∈[0,N-1],其中N是处理器核的数量;
(4)令v(·)=m;
(5)退出变异运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012103912768A CN102866912A (zh) | 2012-10-16 | 2012-10-16 | 一种单指令集异构多核***静态任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012103912768A CN102866912A (zh) | 2012-10-16 | 2012-10-16 | 一种单指令集异构多核***静态任务调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102866912A true CN102866912A (zh) | 2013-01-09 |
Family
ID=47445793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012103912768A Pending CN102866912A (zh) | 2012-10-16 | 2012-10-16 | 一种单指令集异构多核***静态任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102866912A (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103235743A (zh) * | 2013-04-07 | 2013-08-07 | 北京航空航天大学 | 一种基于分解和最优解跟随策略的多目标测试任务调度方法 |
WO2014139395A1 (en) * | 2013-03-12 | 2014-09-18 | International Business Machines Corporation | Early generation of individuals to accelerate genetic algorithms |
CN105335226A (zh) * | 2015-09-24 | 2016-02-17 | 合肥工业大学 | 针对多处理器***的迭代式静态任务列表调度算法 |
CN106125877A (zh) * | 2015-05-04 | 2016-11-16 | 三星电子株式会社 | 用于智能地交换电路单元的方法和智能单元交换器 |
WO2018036282A1 (zh) * | 2016-08-24 | 2018-03-01 | 深圳市中兴微电子技术有限公司 | 一种任务调度方法、装置及计算机存储介质 |
CN108182109A (zh) * | 2017-12-28 | 2018-06-19 | 福州大学 | 一种云环境下的工作流调度与数据分配方法 |
CN108415761A (zh) * | 2018-01-31 | 2018-08-17 | 西北工业大学 | 一种基于网络流量优化的Storm任务调度方法 |
CN109189205A (zh) * | 2018-09-30 | 2019-01-11 | 武汉理工大学 | 一种异构多核嵌入式实时***能耗优化调度方法 |
CN109426553A (zh) * | 2017-08-21 | 2019-03-05 | 上海寒武纪信息科技有限公司 | 任务切分装置及方法、任务处理装置及方法、多核处理器 |
CN109993310A (zh) * | 2019-04-16 | 2019-07-09 | 西安电子科技大学 | 基于fpga的并行量子进化实现方法 |
CN110245366A (zh) * | 2018-03-08 | 2019-09-17 | 华为技术有限公司 | 动态功耗估计方法、装置及*** |
CN112084033A (zh) * | 2020-09-17 | 2020-12-15 | 南方电网数字电网研究院有限公司 | 多核***的任务分配方法、装置、计算机设备和存储介质 |
US10901815B2 (en) | 2017-06-26 | 2021-01-26 | Shanghai Cambricon Information Technology Co., Ltd | Data sharing system and data sharing method therefor |
CN112328380A (zh) * | 2020-11-10 | 2021-02-05 | 武汉理工大学 | 一种基于异构计算的任务调度方法及装置 |
CN112346828A (zh) * | 2019-08-06 | 2021-02-09 | 北京沃东天骏信息技术有限公司 | 基于分布式异构***的任务配置方法、装置及存储介质 |
CN113361833A (zh) * | 2020-03-02 | 2021-09-07 | 联芯集成电路制造(厦门)有限公司 | 化学机械抛光***以及相关的派工管理方法 |
CN113448736A (zh) * | 2021-07-22 | 2021-09-28 | 东南大学 | 一种近似计算任务在多核异构处理平台上基于能量和QoS联合优化的任务映射方法 |
US11537843B2 (en) | 2017-06-29 | 2022-12-27 | Shanghai Cambricon Information Technology Co., Ltd | Data sharing system and data sharing method therefor |
US11687467B2 (en) | 2018-04-28 | 2023-06-27 | Shanghai Cambricon Information Technology Co., Ltd | Data sharing system and data sharing method therefor |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184125A (zh) * | 2011-06-02 | 2011-09-14 | 首都师范大学 | 异构多核环境下基于程序行为在线分析的负载均衡方法 |
CN102508708A (zh) * | 2011-11-30 | 2012-06-20 | 湖南大学 | 基于改进遗传算法的异构多核节能任务调度方法 |
-
2012
- 2012-10-16 CN CN2012103912768A patent/CN102866912A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184125A (zh) * | 2011-06-02 | 2011-09-14 | 首都师范大学 | 异构多核环境下基于程序行为在线分析的负载均衡方法 |
CN102508708A (zh) * | 2011-11-30 | 2012-06-20 | 湖南大学 | 基于改进遗传算法的异构多核节能任务调度方法 |
Non-Patent Citations (1)
Title |
---|
徐远超,张志敏,蒋毅飞: "基于多目标遗传算法的单指令集异构多核***静态任务调度", 《小型微型计算机***》 * |
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9311597B2 (en) | 2013-03-12 | 2016-04-12 | International Business Machines Corporation | Early generation of individuals to accelerate genetic algorithms |
WO2014139395A1 (en) * | 2013-03-12 | 2014-09-18 | International Business Machines Corporation | Early generation of individuals to accelerate genetic algorithms |
US10755175B2 (en) | 2013-03-12 | 2020-08-25 | International Business Machines Corporation | Early generation of individuals to accelerate genetic algorithms |
CN103235743A (zh) * | 2013-04-07 | 2013-08-07 | 北京航空航天大学 | 一种基于分解和最优解跟随策略的多目标测试任务调度方法 |
CN103235743B (zh) * | 2013-04-07 | 2016-03-02 | 北京航空航天大学 | 一种基于分解和最优解跟随策略的多目标测试任务调度方法 |
CN106125877A (zh) * | 2015-05-04 | 2016-11-16 | 三星电子株式会社 | 用于智能地交换电路单元的方法和智能单元交换器 |
CN106125877B (zh) * | 2015-05-04 | 2021-02-05 | 三星电子株式会社 | 用于智能地交换电路单元的方法和智能单元交换器 |
CN105335226B (zh) * | 2015-09-24 | 2018-10-02 | 合肥工业大学 | 针对多处理器***的迭代式静态任务列表调度方法 |
CN105335226A (zh) * | 2015-09-24 | 2016-02-17 | 合肥工业大学 | 针对多处理器***的迭代式静态任务列表调度算法 |
WO2018036282A1 (zh) * | 2016-08-24 | 2018-03-01 | 深圳市中兴微电子技术有限公司 | 一种任务调度方法、装置及计算机存储介质 |
US10901815B2 (en) | 2017-06-26 | 2021-01-26 | Shanghai Cambricon Information Technology Co., Ltd | Data sharing system and data sharing method therefor |
US11726844B2 (en) | 2017-06-26 | 2023-08-15 | Shanghai Cambricon Information Technology Co., Ltd | Data sharing system and data sharing method therefor |
US11537843B2 (en) | 2017-06-29 | 2022-12-27 | Shanghai Cambricon Information Technology Co., Ltd | Data sharing system and data sharing method therefor |
US11656910B2 (en) | 2017-08-21 | 2023-05-23 | Shanghai Cambricon Information Technology Co., Ltd | Data sharing system and data sharing method therefor |
CN109426553A (zh) * | 2017-08-21 | 2019-03-05 | 上海寒武纪信息科技有限公司 | 任务切分装置及方法、任务处理装置及方法、多核处理器 |
CN108182109B (zh) * | 2017-12-28 | 2021-08-31 | 福州大学 | 一种云环境下的工作流调度与数据分配方法 |
CN108182109A (zh) * | 2017-12-28 | 2018-06-19 | 福州大学 | 一种云环境下的工作流调度与数据分配方法 |
CN108415761A (zh) * | 2018-01-31 | 2018-08-17 | 西北工业大学 | 一种基于网络流量优化的Storm任务调度方法 |
CN108415761B (zh) * | 2018-01-31 | 2021-11-05 | 西北工业大学 | 一种基于网络流量优化的Storm任务调度方法 |
CN110245366A (zh) * | 2018-03-08 | 2019-09-17 | 华为技术有限公司 | 动态功耗估计方法、装置及*** |
US11687467B2 (en) | 2018-04-28 | 2023-06-27 | Shanghai Cambricon Information Technology Co., Ltd | Data sharing system and data sharing method therefor |
CN109189205A (zh) * | 2018-09-30 | 2019-01-11 | 武汉理工大学 | 一种异构多核嵌入式实时***能耗优化调度方法 |
CN109993310B (zh) * | 2019-04-16 | 2023-03-24 | 西安电子科技大学 | 基于fpga的并行量子进化实现方法 |
CN109993310A (zh) * | 2019-04-16 | 2019-07-09 | 西安电子科技大学 | 基于fpga的并行量子进化实现方法 |
CN112346828A (zh) * | 2019-08-06 | 2021-02-09 | 北京沃东天骏信息技术有限公司 | 基于分布式异构***的任务配置方法、装置及存储介质 |
CN112346828B (zh) * | 2019-08-06 | 2024-04-05 | 北京沃东天骏信息技术有限公司 | 基于分布式异构***的任务配置方法、装置及存储介质 |
CN113361833A (zh) * | 2020-03-02 | 2021-09-07 | 联芯集成电路制造(厦门)有限公司 | 化学机械抛光***以及相关的派工管理方法 |
US11397425B2 (en) | 2020-03-02 | 2022-07-26 | United Semiconductor (Xiamen) Co., Ltd. | CMP polishing system and associated pilot management system |
CN112084033A (zh) * | 2020-09-17 | 2020-12-15 | 南方电网数字电网研究院有限公司 | 多核***的任务分配方法、装置、计算机设备和存储介质 |
CN112328380A (zh) * | 2020-11-10 | 2021-02-05 | 武汉理工大学 | 一种基于异构计算的任务调度方法及装置 |
CN113448736A (zh) * | 2021-07-22 | 2021-09-28 | 东南大学 | 一种近似计算任务在多核异构处理平台上基于能量和QoS联合优化的任务映射方法 |
CN113448736B (zh) * | 2021-07-22 | 2024-03-19 | 东南大学 | 一种近似计算任务在多核异构处理平台上基于能量和QoS联合优化的任务映射方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102866912A (zh) | 一种单指令集异构多核***静态任务调度方法 | |
CN102508708B (zh) | 基于改进遗传算法的异构多核节能任务调度方法 | |
Qin et al. | An improved iterated greedy algorithm for the energy-efficient blocking hybrid flow shop scheduling problem | |
Li et al. | An improved artificial bee colony algorithm for distributed heterogeneous hybrid flowshop scheduling problem with sequence-dependent setup times | |
Wang et al. | A cooperative memetic algorithm with feedback for the energy-aware distributed flow-shops with flexible assembly scheduling | |
US8881158B2 (en) | Schedule decision device, parallel execution device, schedule decision method, and program | |
CN102364447B (zh) | 一种优化多任务间通信能耗的作业调度方法 | |
CN115248728A (zh) | 面向智能计算的分布式训练任务调度方法、***和装置 | |
CN110969362B (zh) | 一种云计算***下多目标任务调度方法及*** | |
CN104281495B (zh) | 多核处理器共享高速缓存任务调度方法 | |
CN102171627A (zh) | 对在异构计算***中执行的应用的调度 | |
CN103473134A (zh) | 一种异构多核处理器的依赖任务调度方法 | |
CN105159762A (zh) | 基于贪心策略的启发式云计算任务调度方法 | |
CN101237469A (zh) | 运用蚁群算法优化多QoS网格工作流的方法 | |
CN104572297A (zh) | 一种基于遗传算法的Hadoop作业调度方法 | |
CN101593132A (zh) | 基于线程构造模块的多核并行模拟退火方法 | |
Jiang et al. | Energy-conscious flexible job shop scheduling problem considering transportation time and deterioration effect simultaneously | |
CN108768703A (zh) | 一种云工作流调度的能耗优化方法、云计算*** | |
CN116166381A (zh) | 一种多云管理平台中基于iaco算法的资源调度 | |
CN102141935B (zh) | 一种基于双目标优化遗传算法的作业调度方法 | |
CN111026534B (zh) | 云计算环境下基于多种群遗传算法的工作流执行优化方法 | |
CN101996105A (zh) | 可重构计算平台上的静态软硬件任务划分与调度方法 | |
CN109635999B (zh) | 一种基于粒子群-细菌觅食的水电站调度方法及*** | |
CN106055862A (zh) | 一种新型高效的启发式两阶段并行分支定界方法 | |
Lin et al. | Runtime estimation and scheduling on parallel processing supercomputers via instance-based learning and swarm intelligence |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130109 |