主权项 |
一种面向云计算环境下的动态多资源公平分配方法,其特征在于包括如下步骤:(1)基于动态情形下用户资源需求和共享资源量,构建动态多资源公平分配线性优化模型,该线性规划模型为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mfenced open = "{" close = ""><mtable><mtr><mtd><mi>M</mi><mi>a</mi><mi>x</mi><mi>i</mi><mi>m</mi><mi>i</mi><mi>z</mi><mi>e</mi><mi> </mi><msup><mi>M</mi><mi>k</mi></msup></mtd></mtr><mtr><mtd><mrow><msubsup><mi>x</mi><mi>i</mi><mi>k</mi></msubsup><mo>≥</mo><msup><mi>M</mi><mi>k</mi></msup><mo>·</mo><msub><mi>w</mi><mi>i</mi></msub><mo>,</mo><mo>∀</mo><mi>i</mi><mo>≤</mo><mi>k</mi></mrow></mtd></mtr><mtr><mtd><msubsup><mi>x</mi><mi>i</mi><mi>k</mi></msubsup><mo>≥</mo><msubsup><mi>x</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>,</mo><mo>∀</mo><mi>i</mi><mo>≤</mo><mi>k</mi><mo>-</mo><mn>1</mn></mtd></mtr><mtr><mtd><mstyle><munderover><mo>Σ</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>k</mi></munderover></mstyle><msubsup><mi>x</mi><mi>i</mi><mi>k</mi></msubsup><mo>·</mo><msub><mi>d</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>≤</mo><mstyle><munderover><mo>Σ</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>k</mi></munderover><mrow><msub><mi>w</mi><mi>i</mi></msub><mo>,</mo><mo>∀</mo><mi>j</mi></mrow></mstyle></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000873055070000011.GIF" wi="462" he="411" /></maths>该线性规划模型中k为系统中用户数,<img file="FDA0000873055070000012.GIF" wi="52" he="70" />表示用户i分配得到的优势资源份额数,w<sub>i</sub>表示用户i对资源池中每种资源的共享资源量,d<sub>ij</sub>表示用户i任务对资源j的需求量;该线性规划模型确定当系统中存在k个用户时,最大化M<sup>k</sup>值,从而确定每个用户分配得到的优势资源份额数<img file="FDA0000873055070000013.GIF" wi="230" he="71" />(2)基于上述线性规划模型,通过下述步骤求解最优分配方案<img file="FDA0000873055070000014.GIF" wi="198" he="69" />步骤1:当系统中有k个用户时,对k‑1个<img file="FDA0000873055070000015.GIF" wi="72" he="69" />值进行非递增排序(i<k‑1),即v<sub>1</sub>≥…≥v<sub>k‑1</sub>,<img file="FDA0000873055070000016.GIF" wi="630" he="79" />并输入用户i对各个资源j需求向量d<sub>i</sub>=(d<sub>i1</sub>,…,d<sub>ij</sub>,…,d<sub>im</sub>);步骤2:计算用户i在每种资源上需求d<sub>ij</sub>与第一个优势资源份额数乘积所得总资源分配量,即<img file="FDA0000873055070000017.GIF" wi="198" he="126" />步骤3:判断总资源分配量是否超过系统中用户共享资源量,即对每种资源j,如果<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><munderover><mo>Σ</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>k</mi></munderover><msub><mi>v</mi><mn>1</mn></msub><mo>·</mo><msub><mi>d</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>≤</mo><munderover><mo>Σ</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>k</mi></munderover><msub><mi>w</mi><mi>i</mi></msub></mrow>]]></math><img file="FDA0000873055070000018.GIF" wi="302" he="126" /></maths>成立,转到步骤6;步骤4:如果<img file="FDA0000873055070000019.GIF" wi="287" he="119" />不成立,在排序后的优势资源份额数区间,即对任意i,i∈U,在区间[v<sub>1</sub>,∞),[v<sub>2</sub>,v<sub>1</sub>],...,(0,v<sub>k‑1</sub>],利用二分法查找v<sub>τ</sub>所在的区间[LB,UB];步骤5:判断UB‑LB>1,如果成立,跳转到步骤4,否则结束循环;步骤6:根据下述公式确定M<sup>k</sup>取值,<img file="FDA00008730550700000110.GIF" wi="646" he="254" />步骤7:通过<img file="FDA00008730550700000111.GIF" wi="470" he="71" />计算每个用户i分配到的优势资源份额数<img file="FDA00008730550700000112.GIF" wi="78" he="68" />步骤8:计算<img file="FDA00008730550700000113.GIF" wi="238" he="71" />输出用户i在资源j上的分配方案<img file="FDA00008730550700000114.GIF" wi="87" he="73" /> |