王宏杰,徐勝超
(廣州華商學(xué)院 數(shù)據(jù)科學(xué)學(xué)院,廣東 廣州 511300)
云計(jì)算是一種基于互聯(lián)網(wǎng)的計(jì)算方式,通過網(wǎng)絡(luò)提供可擴(kuò)展、靈活、可靠的計(jì)算資源和服務(wù)。云計(jì)算可以幫助用戶在不需要購(gòu)買和維護(hù)自己的硬件和軟件的情況下,使用云服務(wù)商提供的虛擬資源進(jìn)行計(jì)算和存儲(chǔ)。云計(jì)算任務(wù)調(diào)度是指將多個(gè)任務(wù)分配給云計(jì)算中心的不同計(jì)算節(jié)點(diǎn)進(jìn)行執(zhí)行,以最大化資源利用率并滿足任務(wù)的執(zhí)行需求。由于計(jì)算機(jī)節(jié)點(diǎn)、任務(wù)規(guī)模、數(shù)量都有很大差異,在此過程中需要處理大量的資源,因此如何高效完成云計(jì)算任務(wù)調(diào)度是一個(gè)巨大的挑戰(zhàn)[1-2]。
文獻(xiàn)[3]建立了一個(gè)感知任務(wù)調(diào)度模型,通過求解模型的最優(yōu)解,獲取最優(yōu)任務(wù)調(diào)度方案。實(shí)驗(yàn)結(jié)果表明,該方法可以在系統(tǒng)平均代價(jià)方面提供近似最優(yōu)的性能,但是其存在任務(wù)調(diào)度完成時(shí)間較長(zhǎng)的問題。文獻(xiàn)[4]將AHP,VIKOR和TOPSIS方法應(yīng)用至任務(wù)調(diào)度中,并重點(diǎn)對(duì)任務(wù)調(diào)度負(fù)載問題進(jìn)行了優(yōu)化,避免了任務(wù)之間的調(diào)度沖突。結(jié)果表明該方法不僅可以保障用戶的服務(wù)質(zhì)量,而且能夠降低網(wǎng)絡(luò)運(yùn)營(yíng)成本的開銷,但是其存在能耗較大的問題,實(shí)用價(jià)值不高。文獻(xiàn)[5]主要通過多路徑傳輸控制協(xié)議提出一種全新的傳輸調(diào)度方法,以此完成任務(wù)調(diào)度處理。結(jié)果表明該方法能夠有效解決任務(wù)調(diào)度中數(shù)據(jù)包的亂序問題,提高鏈路利用率,但是同樣存在任務(wù)調(diào)度能耗較大的問題。除此之外,國(guó)內(nèi)相關(guān)專家也展開了大量研究,例如文獻(xiàn)[6]設(shè)定一個(gè)由時(shí)延以及能耗等組成的加權(quán)代價(jià)函數(shù),以此為依據(jù)建立任務(wù)調(diào)度模型,通過對(duì)模型求解得到合適的任務(wù)調(diào)度方案。
在上述幾種調(diào)度方法的基礎(chǔ)上,該文通過改進(jìn)遺傳算法對(duì)云計(jì)算任務(wù)調(diào)度問題進(jìn)行深入研究,遺傳算法憑借其全局優(yōu)化搜索的優(yōu)勢(shì)被引入到云計(jì)算任務(wù)調(diào)度中,通過交叉、變異等操作可以有效提高算法的搜索能力和收斂速度,縮短任務(wù)調(diào)度時(shí)間,更好地滿足不同用戶對(duì)云服務(wù)質(zhì)量的需求。經(jīng)實(shí)驗(yàn)測(cè)試結(jié)果證明,該方法可以實(shí)現(xiàn)任務(wù)的及時(shí)調(diào)度,同時(shí)還可以有效減少能耗,獲取更加滿意的調(diào)度方案。
為了提升云計(jì)算任務(wù)調(diào)度的效果,對(duì)不同的任務(wù)屬性進(jìn)行結(jié)合,重新設(shè)定各個(gè)云計(jì)算節(jié)點(diǎn)的任務(wù)屬性,對(duì)應(yīng)的計(jì)算式如下:
α(w)=[θn+1]·ts
(1)
式中,α(w)代表云計(jì)算節(jié)點(diǎn)的任務(wù)屬性;θn代表后續(xù)節(jié)點(diǎn)總數(shù);ts代表節(jié)點(diǎn)子任務(wù)的完成時(shí)間。
進(jìn)一步計(jì)算節(jié)點(diǎn)的綜合屬性值:
(2)
式中,H(x,y,z)代表云計(jì)算節(jié)點(diǎn)綜合屬性;F(u,v)代表云計(jì)算節(jié)點(diǎn)度值。
通過上述分析,建立目標(biāo)函數(shù),即全部任務(wù)完成時(shí)間最小化,構(gòu)建云計(jì)算任務(wù)調(diào)度模型[7],如公式3所示:
(3)
式中,tmin代表完成全部任務(wù)的最短時(shí)間。

