多云環(huán)境下帶截止日期約束工作流的基于代價(jià)驅(qū)動(dòng)調(diào)度方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于并行和分布式高性能計(jì)算領(lǐng)域的工作流調(diào)度方法,具體涉及一種多云 環(huán)境下帶截止日期約束工作流基于代價(jià)驅(qū)動(dòng)和局部關(guān)鍵路徑特征的調(diào)度方法。
【背景技術(shù)】
[0002] 近年來(lái)隨著云計(jì)算技術(shù)的普及,當(dāng)前云市場(chǎng)上出現(xiàn)了許多不同的云服務(wù)提供商, 如6〇61^(1,41]^2〇11£02和1^1〇1^口3〇6。根據(jù)具體服務(wù)提供內(nèi)容的差異,服務(wù)類型可分為 : 基礎(chǔ)設(shè)施即服務(wù)(Infrastructure as a Service, IaaS),軟件即服務(wù)(Software as a Service, SaaS)和平臺(tái)即服務(wù)(Platform as a Service, PaaS)。終端用戶通過(guò)與服務(wù)提供 商之間訂立的服務(wù)等級(jí)協(xié)議(Service Level Agreements, SLAs)來(lái)保證自身應(yīng)用的服務(wù)質(zhì) 量,并以按需付費(fèi)的方式支付相應(yīng)的執(zhí)行費(fèi)用。云計(jì)算強(qiáng)大的并行計(jì)算能力,使許多科研工 作者著手研究大規(guī)??茖W(xué)工作流在云計(jì)算環(huán)境中的優(yōu)化調(diào)度問(wèn)題,云平臺(tái)中工作流調(diào)度效 果的優(yōu)劣直接影響到整個(gè)系統(tǒng)的作業(yè)性能。任務(wù)調(diào)度本身就是一個(gè)NP完全問(wèn)題,由于不同 服務(wù)提供商之間存在許多差異(如實(shí)例類型,要價(jià)機(jī)制,傳輸帶寬等),所以終端用戶需要 一種良好的調(diào)度策略來(lái)保證其工作流約束前提下,盡可能降低用戶代價(jià),這是一個(gè)帶約束 的單目標(biāo)優(yōu)化問(wèn)題。雖然許多相關(guān)研究工作已在傳統(tǒng)分布式環(huán)境中展開(kāi),但涉及云環(huán)境的 工作流調(diào)度研究工作卻相對(duì)較少,特別是在IaaS多云環(huán)境中處理帶截止日期約束的復(fù)雜 工作流調(diào)度問(wèn)題。
[0003] 工作流調(diào)度是一個(gè)傳統(tǒng)的優(yōu)化問(wèn)題,它是在滿足某些給定的約束前提下,將工作 流中的每個(gè)任務(wù)按序分配到對(duì)應(yīng)資源中,從而獲得最佳的預(yù)期結(jié)果。早期的研究工作主要 基于較為傳統(tǒng)的多機(jī)處理時(shí)代,現(xiàn)有研究工作大多是針對(duì)共享社區(qū)環(huán)境(如社區(qū)網(wǎng)格)的 工作流調(diào)度問(wèn)題而展開(kāi)。無(wú)論是多機(jī)處理時(shí)代,還是社區(qū)網(wǎng)格環(huán)境,涉及工作流的研究工作 主要是考慮最小化工作流執(zhí)行時(shí)間或滿足用戶服務(wù)質(zhì)量需求,并未涉及工作流執(zhí)行代價(jià)的 研究。
[0004] 傳統(tǒng)分布式環(huán)境的工作流調(diào)度科研成果為云環(huán)境下工作流研究提供一定的借鑒 作用。然而,它們并非完全適用于按區(qū)間要價(jià)并以利益為驅(qū)動(dòng)的云計(jì)算環(huán)境?,F(xiàn)有云環(huán)境 下的研究工作主要是基于代價(jià)優(yōu)化目標(biāo)而展開(kāi)。然而許多研究工作僅僅在多云環(huán)境下追 求代價(jià)最優(yōu),而忽略其他約束條件,如截止日期;或者僅在單云環(huán)境下考慮帶約束條件的工 作流代價(jià)優(yōu)化調(diào)度,并未涉及不同帶寬的多云環(huán)境對(duì)工作流執(zhí)行代價(jià)影響;或者忽略任務(wù) 間的復(fù)雜依賴關(guān)系而僅考慮多云環(huán)境下批任務(wù)調(diào)度問(wèn)題;或者在追求工作流代價(jià)最優(yōu)過(guò)程 中,沒(méi)有考慮云環(huán)境按需付費(fèi),按區(qū)間要價(jià)的基本性質(zhì)。因此,多云環(huán)境下,帶截止日期約束 的大規(guī)模工作流執(zhí)行代價(jià)的優(yōu)化調(diào)度問(wèn)題仍未得到妥善解決。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的是提供一種在多云環(huán)境下基于工作流自身結(jié)構(gòu)和執(zhí)行特性,以及當(dāng) 前云資源環(huán)境等相關(guān)因素考慮的工作流調(diào)度方法,該方法基于局部關(guān)鍵路徑思想,壓縮數(shù) 據(jù)傳輸路徑和任務(wù)間的數(shù)據(jù)傳輸時(shí)間,有效整合虛擬化資源,在滿足工作流截止日期約束 的前提下,優(yōu)化資源利用率,有效提高方法本身的執(zhí)行效率,并大幅度減少工作流在多云環(huán) 境下的執(zhí)行代價(jià)。
[0006] 本發(fā)明采用以下技術(shù)方案實(shí)現(xiàn):一種多云環(huán)境下帶截止日期約束工作流的 基于代價(jià)驅(qū)動(dòng)調(diào)度方法,其特征在于,包括以下步驟:步驟Sl :輸入工作流w,用有向 無(wú)環(huán)圖G(Vertex, Edge)來(lái)表示工作流w,其中Vertex是一個(gè)含有n個(gè)任務(wù)節(jié)點(diǎn)的有 限點(diǎn)集It1, t2,...,tn},而Edge則用來(lái)表示任務(wù)之間數(shù)據(jù)傳輸依賴關(guān)系的有限邊集 {e 12, e13, . . .,eij},每條數(shù)據(jù)依賴邊eij= (t D 代表任務(wù)&和任務(wù)t j之間存在數(shù)據(jù) 傳輸依賴關(guān)系,其中任務(wù)^是任務(wù)t ,的直接父節(jié)點(diǎn),而任務(wù)t ,則是任務(wù)t i的直接子節(jié) 點(diǎn),eij的大小表示任務(wù)t i到任務(wù)t ^的數(shù)據(jù)傳輸量;在工作流調(diào)度過(guò)程中,一個(gè)任務(wù)必 須在其所有父節(jié)點(diǎn)都已被執(zhí)行完畢后,該任務(wù)才能開(kāi)始執(zhí)行,沒(méi)有父節(jié)點(diǎn)的任務(wù)稱為入 任務(wù),沒(méi)有子節(jié)點(diǎn)的任務(wù)稱為出任務(wù);步驟S2 :執(zhí)行調(diào)度策略前預(yù)先分別加入一個(gè)零代 價(jià)的偽入任務(wù)節(jié)點(diǎn)和偽出任務(wù)節(jié)點(diǎn),將偽入任務(wù)與真實(shí)入任務(wù)通過(guò)零依 賴邊相連,將真實(shí)出任務(wù)與偽出任務(wù)通過(guò)零依賴邊相連;步驟S3 :迭代合并其中存在有 向割邊相鄰任務(wù),所述有向割邊的為一條有向邊,其出節(jié)點(diǎn)的出度為1,且其入節(jié)點(diǎn)的入 度為1 ;步驟S4 :確認(rèn)不同服務(wù)提供商P = {p,q,. . .,r}所提供的有效計(jì)算服務(wù)類型Sp ={spl, sp2,. . .,SpJ ;步驟 S5 :計(jì)算工作流 W 中所有任務(wù)的 EFT(ti)、EST(ti)、LFT(ti)及 LSTU1);所述EFTU1)表示在任務(wù)^未調(diào)度前的理想最早完成時(shí)間,其計(jì)算公式如下:
Texe(h,sw)表示任務(wù)h在實(shí)例s w上的執(zhí)行時(shí)間;Tboot(Vmw)表示實(shí)例sw的初始化啟 動(dòng)時(shí)間;EFTaj)表示EFTaj)表示在任務(wù)未調(diào)度前的理想最早完成時(shí)間;TE(e jl,p)表 示數(shù)據(jù)依賴邊b在云服務(wù)提供商preP_E(t _j)和p之間的數(shù)據(jù)傳輸時(shí)間;preP_E(ti)表 示已計(jì)算EFTai)的任務(wù)h對(duì)應(yīng)的最早傾向云,最早傾向云為在云服務(wù)提供商集合P中 使任務(wù)^取得最小EFT(t J對(duì)應(yīng)的提供商;ESTai)表示未調(diào)度任務(wù)h的最早開(kāi)始時(shí) 間,ESTai) =EFT U1)-MET U1, preP_E U1)) ;LFT U1)表示任務(wù) ^最遲完成時(shí)間,LFTai) =LSTaiHMETai, PreP^t1)),其中LSTai)表示任務(wù)^未被調(diào)度前的理想最遲開(kāi)始 時(shí)間;preP+Laj表示已計(jì)算LSTa i)的任務(wù)&對(duì)應(yīng)的最遲傾向云,最遲傾向云為所有 云服務(wù)提供商集合P中使任務(wù)^取得最大LST(t J對(duì)應(yīng)的提供商;LSTai)計(jì)算公式:
6^在云服務(wù)提供商口和口代?_1^(1^)之間的數(shù)據(jù)傳輸時(shí)間;0^)為整個(gè)工作流¥能在其對(duì) 應(yīng)的截止日期;
[0007] 步驟S6 :標(biāo)記t偽入任務(wù)及t偽出任務(wù)為已調(diào)度任務(wù);步驟S7 :若任務(wù)1^不存在未調(diào)度直 接父任務(wù)直接輸出調(diào)度方案,若存在未調(diào)度直接父任務(wù)執(zhí)行步驟S8 ;步驟S8 :查找任務(wù)t 的局部關(guān)鍵路徑PCP U1),整體調(diào)度PCP U1)到其對(duì)應(yīng)的最佳實(shí)施例Spi jik,標(biāo)記PCP U1)上 每個(gè)任務(wù)為^已調(diào)度;步驟S9 :更新t ,所有未調(diào)度父任務(wù)的LSTs及LFTs,更新t i所有未 調(diào)度子任務(wù)的LSTs及LFTs,返回步驟S7。
[0008] 在本發(fā)明一實(shí)施例中,所述步驟S3包括以下具體步驟:構(gòu)造一個(gè)父親兒子圖矩陣 father-son□□判定父節(jié)點(diǎn)是否僅有一個(gè)兒子節(jié)點(diǎn),且該兒子節(jié)點(diǎn)入度為1,并以該兒子 節(jié)點(diǎn)為新的父節(jié)點(diǎn)迭代尋找新的有向割邊;將尋找到的有向割邊刪除,合并對(duì)應(yīng)的兩個(gè)任 務(wù),更新新任務(wù)的數(shù)據(jù)傳輸量和相應(yīng)執(zhí)行時(shí)間,重新掃描全局,直到新生成的工作流中不存 在有向割邊。
[0009] 在本發(fā)明一實(shí)施例中,所述步驟S5中當(dāng)出現(xiàn)兩個(gè)以上提供商使任務(wù)^取得對(duì)應(yīng) 最早完成時(shí)間,則選取編號(hào)小的提供商作為任務(wù)^的最早傾向云。
[0010] 在本發(fā)明一實(shí)施例中,所述步驟S8中整體調(diào)度PCPai)到其對(duì)應(yīng)的最佳實(shí)施例 8^15需要同時(shí)滿足以下條件:條件I :S 對(duì)應(yīng)于局部關(guān)鍵路徑PCP(t J的執(zhí)行代價(jià)增值 Cgrow(sp,.jik,PCP)最低,Cgrow(s p,.jik,PCP) = Cw ? (T2-T1HCdata,其中 T1 是實(shí)例 行PCPU1)之前,其已運(yùn)行的窗口時(shí)間,1~2是在執(zhí)行PCPU 1)之后實(shí)例運(yùn)行的總窗口 時(shí)間,Cdata為增值的數(shù)據(jù)傳輸代價(jià);條件2 :對(duì)于某個(gè)局部關(guān)鍵路徑PCPai),如果存在兩 個(gè)或兩個(gè)以上實(shí)例滿足條件1,則選擇產(chǎn)生Cdata最小的實(shí)例為最佳實(shí)際;條件3 : 對(duì)于某個(gè)局部關(guān)鍵路徑PCPU1),如果存在兩個(gè)或兩個(gè)以上實(shí)例同時(shí)滿足條件1和條件2, 則選擇剩余時(shí)間最多,即當(dāng)前窗口時(shí)間減去實(shí)際執(zhí)行時(shí)間的差值最多的實(shí)例s Pi i k作為最佳 實(shí)例。
[0011] 在本發(fā)明一實(shí)施例中,算法的更新調(diào)度局部關(guān)鍵路徑包括以下步驟:輸入一條帶 局部截止日期約束的局部關(guān)鍵路徑PCP,更新當(dāng)前多云環(huán)境中虛擬資源和所有未調(diào)度子任 務(wù)的狀態(tài),整體調(diào)度PCP到相應(yīng)的最佳實(shí)例上,并在對(duì)應(yīng)的局部截止日期前執(zhí)行完成PCP上 的所有任務(wù)。
[0012] 進(jìn)一步的,整體調(diào)度PCP到相應(yīng)的最佳實(shí)例上包括以下步驟:利用貪心選擇策略 尋找執(zhí)行PCP代