发明名称 基于响应时间最优化的云计算任务调度方法
摘要 本发明涉及基于响应时间最优化的云计算任务调度方法,包括:构造一个基于响应时间最优化的云计算系统,计算任务分片的传输时间,计算任务分片在计算节点上的平均处理时间,计算任务分片的总处理时间,计算任务响应时间,构造云计算任务调度问题的目标函数,计算调度器的任务分片方案。本发明从任务分片的并行处理出发,以任务分片执行最长的时间作为任务的响应时间,各调度器均以其任务响应时间最小为目标建模,得到新的任务调度方法。本发明更能反映任务并行处理的特性。实验表明:无论是调度器的响应时间值还是目标函数值,本发明均优于博弈算法和均衡调度算法,当系统规模增加和负载加大时,本发明较其它两种算法也均有明显的优势。
申请公布号 CN103841208A 申请公布日期 2014.06.04
申请号 CN201410101281.X 申请日期 2014.03.18
申请人 北京工业大学 发明人 王勇;李凯;刘美林
分类号 H04L29/08(2006.01)I 主分类号 H04L29/08(2006.01)I
代理机构 北京思海天达知识产权代理有限公司 11203 代理人 张慧
主权项 1.基于响应时间最优化的云计算任务调度方法,其特征在于包括以下步骤:步骤1,构造一个基于响应时间最优化的云计算系统;所述基于响应时间最优化的云计算系统由用户、面向各用户的各调度器i以及面向各调度器i的计算节点j以及调度方案计算器组成,其中i=1,2,...,n,n为所述系统中调度器的数量,j=1,2,...,m,m为系统中所有计算节点的数目;在忽略调度器内部处理代价前提下,假设任务分片的执行代价和任务分片在网络上的传输代价是任务执行代价的关键;所述调度器在进行任务分片时的条件如下:各个调度器从各用户接受任务,各个调度器发出任务的平均速率λ<sub>i</sub>的加和应该小于所述系统所有计算节点对任务的平均执行速率u<sub>j</sub>的加和,速率的单位是单位时间内的任务数,即:<maths num="0001"><![CDATA[<math><mrow><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>&lambda;</mi><mi>i</mi></msub><mo>&lt;</mo><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>m</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>]]></maths>各个调度器发到第j个计算节点上任务分片的速率的加和应该小于第j个计算节点对任务分片的平均执行速率u<sub>j</sub>,称为计算能力,即:<maths num="0002"><![CDATA[<math><mrow><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>&lambda;</mi><mi>i</mi></msub><msub><mi>a</mi><mi>ij</mi></msub><mo>&lt;</mo><msub><mi>u</mi><mi>j</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow></math>]]></maths>步骤2,计算任务分片a<sub>ij</sub>的传输时间L<sub>ij</sub>:<maths num="0003"><![CDATA[<math><mrow><msub><mi>L</mi><mi>ij</mi></msub><mo>=</mo><msub><mi>e</mi><mi>ij</mi></msub><mo>+</mo><mfrac><mrow><mi>b</mi><mo>&times;</mo><msub><mi>a</mi><mi>ij</mi></msub></mrow><msub><mi>c</mi><mi>ij</mi></msub></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow></math>]]></maths>其中,L<sub>ij</sub>是调度器i的任务分片到计算节点j的传输时间,j=1,2,...,m,b为所有任务的平均数据长度,单位:位,e<sub>ij</sub>为调度器i到计算节点j之间的线路传输延迟,c<sub>ij</sub>为调度器i到计算节点j之间线路的传输速率;根据计算节点的数量,调度器i将用户的请求分解为m个任务分片,a<sub>ij</sub>为第i个调度器的任务分配到第j个计算节点的比例,满足以下的约束:a<sub>ij</sub>≥0,且<maths num="0004"><![CDATA[<math><mrow><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><msub><mi>a</mi><mi>ij</mi></msub><mo>=</mo><mn>1</mn><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow></math>]]></maths>步骤3,计算任务分片a<sub>ij</sub>在计算节点j上的平均处理时间F<sub>ij</sub>:<maths num="0005"><![CDATA[<math><mrow><msub><mi>F</mi><mi>ij</mi></msub><mo>=</mo><mrow><mo>(</mo><mfrac><mn>1</mn><msub><mi>&mu;</mi><mi>j</mi></msub></mfrac><mo>+</mo><mfrac><mrow><munderover><mi>&Sigma;</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>&lambda;</mi><mi>k</mi></msub><msub><mi>a</mi><mi>kj</mi></msub></mrow><mrow><msub><mi>&mu;</mi><mi>j</mi></msub><mrow><mo>(</mo><msub><mi>&mu;</mi><mi>j</mi></msub><mo>-</mo><munderover><mi>&Sigma;</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>&lambda;</mi><mi>k</mi></msub><msub><mi>a</mi><mi>kj</mi></msub><mo>)</mo></mrow></mrow></mfrac><mo>)</mo></mrow><mo>&times;</mo><msub><mi>a</mi><mi>ij</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow></math>]]></maths>其中,计算节点被认为是一个M/G/1排队系统,服务时间服从负指数分布;步骤4,计算任务分片a<sub>ij</sub>的总处理时间;任务分片a<sub>ij</sub>的总处理时间等于线路传输时间与计算节点j上的处理时间的和,即:<maths num="0006"><![CDATA[<math><mrow><msub><mi>F</mi><mi>ij</mi></msub><mo>+</mo><msub><mi>L</mi><mi>ij</mi></msub><mo>=</mo><mrow><mo>(</mo><mfrac><mn>1</mn><msub><mi>&mu;</mi><mi>j</mi></msub></mfrac><mo>+</mo><mfrac><mrow><munderover><mi>&Sigma;</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>&lambda;</mi><mi>k</mi></msub><msub><mi>a</mi><mi>kj</mi></msub></mrow><mrow><msub><mi>&mu;</mi><mi>j</mi></msub><mrow><mo>(</mo><msub><mi>&mu;</mi><mi>j</mi></msub><mo>-</mo><munderover><mi>&Sigma;</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>&lambda;</mi><mi>k</mi></msub><msub><mi>a</mi><mi>kj</mi></msub><mo>)</mo></mrow></mrow></mfrac><mo>)</mo></mrow><mo>&times;</mo><msub><mi>a</mi><mi>ij</mi></msub><mo>+</mo><msub><mi>e</mi><mi>ij</mi></msub><mo>+</mo><mfrac><mrow><mi>b</mi><mo>&times;</mo><msub><mi>a</mi><mi>ij</mi></msub></mrow><msub><mi>c</mi><mi>ij</mi></msub></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow></math>]]></maths>其中,i=1,2,...,n,j=1,2,...,m;步骤5,计算任务响应时间;各个任务分片被调度到计算节点上以后,任务分片被计算节点独立执行,各个任务分片之间是并行执行的关系,任务的响应时间FL<sub>i</sub>(a<sub>i</sub>)为:<maths num="0007"><![CDATA[<math><mrow><msub><mi>FL</mi><mi>i</mi></msub><mrow><mo>(</mo><msub><mi>a</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>=</mo><munderover><mi>Max</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><mrow><mo>(</mo><msub><mi>F</mi><mi>ij</mi></msub><mo>+</mo><msub><mi>L</mi><mi>ij</mi></msub><mo>)</mo></mrow><mo>=</mo><munderover><mi>Max</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><mrow><mo>(</mo><mrow><mo>(</mo><mfrac><mn>1</mn><msub><mi>&mu;</mi><mi>j</mi></msub></mfrac><mo>+</mo><mfrac><mrow><munderover><mi>&Sigma;</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>&lambda;</mi><mi>k</mi></msub><msub><mi>a</mi><mi>kj</mi></msub></mrow><mrow><msub><mi>&mu;</mi><mi>j</mi></msub><mrow><mo>(</mo><msub><mi>&mu;</mi><mi>j</mi></msub><mo>-</mo><munderover><mi>&Sigma;</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>&lambda;</mi><mi>k</mi></msub><msub><mi>a</mi><mi>kj</mi></msub><mo>)</mo></mrow></mrow></mfrac><mo>)</mo></mrow><mo>&times;</mo><msub><mi>a</mi><mi>ij</mi></msub><mo>+</mo><msub><mi>e</mi><mi>ij</mi></msub><mo>+</mo><mfrac><mrow><mi>b</mi><mo>&times;</mo><msub><mi>a</mi><mi>ij</mi></msub></mrow><msub><mi>c</mi><mi>ij</mi></msub></mfrac><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow></math>]]></maths>步骤6,构造云计算任务调度问题的目标函数;每个调度器在对任务进行分解调度时,总是希望其任务的响应时间最小,基于响应时间最优化的云计算任务调度问题的目标函数为:<maths num="0008"><![CDATA[<math><mrow><mi>min</mi><munderover><mi>Max</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><mrow><mo>(</mo><msub><mi>F</mi><mi>ij</mi></msub><mo>+</mo><msub><mi>L</mi><mi>ij</mi></msub><mo>)</mo></mrow><mo>=</mo><mi>min</mi><munderover><mi>Max</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><mrow><mo>(</mo><mrow><mo>(</mo><mfrac><mn>1</mn><msub><mi>&mu;</mi><mi>j</mi></msub></mfrac><mo>+</mo><mfrac><mrow><munderover><mi>&Sigma;</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>&lambda;</mi><mi>k</mi></msub><msub><mi>a</mi><mi>kj</mi></msub></mrow><mrow><msub><mi>&mu;</mi><mi>j</mi></msub><mrow><mo>(</mo><msub><mi>&mu;</mi><mi>j</mi></msub><mo>-</mo><munderover><mi>&Sigma;</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>&lambda;</mi><mi>k</mi></msub><msub><mi>a</mi><mi>kj</mi></msub><mo>)</mo></mrow></mrow></mfrac><mo>)</mo></mrow><mo>&times;</mo><msub><mi>a</mi><mi>ij</mi></msub><mo>+</mo><msub><mi>e</mi><mi>ij</mi></msub><mo>+</mo><mfrac><mrow><mi>b</mi><mo>&times;</mo><msub><mi>a</mi><mi>ij</mi></msub></mrow><msub><mi>c</mi><mi>ij</mi></msub></mfrac><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow></math>]]></maths>步骤7,调度方案计算器计算调度器的任务分片方案;定义<img file="FDA0000478621420000024.GIF" wi="392" he="180" />u<sub>ji</sub>为计算节点j为调度器i提供的计算能力,代入(8)式得:<maths num="0009"><![CDATA[<math><mrow><mi>min</mi><munderover><mi>Max</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><mrow><mo>(</mo><msub><mi>F</mi><mi>ij</mi></msub><mo>+</mo><msub><mi>L</mi><mi>ij</mi></msub><mo>)</mo></mrow><mtext>=min</mtext><munderover><mi>Max</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><mrow><mo>(</mo><mrow><mo>(</mo><mn>1</mn><mo>+</mo><mfrac><mrow><msub><mi>u</mi><mi>j</mi></msub><mo>-</mo><msub><mi>&mu;</mi><mi>ji</mi></msub><mo>+</mo><msub><mi>&lambda;</mi><mi>i</mi></msub><msub><mi>a</mi><mi>ij</mi></msub></mrow><mrow><msub><mi>&mu;</mi><mi>ji</mi></msub><mo>-</mo><msub><mi>&lambda;</mi><mi>i</mi></msub><msub><mi>a</mi><mi>ij</mi></msub></mrow></mfrac><mo>)</mo></mrow><mo>&times;</mo><mfrac><msub><mi>a</mi><mi>ij</mi></msub><msub><mi>&mu;</mi><mi>j</mi></msub></mfrac><mo>+</mo><msub><mi>e</mi><mi>ij</mi></msub><mo>+</mo><mfrac><mrow><mi>b</mi><mo>&times;</mo><msub><mi>a</mi><mi>ij</mi></msub></mrow><msub><mi>c</mi><mi>ij</mi></msub></mfrac><mo></mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>9</mn><mo>)</mo></mrow></mrow></math>]]></maths>该优化问题通过一种改进的极大熵函数法进行求解,用该极大熵函数来逼近优化函数FL<sub>i</sub>(a<sub>i</sub>),表达式如下:<maths num="0010"><![CDATA[<math><mrow><msub><mi>F</mi><mi>p</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>u</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mi>p</mi></mfrac><mi>ln</mi><mo>|</mo><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><msub><mi>u</mi><mi>j</mi></msub><mi>exp</mi><mo>{</mo><mi>p</mi><mrow><mo>(</mo><mrow><mo>(</mo><mn>1</mn><mo>+</mo><mfrac><mrow><msub><mi>u</mi><mi>j</mi></msub><mo>-</mo><msub><mi>&mu;</mi><mi>ji</mi></msub><mo>+</mo><msub><mi>&lambda;</mi><mi>i</mi></msub><msub><mi>a</mi><mi>ij</mi></msub></mrow><mrow><msub><mi>&mu;</mi><mi>ji</mi></msub><mo>-</mo><msub><mi>&lambda;</mi><mi>i</mi></msub><msub><mi>a</mi><mi>ij</mi></msub></mrow></mfrac><mo>)</mo></mrow><mo>&times;</mo><msub><mi>a</mi><mi>ij</mi></msub><mo>/</mo><msub><mi>&mu;</mi><mi>j</mi></msub><mo>+</mo><msub><mi>e</mi><mi>ij</mi></msub><mo>+</mo><mfrac><mrow><mi>b</mi><mo>&times;</mo><msub><mi>a</mi><mi>ij</mi></msub></mrow><msub><mi>c</mi><mi>ij</mi></msub></mfrac><mo>)</mo></mrow><mo>}</mo><mo>|</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>10</mn><mo>)</mo></mrow></mrow></math>]]></maths>通过调节p和u,使F<sub>p</sub>(x,u)的极小点能更快地收敛于式(9)的解。
地址 100124 北京市朝阳区平乐园100号