摘? 要: 針對目前大部分數(shù)據(jù)中心資源分配龐大和動態(tài)化的問題,研究基于人工智能技術(shù)的云計算資源分配模型。對蝙蝠算法和云計算資源模型進行設(shè)計,實現(xiàn)任務的劃分,分配云計算資源;另外,創(chuàng)建資源分配調(diào)度框架,在用戶終端收集任務調(diào)度模塊,計算資源損耗;實現(xiàn)云任務的調(diào)度,接收用戶提交的任務,初始化蝙蝠種群的脈沖頻率,計算任務的優(yōu)先權(quán),從而輸出全局最優(yōu)解。利用C++開發(fā)仿真平臺對不同數(shù)量服務器數(shù)據(jù)中心進行模擬,結(jié)果表明,通過此資源分配算法能夠解決資源分配的問題,從而提高算法的分配效率。
關(guān)鍵詞: 人工智能; 蝙蝠算法; 云計算; 資源分配; 服務器; 仿真
中圖分類號: TN911.1?34? ? ? ? ? ? ? ? ? ? ? ? 文獻標識碼: A? ? ? ? ? ? ? ? ? ? ? ? ?文章編號: 1004?373X(2020)21?0170?04
Research on cloud computing resource allocation
based on artificial intelligence technology
LIN Xiaonong
(Fuzhou Institute of Technology, Fuzhou 350506, China)
Absrtact: In view of the massive and dynamic resource allocation in most data centers at present, a design of cloud computing resource allocation based on artificial intelligence technology is realized. The bat algorithm and cloud computing resource model are designed to realize the task division and allocate cloud computing resources. In addition, the resource allocation scheduling framework is created, and the task scheduling module is collected at the user terminal to calculate the resource loss. The scheduling of cloud tasks is implemented, the tasks submitted by the user is received, the pulse frequency of the bat population is initialized and the task priority is calculated, so as to output the global optimal solution. Finally, the simulation performance and analysis of the proposed method are realized. The C++ development simulation platform is used to simulate different number of server data centers. This resource allocation algorithm can solve the problem of resource allocation and improve the allocation efficiency of the algorithm.
Keywords: artificial intelligence; bat algorithm; cloud computing; resource allocation; server; simulation
0? 引? 言
云計算為全新商業(yè)計算模式,也是分布式并行處理與網(wǎng)格計算等技術(shù)的延伸與拓展,代表了目前并行計算技術(shù)發(fā)展的全新階段,屬于全新產(chǎn)物。云計算中具有多種問題需要有效解決,比如資源調(diào)度。
資源調(diào)度為云計算技術(shù)的主要構(gòu)成部分,其效率對云計算環(huán)境工作性能具有直接影響。云計算環(huán)境任務調(diào)度為NP完全問題,啟發(fā)式智能算法是該領(lǐng)域研究的主要方向[1]。本文以云計算對資源分配的要求,對人工智能技術(shù)進行研究,使用蝙蝠算法和云計算任務調(diào)度實際特點結(jié)合,創(chuàng)建將成本、時間作為雙約束條件的資源調(diào)度模型,使云計算資源調(diào)度問題得到解決。
1? 蝙蝠算法與云計算資源模型
1.1? 蝙蝠算法
蝙蝠算法(BA)為2010年所提到的全新啟發(fā)式智能算法,此算法對自然界蝙蝠利用聲納對獵物探測進行研究,從而避免障礙物。BA算法仿生原理是基于種群數(shù)量為NP的蝙蝠個體在[D]維空間中映射的NP可行解,以可行解適應度函數(shù)值優(yōu)劣對蝙蝠算法中蝙蝠個體位置的優(yōu)劣進行衡量,使個體優(yōu)劣過程模擬成為算法優(yōu)化與搜索過程中使用優(yōu)良可行解代替現(xiàn)有可行解的過程。蝙蝠算法中的規(guī)則為:
為了能夠以小空間、時間的代價尋找食物最優(yōu)個體,設(shè)置目標函數(shù)為min [f(x)],目標變量設(shè)置為[D]維空間,所以目標變量設(shè)置為[X=(x1,x2,…,xD)T]的優(yōu)化問題[2]。
實施BA算法的過程為:
設(shè)置蝙蝠頻率為[fi],范圍為[[fmin,fmax]],對應的波長為[[λmin,λmax]],蝙蝠響應設(shè)置為[A0],脈沖頻率設(shè)置為[r],第[i]只蝙蝠在[t]時間內(nèi)位置更新公式為:
[fi=fmin+(fmax-fmin)α] (1)
速度更新公式為:
[vti=vt-1i+(xti-x*)fi] (2)
[lti=lt-1i+vti] (3)
式中:[fi]指蝙蝠頻率;[α]是隨機服從均勻分布隨機變量;[x*]指前[i-1]次迭代之后得到的最優(yōu)位置。在實現(xiàn)局部搜索時,通過目前局部搜索產(chǎn)生最優(yōu)解,每只蝙蝠能夠隨機地產(chǎn)生全新位置。
[lnew=lold+εAt] (4)
式中:[ε]為隨機參數(shù),為了避免擴大蝙蝠位置,取值為[-1,1];[At]指[t]時間全部蝙蝠平均響度,在位置、速度迭代過程中不斷更新,在發(fā)現(xiàn)食物后,降低響度,提高脈沖頻率:
[Ai+1i=εAti] (5)
[rt+1i=r0i[1-exp(-kt)]] (6)
因為蝙蝠算法的資源調(diào)度效率比其他智能算法更優(yōu),所以在云計算資源調(diào)度分配中使用蝙蝠算法,使云計算中資源分配不均的問題得到解決,使資源分配效率得到提高。
1.2? 云計算資源模型
在解決云計算關(guān)鍵問題中,實現(xiàn)云計算資源調(diào)度為重點,云計算資源調(diào)度要考慮虛擬節(jié)點完成時間、虛擬節(jié)點網(wǎng)絡(luò)費用等,在多重解中尋找最小值。本文為了使問題研究更加方便,將上述要求表達為:
[minF=1≤i≤n1≤j≤m(xijtij+xijcij+xijsij)] (7)
式中:[min F]指云計算環(huán)境中實現(xiàn)完成資源分配時的最小函數(shù)值;[i]表示虛擬節(jié)點數(shù)目;[j]表示資源數(shù)目;[xij]表示[i]在使用[j]資源;[tij]指[xij]的使用時間;[cij]表示[xij]使用的網(wǎng)絡(luò)費用;[sij]指[xij]占據(jù)的網(wǎng)絡(luò)帶寬資源[3]。
2? 云計算資源的分配
2.1? 任務劃分與蝙蝠個體編碼
在現(xiàn)代云計算環(huán)境中,谷歌公司提出的MapReduce調(diào)度機制在各平臺中廣泛使用,對大規(guī)模并行任務進行處理,Map過程為使大任務分解為多個子任務實現(xiàn)處理,任務劃分的主要的目的就是將處理機通信開銷進行消除,一般要求最大并行化,任務關(guān)聯(lián)比較小。
在使用蝙蝠算法實現(xiàn)任務調(diào)度算法處理過程中,要實現(xiàn)任務劃分和蝙蝠個體的編碼[4]。使用直接編碼實現(xiàn)蝙蝠個體編碼,也就是解決問題要對蝙蝠個體位置與速度直接編碼;另外,還能夠通過間接編碼的方式實現(xiàn)。通過資源?任務間接編碼等方式與所有子任務的占據(jù)資源、子任務數(shù)量和編碼長度相關(guān)。以此表示,每個編碼后蝙蝠個體和任務分配策略相互對應。
假如任務數(shù)目設(shè)置為[n],資源數(shù)量為[m],每個任務根據(jù)相應的規(guī)則劃分成為多個子任務,任務被劃分成為子任務總數(shù)比計算資源總數(shù)要大[5],編碼子任務的公式為:
[s[i,j]=k=0isn(k)+j] (8)
式中[sn(k),? k=0,1,2,…,n]指第[k]個任務被劃分為子任務的數(shù)目,并且規(guī)定[sn(0)=0]。本文使用順序編碼的方式,也就是編碼根據(jù)任務順序開展,第[i]個任務中第[j]個子任務號為[s[i,j]]。
2.2? 資源分配調(diào)度框架
資源調(diào)度框架如圖1所示,其中,用戶終端agent的主要目的就是對本地用戶行為信息進行收集,之后上傳各種服務提供商SaaS中用戶行為數(shù)據(jù)分析模塊。用戶行為數(shù)據(jù)分析模塊利用用戶提交任務與對人物結(jié)果查看的行為,實現(xiàn)歷史數(shù)據(jù)的統(tǒng)計和分析,使用相應分布模型針對用戶時間片斷[Ts]中工作狀態(tài)與心理預期任務定性刻畫時間。
用戶行為規(guī)律數(shù)據(jù)根據(jù)服務類型Cluster化,使用唯一服務類別編碼,在云計算綜合控制中心策略管理模塊中綜合控制。任務調(diào)度模塊接收任務管理模塊請求之后,以服務編碼對目前時間片斷[Ti]資源分配查找,實現(xiàn)資源的動態(tài)分配。本文用戶行為信息收集和分析在用戶終端與SaaS服務端實現(xiàn),計算振蕩在各SaaS區(qū)域中限制,計算資源損耗與網(wǎng)絡(luò)帶寬可控[6]。
2.3? 云任務的調(diào)度步驟
在云任務調(diào)度環(huán)境中,使用蝙蝠算法實現(xiàn)調(diào)度的步驟為:
1) 對用戶所提交任務進行接收,并且使任務劃分成為[sn(k)]個子任務,所有子任務的規(guī)模相同,實現(xiàn)子任務蝙蝠種群的生成。
2) 蝙蝠種群初始化過程中的蝙蝠脈沖頻率[fi]與位置[xi],對脈沖頻率范圍、頻度增加系數(shù)、最大迭代數(shù)與音強衰減系數(shù)[α]進行搜索。
3) 對目前任務優(yōu)先權(quán)進行計算,并且使任務根據(jù)優(yōu)先權(quán)的降序進行排序,對任務進行編碼,實現(xiàn)蝙蝠飛行速度的計算和空間位置的更新。
4) 產(chǎn)生隨機數(shù)[β]。假如[β>R(i)],那么通過目前最佳解集中對解選擇,在最佳解選擇附近構(gòu)成局部解,利用隨機飛行產(chǎn)生全新解;假如[β 5) 判斷是否滿足終止條件,如果滿足,進入到下一步,否則轉(zhuǎn)入步驟3),進入到下一次的搜索。 6) 實現(xiàn)全局最優(yōu)解的輸出。 其中:[R(i)],[f(xi)],[A(i)]指第[i]只蝙蝠發(fā)射速度、目前位置目標函數(shù)解、脈沖響度。 3? 仿真性能和分析 3.1? 仿真環(huán)境 采用C++開發(fā)仿真平臺,平臺要模擬不同數(shù)量的服務器數(shù)據(jù)中心,而且對不同特征虛擬主機進行隨機模擬,在服務器中調(diào)度。服務器數(shù)量一般設(shè)置為20~100,對大量服務器數(shù)據(jù)中心管理比較復雜,以此能夠使可行解決方案分簇為小規(guī)模集群,使管理更加方便,并且使可擴展性得到提高。 為全部服務器賦予不同的CPU頻率,其中,虛擬主機頻率能夠在需要的頻率資源上下限變化。仿真平臺能夠改建NSGA?Ⅱ,并且實現(xiàn)上述模型的目標函數(shù)。決策變量[fij]指實數(shù)編碼,二進制編碼[7]表示為[xij]。為了對仿真實驗結(jié)果進行分析,進行以下假設(shè): 1) 全部服務器都能夠以連續(xù)、平穩(wěn)的頻率運行DVFS技術(shù)。 2) 在服務器全負載狀態(tài)中,靜態(tài)固有能量消耗占據(jù)總能耗60%。 3) 電路中單位勢差能夠產(chǎn)生一個單位CPU頻率,對此假設(shè)數(shù)據(jù)改變,不會影響到仿真實驗結(jié)果[8]。 NSGA?Ⅱ最大進化代數(shù)設(shè)置為250代,針對每組參數(shù),在仿真運行后使仿真結(jié)果為平均值。NSGA?Ⅱ的參數(shù)和設(shè)置見表1。 3.2? 仿真性能和分析 圖2為不同規(guī)模數(shù)據(jù)中心,應用運行虛擬主機,能夠滿足服務器數(shù)量變化需求。圖2表示在虛擬主機數(shù)量不斷增加的過程中,曲面平緩上升[9]。 圖3為全部服務器中虛擬主機的動態(tài)總能耗。通過圖3可知,在虛擬主機數(shù)量不斷增加的過程中,動態(tài)能耗曲面平穩(wěn)上升,表示在服務器數(shù)量與虛擬主機不斷增加的過程中,也就是在解決復雜問題的過程中能夠控制動態(tài)能量。 圖4為服務器總利用率,曲面為上下交替情況[10]。 圖5為基于開關(guān)機代價的目標函數(shù),即生成虛擬資源分配方案過程中的開關(guān)服務器代價[11]。在調(diào)度執(zhí)行虛擬機主機數(shù)據(jù)不斷增加與數(shù)據(jù)中心規(guī)模不斷增大的過程中,問題復雜度也在不斷增加,其所產(chǎn)生的開關(guān)機代價也在不斷增大[12]。而本文設(shè)計的策略能夠使服務器開關(guān)機代價得到降低。在虛擬機執(zhí)行與調(diào)度的過程中,能夠開關(guān)少量服務器。由于此策略并沒有改變數(shù)據(jù)中心動態(tài),所以將降低服務器開關(guān)代價作為優(yōu)化目標[13?14]。表2~表4展現(xiàn)了本文方法在種群數(shù)目不同,收斂穩(wěn)定性與精度均有所提高,由于云計算資源量比較大,所以模擬種群的數(shù)量就是云計算資源的數(shù)量,能夠為云計算資源調(diào)度算法提供參考[15]。 4? 結(jié)? 語 本文基于蝙蝠算法,改善局部、全局的搜索能力,能夠在云環(huán)境中快速定位可提供的有效資源,在保證性能的基礎(chǔ)上,提出了高能耗虛擬機資源的分配策略,使運行數(shù)據(jù)中心能耗降低。通過仿真實驗結(jié)果顯示,本文算法能夠使資源分配問題得到解決,使算法分配效率得到提高。 參考文獻 [1] 溫有奎,溫浩,喬曉東.讓知識產(chǎn)生智慧:基于人工智能的文本挖掘與問答技術(shù)研究[J].情報學報,2019(7):722?730. [2] 孫毅.基于云計算平臺的神經(jīng)網(wǎng)絡(luò)研究[J].科學與信息化,2017,21(9):28?30. [3] 李茂毅.基于云計算的人工智能探討[J].當代教育實踐與教學研究,2018(1):9. [4] 沈向洋.微軟人工智能:增強人類智慧[J].軟件和集成電路,2017,26(6):19?21. [5] 志剛.人工智能即服務:當人工智能遇到云計算[J].大眾科學,2018,15(7):44?45. [6] 劉航波,詹磊.大數(shù)據(jù)、云計算、人工智能在公共資源交易領(lǐng)域的應用[J].中國招標,2017,16(48):20?21. [7] 侯楓,鄭媛媛.基于3G無線通信網(wǎng)絡(luò)與云計算平臺的軟件下載系統(tǒng)研究[J].現(xiàn)代電子技術(shù),2017,40(3):27?29. [8] 劉少楠.基于Hadoop云存儲架構(gòu)的教育資源管理優(yōu)化技術(shù)研究[J].現(xiàn)代電子技術(shù),2019,42(16):136?139. [9] 趙衛(wèi)中,馬慧芳,傅燕翔,等.基于云計算平臺Hadoop的并行k?means聚類算法設(shè)計研究[J].計算機科學,2011,38(10):166?168. [10] ANIL R, DUNNING T, FRIEDMAN E. Mahout in action [M]. USA: Manning Publications Co., 2011. [11] 邵澤云,劉正岐.云計算關(guān)鍵技術(shù)研究[J].信息安全與技術(shù),2014,5(4):24?25. [12] 汪京坪.基于大數(shù)據(jù)結(jié)合云計算的人工智能創(chuàng)新發(fā)展[J].電子技術(shù)與軟件工程,2018(20):242. [13] 張婧宇.大數(shù)據(jù)時代人工智能的創(chuàng)新與發(fā)展研究[J].數(shù)碼設(shè)計,2018(8):4. [14] 謝曉廣.淺析大數(shù)據(jù)時代背景下人工智能在計算機網(wǎng)絡(luò)技術(shù)中的應用[J].科學技術(shù)創(chuàng)新,2019(5):96?97. [15] 涂俊英,李志敏.云計算下非結(jié)構(gòu)化大數(shù)據(jù)存儲系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2018,41(1):173?177. 作者簡介:林曉農(nóng)(1970—),男,福建惠安人,碩士研究生,高級工程師,研究方向為物聯(lián)網(wǎng)、人工智能、機器學習。