一種基于改進(jìn)蟻群算法的云數(shù)據(jù)中心任務(wù)調(diào)度方法
【專利摘要】本發(fā)明提出了一種基于改進(jìn)蟻群算法的云數(shù)據(jù)中心任務(wù)調(diào)度方法,涉及云計(jì)算領(lǐng)域,包括以下步驟:步驟1:輸入用戶提交的待調(diào)度工作流任務(wù)集合以及用戶租賃的虛擬機(jī)集合;步驟2:將任務(wù)分配給虛擬機(jī)執(zhí)行的調(diào)度問題表示成標(biāo)準(zhǔn)的最小值求解問題;步驟3:用基于信息素更新的蟻群算法求解云計(jì)算環(huán)境虛擬機(jī)任務(wù)調(diào)度問題。本發(fā)明能夠適應(yīng)云環(huán)境的動(dòng)態(tài)性,不但縮短了用戶任務(wù)調(diào)度的時(shí)間開銷,而且將云數(shù)據(jù)中心中的虛擬機(jī)負(fù)載維持在一個(gè)相對(duì)均衡的狀態(tài)。
【專利說明】一種基于改進(jìn)蟻群算法的云數(shù)據(jù)中心任務(wù)調(diào)度方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于云計(jì)算領(lǐng)域,尤其涉及一種基于改進(jìn)蟻群算法的云數(shù)據(jù)中心任務(wù)調(diào)度方法。
【背景技術(shù)】
[0002]隨著商業(yè)模式的急速轉(zhuǎn)變,偏重于解決科學(xué)計(jì)算問題的網(wǎng)格計(jì)算已經(jīng)很難解決商業(yè)環(huán)境中存在的諸多問題,至今為止網(wǎng)格計(jì)算還沒有出現(xiàn)任何商業(yè)化的產(chǎn)品。2006年,Google公司首次提出了云計(jì)算(Cloud Computing)的概念。云計(jì)算利用虛擬化技術(shù)將數(shù)據(jù)中心中的存儲(chǔ)、計(jì)算以及通信等資源整合為一個(gè)共享的、可動(dòng)態(tài)配置的IT資源池。用戶不再需要購置服務(wù)器等硬件資源,只需要通過互聯(lián)網(wǎng)并且支付相應(yīng)的費(fèi)用即可根據(jù)自己的需求獲取相應(yīng)的服務(wù)。
[0003]云計(jì)算采用成熟的虛擬化技術(shù)將一臺(tái)物理主機(jī)映射成多臺(tái)虛擬機(jī),因此在任務(wù)調(diào)度過程中用戶提交的任務(wù)無需分配到具體的物理節(jié)點(diǎn)來完成,每個(gè)任務(wù)只需根據(jù)適當(dāng)?shù)娜蝿?wù)調(diào)度策略選擇合適的虛擬機(jī)即可完成整個(gè)調(diào)度過程。此外由于云計(jì)算采用以用戶為中心的“按需使用,按量付費(fèi)”的商業(yè)服務(wù)模式,云數(shù)據(jù)中心任務(wù)調(diào)度需要考慮時(shí)間開銷、滿足用戶對(duì)執(zhí)行費(fèi)用的需求、保證數(shù)據(jù)中心中虛擬機(jī)的負(fù)載維持在一個(gè)相對(duì)均衡的狀態(tài)。如何對(duì)任務(wù)進(jìn)行合理的分配成為云服務(wù)供應(yīng)商亟需解決的重點(diǎn)問題,不適當(dāng)?shù)娜蝿?wù)分配策略不僅會(huì)增加所有任務(wù)的執(zhí)行時(shí)間,還會(huì)影響虛擬機(jī)的穩(wěn)定性。
[0004]云計(jì)算任務(wù)調(diào)度是一種NP-hard問題。目前采用一些近似算法和啟發(fā)式算法求解此類問題。例如:遺傳算法、粒子群算法、免疫進(jìn)化算法、克隆選擇算法等,這類算法的本質(zhì)是設(shè)計(jì)一種高效的搜索算法,具有搜索整個(gè)解空間而不至于陷于局部最優(yōu)的能力。隨機(jī)算法具有全局搜索的優(yōu)點(diǎn),且適應(yīng)面廣,但是缺乏有效的局部搜索機(jī)制,且收斂速度慢。此外,目前大多數(shù)算法尚未考慮云數(shù)據(jù)中心中各臺(tái)虛擬機(jī)計(jì)算性能的差異,造成用戶租賃的各虛擬機(jī)的負(fù)載出現(xiàn)不均衡的情況,從而會(huì)影響到虛擬機(jī)的總體性能。
【發(fā)明內(nèi)容】
[0005]本發(fā)明要解決的技術(shù)問題在于:提供一種基于改進(jìn)蟻群算法的云數(shù)據(jù)中心任務(wù)調(diào)度方法,實(shí)現(xiàn)對(duì)虛擬機(jī)進(jìn)行合理的分配,對(duì)任務(wù)進(jìn)行高效的調(diào)度。
[0006]本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種基于改進(jìn)蟻群算法的云數(shù)據(jù)中心任務(wù)調(diào)度方法,包括下述步驟:
[0007]步驟1:輸入用戶提交的待調(diào)度工作流任務(wù)集合以及用戶租賃的虛擬機(jī)集合;
[0008]步驟2:將任務(wù)分配給虛擬機(jī)執(zhí)行的調(diào)度問題表示成標(biāo)準(zhǔn)的最小值求解問題;
[0009]步驟3:用基于信息素更新的蟻群算法求解云計(jì)算環(huán)境虛擬機(jī)任務(wù)調(diào)度問題。
[0010]進(jìn)一步地,本發(fā)明基于改進(jìn)蟻群算法的云數(shù)據(jù)中心任務(wù)調(diào)度方法,所述的步驟2將任務(wù)分配給虛擬機(jī)執(zhí)行的調(diào)度問題表示成標(biāo)準(zhǔn)的最小值求解問題,其中優(yōu)化目標(biāo)為調(diào)度策略中所有任務(wù)執(zhí)行完畢開銷最小化,即所有任務(wù)執(zhí)行完畢花費(fèi)的時(shí)間最短;[0011 ] 約束條件為任務(wù)的數(shù)目要大于租賃的虛擬機(jī)的數(shù)目,任務(wù)集合中的任務(wù)都是元任務(wù),即每個(gè)任務(wù)都不可再拆分為更小的子任務(wù),并且每個(gè)任務(wù)利用任一租賃的虛擬機(jī)進(jìn)行計(jì)算,但每個(gè)虛擬機(jī)在同一時(shí)間只能處理一個(gè)任務(wù),并且任務(wù)未完成計(jì)算前不允許中斷。
[0012]進(jìn)一步地,本發(fā)明基于改進(jìn)蟻群算法的云數(shù)據(jù)中心任務(wù)調(diào)度方法,所述的步驟3用基于信息素更新的蟻群算法求解云計(jì)算環(huán)境虛擬機(jī)任務(wù)調(diào)度問題包含一個(gè)迭代過程,包括如下8個(gè)子步驟:
[0013]步驟3.1:初始化;該步驟初始化算法中的基本參數(shù)包括信息啟發(fā)因子α、期望啟發(fā)因子β、信息素?fù)]發(fā)因子P、螞蟻個(gè)數(shù)m、最大迭代次數(shù)NCmax、信息素τ.j以及轉(zhuǎn)移期望程度jUj ;
[0014]步驟3.2:算法迭代開始,如果迭代次數(shù)NC小于最大迭代次數(shù)NCmax時(shí),NC = NC+1,進(jìn)入下一步;當(dāng)?shù)螖?shù)大于等于最大迭代次數(shù)時(shí),迭代結(jié)束;
[0015]步驟3.3:每只螞蟻根據(jù)狀態(tài)轉(zhuǎn)移公式為每個(gè)任務(wù)計(jì)算每臺(tái)虛擬機(jī)被選擇的概率;
[0016]所述的狀態(tài)轉(zhuǎn)移公式為:
【權(quán)利要求】
1.一種基于改進(jìn)蟻群算法的云數(shù)據(jù)中心任務(wù)調(diào)度方法,其特征在于:包括以下步驟: 步驟1:輸入用戶提交的待調(diào)度工作流任務(wù)集合以及用戶租賃的虛擬機(jī)集合; 步驟2:將任務(wù)分配給虛擬機(jī)執(zhí)行的調(diào)度問題表示成標(biāo)準(zhǔn)的最小值求解問題; 步驟3:用基于信息素更新的蟻群算法求解云計(jì)算環(huán)境虛擬機(jī)任務(wù)調(diào)度問題。
2.如權(quán)利要求1所述的基于改進(jìn)蟻群算法的云數(shù)據(jù)中心任務(wù)調(diào)度方法,其特征在于:所述的步驟2將任務(wù)分配給虛擬機(jī)執(zhí)行的調(diào)度問題表示成標(biāo)準(zhǔn)的最小值求解問題,其中優(yōu)化目標(biāo)為調(diào)度策略中所有任務(wù)執(zhí)行完畢開銷最小化,即所有任務(wù)執(zhí)行完畢花費(fèi)的時(shí)間最短; 約束條件為任務(wù)的數(shù)目要大于租賃的虛擬機(jī)的數(shù)目,任務(wù)集合中的任務(wù)都是元任務(wù),即每個(gè)任務(wù)都不可再拆分為更小的子任務(wù),并且每個(gè)任務(wù)利用任一租賃的虛擬機(jī)進(jìn)行計(jì)算,但每個(gè)虛擬機(jī)在同一時(shí)間只能處理一個(gè)任務(wù),并且任務(wù)未完成計(jì)算前不允許中斷。
3.如權(quán)利要求1所述的基于改進(jìn)蟻群算法的云數(shù)據(jù)中心任務(wù)調(diào)度方法,其特征在于:所述的步驟3用基于信息素更新的蟻群算法求解云計(jì)算環(huán)境虛擬機(jī)任務(wù)調(diào)度問題包含一個(gè)迭代過程,包括如下8個(gè)子步驟: 步驟3.1:初始化;該步驟初始化算法中的基本參數(shù)包括信息啟發(fā)因子α、期望啟發(fā)因子β、信息素?fù)]發(fā)因子P、螞蟻個(gè)數(shù)m、最大迭代次數(shù)NCmax、信息素τ.j以及轉(zhuǎn)移期望程度1Uj ; 步驟3.2:算法迭代開始,如果迭代次數(shù)NC小于最大迭代次數(shù)NCmax時(shí),NC = NC+1,進(jìn)入下一步;當(dāng)?shù)螖?shù) 大于等于最大迭代次數(shù)時(shí),迭代結(jié)束; 步驟3.3:每只螞蟻根據(jù)狀態(tài)轉(zhuǎn)移公式為每個(gè)任務(wù)計(jì)算每臺(tái)虛擬機(jī)被選擇的概率; 所述的狀態(tài)轉(zhuǎn)移公式為:
4.如權(quán)利要求3所述的基于改進(jìn)蟻群算法的云數(shù)據(jù)中心任務(wù)調(diào)度方法,其特征在于:所述的信息素Tu以及轉(zhuǎn)移期望程度ηU均用計(jì)算節(jié)點(diǎn)的計(jì)算能力來表示: τ i,j = ni;J = MIPSj/N 其中,MIPSj表示處理任務(wù)Ti的虛擬機(jī)VMj的處理速度,N是一個(gè)常量。
5.如權(quán)利要求3所述的基于改進(jìn)蟻群算法的云數(shù)據(jù)中心任務(wù)調(diào)度方法,其特征在于:步驟3.6所述的局部信息素更新具體包括以下內(nèi)容: A、殘留信息進(jìn)行更新處理,采用如下公式: τ ij(t+l) = (1-P).τ Jj (t) + Δ τ (t) 其中:τ u (t+1)表示第t+1次迭代時(shí)任務(wù)Ti選擇虛擬機(jī)VMj的信息量,1-P表示信息素殘留因子,為了防止信息的無限積累,P的取值范圍為ATu(t)表示任務(wù)Ti選擇虛擬機(jī)VMj執(zhí)行殘留在虛擬機(jī)VMj上的信息量; B、對(duì)該螞蟻調(diào)度方案中的所有虛擬機(jī)進(jìn)行信息素的更新:
Δ τ Jj (t) = D/clockjj 其中D是一個(gè)常數(shù),clocks代表本次循環(huán)中螞蟻為任務(wù)Ti選擇虛擬機(jī)VMj的執(zhí)行時(shí)間。
6.如權(quán)利要求3所述的基于改進(jìn)蟻群算法的云數(shù)據(jù)中心任務(wù)調(diào)度方法,其特征在于:步驟3.7所述全局信息素的更新是按照公式:Λ τ u(t) = D/bestclock.j對(duì)該方案上的所有虛擬機(jī)進(jìn)行信息素更新,其中,bestclockg代表在最優(yōu)分配方案中為任務(wù)Ti選擇虛擬機(jī)VMj時(shí)任務(wù)Ti的完成時(shí)間。
7.如權(quán)利要求5所述的基于改進(jìn)蟻群算法的云數(shù)據(jù)中心任務(wù)調(diào)度方法,其特征在于:所述的步驟3.6中還包括定義一個(gè)信息素調(diào)整因子PC,根據(jù)任務(wù)的虛擬機(jī)分配情況對(duì)信息素進(jìn)行調(diào)整。
8.如權(quán)利要求7所述的基于改進(jìn)蟻群算法的云數(shù)據(jù)中心任務(wù)調(diào)度方法,其特征在于:所述的信息素調(diào)整因子PC的計(jì)算公式為:
9.如權(quán)利要求7所述的基于改進(jìn)蟻群算法的云數(shù)據(jù)中心任務(wù)調(diào)度方法,其特征在于:所述的根據(jù)任務(wù)的虛擬機(jī)分配情況對(duì)信息素進(jìn)行調(diào)整,具體為: 在局部信息素更新和全局信息素更新后,再將更新后的信息素按照下式調(diào)整,
Tij (t+1) = ((1-P).τ Jj (t) + Δ τ (t)) *PC ; 未分配給任務(wù)Ti的其他虛擬機(jī)則按照以下公式進(jìn)行信息素的調(diào)整: τ ix(t+l) = τ ix(t)*PC, 其中,τ ix(t+l)表示第t+1次迭代時(shí),任務(wù)Ti選擇未分配給任務(wù)的虛擬機(jī)VMx的信息量。
【文檔編號(hào)】G06N3/00GK103970609SQ201410168654
【公開日】2014年8月6日 申請(qǐng)日期:2014年4月24日 優(yōu)先權(quán)日:2014年4月24日
【發(fā)明者】薛勝軍, 李夢盈, 許小龍 申請(qǐng)人:南京信息工程大學(xué)