(4)
式中,df代表個(gè)體的適應(yīng)度取值;ttotal代表任務(wù)執(zhí)行時(shí)間總和。
在改進(jìn)遺傳算法過程中,對(duì)種群中全部個(gè)體的優(yōu)劣程度展開分級(jí)處理是十分必要的,在每次選擇操作過程中,需要保留當(dāng)代種群的最優(yōu)個(gè)體,對(duì)其它個(gè)體的優(yōu)劣程度分級(jí)處理,個(gè)體適應(yīng)度取值小于平均值,則說明該個(gè)體為優(yōu)秀個(gè)體,將其保留下來,否則需要將個(gè)體淘汰。另外,交叉操作主要模擬的是生物的遺傳特性,該步驟中既可能出現(xiàn)變異,又有一定概率可以獲取更加優(yōu)秀的個(gè)體。
在經(jīng)典遺傳算法中[12-13],初始種群的形成是完全隨機(jī)的,如果在實(shí)際計(jì)算過程中沒有充分考慮解空間的分布情況,則會(huì)導(dǎo)致大量的個(gè)體全部集中在一個(gè)區(qū)域內(nèi),不利于最優(yōu)解的搜索。為了有效解決上述問題,需要確保每個(gè)個(gè)體均勻分布在解空間內(nèi)。在設(shè)定資源數(shù)量以及染色體長(zhǎng)度的情況下,計(jì)算隨機(jī)兩個(gè)染色體之間的相似度Similar(i,j):
(5)
式中,L(i,j)代表隨機(jī)兩個(gè)染色體之間的距離長(zhǎng)度;K代表種群的規(guī)模。
采取上述方式能夠確保初始種群隨機(jī)形成的兩個(gè)個(gè)體之間具有差異性,使其可以均勻分布在對(duì)應(yīng)的解空間上,初始種群還包含比較豐富的模式,有效提升了搜索全局最優(yōu)解的可能性。
雖然通過上述操作可以確保個(gè)體是隨機(jī)且均勻分布的,但是獲取的最優(yōu)解質(zhì)量比較低,隨著不斷的進(jìn)化處理,種群中解的質(zhì)量才得到有效提升。經(jīng)過改進(jìn)處理后的遺傳算法示意圖如圖1所示[14-15]。

