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