适用于开放式数控系统周期性依赖任务的低功耗调度方法与流程

文档序号:25600584发布日期:2021-06-25 10:55阅读:152来源:国知局
适用于开放式数控系统周期性依赖任务的低功耗调度方法与流程

1.本发明涉及多核平台实时系统领域任务的实时调度,具体的说是适用于开放式数控系统周期性依赖任务的低功耗调度方法。


背景技术:

2.开放式数控系统作为一种典型的实时系统,其关键功能均由实时任务实现。数控系统不仅要求在截止期限内完成任务,而且要保证任务的正确执行。随着数控系统中各种功能需求的增加,多核处理器的应用越来越广泛。与单处理器相比,任务在多核平台上的调度需要考虑处理器间迁移、通信等行为,因此系统能耗也相应的越来越高。高能耗产生的高热量会影响处理器的使用寿命,还会造成资源浪费,进而影响环境。这对调度算法提出了新的要求:在保证任务在其截止期限前完成的前提下,尽可能的降低系统能耗。
3.由于多核平台上的调度问题是np-hard的,目前许多学者采用智能启发式算法来解决多核平台上的低能耗调度问题,其本质是将任务调度问题形式化的描述为具有一些优先约束的最优化问题,通过启发式搜索算法找到问题的近似最优解。
4.kim h等人在其发表的论文“communication-aware task scheduling and voltage selection for total energy minimization in a multiprocessor system using ant colony optimization”提出一种基于蚁群算法的低能耗调度算法,算法采用具有总能耗的全局启发信息和具有处理器间通信量的局部启发信息对解空间进行随机决策搜索,并通过标准化总能耗来更新信息素轨迹。该方法由于未考虑任务之间的依赖关系,所以并不适用于多核平台数控系统。


技术实现要素:

