一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种综合式的异构多核处理器任务调度方法

2022-10-29 04:57:17 来源:中国专利 TAG:


1.本发明涉及操作系统领域,是一种利用群智能算法应用在异构多核处理器的任务调度领域上,具体为一种基于改进狮群算法与ihcnf算法结合的异构多核处理器任务调度方法。


背景技术:

2.关于异构多核处理器的研究,有一个非常关键的问题就是如何提高异构环境下的任务调度效率,任务调度的好坏决定异构多核处理器性能的好坏。低效率的任务调度方法会使整个程序并行性能处于劣势,高效率的任务调度方法会使程序并行性能达到最大化,有效地提高了整个处理器的性能。在基于异构多核处理器的结构下,任务调度具有一定的复杂性,每一个处理器核的性能和结构都是不一样的,所以当把任务分配至哪一个处理器上时需要考虑任务的执行时间以及处理器核的执行能力等条件,以往的同构任务调度算法不足以解决异构多核处理器的任务调度问题,同时任务调度问题被证实是np难问题,所以研究异构环境下的任务调度算法具有挑战性和突破性,也是近年许多学者研究的重点方向,学者们对异构多核环境下的任务调度算法在不断地进行改进创新,给我们留下了宝贵的学习经验,从刚开始的改进单一算法来提高调度效率到结合多个算法进行改进来提高调度效率,这种综合改进方法使我们受到了很大的启发。因此,本发明研究基于异构多核处理器的综合性任务调度算法这个课题,具有非常重要的理论价值和研究意义。
3.随着智能算法的兴起,学者们也在不断的寻找智能算法与静态启发式算法结合的突破口,智能算法在解决组合优化问题上有许多的研究,将其用来解决任务调度问题,都取得了非常不错的效果,dupu li等人提出了一种改进的混合粒子群优化算法,该混合算法主要是将遗传算法作为主算法,粒子群算法作为副算法,用来帮助遗传算法进行后期的迭代寻优,混合算法主要目的是以最快速度迭代到最优解,结果证明该混合算法在任务调度上的效率高。
4.由此可见,群智能算法在异构多核处理器的任务调度领域的作用非常大,本发明提出基于一种综合式的异构多核处理器任务调度算法(ihlso),其中狮群算法是在2018年由刘生建等人提出的一种群智能算法,该算法的思想是以狮群的狩猎为核心,狮群分为了狮王、母狮、幼狮,其中狮王自然是整个种群中最强的,也是代表拥有全局最优的狮子。本发明方法为了防止出现局部收敛的情况,引入tent混沌映射,并改进了幼狮更新公式,总体提升了系统的执行性能,有效缩短调度完成时间。结果表明,本发明方法在异构多核处理器任务调度领域的性能更好。


技术实现要素:

