本發(fā)明涉及高性能計(jì)算領(lǐng)域,尤其是指一種結(jié)合負(fù)載均衡的工作流回填方法。
背景技術(shù):
大數(shù)據(jù)背景下,數(shù)據(jù)呈指數(shù)級(jí)別增加,大數(shù)據(jù)的處理依賴以集群為主的高性能計(jì)算系統(tǒng),而高性能計(jì)算系統(tǒng)的性能又很大程度上依賴于調(diào)度和負(fù)載均衡策略,所以一個(gè)好的調(diào)度策略和負(fù)載均衡策略顯得越為重要。
如今運(yùn)行在高性能計(jì)算系統(tǒng)上任務(wù)流越來越多,例如基因測序?;驕y序是對(duì)目標(biāo)DNA進(jìn)行堿基的序列測定,并進(jìn)行各種相關(guān)分析?;驕y序已經(jīng)廣泛應(yīng)用于快速疾病診斷、疫情檢測、大規(guī)模物種群體進(jìn)化及個(gè)性化醫(yī)療等?;驕y序的大部分計(jì)算任務(wù)如全基因組重測序(WGRS)等都需要大量的計(jì)算,耗費(fèi)巨大資源,依賴于高性能平臺(tái)處理,而且都是典型的工作流計(jì)算任務(wù)。然而適合任務(wù)流的調(diào)度策略卻很少,很多系統(tǒng)將任務(wù)流拆分成單個(gè)任務(wù)運(yùn)行,按照傳統(tǒng)的單任務(wù)投遞方式進(jìn)行調(diào)度,也就是單個(gè)任務(wù)投遞,下一級(jí)任務(wù)依賴上一級(jí)任務(wù)結(jié)果的則進(jìn)行人工等待,等上一級(jí)任務(wù)完成則將上一級(jí)運(yùn)行結(jié)果作為輸入,開始下一級(jí)的任務(wù)。隨著技術(shù)的發(fā)展,目前也有許多運(yùn)行任務(wù)流的系統(tǒng),但仍然存在以下問題:
(1)在系統(tǒng)層面上,雖然整個(gè)計(jì)算任務(wù)是按照任務(wù)流提交,通過設(shè)定任務(wù)流的有向無環(huán)圖(DAG)提交給系統(tǒng),但是系統(tǒng)調(diào)度本質(zhì)上還是以單個(gè)任務(wù)為單位,只不過無需人工的等待并能夠自動(dòng)運(yùn)行下一級(jí)任務(wù),調(diào)度策略還是以單個(gè)任務(wù)為單位,并不是以整個(gè)任務(wù)流作為調(diào)度單位,因此計(jì)算效率無法保證。
(2)在工作流調(diào)度時(shí),經(jīng)常出現(xiàn)任務(wù)特性和任務(wù)規(guī)模差異較大的情況。目前很多調(diào)度方法主要關(guān)注調(diào)度效率,例如在一般任務(wù)調(diào)度上有良好表現(xiàn)的資源預(yù)留與回填(簡稱回填,Backfilling)技術(shù)得到了廣泛的應(yīng)用,已成為并行作業(yè)調(diào)度的基本方法。它一方面為作業(yè)提前預(yù)留處理以保證能夠盡快執(zhí)行該作業(yè);另一方面,在不造成預(yù)留的作業(yè)被延遲的前提下,按照先后順序?qū)⒛切┬枰幚頇C(jī)數(shù)量較少的后續(xù)等待作業(yè)分配到當(dāng)前空閑的處理機(jī)上。然而對(duì)任務(wù)調(diào)度過程的負(fù)載均衡并沒有較多關(guān)注。
(3)在很多實(shí)際運(yùn)行的高性能計(jì)算系統(tǒng)上,普遍存在普通任務(wù)與工作流任務(wù)同時(shí)運(yùn)行的情況。普通任務(wù)與工作流任務(wù)同時(shí)搶占系統(tǒng)資源,如果工作流任務(wù)未能被及時(shí)調(diào)度,對(duì)系統(tǒng)性能造成的影響可能要遠(yuǎn)遠(yuǎn)大于普通任務(wù),從而對(duì)系統(tǒng)負(fù)載均衡和調(diào)度效率都會(huì)造成更大的影響。
要達(dá)到負(fù)載均衡,那么就需要了解各任務(wù)屬性和各主機(jī)屬性,把一些資源消耗較大的任務(wù)調(diào)度到負(fù)載較輕的主機(jī)上,這樣就不會(huì)出現(xiàn)各主機(jī)負(fù)載差異過大,以達(dá)到負(fù)載均衡的目標(biāo),并提高資源利用率。本發(fā)明基于以上目標(biāo),提出了一種結(jié)合負(fù)載均衡的工作流調(diào)度策略。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺點(diǎn)與不足,在典型高性能計(jì)算系統(tǒng)計(jì)算任務(wù)日志特性的基礎(chǔ)上,提出了一種結(jié)合負(fù)載均衡的工作流回填方法,該方法能夠有效地調(diào)度任務(wù)流,減少任務(wù)流的執(zhí)行時(shí)間,同時(shí)還能夠?qū)崿F(xiàn)高性能計(jì)算系統(tǒng)眾多節(jié)點(diǎn)的負(fù)載均衡。
為實(shí)現(xiàn)上述目的,本發(fā)明所提供的技術(shù)方案為:一種結(jié)合負(fù)載均衡的工作流回填方法,包括以下步驟:
1)對(duì)任務(wù)特性的劃分
先對(duì)任務(wù)進(jìn)行分類,采用kmeans聚類方式將任務(wù)劃分成CPU資源消耗型或者IO資源消耗型,主要是標(biāo)識(shí)任務(wù)類型,聚類的類別數(shù)k的確定,采用一種失真度的度量方式來確定聚類類別數(shù)k,如下式(1)和式(2)所示:
式中,sk為聚成k類的總失真度sk=∑k∑i(xi-xk)2,xi第i個(gè)輸入數(shù)據(jù),xk為第k個(gè)中心點(diǎn),αk為權(quán)重,Nd為輸入數(shù)據(jù)維數(shù),αk-1和sk-1分別是聚k-1類的權(quán)值和失真度,f(k)則表示聚成k類的失真度比例;通過不斷的選擇k取值,獲取f(k)-k的變化曲線,然后找出變化曲線最低點(diǎn),最低點(diǎn)即類別k理想情況;在最低點(diǎn)處,失真度sk達(dá)到最??;通過式(1)、(2)確定k,最后再依據(jù)下式(3)計(jì)算每個(gè)數(shù)據(jù)的類型信息;
式中,xi表示第i個(gè)數(shù)據(jù)點(diǎn),ck表示第k個(gè)聚類中心點(diǎn),f(xi)表示映射的任務(wù)類別信息值;任務(wù)模型根據(jù)任務(wù)基本屬性CPU、IO以及任務(wù)類別信息值f(xi)這3屬性在模擬平臺(tái)上產(chǎn)生任務(wù);
2)對(duì)回填策略的改進(jìn)
主要對(duì)算法層面進(jìn)行改進(jìn),使回填算法能夠適應(yīng)工作流;在對(duì)傳統(tǒng)回填算法改進(jìn)上增加了工作流調(diào)度方式、工作流輸入方式即輸入任務(wù)和任務(wù)偏序關(guān)系;還包含了對(duì)工作流調(diào)度方案的改進(jìn),主要是對(duì)回填調(diào)度算法改進(jìn),以及工作流單位和普通單個(gè)任務(wù)的競爭約束規(guī)則;改進(jìn)回填算法執(zhí)行流程:在模擬平臺(tái)上先根據(jù)任務(wù)2個(gè)資源屬性即CPU、IO數(shù)據(jù)以及類別信息值,結(jié)合平臺(tái)設(shè)置相關(guān)參數(shù)產(chǎn)生任務(wù),然后再根據(jù)任務(wù)之間的偏序關(guān)系生成任務(wù)流,具體是利用鄰接矩陣,建立DAG來保存任務(wù)流信息,最后增加了設(shè)置任務(wù)優(yōu)先級(jí)操作,對(duì)任務(wù)優(yōu)先級(jí)進(jìn)行設(shè)置,將任務(wù)提交至等待隊(duì)列;在等待隊(duì)列中首先選擇可調(diào)度任務(wù),掃描等待隊(duì)列,從隊(duì)列頭開始調(diào)度,查看任務(wù)資源需求是否得到滿足,然后對(duì)任務(wù)流檢測,如果是任務(wù)流,則檢測父級(jí)任務(wù)是否完成,如果能夠調(diào)度則提交給調(diào)度器,否則將任務(wù)進(jìn)行回填處理,將任務(wù)提交至回填子程序,最后對(duì)任務(wù)運(yùn)行時(shí)間的精確預(yù)測操作,尋找回填間隙,如果能夠回填,則重新提交給任務(wù)流檢測子程序,如果不能回填,則將任務(wù)仍放入等待隊(duì)列,開啟下一個(gè)任務(wù);
對(duì)任務(wù)運(yùn)行時(shí)間的預(yù)測,主要是利用前后N條歷史數(shù)據(jù)來獲取限定,然后根據(jù)下式(4)、(5)預(yù)測任務(wù)運(yùn)行時(shí)間;
式中,tj為任務(wù)j的預(yù)測運(yùn)行時(shí)間,wi為權(quán)值,ri為任務(wù)i的實(shí)際運(yùn)行時(shí)間,JRRi為任務(wù)i的請(qǐng)求運(yùn)行時(shí)間,N為歷史數(shù)據(jù)條數(shù);回填策略的好壞直接受任務(wù)預(yù)測時(shí)間準(zhǔn)確性影響,通過式(4)獲取任務(wù)的運(yùn)行時(shí)間,能夠很好的改善回填效果;
對(duì)于工作流任務(wù)和普通任務(wù)之間的競爭規(guī)則,提出以下3條對(duì)工作流和普通任務(wù)之間競爭關(guān)系的約束:
a、普通任務(wù)和工作流比較,設(shè)置工作流和普通任務(wù)熵閾值,如果低于閾值,則提高普通任務(wù)優(yōu)先級(jí),普通任務(wù)和工作流同等對(duì)待,否則工作流優(yōu)先級(jí)高于普通任務(wù),如果只調(diào)度工作流,忽略該約束;
b、工作流任務(wù)的選擇則需要判斷前驅(qū)即所有直接父級(jí)任務(wù)已經(jīng)結(jié)束,否則不能作回填;
c、工作流任務(wù)符合b點(diǎn)之間的比較排序,不同優(yōu)先級(jí)隊(duì)列任務(wù),高優(yōu)先級(jí)要先高于低優(yōu)先級(jí),同優(yōu)先級(jí)則無差別對(duì)待;
對(duì)于約束a作相應(yīng)的解釋,如果調(diào)度普通任務(wù)和工作流任務(wù)混合場景,則要設(shè)置普通任務(wù)和任務(wù)流的優(yōu)先級(jí),否則忽略本約束;這里定義了工作流任務(wù)和普通任務(wù)之間的熵s=-PwflogPwf-PglogPg,其中Pwf表示工作流任務(wù)比例,Pg表示普通任務(wù)比例,并且Pg+Pwf=1,熵值S表現(xiàn)工作流任務(wù)和普通任務(wù)之間的均勻程度,所以熵值偏小,說明普通任務(wù)或工作流任務(wù)占比不均勻;設(shè)置熵閾值L,能夠保證普通任務(wù)和工作流任務(wù)都能夠得到調(diào)度,而不會(huì)出現(xiàn)工作流得到充分調(diào)度,普通任務(wù)得不到調(diào)度的情況;如果S<L并且Pwf<0.5,則提升任務(wù)流優(yōu)先級(jí),S<L并且Pg<0.5,則提升普通任務(wù)優(yōu)先級(jí),如果S>L,優(yōu)先工作流;
3)回填任務(wù)的投遞
回填任務(wù)投遞需要遵循2條策略:一是作業(yè)需求的處理器數(shù)目小于當(dāng)前的空閑處理器數(shù),并且需要在陰影時(shí)間即從當(dāng)前時(shí)間到任務(wù)開始回填的這段時(shí)間之前預(yù)期結(jié)束;二是任務(wù)隊(duì)列排序不僅要考慮bml,該bml為backfilling matching level,是在等待隊(duì)列中影響選擇回填任務(wù)的一個(gè)因子,具體定義見下式(6),還要考慮各個(gè)資源主機(jī)或者虛擬機(jī)的負(fù)載和任務(wù)類別屬性的匹配程度定義cml,該cml為class matching level,是在等待隊(duì)列中影響回填任務(wù)選擇主機(jī)的一個(gè)因子,具體定義見下式(7),利用如下兩個(gè)公式計(jì)算兩個(gè)匹配因子:
式中,cores_level=request_cores/free_cores,time_level=pre_runtime/shadow_time,request_cores為請(qǐng)求的核數(shù),free_cores為當(dāng)前空閑的核數(shù),pre_runtime為任務(wù)預(yù)測運(yùn)行時(shí)間,shadow_time為陰影時(shí)間,即當(dāng)前時(shí)間到任務(wù)回填開始時(shí)間;回填任務(wù)投遞給主機(jī),考慮主機(jī)負(fù)載情況,再結(jié)合任務(wù)特性,給要投遞的任務(wù)尋找合適的主機(jī),尋找規(guī)則是負(fù)載高主機(jī)選擇IO消耗型,負(fù)載低則選擇CPU消耗型,從而達(dá)到負(fù)載均衡的目的。
本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點(diǎn)與有益效果:
1、本發(fā)明結(jié)合實(shí)際工作流,改變手工按步驟提交運(yùn)行腳本方式,提供工作流作輸入方式,相比傳統(tǒng)分步驟的輸入方式,本方法能夠極大的降低中間等待時(shí)間和成本。
2、本發(fā)明對(duì)任務(wù)作了相應(yīng)的聚類來標(biāo)識(shí)任務(wù)特性。對(duì)任務(wù)作分類標(biāo)識(shí)處理,區(qū)分IO密集型或者CPU密集型,并應(yīng)用于任務(wù)調(diào)度中,結(jié)合主機(jī)負(fù)載,改進(jìn)回填任務(wù)投遞方式,有效實(shí)現(xiàn)各主機(jī)負(fù)載均衡。
3、本發(fā)明對(duì)回填調(diào)度策略進(jìn)行改進(jìn),通過定義任務(wù)競爭規(guī)則,精確預(yù)測任務(wù)運(yùn)行時(shí)間,優(yōu)化回填調(diào)度策略。改進(jìn)回填策略不僅可以調(diào)度工作流,有效降低任務(wù)等待時(shí)間,還能夠提高任務(wù)執(zhí)行效率。
附圖說明
圖1為工作流整體調(diào)度執(zhí)行流程。
圖2為工作流回填流程。
圖3為多優(yōu)先級(jí)設(shè)置流程。
圖4為工作流檢測流程。
圖5為尋找時(shí)間間隙流程。
具體實(shí)施方式
下面結(jié)合具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明。
本實(shí)施例所述的結(jié)合負(fù)載均衡的工作流回填方法,具體情況如下:
一、對(duì)任務(wù)特性的劃分
先對(duì)任務(wù)進(jìn)行分類,采用kmeans聚類方式將任務(wù)劃分成CPU資源消耗型或者IO資源消耗型,主要是標(biāo)識(shí)任務(wù)類型,同時(shí)還要確定要聚類的類別數(shù)k,采用一種失真度的度量方式來確定聚類k,如下式(1)、(2)所示:
其中,sk為聚成k類的總失真度sk=∑k∑i(xi-xk)2,xi第i個(gè)輸入數(shù)據(jù),xk為第k個(gè)中心點(diǎn),αk為權(quán)重,Nd為輸入數(shù)據(jù)維數(shù),αk-1和sk-1分別是聚k-1類的權(quán)值和失真度,f(k)則表示聚成k類的失真度比例。通過不斷的選擇k取值(可取經(jīng)驗(yàn)值2至20),可獲取f(k)-k的變化曲線,然后找出變化曲線最低點(diǎn),最低點(diǎn)即類別k較理想情況。在最低點(diǎn)處,失真度sk達(dá)到最小。通過式(1)、(2)確定k,然后再依據(jù)式(3)計(jì)算每個(gè)數(shù)據(jù)的類型信息。
其中,xi表示第i個(gè)數(shù)據(jù)點(diǎn),ck表示第k個(gè)聚類中心點(diǎn),f(xi)表示映射的任務(wù)類別信息值。任務(wù)模型可根據(jù)任務(wù)基本屬性(CPU、IO)以及任務(wù)類別信息值f(xi)這3屬性在模擬平臺(tái)上產(chǎn)生任務(wù)。
二、對(duì)回填策略的改進(jìn)
主要是對(duì)回填算法的一些改進(jìn)。在改進(jìn)回填算法之前,先對(duì)算法流程進(jìn)行簡要說明。如圖1所示的整體算法流程圖,在模擬平臺(tái)上先根據(jù)任務(wù)2個(gè)資源屬性(CPU、IO)數(shù)據(jù)以及類別信息值,結(jié)合平臺(tái)設(shè)置相關(guān)參數(shù)產(chǎn)生任務(wù),然后再根據(jù)任務(wù)之間的偏序關(guān)系生成任務(wù)流(利用鄰接矩陣),建立DAG來保存任務(wù)流信息,最后將任務(wù)流提交至等待隊(duì)列或者將普通任務(wù)提交至等待隊(duì)列(不同任務(wù)類型,提交至相應(yīng)的隊(duì)列)。如圖2所示的改進(jìn)回填算法,增加設(shè)置任務(wù)優(yōu)先級(jí)操作,然后將任務(wù)提交至等待隊(duì)列。在等待隊(duì)列中首先選擇可調(diào)度任務(wù)(掃描等待隊(duì)列,從隊(duì)列頭開始調(diào)度,查看任務(wù)資源需求是否得到滿足,增加任務(wù)流檢測,如果是任務(wù)流,則檢測父級(jí)任務(wù)是否完成),如果能夠調(diào)度則提交給調(diào)度器,否則將任務(wù)進(jìn)行回填處理,將任務(wù)提交至回填子程序(增加任務(wù)運(yùn)行時(shí)間的精確預(yù)測操作),尋找回填間隙,如果可以回填,則重新提交給任務(wù)流檢測子程序,如果不能回填,則將任務(wù)仍放入等待隊(duì)列,開啟下一個(gè)任務(wù)。調(diào)度器對(duì)任務(wù)調(diào)度,通過增加匹配度因子(權(quán)衡主機(jī)負(fù)載和任務(wù)類型匹配程度的因子,具體定義如式(6)、(7)所示)檢測,將任務(wù)投遞到合適的主機(jī)進(jìn)行調(diào)度。
上面對(duì)改進(jìn)回填調(diào)度流程進(jìn)行相應(yīng)的說明,針對(duì)傳統(tǒng)回填策略的不足,對(duì)傳統(tǒng)回填作了相應(yīng)的改進(jìn),包括以下2點(diǎn):
1.對(duì)任務(wù)運(yùn)行時(shí)間的預(yù)測,主要是利用前后N條歷史數(shù)據(jù)來獲取限定,然后根據(jù)式(4)(5)預(yù)測任務(wù)運(yùn)行時(shí)間。
其中tj為任務(wù)j的預(yù)測運(yùn)行時(shí)間,wi為權(quán)值,ri為任務(wù)i的實(shí)際運(yùn)行時(shí)間,JRRi為任務(wù)i的請(qǐng)求運(yùn)行時(shí)間,N為歷史數(shù)據(jù)條數(shù)。通過式(4)可以獲取任務(wù)的運(yùn)行時(shí)間,回填策略的好壞直接受任務(wù)預(yù)測時(shí)間準(zhǔn)確性影響,預(yù)測一個(gè)較準(zhǔn)確的任務(wù)運(yùn)行時(shí)間可以很好的改善回填效果。
2.多優(yōu)先級(jí)任務(wù)設(shè)定,對(duì)任務(wù)流的調(diào)度比較復(fù)雜,如果不設(shè)置和定義相應(yīng)的優(yōu)先級(jí),則任務(wù)流和普通任務(wù),競爭關(guān)系無法確定,無法確定優(yōu)先調(diào)度工作流還是普通任務(wù)。原回填策略因?yàn)檎{(diào)度單位是普通任務(wù),所以任務(wù)之間平等關(guān)系,無優(yōu)先級(jí)之分,改進(jìn)回填策略調(diào)度單位為工作流,和普通任務(wù)之間是有相應(yīng)的優(yōu)先級(jí)區(qū)別。因此提出以下3條對(duì)工作流和普通任務(wù)之間競爭關(guān)系的約束:
1)普通任務(wù)和工作流比較,設(shè)置工作流和普通任務(wù)熵閾值,如果低于閾值,則提高普通任務(wù)優(yōu)先級(jí),普通任務(wù)和工作流同等對(duì)待,否則工作流優(yōu)先級(jí)高于普通任務(wù)。如果只調(diào)度工作流,忽略該約束。
2)工作流任務(wù)的選擇則需要判斷前驅(qū)(所有直接父級(jí)任務(wù))已經(jīng)結(jié)束,否則不能作回填。
3)工作流任務(wù)(符合第2點(diǎn))之間的比較排序,不同優(yōu)先級(jí)隊(duì)列任務(wù),高優(yōu)先級(jí)要先高于低優(yōu)先級(jí),同優(yōu)先級(jí)則無差別對(duì)待。
對(duì)于約束1作相應(yīng)的解釋,如果調(diào)度普通任務(wù)和工作流任務(wù)混合場景,則要設(shè)置普通任務(wù)和任務(wù)流的優(yōu)先級(jí),否則忽略本約束。這里定義了工作流任務(wù)和普通任務(wù)之間的熵s=-PwflogPwf-PglogPg,其中Pwf表示工作流任務(wù)比例,Pg表示普通任務(wù)比例,并且Pg+Pwf=1,熵值S表現(xiàn)工作流任務(wù)和普通任務(wù)之間的均勻程度,所以熵值偏小,說明普通任務(wù)或工作流任務(wù)占比不均勻。設(shè)置熵閾值L,可以保證普通任務(wù)和工作流任務(wù)都能夠得到調(diào)度,而不會(huì)出現(xiàn)工作流得到充分調(diào)度,普通任務(wù)得不到調(diào)度的情況。如果S<L并且Pwf<0.5,則提升任務(wù)流優(yōu)先級(jí),S<L并且Pg<0.5,則提升普通任務(wù)優(yōu)先級(jí),如果S>L,優(yōu)先工作流。
三、回填任務(wù)的投遞
需要遵循下面2條策略:一是作業(yè)需求的處理器數(shù)目小于當(dāng)前的空閑處理器數(shù),并且需要在陰影時(shí)間(從當(dāng)前時(shí)間到任務(wù)開始回填的這段時(shí)間)之前預(yù)期結(jié)束。二是任務(wù)隊(duì)列排序時(shí)定義bml(backfilling matching level,在等待隊(duì)列中影響選擇回填任務(wù)的一個(gè)因子),見式(6),還要考慮各個(gè)資源主機(jī)或者虛擬機(jī)的負(fù)載和任務(wù)類別屬性的匹配程度定義cml(class matching level,在等待隊(duì)列中影響回填任務(wù)選擇主機(jī)的一個(gè)因子),見式(7)。利用如下兩個(gè)公式可計(jì)算兩個(gè)匹配因子:
其中cores_level=request_cores/free_cores,time_level=pre_runtime/shadow_time,request_cores為請(qǐng)求的核數(shù),free_cores為當(dāng)前空閑的核數(shù),pre_runtime為任務(wù)預(yù)測運(yùn)行時(shí)間,shadow_time為陰影時(shí)間(當(dāng)前時(shí)間到任務(wù)回填開始時(shí)間)。
回填任務(wù)投遞給主機(jī),考慮主機(jī)負(fù)載情況,再結(jié)合任務(wù)特性,給要投遞的任務(wù)尋找合適的主機(jī),尋找規(guī)則是負(fù)載高主機(jī)選擇IO消耗型,負(fù)載低則選擇CPU消耗型,從而達(dá)到負(fù)載均衡的目的。
通過以上改進(jìn),可使回填策略能夠調(diào)度工作流和達(dá)到負(fù)載均衡的目的。最后對(duì)各個(gè)子程序進(jìn)行相應(yīng)的說明,如圖3是優(yōu)先級(jí)的設(shè)置,按照內(nèi)容二的介紹,根據(jù)資源屬性(CPU、IO)以及任務(wù)類別信息值,結(jié)合平臺(tái)參數(shù)生成相應(yīng)的任務(wù),利用提交過來的任務(wù),然后可以通過任務(wù)的ID在DAG處找到該任務(wù)所在的工作流,然后通過工作流的鄰接矩陣,可以找出該任務(wù)在工作流中的深度,這樣可以獲取任務(wù)的優(yōu)先級(jí)。圖4是檢測任務(wù)的父級(jí)任務(wù)是否完成,調(diào)度任務(wù)流或任務(wù)的時(shí)候需要進(jìn)行任務(wù)流檢測,也就是說該任務(wù)如果是任務(wù)流,那么必須對(duì)檢測所有父級(jí)任務(wù)的完成,否則不能調(diào)度該任務(wù)。如果任務(wù)為普通任務(wù),那么按照正常的策略進(jìn)行調(diào)度。圖5則是給回填任務(wù)選擇適合的主機(jī),分配主機(jī)要先檢測可以分配的主機(jī)群,然后對(duì)任務(wù)做匹配度因子cml的檢測,選擇出最佳的匹配主機(jī)。在任務(wù)調(diào)度階段,還需要做一個(gè)任務(wù)的bml匹配因子調(diào)整,調(diào)整等待隊(duì)列任務(wù)順序,該操作在任務(wù)調(diào)度之前完成,通過bml調(diào)整等待隊(duì)列,優(yōu)先選取短小任務(wù)進(jìn)行回填。
以上所述實(shí)施例只為本發(fā)明之較佳實(shí)施例,并非以此限制本發(fā)明的實(shí)施范圍,故凡依本發(fā)明之形狀、原理所作的變化,均應(yīng)涵蓋在本發(fā)明的保護(hù)范圍內(nèi)。