一種基于工作流吞吐量最大化的工作流調(diào)度方法
【專利摘要】本發(fā)明涉及一種基于工作流吞吐量最大化的工作流調(diào)度方法,包括:用戶提交具有執(zhí)行期限約束的工作流;將工作流轉(zhuǎn)換為有向無環(huán)任務(wù)模型圖DAG;進(jìn)行DAG任務(wù)結(jié)點調(diào)度;輸出工作流吞吐量最大化調(diào)度方案,并將其返回給用戶;將用戶提交的工作流映射到具體的計算資源上執(zhí)行,完成工作流調(diào)度。本發(fā)明所述方法考慮多個工作流在異構(gòu)分布式計算資源上調(diào)度,并使工作流完成的數(shù)目盡可能多,計算資源利用盡可能充分,克服了現(xiàn)有EDF方法不能根據(jù)DAG的不同特征確定調(diào)度順序的缺點,大大提高工作流調(diào)度系統(tǒng)的效率,減少了由于沒有在規(guī)定時間內(nèi)完成計算而帶來的損失,提高系統(tǒng)的用戶體驗。
【專利說明】一種基于工作流吞吐量最大化的工作流調(diào)度方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及工作流調(diào)度【技術(shù)領(lǐng)域】,尤其涉及一種具有執(zhí)行期限約束的使工作流吞吐量最大化的工作流調(diào)度方法。
【背景技術(shù)】
[0002]工作流可以看作由多個基本任務(wù)組成的集合,某些任務(wù)之間具有先后順序和數(shù)據(jù)傳遞依賴關(guān)系。工作流調(diào)度技術(shù)是異構(gòu)分布式計算領(lǐng)域中的關(guān)鍵技術(shù),它直接影響到異構(gòu)分布式計算環(huán)境下工作流調(diào)度系統(tǒng)的運行效率和異構(gòu)分布式計算資源的利用率。[0003]目前有關(guān)異構(gòu)分布式計算環(huán)境下的多DAG混合調(diào)度的研究文獻(xiàn)分別在執(zhí)行時間最小化、公平性最大化、吞吐量最大化或資源分配優(yōu)化等方面已經(jīng)取得了一些進(jìn)展。但在很多情況下,用戶根據(jù)應(yīng)用需要可以進(jìn)一步對DAG執(zhí)行的有關(guān)屬性和限制條件等進(jìn)行描述及定義,而期限約束是其中重要的限制條件之一。因此當(dāng)一個DAG應(yīng)用有了用戶定義的期限約束,其調(diào)度執(zhí)行就不再以執(zhí)行時間最小化為目標(biāo),而只需要在用戶指定的期限之前完成即可。解決具有期限約束的多DAG共享資源調(diào)度的吞吐量最大化問題,將會對提高多DAG應(yīng)用調(diào)度的吞吐率、提高資源利用率和節(jié)省DAG應(yīng)用執(zhí)行的費用等方面有重要意義。
[0004]著名學(xué)者Theodore P.Baker 發(fā)表在 IEEE 上的文章 An analysis of EDFschedulability on a multiprocessor提出的解決具有期限約束的多個工作流調(diào)度問題的EDF (Earliest Deadline First)方法,其基本思想是任務(wù)的期限約束越早,其任務(wù)將會越早被調(diào)度,又如學(xué)者georgios i^pstavrinides helen d,在2010年發(fā)表于journal
of Systems and Software 上的 Scheduling multiple task graphs with end-to-enddeadlines in distributed real-time systems utilizing imprecise computations 就是借鑒了 EDF的思想,將每個DAG的期限約束作為優(yōu)先級值來確定多個DAG之間任務(wù)調(diào)度的優(yōu)先級關(guān)系,雖然采取這種方法在多個DAG的結(jié)構(gòu)和任務(wù)量大小相近的情況下會有較好的效果,但是在很多情況下,DAG期限約束的絕對值不足以反應(yīng)多個結(jié)構(gòu)不同DAG之間的緊急程度關(guān)系。例如,A和B兩個DAG共享一定數(shù)量的一組資源同時進(jìn)行混合調(diào)度,其中A的期限約束(設(shè)為DA)較為緊急,接近其Makespan (在某個時間最小化算法下的對DAG單獨進(jìn)行調(diào)度的時間長度,稱為Makespan),而B的期限約束(設(shè)為DB)大約為其Makespan的2倍。但如果B的任務(wù)量較小,很有可能會出現(xiàn)DB〈DA的情況,按照EDF方法,A的任務(wù)只有在B中所有任務(wù)優(yōu)先被調(diào)度完畢后才能被調(diào)度,那么A將不能在DA之前完成。
【發(fā)明內(nèi)容】
[0005]針對現(xiàn)有技術(shù)中存在的上述問題,本發(fā)明提出一種在工作流調(diào)度系統(tǒng)中使用的具有執(zhí)行期限約束的工作流吞吐量最大化的方法,即考慮多個工作流在異構(gòu)分布式計算資源上調(diào)度,并使工作流完成的數(shù)目盡可能多,計算資源利用盡可能充分,這樣就能夠大大提高工作流調(diào)度系統(tǒng)的效率,減少由于沒有在規(guī)定時間內(nèi)完成計算而帶來的損失,提高系統(tǒng)的用戶體驗。[0006]為了達(dá)到目的,本發(fā)明采用以下技術(shù)方案。
[0007]—種基于工作流吞吐量最大化的工作流調(diào)度方法,包括以下步驟:
[0008]步驟1,用戶提交具有執(zhí)行期限約束的工作流。
[0009]多個用戶向工作流調(diào)度系統(tǒng)提交具有執(zhí)行期限約束的的工作流,要求該工作流必須在規(guī)定的時間內(nèi)完成。如果工作流不能在規(guī)定時間內(nèi)完成,反饋信息給用戶,用戶可以根據(jù)反饋信息選擇下一步活動;如果工作流能夠在規(guī)定的時間內(nèi)完成,則將工作流的各個任務(wù)映射到異構(gòu)分布式計算資源上調(diào)度執(zhí)行。
[0010]步驟2,將工作流轉(zhuǎn)換為有向無環(huán)任務(wù)模型圖DAG (Directed Acyclic Graph)。
[0011]當(dāng)多個工作流同時進(jìn)入到調(diào)度系統(tǒng)時,如果要對工作流進(jìn)行調(diào)度,就必須對工作流進(jìn)行預(yù)處理,將工作流轉(zhuǎn)換為能夠被識別和處理的DAG任務(wù)模型圖。具體方法如下。
[0012]步驟2.1,對每一個用戶提交的工作流進(jìn)行預(yù)處理。
[0013](I)用G= (V,E)表示DAG任務(wù)模型圖。
[0014]DAG任務(wù)模型圖如圖2所示,各個參數(shù)的含義如下:
[0015]G= (V, E)中的V和E:V表示V個任務(wù)結(jié)點的集合,每個結(jié)點代表工作流的一個任務(wù),稱為任務(wù)結(jié)點;E表示e條有向邊的集合,每條邊代表任務(wù)結(jié)點之間的先后順序和數(shù)據(jù)傳遞依賴關(guān)系。DAG任務(wù)模型圖由V個任務(wù)結(jié)點和e條有向邊構(gòu)成。
[0016]有向邊:DAG任務(wù)模型圖的任意一條有向邊記為Oii, rij), Iii是有向邊的尾任務(wù)結(jié)點,Iij是有向邊的頭任務(wù)結(jié)點,i和j分別表示任務(wù)結(jié)點Iii和r^_在DAG任務(wù)模型圖中的編號,且滿足i〈j。有向邊(叫,Iij)表示任務(wù)結(jié)點Iii和η」之間的先后順序和數(shù)據(jù)傳遞依賴關(guān)系,即任務(wù)結(jié)點r^_必須在任務(wù)結(jié)點Hi的輸出數(shù)據(jù)完整送達(dá)以后才能開始執(zhí)行。具體結(jié)構(gòu)參見圖2。
[0017]有向邊的權(quán)重值:任務(wù)結(jié)點之間的數(shù)據(jù)傳遞的時間用有向邊的權(quán)重值表示。當(dāng)同一個DAG任務(wù)模型圖的不同任務(wù)結(jié)點Iii和r^_在同一個計算資源上執(zhí)行時,任務(wù)結(jié)點Iii的輸出數(shù)據(jù)不經(jīng)過網(wǎng)絡(luò)傳輸就能被任務(wù)結(jié)點Iij接收,有向邊Oii, Iij)的權(quán)重值為O ;當(dāng)Iii和Hj在不同的計算資源上執(zhí)行時,由于不同的計算資源之間是通過網(wǎng)絡(luò)進(jìn)行連接,因此有向邊Ον Iij)的權(quán)重值不為0,如圖2中(n3,n7)的權(quán)重值為23,即它們之間的數(shù)據(jù)傳輸時間是23。
[0018]出入口結(jié)點:在DAG任務(wù)模型圖中,沒有父結(jié)點的結(jié)點稱為DAG入口結(jié)點,沒有子結(jié)點的結(jié)點稱為DAG出口結(jié)點,每個DAG任務(wù)模型圖有且僅有一個入口結(jié)點和一個出口結(jié)點。
[0019](2)制作表示某個任務(wù)結(jié)點在某計算資源上的計算時間二維表W。
[0020]對每個任務(wù)進(jìn)行分類,對每一類固定類型的任務(wù)結(jié)點,根據(jù)以往的經(jīng)驗值可以得出該任務(wù)結(jié)點在某計算資源上需要多少計算時間,從而得到一個nXm的二維表W,二維表的值表示某個任務(wù)結(jié)點在某計算資源上的計算時間,η為該DAG任務(wù)模型圖中任務(wù)結(jié)點的數(shù)量,m為用于執(zhí)行工作流計算的異構(gòu)分布式計算資源的數(shù)量。
[0021]所述異構(gòu)分布式計算資源對同一個任務(wù)結(jié)點的計算時間是不相同的,因此,對同一個任務(wù)結(jié)點,在不同的計算資源上有一個不同的計算時間。
[0022]具體的二維表W可以參見表1,表W中的W1, !=14,表示任務(wù)結(jié)點Ii1在計算資源M1上計算需要14個單位的時間,這里的時間單位可由系統(tǒng)設(shè)定為小時,分鐘,或秒,但必須統(tǒng)O
[0023]表1任務(wù)結(jié)點在計算資源上的計算時間表
[0024]
【權(quán)利要求】
1.一種基于工作流吞吐量最大化的工作流調(diào)度方法,其特征在于,考慮多個工作流在異構(gòu)分布式計算資源上調(diào)度,通過執(zhí)行期限約束的工作流吞吐量最大化設(shè)計,充分利用計算資源,從而提高工作流的調(diào)度效率;所述方法包括以下步驟: 步驟1,用戶提交具有執(zhí)行期限約束的工作流; 多個用戶向工作流調(diào)度系統(tǒng)提交具有執(zhí)行期限約束的的工作流,要求該工作流必須在規(guī)定的時間內(nèi)完成;如果工作流不能在規(guī)定時間內(nèi)完成,反饋信息給用戶,用戶根據(jù)反饋信息選擇下一步活動;如果工作流能夠在規(guī)定的時間內(nèi)完成,則將工作流的各個任務(wù)映射到異構(gòu)分布式計算資源上調(diào)度執(zhí)行; 步驟2,將工作流轉(zhuǎn)換為有向無環(huán)任務(wù)模型圖DAG ; 步驟2.1,對每一個用戶提交的工作流進(jìn)行預(yù)處理; (1)用G=(V,E)表示DAG任務(wù)模型圖; DAG任務(wù)模型圖中各個參數(shù)的含義如下: G=(V7E)中的V和E:V表示V個任務(wù)結(jié)點的集合,每個結(jié)點代表工作流的一個任務(wù),稱為任務(wù)結(jié)點;E表示e條有向邊的集合,每條邊代表任務(wù)結(jié)點之間的先后順序和數(shù)據(jù)傳遞依賴關(guān)系;DAG任務(wù)模型圖由V個任務(wù)結(jié)點和e條有向邊構(gòu)成; 有向邊:DAG任務(wù)模型圖的任意一條有向邊記為Oii, Iij),Hi是有向邊的尾任務(wù)結(jié)點,是有向邊的頭任務(wù)結(jié)點,i和j分別表示任務(wù)結(jié)點Iii和r^_在DAG任務(wù)模型圖中的編號,且滿足i〈j ;有向邊(I^nj)表示任務(wù)結(jié)點IijPnj之間的先后順序和數(shù)據(jù)傳遞依賴關(guān)系,即任務(wù)結(jié)點必須在任務(wù)結(jié)點Ili的輸出數(shù)據(jù)完整送達(dá)以后才能開始執(zhí)行; 有向邊的權(quán)重值:任務(wù)結(jié)點之間的數(shù)據(jù)傳遞的時間用有向邊的權(quán)重值表示;當(dāng)同一個DAG任務(wù)模型圖的不同任務(wù)結(jié)點Iii和r^_在同一個計算資源上執(zhí)行時,任務(wù)結(jié)點ni的輸出數(shù)據(jù)不經(jīng)過網(wǎng)絡(luò)傳輸就能被任務(wù)結(jié)點Iij接收,有向邊(I^nj)的權(quán)重值為O ;當(dāng)1^和1^_在不同的計算資源上執(zhí)行時,由于不同的計算資源之間是通過網(wǎng)絡(luò)進(jìn)行連接,因此有向邊Oii, Iij)的權(quán)重值不為O ; 出入口結(jié)點:在DAG任務(wù)模型圖中,沒有父結(jié)點的結(jié)點稱為DAG入口結(jié)點,沒有子結(jié)點的結(jié)點稱為DAG出口結(jié)點,每個DAG任務(wù)模型圖有且僅有一個入口結(jié)點和一個出口結(jié)點; (2)制作表示某個任務(wù)結(jié)點在某計算資源上的計算時間二維表W; 對每個任務(wù)進(jìn)行分類,對每一類固定類型的任務(wù)結(jié)點,根據(jù)以往的經(jīng)驗值可以得出該任務(wù)結(jié)點在某計算資源上需要多少計算時間,從而得到一個nXm的二維表W,二維表的值表示某個任務(wù)結(jié)點在某計算資源上的計算時間,η為該DAG任務(wù)模型圖中任務(wù)結(jié)點的數(shù)量,m為用于執(zhí)行工作流計算的異構(gòu)分布式計算資源的數(shù)量; 所述異構(gòu)分布式計算資源對同一個任務(wù)結(jié)點的計算時間是不相同的,因此,對同一個任務(wù)結(jié)點,在不同的計算資源上有一個不同的計算時間; 步驟2.2,計算DAG任務(wù)模型圖中每個任務(wù)結(jié)點的向上rank值,公式如下:
2.根據(jù)權(quán)利要求1所述的一種基于工作流吞吐量最大化的工作流調(diào)度方法,其特征在于,所述步驟3.2對所有DAG任務(wù)結(jié)點進(jìn)行調(diào)度的方法還包括以下步驟: (O如果所有的DAG調(diào)度完畢,則結(jié)束本次調(diào)度;否則,轉(zhuǎn)步驟(2); (2)計算Gi的相對嚴(yán)格程度值r,公式如下:
【文檔編號】G06F9/46GK103838627SQ201410101274
【公開日】2014年6月4日 申請日期:2014年3月18日 優(yōu)先權(quán)日:2014年3月18日
【發(fā)明者】謝軍奇, 徐秀杰, 田國忠, 肖創(chuàng)柏 申請人:北京工業(yè)大學(xué)