5.为了提高异构环境下任务调度的性能和调度效率,本发明提出一种基于异构环境下的综合式任务调度方法。通过改进的麻雀搜索算法与改进的hcnf算法得到综合式的任务调度算法,其中需要通过设计有效的编码方式,使狮群算法适用于解决离散的任务调度问
题。
6.为了验证方法的可行性,本发明的技术方案为:
7.步骤1:使用ihcnf算法获得一个比较优秀的任务调度序列,作为改进狮群算法的部分初始种群;
8.步骤2:初始化ihlso种群参数,将狮群个体位置进行优先级权值编码,将其位置信息转换为任务调度序列;
9.步骤3:混沌初始化种群,使种群分布具有均匀、多样性,避免一开始就陷入局部最优位置;
10.步骤4:首次计算每个个体位置的适应度值,根据适应度值进行解码操作,对适应度值大小进行比较,根据适应度值的大小来标记出全局最优位置、个体历史最优位置,并对其进行保留;
11.步骤5:根据狮王、母狮、幼狮的位置更新公式更新位置情况;
12.步骤6:再次计算每个个体的适应度值,此时选出新的全局最优位置、新的个体历史最优位置对其进行更新;
13.步骤7:当达到程序设定的迭代次数时,程序停止运行输出最后的解,也就是适应度值最大的狮王位置,并解码成最优的任务调度序列。
附图说明
14.图1为本发明异构多核处理器任务调度模型图;
15.图2为本发明具有9个节点的任务dag模型图;
16.图3为本发明ihcnf算法的结构图;
17.图4为本发明基于ihcnf算法的异构多核任务调度流程图;
18.图5为本发明一种综合式的异构多核任务调度算法流程图;
具体实施方式
19.下面将结合附图、表和具体实例对本发明作进一步详细描述。
20.步骤1:设置任务模型dag;
21.任务调度模型由四元组d=(n,e,w,c),其中n={n1,n2,

,nm}表示节点集合,每一个节点代表一个任务,nm表示在dag中的第m个节点也就是第m个任务。e={

,e
i,j
,

}表示dag中有向边的集合,e
i,j
就表示任务ni与任务nj之间的一条有向边,ni是nj的前驱任务,记为pre(ni),nj是ni的后继任务,记为suc(nj)。表示任务在处理器上的执行开销的集合,表示任务ni在处理器pj上的执行开销。c={

,c
i,j
,

}代表了任务之间的通信开销集合,c
i,j
表示任务ni与任务nj之间的通信开销,如果ni与nj分配在同一个处理器上,则c
i,j
=0。
22.任务之间的要求:一个任务只能在一个处理器上运行,不能同时运行在几个处理器。一个任务必须等待它的前驱任务调度完成之后才能被调度。为了更加清晰描述任务模型dag,如图2所示:
23.图2中可以分解成9个独立的子任务,其任务集n={n1,n2,n3,n4,n5,n6,n7,n8,n9},总共有14条有向边,有向边的集合为:
24.e={(e
1,2
,12),(e
1,3
,5),(e
1,4
,8),(e
1,5
,20),(e
2,6
,6),(e
2,7
,25),(e
3,6
,16),(e
3,7
,10),(e
4,8
,8),(e
5,7
,13),(e
5,8
,11),(e
6,9
,22),(e
7,9
,14),(e
8,9
,19)}
25.其中说明n1无前驱节点,代表dag的入口任务,说明n9无后继节点,代表dag的出口任务。
26.相关的定义:
27.在异构多核任务调度问题中,求解的目标值就是调度长度makespan,所以当ihlso调度长度最短时,其适应度值最大,本文以最后一个任务调度完毕的结束时间makespan的倒数作为适应度评价准则,调度长度越短的狮群个体,其适应度值是越好的。所以第k个狮子个体的适应度值计算公式如(1):
[0028][0029]
其中ft(ni)是表示任务ni的调度完成时间,max{ft(ni)}是指出口任务ni的整体结束时间,也表示对应任务的适应度值。
[0030]
任务的调度完成时间ft(ni)是一个递归计算的过程,如公式(2)所示。在任务i存在前驱任务时,ft(ni)表示任务i的前驱任务集合中最后一个前驱任务k的调度完成时间ft(nk)与任务i和k的通信开销在加上任务i本身的执行时间;在任务i没有前驱任务时,其值只需要计算任务i的执行时间。
[0031][0032]
步骤2:使用ihcnf算法获得一个比较优秀的任务调度序列,作为改进狮群算法的部分初始种群;
[0033]
本发明结合了多核调度算法的优点和该领域学者的改进方法的基础上,对hcnf进行了改进。ihcnf算法的调度目标还是以异构多核环境下,任务调度最早完成时间最小为目标。调度过程分为任务排序阶段和任务分配阶段(处理器选择),在任务排序阶段,首先对dag进行分层处理,改进权值计算公式,这对于非关键任务排序来说是非常重要的,对整个调度的影响非常大,对于关键任务还是采用优先级优先排序的规则;在处理器选择阶段,原算法采用任务复制技术,该策略会产生冗余任务,改进算法在该阶段采用冗余优化策略对进行任务复制后的任务进行冗余判定。分配阶段还是对比原始的最早完成时间最短的处理器策略、采用任务复制技术加冗余优化策略,其结构图如图3所示。
[0034]
在该阶段,首先对dag任务模型进行分层处理,方便后续进行冗余任务优化,分层如式(3):
[0035][0036]
然后对任务进行优先级排序,首先对整个dag图进行遍历,找到关键路径,标记出关键任务,关键路径是以入口任务到出口任务的最远距离定义的,其关键任务赋予最高优先级,在第一步进行了任务分层,可细分在每一层上确定优先级。在权值的定义上,采用任务执行开销标准差和前驱任务与后继任务的最大通信开销作为权值要素,标准差充分能够发挥出异构多核处理器各个核心的优势,后者考虑到前驱与后继的最大通信开销,可以有
效提高调度效率,对于通信开销大的任务赋予高优先级,先调度到最早完成时间最短的处理器核上,其权值公式如(4):
[0037][0038][0039]
在分配阶段也是处理器选择阶段,采用任务复制技术和初始的选择最早完成时间最短的处理器核选择策略,其中在每一层完成分配后采用冗余优化策略对复制技术产生的冗余任务进行处理。
[0040]
其ihcnf算法的总体任务调度流程如图4所示。
[0041]
步骤3:进行基于优先权的编码,将算法位置信息映射在离散求解空间;
[0042]
编码方案:
[0043]
根据异构多核处理器任务调度问题的特点,本文采用基于任务优先级的编码方案,对任务ni随机进行1到n的随机整数编码,表示任务的优先级权值pi。
[0044]
根据图2进行编码,9个任务在3个处理器核上的编码试例如表1:
[0045]
表1任务分配编码方案
[0046][0047]
解码方案:
[0048]
表2解码方案
[0049][0050]
步骤4:混沌初始化种群,使种群分布具有均匀、多样性,避免一开始就陷入局部最优位置;
[0051]
狮群算法的初始化种群具有随机性,分布可能不均匀,会导致狮群算法求解的速度与精度降低,为了防止狮群算法在初始阶段陷入局部最优,保证初始种群的分布均匀与多样性,采用混沌理论来优化,混沌运动中有tent映射和logistic映射,其中logistic映射会造成遍历不均匀,它的取值在[0,0.1]与[0.9,1];而tent映射的取值为[0,1]具有更好的优化性能,因此本文采用tent映射来优化狮群算法。
[0052]
tent混沌映射:
[0053]
tent映射函数表达式如下:
[0054][0055]
经贝努利转变后的表达式为:
[0056]zi 1
=(2zi)mod 1
ꢀꢀ
公式(7)
[0057]
改进混沌公式:
[0058][0059]
经贝努利转变后的表达式如式(9):
[0060][0061]
步骤5:首次计算每个个体位置的适应度值,根据适应度值进行解码操作,对适应度值大小进行比较,根据适应度值的大小来标记出全局最优位置、个体历史最优位置,并对其进行保留;
[0062]
步骤6:根据狮王、母狮、幼狮的位置更新公式更新位置情况;
[0063]
首先定义s维的狮群个体位置公式,如式(10):
[0064]
xi=(x
i1
,x
i2
,

,x
is
),1≤i≤n
ꢀꢀ
公式(10)
[0065]
狮王的位置更新公式如(11):
[0066][0067]
其母狮的位置更新公式如(12):
[0068][0069]
其改进的幼狮的位置更新公式如(13):
[0070][0071]
步骤7:再次计算每个个体的适应度值,此时选出新的全局最优位置、新的个体历史最优位置对其进行更新;
[0072]
步骤8:当达到程序设定的迭代次数时,程序停止运行输出最后的解,也就是适应度值最大的狮王位置,并解码成最优的任务调度序列。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献