一種云計算環(huán)境中的工作流系統(tǒng)資源調(diào)度方法
【專利摘要】本發(fā)明公開了一種云計算環(huán)境中的工作流系統(tǒng)資源調(diào)度方法,用于對一工作流中的若干任務(wù)進行調(diào)度,包括如下步驟:步驟S1:對工作流中的所有任務(wù)進行分組;步驟S2:將工作流的最晚完成時間分別分配到每個任務(wù)組上;并計算每個任務(wù)組的最晚完成時間;步驟S3:對所有任務(wù)組進行拓?fù)渑判?;步驟S4:將任務(wù)組按拓?fù)渑判蛑涤筛叩降鸵来芜\行;將每個任務(wù)安排在費用最低的云服務(wù)虛擬機和時段。本發(fā)明的有益效果在于:利用動態(tài)規(guī)劃算法,能找到工作流中串行部分的最優(yōu)解,而相比基于平均價格的算法,能更合理的把任務(wù)安排到價格較低的時段和云服務(wù)虛擬機,從而使得總體價格更加便宜。
【專利說明】一種云計算環(huán)境中的工作流系統(tǒng)資源調(diào)度方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于云工作流系統(tǒng)【技術(shù)領(lǐng)域】,具體涉及一種云計算環(huán)境中的工作流系統(tǒng)資源調(diào)度方法。
【背景技術(shù)】
[0002]近年來,云計算已經(jīng)成為一種新的大規(guī)模分布式計算方式,它提供了一種動態(tài)的可擴展的服務(wù)方式。在支持云計算的服務(wù)中,用戶只需要在必要的時候調(diào)用相應(yīng)的服務(wù),并且只需對他們使用的部分進行付款。
[0003]云計算環(huán)境中的工作流系統(tǒng)不僅能發(fā)揮更大的效用,也能為云計算服務(wù)提供便利。一方面,大量的云服務(wù)提供商可以為用戶提供比集群更加龐大的工作流執(zhí)行能力,另一方面,種類繁多的云服務(wù)也能通過工作流組織起來,便于用戶設(shè)計運行滿足特定需求的工作流流程。
[0004]由于在云計算環(huán)境中的工作流同之前的網(wǎng)格工作流等相比,運行環(huán)境有了巨大變化,用戶對于工作流系統(tǒng)的效率、安全性等方面也有了更高的要求,為了滿足用戶的不同需求,傳統(tǒng)工作流的一些典型問題需要被重新思考,例如調(diào)度問題,云資源管理問題等。云工作流中包含的所有任務(wù)都是在若干云服務(wù)虛擬機上運行的,不同的任務(wù)在不同的云服務(wù)虛擬機上的運行費用,以及在不同運行時段的運行費用都是不同的,有必要對工作流中的任務(wù)作出更合理的調(diào)度,使云工作流在使用者期待的結(jié)束時間之前運行結(jié)束,且盡量降低使用者的開銷。
【發(fā)明內(nèi)容】
[0005]為了克服現(xiàn)有技術(shù)中存在的缺陷云工作流資源調(diào)度不合理的缺陷,本發(fā)明提供一種能夠降低使用者的開銷的云計算環(huán)境中的工作流系統(tǒng)資源調(diào)度方法,具體的技術(shù)方案如下:
[0006]一種云計算環(huán)境中的工作流系統(tǒng)資源調(diào)度方法,用于對一工作流中的若干任務(wù)進行調(diào)度,工作流在若干云服務(wù)虛擬機上運行,每個任務(wù)可在一臺云服務(wù)虛擬機上運行,該調(diào)度方法包括如下步驟:
[0007]步驟S1:對工作流中的所有任務(wù)進行分組,獲得若干任務(wù)組,每個任務(wù)組中包括一個或多個串行的任務(wù);
[0008]步驟S2:將工作流的最晚完成時間分別分配到每個任務(wù)組上,使得每個任務(wù)組的最晚完成時間不晚于工作流的最晚完成時間;分別計算工作流中每個任務(wù)的最晚完成時間,再經(jīng)計算得到每個任務(wù)組的最晚完成時間;
[0009]步驟S3:對所有任務(wù)組進行拓?fù)渑判颍嬎忝總€任務(wù)組的拓?fù)渑判蛑?,根?jù)拓?fù)渑判蛑祵λ腥蝿?wù)組進行降序排序;
[0010]步驟S4:將任務(wù)組按拓?fù)渑判蛑涤筛叩降鸵来芜\行;依次計算每個任務(wù)組中每個任務(wù)在每個云服務(wù)虛擬機上的最低運行費用,將每個任務(wù)安排在費用最低的云服務(wù)虛擬機和時段。
[0011]作為優(yōu)化方案,步驟SI進一步包括,對所有任務(wù)進行分組的方法為:
[0012]對工作流中的所有任務(wù)進行遍歷;對于正在訪問的當(dāng)前任務(wù),若當(dāng)前任務(wù)僅有一個前繼任務(wù),且前繼任務(wù)僅有當(dāng)前任務(wù)一個后繼任務(wù),則將前繼任務(wù)和當(dāng)前任務(wù)加入同一任務(wù)組,否則加入不同的任務(wù)組。
[0013]作為優(yōu)化方案,步驟S2進一步包括,工作流中每個任務(wù)的最晚完成時間的計算方法如下:
[0014]由工作流中出度為零的任務(wù)向入度為零的任務(wù)依次進行推導(dǎo);對于出度為零的任務(wù),最晚結(jié)束時間為整個工作流的最晚結(jié)束時間;對于其他任務(wù),最晚結(jié)束時間為其他任務(wù)的后繼任務(wù)中,需要最早開始的后繼任務(wù)的開始時間;其中,出度為零是指沒有后繼任務(wù),入度為零是指沒有前繼任務(wù)。
[0015]作為優(yōu)化方案,步驟S3進一步包括,任務(wù)組的拓?fù)渑判蛑档挠嬎惴椒ㄈ缦?
[0016]步驟S31,依次計算當(dāng)前任務(wù)組中的各任務(wù)的平均運行時間,即各任務(wù)在所有機器上的平均運行時間:
[0017]步驟S32,依次計算當(dāng)前任務(wù)組中的各任務(wù)的平均傳輸時間,即各任務(wù)向?qū)?yīng)的后繼任務(wù)傳輸數(shù)據(jù)所需的平均時間;
[0018]步驟S33,計算當(dāng)前任務(wù)組的平均運行時間,即所有任務(wù)的平均運行時間加所有任務(wù)的平均傳輸時間的總和的平均值;
[0019]步驟S34,計算當(dāng)前任務(wù)組的平均傳輸時間,即當(dāng)前任務(wù)組中最后一個任務(wù)和某一后繼任務(wù)組中第一個任務(wù)之間的數(shù)據(jù)傳輸平均時間;
[0020]步驟S35,若當(dāng)前任務(wù)組中包含出度為零的任務(wù),則當(dāng)前任務(wù)組的拓?fù)渑判蛑导礊楫?dāng)前任務(wù)組的平均運行時間;否則,當(dāng)前任務(wù)組的拓?fù)渑判蛑挡粌H取決于當(dāng)前任務(wù)組的平均運行時間,還取決于當(dāng)前任務(wù)組的平均傳輸時間以及后繼任務(wù)組的拓?fù)渑判蛑怠?br>
[0021]作為優(yōu)化方案,步驟S4進一步包括,
[0022]對于某一任務(wù)組中的每個任務(wù),計算每個任務(wù)在截止時間內(nèi)在所有云服務(wù)虛擬機上的最低費用,把每個任務(wù)在截止時間內(nèi)安排到相應(yīng)的云服務(wù)虛擬機上,使整個任務(wù)組的費用最低。
[0023]與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果:
[0024]本發(fā)明利用動態(tài)規(guī)劃算法,能找到工作流中串行部分的最優(yōu)解,而相比基于平均價格的算法,能更合理的把任務(wù)安排到價格較低的時段和云服務(wù)虛擬機,從而使得總體價格更加便宜。本發(fā)明的創(chuàng)新點在于,考慮了價格變化的虛擬機服務(wù),而不是價格固定不變的虛擬機服務(wù),對于虛擬機的信息考慮更加全面,從而得出的調(diào)度結(jié)果也更加符合用戶對于價格的要求。
【專利附圖】
【附圖說明】
[0025]圖1為本發(fā)明的方法流程圖。
【具體實施方式】
[0026]下面結(jié)合附圖以實施例的方式詳細描述本發(fā)明。[0027]實施例1:
[0028]如圖1所示,本發(fā)明提供一種云計算環(huán)境中的工作流系統(tǒng)資源調(diào)度方法,用于對一工作流中的若干任務(wù)進行調(diào)度,工作流在若干云服務(wù)虛擬機上運行,每個任務(wù)可在一臺云服務(wù)虛擬機上運行。[0029]為了更好地說明本發(fā)明,首先設(shè)置一些概念:
[0030]ET(ti, PCj) (Execution Time):任務(wù)ti在云服務(wù)虛擬機PCj上的運行時間,其中i=0, 1,2,3...,j=0,1,2,3...;
[0031]TT(ti,PCm,tj,PCn) (Transmission Time):在云服務(wù)虛擬機 PCm上運行的任務(wù) ti向在云服務(wù)虛擬機PCn上運行的后繼任務(wù)tj傳輸數(shù)據(jù)所需的時間,其中,m=0, 1,2,3...,n=0,1,2,3...;
[0032]RFT(tp) (Real Finish Time):任務(wù)tp經(jīng)過調(diào)度之后,根據(jù)具體調(diào)度機器計算得出的任務(wù)tp的真實結(jié)束時間,其中,p=0, 1,2, 3...;
[0033]PC(tp):任務(wù)tp經(jīng)過調(diào)度所安排的云服務(wù)虛擬機;
[0034]Tentry:所有入度為零的任務(wù)的集合,其中,入度為零是指沒有前繼任務(wù);
[0035]Texit:所有出度為零的任務(wù)的集合,其中,出度為零是指沒有后繼任務(wù);
[0036]EFT (ti;PCj) (Earliest Finish Time):任務(wù)在云服務(wù)虛擬機PCj上的最早結(jié)束時間;計算EFTUpPCj)的前提是任務(wù)\的前繼任務(wù)都已經(jīng)完成調(diào)度了 ;
[0037]如果任務(wù)\沒有前繼任務(wù),即任務(wù)\的入度為零,則該任務(wù)的最早結(jié)束時間就是任務(wù)\在該云服務(wù)虛擬機PCj上的運行時間,如式(I)所示:
[0038]EFT(t^Cj) =ET(ti; PCj),\ e Tentry(I)
[0039]如果任務(wù)t有前繼任務(wù),任務(wù)t的最早結(jié)束時間不僅取決于任務(wù)\在云服務(wù)虛擬機PCj上的運行時間,還取決于任務(wù)ti的前繼任務(wù)之中,運行結(jié)束的時間與將數(shù)據(jù)傳遞到ti的時間的和,如式(2)所示:
[0040]
【權(quán)利要求】
1.一種云計算環(huán)境中的工作流系統(tǒng)資源調(diào)度方法,用于對一工作流中的若干任務(wù)進行調(diào)度,所述工作流在若干云服務(wù)虛擬機上運行,每個所述任務(wù)可在一臺云服務(wù)虛擬機上運行,其特征在于,包括如下步驟: 步驟S1:對所述工作流中的所有所述任務(wù)進行分組,獲得若干任務(wù)組,每個所述任務(wù)組中包括一個或多個串行的所述任務(wù); 步驟S2:將所述工作流的最晚完成時間分別分配到每個所述任務(wù)組上,使得每個所述任務(wù)組的最晚完成時間不晚于所述工作流的最晚完成時間;分別計算所述工作流中每個任務(wù)的最晚完成時間,再經(jīng)計算得到每個所述任務(wù)組的最晚完成時間; 步驟S3:對所有所述任務(wù)組進行拓?fù)渑判?,計算每個所述任務(wù)組的拓?fù)渑判蛑?,根?jù)拓?fù)渑判蛑祵λ兴鋈蝿?wù)組進行降序排序; 步驟S4:將所述任務(wù)組按拓?fù)渑判蛑涤筛叩降鸵来芜\行;依次計算每個所述任務(wù)組中每個所述任務(wù)在每個云服務(wù)虛擬機上的最低運行費用,將每個所述任務(wù)安排在費用最低的云服務(wù)虛擬機和時段。
2.根據(jù)權(quán)利要求1所述的一種云計算環(huán)境中的工作流系統(tǒng)資源調(diào)度方法,其特征在于,所述步驟SI進一步包括,對所有所述任務(wù)進行分組的方法為: 對所述工作流中的所有所述任務(wù)進行遍歷;對于正在訪問的當(dāng)前任務(wù),若所述當(dāng)前任務(wù)僅有一個前繼任務(wù),且所述前繼任務(wù)僅有所述當(dāng)前任務(wù)一個后繼任務(wù),則將所述前繼任務(wù)和當(dāng)前任務(wù)加入同一任務(wù)組,否則加入不同的任務(wù)組。
3.根據(jù)權(quán)利要求2所述的一種云計算環(huán)境中的工作流系統(tǒng)資源調(diào)度方法,其特征在于,所述步驟S2進一步包括,所述工作流中每個任務(wù)的最晚完成時間的計算方法如下: 由工作流中出度為零的任務(wù)向入度為零的任務(wù)依次進行推導(dǎo);對于出度為零的任務(wù),最晚結(jié)束時間為整個工作流的最晚結(jié)束時間;對于其他任務(wù),最晚結(jié)束時間為所述其他任務(wù)的后繼任務(wù)中,需要最早開始的后繼任務(wù)的開始時間;其中,出度為零是指沒有后繼任務(wù),入度為零是指沒有前繼任務(wù)。
4.根據(jù)權(quán)利要求3所述的一種云計算環(huán)境中的工作流系統(tǒng)資源調(diào)度方法,其特征在于,所述步驟S3進一步包括,任務(wù)組的拓?fù)渑判蛑档挠嬎惴椒ㄈ缦? 步驟S31,依次計算當(dāng)前任務(wù)組中的各任務(wù)的平均運行時間,即各任務(wù)在所有機器上的平均運行時間: 步驟S32,依次計算當(dāng)前任務(wù)組中的各任務(wù)的平均傳輸時間,即各任務(wù)向?qū)?yīng)的后繼任務(wù)傳輸數(shù)據(jù)所需的平均時間; 步驟S33,計算當(dāng)前任務(wù)組的平均運行時間,即所有任務(wù)的平均運行時間加所有任務(wù)的平均傳輸時間的總和的平均值; 步驟S34,計算當(dāng)前任務(wù)組的平均傳輸時間,即當(dāng)前任務(wù)組中最后一個任務(wù)和某一后繼任務(wù)組中第一個任務(wù)之間的數(shù)據(jù)傳輸平均時間; 步驟S35,若當(dāng)前任務(wù)組中包含出度為零的任務(wù),則當(dāng)前任務(wù)組的拓?fù)渑判蛑导礊楫?dāng)前任務(wù)組的平均運行時間;否則,當(dāng)前任務(wù)組的拓?fù)渑判蛑挡粌H取決于當(dāng)前任務(wù)組的平均運行時間,還取決于當(dāng)前任務(wù)組的平均傳輸時間以及后繼任務(wù)組的拓?fù)渑判蛑怠?br>
5.根據(jù)權(quán)利要求4所述的一種云計算環(huán)境中的工作流系統(tǒng)資源調(diào)度方法,其特征在于,所述步驟S4進一步包括,對于某一任務(wù)組中的每個任務(wù),計算每個任務(wù)在截止時間內(nèi)在所有云服務(wù)虛擬機上的最低費用,把每個任務(wù)在截止時間內(nèi)安排到相應(yīng)的云服務(wù)虛擬機上,使整個任務(wù)組的費用最低。.
【文檔編號】G06F9/50GK103473122SQ201310370118
【公開日】2013年12月25日 申請日期:2013年8月21日 優(yōu)先權(quán)日:2013年8月21日
【發(fā)明者】曹健, 鄭敏, 姚艷 申請人:上海交通大學(xué)