发明名称 基于可靠性和合作博弈的计算网格均衡任务调度方法
摘要 基于可靠性和合作博弈的计算网格均衡任务调度方法属于网格任务调度领域,其特征在于是在基于可靠性和合作博弈的计算网格系统中实现的:在稳定状态下,根据各网格计算节点所允许提供的计算能力建立整个计算网格系统,可靠性优化目标函数是设定优化值,根据稳定状态下的参数值计算实际目标函数值,若与优化值的误差在设定的范围内,则按比例分配任务,否则,判断节点自身的任务可分配因子θ与从调度器向节点分配任务下限值α:当θ<α时,不分配任务;当θ>α时,删去分片任务平均到达速率等于零的节点,重新计算目标函数值,重复以上步骤,使余下节点尽力而为,达到可靠性和合作博弈的要求。随负载增加时,与非合作博弈与均衡算法比,使节点提供更高的计算能力。
申请公布号 CN103678000B 申请公布日期 2016.08.17
申请号 CN201310410663.6 申请日期 2013.09.11
申请人 北京工业大学 发明人 王勇;刘美林;李凯
分类号 G06F9/50(2006.01)I 主分类号 G06F9/50(2006.01)I
代理机构 北京思海天达知识产权代理有限公司 11203 代理人 楼艮基
主权项 基于可靠性和合作博弈的计算网格均衡任务调度方法,其特征在于,是在一个基于可靠性和合作博弈的计算网格系统中,以下简称系统,依次按以下步骤实现的:步骤(1),构造一个基于可靠性和合作博弈的计算网格系统,其中包括:多个用户、面向各个用户的各调度器i、面向所述各调度器i的各网格计算节点j,以及一个调度方案计算器,其中:i=1,2,…,i,…,I,I为调度器i的总数;j=1,2,…,j…,J,J为网格计算节点的总数;设定:在忽略调度器i内部处理代价、任务传输时间的条件下:各调度器i输出分片任务的平均速率λ<sub>i</sub>的加和小于所有网格节点对各自所收到的全部分片任务的平均执行速率u<sub>j</sub>的加和,速率的单位为单位时间内的分片任务数,表示为:<maths num="0001"><math><![CDATA[<mrow><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>I</mi></munderover><msub><mi>&lambda;</mi><mi>i</mi></msub><mo>&lt;</mo><munderover><mo>&Sigma;</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>J</mi></munderover><msub><mi>u</mi><mi>j</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000958408000000011.GIF" wi="926" he="141" /></maths>各调度器i发出的分片任务的平均速率λ<sub>i</sub>的加和等于所有网格节点j的分片任务的平均到达速率φ<sub>j</sub>的加和,表示为:0≤φ<sub>j</sub><u<sub>j</sub>且<img file="FDA0000958408000000012.GIF" wi="878" he="134" />同时要满足:各网格计算节点j在保持服务质量前提下能够接受的最大分片任务到达速率<img file="FDA0000958408000000013.GIF" wi="83" he="70" />大于网格计算节点j的分片任务平均达到速率φ<sub>j</sub>,小于网格计算节点j对各自所收到的全部分片任务的平均执行速率u<sub>j</sub>,表示为:<maths num="0002"><math><![CDATA[<mrow><msub><mi>&phi;</mi><mi>j</mi></msub><mo>&lt;</mo><msubsup><mi>&phi;</mi><mi>j</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msubsup><mo>&lt;</mo><msub><mi>u</mi><mi>j</mi></msub></mrow>]]></math><img file="FDA0000958408000000014.GIF" wi="283" he="63" /></maths>步骤(2),所述调度方案计算器按下式计算各网格计算节点j在稳定状态时允许提供的计算能力A<sub>j</sub>,0<A<sub>j</sub><1:A<sub>j</sub>=1‑φ<sub>j</sub>β<sub>1j</sub>(1+u'<sub>j</sub>γ<sub>j</sub>)   (3)其中,到达网格计算节点j的分片任务满足以分片任务平均到达速率φ<sub>j</sub>为均值的泊松分布,β<sub>1j</sub>为网格计算节点j的分片任务平均服务时间,u′<sub>j</sub>为网格计算节点j忙时失败的平均速率,γ<sub>j</sub>为网格计算节点j的平均重试时间;步骤(3),所述调度方案计算器按下式根据输入的各网格计算节点j允许提供的计算能力A<sub>j</sub>计算目标函数优化值D:<maths num="0003"><math><![CDATA[<mrow><mi>D</mi><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>J</mi></munderover><mfrac><mn>1</mn><mrow><mn>1</mn><mo>-</mo><msub><mi>&phi;</mi><mi>j</mi></msub><msub><mi>&beta;</mi><mrow><mn>1</mn><mi>j</mi></mrow></msub><mrow><mo>(</mo><mn>1</mn><mo>+</mo><msubsup><mi>u</mi><mi>j</mi><mo>&prime;</mo></msubsup><msub><mi>&gamma;</mi><mi>j</mi></msub><mo>)</mo></mrow></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000958408000000021.GIF" wi="1190" he="143" /></maths>步骤(4),所述调度方案计算器在设定的稳定状态下计算发送给各调度器i的任务调度方案:步骤(4.1),系统参数初始化:调度器i发出分片任务的平均速率为λ<sub>i</sub>(0),i=1,2,…,i,…,I,“0”符号表示稳定状态,下同,网格计算节点j的分片任务平均处理速率为u<sub>j</sub>(0),j=1,2,…,j…,J;步骤(4.2),所述调度方案计算器在收到在所述稳定状态(0)下由各调度器i和各网格计算节点j发来的步骤(4.1)中的数据后,设定:<img file="FDA0000958408000000022.GIF" wi="86" he="63" />的初始化值为<img file="FDA0000958408000000023.GIF" wi="350" he="125" /><img file="FDA0000958408000000024.GIF" wi="86" he="62" />为网格计算节点j能够接受的最大分片任务到达速率,网格计算节点j的分片任务平均到达速率的初始化值为<img file="FDA0000958408000000025.GIF" wi="681" he="127" /><img file="FDA0000958408000000026.GIF" wi="308" he="134" />目标函数优化值D的误差精度ε(0)≤10<sup>‑6</sup>;步骤(4.3),利用步骤(3)的公式计算目标函数优化值D(0)=latterD;步骤(4.4),若D(0)=latterD相对于D的优化目标值的误差ε(0)满足小于等于10<sup>‑6</sup>,则按下式得到调度方案,求a<sub>i,j</sub>,若不满足,执行步骤(4.5);<maths num="0004"><math><![CDATA[<mrow><msub><mi>a</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>=</mo><msub><mi>&lambda;</mi><mi>i</mi></msub><mo>&CenterDot;</mo><mfrac><msub><mi>&phi;</mi><mi>j</mi></msub><mrow><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>I</mi></munderover><msub><mi>&lambda;</mi><mi>i</mi></msub></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000958408000000027.GIF" wi="966" he="199" /></maths>其中,a<sub>i,j</sub>为调度器i的分片任务分配到网格计算节点j的比例;步骤(4.5),令formerD=latterD,formerD用于暂存上一次调度方案下的目标函数值latterD;步骤(4.6),按下式计算网格计算节点j在处于最大的分片任务到达速率<img file="FDA0000958408000000028.GIF" wi="86" he="62" />时允许提供的单位分片任务计算能力θ<sub>j</sub>,也称任务可分配调节因子;<maths num="0005"><math><![CDATA[<mrow><msub><mi>&theta;</mi><mi>j</mi></msub><mo>=</mo><mfrac><mn>1</mn><msubsup><mi>&phi;</mi><mi>j</mi><mi>max</mi></msubsup></mfrac><mo>-</mo><msub><mi>&beta;</mi><mrow><mn>1</mn><mi>j</mi></mrow></msub><mrow><mo>(</mo><mn>1</mn><mo>+</mo><msubsup><mi>u</mi><mi>j</mi><mo>&prime;</mo></msubsup><msub><mi>&gamma;</mi><mi>j</mi></msub><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000958408000000029.GIF" wi="501" he="135" /></maths>并把各网格计算节点j对应的θ<sub>j</sub>从小到大排序,排序的结果保存到变量index(J)中;步骤(4.7),按下式计算分配临界因子α:<maths num="0006"><math><![CDATA[<mrow><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><mfrac><mn>1</mn><msub><mi>b</mi><mrow><mi>i</mi><mi>n</mi><mi>d</mi><mi>e</mi><mi>x</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></mrow></msub></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mi>n</mi><mi>d</mi><mi>e</mi><mi>x</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></mrow><mi>max</mi></msubsup><mo>-</mo><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><mfrac><msqrt><mrow><mrow><mo>(</mo><mrow><mn>1</mn><mo>-</mo><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mi>n</mi><mi>d</mi><mi>e</mi><mi>x</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></mrow><mi>max</mi></msubsup><msub><mi>b</mi><mrow><mi>i</mi><mi>n</mi><mi>d</mi><mi>e</mi><mi>x</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></mrow></msub></mrow><mo>)</mo></mrow><mrow><mo>(</mo><mrow><mrow><mo>(</mo><mrow><mn>1</mn><mo>-</mo><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mi>n</mi><mi>d</mi><mi>e</mi><mi>x</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></mrow><mi>max</mi></msubsup><msub><mi>b</mi><mrow><mi>i</mi><mi>n</mi><mi>d</mi><mi>e</mi><mi>x</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></mrow></msub></mrow><mo>)</mo></mrow><mo>+</mo><mfrac><mrow><mn>4</mn><msub><mi>b</mi><mrow><mi>i</mi><mi>n</mi><mi>d</mi><mi>e</mi><mi>x</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></mrow></msub></mrow><mi>&alpha;</mi></mfrac></mrow><mo>)</mo></mrow></mrow></msqrt><msub><mi>b</mi><mrow><mi>i</mi><mi>n</mi><mi>d</mi><mi>e</mi><mi>x</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></mrow></msub></mfrac><mo>-</mo><mn>2</mn><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>I</mi></munderover><msub><mi>&lambda;</mi><mi>i</mi></msub><mo>=</mo><mn>0</mn></mrow>]]></math><img file="FDA0000958408000000031.GIF" wi="1773" he="215" /></maths>其中,index(j)表示按步骤(4.6)重新排序后网格计算节点j在index(J)中的位置,相对应的β<sub>1</sub>、u'、γ分别表示为β<sub>1index(j)</sub>、u′<sub>index(j)</sub>和γ<sub>index(j)</sub>,b<sub>index(j)</sub>=β<sub>1index(j)</sub>(1+u′<sub>index(j)</sub>γ<sub>index(j)</sub>),α是调度器i判断是否向某个网格计算节点j分配任务的下限值;步骤(4.8),判断任务可分配调节因子θ<sub>j</sub>所对应的θ<sub>index(j)</sub>大于α否,若θ<sub>indx(j)</sub><α,则各调度器i不向网格计算节点index(j)分配任务;若θ<sub>index(j)</sub>>α,则各调度器i向网格计算节点index(j)分配任务;步骤(4.9),从有可能从各调度器i中分配到任务的网格计算节点j中删去分片任务平均到达速率φ<sub>index(j)</sub>=0的节点;步骤(4.10),在步骤(4.9)中所余下的网格计算节点按下式计算分片任务平均到达速率φ<sub>index(j)</sub>,<maths num="0007"><math><![CDATA[<mrow><msub><mi>&phi;</mi><mrow><mi>i</mi><mi>n</mi><mi>d</mi><mi>e</mi><mi>x</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></mrow></msub><mo>=</mo><mfrac><mn>1</mn><mrow><mn>2</mn><msub><mi>b</mi><mrow><mi>i</mi><mi>n</mi><mi>d</mi><mi>e</mi><mi>x</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></mrow></msub></mrow></mfrac><mo>+</mo><mfrac><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mi>n</mi><mi>d</mi><mi>e</mi><mi>x</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></mrow><mi>max</mi></msubsup><mn>2</mn></mfrac><mo>-</mo><mfrac><msqrt><mrow><mrow><mo>(</mo><mrow><mn>1</mn><mo>-</mo><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mi>n</mi><mi>d</mi><mi>e</mi><mi>x</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></mrow><mi>max</mi></msubsup><msub><mi>b</mi><mrow><mi>i</mi><mi>n</mi><mi>d</mi><mi>e</mi><mi>x</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></mrow></msub></mrow><mo>)</mo></mrow><mrow><mo>(</mo><mrow><mrow><mo>(</mo><mrow><mn>1</mn><mo>-</mo><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mi>n</mi><mi>d</mi><mi>e</mi><mi>x</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></mrow><mi>max</mi></msubsup><msub><mi>b</mi><mrow><mi>i</mi><mi>n</mi><mi>d</mi><mi>e</mi><mi>x</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></mrow></msub></mrow><mo>)</mo></mrow><mo>+</mo><mfrac><mrow><mn>4</mn><msub><mi>b</mi><mrow><mi>i</mi><mi>n</mi><mi>d</mi><mi>e</mi><mi>x</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></mrow></msub></mrow><mi>&alpha;</mi></mfrac></mrow><mo>)</mo></mrow></mrow></msqrt><mrow><mn>2</mn><msub><mi>b</mi><mrow><mi>i</mi><mi>n</mi><mi>d</mi><mi>e</mi><mi>x</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></mrow></msub></mrow></mfrac></mrow>]]></math><img file="FDA0000958408000000032.GIF" wi="1558" he="216" /></maths>从所得到的φ<sub>index(j)</sub>中,删去φ<sub>index(j)</sub><0的网格计算节点;步骤(4.11),对步骤(4.10)取得的结果,按步骤(4.3)所述的方法把所述目标函数值formerD与按步骤(3)所述方法得到的新的目标函数值latterD进行比较,ε=|latterD‑formerD|,若ε≤10<sup>‑6</sup>,则进行步骤(4.4),由各调度器向步骤(4.10)中余下的网格计算节点分配分片任务;若ε>10<sup>‑6</sup>,则重复执行步骤(4.5)——步骤(4.11),直到全部分片任务分配完毕,结束;步骤(4.12),进入下一个新的稳定运行周期。
地址 100124 北京市朝阳区平乐园100号