圖1 改進(jìn)遺傳算法下起始進(jìn)化點(diǎn)選擇
為了實(shí)現(xiàn)改進(jìn)遺傳算法的初始種群選擇性構(gòu)建問題[16-17],引入歷史表結(jié)構(gòu)存儲(chǔ)不同任務(wù)的描述以及對(duì)應(yīng)的調(diào)度方案。其中,云計(jì)算節(jié)點(diǎn)中隨機(jī)兩個(gè)向量之間的相似性計(jì)算可以通過公式5得到。
通過適應(yīng)度函數(shù)評(píng)價(jià)遺傳算法不同解的優(yōu)劣性,適應(yīng)度的計(jì)算過于簡(jiǎn)單或者過于復(fù)雜均會(huì)影響算法的應(yīng)用效果,因此,計(jì)算時(shí)需要考慮實(shí)際環(huán)境問題[18-19],在設(shè)定目標(biāo)函數(shù)的條件下計(jì)算該值:
(6)
式中,f(x)代表適應(yīng)度函數(shù);M代表對(duì)適應(yīng)度產(chǎn)生影響的因素總數(shù)。
改進(jìn)的遺傳算法需要考慮三個(gè)方面的因素[20-21],分別為:
(1)云計(jì)算任務(wù)調(diào)度總完成時(shí)間跨度;
(2)可利用資源的空間;
(3)用戶規(guī)定完成時(shí)間。
任務(wù)時(shí)間跨度是適應(yīng)度函數(shù)中一個(gè)十分重要的因素,通常情況下,一個(gè)任務(wù)的期望時(shí)間主要是由性能預(yù)測(cè)系統(tǒng)提供。在改進(jìn)遺傳算法中,參數(shù)的選擇也是十分重要的,主要包含以下幾方面參數(shù)的選擇:
遺憾的是,批玄風(fēng)雷聲大而振儒學(xué)雨點(diǎn)小,到了南朝,世家大族多祖尚清淡,好宴游,“故士大夫子弟,皆以博涉為貴,不肯專儒”[11](P1539);即使經(jīng)學(xué)名家,“雖好經(jīng)術(shù),亦以才博擅名”[11](P177)。顯然,這里的“博涉”與“專儒”、“才博”與“經(jīng)術(shù)”兩兩對(duì)言,前者皆當(dāng)首推善談玄與精通三玄之學(xué)。
(1)種群規(guī)模。
在遺傳算法中需要優(yōu)先確定不同參數(shù)的取值,尤其是種群規(guī)模的大小。
(2)交叉率。
遺傳算法優(yōu)化性能的好壞和交叉率取值大小存在密切關(guān)聯(lián)。
(3)變異率。
通過變異率控制各種新型基因的引入比例。
通過上述分析完成對(duì)遺傳算法的改進(jìn),運(yùn)用改進(jìn)后的遺傳算法求解云計(jì)算任務(wù)調(diào)度模型,具體流程如圖2所示。

圖2 基于改進(jìn)遺傳算法的云計(jì)算任務(wù)調(diào)度流程
(2)判斷算法是否為初始運(yùn)行,假設(shè)是,則通過均勻分布策略形成初始種群;反之,則參考?xì)v史任務(wù)調(diào)度信息形成經(jīng)過改進(jìn)處理后的初始種群;
(3)對(duì)個(gè)體的適應(yīng)度取值進(jìn)行計(jì)算,以減少任務(wù)調(diào)度的總執(zhí)行時(shí)間;
(4)根據(jù)適應(yīng)度計(jì)算結(jié)果,展開下一代個(gè)體選擇和染色體交叉變異操作;
(5)采用改進(jìn)的遺傳算法對(duì)調(diào)度模型進(jìn)行求解,判斷獲取的解是否滿足終止條件,假設(shè)是,則直接輸出最優(yōu)云計(jì)算任務(wù)調(diào)度方案;反之,則跳轉(zhuǎn)至步驟2。
通過實(shí)驗(yàn)驗(yàn)證所提基于改進(jìn)遺傳算法的云計(jì)算任務(wù)調(diào)度方法的有效性。
實(shí)驗(yàn)平臺(tái)為CloudSim5,具體實(shí)驗(yàn)環(huán)境如表1所示。

表1 實(shí)驗(yàn)環(huán)境參數(shù)
CloudSim是在GridSim模擬器的基礎(chǔ)上擴(kuò)展得來的一種仿真軟件,其通過擴(kuò)展一系列接口,提供基于數(shù)據(jù)中心的虛擬化云環(huán)境,支持云計(jì)算資源管理和調(diào)度模擬。CloudSim屬于一種層次型結(jié)構(gòu),其從下到上依次為:核心模擬引擎層、仿真層和用戶代碼層。其中,核心模擬引擎層的作用是實(shí)現(xiàn)組件與實(shí)體之間的通信;第二層為仿真層,該層的主要作用是為云計(jì)算任務(wù)調(diào)度環(huán)境建模,并提供仿真支持,具體包括虛擬機(jī)、儲(chǔ)存容量以及接口管理等;最上層則是用戶代碼層,包括用戶數(shù)量、調(diào)度策略接口等。
在上述實(shí)驗(yàn)環(huán)境下假設(shè)存在100個(gè)用戶,對(duì)應(yīng)500個(gè)任務(wù),1 500個(gè)子任務(wù),具體包括資源挖掘、數(shù)據(jù)傳輸以及用戶注冊(cè)等,總運(yùn)行時(shí)間為120 min。改進(jìn)遺傳算法的種群內(nèi)個(gè)體數(shù)為100,交叉概率在0.3~0.9區(qū)間內(nèi),變異概率小于0.1,最大迭代次數(shù)為50。將改進(jìn)遺傳算法的參數(shù)輸入至CloudSim平臺(tái)中,通過多次迭代,輸出元計(jì)算任務(wù)調(diào)度結(jié)果。
通過表2分析經(jīng)典遺傳算法和改進(jìn)遺傳算法的自適應(yīng)度對(duì)比結(jié)果。

