本發(fā)明屬于分布式計(jì)算下工作流調(diào)度領(lǐng)域,涉及一種帶有期限和費(fèi)用約束的工作流調(diào)度方法。
背景技術(shù):
:近年來(lái),網(wǎng)格和云計(jì)算的發(fā)展為大型的科學(xué)計(jì)算應(yīng)用提供了良好的平臺(tái),很多大規(guī)??茖W(xué)計(jì)算問(wèn)題都可以抽象為工作流(dag)模型。工作流調(diào)度問(wèn)題,是指給定工作流的任務(wù)作為對(duì)象,若干的處理器作為完成任務(wù)的資源,要在滿足一定的約束條件下,對(duì)任務(wù)和處理器進(jìn)行分配并安排先后次序,將所需的資源進(jìn)行最優(yōu)分配和最優(yōu)調(diào)度。調(diào)度問(wèn)題在物流、航空航天、醫(yī)療、生物等各領(lǐng)域都有廣泛的應(yīng)用。在網(wǎng)格或云平臺(tái)下,用戶通常需要在一定時(shí)間和費(fèi)用內(nèi)完成工作流調(diào)度,資源的管理者根據(jù)資源的不同性能給出不同的價(jià)格,用戶想租用資源完成復(fù)雜的應(yīng)用程序,因此他們需要支付資源管理者一定的費(fèi)用并且希望在有限的時(shí)間內(nèi)完成任務(wù),而資源的管理者需要合理分配資源,使得資源不被浪費(fèi),這就需要規(guī)劃者給出合理的調(diào)度方法使得用戶和資源管理者都接受[1]。因此,用戶、資源管理者、規(guī)劃者是帶有費(fèi)用和期限約束的工作流調(diào)度問(wèn)題的實(shí)體,圖1說(shuō)明了用戶、資源管理者、規(guī)劃者三者的關(guān)系。對(duì)于云環(huán)境下帶有費(fèi)用和期限約束的工作流(dag)調(diào)度問(wèn)題,對(duì)于用戶定的費(fèi)用約束b和期限約束d下,一般只用費(fèi)用和期限這兩個(gè)約束來(lái)描述帶有費(fèi)用和期限約束的工作流調(diào)度問(wèn)題,數(shù)學(xué)模型表示為:∑cost≤b,makespan≤d。其中∑cost表示完成任務(wù)調(diào)度所需要的總花費(fèi),makespan表示完成出口任務(wù)的最早完成時(shí)間。對(duì)于規(guī)劃者給出合理的優(yōu)化調(diào)度方案很重要。對(duì)于帶期限和費(fèi)用的工作流調(diào)度問(wèn)題研究,近兩年的相關(guān)文獻(xiàn)給出了一些主要算法主要見(jiàn)文獻(xiàn)[1,2,3]。2013年,zhang和sakellariou提出的bheft算法[1]是在資源存在負(fù)載的情況下考慮期限和費(fèi)用的優(yōu)化算法,但是不存在判定函數(shù)完全找不到資源的情況,但實(shí)際是存在這種情況的,所以對(duì)于費(fèi)用很小的情況下使用最早完成時(shí)間調(diào)度的情況不存在。2014年,arabnejad和barbosa提出了hbcs算法[2],提出了最低剩余預(yù)算rcb的定義,根據(jù)期限和費(fèi)用定義參數(shù)進(jìn)行資源的選擇。但是hbcs算法在期限和費(fèi)用的約束下dag調(diào)度的成功率不高。2016年,arabnejad和barbosa又給出了dbcs算法[3],在時(shí)間參數(shù)因子中加入了子期限sdl,來(lái)進(jìn)行資源的選擇,這使得任務(wù)的調(diào)度中費(fèi)用和期限的均衡約束起到的作用比較明顯,但是dbcs算法的dag調(diào)度的成功率仍然不如本方法的dag調(diào)度成功率高。技術(shù)實(shí)現(xiàn)要素:針對(duì)現(xiàn)有模型和方法存在的問(wèn)題,本發(fā)明對(duì)帶期限和費(fèi)用的工作流調(diào)度問(wèn)題給出了新的模型并提出了一種新的調(diào)度方法。該方法定義了每個(gè)任務(wù)的實(shí)際平均預(yù)算erc,以其作為判定函數(shù)降低了算法的復(fù)雜度。為更合理的考慮期限的約束,算法以sdl來(lái)確定任務(wù)的優(yōu)先級(jí)。實(shí)驗(yàn)表明,本方法在費(fèi)用和期限兩個(gè)約束下dag調(diào)度的成功率比較高。發(fā)明目的:以解決當(dāng)有費(fèi)用和期限兩個(gè)約束時(shí)工作流的調(diào)度問(wèn)題,期望在給定費(fèi)用和期限的約束下完成dag調(diào)度,即獲得較高的dag調(diào)度成功率。對(duì)于云環(huán)境下帶有費(fèi)用和期限約束的工作流(dag)調(diào)度問(wèn)題描述如下:記dag的圖為g={v,e},其中任務(wù)集合為v={n1,n2,...nn},|v|=n表示工作流中所有任務(wù)節(jié)點(diǎn)的個(gè)數(shù)為n;e是有向邊的集合,表示任務(wù)間的前后依賴(lài)關(guān)系,對(duì)任意的邊(ni,nq)∈e,任務(wù)ni執(zhí)行后才執(zhí)行任務(wù)nq,任務(wù)ni到任務(wù)nq存在傳遞時(shí)間aiq,dag中沒(méi)有前繼的任務(wù)稱(chēng)為入口任務(wù)nentry,沒(méi)有后繼的任務(wù)稱(chēng)為出口任務(wù)nexit。圖2表示的是一個(gè)含有10個(gè)任務(wù)節(jié)點(diǎn)的dag任務(wù)圖。資源集合記為p={p1,p2,...pm},|p|=m表示有m個(gè)資源,每一個(gè)任務(wù)ni都要在資源pj上執(zhí)行且存在執(zhí)行時(shí)間wij,任務(wù)ni在資源pj上有執(zhí)行費(fèi)用cij,在給定的費(fèi)用約束b和期限約束d下,期望得到最后任務(wù)的完成時(shí)間(makespan)和總費(fèi)用(cost)最小。通過(guò)分析問(wèn)題以及變量之間的關(guān)系,對(duì)此本發(fā)明給出了此問(wèn)題的線性規(guī)劃模型(ip):,(ip)(stij+wij)xij≤d,i=1,...n,j=1,...m,(1.4)xij∈{0,1}(1.5)這里xij是一個(gè)布爾變量,當(dāng)任務(wù)ni選擇資源pj時(shí),xij值為1,當(dāng)任務(wù)ni不選擇資源pj時(shí),xij值為0;(1.1)表示每一個(gè)任務(wù)都要安排到資源上;(1.2)表示最后任務(wù)的完成時(shí)間不超過(guò)d,其中d表示問(wèn)題的最優(yōu)調(diào)度的期限,表示最后任務(wù)的完成時(shí)間;(1.3)表示任務(wù)在資源的費(fèi)用之和不超過(guò)給定的費(fèi)用b;(1.4)表示每個(gè)安排的任務(wù)的完成時(shí)間不超d,其中stij表示任務(wù)ni在資源pj上的到達(dá)時(shí)間。一種帶有期限和費(fèi)用約束的工作流調(diào)度方法,包括以下步驟:步驟1:dag中每個(gè)任務(wù)優(yōu)先級(jí)的確定,具體方法如下:計(jì)算dag中每個(gè)任務(wù)的子期限sdl值,公式如下:其中succ(ni)為任務(wù)ni的后繼任務(wù)集合,ai,p表示任務(wù)ni到任務(wù)np的傳遞時(shí)間,etmin(np)表示任務(wù)np在所有資源上的最小執(zhí)行時(shí)間,因?yàn)槌隹谌蝿?wù)nexit沒(méi)有后繼節(jié)點(diǎn),所以將sdl(nexit)作為計(jì)算的初始值,令sdl(nexit)=d,其中d為給定的期限。從出口任務(wù)nexit的sdl值向前推導(dǎo),即可計(jì)算出所有任務(wù)的子期限值。用子期限sdl值作為任務(wù)節(jié)點(diǎn)調(diào)度的優(yōu)先級(jí),sdl值越小,優(yōu)先級(jí)越高,將任務(wù)按優(yōu)先級(jí)由高到低依次進(jìn)行排序,得到一組待調(diào)度序列l(wèi)。步驟2:資源的選取,具體方法如下:步驟(2.1)取待調(diào)度序列l(wèi)中優(yōu)先級(jí)最高的任務(wù)nk,按如下公式計(jì)算當(dāng)前任務(wù)nk的剩余預(yù)算sab:其中b是給定的預(yù)算,cf表示任務(wù)nf在已安排資源上的費(fèi)用,表示優(yōu)先級(jí)排在任務(wù)nk后面的未安排任務(wù)nh在所有資源上的平均費(fèi)用。步驟(2.2)計(jì)算任務(wù)nk的實(shí)際平均預(yù)算erc其中fk為調(diào)節(jié)參數(shù),定義如下:表示任務(wù)nk在所有資源上的平均費(fèi)用,表示優(yōu)先級(jí)排在任務(wù)nk后面的未安排任務(wù)nh在所有資源上的平均費(fèi)用,若sab(nk)的值大于等于0,fk的取值為任務(wù)nk在所有資源上的平均費(fèi)用與剩余未安排任務(wù)在所有資源上的平均費(fèi)用之和之比,若sab(nk)的值小于0,fk的取值為0。rb表示為任務(wù)nk的剩余費(fèi)用,每次計(jì)算下一個(gè)任務(wù)時(shí)更新剩余費(fèi)用,l為未調(diào)度任務(wù)的個(gè)數(shù)。步驟(2.3)對(duì)于任務(wù)nk,按照如下公式,找到當(dāng)前調(diào)度任務(wù)nk在資源上的費(fèi)用小于等于任nk的實(shí)際平均預(yù)算erck的資源的集合wk:其中cko表示任務(wù)nk在資源po上的執(zhí)行費(fèi)用,erck表示任務(wù)nk的實(shí)際平均預(yù)算,wko表示任務(wù)nk所選擇的資源po,其中o的取值不唯一,wk集合的作用為找到滿足條件cko≤erck的資源po。步驟(2.4)計(jì)算任務(wù)nk在集合wk中的資源pj上的最早完成時(shí)間eft(nk,pj),先計(jì)算任務(wù)nk在資源pj上的最早開(kāi)始時(shí)間est(nk,pj),定義如下:eft(nk,pj)=est(nk,pj)+wk,j(6)其中pred(nk)表示任務(wù)nk的前繼任務(wù)的集合,tavail[j]表示任務(wù)在資源pj上的可以開(kāi)始的最早時(shí)間,aft(ng)表示任務(wù)nk的前繼任務(wù)ng的實(shí)際完成時(shí)間,agk表示任務(wù)ng到任務(wù)nk之間的傳遞時(shí)間,內(nèi)層max表示任務(wù)nk的所有的前繼任務(wù)ng到達(dá)資源pj的時(shí)間,wk,j表示任務(wù)nk在資源pj上的運(yùn)行時(shí)間;對(duì)于入口任務(wù)nentry,est(nentry,pj)=0。步驟(2.5)如果sab(nk)大于等于0,對(duì)于任務(wù)nk選擇步驟(2.4)中最早完成時(shí)間eft值最小的資源,如果sab(nk)小于0,對(duì)于任務(wù)nk選擇ωk中執(zhí)行費(fèi)用最低的資源;記錄當(dāng)前任務(wù)nk所選資源的費(fèi)用步驟3:l為未調(diào)度任務(wù)的個(gè)數(shù),所以任務(wù)nk調(diào)度完成時(shí),l的值減去1;此時(shí)剩余費(fèi)用rb應(yīng)為除去任務(wù)nk在資源pj上的執(zhí)行費(fèi)用ckj后的費(fèi)用;從調(diào)度序列l(wèi)中刪除當(dāng)前優(yōu)先級(jí)最高的任務(wù)nk,若l非空,轉(zhuǎn)步驟2;否則,轉(zhuǎn)步驟4。步驟4:輸出工作流dag在費(fèi)用b和期限d約束下的調(diào)度方案,完成工作流調(diào)度。與現(xiàn)有技術(shù)相比,本方法具有以下優(yōu)勢(shì):本發(fā)明對(duì)于帶期限和費(fèi)用的dag調(diào)度問(wèn)題給出了新的規(guī)劃模型,通過(guò)dag的子期限的值來(lái)確定任務(wù)的優(yōu)先級(jí),這使得在調(diào)度過(guò)程中更合理的考慮了期限的約束。其次本發(fā)明定義了每個(gè)任務(wù)的實(shí)際平均預(yù)算erc,以其作為判定函數(shù)降低了算法的復(fù)雜度,與bheft,hbcs等算法相比,本方法在給定期限和費(fèi)用兩個(gè)約束下,dag調(diào)度的成功率更高。附圖說(shuō)明圖1為用戶、資源管理者、規(guī)劃者三者的關(guān)系;圖2為10個(gè)任務(wù)節(jié)點(diǎn)的dag任務(wù)圖;圖3為每個(gè)任務(wù)在每個(gè)資源上的執(zhí)行費(fèi)用;圖4為4種方法中100個(gè)dag調(diào)度的成功率。具體實(shí)施方式下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明做進(jìn)一步的說(shuō)明。本發(fā)明結(jié)合實(shí)施例實(shí)現(xiàn)了一種在期限和費(fèi)用約束下的工作流調(diào)度,按照?qǐng)D2所示的dag任務(wù)之間的關(guān)系進(jìn)行調(diào)度,給定費(fèi)用b=95,期限d=200,即用戶給定的約束條件費(fèi)用不超過(guò)95,期限不超過(guò)200,用戶想在此約束條件下進(jìn)行dag調(diào)度,假設(shè)資源管理者有三個(gè)資源分別為p1,p2,p3,每個(gè)任務(wù)在每個(gè)資源上的執(zhí)行費(fèi)用cij如圖3所示,規(guī)劃者根據(jù)用戶和資源管理者各自情況給出合理調(diào)度方案,既滿足用戶的要求,又符合資源管理者的情況,本發(fā)明即為規(guī)劃者合理的方案,最后輸出dag的調(diào)度方案,步驟如下:1.dag中每個(gè)任務(wù)優(yōu)先級(jí)的確定,根據(jù)公式(1)計(jì)算圖2中dag的每個(gè)任務(wù)的子期限sdl(ni),然后對(duì)于每個(gè)任務(wù)按sdl值由小到大進(jìn)行排序,如表1所示:原序列12345678910sdl值107.51133.37136.84137.99142.02158.55162.73181.79182.95200新序列146253879102.資源的選取,根據(jù)表1得到的任務(wù)的新序列,依次選取任務(wù),然后根據(jù)圖2和圖3的數(shù)據(jù)和公式(2),(3)(4),(5),(6),依次計(jì)算任務(wù)的剩余預(yù)算sab,實(shí)際平均預(yù)算erc,對(duì)于當(dāng)前每個(gè)任務(wù)滿足條件的資源的集合wi,任務(wù)在資源上的最早開(kāi)始時(shí)間est,最早完成時(shí)間eft,然后記錄每個(gè)任務(wù)在選取資源上的費(fèi)用,如圖表2所示:表中f表示調(diào)節(jié)參數(shù),select表示每一個(gè)任務(wù)最后選擇的資源,例如w1,2表示任務(wù)n1選擇的資源為p2,cost表示每個(gè)任務(wù)在選擇資源上的執(zhí)行費(fèi)用。由表2可以知道,每個(gè)任務(wù)所選取的資源,見(jiàn)表3:任務(wù)n1n4n6n2n5n3n8n7n9n10資源p2p2p2p3p2p2p3p1p3p2最后完成調(diào)度所需要的總費(fèi)用為71.90<95,出口任務(wù)n10的最早完成時(shí)間為145,即調(diào)度的最后時(shí)間為145<200,滿足條件。3最后輸出調(diào)度方案,即為表3,完成調(diào)度所需要的費(fèi)用為71.9,完成調(diào)度所需的時(shí)間為145。本發(fā)明對(duì)隨機(jī)產(chǎn)生的100個(gè)含有50個(gè)任務(wù)節(jié)點(diǎn)的dag進(jìn)行調(diào)度,要在給定的費(fèi)用和期限約束下完成調(diào)度,即為dag調(diào)度是成功的,對(duì)比了bheft,hbcs,dbcs算法,發(fā)現(xiàn)本方法的dag的成功率比較高,結(jié)果如圖4所示,其中圖4中代表dag調(diào)度的成功率,m代表本發(fā)明中的方法。主要參考文獻(xiàn):[1]w.zhangandr.sakellariou,budget-deadlineconstrainedworkflowplanningforadmissioncontrol,jgridcomputing,11,633-651,2013.[2]h.arabnejad,j.barbosa,abudgetconstrainedschedulingalgorithmforworkflowapplications,jgridcomputing,12,665-679,2014.[3]h.arabnejad,j.barbosa,r.prodan,low-timecomplexitybudget-deadlineconstrainedworkflowschedulingonheterogeneousresources,futuregenerationcomputersystems,55,29-40,2016.當(dāng)前第1頁(yè)12