本發(fā)明涉及一種作業(yè)執(zhí)行時間預(yù)測方法,具體地,涉及一種基于大數(shù)據(jù)處理框架共有特征的批作業(yè)執(zhí)行時間預(yù)測方法,屬于大數(shù)據(jù)技術(shù)領(lǐng)域。
背景技術(shù):
隨著計(jì)算機(jī)技術(shù)和互聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,數(shù)據(jù)呈爆炸式瘋狂增長。為了應(yīng)對海量數(shù)據(jù)處理壓力,先后出現(xiàn)了MapReduce、Dryad、Spark等多種大數(shù)據(jù)處理框架。這些框架的基本原理都是首先將海量數(shù)據(jù)劃分成小塊,然后分布到不同的節(jié)點(diǎn),并行處理。在實(shí)際應(yīng)用中,首先需要將框架部署到大規(guī)模集群上,依托集群提供的計(jì)算和存儲資源進(jìn)行大數(shù)據(jù)處理。有學(xué)者的研究表明,集群中的負(fù)載可以分成兩類:非周期性作業(yè)和周期性作業(yè)。非周期性作業(yè)通常是一些實(shí)驗(yàn)負(fù)載,規(guī)模大小不一,運(yùn)行數(shù)秒數(shù)分鐘都有可能。而周期性作業(yè)往往是規(guī)模較大的生產(chǎn)負(fù)載,與公司的核心業(yè)務(wù)密切相關(guān),一旦提交,必須立即執(zhí)行。但是,在資源競爭激烈的大數(shù)據(jù)環(huán)境,保證及時執(zhí)行高優(yōu)先級作業(yè)極具挑戰(zhàn)。
通常,為了保證及時執(zhí)行生產(chǎn)作業(yè),由人工估算等待隊(duì)列中已有作業(yè)的執(zhí)行時間,并根據(jù)估算結(jié)果在生產(chǎn)作業(yè)到來之前拒絕接收新作業(yè),以便給已有作業(yè)預(yù)留足夠多的執(zhí)行時間。然而,由于人工估算誤差較大,集群往往提前處理處理完這些作業(yè)并進(jìn)入空轉(zhuǎn)狀態(tài)。由于生產(chǎn)作業(yè)與核心業(yè)務(wù)密切相關(guān),現(xiàn)有的策略必須保證生產(chǎn)作業(yè)到來時等待隊(duì)列為空,如此生產(chǎn)作業(yè)一旦提交就可立即執(zhí)行。為做到這一點(diǎn),現(xiàn)有策略寧可讓集群進(jìn)入空轉(zhuǎn)狀態(tài),也不愿盡可能多執(zhí)行一些作業(yè),從而降低了資源利用率和系統(tǒng)吞吐量。如果能獲得等待隊(duì)列中所有作業(yè)較準(zhǔn)確的執(zhí)行時間,集群便可合理的安排作業(yè)調(diào)度,在生產(chǎn)作業(yè)到達(dá)前處理盡可能多的作業(yè),從而提高資源的利用率和系統(tǒng)的吞吐量。
通過分析現(xiàn)有大數(shù)據(jù)處理過程的特征,發(fā)現(xiàn)作業(yè)的執(zhí)行過程都被劃分成多個不同的階段,每個階段包含若干任務(wù)并執(zhí)行特定的處理操作,且只有在前一階段所有任務(wù)執(zhí)行結(jié)束后才能進(jìn)入后一階段。階段之間存在一定的數(shù)據(jù)依賴關(guān)系,即前一階段的輸出數(shù)據(jù)是后一階段的輸入數(shù)據(jù)。只要作業(yè)類型相同,劃分出的階段和階段中任務(wù)執(zhí)行的操作也相同,差別只在每個任務(wù)要處理的數(shù)據(jù)規(guī)模。因此,在數(shù)據(jù)規(guī)模一定的前提下,如果能獲取每個階段中任務(wù)的執(zhí)行時間、集群可用的資源信息等因素,便可預(yù)測單個作業(yè)的完成時間,進(jìn)而預(yù)測等待隊(duì)列中所有作業(yè)的執(zhí)行時間。
技術(shù)實(shí)現(xiàn)要素:
為了解決現(xiàn)有技術(shù)中存在的種種問題,本發(fā)明提出了一種基于大數(shù)據(jù)處理框架共有特征的批作業(yè)執(zhí)行時間預(yù)測方法。該方法包括以下步驟:
一、為復(fù)雜作業(yè)創(chuàng)建作業(yè)模型:在作業(yè)模型中指明被派生的作業(yè)類型及執(zhí)行階段,每個作業(yè)執(zhí)行階段的任務(wù)數(shù)量、輸入數(shù)據(jù)信息;
二、分析歷史數(shù)據(jù),獲取各類作業(yè)在多種準(zhǔn)確度下各種類任務(wù)的執(zhí)行時間:利用概率統(tǒng)計(jì)分析各類作業(yè)中每種任務(wù)在不同類型節(jié)點(diǎn)上的執(zhí)行時間,獲取每種任務(wù)在不同概率下的統(tǒng)計(jì)執(zhí)行時間;
三、預(yù)測時間片的可用時間:如果時間片處于空閑狀態(tài),按1)表示可用時間;如果時間片處于忙狀態(tài),按照2)和3)預(yù)測可用時間;
1)Sn,i表示節(jié)點(diǎn)n上的第i個時間片;表示Sn,i的可用時間,即從時刻起,時間片可用;值為-1表示Sn,i當(dāng)前處于空閑狀態(tài);
2)從上述步驟二的結(jié)果中查找與Sn,i正在執(zhí)行的任務(wù)匹配的數(shù)據(jù),計(jì)算Sn,i的可用時間其中表示Sn,i開始執(zhí)行當(dāng)前任務(wù)的時間,即當(dāng)前時間片由空閑狀態(tài)轉(zhuǎn)變成忙狀態(tài)的時間;T<x,y,ntype>和I<x,y>是步驟二的結(jié)果中與Sn,i正在執(zhí)行的任務(wù)匹配的數(shù)據(jù),T<x,y,ntype>表示x類型的作業(yè)中y類型的任務(wù)在ntype類型節(jié)點(diǎn)上的執(zhí)行時間,I<x,y>表示與T<x,y,ntype>對應(yīng)的輸入數(shù)據(jù)規(guī)模;I表示正占用Sn,i執(zhí)行的任務(wù)的輸入數(shù)據(jù)規(guī)模;
3)如果沒有匹配的歷史數(shù)據(jù),則根據(jù)任務(wù)的執(zhí)行進(jìn)度預(yù)測任務(wù)的完成時間,即其中T<x,y,r>表示任務(wù)在時刻開始后已執(zhí)行的時間;P<x,y,r>表示在T<x,y,r>時間內(nèi)任務(wù)的執(zhí)行進(jìn)度;
四、將每個時間片按照可用時間由小到大組織成隊(duì)列:對于特定種類的任務(wù)只能在特定種類的時間片上執(zhí)行的情況,需要首先對時間片分類,然后對每種類型的時間片分別建隊(duì)列,每個隊(duì)列中時間片按可用時間由小到大的順序組織;
五、將批作業(yè)開始執(zhí)行時間和結(jié)束執(zhí)行時間分別記為Tstart,Tend;Tstart,Tend分別取最大長整型數(shù)和最小長整型數(shù);
六、從等待隊(duì)列中取出下一個待調(diào)度的作業(yè),記為j,若判定該作業(yè)是簡單作業(yè),執(zhí)行步驟七;若判定是復(fù)雜作業(yè),執(zhí)行步驟八;
七、預(yù)測簡單作業(yè)的執(zhí)行時間:
1)根據(jù)作業(yè)信息劃分執(zhí)行階段,根據(jù)執(zhí)行先后次序,由小到大對每個階段進(jìn)行編號;
2)結(jié)合歷史信息和作業(yè)信息,計(jì)算在每個階段派生的任務(wù)數(shù)量及任務(wù)的輸入數(shù)據(jù)規(guī)模;
3)將j開始執(zhí)行時間和結(jié)束執(zhí)行時間分別記為Tj,start,Tj,end;Tj,start,Tj,end分別取最大長整型數(shù)和最小長整型數(shù);
4)按照階段編號由低到高的順序,選擇一個階段;
5)從選定階段中選擇一個任務(wù),對于選中任務(wù),執(zhí)行下列預(yù)測操作:
a)從選中任務(wù)對應(yīng)的時間片隊(duì)列中摘取隊(duì)首時間片,記為Sn,i,即該時間片是第n個節(jié)點(diǎn)上的第i個;
b)如果的值為-1,則將系統(tǒng)的當(dāng)前時間賦值給
c)如果時間片滿足則
d)從歷史信息中找到與該任務(wù)匹配的執(zhí)行時間T<x,y,ntype>,即x類型作業(yè)中y類型的任務(wù)在ntype類型節(jié)點(diǎn)上的執(zhí)行時間;
e)重新計(jì)算時間片的可用時間,即此處I為當(dāng)前任務(wù)的輸入數(shù)據(jù)規(guī)模;
f)如果Sn,i滿足則
g)按照可用時間由小到大的順序?qū)⒃摃r間片重新插入對應(yīng)的時間片隊(duì)列;
6)重復(fù)執(zhí)行步驟5),直到預(yù)測完選定階段中所有任務(wù)的執(zhí)行時間;
7)重復(fù)執(zhí)行步驟4)-5),直到所有階段中所有任務(wù)的執(zhí)行時間都預(yù)測結(jié)束;
8)將Tj,start和Tj,end作為作業(yè)j的開始時間和結(jié)束時間返回;
八、預(yù)測復(fù)雜作業(yè)的執(zhí)行時間:
1)將作業(yè)看作簡單作業(yè),根據(jù)步驟七預(yù)測作業(yè)的執(zhí)行時間;
2)從作業(yè)模型中找到與該作業(yè)對應(yīng)的模型,根據(jù)模型創(chuàng)建由該作業(yè)派生的所有作業(yè)并插入等待隊(duì)列末尾;
九、如果Tstart>Tj,start,則Tstart=Tj,start;如果Tj,end>Tend,則Tend=Tj,end;
十、重復(fù)步驟六至步驟九,直到等待隊(duì)列中最后一個作業(yè)的執(zhí)行時間預(yù)測結(jié)束為止。記Tend-Tstar為執(zhí)行完等待隊(duì)列中現(xiàn)有作業(yè)所需的時間。
本發(fā)明可預(yù)測一批大數(shù)據(jù)作業(yè)的執(zhí)行時間。根據(jù)預(yù)測結(jié)果,制定合理的調(diào)度策略,在高優(yōu)先級作業(yè)到來前,充分利用集群的計(jì)算資源在有限時間內(nèi)執(zhí)行盡可能多的作業(yè),進(jìn)一步提高集群的資源利用率和吞吐量。
具體實(shí)施方式
一、為復(fù)雜作業(yè)創(chuàng)建作業(yè)模型。作業(yè)模型指明由該作業(yè)派生的作業(yè)及其執(zhí)行方式。模型中要明確指明被派生的作業(yè)的執(zhí)行階段,每個階段的任務(wù)數(shù)量、輸入數(shù)據(jù)信息。
二、分析歷史數(shù)據(jù),獲取各類作業(yè)中各種類任務(wù)在多種準(zhǔn)確度下的執(zhí)行時間。
在分析過程中,利用概率統(tǒng)計(jì)的方法分析各類作業(yè)中各種任務(wù)在不同類型節(jié)點(diǎn)上的執(zhí)行時間,獲取其在不同概率下的統(tǒng)計(jì)執(zhí)行時間。本發(fā)明用概率表示準(zhǔn)確度。如果要求預(yù)測準(zhǔn)確度為80%,則選擇概率為0.8的分析結(jié)果作為預(yù)測參數(shù)。
步驟三:預(yù)測時間片的可用時間。如果時間片處于空閑狀態(tài),按1)所示方法表示其可用時間。如果時間片處于忙狀態(tài),則按照2)和3)預(yù)測其可用時間。
1)Sn,i表示節(jié)點(diǎn)n上的第i個時間片;表示Sn,i的可用時間,即從時刻起,時間片是可用的。值為-1表示Sn,i當(dāng)前處于空閑狀態(tài)。
2)從上述步驟二的結(jié)果中查找與Sn,i正在執(zhí)行的任務(wù)匹配的數(shù)據(jù),計(jì)算Sn,i的可用時間其中表示Sn,i開始執(zhí)行當(dāng)前任務(wù)的時間,即當(dāng)前時間片由空閑狀態(tài)轉(zhuǎn)變成忙狀態(tài)的時間;T<x,y,ntype>和I<x,y>是步驟二的結(jié)果中與Sn,i正在執(zhí)行的任務(wù)匹配的數(shù)據(jù),T<x,y,ntype>表示x類型的作業(yè)中y類型的任務(wù)在ntype類型節(jié)點(diǎn)上的執(zhí)行時間,I<x,y>表示與T<x,y,ntype>對應(yīng)的輸入數(shù)據(jù)規(guī)模;I表示正占用Sn,i執(zhí)行的任務(wù)的輸入數(shù)據(jù)規(guī)模。
3)如果沒有匹配的歷史數(shù)據(jù),則根據(jù)任務(wù)的執(zhí)行進(jìn)度預(yù)測任務(wù)的完成時間(時間片空閑時間)其中,T<x,y,r>表示任務(wù)在時刻開始后已執(zhí)行的時間;P<x,y,r>表示在T<x,y,r>時間內(nèi)任務(wù)的執(zhí)行進(jìn)度。
步驟四:將每個時間片按照可用時間由小到大的順序組織成隊(duì)列。
具體地,對于特定種類的任務(wù)只能在特定種類的時間片上執(zhí)行的情況,需要首先對時間片進(jìn)行分類,然后對每種類型的時間片分別建隊(duì)列,每個隊(duì)列的時間片按可用時間由小到大的順序組織。以基于MapReduce的大數(shù)據(jù)處理為例,時間片可以分成用于執(zhí)行map任務(wù)的時間片和用于執(zhí)行reduce任務(wù)的時間片兩種,分別排成兩個隊(duì)列。
步驟五:將批作業(yè)開始執(zhí)行時間和結(jié)束執(zhí)行時間分別記為Tstart,Tend;Tstart,Tend分別取最大長整型數(shù)和最小長整型數(shù)。
步驟六:從等待隊(duì)列中取出下一個待調(diào)度的作業(yè),記為j。若判定該作業(yè)是簡單作業(yè),執(zhí)行步驟七;若判定是復(fù)雜作業(yè),執(zhí)行步驟八。
具體地,根據(jù)歷史信息判斷當(dāng)前作業(yè)是簡單作業(yè)還是復(fù)雜作業(yè)。作業(yè)分成簡單作業(yè)和復(fù)雜作業(yè)。簡單作業(yè)在一次執(zhí)行結(jié)束后,產(chǎn)生最終輸出結(jié)果。復(fù)雜作業(yè)在一次執(zhí)行結(jié)束后,產(chǎn)生中間結(jié)果,并派生出新的作業(yè)。新作業(yè)以中間結(jié)果為輸入,繼續(xù)執(zhí)行。派生的新作業(yè)可能是簡單作業(yè),也可能是復(fù)雜作業(yè)。無論是哪種作業(yè),都通過模擬真實(shí)集群中作業(yè)的調(diào)度執(zhí)行過程來預(yù)測其執(zhí)行時間。在具體預(yù)測時,簡單作業(yè)的預(yù)測如步驟七,復(fù)雜作業(yè)的預(yù)測如步驟八。
步驟七:預(yù)測簡單作業(yè)的執(zhí)行時間。
1)根據(jù)j的作業(yè)信息劃分其執(zhí)行階段,根據(jù)執(zhí)行先后次序,由小到大對每個階段進(jìn)行編號。最先執(zhí)行的階段,編號最小。最后執(zhí)行的階段,編號最大。
2)結(jié)合歷史信息和作業(yè)信息,計(jì)算在每個階段派生的任務(wù)數(shù)量及任務(wù)的輸入數(shù)據(jù)規(guī)模。
3)將j的開始執(zhí)行時間和結(jié)束執(zhí)行時間分別記為Tj,start,Tj,end;Tj,start,Tj,end分別取最大長整型數(shù)和最小長整型數(shù)。
4)按照階段編號由低到高的順序,選擇一個階段。
5)從選定階段中選擇一個任務(wù),對于選中任務(wù),執(zhí)行下列預(yù)測操作:
a)從該任務(wù)對應(yīng)的時間片隊(duì)列中摘取隊(duì)首時間片,記其編號為Sn,i,即該時間片是第n個節(jié)點(diǎn)上的第i個Slot。
b)如果的值為-1,則將系統(tǒng)的當(dāng)前時間賦值給
c)如果時間片滿足則
d)根據(jù)作業(yè)信息、時間片的節(jié)點(diǎn)信息和所能接受的預(yù)測準(zhǔn)確度,從歷史信息中找到與該任務(wù)匹配的執(zhí)行時間T<x,y,ntype>以及與其對應(yīng)的輸入數(shù)據(jù)規(guī)模I<x,y>。
e)重新計(jì)算時間片的可用時間,即
f)如果Sn,i滿足條件
g)按照可用時間由小到大的順序?qū)⒃摃r間片重新插入對應(yīng)的時間片隊(duì)列。
6)重復(fù)執(zhí)行步驟5),直到預(yù)測完選定階段中所有任務(wù)的執(zhí)行時間。
7)重復(fù)執(zhí)行步驟4)-5),直到所有階段的所有任務(wù)的執(zhí)行時間都預(yù)測結(jié)束。
8)將Tj,start和Tj,end作為作業(yè)j的開始時間和結(jié)束時間返回。
步驟八:預(yù)測復(fù)雜作業(yè)的執(zhí)行時間。
1)將作業(yè)看作簡單作業(yè),并根據(jù)步驟七預(yù)測作業(yè)的執(zhí)行時間。
2)從模型庫中找到與該作業(yè)對應(yīng)的模型,根據(jù)模型創(chuàng)建由該作業(yè)派生的所有作業(yè)并插入等待隊(duì)列末尾。
步驟九:如果Tstart>Tj,start,Tstart=Tj,start;如果Tj,end>Tend,Tend=Tj,end。
步驟十:重復(fù)步驟六至步驟九,直到等待隊(duì)列中最后一個作業(yè)的執(zhí)行時間預(yù)測結(jié)束為止。記Tend-Tstar為執(zhí)行完等待隊(duì)列中所有作業(yè)所需的時間。
大數(shù)據(jù)環(huán)境中的作業(yè)可以分成簡單作業(yè)和復(fù)雜作業(yè)。簡單作業(yè)在一次執(zhí)行結(jié)束后,產(chǎn)生最終輸出結(jié)果。復(fù)雜作業(yè)在一次執(zhí)行結(jié)束后,派生出新的作業(yè),新作業(yè)經(jīng)調(diào)度才可執(zhí)行。在預(yù)測包括復(fù)雜作業(yè)在內(nèi)的批作業(yè)執(zhí)行時間時,由復(fù)雜作業(yè)派生的新作業(yè)的執(zhí)行時間也應(yīng)考慮在內(nèi)。要預(yù)測派生的新作業(yè)的執(zhí)行時間,需要掌握這類作業(yè)的階段信息、任務(wù)信息等。在本發(fā)明中,通過為復(fù)雜作業(yè)建模的方式表達(dá)由其派生的新作業(yè)信息。
通常,一個作業(yè)在同一個數(shù)據(jù)中心同類型節(jié)點(diǎn)上中無論執(zhí)行多少次,每次執(zhí)行時間都大體相同。在給定作業(yè)類型和數(shù)據(jù)規(guī)模的前提下,通過分析歷史數(shù)據(jù),獲取該類作業(yè)不同階段任務(wù)的執(zhí)行時間,并將其作為預(yù)測同類型其它作業(yè)中任務(wù)執(zhí)行時間的一個參數(shù)。任一階段都同時存在多個任務(wù)并行執(zhí)行,由于資源競爭等因素,這些任務(wù)的執(zhí)行時間并不相同。本發(fā)明采用概率統(tǒng)計(jì)的方法對歷史數(shù)據(jù)進(jìn)行分析,并呈現(xiàn)多個統(tǒng)計(jì)結(jié)果,由用戶自行決定采用哪個結(jié)果作為預(yù)測參數(shù)。
任務(wù)執(zhí)行時間與計(jì)算復(fù)雜程度、輸入數(shù)據(jù)規(guī)模、計(jì)算節(jié)點(diǎn)的可用資源等相關(guān),在分析結(jié)果中應(yīng)該體現(xiàn)這些因素的影響,具體地,類型為“job-A”的作業(yè)包括兩類任務(wù),類型分別為“task-A”和“task-B”。在輸入數(shù)據(jù)規(guī)模為256MB的前提下,“task-A”類型的任務(wù)在類型為“node-A”節(jié)點(diǎn)上在10000毫秒內(nèi)執(zhí)行結(jié)束的概率是100%,在9500毫秒內(nèi)執(zhí)行結(jié)束的概率是90%?!皌ask-A”類型的任務(wù)在類型為“node-B”節(jié)點(diǎn)上在15000毫秒內(nèi)執(zhí)行結(jié)束的概率是100%,在9700毫秒內(nèi)執(zhí)行結(jié)束的概率是90%。在輸入數(shù)據(jù)規(guī)模為234MB的前提下,“task-B”類型的任務(wù)在類型為“node-A”節(jié)點(diǎn)上在8000毫秒內(nèi)執(zhí)行結(jié)束的概率是100%,在7700毫秒內(nèi)執(zhí)行結(jié)束的概率是90%?!皌ask-A”類型的任務(wù)在類型為“node-B”節(jié)點(diǎn)上在8100毫秒內(nèi)執(zhí)行結(jié)束的概率是100%,在8000毫秒內(nèi)執(zhí)行結(jié)束的概率是90%。
在開始預(yù)測執(zhí)行時間之前,必須先預(yù)測集群中所有時間片的可用時間。因?yàn)榧褐辉谟锌臻e時間片的情況下,才會調(diào)度執(zhí)行作業(yè)。因此,只有在獲得所有時間片的可用時間后,才能預(yù)測作業(yè)的執(zhí)行時間。當(dāng)一個時間片正在執(zhí)行任務(wù)時處于忙狀態(tài),反之處于空閑狀態(tài)。忙時間片在任務(wù)執(zhí)行完成后,轉(zhuǎn)變成空閑狀態(tài)。預(yù)測時間片的可用時間,實(shí)際上就是預(yù)測占用當(dāng)前時間片的任務(wù)的完成時間。本發(fā)明提供了兩種方法預(yù)測任務(wù)的完成時間,分別是基于歷史數(shù)據(jù)的方法和基于執(zhí)行進(jìn)度的方法。
在有的大數(shù)據(jù)框架中,作業(yè)中不同種類的任務(wù)需要占用不同種類的時間片執(zhí)行。為應(yīng)對這種情況,本發(fā)明對時間片進(jìn)行分類管理,為每類時間片建立專門的隊(duì)列,并按可用時間從小到大的順序?qū)r間片放入相應(yīng)的隊(duì)列。所有時間片都按照類型和可用時間組織好后,就可以開始預(yù)測作業(yè)的執(zhí)行時間。
本發(fā)明采用模擬真實(shí)集群調(diào)度執(zhí)行作業(yè)的方式預(yù)測執(zhí)行時間。根據(jù)集群中采用的調(diào)度策略,從等待隊(duì)列中選擇一個作業(yè)。模擬選定作業(yè)的任務(wù)調(diào)度過程建立時間片和任務(wù)之間的對應(yīng)關(guān)系,從歷史數(shù)據(jù)中找到與選定作業(yè)及時間片匹配的歷史數(shù)據(jù)按照發(fā)明內(nèi)容中步驟五至步驟九所示方法預(yù)測作業(yè)的執(zhí)行時間。
具體地,以類型為job-A的作業(yè)j為例說明預(yù)測執(zhí)行時間的過程,要求準(zhǔn)確度為90%。假設(shè)j包含兩個階段,第一個階段包含3個類型為task-A的任務(wù),分別記為taskj,0、taskj,1和taskj,2,對應(yīng)的輸入數(shù)據(jù)的規(guī)模分別為:201MB,176MB和256MB。第二階段包括一個類型為task-B的任務(wù),記為taskj,3,其輸入數(shù)據(jù)規(guī)模為192MB。通過模擬調(diào)度器的調(diào)度策略建立任務(wù)和時間片之間的映射關(guān)系:taskj,0->S1,4,taskj,1->S11,1,taskj,2->S5,6和taskj,3->S4,2,且S1,4和S11,1對應(yīng)的節(jié)點(diǎn)類型為node-A,S5,6和S4,2對應(yīng)的節(jié)點(diǎn)類型為node-B。記Tj,start,Tj,end分別為j開始執(zhí)行的時間和結(jié)束執(zhí)行的時間,二者分別取最大長整型數(shù)和最小長整型數(shù)??砂慈缦虏襟E預(yù)測j的執(zhí)行時間:
(1)查找歷史數(shù)據(jù)分析結(jié)果,找到與類型job-A匹配的信息。
(2)對于每個任務(wù),根據(jù)預(yù)測準(zhǔn)確度、任務(wù)類型、時間片所在的節(jié)點(diǎn)類型找到對應(yīng)的任務(wù)完成時間和任務(wù)的輸入數(shù)據(jù)規(guī)模。以taskj,0為例,要選取的完成時間為9500,這個時間對應(yīng)的輸入數(shù)據(jù)規(guī)模為256MB。
(3)檢查與選定任務(wù)對應(yīng)的時間片的可用時間,如果其值為-1,則將系統(tǒng)的當(dāng)前時間賦值給它。以taskj,0為例,要檢查S1,4的可用時間,即檢查的值。若則將當(dāng)前系統(tǒng)時間賦值給它。
(4)如果S1,4滿足條件
(5)按照發(fā)明內(nèi)容步驟七->5)->e)中給出的方法重新計(jì)算與任務(wù)匹配的時間片的可用時間,即
(6)如果S1,4滿足條件
(7)按照可用時間從小到大的順序,重新把S1,4插入對應(yīng)的時間片隊(duì)列。
(8)重復(fù)(2)-(7),直到?jīng)]有任務(wù)可選時結(jié)束。
(9)記作業(yè)的執(zhí)行時間為Tj,end-Tj,start。
如果作業(yè)j是簡單作業(yè),執(zhí)行時間的預(yù)測到此結(jié)束。如果是復(fù)雜作業(yè),還需要根據(jù)發(fā)明內(nèi)容中步驟一的分析結(jié)果,生成所有由作業(yè)j派生出的作業(yè),并將其插入等待隊(duì)列。
以同樣的方法預(yù)測等待隊(duì)列中剩余作業(yè)的執(zhí)行時間。通過比較各個作業(yè)的開始時間和結(jié)束時間,可以確定這批作業(yè)的執(zhí)行時間:所有作業(yè)中最大的結(jié)束時間和所有作業(yè)中最小的開始時間之差即為這批作業(yè)所需的執(zhí)行時間。