5.针对现有多核平台上低功耗调度算法的不足,本发明提出一种适用于开放式数控系统中周期性依赖任务的节能调度方法,该方法首先用有向无环图对周期性依赖任务进行建模,接着对调度问题进行形式化的描述,将其抽象为具有一些约束条件的最优化问题,并设计了能够保持任务拓扑结构的初始生成方法以及交叉操作,并采用变邻域搜索算法拓展搜索范围,找到局部最优解,实现多核处理器系统上任务的快速分配及低功耗目标。
6.适用于开放式数控系统周期性依赖任务的低功耗调度方法,包括以下步骤:
7.步骤1:初始化遗传算法参数;
8.步骤2:采用有向无环图对周期性依赖任务进行建模;
9.步骤3:建立调度任务的目标函数,设定约束条件,得到最优化模型;
10.步骤4:用改进的遗传算法求解最优化模型,得到任务调度序列及处理器需要配置的供电电压。
11.所述遗传算法参数,包括:总迭代次数为max_gen、种群规模为p
size
、交叉概率为p
c
、变异概率为p
m
、迭代次数为r。
12.所述最优化模型包括:当系统满足约束条件时,找到最优的任务调度序列及处理
器电压,使得系统总能耗e最小;
13.最小化:
14.约束条件:
[0015][0016][0017]
其中,e
ikl
表示任务t
i
在电压为v
l
的处理器p
k
上运行时的能耗;n为系统中任务个数,m为处理器个数,v
k
为处理器供电电压的集合,est
i
为任务t
i
的最早开始时间,st
i
为任务t
i
的实际开始时间,ft
i
为任务t
i
的结束时间,d
i
为任务t
i
的截止期限,而x
ikl
的定义如下:
[0018][0019]
所述用改进的遗传算法求解最优化问题,得到任务调度序列及处理器需要配置的供电电压,包括:
[0020]
步骤4.1:采用改进的遗传算法循环迭代搜索最优化模型的近似最优解,再进行变邻域搜索得到最优解;
[0021]
步骤4-2:根据最优解进行任务调度。
[0022]
所述采用改进的遗传算法循环迭代搜索最优化模型的近似最优解,再进行变邻域搜索得到最优解,包括:
[0023]
a.确定染色体结构;
[0024]
b.生成初始种群:根据任务的有向无环图生成包含p
size
个染色体的初始种群;
[0025]
c.计算种群适应度
[0026]
d.对初始化种群进行选择、交叉和变异操作;
[0027]
e.将变异得到的子代染色体与父代染色体合并,生成规模为2p
size
的种群,计算新种群每个染色体的适应度值并由大到小排序,选取前p
size
个染色体生成下一代种群;
[0028]
f.对当前种群最优染色体bs进行变邻域搜索,获得邻域内新的当代最优染色体s,选择s与bs中适应度值大的染色体作为当前种群的最优解;其中,最优个体bs为适应度值最高的染色体;
[0029]
g.判断是否满足截止条件:若满足则输出最优解,否则返回d。
[0030]
选择3
×
n的二维矩阵来表示染色体,其中n为任务个数,矩阵中第一行代表任务编号,第二行代表为相应任务分配的处理器编号,第三行表示相应处理器提供的供电电压。
[0031]
所述选择为采用基于概率的轮盘赌选择法。
[0032]
所述交叉为根据交叉概率选择父代染色体用于后代染色体的拓扑结构,采用段内交叉的方式生成子代染色体。
[0033]
所述变异为根据变异概率选取染色体进行单点变异操作,得到子代染色体。
[0034]
本发明具有以下有益效果及优点:
[0035]
1.本发明考虑了任务的周期性依赖关系,设计了能够保持任务拓扑结构的初始种群生成算法和交叉操作,与其他算法相比,不仅具有更快的搜索速度而且最优解对应的调度方案具有更低的能耗。
[0036]
2.本发明对遗传算法产生的最优个体进行变邻域搜索,以提高算法的局部搜索能力,该算法在保证系统可调度性的前提下,可以有效降低系统能耗。
附图说明
[0037]
图1是本发明的调度方法流程图。
[0038]
图2是改进的遗传算法的操作流程图。
[0039]
图3是变邻域搜索流程图。
[0040]
图4(a)任务数是50时仿真实验的结果图。
[0041]
图4(b)任务数是100时仿真实验的结果图。
具体实施方式
[0042]
下面结合附图及实施例对本发明做进一步的详细说明。
[0043]
本发明提供一种基于改进遗传算法的开放式数控系统的低功耗调度方法,首先采用有向无环图对周期性依赖任务进行建模,接着调度问题进行形式化的描述,将其抽象为具有一些约束条件的最优化问题。针对依赖任务的拓扑结构,提出了能够保持任务拓扑结构的初始解生成方法以及交叉操作,接着通过遗传算法产生近似最优解,并采用变邻域搜索算法拓展搜索范围,找到局部最优解,实现多核处理器系统上的任务快速分配及低功耗目标。
[0044]
如图1所示,一种适用于开放式数控系统周期性依赖任务的低功耗调度方法,包括以下步骤:
[0045]
初始化遗传算法参数;
[0046]
采用有向无环图对周期性依赖任务进行建模;
[0047]
建立调度任务的目标函数,设定约束条件,得到最优化模型;
[0048]
用改进的遗传算法求解最优化模型,得到任务调度序列及处理器需要配置的供电电压。
[0049]
如图2所示,本发明中改进的遗传算法具体实施步骤如下:
[0050]
步骤1:编码
[0051]
采用基于操作的编码方法,确定染色体结构,确定染色体结构,选择3
×
n的二维矩阵来表示染色体,其中n为任务个数,矩阵中第一行代表任务编号,第二行代表为相应任务分配的处理器编号,第三行表示相应处理器提供的电压水平。其中,染色体可以表达为个体。
[0052]
步骤2:生成初始种群
[0053]
(1)将系统任务集合t中所有前任集合为空集的任务加入到任务集合stasks中。
[0054]
(2)为stasks中的任务随机分配处理器及供电电压,并将分配完成的任务从
stasks和t中移除,更新任务集合stasks和t。
[0055]
(3)当stasks为空集时,重复步骤1和2,直到任务集合t为空集时结束操作。
[0056]
(4)如果上述步骤获得的个体(调度序列)能够通过进行可调度性测试,则将该个体添加到初始种群中。
[0057]
(5)重复以上步骤,直到生成种群规模为psize的初始种群。
[0058]
步骤3:计算适应度
[0059]
本发明的适应度函数为:
[0060][0061][0062]
其中,e
ikl
表示任务t
i
在电压为v
l
的处理器p
k
上运行时的能耗;n为系统中任务个数,m为处理器个数,v
k
为处理器供电电压的集合,
[0063]
而x
ikl
的定义如下:
[0064][0065]
步骤4:选择操作
[0066]
选择操作是根据适应度从种群中选出优质个体且淘汰劣质个体。本发明采用基于概率的轮盘赌选择方法,将染色体的选择概率定义为在整个种群中,染色体适应度在种群适应度中所占的比例。因此,个体选择的概率与其适应性成正相关。染色体的适应性越大,被选择的可能性就越高,反之越低。这种方法可以确保具有更强适应性的个体可以进化到下一代,削弱遗传操作随机性的影响,从而确保算法的收敛性。
[0067]
步骤5:交叉操作
[0068]
首先按照任务的dag图为染色体添加段标号,在同一段内的任务不存在前任后继关系,可以按照任意顺序调度。接着随机产生一个段标号,交换两个父代染色体在选中段内的片段。这样的交叉操作可以保证子代染色体中任务的拓扑顺序不被打乱。
[0069]
步骤6:变异操作
[0070]
变异操作的作用是提高算法的局部搜索能力,保持种群的多样性,防止局部收敛的现象。随机选择一个基因位置,改变该位置上的处理器或相应的电压水平。
[0071]
步骤7:变邻域操作
[0072]
如图3所示,变邻域操作的步骤如下:
[0073]
(1)确定四种邻域结构n
k
,k=1,2,3,4,输入初始化参数;循环次数p和初始解s0,令i=0,最优个体bs=s0。
[0074]
(2)如果满足循环终止条件i<p,则输出最优个体bs;否则,令k=1。
[0075]
(3)按照邻域结构n
k
随机产生一个新解s

