摘 ?要:針對云計算環(huán)境下數(shù)據(jù)中心機房的云計算任務調(diào)度問題,本文提出一種基于云計算任務數(shù)據(jù)分析的神經(jīng)網(wǎng)絡調(diào)度算法,首先介紹了針對云計算任務的數(shù)據(jù)分析模型,計算云計算任務和計算節(jié)點的匹配度,定義了基于云計算任務調(diào)度最優(yōu)化的目標能量函數(shù),接著提出了任務調(diào)度神經(jīng)網(wǎng)絡算法的核心步驟,最后通過仿真驗證神經(jīng)網(wǎng)絡調(diào)度算法的有效性。
關(guān)鍵詞:云計算;任務調(diào)度;數(shù)據(jù)分析;神經(jīng)網(wǎng)絡
中圖分類號:TP391.9 ? ? 文獻標識碼:A文章編號:2096-4706(2021)13-0031-04
A Neural Network Scheduling Algorithm Based on Cloud Computing Task
XIE Jian
(Guangxi University of Science and Technology, Liuzhou ?545006, China)
Abstract: Aiming at the cloud computing task scheduling problem of data center computer room in cloud computing environment, this paper proposes a neural network scheduling algorithm based on cloud computing task data analysis. Firstly, the data analysis model for cloud computing task, the matching degree between cloud computing task and computing node are introduced, and the objective energy function based on cloud computing task scheduling optimization is defined, Then, the core steps of task scheduling neural network algorithm are proposed. Finally, the effectiveness of neural network scheduling algorithm is verified by simulation.
Keywords: cloud computing; task scheduling; data analysis; neural network
0 ?引 ?言
隨著社會對計算領(lǐng)域需求的增加,數(shù)據(jù)中心的大量建立,云計算應用普及,云計算相關(guān)技術(shù)成為了研究熱點。任務調(diào)度是云計算的核心技術(shù)之一,如何設計一種有效、快速的任務調(diào)度方案是至關(guān)重要的,局域網(wǎng)中的云計算環(huán)境與公網(wǎng)的云計算環(huán)境有所不同,局域網(wǎng)的云計算服務具有大多數(shù)時間任務相對固定,調(diào)度要求時間短,瞬時任務爆發(fā)較大等特點。
針對上述問題,本文提出了基于數(shù)據(jù)分析的神經(jīng)網(wǎng)絡云計算任務調(diào)度算法,算法充分考慮了局域網(wǎng)云計算的用戶和云計算服務提供商兩方面的需求,對局域網(wǎng)用戶云計算任務和云計算的主機相關(guān)特點和屬性進行統(tǒng)計和分析,并結(jié)合歷史的調(diào)度數(shù)據(jù)得到初始化調(diào)度方案。通過構(gòu)建評價函數(shù)對調(diào)度方案進行評估,然后通過神經(jīng)網(wǎng)絡算法進行訓練,從而得到一個具有計算出相對最優(yōu)化任務調(diào)度方案功能的神經(jīng)網(wǎng)絡,最后就可以針對不同的任務群落進行快速計算得到調(diào)度方案,并且可以在云計算數(shù)據(jù)中心提供云計算服務的時候,不斷地訓練神經(jīng)網(wǎng)絡,對相關(guān)的權(quán)重適當調(diào)整,得到適應數(shù)據(jù)計算中心的神經(jīng)網(wǎng)絡,為后續(xù)的任務調(diào)度提供快速經(jīng)濟的調(diào)度方案。
1 ?基于大數(shù)據(jù)分析DATA-HNN
1.1 ?基于大數(shù)據(jù)的數(shù)據(jù)分析模型
本文主要依據(jù)用戶及云資源提供商在云環(huán)境下所提供的計算任務和云計算資源進行數(shù)據(jù)分析,得到相關(guān)數(shù)據(jù)模型,并以此為依據(jù)生成神經(jīng)網(wǎng)絡初始訓練集。
用戶提交的云計算任務是根據(jù)自己的需求建立的,而云計算的資源提供商是根據(jù)計算中心的資源提供服務,他們都有自己的內(nèi)在屬性和特點,比如計算資源有帶寬、計算速度、內(nèi)存等限制,云計算任務有任務大小,帶寬和時間等要求。為了能夠?qū)τ脩籼峤坏娜蝿蘸陀嬎阗Y源進行數(shù)據(jù)分析,可以根據(jù)以上一個或者多個維度進行歸類和分析,為后續(xù)的任務或者計算資源的調(diào)度提供依據(jù)。
為了避免數(shù)據(jù)對計算調(diào)度方案的過多干擾,選取云計算資源的計算能力(mips)作為描述云計算資源的屬性值,選取用戶提交的任務大小作為描述云計算任務的屬性值,然后根據(jù)任務的大小和云計算資源的計算能力進行分類匯總,設置一個標準值P用來描述任務和云計算資源的匹配度,即使用任務大小CM除以云計算資源的計算能力VM,如果P的值較大或者較小,兩者匹配度不高,如果P的值接近于1,說明云計算資源和任務大小匹配度較高,或者說在云計算資源一個計算單位時間周期內(nèi)能夠計算完成該云計算任務,并且不會產(chǎn)生較多的空閑時間。根據(jù)P的值,構(gòu)建多個云計算任務調(diào)度方案,最后通過Cloudsim模擬計算出調(diào)度方案的計算執(zhí)行時間,可以得到一個完整的描述云計算調(diào)度的過程的集合,也就是相關(guān)的訓練集,選取執(zhí)行時間最優(yōu)的方案作為神經(jīng)網(wǎng)絡神經(jīng)節(jié)點權(quán)重的初始值。P表達式為:
(1)
表達式中云計算任務i與云計算節(jié)點主機j匹配度的計算方式為:根據(jù)云計算資源屬性相關(guān)權(quán)重計算并相加得到。
其中,i代表云計算任務編號i;j代表云計算任務編號j;A、B、C……表示云計算資源其中一種屬性的權(quán)值;CiM為任務序列任務編號i任務大小;VjM為云計算資源序列云計算節(jié)點編號j運算速度;CiMe為任務序列任務編號i需求計算資源的內(nèi)存大小;VjMe為云計算資源序列云計算節(jié)點編號j內(nèi)存大小;CiB為任務序列任務編號i需求計算資源的帶寬大小;VjB為云計算資源序列云計算節(jié)點編號j需求計算資源的帶寬大小。
1.2 ?基于云計算任務調(diào)度的連續(xù)型Hopfield神經(jīng)網(wǎng)絡定義
將目前初始的云計算任務調(diào)度方案,按照云計算任務序列m和云計算節(jié)點序列n構(gòu)成mn行mn列換位矩陣。Xij表示該云計算任務i是否選擇在該計算資源節(jié)點j運行,取值為0或者1,0代表否定,1代表確定,并定義Xij作為神經(jīng)網(wǎng)絡的神經(jīng)元,神經(jīng)元的激活態(tài)與非激活態(tài)與其值相對應,i取值范圍為1到M,j取值范圍為1到N。
定義1(約束條件1)一個計算節(jié)點上可以有多個或者一個計算任務順序運行。
(2)
定義2(約束條件2)一個計算任務只能選擇在一個計算節(jié)點運行。
(3)
定義3(約束條件3)計算節(jié)點在有云計算任務沒有被執(zhí)行的情況下盡量不空閑。
(4)
值越小,空閑的計算節(jié)點越少,以確保不會有大量的空閑節(jié)點。
定義4(約束條件4)計算節(jié)點和云計算任務的相關(guān)屬性匹配度評價。
(5)
自定義變量Q作為云計算任務與計算節(jié)點的匹配度評價的閾值,如果當前云計算任務和云計算節(jié)點匹配度評價的均值越接近閾值Q,值越小。
根據(jù)定義分析可知,當調(diào)度方案滿足約束條件時,相關(guān)的約束條件其值為0,整個能量函數(shù)表達式為:
(6)
Sy為相關(guān)約束條件的權(quán)值,取值大于0。這樣就能通過能量函數(shù)定義優(yōu)化目標,就能得到滿足約束條件的調(diào)度方案。
由于Hopfield神經(jīng)網(wǎng)絡算法運算速度快,具有較強的并行運算能力,能在較短的時間內(nèi)計算出組合優(yōu)化問題的結(jié)果,通過結(jié)合約束條件和公式(6)轉(zhuǎn)換為以下能量函數(shù):
(7)
其中,Uij表示當前云計算任務i在元計算計算節(jié)點j運行,在HNN神經(jīng)網(wǎng)絡中表示神經(jīng)元節(jié)點;Ωijkl為兩個神經(jīng)元節(jié)點的鏈接強度;φkl為相關(guān)節(jié)點神經(jīng)元的閾值,該閾值根據(jù)相關(guān)約束條件計算得出。神經(jīng)元狀態(tài)只有激活態(tài)(1)和非激活態(tài)(0),變化規(guī)律依據(jù)約束條件通過式(9)計算結(jié)果進行變換。式(9)表達式為:
(9)
1.3 ?基于數(shù)據(jù)分析的云計算任務調(diào)度DATA-HNN算法
本文通過對云計算任務進行數(shù)據(jù)分析,通過形成數(shù)據(jù)分類,求取對云計算任務和云計算主機之間的匹配度,然后根據(jù)匹配度形成Hopfield神經(jīng)網(wǎng)絡所需的初始訓練集,這樣的訓練集可以在運算的初始階段涵蓋云計算任務總運算時間相對較短的調(diào)度方案,然后通過初始訓練集確定神經(jīng)網(wǎng)絡神經(jīng)節(jié)點的參數(shù),這樣就能快速地計算出相對最優(yōu)化的云計算任務調(diào)度方案。
核心步驟為:
步驟1 根據(jù)子任務集合和云計算節(jié)點集合,計算出匹配度矩陣。
步驟2 根據(jù)匹配度矩陣,隨機構(gòu)造初始神經(jīng)元狀態(tài)。
步驟3 利用式7至9計算能量函數(shù),通過能量函數(shù)迭代計算并修正神經(jīng)網(wǎng)絡中的節(jié)點相關(guān)參數(shù),最后通過Cloudsim平臺計算每次迭代的云任務運行時間,直至神經(jīng)網(wǎng)絡的能量函數(shù)輸出值收斂,或者規(guī)定時間內(nèi)(迭代次數(shù))調(diào)度方案云任務運行時間不再變化。
步驟4最后輸出當前云計算調(diào)度方案、運行時間和神經(jīng)網(wǎng)絡結(jié)構(gòu)作為計算結(jié)果。保留神經(jīng)網(wǎng)絡結(jié)構(gòu)和相關(guān)參數(shù),作為未來云計算調(diào)度計算的參考。
2 ?仿真實驗
2.1 ?實驗數(shù)據(jù)初始化設置
針對本文采用的算法進行評估,將采用Cloudsim平臺對DATA-HNN與HNN算法、遺傳算法進行對比實驗。
假定云環(huán)境擁有的主機種類有10種不同運算速度的云計算主機資源,其主要性能如表1所示。
為了排除云計算主機其他參數(shù)對實驗的影響,主機只保持運算速度有差異,主機的其他參數(shù)保持一致,只要滿足不產(chǎn)生性能瓶頸即可。
云計算任務集合通過隨機數(shù)生成任務大小不同的2000條任務,部分任務參數(shù)如表2所示。
為了驗證數(shù)據(jù)分析模型匹配度的有效性,降低相關(guān)云計算任務其他參數(shù)要求對數(shù)據(jù)的影響,云計算任務只有任務計算大小的差異,其他屬性保持一致。
根據(jù)相關(guān)文獻和實驗經(jīng)驗設置式(6)的相關(guān)權(quán)重參數(shù)為S1=4.3,S2=4.0,S3=2.4,S4=1.2,DATA-HNN與HNN算法、遺傳算法迭代次數(shù)統(tǒng)一設置為300。
2.2 ?實驗結(jié)果分析及其展望
在HNN算法中不同于搜索類和群算法,HNN把云計算任務和計算節(jié)點形成二位矩陣,矩陣中每一個節(jié)點都是該神經(jīng)網(wǎng)絡的神經(jīng)元,通過神經(jīng)元狀態(tài)的變化和能量函數(shù)的計算實現(xiàn)對最優(yōu)化解空間的搜索,最后計算時間最小值找到解空間的最優(yōu)調(diào)度方案。通過對云計算任務集合與云計算節(jié)點集合數(shù)據(jù)分析,通過計算云計算任務與計算節(jié)點的匹配度,根據(jù)匹配度排序優(yōu)先級生成初始調(diào)度方案。最后在相同條件下,分別比較DATA-HNN、隨機HNN、Data-GA、隨機遺傳算法在計算云計算調(diào)度方案中的優(yōu)劣。
為了便于比較,在作對比的時候只記錄每一種算法輸出結(jié)果的最優(yōu)調(diào)度方案。對比結(jié)果如圖1所示。
經(jīng)過10次迭代次數(shù)為300次實驗仿真,得到相關(guān)運行數(shù)據(jù)總結(jié)如下:運行結(jié)果在迭代次數(shù)達到100后趨向平穩(wěn),圖1顯示前100次迭代的平均運行時間,調(diào)度方案各有不同,云計算任務的運行時間有一定的差別,但是差別不大。
從圖1中可以看出,HNN算法能在較短的時間和較少迭代次數(shù)下快速得到解空間中相對最優(yōu)解,但是在后續(xù)中會有一定的波動,HNN因為有矩陣運算會耗費大量的運算資源。GA算法的云計算任務運算時間下降速度稍快,但是相對比較穩(wěn)定,得到相對最優(yōu)解后變化不大。HNN和GA兩者比較,GA算法在同樣迭代次數(shù)條件下較HNN快得多,但是GA并不是穩(wěn)定收斂的,HNN由于能量函數(shù)的存在,由于能量數(shù)值逐漸減少,HNN是穩(wěn)定收斂的。
DATA-HNN、Data-GA由于在仿真實驗之前,通過數(shù)據(jù)分析算法,計算云計算計算節(jié)點和云計算任務的匹配度,然后通過匹配度優(yōu)先依次順序匹配云計算任務和計算,在仿真實驗的初始階段就能夠得到相對運行時間比較短的調(diào)度方案,而基于HNN算法的特點,隨著能量函數(shù)能量數(shù)值的減少,HNN只能越來越收斂,得到的調(diào)度方案的運行時間只能越來越小,不會產(chǎn)生波動,而GA由于是變異搜索算法,GA會產(chǎn)生波動,不會變?yōu)樵絹碓叫?,需要結(jié)合其他算法,才能達到相對好的運算效果。HNN可以通過長時間運行,積累云計算中心接收的云計算任務的特點,形成相對固定且適應云計算數(shù)據(jù)中心的HNN參數(shù),云計算中心就能更快速高效完成任務調(diào)度。
3 ?結(jié) ?論
針對解決云環(huán)境下云數(shù)據(jù)中心任務頻繁、大量任務調(diào)度優(yōu)化問題,建立了基于數(shù)據(jù)分析的調(diào)度算法Data-HNN,通過云仿真平臺CloudSim將Data-HNN算法與HNN算法、Data-GA算法、GA算法進行比較,仿真結(jié)果表明Data-HNN算法能夠在云計算中心任務調(diào)度實現(xiàn)對云計算任務的數(shù)據(jù)分析,形成初始的任務調(diào)度方案,并通過HNN算法實現(xiàn)對任務調(diào)度方案的優(yōu)化,從而形成相對固定的神經(jīng)網(wǎng)絡結(jié)構(gòu)和相關(guān)參數(shù),以便實現(xiàn)對云計算任務的再次調(diào)度。但是,本文僅僅考慮了云計算任務和計算節(jié)點的一個維度(任務大?。λ惴ǖ挠绊?,同時HNN算法相關(guān)網(wǎng)絡參數(shù)為人為固定,下一步將考慮計算云計算任務多個維度和計算節(jié)點匹配度,生成初始調(diào)度方案的問題,HNN算法相關(guān)網(wǎng)絡參數(shù)動態(tài)調(diào)整的問題。
參考文獻:
[1] 李枝勇,馬良,張惠珍.蝙蝠算法在多目標多選擇背包問題中的應用 [J].計算機仿真,2013,30(10):350-353.
[2] 金偉健,王春枝.基于蝙蝠算法的云計算資源分配研究 [J].計算機應用研究,2015,32(4):1184-1187.
[3] 許波,趙超,祝衍軍,等.云計算中虛擬機資源調(diào)度多目標優(yōu)化 [J].系統(tǒng)仿真學報,2014,26(3):592-595+620.
[4] 張曉東.遺傳算法與蟻群算法相融合的云計算任務調(diào)度算法研究 [D].鎮(zhèn)江:江蘇大學,2013.
[5] 張宇楠,劉付永.一種改進的變步長自適應蝙蝠算法及其應用 [J].廣西民族大學學報(自然科學版),2013,19(2):51-54+81.
[6] 唐大志.用Hopfield神經(jīng)網(wǎng)絡解決作業(yè)車間調(diào)度問題 [J].遼寧工程技術(shù)大學學報,2004(S1):88-90.
[7] 郭玉棟,左金平.基于霍普菲爾德網(wǎng)絡的云作業(yè)調(diào)度算法 [J].系統(tǒng)仿真學報,2019,31(12):2859-2867.
作者簡介:謝劍(1986.08—)男,壯族,廣西柳州人,工程師,碩士,研究方向:云計算神經(jīng)網(wǎng)絡大數(shù)據(jù)。