一种嵌入式异构多处理器系统的任务调度方法

文档序号:6575864阅读:211来源:国知局
专利名称:一种嵌入式异构多处理器系统的任务调度方法
技术领域
本发明属于计算机技术领域,特别涉及一种嵌入式异构多处理器系统的 任务调度方法。
背景技术
近年来,具有复杂功能的嵌入式多处理器系统越来越流行,其性能依靠 操作系统是否能够提供高效的任务调度。因此,任务调度成为提高其性能的 关键因素。
在多处理系统中,任务调度一直是一个难题。传统的方法,如分支定界 法,动态规划等等,这些算法能够获得全局最优解,但是它们要么经常需要 花费大量的时间用于寻优,要么不能够很好的用于解决实际问题。为了克服 传统方法的缺陷,研究者提出了许多新的方法,如退火算法,基因算法,蚁 群算法等等。这些算法的共同特点是,虽然他们能够在一定程度上降低了搜 寻最优解的时间。但是他们仍然不能完好的满足嵌入式系统的实时要求。
标准的粒子群pso算法没有诸如繁殖、交叉和变异等遗传操作,只通过简
单的算术运算进行演化,非常容易实现。因此能大大的提高了寻找最优解的速
度。目前,作为一种重要的优化工具,粒子群pso算法已经在许多优化问题中
得到了成功的应用。