,比较新解s

与初始解s的适应度值。
[0076]
(4)若f(s

)>f(s),则输出k,bs=s

,适应度值更大的新解代替初始解,
[0077]
继续在邻域结构n
k
内搜索;否则,k=k+1。
[0078]
(5)若k>4,则返回步骤2;否则,返回步骤(3),进入下一个邻域结构进行搜索。
[0079]
步骤8:输出最优解
[0080]
对当前种群最优个体bs进行变邻域搜索,获得新的当代最优个体s,选择s与bs中适应度更大的个体作为当前种群的最优解。
[0081]
应用实例:为了验证本发明的提出的改进的遗传算法在开放式数控系统中低功耗实时调度上的表现,将模型在matlab编程环境下进行了实验。本文实验的输入包括:不同规模的dag、工作负载、任务截止期限、处理器数量、工作频率和电压水平。本文采用任务图生成器tgff合成不同规模的应用任务图,并按照balbastre等人提出的算法为任务分配截止期限。为了验证hga-vns算法的有效性,选择与遗传算法(ga)和蚁群算法(aco)进行比较。为了获得公正的实验结果,对比实验中选用的种群规模与蚁群数量保持一致。
[0082]
图4中(a)和(b)分别显示任务个数为50和100时三种算法的运行结果,其中横坐标为算法的运行时间,纵坐标为算法产生的最优解对应的调度序列运行时的平均能耗。从图4可以得到:本发明提出的算法与蚁群算法和未混合变邻域搜索的遗传算法相比,不仅具有更快的搜索速度而且最优解对应的调度方案具有更低的能耗。这是因为本发明考虑了任务的周期性依赖关系,设计了特有的初始种群生成算法和交叉操作,并结合变邻域搜索扩大解的搜索空间,进一步提高解的质量。综合对比图4(a)和(b)可以得到:当系统中任务数增加时,三种算法寻找最优解所需时间都会有所增加,但本发明中的算法与其他两种算法相比,能够更好的适应任务数量的增加对系统处理器的影响,更快的搜索到能耗更低的最优解。
[0083]
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰应视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1