本發(fā)明屬于移動(dòng)云計(jì)算技術(shù)領(lǐng)域,更具體地,涉及一種基于移動(dòng)云環(huán)境下代碼遷移的終端節(jié)能方法及系統(tǒng)。
背景技術(shù):
移動(dòng)設(shè)備處理器性能發(fā)展飛速,然而與pc處理性能相比,仍然存在很大的差距,主要原因是受移動(dòng)設(shè)備尺寸限制,電池容量以及散熱要求使得移動(dòng)設(shè)備處理性能不可能跟pc和服務(wù)器相比。然后現(xiàn)在的移動(dòng)應(yīng)用變得越來越復(fù)雜,很多新的應(yīng)用需求不斷涌現(xiàn),例如大型3d手游,虛擬現(xiàn)實(shí)技術(shù),增強(qiáng)現(xiàn)實(shí)技術(shù)都需要高性能處理能力來生成高分辨率和高幀率的圖像。如何增強(qiáng)移動(dòng)設(shè)備處理能力的問題受到科研工作的廣泛關(guān)注。
移動(dòng)云計(jì)算技術(shù)被提出來解決移動(dòng)設(shè)備處理能力不足和電池容量有限的問題,該技術(shù)的基本思想是將移動(dòng)設(shè)備端的代碼動(dòng)態(tài)地遷移至遠(yuǎn)程云端執(zhí)行。遠(yuǎn)程數(shù)據(jù)中心具有的強(qiáng)大計(jì)算能力和存儲(chǔ)能力,通過將計(jì)算密集型的任務(wù)遷移至遠(yuǎn)程數(shù)據(jù)中心,移動(dòng)設(shè)備不僅可以表現(xiàn)出更高的處理性能,而且還能因能耗的轉(zhuǎn)移而提高電池的續(xù)航時(shí)間。
然而,在一些環(huán)境下,尤其是室內(nèi)或者人群密集處,3g/4g蜂窩網(wǎng)絡(luò)延時(shí)非常高,甚至不可用,移動(dòng)設(shè)備將代碼遷移至遠(yuǎn)程數(shù)據(jù)中心將付出很高的時(shí)延代價(jià)或者消耗更多的網(wǎng)絡(luò)能耗,甚至無法連接遠(yuǎn)程數(shù)據(jù)中心。為了解決這個(gè)問題,有研究學(xué)者提出將代碼遷移至附近的移動(dòng)設(shè)備,這些附近的移動(dòng)設(shè)備可以相互連接組成一個(gè)移動(dòng)設(shè)備組成的移動(dòng)云。這種方案基于兩點(diǎn)事實(shí):現(xiàn)在移動(dòng)設(shè)備非常普及,而且計(jì)算能力越來越強(qiáng);device-to-device(藍(lán)牙,wifi-direct)連接技術(shù)允許移動(dòng)設(shè)備間建立網(wǎng)絡(luò)連接。然而,移動(dòng)設(shè)備都是由有限容量的電池供電,代碼遷移策略必須盡可能減少電池消耗,減少對(duì)其他用戶的影響。由于遷移代碼的計(jì)算能耗受移動(dòng)設(shè)備當(dāng)前cpu頻率的影響,頻率越高,任務(wù)的計(jì)算能耗越高,不考慮移動(dòng)終端cpu頻率特性的隨機(jī)或者輪詢方式的任務(wù)調(diào)度會(huì)導(dǎo)致嚴(yán)重的能耗問題。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明的目的在于提供了一種基于移動(dòng)云環(huán)境下代碼遷移的終端節(jié)能方法及系統(tǒng),由此解決現(xiàn)有針對(duì)移動(dòng)云中代碼遷移方案沒有考慮cpu頻率和能耗特性而導(dǎo)致的嚴(yán)重電池能耗問題。
為實(shí)現(xiàn)上述目的,按照本發(fā)明的一個(gè)方面,提供了一種基于移動(dòng)云環(huán)境下代碼遷移的終端節(jié)能方法,包括:
s1、獲取移動(dòng)云環(huán)境中各終端設(shè)備的可用cpu頻率;
s2、測(cè)量各終端設(shè)備在不同cpu頻率下的指令計(jì)算速度組成指令計(jì)算速度矩陣s,以及各終端設(shè)備在不同cpu頻率下的功率組成功率矩陣p;
s3、若存在cpu當(dāng)前頻率小于對(duì)應(yīng)終端設(shè)備最高cpu頻率的終端設(shè)備,則由d、c、r、f、l、s、p生成能耗最優(yōu)的代碼遷移策略,以決定任務(wù)遷往的終端設(shè)備,若所述能耗最優(yōu)的代碼遷移策略相比于上一次的代碼遷移策略能耗降低,則更新輸出所述能耗最優(yōu)的代碼遷移策略以及頻率調(diào)節(jié)策略,其中,f表示各終端設(shè)備的當(dāng)前頻率組成的配置頻率向量,l表示由各終端設(shè)備當(dāng)前cpu負(fù)載生成的負(fù)載向量,r表示由各終端設(shè)備網(wǎng)絡(luò)傳輸速率生成的向量,c表示由計(jì)算任務(wù)生成的任務(wù)計(jì)算量向量,d表示由計(jì)算任務(wù)數(shù)據(jù)傳輸量生成的向量;
s4、遍歷最低頻設(shè)備集合中的終端設(shè)備,模擬計(jì)算任務(wù)從不屬于所述最低頻設(shè)備集合中的終端設(shè)備遷移到所述最低頻設(shè)備集合中的終端設(shè)備,若任務(wù)遷移前后滿足性能約束,并且任務(wù)遷移后相比于遷移前的計(jì)算能耗降低,則將遷移至的終端設(shè)備加入備選調(diào)頻設(shè)備,其中,所述最低頻設(shè)備集合包括cpu當(dāng)前頻率最低的終端設(shè)備;
s5、若所述備選調(diào)頻設(shè)備為空則將所述最低頻設(shè)備集合中的所有終端設(shè)備的cpu當(dāng)前頻率提高一個(gè)級(jí)別,否則,從所述備選調(diào)頻設(shè)備中選出節(jié)能最多的終端設(shè)備,將所述節(jié)能最多的終端設(shè)備的cpu當(dāng)前頻率升高一個(gè)級(jí)別,并返回步驟s3。
優(yōu)選地,步驟s2具體包括以下子步驟:
s2.1、對(duì)于每一個(gè)終端設(shè)備,設(shè)置終端設(shè)備的cpu當(dāng)前頻率為最低頻;
s2.2、若設(shè)置的頻率超過該終端設(shè)備的cpu最高頻,則結(jié)束執(zhí)行;
s2.3、每隔預(yù)設(shè)周期t讀取該終端設(shè)備的系統(tǒng)文件獲取電流值和電壓值;
s2.4、比較運(yùn)行曼德博集合程序前后該終端設(shè)備的功率,功率差為當(dāng)前cpu頻率下的cpu功率;
s2.5、運(yùn)行whetstone、dhrystone、linpack以及l(fā)ivermoreloops基準(zhǔn)測(cè)試程序,獲取cpu當(dāng)前頻率下的浮點(diǎn)數(shù)指令執(zhí)行速度;
s2.6、將cpu當(dāng)前頻率升高一個(gè)頻率級(jí)別,返回執(zhí)行步驟s2.2。
優(yōu)選地,步驟s3具體包括以下子步驟:
s3.1、建立目標(biāo)函數(shù),所述目標(biāo)函數(shù)為所有計(jì)算任務(wù)的計(jì)算能耗和數(shù)據(jù)傳輸能耗之和;
s3.2、建立約束條件,所述約束條件為最后一個(gè)計(jì)算任務(wù)執(zhí)行完成時(shí)間小于所有計(jì)算任務(wù)在本地設(shè)備上執(zhí)行時(shí)間的α倍,其中,α為預(yù)設(shè)值;
s3.3、根據(jù)所述目標(biāo)函數(shù)以及所述約束條件,由d、c、r、f、l、s、p生成能耗最優(yōu)的代碼遷移策略,以決定任務(wù)遷往的終端設(shè)備。
優(yōu)選地,步驟s4具體包括以下子步驟:
s4.1、將cpu當(dāng)前頻率最低的終端設(shè)備組成最低頻設(shè)備集合dmf;
s4.2、對(duì)任意終端設(shè)備i∈dmf,假設(shè)將終端設(shè)備
s4.3、進(jìn)行約束測(cè)試;
s4.4、比較任務(wù)遷移前后的能耗值;
s4.5、若滿足約束測(cè)試且任務(wù)遷移后的能耗值小于遷移之間的能耗值,則將設(shè)備i加入備選調(diào)頻設(shè)備集合。
按照本發(fā)明的另一方面,提供了一種基于移動(dòng)云環(huán)境下代碼遷移的終端節(jié)能系統(tǒng),包括:
獲取模塊,用于獲取移動(dòng)云環(huán)境中各終端設(shè)備的可用cpu頻率;
測(cè)量模塊,用于測(cè)量各終端設(shè)備在不同cpu頻率下的指令計(jì)算速度組成指令計(jì)算速度矩陣s,以及各終端設(shè)備在不同cpu頻率下的功率組成功率矩陣p;
遷移策略確定模塊,用于在存在cpu當(dāng)前頻率小于對(duì)應(yīng)終端設(shè)備最高cpu頻率的終端設(shè)備時(shí),由d、c、r、f、l、s、p生成能耗最優(yōu)的代碼遷移策略,以決定任務(wù)遷往的終端設(shè)備,若所述能耗最優(yōu)的代碼遷移策略相比于上一次的代碼遷移策略能耗降低,則更新輸出所述能耗最優(yōu)的代碼遷移策略以及頻率調(diào)節(jié)策略,其中,f表示各終端設(shè)備的當(dāng)前頻率組成的配置頻率向量,l表示由各終端設(shè)備當(dāng)前cpu負(fù)載生成的負(fù)載向量,r表示由各終端設(shè)備網(wǎng)絡(luò)傳輸速率生成的向量,c表示由計(jì)算任務(wù)生成的任務(wù)計(jì)算量向量,d表示由計(jì)算任務(wù)數(shù)據(jù)傳輸量生成的向量;
備選調(diào)頻設(shè)備確定模塊,用于遍歷最低頻設(shè)備集合中的終端設(shè)備,模擬計(jì)算任務(wù)從不屬于所述最低頻設(shè)備集合中的終端設(shè)備遷移到所述最低頻設(shè)備集合中的終端設(shè)備,若任務(wù)遷移前后滿足性能約束,并且任務(wù)遷移后相比于遷移前的計(jì)算能耗降低,則將遷移至的終端設(shè)備加入備選調(diào)頻設(shè)備,其中,所述最低頻設(shè)備集合包括cpu當(dāng)前頻率最低的終端設(shè)備;
判斷處理模塊,用于在所述備選調(diào)頻設(shè)備為空時(shí),將所述最低頻設(shè)備集合中的所有終端設(shè)備的cpu當(dāng)前頻率提高一個(gè)級(jí)別,否則,從所述備選調(diào)頻設(shè)備中選出節(jié)能最多的終端設(shè)備,將所述節(jié)能最多的終端設(shè)備的cpu當(dāng)前頻率升高一個(gè)級(jí)別,并返回執(zhí)行所述遷移策略確定模塊的操作。
優(yōu)選地,所述測(cè)量模塊包括:
設(shè)置模塊,用于對(duì)于每一個(gè)終端設(shè)備,設(shè)置終端設(shè)備的cpu當(dāng)前頻率為最低頻;
第一判斷模塊,用于在設(shè)置的頻率超過該終端設(shè)備的cpu最高頻時(shí),結(jié)束執(zhí)行;
采樣模塊,用于每隔預(yù)設(shè)周期t讀取該終端設(shè)備的系統(tǒng)文件獲取電流值和電壓值;
功率確定模塊,用于比較運(yùn)行曼德博集合程序前后該終端設(shè)備的功率,功率差為當(dāng)前cpu頻率下的cpu功率;
執(zhí)行速度確定模塊,用于運(yùn)行whetstone、dhrystone、linpack以及l(fā)ivermoreloops基準(zhǔn)測(cè)試程序,獲取cpu當(dāng)前頻率下的浮點(diǎn)數(shù)指令執(zhí)行速度;
頻率調(diào)整模塊,用于將cpu當(dāng)前頻率升高一個(gè)頻率級(jí)別,返回執(zhí)行所述第一判斷模塊的操作。
優(yōu)選地,所述遷移策略確定模塊包括:
目標(biāo)函數(shù)建立模塊,用于建立目標(biāo)函數(shù),所述目標(biāo)函數(shù)為所有計(jì)算任務(wù)的計(jì)算能耗和數(shù)據(jù)傳輸能耗之和;
約束條件建立模塊,用于建立約束條件,所述約束條件為最后一個(gè)計(jì)算任務(wù)執(zhí)行完成時(shí)間小于所有計(jì)算任務(wù)在本地設(shè)備上執(zhí)行時(shí)間的α倍,其中,α為預(yù)設(shè)值;
遷移策略確定子模塊,用于根據(jù)所述目標(biāo)函數(shù)以及所述約束條件,由d、c、r、f、l、s、p生成能耗最優(yōu)的代碼遷移策略,以決定任務(wù)遷往的終端設(shè)備。
優(yōu)選地,所述備選調(diào)頻設(shè)備確定模塊包括:
最低頻設(shè)備確定模塊,用于將cpu當(dāng)前頻率最低的終端設(shè)備組成最低頻設(shè)備集合dmf;
模擬遷移模塊,用于對(duì)任意終端設(shè)備i∈dmf,假設(shè)將終端設(shè)備
預(yù)設(shè)測(cè)試模塊,用于進(jìn)行約束測(cè)試;
能耗值比較模塊,用于比較任務(wù)遷移前后的能耗值;
第二判斷模塊,用于在滿足約束測(cè)試且任務(wù)遷移后的能耗值小于遷移之間的能耗值時(shí),將設(shè)備i加入備選調(diào)頻設(shè)備集合。
總體而言,本發(fā)明方法與現(xiàn)有技術(shù)方案相比,能夠取得下列有益效果:
(1)充分利用cpu頻率和能耗特性,盡量將代碼遷移至低頻cpu上,從而節(jié)約更多的電池能耗。輪詢方式任務(wù)調(diào)度會(huì)將任務(wù)依次遷移到可用的移動(dòng)設(shè)備上,隨機(jī)方式任務(wù)調(diào)度會(huì)從可用設(shè)備中隨機(jī)選擇一個(gè)可用設(shè)備,這兩種任務(wù)調(diào)度方式都沒有考慮移動(dòng)設(shè)備當(dāng)前cpu頻率,因此有可能將任務(wù)遷移至高頻設(shè)備,導(dǎo)致消耗更多的電池能耗。而本發(fā)明提出的技術(shù)方案會(huì)在測(cè)量各設(shè)備的cpu頻率和能耗特性,在保證性能的前提下,盡可能將代碼遷移至低頻設(shè)備。
(2)利用頻率調(diào)節(jié)技術(shù)保證遷移任務(wù)的性能。性能和能耗存在權(quán)衡關(guān)系,過多的節(jié)省能耗會(huì)導(dǎo)致應(yīng)用性能低,將低用戶體驗(yàn)質(zhì)量,因此本發(fā)明利用頻率調(diào)節(jié)技術(shù)保證最后一個(gè)任務(wù)完成時(shí)間會(huì)小于一定的閾值,從而保證性能不受影響。
附圖說明
圖1為本發(fā)明實(shí)施例公開的一種基于移動(dòng)云環(huán)境下代碼遷移的終端節(jié)能方法的流程示意圖;
圖2為本發(fā)明實(shí)施例公開的一種終端設(shè)備不同cpu頻率下的指令計(jì)算速度及功率獲取方法的流程示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個(gè)實(shí)施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。
本發(fā)明的整體思路在于,當(dāng)終端設(shè)備需要通過遷移代碼至移動(dòng)云中來實(shí)現(xiàn)獲取高性能計(jì)算能力時(shí),代碼遷移策略可以在獲取每個(gè)可用終端設(shè)備的cpu頻率和能耗特征后,將計(jì)算任務(wù)并行化后遷移至附近的低頻終端設(shè)備來降低計(jì)算任務(wù)的能耗。代碼遷移策略決定每個(gè)任務(wù)在哪臺(tái)終端設(shè)備上執(zhí)行,為了實(shí)現(xiàn)最大程度的節(jié)能,需要生成能耗最優(yōu)的代碼遷移決策,同時(shí)為了保證任務(wù)的性能需求,需要生成頻率調(diào)節(jié)策略來決定每個(gè)終端設(shè)備cpu的運(yùn)行的頻率,從而保證計(jì)算任務(wù)完成時(shí)間不超過一定閾值。
如圖1所示為本發(fā)明實(shí)施例公開的一種基于移動(dòng)云環(huán)境下代碼遷移的終端節(jié)能方法的流程示意圖;在圖1所示的方法中包括以下步驟:
s1、獲取移動(dòng)云環(huán)境中各終端設(shè)備i的可用cpu頻率{fi0,fi1,fi2,...,fih};
s2、測(cè)量各終端設(shè)備在不同cpu頻率下的指令計(jì)算速度s(fih)組成指令計(jì)算速度矩陣s,以及各終端設(shè)備在不同cpu頻率下的功率p(fih)組成功率矩陣p,其中,s(fih)表示終端設(shè)備i在頻率h時(shí)的指令計(jì)算速度,p(fih)表示終端設(shè)備i在頻率h時(shí)的功率;
其中,步驟s2具體包括以下子步驟:
s2.1、對(duì)于每一個(gè)終端設(shè)備,設(shè)置終端設(shè)備的cpu當(dāng)前頻率為最低頻;
s2.2、若設(shè)置的頻率超過該終端設(shè)備的cpu最高頻,則結(jié)束執(zhí)行;
s2.3、每隔預(yù)設(shè)周期t讀取該終端設(shè)備的系統(tǒng)文件獲取電流值和電壓值,t值可以根據(jù)需要進(jìn)行確定,優(yōu)選地,t為200ms;
s2.4、比較運(yùn)行曼德博集合程序前后該終端設(shè)備的功率,功率差為當(dāng)前cpu頻率下的cpu功率;
s2.5、運(yùn)行whetstone、dhrystone、linpack以及l(fā)ivermoreloops基準(zhǔn)測(cè)試程序,獲取cpu當(dāng)前頻率下的浮點(diǎn)數(shù)指令執(zhí)行速度;
s2.6、將cpu當(dāng)前頻率升高一個(gè)頻率級(jí)別,返回執(zhí)行步驟s2.2。
s3、若存在cpu當(dāng)前頻率小于對(duì)應(yīng)終端設(shè)備最高cpu頻率的終端設(shè)備,則由d、c、r、f、l、s、p生成能耗最優(yōu)的代碼遷移策略,以決定任務(wù)遷往的終端設(shè)備,若所述能耗最優(yōu)的代碼遷移策略相比于上一次的代碼遷移策略能耗降低,則更新輸出所述能耗最優(yōu)的代碼遷移策略以及頻率調(diào)節(jié)策略,其中,f表示各終端設(shè)備的當(dāng)前頻率組成的配置頻率向量,l表示由各終端設(shè)備當(dāng)前cpu負(fù)載生成的負(fù)載向量,r表示由各終端設(shè)備網(wǎng)絡(luò)傳輸速率生成的向量,c表示由計(jì)算任務(wù)生成的任務(wù)計(jì)算量向量,d表示由計(jì)算任務(wù)數(shù)據(jù)傳輸量生成的向量;
其中,能耗最優(yōu)的代碼遷移策略可以通過使用混合整數(shù)線性規(guī)劃模型進(jìn)行求解。
其中,步驟s3具體包括以下子步驟:
s3.1、建立目標(biāo)函數(shù),所述目標(biāo)函數(shù)為所有計(jì)算任務(wù)的計(jì)算能耗和數(shù)據(jù)傳輸能耗之和;
其中,為了解釋目標(biāo)函數(shù),這里用形式化表達(dá)式進(jìn)行說明。假設(shè)有m臺(tái)設(shè)備和n個(gè)并行子任務(wù)。ci和di分別表示計(jì)算任務(wù)i的計(jì)算量和數(shù)據(jù)量,
目標(biāo)函數(shù)為所有計(jì)算任務(wù)的計(jì)算任務(wù)傳輸能耗之和和計(jì)算能耗之和表示為:
s3.2、建立約束條件,所述約束條件為最后一個(gè)計(jì)算任務(wù)執(zhí)行完成時(shí)間小于所有計(jì)算任務(wù)在本地設(shè)備上執(zhí)行時(shí)間的α倍,其中,α為預(yù)設(shè)值;α可以根據(jù)實(shí)際需要進(jìn)行確定;
具體的性能約束表達(dá)式為:
s3.3、根據(jù)所述目標(biāo)函數(shù)以及所述約束條件,由d、c、r、f、l、s、p生成能耗最優(yōu)的代碼遷移策略,以決定任務(wù)遷往的終端設(shè)備。
s4、遍歷最低頻設(shè)備集合中的終端設(shè)備,模擬計(jì)算任務(wù)從不屬于所述最低頻設(shè)備集合中的終端設(shè)備遷移到所述最低頻設(shè)備集合中的終端設(shè)備,若任務(wù)遷移前后滿足性能約束,并且任務(wù)遷移后相比于遷移前的計(jì)算能耗降低,則將遷移至的終端設(shè)備加入備選調(diào)頻設(shè)備,其中,所述最低頻設(shè)備集合包括cpu當(dāng)前頻率最低的終端設(shè)備;
其中,步驟s4具體包括以下子步驟:
s4.1、將cpu當(dāng)前頻率最低的終端設(shè)備組成最低頻設(shè)備集合dmf;
s4.2、對(duì)任意終端設(shè)備i∈dmf,假設(shè)將終端設(shè)備
s4.3、進(jìn)行約束測(cè)試;
s4.4、比較任務(wù)遷移前后的能耗值;
s4.5、若滿足約束測(cè)試且任務(wù)遷移后的能耗值小于遷移之間的能耗值,則將設(shè)備i加入備選調(diào)頻設(shè)備集合。
s5、若所述備選調(diào)頻設(shè)備為空則將所述最低頻設(shè)備集合中的所有終端設(shè)備的cpu當(dāng)前頻率提高一個(gè)級(jí)別,否則,從所述備選調(diào)頻設(shè)備中選出節(jié)能最多的終端設(shè)備,將所述節(jié)能最多的終端設(shè)備的cpu當(dāng)前頻率升高一個(gè)級(jí)別,并返回步驟s3。
本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。