【技術(shù)領(lǐng)域】
本發(fā)明涉及云計(jì)算技術(shù)領(lǐng)域,尤其是涉及一種云環(huán)境下執(zhí)行可靠性感知的并行任務(wù)調(diào)度方法。
背景技術(shù):
公知的,由于云計(jì)算建立在大規(guī)模廉價(jià)的服務(wù)器集群上,導(dǎo)致計(jì)算節(jié)點(diǎn)軟硬件、通信鏈路極容易出現(xiàn)故障,即不同的計(jì)算節(jié)點(diǎn)和通信鏈路表現(xiàn)出不同的故障率,云計(jì)算是分布式計(jì)算、并行處理和網(wǎng)格計(jì)算的進(jìn)一步發(fā)展,是基于互聯(lián)網(wǎng)的計(jì)算,能夠通過(guò)互聯(lián)網(wǎng)以按需、易擴(kuò)展的方式提供硬件服務(wù)、基礎(chǔ)架構(gòu)服務(wù)、平臺(tái)服務(wù)、軟件服務(wù)、存儲(chǔ)服務(wù)等的系統(tǒng),在“云”中,集聚了大量的服務(wù)器、存儲(chǔ)設(shè)備和應(yīng)用軟件,用戶通過(guò)訪問(wèn)這些資源,就可以方便獲取自己所需要的服務(wù),如數(shù)據(jù)訪問(wèn)、特定計(jì)算服務(wù)等。
云計(jì)算整合了internet上分布的、異構(gòu)的各種資源,其資源性能千差萬(wàn)別,軟硬件故障、網(wǎng)絡(luò)中斷都可以導(dǎo)致資源不能運(yùn)行提交給它的任務(wù),然而,現(xiàn)實(shí)中的有些重要應(yīng)用,例如核電站、飛行控制、交通指揮調(diào)度等系統(tǒng)對(duì)計(jì)算任務(wù)的成功執(zhí)行有著嚴(yán)格的要求,提高這些計(jì)算任務(wù)的執(zhí)行成功率至關(guān)重要,由于計(jì)算資源計(jì)算速度、通信鏈路通信速度以及它們的故障率的不同,同一任務(wù)在不同計(jì)算資源上的執(zhí)行成功率不同,對(duì)于任務(wù)之間存在優(yōu)先級(jí)約束和數(shù)據(jù)依賴關(guān)系的并行任務(wù)來(lái)說(shuō),提高并行任務(wù)執(zhí)行成功率的關(guān)鍵是制定有效的任務(wù)調(diào)度策略,確保任務(wù)高可靠執(zhí)行已成為云計(jì)算當(dāng)前研究的熱點(diǎn),在云環(huán)境下,云用戶通常是按自己所實(shí)際獲得的服務(wù)質(zhì)量對(duì)服務(wù)進(jìn)行付費(fèi)的,而服務(wù)的完成時(shí)間和可靠性是評(píng)估服務(wù)質(zhì)量的兩個(gè)重要的評(píng)價(jià)標(biāo)準(zhǔn),通常,云服務(wù)完成任務(wù)所用的時(shí)間越短、服務(wù)越可靠,費(fèi)用越高,終端用戶出于計(jì)算成本的考慮,可在應(yīng)用服務(wù)的完成時(shí)間和可靠性之間進(jìn)行折中。
在多任務(wù)多機(jī)環(huán)境下,調(diào)度問(wèn)題的實(shí)質(zhì)是將m個(gè)任務(wù)分配到n個(gè)機(jī)器上執(zhí)行,一般來(lái)說(shuō),調(diào)度問(wèn)題屬于np問(wèn)題,很難找到最優(yōu)解,因此,通常是尋求次優(yōu)解,針對(duì)多機(jī)環(huán)境中的并行任務(wù)調(diào)度問(wèn)題,通常的調(diào)度方法有:(1)表調(diào)度算法,基本思想是根據(jù)所有任務(wù)的優(yōu)先級(jí)別進(jìn)行排序,來(lái)構(gòu)造一個(gè)調(diào)度列表,然后按某種策略把任務(wù)調(diào)度到處理機(jī)上執(zhí)行,這類調(diào)度算法典型的有:heft(heterogeneousearliestfinishtime),,cpop(criticalpathonaproeessor),dls(dynamiclevelseheduling)等,與其它種類調(diào)度算法相比,表調(diào)度算法的時(shí)間復(fù)雜度相對(duì)較低,比較實(shí)用;(2)基于任務(wù)復(fù)制的調(diào)度算法,主要思想是將一個(gè)任務(wù)分別映射到兩個(gè)或多個(gè)處理機(jī)上執(zhí)行,以降低該任務(wù)和關(guān)聯(lián)任務(wù)之間的通信開銷,前提是任務(wù)的冗余計(jì)算開銷要小于通信開銷,這類算法典型的有:dsh(duplicationschedulingheuristic),cpfd(criticalpathfastduplication)等;(3)基于任務(wù)分簇的調(diào)度算法,基本思想是將同一個(gè)簇中的任務(wù)分配到同一個(gè)處理機(jī)上執(zhí)行,避免了同一簇中任務(wù)之間的通信開銷,典型的算法是dsc(dominantsequenceclustering)算法;(4)非確定性調(diào)度算法,它主要是通過(guò)有導(dǎo)向的隨機(jī)選擇來(lái)搜索問(wèn)題的解空間,以便獲取調(diào)度目標(biāo)的近優(yōu)解。
上述并行任務(wù)調(diào)度算法都屬于性能驅(qū)動(dòng),以優(yōu)化系統(tǒng)性能為目標(biāo),包括最小化任務(wù)運(yùn)行時(shí)間和最大化系統(tǒng)吞吐量,這些調(diào)度算法都未考慮資源節(jié)點(diǎn)的可靠性,近年來(lái),一些研究工作開始將資源節(jié)點(diǎn)的可靠性作為并行任務(wù)調(diào)度的重要因素,he等將可靠性代價(jià)(reliabilitycost,rc)作為調(diào)度目標(biāo),來(lái)提高并行任務(wù)運(yùn)行的可靠性,其中可靠性代價(jià)定義為任務(wù)在處理機(jī)上的執(zhí)行時(shí)間與處理機(jī)故障率的乘積,由此提出了mcms和prms調(diào)度算法,優(yōu)先將任務(wù)調(diào)度到可靠性代價(jià)(rc)最低的資源節(jié)點(diǎn)上,提高作業(yè)運(yùn)行的可靠性;qin等人提出了動(dòng)態(tài)可靠性成本驅(qū)動(dòng)drcd(dynamicreliability-cost-driven)的調(diào)度算法,每個(gè)實(shí)時(shí)子任務(wù)被分配到有最小可靠性成本的處理機(jī)上執(zhí)行,從而增強(qiáng)系統(tǒng)的可靠性,在假定并行系統(tǒng)失效率遵循泊松過(guò)程的條件下,針對(duì)異構(gòu)系統(tǒng)提出了一種折衷調(diào)度長(zhǎng)度和任務(wù)執(zhí)行可靠性的調(diào)度算法;tang等針對(duì)異構(gòu)分布計(jì)算系統(tǒng)中處理部件和通信鏈路存在失效的情況,提出可靠性感知的調(diào)度算法rasd(reliability-awareschedulingalgorithmwithduplication),對(duì)可用的通信鏈路根據(jù)可靠度進(jìn)行排列,以此作為任務(wù)調(diào)度的依據(jù),在網(wǎng)格環(huán)境下,提出分層可靠性驅(qū)動(dòng)任務(wù)調(diào)度hrds(hierarchicalreliability-drivenscheduling)算法,該算法把任務(wù)執(zhí)行可靠性開銷融入任務(wù)調(diào)度,對(duì)于未調(diào)度任務(wù)集中的每個(gè)任務(wù),將其調(diào)度到可靠性開銷最小的節(jié)點(diǎn)上執(zhí)行;陶永才提出網(wǎng)格工作流作業(yè)可靠調(diào)度算法dgws(dependablegridworkflowschedulingmechanism),對(duì)于dag工作流的每一個(gè)子任務(wù),根據(jù)其運(yùn)行時(shí)間長(zhǎng)度,預(yù)測(cè)該子任務(wù)在不同資源節(jié)點(diǎn)上成功運(yùn)行的可靠性,將子任務(wù)調(diào)度到可靠性代價(jià)最低的資源節(jié)點(diǎn)上執(zhí)行;謝國(guó)琪等人通過(guò)分析dag圖中任務(wù)間的依賴關(guān)系,確定dag任務(wù)的可靠性概率模型,給出了滿足可靠性目標(biāo)的任務(wù)復(fù)制下限值算法,提出經(jīng)濟(jì)的任務(wù)復(fù)制策略算法和貪婪的任務(wù)復(fù)制策略算法。
上述算法,都是啟發(fā)式的將每個(gè)就緒任務(wù)調(diào)度到使任務(wù)執(zhí)行可靠性最大的處理機(jī)上,但是,任務(wù)局部的最大可靠性調(diào)度,不一定能使整個(gè)并行任務(wù)的執(zhí)行可靠性最大,此外,上述增強(qiáng)并行任務(wù)執(zhí)行可靠性的調(diào)度算法,都沒(méi)有考慮并行任務(wù)的完成截止時(shí)間的要求。
技術(shù)實(shí)現(xiàn)要素:
為了克服背景技術(shù)中的不足,本發(fā)明公開了一種云環(huán)境下執(zhí)行可靠性感知的并行任務(wù)調(diào)度方法,本發(fā)明針對(duì)用戶對(duì)并行任務(wù)有完成截止時(shí)間和執(zhí)行可靠性的要求,根據(jù)云計(jì)算系統(tǒng)的計(jì)算資源和通信設(shè)備的故障率服從指數(shù)分布的特點(diǎn),生成并行任務(wù)在云計(jì)算系統(tǒng)上執(zhí)行的所有執(zhí)行方案,將這些執(zhí)行方案構(gòu)建執(zhí)行方案圖,基于執(zhí)行方案圖,提出滿足并行任務(wù)完成截止時(shí)間要求的最大可靠性執(zhí)行方案求解算法mrep。
為了實(shí)現(xiàn)所述發(fā)明目的,本發(fā)明采用如下技術(shù)方案:
一種云環(huán)境下執(zhí)行可靠性感知的并行任務(wù)調(diào)度方法,具體調(diào)度方法如下:
第一步,將并行任務(wù)的有向無(wú)環(huán)圖中的各個(gè)子任務(wù)分配到處理機(jī)上進(jìn)行并行協(xié)同計(jì)算,任務(wù)統(tǒng)一由中心調(diào)度器管理并將每個(gè)子任務(wù)分配到合適的處理機(jī)上,通信由通信子系統(tǒng)控制執(zhí)行,并行任務(wù)的子任務(wù)在不同計(jì)算資源上的執(zhí)行時(shí)間可用執(zhí)行時(shí)間矩陣tn×m來(lái)表示:tn×m={tij|1≤i≤n,1≤j≤m},其中tij表示任務(wù)vi在處理機(jī)pj上執(zhí)行所需的時(shí)間;
第二步,任務(wù)vi在處理機(jī)pj上的執(zhí)行可靠性定義為處理機(jī)pj成功完成任務(wù)vi的概率,若處理機(jī)pj的故障率λj服從指數(shù)分布,pj完成任務(wù)vi所需的時(shí)間為ti,j,則任務(wù)vi在處理機(jī)pj上的執(zhí)行可靠性pr(vi,pj)=exp(-λjti,j),其中,λjti,j稱為任務(wù)執(zhí)行的可靠性代價(jià),任務(wù)執(zhí)行可靠性越大,任務(wù)執(zhí)行的可靠性代價(jià)越小,任務(wù)執(zhí)行可靠性越小,任務(wù)執(zhí)行的可靠性代價(jià)越大,任務(wù)執(zhí)行可靠性由處理機(jī)的處理速度和處理機(jī)的故障率共同決定,任務(wù)vi被調(diào)度到處理機(jī)ps上,vi的直接后繼任務(wù)vj被調(diào)度到處理機(jī)pd上,vi與vj間需要傳輸?shù)臄?shù)據(jù)為di,j,當(dāng)di,j從處理機(jī)ps傳輸?shù)教幚頇C(jī)pd所經(jīng)過(guò)的通信路徑為li,j=(li,1,li,2,…,li,m),li,k(k=1…m)表示通信路徑li,j所經(jīng)過(guò)的鄰接通信鏈路;當(dāng)di,j經(jīng)過(guò)鄰接鏈路li,k所用的時(shí)間為ti,k,鄰接鏈路li,k的故障率為λi,k,各個(gè)鄰接鏈路的失效事件相互獨(dú)立,則數(shù)據(jù)di,j在通信路經(jīng)li,j上的傳輸可靠性tr(di,j,li,j),即在通信路經(jīng)li,j上成功傳輸數(shù)據(jù)di,j的概率,為di,j在每個(gè)鄰接鏈路上成功傳輸?shù)母怕实某朔e:
式子一
其中,
第三步,有前驅(qū)的子任務(wù)vj能在處理機(jī)pd上成功完成的條件是:vj和其前驅(qū)任務(wù)vi∈pred(vj)間需要傳輸?shù)臄?shù)據(jù)成功傳輸?shù)教幚頇C(jī)pd上;處理機(jī)pd在完成任務(wù)vj的時(shí)間段內(nèi)不失效,即任務(wù)vj在處理機(jī)pd上的執(zhí)行可靠性依賴于vj在pd上的獨(dú)立的任務(wù)執(zhí)行可靠性和vj所依賴數(shù)據(jù)的傳輸可靠性,令p(vi)表示執(zhí)行任務(wù)vi的處理機(jī),則vj在pd上的執(zhí)行可靠性記為ppr(vj,pd),以便和獨(dú)立任務(wù)執(zhí)行可靠性pr相區(qū)別,ppr(vj,pd)的計(jì)算公式如下:
式子二
對(duì)于入口任務(wù)ventry來(lái)說(shuō),由于其前驅(qū)任務(wù)集
對(duì)于并行任務(wù)在云計(jì)算系統(tǒng)cloud上的一種調(diào)度執(zhí)行,令rc表示并行任務(wù)各子任務(wù)在其所分配的處理機(jī)上獨(dú)立執(zhí)行的可靠性代價(jià)與任務(wù)間的依賴數(shù)據(jù)在處理機(jī)間傳輸?shù)目煽啃源鷥r(jià)之和,則該調(diào)度執(zhí)行的執(zhí)行可靠性ppr(dag,cloud)為:
定理一:
ppr(dag,cloud)=ppr(vexit,p(vexit))=exp(-rc)
證明:在并行任務(wù)dag的調(diào)度執(zhí)行過(guò)程中,dag的一個(gè)子任務(wù)只有在它的全部前驅(qū)任務(wù)成功完成,且該任務(wù)和它們間的依賴數(shù)據(jù)成功傳輸?shù)皆撊蝿?wù)所在的處理機(jī),該任務(wù)才能開始執(zhí)行,因而,對(duì)于并行任務(wù)dag在云計(jì)算系統(tǒng)上的一種調(diào)度執(zhí)行,并行任務(wù)被成功完成的可靠性的大小,可從任務(wù)ventry所在的處理機(jī)開始,遞推計(jì)算每個(gè)子任務(wù)在其被分配的處理機(jī)上的執(zhí)行可靠性,直至出口任務(wù)vexit,即并行任務(wù)dag在云計(jì)算系統(tǒng)上的執(zhí)行可靠性,就是vexit在其所在的處理機(jī)上的執(zhí)行可靠性ppr(vexit,p(vexit))。假定并行任務(wù)dag邊ei,j上的數(shù)據(jù)di,j在p(vi)和p(vj)間傳輸,所經(jīng)過(guò)的鏈路個(gè)數(shù)為mij。由(2)式知,ppr(vexit,p(vexit))可表示為:
式子三
對(duì)式三逐步進(jìn)行擴(kuò)展:
定理一可知,提高并行任務(wù)的執(zhí)行可靠性,相當(dāng)于降低并行任務(wù)的子任務(wù)獨(dú)立執(zhí)行的可靠性代價(jià)與任務(wù)間依賴數(shù)據(jù)傳輸?shù)目煽啃源鷥r(jià)之和rc,rc越小,并行任務(wù)的執(zhí)行可靠性越高;
第四步,當(dāng)子任務(wù)va被調(diào)度到處理機(jī)psrc,va的直接后繼任務(wù)vb被調(diào)度到處理機(jī)pdst,則這兩個(gè)任務(wù)間的依賴數(shù)據(jù)da,b必須從處理機(jī)psrc傳輸?shù)教幚頇C(jī)pdst,從處理機(jī)psrc到處理機(jī)pdst可能存在多條通信路徑,由4.2節(jié)知:求數(shù)據(jù)da,b的最大可靠性傳輸路徑,就是求數(shù)據(jù)da,b在兩個(gè)處理機(jī)間有最小傳輸可靠性代價(jià)的路徑,下面給出數(shù)據(jù)在兩處理機(jī)間的最大可靠性傳輸路徑查找算法maximalreliabilitycommunicationpath。
所述算法maximalreliabilitycommunicationpath為:
在兩個(gè)嵌套的循環(huán)中,第一個(gè)循環(huán)至多運(yùn)行m次,第二個(gè)循環(huán)至多運(yùn)行m-1次,因此上述算法的時(shí)間復(fù)雜度為o(m2),path[dst]的元素就是數(shù)據(jù)da,b從處理機(jī)psrc傳輸?shù)教幚頇C(jī)pdst的最大可靠性傳輸路徑依次經(jīng)過(guò)的處理機(jī),dist[dst]的值就是最大可靠性傳輸路徑對(duì)應(yīng)的傳輸可靠性代價(jià)。
所述算法maximalreliabilitycommunicationpath為:
dountill=φ循環(huán)n次,foreachnab∈m循環(huán)m次,fork=1tom循環(huán)m次,mrcp(d(pred(d))d,pb,pk)的時(shí)間復(fù)雜度為o(m2),因而時(shí)間復(fù)雜度為o(nm4)。
所述算法maximalreliabilitycommunicationpath為:
算法的復(fù)雜性分析:算法的復(fù)雜性主要由第二個(gè)for循環(huán)決定,該循環(huán)外層循環(huán)n次,內(nèi)層循環(huán)n次,其中n為并行任務(wù)執(zhí)行方案圖esg的節(jié)點(diǎn)個(gè)數(shù)為n×m,因此算法的時(shí)間復(fù)雜度為o((nm)2)。
由于采用了上述技術(shù)方案,本發(fā)明具有如下有益效果:
本發(fā)明所述的一種云環(huán)境下執(zhí)行可靠性感知的并行任務(wù)調(diào)度方法,包括,通過(guò)的目的;本發(fā)明實(shí)用性強(qiáng),使用都非常的方便,針對(duì)用戶對(duì)并行任務(wù)有完成截止時(shí)間和執(zhí)行可靠性的要求,根據(jù)云計(jì)算系統(tǒng)的計(jì)算資源和通信設(shè)備的故障率服從指數(shù)分布的特點(diǎn),生成并行任務(wù)在云計(jì)算系統(tǒng)上執(zhí)行的所有執(zhí)行方案,將這些執(zhí)行方案構(gòu)建執(zhí)行方案圖,基于執(zhí)行方案圖,提出滿足并行任務(wù)完成截止時(shí)間要求的最大可靠性執(zhí)行方案求解算法mrep,最后,通過(guò)實(shí)驗(yàn)將mrep算法與heft算法和prms算法在低故障率和高故障率兩種環(huán)境下進(jìn)行比較,實(shí)驗(yàn)結(jié)果表明所提mrep算法切實(shí)可行,在并行任務(wù)執(zhí)行可靠性、并行任務(wù)執(zhí)行成功率和完成時(shí)間方面都表現(xiàn)出較好的性能。
【附圖說(shuō)明】
圖1為本發(fā)明的并行任務(wù)dag示意圖;
圖2為本發(fā)明的包含4個(gè)處理機(jī)節(jié)點(diǎn)的云計(jì)算系統(tǒng)圖型拓?fù)鋱D;
圖3為圖1的并行任務(wù)dag在圖2的云計(jì)算系統(tǒng)上執(zhí)行的執(zhí)行方案圖esg;
圖4為本發(fā)明的低故障率下的平均執(zhí)行可靠性代價(jià)與dag子任務(wù)個(gè)數(shù)變化情況示意圖;
圖5為本發(fā)明的低故障率下的平均成功率與dag子任務(wù)個(gè)數(shù)變化情況示意圖;
圖6為本發(fā)明的低故障率下的平均完成時(shí)間與dag子任務(wù)個(gè)數(shù)變化情況示意圖;
圖7為本發(fā)明的高故障率下的平均執(zhí)行可靠性代價(jià)與dag子任務(wù)個(gè)數(shù)變化情況示意圖;
圖8為本發(fā)明的高故障率下的平均完成率與dag子任務(wù)個(gè)數(shù)變化情況示意圖;
圖9為本發(fā)明的高故障率下的平均完成時(shí)間與dag子任務(wù)個(gè)數(shù)變化情況示意圖;
【具體實(shí)施方式】
通過(guò)下面的實(shí)施例可以詳細(xì)的解釋本發(fā)明,公開本發(fā)明的目的旨在保護(hù)本發(fā)明范圍內(nèi)的一切技術(shù)改進(jìn)。
結(jié)合附圖1~9所述的一種云環(huán)境下執(zhí)行可靠性感知的并行任務(wù)調(diào)度方法,云計(jì)算用戶的需求多種多樣,所提交的任務(wù)類型不盡相同,根據(jù)任務(wù)之間是否具有相關(guān)性,任務(wù)可以分為獨(dú)立任務(wù)和并行任務(wù)兩種,獨(dú)立任務(wù)是由一個(gè)或多個(gè)子任務(wù)組成,子任務(wù)間的執(zhí)行順序無(wú)數(shù)據(jù)依賴先后關(guān)系,是云計(jì)算任務(wù)的特殊形式,并行任務(wù)是由多個(gè)子任務(wù)組成,子任務(wù)間執(zhí)行時(shí)具有數(shù)據(jù)先后依賴關(guān)系,表現(xiàn)為一個(gè)任務(wù)在獲得它的父任務(wù)所有信息之前不能啟動(dòng)執(zhí)行,是云任務(wù)的一般形式。
定義1并行任務(wù):一個(gè)并行任務(wù)可抽象表示為一個(gè)有向無(wú)環(huán)圖dag,即一個(gè)四元組dag=(v,e,w,d),其中v={v1,v2,…,vn}表示任務(wù)的集合,n表示任務(wù)的個(gè)數(shù);
結(jié)合附圖1和2所述一種云環(huán)境下執(zhí)行可靠性感知的并行任務(wù)調(diào)度方法,一個(gè)包含6個(gè)子任務(wù)的并行任務(wù)圖,圓圈內(nèi)的vi表示節(jié)點(diǎn)的編號(hào),圓圈旁邊的數(shù)字表示任務(wù)節(jié)點(diǎn)的計(jì)算量,有向邊旁邊的數(shù)字表示節(jié)點(diǎn)間的通信量,通過(guò)處理,一般可假設(shè)并行任務(wù)dag圖只有一個(gè)入口節(jié)點(diǎn)和一個(gè)出口節(jié)點(diǎn)。
一個(gè)云計(jì)算系統(tǒng)可看做是資源的集合,按某種資源分配策略為用戶服務(wù)請(qǐng)求分配資源,在我們的模型中,假定云計(jì)算環(huán)境是由大量異構(gòu)處理機(jī)機(jī)群組成的云計(jì)算中心,由該云中心提供多種云服務(wù)應(yīng)用,在云環(huán)境中,由于處理機(jī)接入的時(shí)間、方式的不同,導(dǎo)致云環(huán)境中的計(jì)算節(jié)點(diǎn)間的連接方式復(fù)雜多樣,此外,不同類型處理機(jī)的計(jì)算性能也可能差別很大,不同處理機(jī)的故障率也不相同,不同通信鏈路的通信帶寬,以及故障率也不相同。
定義2圖云計(jì)算系統(tǒng):一個(gè)現(xiàn)實(shí)的云計(jì)算系統(tǒng)可抽象描述為一圖形結(jié)構(gòu),即一個(gè)六元組cloud=(p,e,s,b,λp,λe),其中p={p1,p2,...,pm}代表處理機(jī)集,m為處理機(jī)的總數(shù);e={ei,j|pi,pj∈p}代表處理機(jī)間的通信鏈路集,ei,j表示處理機(jī)pi和處理機(jī)pj之間有鏈路直接相連;s是處理機(jī)處理速度的集合,處理機(jī)的處理速度指的是處理單位負(fù)載所用的時(shí)間;b={bi,j|pi,pj∈p,ei,j∈e}是e中鄰接鏈路的通信帶寬的集合,bi,j∈b是通信鏈路ei,j=(pi,pj)∈e兩端點(diǎn)間傳輸單位數(shù)據(jù)所用的時(shí)間;λp是處理機(jī)故障率的集合,
結(jié)合附圖2所述一種云環(huán)境下執(zhí)行可靠性感知的并行任務(wù)調(diào)度方法,圓圈內(nèi)的pi表示系統(tǒng)中的處理機(jī)編號(hào),圓圈旁邊的數(shù)字表示處理機(jī)的處理速度,邊上的數(shù)字表示鏈路的通信帶寬。
以往的調(diào)研和統(tǒng)計(jì)表明:由集成電路構(gòu)成的計(jì)算機(jī)處理硬件和通信設(shè)備的故障過(guò)程都遵循泊松過(guò)程,其故障率服從指數(shù)分布,這些故障率可以由基礎(chǔ)設(shè)施資源站點(diǎn)的本地服務(wù)器,根據(jù)系統(tǒng)配置、日志文件和統(tǒng)計(jì)分析技術(shù)來(lái)確定。
所謂圖云計(jì)算系統(tǒng)下的并行任務(wù)調(diào)度,就是將并行任務(wù)dag圖中的各個(gè)子任務(wù),在充分考慮任務(wù)間的依賴關(guān)系的基礎(chǔ)上,將各子任務(wù)分配到處理機(jī)上進(jìn)行并行協(xié)同計(jì)算的過(guò)程。在本文圖云計(jì)算系統(tǒng)下,假定子任務(wù)具有原子性,不可再細(xì)分,任務(wù)的執(zhí)行是非搶占的,任務(wù)統(tǒng)一由中心調(diào)度器管理,按照某種策略將每個(gè)子任務(wù)分配到合適的處理機(jī)上,調(diào)度器與各處理機(jī)獨(dú)立運(yùn)行,通信由通信子系統(tǒng)控制執(zhí)行,通信操作可以并發(fā)執(zhí)行,暫不考慮通信沖突情況,若具有依賴關(guān)系的兩個(gè)任務(wù)分配到同一個(gè)處理機(jī)內(nèi)執(zhí)行,則它們之間的通信時(shí)間忽略;若分配到兩個(gè)不同的處理機(jī)上執(zhí)行,則它們之間的通信時(shí)間為數(shù)據(jù)在各個(gè)鏈路上的通信時(shí)間之和,并行任務(wù)的子任務(wù)在不同計(jì)算資源上的執(zhí)行時(shí)間可用執(zhí)行時(shí)間矩陣tn×m來(lái)表示:tn×m={tij|1≤i≤n,1≤j≤m},其中tij表示任務(wù)vi在處理機(jī)pj上執(zhí)行所需的時(shí)間。
定義3:任務(wù)vi在處理機(jī)pj上的執(zhí)行可靠性定義為處理機(jī)pj成功完成任務(wù)vi的概率,若處理機(jī)pj的故障率λj服從指數(shù)分布,pj完成任務(wù)vi所需的時(shí)間為ti,j,則任務(wù)vi在處理機(jī)pj上的執(zhí)行可靠性pr(vi,pj)=exp(-λjti,j),其中,λjti,j稱為任務(wù)執(zhí)行的可靠性代價(jià)。
從pr(vi,pj)的定義可知:任務(wù)執(zhí)行可靠性越大,任務(wù)執(zhí)行的可靠性代價(jià)越小,反之亦然,也就是說(shuō),任務(wù)執(zhí)行可靠性由處理機(jī)的處理速度和處理機(jī)的故障率共同決定,這比假定處理機(jī)的可靠性是個(gè)常數(shù)更符合實(shí)際,因?yàn)樘幚頇C(jī)運(yùn)行時(shí)間越長(zhǎng),出故障的概率越大。
若任務(wù)vi被調(diào)度到處理機(jī)ps上,vi的直接后繼任務(wù)vj被調(diào)度到處理機(jī)pd上,vi與vj間需要傳輸?shù)臄?shù)據(jù)為di,j,假設(shè)di,j從處理機(jī)ps傳輸?shù)教幚頇C(jī)pd所經(jīng)過(guò)的通信路徑為li,j=(li,1,li,2,…,li,m),li,k(k=1…m)表示通信路徑li,j所經(jīng)過(guò)的鄰接通信鏈路。假定di,j經(jīng)過(guò)鄰接鏈路li,k所用的時(shí)間為ti,k,鄰接鏈路li,k的故障率為λi,k,各個(gè)鄰接鏈路的失效事件相互獨(dú)立,則數(shù)據(jù)di,j在通信路經(jīng)li,j上的傳輸可靠性tr(di,j,li,j),即在通信路經(jīng)li,j上成功傳輸數(shù)據(jù)di,j的概率,為di,j在每個(gè)鄰接鏈路上成功傳輸?shù)母怕实某朔e:
式子一:
其中,
在并行任務(wù)dag圖中,有前驅(qū)的子任務(wù)vj能在處理機(jī)pd上成功完成的條件是:vj和其前驅(qū)任務(wù)vi∈pred(vj)間需要傳輸?shù)臄?shù)據(jù)成功傳輸?shù)教幚頇C(jī)pd上;處理機(jī)pd在完成任務(wù)vj的時(shí)間段內(nèi)不失效,即任務(wù)vj在處理機(jī)pd上的執(zhí)行可靠性依賴于vj在pd上的獨(dú)立的任務(wù)執(zhí)行可靠性和vj所依賴數(shù)據(jù)的傳輸可靠性。令p(vi)表示執(zhí)行任務(wù)vi的處理機(jī),則vj在pd上的執(zhí)行可靠性記為ppr(vj,pd),以便和獨(dú)立任務(wù)執(zhí)行可靠性pr相區(qū)別,ppr(vj,pd)的計(jì)算公式如下:
式子二
對(duì)于dag圖中的入口任務(wù)ventry來(lái)說(shuō),由于其前驅(qū)任務(wù)集
定理1:對(duì)于并行任務(wù)dag在云計(jì)算系統(tǒng)cloud上的一種調(diào)度執(zhí)行,令rc表示并行任務(wù)各子任務(wù)在其所分配的處理機(jī)上獨(dú)立執(zhí)行的可靠性代價(jià)與任務(wù)間的依賴數(shù)據(jù)在處理機(jī)間傳輸?shù)目煽啃源鷥r(jià)之和,則該調(diào)度執(zhí)行的執(zhí)行可靠性ppr(dag,cloud)為:
ppr(dag,cloud)=ppr(vexit,p(vexit))=exp(-rc)
證明:在并行任務(wù)dag的調(diào)度執(zhí)行過(guò)程中,dag的一個(gè)子任務(wù)只有在它的全部前驅(qū)任務(wù)成功完成,且該任務(wù)和它們間的依賴數(shù)據(jù)成功傳輸?shù)皆撊蝿?wù)所在的處理機(jī),該任務(wù)才能開始執(zhí)行,因而,對(duì)于并行任務(wù)dag在云計(jì)算系統(tǒng)上的一種調(diào)度執(zhí)行,并行任務(wù)被成功完成的可靠性的大小,可從任務(wù)ventry所在的處理機(jī)開始,遞推計(jì)算每個(gè)子任務(wù)在其被分配的處理機(jī)上的執(zhí)行可靠性,直至出口任務(wù)vexit,即并行任務(wù)dag在云計(jì)算系統(tǒng)上的執(zhí)行可靠性,就是vexit在其所在的處理機(jī)上的執(zhí)行可靠性ppr(vexit,p(vexit))。假定并行任務(wù)dag邊ei,j上的數(shù)據(jù)di,j在p(vi)和p(vj)間傳輸,所經(jīng)過(guò)的鏈路個(gè)數(shù)為mij,由式子二知,ppr(vexit,p(vexit))可表示為:
式子三
對(duì)式子三逐步進(jìn)行擴(kuò)展:
結(jié)合附圖3所述一種云環(huán)境下執(zhí)行可靠性感知的并行任務(wù)調(diào)度方法,為了得到并行任務(wù)在云計(jì)算系統(tǒng)上執(zhí)行的最大可靠性執(zhí)行方案,需要將并行任務(wù)在云計(jì)算系統(tǒng)上的所有執(zhí)行方案表示出來(lái),才可能從中找出執(zhí)行可靠性最大的方案,因此,需要將并行任務(wù)的所有執(zhí)行方案構(gòu)建執(zhí)行方案圖esg(executionschemegraph),假定并行任務(wù)dag的子任務(wù)個(gè)數(shù)為n,云計(jì)算系統(tǒng)的處理機(jī)數(shù)為m,本文構(gòu)建并行任務(wù)執(zhí)行方案圖的基本思想是:第一步,生成dag滿足子任務(wù)優(yōu)先關(guān)系的可執(zhí)行序列記為v1,v2,…,vn;第二步,構(gòu)建并行任務(wù)執(zhí)行方案圖的節(jié)點(diǎn)和邊,首先生成開始節(jié)點(diǎn)start,記為n0,0和結(jié)束節(jié)點(diǎn)end,記為nn+1,n+1兩個(gè)虛節(jié)點(diǎn),從步驟一生成的可執(zhí)行序列中取出第一個(gè)子任務(wù)v1,依次生成節(jié)點(diǎn)n1,1,n1,2,……n1,m,生成從n0,0節(jié)點(diǎn)到節(jié)點(diǎn)n1,1,n1,2,……n1,m的有向邊,其中,n1,j表示任務(wù)v1被分配到處理機(jī)pj上;從可執(zhí)行序列中取出下一個(gè)任務(wù),重復(fù)上述過(guò)程直到生成節(jié)點(diǎn)nn,1,nn,2,……nn,m,生成節(jié)點(diǎn)nn,1,nn,2,……nn,m到節(jié)點(diǎn)nn+1,n+1的有向邊,附圖3為附圖1的并行任務(wù)dag在附圖2的云計(jì)算系統(tǒng)上執(zhí)行的執(zhí)行方案圖esg,esg可表示為一個(gè)四元組,即esg=(n,e,nrc,erc),其中n、e、nrc和erc分別表示esg的節(jié)點(diǎn)集、邊集、節(jié)點(diǎn)的可靠性代價(jià)集和邊的可靠性代價(jià)集,ni,1,ni,2,…,ni,m稱為esg的第i層節(jié)點(diǎn),從節(jié)點(diǎn)n0,0到節(jié)點(diǎn)nn+1,n+1每條路徑所經(jīng)過(guò)的節(jié)點(diǎn)序列,都代表并行任務(wù)在計(jì)算系統(tǒng)上的一種執(zhí)行方案,第三步,生成esg節(jié)點(diǎn)的可靠性代價(jià),ni,j(i=1…n,j=1…m)的可靠性代價(jià)nrci,j為任務(wù)vi在處理機(jī)pj上執(zhí)行的可靠性代價(jià)ti,jλj,節(jié)點(diǎn)n0,0和節(jié)點(diǎn)nn+1,n+1的可靠性代價(jià)都為0,第四步,生成esg邊的可靠性代價(jià),由節(jié)點(diǎn)n00發(fā)出的邊和進(jìn)入節(jié)點(diǎn)nn+1,n+1的邊的可靠性代價(jià)都為0;若第i層節(jié)點(diǎn)上的任務(wù)在dag中是第i+1層節(jié)點(diǎn)上任務(wù)的直接前驅(qū),則第i層上的ni,x和則第i+1層上的ni+1,y之間的邊e(i,x),(i+1,y)的可靠性代價(jià)erc(i,x),(i+1,y)為數(shù)據(jù)di,i+1從處理機(jī)px傳輸?shù)教幚頇C(jī)py的最小傳輸可靠性代價(jià);否則繼續(xù)向上一層查找節(jié)點(diǎn)上的任務(wù)是不是直接前驅(qū),假定查到i-k層上的任務(wù)是第i+1層節(jié)點(diǎn)上任務(wù)的直接前驅(qū),則連接ni,x和ni+1,y的邊的可靠性代價(jià)為數(shù)據(jù)di-k,i+1從處理機(jī)px傳輸?shù)教幚頇C(jī)py的最小傳輸可靠性代價(jià)。
由定理1可知,提高并行任務(wù)的執(zhí)行可靠性,相當(dāng)于降低并行任務(wù)的子任務(wù)獨(dú)立執(zhí)行的可靠性代價(jià)與任務(wù)間依賴數(shù)據(jù)傳輸?shù)目煽啃源鷥r(jià)之和rc,rc越小,并行任務(wù)的執(zhí)行可靠性越高。
定理2:在并行任務(wù)執(zhí)行方案圖esg中,從start節(jié)點(diǎn)到end節(jié)點(diǎn)間的可靠性代價(jià)最短路徑經(jīng)過(guò)的節(jié)點(diǎn)所對(duì)應(yīng)的任務(wù)/處理機(jī)的分配方案,就是并行任務(wù)在云計(jì)算系統(tǒng)上執(zhí)行的最大可靠性執(zhí)行方案。
證明:在并行任務(wù)執(zhí)行方案圖中,對(duì)任意一子任務(wù)vi∈v,都生成m個(gè)節(jié)點(diǎn),對(duì)任意一條通信邊ei,j∈e,在并行任務(wù)執(zhí)行方案圖上都生成了m2個(gè)邊,m為處理機(jī)的個(gè)數(shù),即生成的執(zhí)行方案圖包括了任務(wù)vi和vj所有的執(zhí)行方式和ei,j所有的通信方式,所以,并行任務(wù)在云計(jì)算系統(tǒng)上的任何一種執(zhí)行方案,都能在并行任務(wù)執(zhí)行方案圖中找到一條從start節(jié)點(diǎn)到end節(jié)點(diǎn)的一條路徑與之對(duì)應(yīng),反之亦然,因此,在并行任務(wù)執(zhí)行方案圖中,從start節(jié)點(diǎn)到end節(jié)點(diǎn)的最短路徑經(jīng)過(guò)的節(jié)點(diǎn)所對(duì)應(yīng)的任務(wù)/處理機(jī)的分配,就是并行任務(wù)在云計(jì)算系統(tǒng)上執(zhí)行的最大可靠性執(zhí)行方案。證畢。
基于并行任務(wù)執(zhí)行方案圖構(gòu)建算法ptesg生成的并行任務(wù)執(zhí)行方案圖,下面我們給出并行任務(wù)最大的可靠性執(zhí)行方案求解算法mrep(maximalreliabilityexecutionpath),算法的主要思想是:用鄰接矩陣c表示esg,設(shè)置節(jié)點(diǎn)集合s并不斷擴(kuò)充這個(gè)集合,一個(gè)節(jié)點(diǎn)屬于集合s當(dāng)且僅當(dāng)從start節(jié)點(diǎn)到該節(jié)點(diǎn)的最短路徑長(zhǎng)度即可靠性代價(jià)已知,初始時(shí)s中僅含有start節(jié)點(diǎn),設(shè)u是esg的某一個(gè)節(jié)點(diǎn),把從start到u且中間只經(jīng)過(guò)s中節(jié)點(diǎn)的路徑稱為從start到u的特殊路徑,并用數(shù)組dist記錄當(dāng)前每個(gè)節(jié)點(diǎn)所對(duì)應(yīng)的最短特殊路徑長(zhǎng)度,每次從n-s中取出具有特殊路徑長(zhǎng)度的節(jié)點(diǎn)u,將u添加到s中,同時(shí)對(duì)數(shù)組dist做必要的修改,其中n為esg的節(jié)點(diǎn)集,當(dāng)s中包含了n中的所有節(jié)點(diǎn),dist就記錄了從start到所有其它節(jié)點(diǎn)之間的最小可靠性代價(jià)。用數(shù)組prev[i]記錄從start到節(jié)點(diǎn)i的最小可靠性代價(jià)路徑上的前一個(gè)節(jié)點(diǎn)。算法終止時(shí),可根據(jù)數(shù)組prev找到從start到end的最小可靠性代價(jià)路徑上的每個(gè)節(jié)點(diǎn)。
通過(guò)模擬實(shí)驗(yàn)來(lái)測(cè)試本發(fā)明所提出的最大可靠性執(zhí)行方案求解算法mrep的有效性,我們采用云仿真軟件cloudsim3.0對(duì)并行任務(wù)的執(zhí)行進(jìn)行模擬實(shí)驗(yàn),cloudsim模擬實(shí)驗(yàn)的主要流程如下:按設(shè)置的參數(shù)初始化各個(gè)離散對(duì)象→啟動(dòng)仿真→資源注冊(cè)→代理broker向信息中心查詢資源→計(jì)算云任務(wù)在計(jì)算資源上的執(zhí)行可靠性→按設(shè)定的調(diào)度策略為任務(wù)分配相匹配的資源→云資源執(zhí)行任務(wù)→任務(wù)執(zhí)行完成→返回最終結(jié)果→結(jié)束仿真,我們采用java語(yǔ)言編寫仿真程序,開發(fā)環(huán)境為基于java的、開放源代碼的可擴(kuò)展集成開發(fā)平臺(tái)eclipse,cloudsim3.0模擬程序運(yùn)行在intel奔騰雙核e5800、3.2ghz、1gbddr3、windowsxp專業(yè)版32位sp3操作系統(tǒng)的戴爾臺(tái)式機(jī)上。
評(píng)價(jià)指標(biāo):第一,可靠性代價(jià):為并行任務(wù)的子任務(wù)獨(dú)立執(zhí)行的可靠性代價(jià)與任務(wù)間依賴數(shù)據(jù)傳輸?shù)目煽啃源鷥r(jià)之和;第二,平均成功率:表示成功運(yùn)行的任務(wù)數(shù)與提交的總?cè)蝿?wù)數(shù)之間的比值;第三,完成時(shí)間:表示從任務(wù)提交到得到任務(wù)結(jié)果的時(shí)間。
結(jié)合附圖4~9所述一種云環(huán)境下執(zhí)行可靠性感知的并行任務(wù)調(diào)度方法,實(shí)驗(yàn)分析故障率程度不同的處理機(jī)對(duì)并行任務(wù)平均可靠性代價(jià)、平均成功率和平均完成時(shí)間的影響,為評(píng)價(jià)發(fā)明所提算法的性能,將發(fā)明算法與heft算法和prms算法在低故障率程度和高故障率程度情況下進(jìn)行比較,并行任務(wù)dag圖隨機(jī)生成,任務(wù)的個(gè)數(shù)、每個(gè)子任務(wù)的大小、任務(wù)間的通信量,以及處理機(jī)的處理能力、故障率,處理機(jī)間鄰接鏈路的通信帶寬、故障率等都在預(yù)定范圍內(nèi)以規(guī)定的概率產(chǎn)生,實(shí)驗(yàn)過(guò)程中每種規(guī)模的任務(wù)執(zhí)行多次調(diào)度算法,并行任務(wù)執(zhí)行可靠性代價(jià)、成功率和完成時(shí)間取其平均值,附圖4和附圖5所示為不同故障率程度下并行任務(wù)調(diào)度算法的性能比較,由附圖4可知,在處理機(jī)故障率比較低的情況下,heft和mrep表現(xiàn)比較好,但prms表現(xiàn)最差,由附圖5所知,在處理機(jī)故障率比較高的情況下,heft表現(xiàn)最差,mrep最好。
heft算法調(diào)度任務(wù)時(shí),將任務(wù)盡可能調(diào)度到具有最早完成時(shí)間的處理機(jī)上,而不考慮處理機(jī)執(zhí)行任務(wù)的可靠性,因此,在穩(wěn)定的環(huán)境下,heft性能最好,prms和mrep在調(diào)度時(shí),都考慮了任務(wù)在處理機(jī)上運(yùn)行的可靠性代價(jià),mrep還考慮了通信的可靠性代價(jià),在穩(wěn)定的資源環(huán)境下,計(jì)算可靠性代價(jià)會(huì)帶來(lái)額外的計(jì)算開銷,從而導(dǎo)致任務(wù)完成時(shí)間延長(zhǎng),在不穩(wěn)定的處理機(jī)環(huán)境下,頻繁的處理機(jī)故障導(dǎo)致heft任務(wù)失敗率高,再調(diào)度故障任務(wù)將增加任務(wù)的完成時(shí)間。
prms算法基于alap,在穩(wěn)定的計(jì)算環(huán)境下,heft算法在表調(diào)度算法中表現(xiàn)最優(yōu),alap算法則較差;prms算法首先基于alap生成任務(wù)調(diào)度列表,然后從任務(wù)調(diào)度列表中取出具有最早開始時(shí)間的任務(wù),為其選擇新的完成時(shí)間要早于alap調(diào)度值且可靠性代價(jià)最小的資源,但其每次局部選擇資源并不能保證并行任務(wù)整體執(zhí)行可靠性最高。
本發(fā)明的mrep算法是在并行任務(wù)的所有可靠性執(zhí)行方案中,求出最小可靠性代價(jià)路徑所對(duì)應(yīng)的執(zhí)行方案作為調(diào)度方案,雖然求解最大可靠性執(zhí)行方案帶來(lái)了額外計(jì)算開銷,但相比重新調(diào)度多個(gè)故障任務(wù)重新執(zhí)行將增加任務(wù)的完成時(shí)間是值得的,處理機(jī)的故障率大小其實(shí)也體現(xiàn)了處理機(jī)處理能力的快慢,通常處理速度較快的處理機(jī),其發(fā)生故障的概率也越小,可執(zhí)行方案的可靠性代價(jià)越小意味著較小的處理故障率、較小的任務(wù)執(zhí)行時(shí)間,因此mrep算法表現(xiàn)出較好的性能。
本發(fā)明未詳述部分為現(xiàn)有技術(shù),盡管結(jié)合優(yōu)選實(shí)施方案具體展示和介紹了本發(fā)明,具體實(shí)現(xiàn)該技術(shù)方案方法和途徑很多,以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,但所屬領(lǐng)域的技術(shù)人員應(yīng)該明白,在不脫離所附權(quán)利要求書所限定的本發(fā)明的精神和范圍內(nèi),在形式上和細(xì)節(jié)上可以對(duì)本發(fā)明做出各種變化,均為本發(fā)明的保護(hù)范圍。