專利名稱:一種云計算中依賴任務(wù)的解耦并行調(diào)度方法
技術(shù)領(lǐng)域:
本發(fā)明屬于云計算應(yīng)用領(lǐng)域,涉及到云服務(wù)中任務(wù)依賴關(guān)系描述、解耦合和并行調(diào)度等方法。
背景技術(shù):
分布式計算技術(shù)已成為當(dāng)前信息技術(shù)的主流,如移動計算和云計算等。云環(huán)境下的大型應(yīng)用服務(wù)往往被分解成多個任務(wù)來調(diào)度和執(zhí)行,并且分解后的若干任務(wù)之間往往存在著一定的約束和依賴關(guān)系,即具有較強的耦合性。任務(wù)間依賴關(guān)系的存在對任務(wù)調(diào)度提出了新的挑戰(zhàn)。當(dāng)前,分布式環(huán)境中的任務(wù)調(diào)度研究往往只是考慮任務(wù)間沒有相互依賴關(guān)系即獨立任務(wù)的簡單情況,雖然一定程度上解決了系統(tǒng)資源異構(gòu)性和可用性問題,但不適用于具有依賴關(guān)系的任務(wù)調(diào)度。而對于依賴任務(wù)調(diào)度問題的研究大多是基于某個特定環(huán)境或?qū)ΨQ同構(gòu)系統(tǒng)。在云計算中,由于資源的異構(gòu)性和分布性使得資源之間不僅處理能力存在巨大差異,而且資源之間的網(wǎng)絡(luò)連接狀況也千差萬別,因此云環(huán)境中的依賴任務(wù)調(diào)度問題所要考慮的因素遠(yuǎn)比同構(gòu)系統(tǒng)要多,其調(diào)度算法也要遠(yuǎn)比同構(gòu)系統(tǒng)復(fù)雜。雖然目前已有相當(dāng)數(shù)量的異構(gòu)系統(tǒng)依賴任務(wù)調(diào)度算法,但它們大多數(shù)是對同構(gòu)系統(tǒng)算法的改進,通常以依賴關(guān)系構(gòu)建依次調(diào)度任務(wù)隊列,實現(xiàn)單一性能指標(biāo)為目標(biāo)的靜態(tài)調(diào)度,難以根據(jù)系統(tǒng)資源的實時信息進行動態(tài)調(diào)度;忽略了依賴任務(wù)調(diào)度的并行性,即不能有效解決耦合問題,使得系統(tǒng)資源不能得到充分利用,降低了系統(tǒng)利用率;沒有考慮通信開銷代價和任務(wù)執(zhí)行開銷間的關(guān)系,使得系統(tǒng)資源存在部分空閑[①Cathy H. Xia,George Michailidis,Nicholas Bamoos. Dynamic on-line task scheduling on parallel processors.Performance Evaluation Vol.46,2001,219-233. (2) Tei-ffei Kuo, Wang-Ru Yangand Kwei-Jay Lin. A class of rate-based real-time scheduling algorithms. IEEE Transaction on computers, Vol 51,No. 6,June 2002,708-720.③何琨,趙勇,陳陽.分布式環(huán)境下多任務(wù)調(diào)度問題的分析與求解[J].系統(tǒng)工程理論與實踐.2007,5:119-125.④石威,鄭緯民.相關(guān)任務(wù)圖的均衡動態(tài)關(guān)鍵路徑調(diào)度算法[J].計算機學(xué)報.2001,M(9) =991-997.⑤桂小林,錢德沛.元計算環(huán)境下的支持依賴任務(wù)的OGS算法研究[J].計算機學(xué)報.2002, 25(6) :582-586. (6) Topcuoglu H, Wu M Y. Performance-effective and low-complexity task scheduling ior heterogeneous computing. IEmi Transactions on Parallel ana Distributed Systems. 2002,13(3) :260-274.]。因此在云計算中,如何提高強耦合的依賴任務(wù)調(diào)度的并行性、實時性和動態(tài)性,以及為提高系統(tǒng)利用率,對有依賴關(guān)系的任務(wù)請求進行合理的調(diào)度與部署,成為當(dāng)前云計算要解決的熱點問題之一。
發(fā)明內(nèi)容
本發(fā)明解決的技術(shù)問題是根據(jù)云計算的異構(gòu)性特征,提出了依賴任務(wù)關(guān)系描述圖,并構(gòu)建了依賴任務(wù)的解耦并行調(diào)度方法。該方法首先以入度為零對任務(wù)依賴關(guān)系進行解耦來構(gòu)建就緒任務(wù)的集合,動態(tài)描述某個時刻可并行調(diào)度的任務(wù)。然后根據(jù)實時資源評價,對就緒任務(wù)的集合進行分布式多目標(biāo)調(diào)度,有效地提高調(diào)度并行性。除了對資源評價外,在任務(wù)分配時還考慮任務(wù)執(zhí)行和任務(wù)間通信開銷(E/C),來決定是否用任務(wù)復(fù)制來代替其依賴數(shù)據(jù)傳輸,以減少通信開銷。整個調(diào)度方法可以對就緒任務(wù)集合中多個任務(wù)進行動態(tài)并行調(diào)度,較好地兼顧實時性和并行性、通信開銷和負(fù)載均衡等性能指標(biāo),通過動態(tài)調(diào)度策略有效地提高系統(tǒng)的整體性能。本發(fā)明的技術(shù)方案如下(1)任務(wù)依賴關(guān)系的描述通常用節(jié)點表示組成一個應(yīng)用服務(wù)的各個任務(wù)、有向邊表示任務(wù)間的依賴關(guān)系,用計算時間和通信時間作為任務(wù)屬性。而在異構(gòu)環(huán)境下,同一任務(wù)在不同處理機上執(zhí)行時間不同,這種關(guān)系圖不能很好地適應(yīng)異構(gòu)計算和云計算。根據(jù)云計算異構(gòu)性的特點,本發(fā)明提出包括計算量、依賴數(shù)據(jù)傳輸量和存儲資源需求量的依賴任務(wù)關(guān)系描述圖,解決了異構(gòu)環(huán)境下同一任務(wù)在不同節(jié)點上執(zhí)行時間不同的時域動態(tài)性問題。該任務(wù)關(guān)系描述圖具有圖論中有向無環(huán)圖(DirectedAcyclic Graph, DAG)的特征。任務(wù)之間的依賴關(guān)系用ー個五元組G = (T,E,W,A,D)來表示,其中包含了任務(wù)之間的關(guān)系及對系統(tǒng)存儲資源的需求,本發(fā)明要求任務(wù)的存儲資源需求量不可超過節(jié)點的最大可利用存儲空間值。圖中元素代表的含義如下T為應(yīng)用服務(wù)的η個任務(wù)組成的集合T= IT1,
T2,......,TJ0 E是邊的集合E= (e」0<i,j彡n;i乒j)。應(yīng)用服務(wù)中的任務(wù)的依賴
關(guān)系定義為如果Tj必須在Ti執(zhí)行完畢后才能運行,則從Ti到Tj就存在一條有向邊eij,并且Ti是Tj.的前驅(qū)任務(wù),Tj.是Ti的后繼任務(wù)。W為任務(wù)的計算量集合,W=他|0<1彡11}。 A為任務(wù)的最低存儲資源需求的集合A = {んI 0 < i彡η},Ai為Ti的最低存儲需求Ai = {R_,Rst。J,其中1 _為內(nèi)存空間需求量,Rsto為存儲空間需求量。D為任務(wù)之間的依賴數(shù)據(jù)傳輸量矩陣,Clij表示前驅(qū)任務(wù)Ti與后繼任務(wù)ろ之間的數(shù)據(jù)傳輸量。(2)解耦合方法本發(fā)明中的解耦合方法的核心是入度值為零,即任務(wù)可被調(diào)度的必要條件是在依賴關(guān)系圖中某節(jié)點的入度值為零,也就是說其前驅(qū)任務(wù)均已執(zhí)行完畢。對任務(wù)依賴關(guān)系圖根據(jù)圖中節(jié)點入度值為零的條件來解耦合,并且建立一個就緒任務(wù)集合ReadyTaskSet = (Ti | 0 < i ^ η},來動態(tài)描述某個時刻可并行調(diào)度的任務(wù)。本發(fā)明的就緒集合定義為某個時刻沒有前驅(qū)任務(wù)或直接前驅(qū)任務(wù)都已經(jīng)完成的任務(wù)組成的集體,即入度值為零。集合中的任務(wù),其優(yōu)先級是相同的,不分先后,任一成員只要所需的存儲資源滿足,即可被調(diào)度。初始時就緒任務(wù)集合中的元素都是入度值為0的任務(wù),當(dāng)集合中的某個任務(wù)執(zhí)行完畢并把依賴數(shù)據(jù)傳遞給其后繼任務(wù)后,就從就緒任務(wù)集合中刪除該任務(wù), 并且隱藏(或邏輯刪除)依賴關(guān)系圖該任務(wù)節(jié)點和從該任務(wù)節(jié)點發(fā)出的所有有向邊。然后從新的可見的(即不含隱藏的邊和任務(wù)節(jié)點)圖中選擇所有入度為0的任務(wù)加入就緒任務(wù)集合,直至全部任務(wù)調(diào)度完畢(或任務(wù)依賴關(guān)系圖完全不可見)。本發(fā)明中以入度值為零解耦合,當(dāng)任務(wù)依賴關(guān)系圖中任務(wù)的入度值為零時就把該任務(wù)加入就緒任務(wù)集合,這樣就可以描述某個時刻可被并行調(diào)度的多個任務(wù)。當(dāng)前大多數(shù)靜態(tài)調(diào)度策略是基于隊列結(jié)構(gòu),某個任務(wù)必須在等待隊列中其前面的任務(wù)都執(zhí)行完畢且返回結(jié)果后才能被調(diào)度。即使兩個任務(wù)之間沒有依賴關(guān)系也必須等待,這樣就會引起系統(tǒng)資源的浪費,降低了資源利用率。本設(shè)計根據(jù)任務(wù)依賴關(guān)系圖動態(tài)生成入度為零的就緒任務(wù)集合,解決任務(wù)之間的強耦合,減少了任務(wù)等待時間和系統(tǒng)資源空閑,提高了系統(tǒng)利用率。(3)并行調(diào)度方法在本發(fā)明中的調(diào)度方法中,由于就緒任務(wù)集合中的任務(wù)沒有依賴關(guān)系,任務(wù)相互獨立可進行并行調(diào)度,因此就緒任務(wù)集合中的任務(wù)有極強的并行性。任務(wù)調(diào)度就可以根據(jù)就緒集合ReadyTaskSet中任務(wù)的存儲資源需求和處理節(jié)點的實時空閑存儲空間信息,對就緒任務(wù)集合中的各個任務(wù)并行發(fā)起分布式多目標(biāo)協(xié)商調(diào)度請求,調(diào)度中要考慮的目標(biāo)包括最早完成時間、通信開銷和系統(tǒng)負(fù)載均衡等。然后根據(jù)資源評價的結(jié)果,任務(wù)調(diào)度為任務(wù)選擇具有最早完成時間的節(jié)點,而不僅僅是選擇具有最早開始時間的節(jié)點。對于有依賴關(guān)系的任務(wù)來說,整個調(diào)度長度是由最后一個任務(wù)的完成時間來計算的, 因此采用最早開始時間并不能真正完全描述ー個調(diào)度策略的整體性能。通過并行調(diào)度集合中的任務(wù)來提高系統(tǒng)的并行度,實現(xiàn)了對有依賴關(guān)系的多個任務(wù)請求的更合理的調(diào)度與部
書ο在任務(wù)調(diào)度過程中用到的幾個評價定義如下定義lC(m,i,n, j)表示兩個耦合任務(wù)間的依賴數(shù)據(jù)通信開銷,即分配到處理節(jié)點 Pi的前驅(qū)任務(wù)Tm與分配到P〗的后繼任務(wù)Tn之間的數(shù)據(jù)通信開銷c如,崎*りり其中,band。.表示異構(gòu)節(jié)點間的通信速率,dmn表示任務(wù)間依賴數(shù)據(jù)的傳輸量。定義2CT(m,i,j)表示要復(fù)制兩個耦合任務(wù)中的前驅(qū)任務(wù)吋,需要的任務(wù)傳輸開銷,即把ー個前驅(qū)任務(wù)Tm從處理節(jié)點Pi傳輸?shù)絇〗的通信開銷
_8] cr( ,ゾ)=ILyI;)其中,け」表示任務(wù)Tm的程序規(guī)模大小。定義3任務(wù)Ti在處理節(jié)點Pj上的最早可能完成時間記為印ft (Ti, Pj),計算公式為印ft(Ti, Pj)=印st (Ti, Pj)+w (Ti, Pj)epsta^Pj)為任務(wù)Ti在。上的最早可能開始時間,w (Ti, P》為任務(wù)Ti在。上的執(zhí)行時間,w(Ti, Pj.) = ffi/FRj,即任務(wù)計算量/處理器的處理能力,處理器的處理能力FR用 CPU主頻與指令周期的乘積來計算,F(xiàn)R = FREQ。PU*TIME。當(dāng)系統(tǒng)中只有一個節(jié)點P〗的全部存儲資源才能滿足某個任務(wù)Ti的存儲需求Ai,并且當(dāng)時該節(jié)點上已有任務(wù)在執(zhí)行,則任務(wù)Ti就必須等待,直到為Pj分配的所有其他任務(wù)執(zhí)行完畢并釋放資源后,任務(wù)Ti才能被調(diào)度執(zhí)行。在任務(wù)Ti等待的過程中,可能出現(xiàn)。的剩余資源再次分配給其他需求資源量小的任務(wù)的情況,即剩余資源不斷地再分,這樣Ti就會因為長時間得不到資源而引起“餓死”和死鎖的現(xiàn)象。為了避免上述可能出現(xiàn)的現(xiàn)象,給出相應(yīng)的策略對任務(wù)調(diào)度進行控制。Pj上已分配的所有任務(wù)中最晚執(zhí)行完成的任務(wù)的結(jié)束時間LAFT是Ti的最早可能執(zhí)行時間。對于執(zhí)行節(jié)點Pj,采用下面的策略進行調(diào)度在就緒任務(wù)集合ReadyTaskSet中只選擇能在Ti 的LAFT時刻之前執(zhí)行完成的任務(wù)分配到P〗中,這樣當(dāng)?shù)竭_(dá)LAFT時刻時,任務(wù)Ti就可以調(diào)度到Pj上執(zhí)行,而不會被“餓死”;對于系統(tǒng)中除了 Pj以外的其他節(jié)點,即{P” P2, . . . Pj-!, PJ+1, ... Pp},仍然按照上面(定義1-定義3)的評價定義進行調(diào)度決策。通過以上策略對特殊情況下的任務(wù)進行調(diào)度控制,可以提高調(diào)度效率。(4)通信開銷的評價及控制方法調(diào)度任務(wù)時要在系統(tǒng)中選擇使其具有最早可能完成時間的節(jié)點,即任務(wù)Ti的執(zhí)行節(jié)點PTi = {Pj Iminiepft (Ti, Pj)}} 在調(diào)度決策時為了減少不必要的數(shù)據(jù)傳輸,本發(fā)明還對任務(wù)執(zhí)行開銷和任務(wù)間通信開銷(E/C)進行了綜合衡量。設(shè)依賴任務(wù)Tu和Tk間依賴數(shù)據(jù)的傳輸時間為C(u,i,k,j),傳輸前驅(qū)任務(wù)的時間為 CT (u, i,j),前驅(qū)任務(wù)在新節(jié)點上執(zhí)行的時間為w(Tu,Pj),CT (u, i,j)與w(Tu,Pj)的和稱為任務(wù)復(fù)制開銷,即 Ccopy (u, i,j) = CT (u,i,j)+w(Tu, Pj)。當(dāng) C(u,i,k,j) > Ccopy (u,i,j) 吋,則復(fù)制前驅(qū)任務(wù)Tu到P〗節(jié)點上再執(zhí)行一次,形成本地數(shù)據(jù)為其后繼任務(wù)Tk服務(wù),以減少任務(wù)間的通信開銷。若某個任務(wù)有多個前驅(qū),則選擇傳輸數(shù)據(jù)與任務(wù)復(fù)制開銷差距最大的任務(wù),即 Copytask = {Tu|max{C(u, i,k,j)-Ccopy(u, i,j)}},Pi 乒 Pj 進行任務(wù)復(fù)制通過以上幾個方面的決策,使調(diào)度滿足并行性、通信開銷和負(fù)載均衡等多方面的性能。本發(fā)明的效果和益處是通過引入任務(wù)的計算量、依賴數(shù)據(jù)傳輸量和任務(wù)對存儲資源的需求量解決異構(gòu)環(huán)境中不同節(jié)點的性能差異,描述任務(wù)在各節(jié)點上執(zhí)行性能的時域動態(tài)性,構(gòu)造了云計算中異構(gòu)環(huán)境下任務(wù)依賴關(guān)系圖;利用依賴任務(wù)入度值為零的解耦方法, 由入度值為零的任務(wù)組成了無優(yōu)先次序的就緒任務(wù)集合,集合中任一任務(wù)只要存儲資源的需求滿足即可被調(diào)度;并行調(diào)度方法同時兼顧了實時性和負(fù)載均衡,減少了基于隊列的調(diào)度方式引起的資源空閑。該解耦并行調(diào)度方法充分考慮了調(diào)度的整體性能,采用最早完成時間為評價條件,設(shè)計了防止餓死和死鎖的調(diào)度策略,是ー種調(diào)度依賴關(guān)系任務(wù)的有效和并行的方法。該方法適用于云計算等分布式異構(gòu)系統(tǒng)環(huán)境,例如網(wǎng)格計算、普適計算等分布式計算環(huán)境,為未來計算機網(wǎng)絡(luò)的應(yīng)用與發(fā)展提供技術(shù)支持。
圖1是任務(wù)模型圖。圖2是調(diào)度過程運行順序圖。圖3是圖1所示的任務(wù)模型的調(diào)度示意圖。圖中箭頭所示為任務(wù)間的數(shù)據(jù)傳輸。
具體實施例方式以下結(jié)合技術(shù)方案和附圖詳細(xì)敘述本發(fā)明的實施例。1.任務(wù)依賴關(guān)系的描述圖1所示為ー個含有10個依賴任務(wù)的服務(wù)中任務(wù)的依賴關(guān)系圖(圓圈節(jié)點代表任務(wù)T ;有向邊E表示任務(wù)間的依賴關(guān)系;方框內(nèi)數(shù)字表示任務(wù)的計算量W ;邊上數(shù)字代表任務(wù)之間的依賴數(shù)據(jù)傳輸量D ;尖括號內(nèi)表示任務(wù)的最低存儲資源需求A,圖中只給出了部分任務(wù)的最低存儲資源需求)。2.入度值為零解耦合方法任務(wù)管理根據(jù)任務(wù)依賴關(guān)系圖中任務(wù)入度值為零的條件來解耦合,并且建立就緒任務(wù)集合ReadyTaskSet來動態(tài)描述某個時刻可并行調(diào)度的任務(wù)。初始時就緒任務(wù)集合中的元素都是入度值為0的任務(wù)。以圖1為例,初始時就緒任務(wù)集合ReadyTaskSet = {TJ,即此時只有T1可以被調(diào)度。只要某個節(jié)點的可用內(nèi)存大于T1的最低內(nèi)存需求量并且可用磁盤空間大于T1的最低磁盤需求量,即emptyjiiem > Rffleffll&&empty_stor > Rsizel,且能最早完成等,Tl即可執(zhí)行。當(dāng)Tl執(zhí)行完畢并把依賴數(shù)據(jù)傳遞給后繼任務(wù)T2,T3,T4, T5, T6后,就從就緒任務(wù)集合中刪除T1,并且在圖中刪除該任務(wù)節(jié)點和其發(fā)出的所有有向邊。然后從新的關(guān)系圖中選擇所有入度為0的任務(wù),即T2,T3, T4, T5, T6加入就緒任務(wù)集合,ReadyTaskSet = {T2, T3, T4, T5, T6I。此時只要節(jié)點能最早完成且存儲資源滿足任務(wù)要求,這五個任務(wù)即可同時執(zhí)行。同理若T3執(zhí)行完畢,就把T7加入就緒任務(wù)集合,而不論其余任務(wù)節(jié)點T2,T4, T5, T6是否執(zhí)行完畢。整個過程具有具有極強的并行性和較高的資源利用率。3.調(diào)度方法系統(tǒng)中每個節(jié)點的空閑內(nèi)存容量、空閑磁盤容量稱為該節(jié)點的實時存儲資源信息,即RS = <empty_mem,empty_stor>0每當(dāng)任務(wù)請求或釋放資源后要實時更新節(jié)點存儲資源RS = RS+(-l)k*Ai,其中當(dāng)有任務(wù)Ai申請?彳的可用存儲資源即任務(wù)到達(dá)第j 個節(jié)點吋,k= 1 ;當(dāng)任務(wù)完成釋放存儲資源吋,k = 0。這樣就很好地表現(xiàn)了節(jié)點資源的動態(tài)性變化,為調(diào)度過程提供了可靠、實時的資源信息。當(dāng)就緒任務(wù)集合ReadyTaskSet不為空吋,并行對就緒任務(wù)集合中的各個任務(wù)發(fā)起分布式多目標(biāo)協(xié)商調(diào)度請求。調(diào)度方法根據(jù)任務(wù)的存儲資源需求和處理節(jié)點的實時資源信息,首先選擇可以滿足某個任務(wù)Tk資源需求的若干節(jié)點PllP2,. . . Pj,然后再計算Tk在P1, P2,. . . Pj中每個節(jié)點上的最早開始時間印st(Tk, Pj)和最早完成時間印ft (Tk,Pj)。其中計算印st (Tk,Pj)吋,要對依賴數(shù)據(jù)傳輸開銷和任務(wù)復(fù)制開銷的進行比較,即對其前驅(qū)任務(wù)Tu與該任務(wù)之間的通信時間C(u,i,k,j)和把前驅(qū)任務(wù)Tu的任務(wù)復(fù)制開銷Cc。py(u,i,j)進行比較。當(dāng)C(u,i,k,j) > Ccopy (u, i,j)吋,就把Tu在Pj上重新執(zhí)行一次,以形成本地數(shù)據(jù)為Tk服務(wù),減少數(shù)據(jù)通信開銷,降低網(wǎng)絡(luò)負(fù)載。 若Tk有多個前驅(qū),則復(fù)制數(shù)據(jù)傳輸時間和任務(wù)復(fù)制開銷的差距最大的任務(wù),即Copytask = {Tu I max {C (u, i,k,j)-Ccopy (u, i,j)}}, Pi ^ P」.。這樣最早開始時間用公式印st(Tk,Pj)= max {epft (Tu,P^+miniC^, i,k,j),Ccopy (u, i,j)}}來計算,公式中 Tu 為 Tk 的前驅(qū)任務(wù),Pi 是九的執(zhí)行節(jié)點。然后計算最早完成時間印ft (T1^Pj) = epst(Tk, Pj)+w(Tk, Pj)0最后為任務(wù)Tk選擇具有最小的最早完成時間的節(jié)點,即任務(wù)Tk的執(zhí)行節(jié)點PTk= (Pj Imin {epft (Tk, Pj)}}0這樣利用該調(diào)度方法可以實現(xiàn)任務(wù)的并行執(zhí)行,提高了系統(tǒng)的并行度,實現(xiàn)了對有依賴關(guān)系的多個任務(wù)請求的更合理的調(diào)度與部署??傮w來說,整個解耦并行調(diào)度方法的具體調(diào)度過程如下首先根據(jù)任務(wù)依賴關(guān)系圖計算每個任務(wù)的入度值。建立ー個就緒任務(wù)集合,初始時就緒任務(wù)集合中的元素為入度值為零的任務(wù),即入口任務(wù)。集合中的成員為一組相互獨立的任務(wù)可進行并行調(diào)度,然后提取就緒任務(wù)集合中任務(wù)的信息進行分布式多目標(biāo)協(xié)商調(diào)度,根據(jù)系統(tǒng)資源的實時情況把任務(wù)分配到系統(tǒng)中使該任務(wù)具有最早可能完成時間的節(jié)點上。在選擇任務(wù)的執(zhí)行節(jié)點時,綜合評價多個目標(biāo)進行調(diào)度決策,包括通信代價、節(jié)點負(fù)載、任務(wù)執(zhí)行時間等。當(dāng)出現(xiàn)任務(wù)Ti 需求的存儲資源是系統(tǒng)中某個節(jié)點。所能提供的全部存儲資源,并且。上已有任務(wù)在執(zhí)行的特殊情況時,采用特殊的調(diào)度控制策略對于執(zhí)行節(jié)點Pp在就緒任務(wù)集合中只能選擇可以在當(dāng)前時刻與P〗上已分配的任務(wù)中最晚執(zhí)行結(jié)束的時間LAFT這段時間間隙中能執(zhí)行完成的任務(wù)分配到Pj上,以使任務(wù)Ti在LAFT時刻可以被調(diào)度到Pj上執(zhí)行,而不會被“餓死”; 對于系統(tǒng)中除了 P〗以外的其他節(jié)點,仍然按照上面(定義1-定義3)的評價定義進行調(diào)度決策。每實際執(zhí)行完ー個任務(wù),就把該任務(wù)從就緒任務(wù)集合中移除,并在依賴關(guān)系圖中刪除該任務(wù),并且刪除從該任務(wù)節(jié)點發(fā)出的所有有向邊(這里的刪除是指從邏輯上刪除,并不是真正地刪除任務(wù)節(jié)點或邊,而是利用標(biāo)記來標(biāo)識任務(wù)是否被調(diào)度或執(zhí)行)。然后從新的圖中選擇所有入度為零的任務(wù)加入就緒任務(wù)集合,直至所有任務(wù)調(diào)度完畢。具體調(diào)度方法的偽代碼如下所示
Begm
while (DAG is not empty) do
ReadyTaskSet (Ti) Indegree(Ti)==O);
for all tasks Ti in ReadyTaskSet;
for all processors Pj
parallel call distributed cooperation scheduling algorithm, schedule Ti to Pk where min{epft[i][k]};
RSk=RSk-Ai; //Ti arrived on Pk, acquire resources
Execute Ti on Pk;
RSk=RSk+^; //Ti finished on Pk, release resources Remove task Ti from ReadyTaskSet;
delete Ti and all edges starting from Ti in DAG; // renew DAG endwhile End針對圖1所示的任務(wù)依賴關(guān)系圖,利用本文提出的解耦并行調(diào)度方法在三個異構(gòu)節(jié)點組成的云環(huán)境中進行調(diào)度,調(diào)度結(jié)果如圖3所示。此外,模擬調(diào)度實驗表明,與典型的賺態(tài)調(diào)度算法 HEFT [Topcuoglu H, Wu M Y. Performance-effective and low-complexity tasK scneauling for Heterogeneous computing. IEEt, iransactions on Parallel and Distributed Systems. 2002,13(3) :260-274.]相比,應(yīng)用本方法的調(diào)度長度減少了 20% -30%。
權(quán)利要求
1. 一種云計算中依賴任務(wù)的解耦并行調(diào)度方法,其特征包括以下步驟(1)任務(wù)依賴關(guān)系的描述本發(fā)明提出包括計算量、依賴數(shù)據(jù)傳輸量和存儲資源需求量的依賴任務(wù)關(guān)系,任務(wù)之間的依賴關(guān)系用ー個五元組G = (T,E,W,A,D)來表示,其中包含了任務(wù)之間的關(guān)系及對系統(tǒng)存儲資源的需求,本發(fā)明要求任一任務(wù)的存儲資源需求量不可超過節(jié)點的物理最大可利用存儲空間值;元素代表的含義如下T為應(yīng)用服務(wù)的η個任務(wù)組成的集合T= IT1J2,......,TJ ;E是邊的集合E= (eiJ|0<i,j^n;i^ j);應(yīng)用服務(wù)中的任務(wù)的依賴關(guān)系定義為如果必須在Ti執(zhí)行完畢后才能運行,則從Ti到ち就存在一條有向邊eu,并且Ti是Tj的前驅(qū)任務(wù),Tj是Ti的后繼任務(wù);W為任務(wù)的計算量集合,W ={WjO < i ^ η} ;A為任務(wù)的最低存儲資源需求的集合A = (Ai I 0 < i彡η},Ai為Ti的最低存儲需求Ai = (Rffleffl, Rst。J,其中Rm為內(nèi)存空間需求量,Rstor為存儲空間需求量;D為任務(wù)之間的依賴數(shù)據(jù)傳輸量矩陣,Clij表示前驅(qū)任務(wù)Ti與后繼任務(wù)ろ之間的數(shù)據(jù)傳輸量;(2)解耦合方法本發(fā)明中的解耦合方法的核心是入度值為零,即任務(wù)可被調(diào)度的必要條件是在依賴關(guān)系圖中某節(jié)點的入度值為零;對任務(wù)依賴關(guān)系圖根據(jù)圖中節(jié)點入度值為零的條件來解耦合,并且建立ー個就緒任務(wù)集合ReadyTaskSet = (Ti | 0 < i ^ η},來動態(tài)描述某個時刻可并行調(diào)度的任務(wù);本發(fā)明的就緒集合定義為某個時刻沒有前驅(qū)任務(wù)或直接前驅(qū)任務(wù)都已經(jīng)完成的任務(wù)組成的集體, 即入度值為零;集合中的任務(wù),其優(yōu)先級是相同的,不分先后,任一成員只要所需的存儲資源滿足,即可被調(diào)度;初始時就緒任務(wù)集合中的元素都是入度值為0的任務(wù),當(dāng)集合中的某個任務(wù)執(zhí)行完畢并把依賴數(shù)據(jù)傳遞給其后繼任務(wù)后,就從就緒任務(wù)集合中刪除該任務(wù),并且隱藏(或邏輯刪除)依賴關(guān)系圖該任務(wù)節(jié)點和從該任務(wù)節(jié)點發(fā)出的所有有向邊;然后從新的可見的(即不含隱藏的邊和任務(wù)節(jié)點)圖中選擇所有入度為0的任務(wù)加入就緒任務(wù)集合,直至全部任務(wù)調(diào)度完畢或任務(wù)依賴關(guān)系完全不可見;(3)并行調(diào)度方法定義lC(m,i,n,j)表示兩個耦合任務(wù)間的依賴數(shù)據(jù)通信開銷,即分配到處理節(jié)點Pi的前驅(qū)任務(wù)Tm與分配到P〗的后繼任務(wù)Tn之間的數(shù)據(jù)通信開銷
全文摘要
本發(fā)明屬于云計算應(yīng)用領(lǐng)域,涉及到云服務(wù)中任務(wù)依賴關(guān)系描述、解耦合和并行調(diào)度等方法。本發(fā)明提出了依賴任務(wù)關(guān)系,并構(gòu)建了依賴任務(wù)的解耦并行調(diào)度方法。該方法首先以入度為零對任務(wù)依賴關(guān)系進行解耦來構(gòu)建就緒任務(wù)的集合,動態(tài)描述某個時刻可并行調(diào)度的任務(wù)。然后根據(jù)實時資源評價,對就緒任務(wù)的集合進行分布式多目標(biāo)調(diào)度,有效地提高調(diào)度并行性。在任務(wù)分配時還考慮任務(wù)執(zhí)行和任務(wù)間通信開銷(E/C),來決定是否用任務(wù)復(fù)制來代替其依賴數(shù)據(jù)傳輸,以減少通信開銷。整個調(diào)度方法可以對就緒任務(wù)集合中多個任務(wù)進行動態(tài)并行調(diào)度,較好地兼顧實時性和并行性、通信開銷和負(fù)載均衡等性能指標(biāo),通過動態(tài)調(diào)度策略有效地提高系統(tǒng)的整體性能。
文檔編號H04L29/08GK102591712SQ20111045419
公開日2012年7月18日 申請日期2011年12月30日 優(yōu)先權(quán)日2011年12月30日
發(fā)明者王占杰 申請人:大連理工大學(xué)