表2 經(jīng)典遺傳算法和改進(jìn)遺傳算法的適應(yīng)度對(duì)比結(jié)果
分析表2可知,改進(jìn)處理后的遺傳算法種群適應(yīng)度平均值和最大適應(yīng)度取值明顯更優(yōu)越一些,說明其運(yùn)行效率更高,可以獲取更加精準(zhǔn)可靠且有效的實(shí)驗(yàn)結(jié)果。因?yàn)槲闹蟹椒ǔ浞挚紤]了適應(yīng)度的計(jì)算過于簡(jiǎn)單或者過于復(fù)雜會(huì)對(duì)算法的尋優(yōu)性能產(chǎn)生不良影響,因此在計(jì)算適應(yīng)度的過程中,考慮實(shí)際環(huán)境和問題,設(shè)定目標(biāo)函數(shù),以提高適應(yīng)度的適應(yīng)性。
繼續(xù)分析各個(gè)方法的任務(wù)調(diào)度時(shí)間變化情況,結(jié)果如圖3所示。

(a)文中方法
由圖3可知,文中方法的任務(wù)調(diào)度完成時(shí)間較低,其調(diào)度時(shí)間最高值僅為16 min,而文獻(xiàn)[3]方法、文獻(xiàn)[5-6]方法的調(diào)度時(shí)間最高值分別為23 min,16.9 min和23 min,證明采用文中方法可以以更快的速度完成任務(wù)調(diào)度。這是因?yàn)槲闹蟹椒▽⑷咳蝿?wù)最小化完成時(shí)間作為目標(biāo),構(gòu)建云計(jì)算任務(wù)調(diào)度模型,然后通過改進(jìn)遺傳算法求解該模型,獲取最優(yōu)解,有效提升了該方法的運(yùn)行效率。
以下實(shí)驗(yàn)測(cè)試主要分析不同任務(wù)數(shù)量下各個(gè)方法的能耗變化情況,結(jié)果如圖4所示。

圖4 不同任務(wù)數(shù)量下各個(gè)方法的能耗測(cè)試結(jié)果對(duì)比
由圖4中的實(shí)驗(yàn)測(cè)試結(jié)果可知,文中方法的能耗明顯更低,驗(yàn)證了該方法的優(yōu)越性。這是因?yàn)樵谶m應(yīng)度取值計(jì)算中,該方法充分考慮了實(shí)際環(huán)境和問題,避免適應(yīng)度的計(jì)算過于復(fù)雜,對(duì)算法的尋優(yōu)性能產(chǎn)生不良影響,從而降低了云計(jì)算任務(wù)調(diào)度能耗。
為了有效解決傳統(tǒng)任務(wù)調(diào)度方法存在的不足,以改進(jìn)遺傳算法為基礎(chǔ),提出一種新的云計(jì)算任務(wù)調(diào)度方法。經(jīng)過實(shí)驗(yàn)測(cè)試證明,采用該方法可以獲取高效率且低能耗的調(diào)度方案,可以更好地完成任務(wù)調(diào)度。在后續(xù)的研究過程中,需要注重云計(jì)算網(wǎng)絡(luò)的實(shí)際環(huán)境,同時(shí)還需要注意數(shù)學(xué)以及圖論等基礎(chǔ)學(xué)科的學(xué)習(xí),在堅(jiān)實(shí)的理論基礎(chǔ)上,獲取更加滿意的調(diào)度方法。