本發(fā)明涉及云計(jì)算技術(shù)領(lǐng)域,特別是一種基于自頂向下任務(wù)分級(jí)的云工作流任務(wù)調(diào)度方法。
背景技術(shù):
云計(jì)算以軟硬件虛擬化技術(shù)為支撐,可以通過互聯(lián)網(wǎng)向用戶提供動(dòng)態(tài)可擴(kuò)展的服務(wù),其可提供的服務(wù)類型包括:軟件即服務(wù)saas、基礎(chǔ)設(shè)施即服務(wù)iaas和平臺(tái)即服務(wù)paas。由于其商業(yè)化的特征和市場為導(dǎo)向的商業(yè)模型,用戶在使用諸如計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)等云服務(wù)時(shí)通常是有償付費(fèi)的,使用模型類似于日常生活中使用的水、電、煤氣等資源。除此之外,云服務(wù)的提供必須以滿足用戶服務(wù)質(zhì)量qos為最終目標(biāo)。云計(jì)算環(huán)境中的工作流調(diào)度問題即是實(shí)現(xiàn)各個(gè)相互關(guān)聯(lián)的工作流任務(wù)與可用云資源間的映射問題,調(diào)度目標(biāo)需要滿足用戶定義的目標(biāo)函數(shù)。然而,工作流調(diào)度本身是np問題,多項(xiàng)式時(shí)間內(nèi)無法找到其最優(yōu)化。
工作流調(diào)度算法涉及兩種類型:盡力服務(wù)調(diào)度和qos約束調(diào)度。盡力服務(wù)調(diào)度算法主要是最小化工作流調(diào)度時(shí)間為目標(biāo),而未考慮資源訪問代價(jià),主要應(yīng)用于網(wǎng)格計(jì)算環(huán)境中,代表性算法有min-min、max-min和suffrage等。而網(wǎng)格計(jì)算環(huán)境與目前的商業(yè)云計(jì)算環(huán)境具有明顯的不同,包括:1、云資源是按需動(dòng)態(tài)提供的,用戶對(duì)資源類型和數(shù)量的選擇是較為靈活的,而網(wǎng)格環(huán)境中的資源類型、數(shù)量或使用時(shí)間都是比較固定的;2、云環(huán)境中的資源使用均是有償付費(fèi)的,且資源的定價(jià)模型根據(jù)資源類型的不同而不同,因此,任務(wù)執(zhí)行代價(jià)將是必須考慮的要素,而網(wǎng)格環(huán)境中的任務(wù)調(diào)度通常只側(cè)重于執(zhí)行效率的優(yōu)化問題。而qos約束調(diào)度算法則可以定義滿足不同需求和qos的調(diào)度目標(biāo)。云計(jì)算具有商業(yè)化特征,比較執(zhí)行時(shí)間,其資源使用代價(jià)在調(diào)度過程中更是不可忽視的要素,因此,更適合以qos約束調(diào)度進(jìn)行優(yōu)化。
現(xiàn)有qos約束調(diào)度中,多以滿足用戶截止時(shí)間或預(yù)算約束進(jìn)行任務(wù)調(diào)度優(yōu)化,代表性算法有關(guān)鍵路徑算法ic-pcp、增強(qiáng)ic-pcp算法eipr、分割均衡時(shí)間算法pbts和改進(jìn)異質(zhì)最早完成時(shí)間算法bheft。以上算法的不足之處在于:忽略了云資源提供的動(dòng)態(tài)彈性特征以及資源性能和代價(jià)異構(gòu)的特征,均無法直接應(yīng)用于云計(jì)算環(huán)境中工作流調(diào)度優(yōu)化。因此,需要尋找一種適用于云計(jì)算環(huán)境,結(jié)合任務(wù)特征和資源特征的云工作流調(diào)度qos方法。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明通過自頂向下的任務(wù)分級(jí),得到初始的任務(wù)執(zhí)行序列,使得調(diào)度方案的初始種群個(gè)體更加多樣化,能夠?qū)崿F(xiàn)滿足截止時(shí)間和預(yù)算約束的工作流執(zhí)行代價(jià)最優(yōu)化調(diào)度。
為了實(shí)現(xiàn)上述目的,本發(fā)明所采用的方法是:
步驟一:初始化工作流任務(wù)和主機(jī)資源相關(guān)參數(shù)、執(zhí)行時(shí)間ect矩陣和執(zhí)行代價(jià)ecc矩陣;
步驟二:計(jì)算工作流中所有任務(wù)的自頂向下分級(jí);
步驟三:根據(jù)任務(wù)的自頂向下分級(jí)數(shù)的降序排列依次分配任務(wù)至可用主機(jī)資源,以此產(chǎn)生初始種群的第一個(gè)遺傳個(gè)體;
步驟四:通過隨機(jī)將任務(wù)分配至可用主機(jī)資源的方式產(chǎn)生剩余種群個(gè)體,每個(gè)個(gè)體使用二維方式編碼,即一個(gè)種群個(gè)體為一種工作流任務(wù)調(diào)度方案(主機(jī)號(hào),任務(wù)執(zhí)行序列);
步驟五:如果不滿足遺傳終止條件,則繼續(xù)執(zhí)行以下步驟;否則,終止執(zhí)行;
步驟六:根據(jù)個(gè)體適應(yīng)度函數(shù)評(píng)估種群個(gè)體的適應(yīng)度;
步驟七:利用輪盤賭選擇策略從種群中選擇父親個(gè)體;
步驟八:在所有父親個(gè)體上利用交叉操作產(chǎn)生新的子個(gè)體;
步驟九:在新產(chǎn)生的子個(gè)體上應(yīng)用變異操作產(chǎn)生新的子個(gè)體;
步驟十:根據(jù)適應(yīng)度函數(shù)評(píng)估每個(gè)子個(gè)體;
步驟十一:增加有效子個(gè)體,產(chǎn)生新種群;
步驟十二:返回步驟五,直到遺傳終止。
與傳統(tǒng)的云計(jì)算環(huán)境中工作流的調(diào)度方法相比,本發(fā)明具有以下優(yōu)點(diǎn):1、將用戶定義的截止時(shí)間和預(yù)算約束引入云工作流調(diào)度問題中,通過這種多約束方式使用工作流調(diào)度更適應(yīng)于云環(huán)境的商業(yè)化特征;2、改變了傳統(tǒng)工作流調(diào)度方法只注重執(zhí)行時(shí)間的優(yōu)化,忽略了工作流執(zhí)行代價(jià)優(yōu)化的局限性;3、通過工作流結(jié)構(gòu)中任務(wù)的特定位置,以自頂向下分級(jí)方式定義了任務(wù)的調(diào)度優(yōu)先級(jí),以此產(chǎn)生了更加合理和更多樣性的遺傳種群個(gè)體;4、通過更簡單的方式定義了種群個(gè)體的編碼方式,能夠直接從編碼染色體中解碼出任務(wù)的調(diào)度方案;5、設(shè)計(jì)了互換變異和替代變異兩種形式的個(gè)體變異操作,進(jìn)一步豐富了種群個(gè)體;6、在適應(yīng)度函數(shù)設(shè)計(jì)中兼顧考慮了時(shí)間因素和代價(jià)因素,并以此為標(biāo)準(zhǔn),得到滿足截止時(shí)間和預(yù)算約束的代價(jià)最小化的調(diào)度方法。
附圖說明
圖1為本發(fā)明的工作流結(jié)構(gòu)示意圖。
圖2為本發(fā)明的主機(jī)資源結(jié)構(gòu)圖。
圖3為本發(fā)明的基于自頂向下任務(wù)分級(jí)的一種調(diào)度結(jié)果圖。
圖4為本發(fā)明的種群個(gè)體交叉操作示意圖。
圖5為本發(fā)明的種群個(gè)體互換變異操作示意圖。
圖6為本發(fā)明的種群個(gè)體替代變異操作示意圖。
圖7為本發(fā)明的輪盤賭選擇示意圖。
圖8為本發(fā)明的工作流任務(wù)調(diào)度流程圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述。
本發(fā)明通過自頂向下的任務(wù)分級(jí),得到初始的任務(wù)執(zhí)行序列,使得調(diào)度方案的初始種群個(gè)體更加多樣化,能夠?qū)崿F(xiàn)滿足截止時(shí)間和預(yù)算約束的工作流執(zhí)行代價(jià)最優(yōu)化調(diào)度。
為了實(shí)現(xiàn)上述目的,本發(fā)明在描述具體方法前先作出如下定義:
對(duì)云計(jì)算環(huán)境中的工作流應(yīng)用定義:將工作流應(yīng)用建立為有向無循環(huán)圖dag,表示為二元組g(t,e),t表示任務(wù)集合{t1,t2,…,tn},|t|=n,e表示邊e的集合,代表任務(wù)間的依賴性。每個(gè)任務(wù)ti∈t表示一個(gè)工作流應(yīng)用的任務(wù),每條邊(ti,tj)表示任務(wù)ti與任務(wù)tj間的執(zhí)行順序約束,表明任務(wù)tj必須在任務(wù)ti完成后才可以開始執(zhí)行。此時(shí),稱任務(wù)ti為任務(wù)tj的父任務(wù),任務(wù)tj為任務(wù)ti的子任務(wù)。
具體地,如果在工作流dag中的任務(wù)不存在父任務(wù),則稱該任務(wù)為工作流應(yīng)用的入口任務(wù);如果在工作流dag中的任務(wù)不存在子任務(wù),則稱該任務(wù)為工作流應(yīng)用的出口任務(wù)。
具體地,圖1所示為一種典型工作流結(jié)構(gòu)示意圖,有向邊上的數(shù)值表示任務(wù)間的數(shù)據(jù)傳輸時(shí)間,可表示為如下表格形式。
表1任務(wù)數(shù)據(jù)傳輸時(shí)間
當(dāng)任務(wù)間不存在直接有向邊時(shí),即任務(wù)間不存在直接執(zhí)行依賴關(guān)系,此時(shí)數(shù)據(jù)傳輸時(shí)間設(shè)置為∞。
具體地,該工作流應(yīng)用中擁有九個(gè)任務(wù),其中,入口任務(wù)有三個(gè):t1、t2和t3,出口任務(wù)有三個(gè):t7、t8和t9。
對(duì)云計(jì)算環(huán)境中的資源定義:將云資源定義為物理主機(jī),它可以提供一定的計(jì)算能力、存儲(chǔ)能力和網(wǎng)絡(luò)帶寬能力。假設(shè)云計(jì)算環(huán)境中擁有m臺(tái)物理主機(jī)資源,表示為h={h1,h2,…,hm},規(guī)定云計(jì)算環(huán)境中的主機(jī)資源在同一時(shí)間內(nèi)只能執(zhí)行一個(gè)工作流任務(wù),直到任務(wù)完成才能執(zhí)行其他任務(wù),即資源在同一時(shí)間內(nèi)是單一任務(wù)獨(dú)占的。同時(shí),用戶任務(wù)在主機(jī)資源上執(zhí)行時(shí),需向云資源提供方支付一定費(fèi)用,以資源代價(jià)的形式表示,且每個(gè)任務(wù)在不同資源上的執(zhí)行代價(jià)是不相同的。
具體地,如圖2所示為一種云計(jì)算環(huán)境中提供的物理主機(jī)資源示意圖,一共擁有三臺(tái)主機(jī)資源。
對(duì)任務(wù)的估計(jì)完成時(shí)間矩陣ect的定義:ect為n×m矩陣,其元素ectij表示任務(wù)ti在主機(jī)hj上的估計(jì)完成時(shí)間。
具體地,下表2是圖1所示工作流任務(wù)在圖2所示三個(gè)主機(jī)資源上的估計(jì)完成時(shí)間ect。
表2ect
對(duì)任務(wù)的完成代價(jià)時(shí)間矩陣ecc的定義:ecc為n×m矩陣,其元素eccij表示任務(wù)ti在主機(jī)hj上的執(zhí)行代價(jià)。
具體地,下表3是圖1所示工作流任務(wù)在圖2所示三個(gè)主機(jī)資源上的執(zhí)行代價(jià)ecc。
表3ecc
對(duì)工作流任務(wù)自頂向下分級(jí)的定義:定義任務(wù)的自頂向下分級(jí)leveltop-down為該任務(wù)至其子任務(wù)的最長短徑的長度,表示為:
其中,aeti表示任務(wù)ti在不同主機(jī)資源上的平均執(zhí)行時(shí)間,succ(ti)表示ti的所有子任務(wù)集合,dttij表示任務(wù)ti與tj間的數(shù)據(jù)傳輸時(shí)間。
具體地,對(duì)于出口任務(wù),由于沒有子任務(wù),其自頂向下分級(jí)等于任務(wù)在不同主機(jī)上的平均執(zhí)行時(shí)間。
具體地,下表4是根據(jù)ect矩陣得到的工作流各任務(wù)的自頂向下分級(jí)值及相應(yīng)的任務(wù)執(zhí)行序列,其中,任務(wù)執(zhí)行序列按照任務(wù)自頂向下分級(jí)leveltop-down的降序排列進(jìn)行,如果出現(xiàn)多個(gè)任務(wù)擁有相同自頂向下分級(jí)的情況,其執(zhí)行序列以隨機(jī)排列方式進(jìn)行。
表4任務(wù)分級(jí)及執(zhí)行序列情況
根據(jù)得到的各工作流任務(wù)的自頂向下分級(jí)值,在如圖2所示的三臺(tái)主機(jī)資源條件下,可以得到圖3的一種調(diào)度方案,該方案即為一個(gè)遺傳種群個(gè)體。
具體地,根據(jù)任務(wù)自頂向下分級(jí)得到任務(wù)執(zhí)行序列后,在為任務(wù)選擇相應(yīng)主機(jī)資源時(shí),應(yīng)選擇主機(jī)資源可用且執(zhí)行代價(jià)最小的主機(jī)資源。
以下詳細(xì)描述工作流任務(wù)的遺傳調(diào)度方法過程。
1)遺傳編碼
本發(fā)明在進(jìn)行種群個(gè)體編碼時(shí)采用二維編碼,一個(gè)種群個(gè)體可表示為調(diào)度s=(主機(jī)號(hào),任務(wù)執(zhí)行序列)。
具體地,如圖3所得到的調(diào)度方案可編碼為:s={(h1,t1,t5,t8),(h2,t2,t4,t7),(h3,t3,t6,t9)}。
2)遺傳解碼
對(duì)于編碼后的染色體的解碼方案是:將編碼中的第一個(gè)字符直接解碼為相應(yīng)主機(jī)資源,之后的字符順序解碼為在該主機(jī)資源上執(zhí)行的任務(wù)序列。
3)初始種群生成
本發(fā)明的初始種群生成方法為:根據(jù)任務(wù)的自頂向下分級(jí)數(shù)的降序排列依次分配任務(wù)至可用主機(jī)資源,以此產(chǎn)生初始種群的第一個(gè)遺傳個(gè)體;并通過隨機(jī)將任務(wù)分配至可用主機(jī)資源的方式產(chǎn)生剩余種群個(gè)體,以此得到遺傳的初始種群。
4)適應(yīng)度函數(shù)
種群適應(yīng)度函數(shù)的目的是用來度量種群個(gè)體的優(yōu)劣程度。對(duì)于截止時(shí)間和預(yù)算雙重約束的工作流調(diào)度問題,本發(fā)明定義的適應(yīng)度函數(shù)表示為:
其中,t(i)表示種群個(gè)體i所代表的調(diào)度方案的完成時(shí)間,deadline表示用戶定義的工作流應(yīng)用執(zhí)行的截止時(shí)間,c(i)表示種群個(gè)體i所代表的調(diào)度方案的完成代價(jià),budget表示用戶定義的工作流應(yīng)用執(zhí)行的預(yù)算約束,α和β分別表示截止時(shí)間因子和預(yù)算因子,表明用戶對(duì)qos的偏好,α∈[0,1],β∈[0,1],且α+β=1。
具體地,如果用戶對(duì)于工作流任務(wù)的完成時(shí)間和完成代價(jià)具有同等偏好,則可設(shè)置α=β=0.5;如果用戶對(duì)于工作流任務(wù)的完成時(shí)間具有更大偏好,則可設(shè)置α>0.5,β<0.5;如果用戶對(duì)于工作流任務(wù)的完成代價(jià)具有更大偏好,則可設(shè)置α<0.5,β>0.5。
具體地,本發(fā)明評(píng)估個(gè)體適應(yīng)度的過程是:如果t(i)/deadline≤1且c(i)/budget≤1,則表明該種群個(gè)體是滿足要求的適應(yīng)種群個(gè)體;否則,則將該個(gè)體從種群中拋棄。
同時(shí),需要說明的是,種群個(gè)體遺傳進(jìn)化過程中,在確保種群個(gè)體為可行個(gè)體的前提下,應(yīng)優(yōu)先保留適應(yīng)度更小的個(gè)體,這可以保證工作流調(diào)度的執(zhí)行時(shí)間和執(zhí)行代價(jià)更優(yōu)。
5)遺傳交叉
本發(fā)明的遺傳交叉操作可以通過聯(lián)合兩個(gè)優(yōu)適應(yīng)度的個(gè)體得到更好的種群個(gè)體,以此得到當(dāng)前種群的新個(gè)體,兩個(gè)個(gè)體按交叉概率pc進(jìn)行交叉操作,pc∈[0,1],交叉點(diǎn)根據(jù)任務(wù)在當(dāng)前主機(jī)資源上的分配情況隨機(jī)進(jìn)行選擇,從而將特定主機(jī)上的任務(wù)序列在交叉點(diǎn)進(jìn)行分割并交叉互換。
具體地,如圖4所示,父個(gè)體1表示的調(diào)度方案s={(h1,t1,t5,t8),(h2,t2,t4,t7),(h3,t3,t6,t9)}和父個(gè)體2表示的調(diào)度方案s={(h3,t1,t5,t8),(h1,t2,t4,t7),(h2,t3,t6,t9)},選擇交叉點(diǎn)并經(jīng)過遺傳交叉操作后,得到兩個(gè)新的子個(gè)體分別為s={(h1,t1,t4,t7),(h2,t2,t6,t9),(h3,t3,t5,t8)}和s={(h1,t3,t5,t8),(h2,t1,t4,t7),(h3,t2,t6,t9)}。
6)遺傳變異
本發(fā)明采用兩種類型的遺傳變異操作:互換變異和替代變異。
具體地,互換變異隨機(jī)選擇一個(gè)主機(jī),然后在該主機(jī)上隨機(jī)選擇兩個(gè)任務(wù)進(jìn)行互換位置;替代變異在種群個(gè)體中重新分配可用主機(jī)至任務(wù),即:隨機(jī)選擇一個(gè)任務(wù),將其當(dāng)前的分配資源以隨機(jī)選擇且可執(zhí)行的資源進(jìn)行替換。
具體地,兩種遺傳變異操作的執(zhí)行過程是:遺傳變異以變異概率pm執(zhí)行,pm∈[0,1]。如果產(chǎn)生的隨機(jī)數(shù)小于pm,則執(zhí)行互換變異,否則,執(zhí)行替代變異。
具體地,如圖5所示,主機(jī)資源h2上的任務(wù)調(diào)度方案s=(h2,t2,t4,t7)經(jīng)過互換變異后,得到新的調(diào)度方案s=(h2,t2,t7,t4)。
具體地,如圖6所示,調(diào)度方案s={(h1,t1,t5,t8),(h2,t2,t4,t7),(h3,t3,t6,t9)}經(jīng)過替代變異后,得到新的種群個(gè)體s={(h1,t1,t5,t8,t9),(h2,t2,t4,t7),(h3,t3,t6)}。
7)遺傳選擇
本發(fā)明的種群個(gè)體選擇采用輪盤賭策略進(jìn)行,具體過程是:首先,根據(jù)適應(yīng)度函數(shù)計(jì)算當(dāng)前種群個(gè)體的適應(yīng)度;其次,采用擇優(yōu)策略,將計(jì)算出的適應(yīng)度最小的個(gè)體直接保留至子代種群中,作為遺傳操作的復(fù)制算子;然后,根據(jù)各個(gè)個(gè)體適應(yīng)度,計(jì)算其相比整個(gè)種群的相對(duì)適應(yīng)度,以此作為該種群個(gè)體的選擇概率,計(jì)算公式為:
其中,fitness(i)表示種群個(gè)體i的適應(yīng)度,dsize表示整個(gè)種群的規(guī)模。
最后,采用輪盤賭的選擇策略對(duì)個(gè)體進(jìn)行選擇。根據(jù)選擇概率p(i),i=1,2,…,dsize,將一個(gè)圓盤劃分為dsize份,其中,第i個(gè)扇形的中心角大小為2πp(i),隨機(jī)轉(zhuǎn)動(dòng)輪盤,直到停止。如果選擇的參照點(diǎn)落入輪盤選擇策略的第i個(gè)扇形區(qū)內(nèi),則選擇個(gè)體i。如圖7所示為輪盤賭選擇策略示意圖。
具體地,對(duì)于遺傳選擇而言,個(gè)體適應(yīng)度占總體適應(yīng)度的比例,以此作為該種群個(gè)體的選擇概率,概率越大,該種群個(gè)體越優(yōu)先被選擇。
8)遺傳終止
本發(fā)明的遺傳終止的條件設(shè)置為遺傳最大迭代次數(shù)為100次,當(dāng)遺傳迭代數(shù)到達(dá)100次后,遺傳過程立即終止。
基于以上的遺傳定義,本發(fā)明的調(diào)度方法的具體步驟是:
步驟一:初始化工作流任務(wù)和主機(jī)資源相關(guān)參數(shù)、執(zhí)行時(shí)間ect矩陣和執(zhí)行代價(jià)ecc矩陣;
步驟二:計(jì)算工作流中所有任務(wù)的自頂向下分級(jí);
步驟三:根據(jù)任務(wù)的自頂向下分級(jí)數(shù)的降序排列依次分配任務(wù)至可用主機(jī)資源,以此產(chǎn)生初始種群的第一個(gè)遺傳個(gè)體;
步驟四:通過隨機(jī)將任務(wù)分配至可用主機(jī)資源的方式產(chǎn)生剩余種群個(gè)體,每個(gè)個(gè)體使用二維方式編碼,即一個(gè)種群個(gè)體為一種工作流任務(wù)調(diào)度方案(主機(jī)號(hào),任務(wù)執(zhí)行序列);
步驟五:如果不滿足遺傳終止條件,則繼續(xù)執(zhí)行以下步驟;否則,終止執(zhí)行;
步驟六:根據(jù)個(gè)體適應(yīng)度函數(shù)評(píng)估種群個(gè)體的適應(yīng)度;
步驟七:利用輪盤賭選擇策略從種群中選擇父親個(gè)體;
步驟八:在所有父親個(gè)體上利用交叉操作產(chǎn)生新的子個(gè)體;
步驟九:在新產(chǎn)生的子個(gè)體上應(yīng)用變異操作產(chǎn)生新的子個(gè)體;
步驟十:根據(jù)適應(yīng)度函數(shù)評(píng)估每個(gè)子個(gè)體;
步驟十一:增加有效子個(gè)體,產(chǎn)生新種群;
步驟十二:返回步驟五,直到遺傳終止。
本發(fā)明所采用的工作流任務(wù)調(diào)度方法更適應(yīng)于云計(jì)算的商業(yè)化特征,能夠滿足截止時(shí)間和預(yù)算的雙重約束,實(shí)現(xiàn)工作流執(zhí)行代價(jià)的最優(yōu)化。
本說明書中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。