发明内容
本发明的目的就是提供一种嵌入式异构多处理器系统的任务调度方法,
该方法基于调整飞行时间和惯性权重的粒子群优化算法(fipso),用来解决异 构处理器间的任务调度问题,从而得到比较好的调度策略,提高处理器的效 率。
本发明方法的具体步骤是
步骤(1).动态调整粒子速度v 5在标准的PSO算法迭代过程中,粒子的搜寻能力在迭代后期会逐渐下降, 为了克服这一困难,提高粒子群优化算法的收敛速度和精度,粒子的飞行速
度在FIPSO算法中动态的调整。
粒子群算法中粒子通过跟踪两个"极值"来更新自己的速度,算法结构 简单,运行速度比较快。但是,标准的粒子群算法在搜索最优解时,有时会 出现粒子在最优解的附近来回运动现象,而且这个最优解可能就是局部最优 解。因此,我们提出了调整粒子的飞行速度,在进化初期,粒子距离最优位置 较远,粒子的飞行速度应快一些,这样有利于尽快的移向最优位置;当粒子距 离最优位置较近时,粒子的飞行速度应慢一些,这样可以避免因飞行速度过 快而导致的粒子"飞过"最优位置从而产生的来回运动现象。标准的粒子群 算法在进化初期和后期都固定飞行速度系数设置为l,这将将导致粒子群在进 化后期搜索性能下降。
粒子飞行速度的计算方程式如下所示
1 + k x sin
,iter1,、
+ —x ;r
、Imax
A("i)表示在时间点t+l的位移,^;々+i)表示在时间点t+l的速度,齡表 示粒子当前的进化代数。/皿表示粒子的最大进化代数。K为比例系数,是常量
通过上述方程式对影响粒子飞行速度的因子进行动态调整,得到一个速 度的最优值。
步骤(2).调整惯性权重W
在进化的最初阶段,PSO算法具有快速的收敛速度,但是,在进化后期, PSO算法收敛速度变慢,因此,这将导致粒子的收敛精度下降。因此我们提出
了惯性权重的调整策略。
w仍然随迭代次数线性递减,当迭代次数到达某个阈值时,这时"的初值为
hu。然后w随迭代次数线性递增,这样W随迭代次数变化而变化,有助于算
法摆脱局部极值,增强PSO的全局搜索能力,找出最优解。通过参考粒子群算
法的研究者们在设计惯性权重以及其他参数变化机制的基础上,我们提出惯
6性权重的调整策略。
FIPSO算法的惯性权重计算公式如下
<formula>formula see original document page 7</formula>
,^为迭代次数;tor总为设置的总的迭代次数;inter阈值为迭代次数的 阈值;Wmax是惯性权重的最大值;^rrin是惯性权重最小值。 步骤(3).模拟任务调度方法,具体步骤是
步骤a.初始化一群粒子,确定群体规模m,给定算法的最大、最小权重因 子值,根据调度所需时间设定算法总的迭代次数齡总和迭代次数的阈值!^阈 值。
步骤b.根据所定义的适应度函数&= ,'-"ee"^w —W、 £

)=1
计算每个微粒的适应值。
步骤C.比较粒子的适应值和自身最优值p^,,如果当前值比^^更优则
置一M为当前值。比较粒子适应值与种群最优值。如果当前值比w^更优,则 置^w为当前粒子的矩阵下标和适应值。
步骤d.判断是否达到了阈值迭代,若没有,贝Uw值由公式(2)计算得出, 若有,w值则由公式(3)计算得出。
步骤e.根据以下式子对粒子速度进行更新。
,1) = ,+、(, + 1)
pbest为个体极值,gbest为全局极值,q和q表示学习因子,^和^是0到1之间的随机数。
步骤f.根据调整粒子飞行速度来更新粒子的位置。计算方程式如下
4("1)=,+1^+1)
pbest为个体极值,lbest为局部极值,c,和^表示学习因子,^和。是0到1之间 的随机数。
步骤g.判断是否达到最终迭代次数,如果没有达到,执行步骤c;如果达
到了,则从最后一代中获得个体最佳值。
本发明针对具有复杂功能的嵌入式多处理器系的全局搜索能力和局部搜 索能力的平衡性,粒子群优化算法在迭代后期搜寻能力下降的问题,通过调 整调整飞行时间和惯性权重,提出了优化其平衡性提升其迭代后期搜寻能力 的任务调度方法。


图1为5个任务分配到5个处理器的在50毫秒内调度结果; 图2为10个任务分配到5个处理器的在50毫秒内调度结果; 图3为IO个任务分配到10个处理器的在50毫秒内调度结果; 图4为15个任务分配到10个处理器的在50毫秒内调度结果。
具体实施例方式
下面结合附图和实例来对本发明所述的一种嵌入式异构多处理器的调度 方法做进一步的描述。
如图1所示(图中虚线FIPSO为本发明所用的方法),系统所能接受的 调度时间设为50毫秒。五个任务运行在五个不同的处理器。和局部版本、全 局版本的粒子群算法相比,FIPSO在全局搜索能力和快速收敛速度上有明显优 势,能够在较短的时间内获得较低的PI。其实施过程经过以下三个过程 (1)动态调整粒子速度V在标准的PSO算法迭代过程中,粒子的搜寻能力在迭代后期会逐渐下降, 为了克服这一困难,提高粒子群优化算法的收敛速度和精度,粒子的飞行速
度在FIPSO算法中动态的调整。
粒子群算法中粒子通过跟踪两个"极值"来更新自己的速度,算法结构 简单,运行速度比较快。但是,标准的粒子群算法在搜索最优解时,有时会 出现粒子在最优解的附近来回运动现象,而且这个最优解可能就是局部最优 解。因此,我们提出了调整粒子的飞行速度,在进化初期,粒子距离最优位置 较远,粒子的飞行速度应快一些,这样有利于尽快的移向最优位置;当粒子距 离最优位置较近时,粒子的飞行速度应慢一些,这样可以避免因飞行速度过 快而导致的粒子"飞过"最优位置从而产生的来回运动现象。标准的粒子群 算法在进化初期和后期都固定飞行速度系数设置为l,这将将导致粒子群在进 化后期搜索性能下降。
粒子飞行时间的计算如公式l所示
广
《,.("l)=《,W + W + l)x
1 + A: x sin
V
乂 ^rnax
1
+ —
2


(1)
x^+i)表示在时间点t+l的位移,p^+i)表示在时间点t+l的速度,齡表 示粒子当前的进化代数。/自表示粒子的最大进化代数。K为比例系数,是常量。 通过上述方程式对影响粒子飞行速度的因子进行动态调整,得到一个最优值。
(2)惯性权重的调整策略"
在进化的最初阶段,粒子群算法(PS0)具有快速的收敛速度,但是, 在进化后期,粒子群算法(PS0)收敛速度变慢,因此,这将导致粒子的收敛 精度下降。因此我们提出了惯性权重的调整策略。
"仍然随迭代次数线性递减,当迭代次数到达某个阈值时,这时"的初 值为w然后w随迭代次数线性递增,这样"随迭代次数变化而变化,有助 于算法摆脱局部极值,增强PSO的全局搜索能力,找出最优解。通过参考粒子群算法的研究者们在设计惯性权重以及其他参数变化机制的基础上,我们提 出惯性权重的调整策略。
FIPSO算法的惯性权重计算公式如下
w一 w max "er^"err
W=W. H--^~X>V 、、、
r>" "ran 、 " max 〉
"er腿 一鄉 匿-,
/^为迭代次数;^总为设置的总的迭代次数;inter阈值为迭代次数的 阈值;comax是惯性权重的最大值;"min是惯性权重最小值。 步骤(3).模拟任务调度方法,具体步骤是
步骤a.初始化一群粒子,确定群体规模m,给定算法的最大、最小权重 因子值,根据调度时间设定算法总的迭代次数^总和迭代次数的阈值,^阈 值。
步骤b.根据所定义的适应度函数&= ,'一"""^" —*A e,来
乂=1— — J
计算每个微粒的适应值。
步骤C.比较粒子的适应值和自身最优值-W,如果当前值比pZ^更优则 置P^,为当前值。比较粒子适应值与种群最优值。如果当前值比gZ^更优,则
置g&w为当前粒子的矩阵下标和适应值。
步骤d.判断是否达到了阈值迭代,若没有,贝Uw值由公式(2)计算得出, 若有,w值则由公式(3)计算得出。
步骤e.根据以下式子对粒子速度进行更新。
^+l),)+w+l)
10pbest为个体极值,gbest为全局极值,c,和&表示学习因子,^和^是0到1之间 的随机数。
步骤f.根据调整粒子飞行速度来更新粒子的位置。计算方程式如下 v^+l)=wx^(0+^(/^e^.-《⑧+c^(/te^.—;②) ;.(,+ l) = , + 、.("l)
pbest为个体极值,lbest为局部极值,c,和&表示学习因子,。和^是0到1之间 的随机数。
步骤g.判断是否达到最终迭代次数,如果没有达到,执行步骤c;如果达 到了,则从最后一代中获得个体最佳值。
由图2, 3, 4可以发现,随着处理器和任务数的增加,和LPSO、 GPSO算 法相比,FIPSO算法收敛速度依然很快,系统花费调度的时间较LPSO和GPSO 少,能在时间限制下取得比较好的调度结果,针对即时性的嵌入式系统而言, 能实时处理任务,并在限定的时间内完成所有任务。仿真结果证明了我们提 出的改进算法比其他粒子群算法极短的时间内能够得到较好的调度结果。
权利要求
1、一种嵌入式异构多处理器系统的任务调度方法,其特征在于该方法的具体步骤是步骤(1).动态调整粒子速度V粒子群算法中粒子通过跟踪两个“极值”来更新自己的速度,算法结构简单,运行速度比较快;但是,标准的粒子群算法在搜索最优解时,有时会出现粒子在最优解的附近来回运动现象,而且这个最优解可能就是局部最优解;因此,我们提出了调整粒子的飞行速度,在进化初期,粒子距离最优位置较远,粒子的飞行速度应快一些,这样有利于尽快的移向最优位置;当粒子距离最优位置较近时,粒子的飞行速度应慢一些,这样可以避免因飞行速度过快而导致的粒子“飞过”最优位置从而产生的来回运动现象;标准的粒子群算法在进化初期和后期都固定飞行速度系数设置为1,这将将导致粒子群在进化后期搜索性能下降;粒子飞行速度的计算方程式如下所示<maths id="math0001" num="0001" ><math><![CDATA[ <mrow><msub> <mi>X</mi> <mi>ij</mi></msub><mrow> <mo>(</mo> <mi>t</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo></mrow><mo>=</mo><msub> <mi>X</mi> <mi>ij</mi></msub><mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo></mrow><mo>+</mo><msub> <mi>V</mi> <mi>ij</mi></msub><mrow> <mo>(</mo> <mi>t</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo></mrow><mo>&times;</mo><mrow> <mo>(</mo> <mn>1</mn> <mo>+</mo> <mi>k</mi> <mo>&times;</mo> <mi>sin</mi> <mo>[</mo> <mrow><mo>(</mo><mfrac> <mi>iter</mi> <msub><mi>I</mi><mi>max</mi> </msub></mfrac><mo>+</mo><mfrac> <mn>1</mn> <mn>2</mn></mfrac><mo>)</mo> </mrow> <mo>&times;</mo> <mi>&pi;</mi> <mo>]</mo> <mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo></mrow> </mrow>]]></math></maths>Xij(t+1)表示在时间点t+1的位移,Vij(t+1)表示在时间点t+1的速度,iter表示粒子当前的进化代数;Imax表示粒子的最大进化代数;K为比例系数,是常量;通过上述方程式对影响粒子飞行速度的因子进行动态调整,得到一个速度的最优值;步骤(2).调整惯性权重w在进化的最初阶段,PSO算法具有快速的收敛速度,但是,在进化后期,PSO算法收敛速度变慢,因此,这将导致粒子的收敛精度下降;因此我们提出了惯性权重的调整策略;w仍然随迭代次数线性递减,当迭代次数到达某个阈值时,这时ω的初值为wmin;然后w随迭代次数线性递增,这样w随迭代次数变化而变化,有助于算法摆脱局部极值,增强PSO的全局搜索能力,找出最优解;通过参考粒子群算法的研究者们在设计惯性权重以及其他参数变化机制的基础上,我们提出惯性权重的调整策略;FIPSO算法的惯性权重计算公式如下<maths id="math0002" num="0002" ><math><![CDATA[ <mrow><mi>w</mi><mo>=</mo><msub> <mi>w</mi> <mi>max</mi></msub><mo>-</mo><mfrac> <mrow><msub> <mi>w</mi> <mi>max</mi></msub><mo>-</mo><msub> <mi>w</mi> <mi>min</mi></msub> </mrow> <msub><mi>iter</mi><mi>T</mi> </msub></mfrac><mo>&times;</mo><mi>iter</mi><mo>,</mo><mi>iter</mi><mo>&le;</mo><msub> <mi>iter</mi> <mi>T</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo></mrow> </mrow>]]></math></maths><maths id="math0003" num="0003" ><math><![CDATA[ <mrow><mi>w</mi><mo>=</mo><msub> <mi>w</mi> <mi>min</mi></msub><mo>+</mo><mfrac> <mrow><mi>iter</mi><mo>-</mo><msub> <mi>iter</mi> <mi>T</mi></msub> </mrow> <mrow><msub> <mi>iter</mi> <mi>max</mi></msub><mo>-</mo><msub> <mi>iter</mi> <mi>T</mi></msub> </mrow></mfrac><mo>&times;</mo><msub> <mi>w</mi> <mi>max</mi></msub><mo>,</mo><mi>iter</mi><mo>&GreaterEqual;</mo><msub> <mi>iter</mi> <mi>T</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo></mrow> </mrow>]]></math></maths>iter为迭代次数;iter总为设置的总的迭代次数;inter阈值为迭代次数的阈值;wmax是惯性权重的最大值;wmin是惯性权重最小值;步骤(3).模拟任务调度方法,具体步骤是步骤a.初始化一群粒子,确定群体规模m,给定算法的最大、最小权重因子值,根据调度所需时间设定算法总的迭代次数iter总和迭代次数的阈值iter阈值;步骤b.根据所定义的适应度函数<maths id="math0004" num="0004" ><math><![CDATA[ <mrow><msub> <mi>s</mi> <mi>ij</mi></msub><mo>=</mo><mfrac> <msub><mrow> <mo>(</mo> <msub><mi>T</mi><mi>i</mi> </msub> <mo>_</mo> <mi>execution</mi> <mo>_</mo> <mi>time</mi> <mo>)</mo></mrow><mi>j</mi> </msub> <mrow><munderover> <mi>&Sigma;</mi> <mrow><mi>j</mi><mo>=</mo><mn>1</mn> </mrow> <mi>m</mi></munderover><msub> <mrow><mo>(</mo><msub> <mi>T</mi> <mi>i</mi></msub><mo>_</mo><mi>execution</mi><mo>_</mo><mi>time</mi><mo>)</mo> </mrow> <mi>j</mi></msub> </mrow></mfrac><mo>&Element;</mo><mo>[</mo><mn>0,1</mn><mo>]</mo> </mrow>]]></math> id="icf0004" file="A2009101006090003C3.tif" wi="70" he="15" top= "180" left = "112" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>来计算每个微粒的适应值;步骤c.比较粒子的适应值和自身最优值pbest,如果当前值比pbest更优则置pbest为当前值;比较粒子适应值与种群最优值;如果当前值比gbest更优,则置gbest为当前粒子的矩阵下标和适应值;步骤d.判断是否达到了阈值迭代,若没有,则w值由公式(2)计算得出,若有,w值则由公式(3)计算得出;步骤e.根据以下式子对粒子速度进行更新;vij(t+1)=w×vij(t)+c1r1(pbestij-Xij(t))+c2r2(gbestj-Xij(t))Xij(t+1)=Xij(t)+vij(t+1)pbest为个体极值,gbest为全局极值,c1和c2表示学习因子,r1和r2是0到1之间的随机数;步骤f.根据调整粒子飞行速度来更新粒子的位置;计算方程式如下vij(t+1)+=w×vij(t)+c1r1(pbestij-Xij(t))+c2r2(lbestj-Xij(t))Xij(t+1)=Xij(t)+vij(t+1)pbest为个体极值,1best为局部极值,c1和c2表示学习因子,r1和r2是0到1之间的随机数;步骤g.判断是否达到最终迭代次数,如果没有达到,执行步骤c;如果达到了,则从最后一代中获得个体最佳值。
全文摘要
本发明涉及一种嵌入式异构多处理器系统的任务调度方法。现有的算法需要花费大量的时间用于寻优,解决实际问题能力欠缺。本发明方法首先动态调整粒子速度V,得到一个速度的最优值;然后根据粒子速度的最优值调整惯性权重w;最后模拟任务调度方法。本发明针对具有复杂功能的嵌入式多处理器系的全局搜索能力和局部搜索能力的平衡性,粒子群优化算法在迭代后期搜寻能力下降的问题,通过调整调整飞行时间和惯性权重,提出了优化其平衡性提升其迭代后期搜寻能力的任务调度方法。
文档编号G06F9/46GK101604258SQ200910100609
公开日2009年12月16日 申请日期2009年7月10日 优先权日2009年7月10日
发明者吴国华, 祯 张, 方美娥, 邹青刚, 郑秋华 申请人:杭州电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1