云計(jì)算環(huán)境下基于模板的任務(wù)調(diào)度策略的制作方法
【專利摘要】本發(fā)明公開(kāi)了云計(jì)算環(huán)境下基于模板的任務(wù)調(diào)度策略,建立星型網(wǎng)絡(luò),任務(wù)到達(dá)云平臺(tái)時(shí),初始位置在調(diào)度節(jié)點(diǎn)P,根據(jù)現(xiàn)有的任務(wù)集合以及處理機(jī)集群的狀態(tài),調(diào)度節(jié)點(diǎn)采用和的調(diào)度算法得到每個(gè)任務(wù)和處理機(jī)的映射,然后通過(guò)網(wǎng)絡(luò)將各個(gè)任務(wù)傳給對(duì)應(yīng)的處理機(jī)并運(yùn)行,所有任務(wù)運(yùn)行結(jié)束的時(shí)間即為該調(diào)度算法下產(chǎn)生的任務(wù)完成時(shí)間T。本發(fā)明的有益效果是從一個(gè)新的角度提出一類新的任務(wù)調(diào)度方式,該方式較傳統(tǒng)方式對(duì)參數(shù)進(jìn)行了預(yù)處理,從全局出發(fā)得到一個(gè)整體較優(yōu)的模板,進(jìn)行有目標(biāo)的調(diào)度,使得任務(wù)集合在云計(jì)算環(huán)境下的完成時(shí)間得到了較大的優(yōu)化。
【專利說(shuō)明】
云計(jì)算環(huán)境下基于模板的任務(wù)調(diào)度策略
技術(shù)領(lǐng)域
[0001] 本發(fā)明屬于云計(jì)算任務(wù)調(diào)度技術(shù)領(lǐng)域,涉及云計(jì)算環(huán)境下基于模板的任務(wù)調(diào)度策 略。
【背景技術(shù)】
[0002] 云計(jì)算是一種新興的信息技術(shù)服務(wù)模式,由網(wǎng)格計(jì)算、分布式計(jì)算和并行計(jì)算等 發(fā)展而來(lái)。作為商業(yè)平臺(tái),云計(jì)算面對(duì)龐大的資源和任務(wù)數(shù)量,需要合理的任務(wù)調(diào)度策略保 證其資源得到充分利用,任務(wù)得以高效處理,除此之外,還需要考慮云服務(wù)提供商的利益和 用戶的服務(wù)質(zhì)量,因此任務(wù)調(diào)度一直都是云計(jì)算的研究熱點(diǎn)之一。目前針對(duì)云計(jì)算的任務(wù) 調(diào)度算法并不多,關(guān)于其研究更多的是建立在網(wǎng)格計(jì)算的基礎(chǔ)上,通過(guò)對(duì)傳統(tǒng)經(jīng)典算法進(jìn) 行改進(jìn)以適應(yīng)云計(jì)算平臺(tái)。
[0003] 當(dāng)前針對(duì)網(wǎng)格計(jì)算已有很多經(jīng)典的任務(wù)調(diào)度算法,任務(wù)調(diào)度可分為實(shí)時(shí)調(diào)度和批 量調(diào)度,實(shí)時(shí)調(diào)度即任務(wù)到達(dá)后馬上進(jìn)行調(diào)度,而批量調(diào)度是任務(wù)到達(dá)后先加入任務(wù)集合 列表,在固定時(shí)間段后對(duì)任務(wù)集合列表中的任務(wù)進(jìn)行集中調(diào)度。下面介紹幾個(gè)經(jīng)典的批量 任務(wù)調(diào)度算法:
[0004] l.Min-min 算法
[0005] Min-min算法每次迭代得到一個(gè)任務(wù)的目標(biāo)處理器并對(duì)該任務(wù)進(jìn)行調(diào)度,迭代次 數(shù)根據(jù)任務(wù)集合大小而定。具體步驟為:根據(jù)處理器狀態(tài),對(duì)任務(wù)集合中的每個(gè)任務(wù)計(jì)算其 在所有處理器上的期望完成時(shí)間,取最早完成時(shí)間;對(duì)比所有任務(wù)的最早完成時(shí)間,取最早 完成的那一個(gè)任務(wù)并將該任務(wù)調(diào)度到對(duì)應(yīng)的處理器上,并從任務(wù)集合中刪除該任務(wù);更新 處理器狀態(tài),重復(fù)上述步驟直至任務(wù)集合中為空。該算法屬于貪心算法中的一種,當(dāng)處理器 集群中存在高性能節(jié)點(diǎn)時(shí),使用該算法容易導(dǎo)致任務(wù)被集中分布在這些高性能處理器上, 其他處理器處于空閑狀態(tài),致使負(fù)載不均衡以及資源的浪費(fèi),該缺陷在本文的實(shí)驗(yàn)中得到 了驗(yàn)證。
[0006] 2.Max_min 算法
[0007] Max-min算法和Min-min算法非常相似,需要計(jì)算每個(gè)任務(wù)在處理機(jī)中的最早完成 時(shí)間,不同的是被分配出去的是任務(wù)集合中最早完成時(shí)間最晚的那一個(gè),然后從任務(wù)集合 中刪除該任務(wù),更新處理器狀態(tài)并進(jìn)行下一個(gè)任務(wù)的調(diào)度。Max-min算法也屬于貪心算法的 一種,在一般情況下,相對(duì)于Max-min算法,Min-min的調(diào)度效果較優(yōu),Max-min算法調(diào)度結(jié)果 的運(yùn)行時(shí)間會(huì)比較長(zhǎng)。只有當(dāng)一個(gè)任務(wù)集合中,短任務(wù)數(shù)量遠(yuǎn)遠(yuǎn)多于長(zhǎng)任務(wù)數(shù)量時(shí),Max-min 的調(diào)度效果有可能優(yōu)于 Min-min。
[0008] 3 ? Sufferage 算法
[0009] Sufferage算法可以稱之為代價(jià)算法,其決定任務(wù)調(diào)度順序的標(biāo)準(zhǔn)為代價(jià)值,即 Suff erage值。具體步驟為:計(jì)算任務(wù)集合中每個(gè)任務(wù)在所有處理機(jī)上的最早完成時(shí)間和次 早完成時(shí)間;計(jì)算代價(jià)值,也就是Sufferage值,計(jì)算方法為次早完成時(shí)間與最早完成時(shí)間 之間的差值,這樣每個(gè)任務(wù)都對(duì)應(yīng)了一個(gè)Suf f erage值;挑選Suf f erage值最大的任務(wù)調(diào)度 到最早完成時(shí)間所對(duì)應(yīng)的處理器上;從任務(wù)集合中刪除該任務(wù),更新處理機(jī)狀態(tài),重復(fù)上述 步驟直至任務(wù)集合為空。Sufferage算法將代價(jià)作為判斷任務(wù)調(diào)度順序的標(biāo)準(zhǔn),防止高代價(jià) 任務(wù)完成時(shí)間過(guò)晚而對(duì)整個(gè)調(diào)度的效果造成較大的影響。
[0010] 4 ?啟發(fā)式算法
[0011] 網(wǎng)格計(jì)算的任務(wù)調(diào)度為NP難問(wèn)題,啟發(fā)式算法自然也就被大量應(yīng)用于調(diào)度問(wèn)題 中,例如遺傳算法(Genetic Algorithm,GA)和蟻群算法(Ant Colony Optimization,AC0) 等。遺傳算法是解決最優(yōu)化算法的一種啟發(fā)式搜索算法,是一種進(jìn)化算法,類比生物的進(jìn)化 過(guò)程,遺傳算法通過(guò)逐代的優(yōu)勝劣汰來(lái)求得近似最優(yōu)解,在編碼產(chǎn)生種群后,每次迭代都需 要經(jīng)過(guò)選擇、交叉、變異等過(guò)程產(chǎn)生新的個(gè)體。蟻群算法的靈感來(lái)自于螞蟻覓食時(shí),通過(guò)釋 放信息素最終在蟻穴和食物源之間找到一條最短路徑,算法通過(guò)引入信息素概念及信息素 的更新機(jī)制,模擬螞蟻覓食來(lái)求解優(yōu)化問(wèn)題。
[0012]關(guān)于云計(jì)算的任務(wù)調(diào)度實(shí)際應(yīng)用中,在開(kāi)源云計(jì)算框架Hadoop下給出了三種不同 的調(diào)度算法:FIF0(First In First Out)、公平調(diào)度算法(Fair Scheduler)、計(jì)算能力調(diào)度 算法(Capacity Scheduler) JIFO算法按照任務(wù)到達(dá)的順序?qū)θ蝿?wù)進(jìn)行分配,但是FIFO沒(méi) 有考慮任務(wù)的分類、優(yōu)先等級(jí)以及QoS要求,可能會(huì)造成任務(wù)等待時(shí)間過(guò)長(zhǎng),這對(duì)實(shí)時(shí)交互 的任務(wù)是不可接受的,因此難以同時(shí)滿足所有用戶的要求。公平調(diào)度算法即將資源平均的 分配各個(gè)任務(wù),當(dāng)平臺(tái)中只有一個(gè)任務(wù)時(shí),該任務(wù)獨(dú)占所有的資源,當(dāng)有新的任務(wù)加入到 平臺(tái)中時(shí),平臺(tái)需要將部分資源釋放分配給新的任務(wù),讓所有的任務(wù)獲得同等的資源;在實(shí) 際應(yīng)用中,會(huì)根據(jù)任務(wù)的優(yōu)先級(jí)賦予不同的權(quán)值,然后以權(quán)值為依據(jù)來(lái)分配資源,將絕對(duì)公 平轉(zhuǎn)變?yōu)橄鄬?duì)公平。計(jì)算能力調(diào)度算法是由Yahoo首先提出的,算法擁有多個(gè)隊(duì)列來(lái)維護(hù)到 達(dá)云平臺(tái)的任務(wù),每個(gè)隊(duì)列根據(jù)系統(tǒng)配置會(huì)獲取相應(yīng)的系統(tǒng)資源,在每個(gè)隊(duì)列內(nèi)部采用基 于優(yōu)先級(jí)的FIFO調(diào)度策略,且為非搶占式的。
[0013]以上算法中,對(duì)任務(wù)的調(diào)度方式是通過(guò)選擇當(dāng)前最佳任務(wù)來(lái)達(dá)到優(yōu)化任務(wù)集合完 成時(shí)間的目的,但是當(dāng)前最佳并不意味著總體最佳,本發(fā)明通過(guò)對(duì)各個(gè)參數(shù)進(jìn)行預(yù)處理,從 全局出發(fā)得到一個(gè)整體較優(yōu)的模板,進(jìn)行有目標(biāo)的調(diào)度,從而得到較好的調(diào)度結(jié)果。
【發(fā)明內(nèi)容】
[0014] 本發(fā)明的目的在于提供云計(jì)算環(huán)境下基于模板的任務(wù)調(diào)度策略,優(yōu)化了任務(wù)集合 在云計(jì)算環(huán)境下的完成時(shí)間。
[0015] 本發(fā)明所采用的技術(shù)方案是建立星型網(wǎng)絡(luò),P為調(diào)度節(jié)點(diǎn),如至以為任務(wù)運(yùn)行的處 理機(jī),處理機(jī)?1與調(diào)度節(jié)點(diǎn)P直接相連,通信鏈路為h,其中任務(wù)調(diào)度云平臺(tái)由調(diào)度 節(jié)點(diǎn)P,網(wǎng)絡(luò)N和處理機(jī)M三部分組成,即任務(wù)調(diào)度云Cloud={P,N,M},其中M={ Pl,p2,…, pm},m為處理機(jī)個(gè)數(shù),pi運(yùn)行單位大小任務(wù)的時(shí)間為mNrUhh,…,lm},li為P與pi之間的 連接鏈路,對(duì)單位大小任務(wù)的傳輸時(shí)間為si,其中Ki<m;用戶提交的任務(wù)集合為Task = {thts,…,tn},n為任務(wù)個(gè)數(shù)山的大小為(^,且k為獨(dú)立任務(wù),不可再分且與其他任務(wù)之間 不存在依賴關(guān)系,其中
[0016] 任務(wù)調(diào)度的過(guò)程如下:任務(wù)到達(dá)云平臺(tái)時(shí),初始位置在調(diào)度節(jié)點(diǎn)P,根據(jù)現(xiàn)有的任 務(wù)集合以及處理機(jī)集群的狀態(tài),調(diào)度節(jié)點(diǎn)采用和的調(diào)度算法得到每個(gè)任務(wù)和處理機(jī)的映 射,然后通過(guò)網(wǎng)絡(luò)將各個(gè)任務(wù)傳給對(duì)應(yīng)的處理機(jī)并運(yùn)行,所有任務(wù)運(yùn)行結(jié)束的時(shí)間即為該 調(diào)度算法下產(chǎn)生的任務(wù)完成時(shí)間T。
[0017]進(jìn)一步,所述調(diào)度算法如下:
[0018] 1)對(duì)任務(wù)集合Task={ti,t2,…,tn},求任務(wù)總量V;
[0019] 2)處理機(jī)集群按照帶寬從大到小的順序排列得到處理機(jī)集群:M={Pl,p2,…,pm};
[0020] 求出每個(gè)處理機(jī)應(yīng)該分配的任務(wù)量模板大??;
[0021] 3)根據(jù)模板采用合理的任務(wù)組合優(yōu)化算法將任務(wù)集合中的任務(wù)分配給各個(gè)處理 機(jī);
[0022] 4)按照處理機(jī)順序,依次將分配給每個(gè)處理機(jī)的所有任務(wù)一次性發(fā)送給該處理 機(jī),且分配給同一個(gè)處理機(jī)的任務(wù)按照任務(wù)從小到大的順序發(fā)送給處理機(jī);
[0023] 5)處理機(jī)在接收到完整任務(wù)后即可開(kāi)始運(yùn)行,最后停止運(yùn)行的處理機(jī)所花費(fèi)的時(shí) 間即為該調(diào)度策略下任務(wù)的完成時(shí)間T。
[0024] 本發(fā)明的有益效果是從一個(gè)新的角度提出一類新的任務(wù)調(diào)度方式,該方式較傳統(tǒng) 方式對(duì)參數(shù)進(jìn)行了預(yù)處理,從全局出發(fā)得到一個(gè)整體較優(yōu)的模板,進(jìn)行有目標(biāo)的調(diào)度,使得 任務(wù)集合在云計(jì)算環(huán)境下的完成時(shí)間得到了較大的優(yōu)化。
【附圖說(shuō)明】
[0025] 圖1是本發(fā)明任務(wù)調(diào)度平臺(tái)網(wǎng)絡(luò)拓?fù)涫疽鈭D;
[0026] 圖2是TTS策略與可分任務(wù)調(diào)度的映射關(guān)系圖;
[0027]圖3是一定處理機(jī)順序下可分任務(wù)調(diào)度最優(yōu)調(diào)度結(jié)果示意圖;
[0028] 圖4是m = 2時(shí)兩種調(diào)度順序圖;
[0029]圖5是最理想調(diào)度時(shí)間圖;
[0030]圖6是處理機(jī)運(yùn)行不連續(xù)的情況;
[0031]圖7是兩種任務(wù)調(diào)度順序;
[0032]圖8是基于模板的任務(wù)調(diào)度策略(TTS策略)。
【具體實(shí)施方式】
[0033]下面結(jié)合【具體實(shí)施方式】對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。
[0034] 1 ? 1任務(wù)調(diào)度模型
[0035] 任務(wù)調(diào)度模型給出了本文任務(wù)調(diào)度策略所基于的調(diào)度平臺(tái),考慮到云計(jì)算環(huán)境中 資源的異構(gòu)性,本文對(duì)每臺(tái)處理機(jī)的計(jì)算速度和帶寬單獨(dú)設(shè)定,以保證平臺(tái)的異構(gòu)性。下面 給出本文的任務(wù)調(diào)度模型,對(duì)平臺(tái)中的網(wǎng)絡(luò)拓?fù)?、網(wǎng)絡(luò)參數(shù)及處理器參數(shù)進(jìn)行相關(guān)假設(shè)和 定義。
[0036] 在本文中,我們將網(wǎng)絡(luò)拓?fù)湎薅樾切途W(wǎng)絡(luò),如圖1所示。在該網(wǎng)絡(luò)拓?fù)渲?,P為調(diào) 度節(jié)點(diǎn),PlSpm為任務(wù)運(yùn)行的處理機(jī),處理與調(diào)度節(jié)點(diǎn)P直接相連,通信鏈路為h,其中1 ^i^m〇
[0037] 定義一:任務(wù)調(diào)度云平臺(tái)由調(diào)度節(jié)點(diǎn),網(wǎng)絡(luò)和處理機(jī)三部分組成,即Cloud={P,N, M}。其中M= {pi,p2,…,pm},m為處理機(jī)個(gè)數(shù),pi運(yùn)行單位大小任務(wù)的時(shí)間為ri;N= {li, 12,…,U},li為P與pi之間的連接鏈路,對(duì)單位大小任務(wù)的傳輸時(shí)間為si,其中1 < i <m。其 中,各通信鏈路和各處理機(jī)計(jì)算能力可以都不相同,整個(gè)云平臺(tái)呈異構(gòu)性。
[0038] 定義二:用戶提交的任務(wù)集合為Task= {ti,t2,…,tn},n為任務(wù)個(gè)數(shù),tj的大小為 且k為獨(dú)立任務(wù),不可再分且與其他任務(wù)之間不存在依賴關(guān)系,其中l(wèi)<j<n。
[0039] 本文的調(diào)度策略優(yōu)化目標(biāo)為一個(gè)任務(wù)集合在一個(gè)處理機(jī)集群上的完成時(shí)間。整個(gè) 任務(wù)調(diào)度的過(guò)程概括如下:任務(wù)到達(dá)云平臺(tái)時(shí),初始位置在調(diào)度節(jié)點(diǎn)P,根據(jù)現(xiàn)有的任務(wù)集 合以及處理機(jī)集群的狀態(tài),調(diào)度節(jié)點(diǎn)采用和的調(diào)度算法得到每個(gè)任務(wù)和處理機(jī)的映射,然 后通過(guò)網(wǎng)絡(luò)將各個(gè)任務(wù)傳給對(duì)應(yīng)的處理機(jī)并運(yùn)行,所有任務(wù)運(yùn)行結(jié)束的時(shí)間即為該調(diào)度算 法下產(chǎn)生的任務(wù)完成時(shí)間T。
[0040] 無(wú)論是從云平臺(tái)供應(yīng)商的角度還是用戶的角度,任務(wù)完成時(shí)間T都是調(diào)度算法一 個(gè)重要的優(yōu)化對(duì)象,云平臺(tái)供應(yīng)商需要高效的完成一批任務(wù),從而達(dá)到資源的充分利用,用 戶則希望自己提交的任務(wù)較早的得到反饋。假設(shè)1\為處理機(jī) ?1運(yùn)行結(jié)束的時(shí)間,則本文提出 的任務(wù)調(diào)度策略目標(biāo)是盡可能最小化運(yùn)行時(shí)間T:
[0041] T=min{max{Ti, Ki<m}};
[0042]假設(shè)一:在該模型當(dāng)中,假設(shè)網(wǎng)絡(luò)帶寬和處理機(jī)計(jì)算速率是穩(wěn)定的,即傳輸時(shí)間和 運(yùn)行時(shí)間與任務(wù)大小成線性關(guān)系。
[0043]假設(shè)二:調(diào)度節(jié)點(diǎn)向處理機(jī)傳輸任務(wù)采用單端口(1-port)模型,每次只能向一個(gè) 處理機(jī)發(fā)送任務(wù),處理機(jī)在接收到完整任務(wù)后即可以開(kāi)始運(yùn)行。
[0044]假設(shè)三:任務(wù)數(shù)量n大于處理機(jī)數(shù)量m。如果任務(wù)數(shù)量小于處理機(jī)數(shù)量,則不需要 所有處理機(jī)參加運(yùn)算,通過(guò)一些調(diào)度算法選擇部分處理機(jī)參與計(jì)算即可。
[0045]假設(shè)四:處理機(jī)帶寬大于運(yùn)算速率。即對(duì)一臺(tái)處理機(jī)來(lái)說(shuō),運(yùn)行一個(gè)任務(wù)所需要的 時(shí)間比該任務(wù)的傳輸時(shí)間要長(zhǎng)即Sl<ri,如果Sl> ri,很有可能出現(xiàn)的情況便是任務(wù)在到達(dá) 處理機(jī)時(shí)前面的任務(wù)已經(jīng)完成,此時(shí)只需要一臺(tái)速度最快的處理機(jī)即可,因此在本文中,假 設(shè)處理機(jī)帶寬大于運(yùn)算速度。
[0046] 假設(shè)五:在調(diào)度開(kāi)始時(shí),所有的處理機(jī)處于空閑狀態(tài)。
[0047] 基于上述調(diào)度模型,下面開(kāi)始詳細(xì)介紹TTS策略。
[0048] 1.2 TTS策略設(shè)計(jì)思路
[0049] 本文調(diào)度策略針對(duì)的任務(wù)類型為獨(dú)立任務(wù),設(shè)計(jì)思路來(lái)自于網(wǎng)格計(jì)算任務(wù)調(diào)度的 可分任務(wù)調(diào)度,可分任務(wù)模型在1988年由Cheng Y G和Robtertazzi T G首次提出,諸多專 家學(xué)者就可分任務(wù)調(diào)度進(jìn)行了大量的研究。在上述任務(wù)調(diào)度模型的基礎(chǔ)上,基于一定的假 設(shè),可分任務(wù)調(diào)度按照優(yōu)化原則,通過(guò)對(duì)處理機(jī)和任務(wù)的參數(shù)進(jìn)行預(yù)處理,便可以計(jì)算出每 個(gè)處理機(jī)應(yīng)該劃分的子任務(wù)大小以使整個(gè)調(diào)度結(jié)果最優(yōu)。
[0050] 圖2展示了可分任務(wù)調(diào)度與本文調(diào)度策略的映射關(guān)系,同時(shí)給出了 TTS策略的設(shè)計(jì) 思路,圖中,左邊為TTS策略的組合過(guò)程,帶有t的橢圓形表示待調(diào)度的任務(wù),這些任務(wù)大小 不一,構(gòu)成任務(wù)集合,通過(guò)組合后得到了各個(gè)分組并調(diào)度到對(duì)應(yīng)的處理機(jī)上;右邊為可分任 務(wù)的劃分過(guò)程,一個(gè)較大的任務(wù)通過(guò)劃分得到較小的子任務(wù),每個(gè)子任務(wù)將調(diào)度到對(duì)應(yīng)的 處理機(jī)上。由上圖可以看出,對(duì)應(yīng)關(guān)系如下:可分任務(wù)模型的任務(wù)大小對(duì)應(yīng)TTS策略下任務(wù) 集合中所有任務(wù)量之和;可分任務(wù)模型中劃分得到的子任務(wù)大小對(duì)應(yīng)TTS策略下每臺(tái)處理 機(jī)應(yīng)該分配的最優(yōu)任務(wù)量。
[0051] 由于可分任務(wù)能夠準(zhǔn)確的求出較優(yōu)的子任務(wù)劃分大小,子任務(wù)的大小就是任務(wù)集 合中各個(gè)任務(wù)組合的目標(biāo)。這也就是基于模板任務(wù)調(diào)度策略的核心思路:求出任務(wù)集合的 任務(wù)量大小所對(duì)應(yīng)的可分任務(wù)調(diào)度劃分,劃分結(jié)果即為模板,然后根據(jù)模板大小對(duì)待調(diào)度 任務(wù)進(jìn)行組合,使其盡量接近模板的大小,組合完畢后按照一定的順序?qū)⑷蝿?wù)調(diào)度給對(duì)應(yīng) 的處理機(jī)。
[0052]因此,本文的調(diào)度策略主要分為兩個(gè)部分,處理機(jī)分擔(dān)任務(wù)量模板求解和任務(wù)組 合優(yōu)化,下面依次對(duì)各個(gè)部分進(jìn)行介紹。
[0053] 1.3處理機(jī)分擔(dān)任務(wù)量模板求解
[0054]本節(jié)將給出組合模板的求解過(guò)程,即可分任務(wù)中的求解子任務(wù)大小的過(guò)程。給定 任務(wù)集合,該任務(wù)集合中共有n個(gè)任務(wù),其中的大小為,則可以求出任務(wù)總量V: n
[0055] F - i -n ;
[0056] 將該任務(wù)總量類比到可分任務(wù)中,對(duì)大小為V的任務(wù)劃分成子任務(wù)。在可分任務(wù)的 理論研究中,存在著一個(gè)最基本的優(yōu)化原則:任務(wù)完成的最短時(shí)間,就是分給處理機(jī)的所有 子任務(wù)同時(shí)運(yùn)行完成。這個(gè)優(yōu)化原則很好理解,如果最短時(shí)間不是所有子任務(wù)同時(shí)運(yùn)行完 成,那么將還未完成運(yùn)行的處理機(jī)上的任務(wù)分給已經(jīng)完成運(yùn)行的處理機(jī),可以得到更短的 運(yùn)行時(shí)間,反證可得出矛盾。
[0057] 根據(jù)上述優(yōu)化原則可得出最優(yōu)調(diào)度如圖3所示,T就是在該處理機(jī)調(diào)度順序下運(yùn)行 的最短時(shí)間。接下來(lái)首先將根據(jù)V求解各個(gè)的大小,然后求出最佳的處理機(jī)的調(diào)度順序。 [0058] 1.3.1求解模板大小
[0059]對(duì)處理機(jī)集合,在求解之前,首先假設(shè)對(duì)處理機(jī)按照的順序來(lái)調(diào)度,最優(yōu)的處理機(jī) 調(diào)度順序?qū)⒃谙乱恍」?jié)進(jìn)行推導(dǎo)證明。則根據(jù)圖3可以得出結(jié)束運(yùn)行的時(shí)間:
[0060] Ti = visi+viri ;
[0061 ] 同理可得出:
[0062] T=i k=i i+l
[0063] K+1 = EvpA-+ u;fl ; A 二1
[0064] 在上面兩個(gè)式子中滿足,根據(jù)最優(yōu)原則,上述兩個(gè)公式滿足以下關(guān)系:
[0065] Ti = Ti+i;
[0066] 即: i . i-f l
[0067] Xvksk + v,ri =Zvtsk + vi+iri+i ; i:-l A-l
[0068] 簡(jiǎn)化上述等式則可以得到:
[0069] Viri = Vi+iSi+i+Vi+iri+i ;
[0070] 因此可以得到和的關(guān)系:
[0074]依次類推,又可以用來(lái)表示,通過(guò)替換和推導(dǎo),最后得出和的關(guān)系:
,可以看出為常數(shù),則上述公式可以簡(jiǎn)化為:
[0077] Vi = Mvi ;
[0078] 結(jié)合公式和公式進(jìn)行以下推導(dǎo): m
[0079] V=Y,vi ; m
[0080] 【'=(S^+1)vi i=i
[0081] 則在已知任務(wù)總量時(shí),即V為常數(shù),可以求出:
[0083] 在上面已經(jīng)求出了和的關(guān)系,根據(jù)可以得到i>2時(shí)的求解公式:
[0085]這樣,在固定了處理機(jī)的調(diào)度順序后,本小節(jié)求出了每臺(tái)處理機(jī)應(yīng)該分擔(dān)的任務(wù) 量模板大小,即公式和公式。
[0086] 1.3.2最優(yōu)處理機(jī)調(diào)度順序
[0087]在上一小節(jié)求解^的過(guò)程中,提前假設(shè)了處理機(jī)的調(diào)度順序?yàn)?,?dāng)處理機(jī)順序不 同時(shí),其最優(yōu)劃分就會(huì)改變,因?yàn)槟0宓膮?shù)與處理機(jī)的調(diào)度順序有關(guān),所以需要求出在所 有的處理機(jī)調(diào)度順序中,按照哪個(gè)順序調(diào)度后任務(wù)運(yùn)行時(shí)間是最短的。
[0088]下面先通過(guò)特例來(lái)求出調(diào)度順序,給出只有兩個(gè)處理機(jī)和時(shí)的情況,即,那么只可 能出現(xiàn)兩種調(diào)度順序:
[0089] a)先調(diào)度,后調(diào)度;
[0090] b)先調(diào)度,后調(diào)度。
[0091] 本小節(jié)的目的是求解處理機(jī)的最優(yōu)調(diào)度順序,這里轉(zhuǎn)換一下求解角度:固定運(yùn)行 時(shí)間為T,在時(shí)間T內(nèi),兩種調(diào)度順序下完成任務(wù)量多的順序更優(yōu)。圖4展示了兩種調(diào)度順序, 圖中,a)調(diào)度順序下T時(shí)間內(nèi)運(yùn)行的任務(wù),b)調(diào)度順序下T時(shí)間內(nèi)運(yùn)行的任務(wù),其中:
[0092] 在a)調(diào)度中,可以得到以下兩個(gè)方程式:
[0093] visi+viri = T
[0094] visi+V2S2+V2r2 = T ;
[0095]上面兩個(gè)方程式組成了一個(gè)二元一次方程組,由這個(gè)方程組可以很容易的求解出 和。
[0098] 則在a)調(diào)度中,固定時(shí)間T內(nèi)可以完成的任務(wù)總量為:
[0099] Vi = vi+V2;
[0100] 同理,在b)調(diào)度中,同樣可以求出和:
[0103] 在b)調(diào)度中,固定的T內(nèi)可以完成的任務(wù)總量為:
[0104] V2 = W1+W2 ;
[0105] 為了比較兩種調(diào)度完成的任務(wù)量,對(duì)和求差值:
(2-1);
[0107] 假設(shè)a)調(diào)度順序優(yōu)于b)調(diào)度順序,則需要滿足以下條件:
[0108] Diff > 0 => ,v: > .v,;
[0109] 在一般情況下,處理機(jī)調(diào)度的最優(yōu)順序?yàn)閹掃f減。
[0110] 1.3.3處理機(jī)分擔(dān)任務(wù)量模板
[0111] 通過(guò)比較可分任務(wù)調(diào)度和本文策略中任務(wù)調(diào)度可以得出一個(gè)不同點(diǎn),在任務(wù)調(diào)度 模型的假設(shè)二中給出:處理機(jī)在接收到完整任務(wù)后即可以開(kāi)始運(yùn)行。可分任務(wù)模型中,處理 機(jī)需要接受整個(gè)子任務(wù)后才開(kāi)始運(yùn)行,但在本文的調(diào)度策略中,每個(gè)處理機(jī)會(huì)連續(xù)接收多 個(gè)獨(dú)立任務(wù),處理機(jī)不需要等到接收全部分配給它的任務(wù)后才開(kāi)始運(yùn)行,而在接收到一個(gè) 完整的任務(wù)即可開(kāi)始運(yùn)行,與此同時(shí),后續(xù)任務(wù)也在繼續(xù)接收中,處理機(jī)的運(yùn)行和任務(wù)接收 呈現(xiàn)并行化。因此對(duì)分配了多個(gè)任務(wù)的處理機(jī)來(lái)說(shuō),運(yùn)行時(shí)間提前了。
[0112]則最理想的調(diào)度狀態(tài)如圖5所示,代表分配給的任務(wù)中最小的任務(wù),這樣每個(gè)處理 機(jī)在運(yùn)行前處于接收任務(wù)的時(shí)間達(dá)到最小,且在開(kāi)始運(yùn)行后便沒(méi)有中斷。當(dāng)然,這是一個(gè)最 理想的狀態(tài),需要建立在以下假設(shè)上:處理機(jī)上第k個(gè)任務(wù)運(yùn)行完成時(shí),第k+1個(gè)任務(wù)已經(jīng)全 部接收完。
[0113]即使假設(shè)成立,該最理想狀態(tài)下的模板求解是有一定的困難的,因?yàn)樵趧澐痔幚?機(jī)任務(wù)量時(shí),是無(wú)法確定的大小的。但是可以確定的是,處理機(jī)的運(yùn)行開(kāi)始時(shí)間會(huì)提前,整 個(gè)任務(wù)集合的完成時(shí)間在理論上是有可能小于總時(shí)間T。但是任務(wù)組合不可能完全等于模 板大小,超出模板時(shí)處理機(jī)的完成時(shí)間則會(huì)大于T,因此任務(wù)組合時(shí)需要盡量接近模板大 小。
[0114] 則綜合本節(jié)的介紹,可得出求解組合模板的流程如下:
[0115] 1)對(duì)處理機(jī)集群按照帶寬大小排序?yàn)椋?br>[0116] 2)對(duì)排好序的處理機(jī)劃分任務(wù)量,劃分結(jié)果為:
[0118] 1.4任務(wù)組合優(yōu)化
[0119]在上一節(jié)中,推導(dǎo)出了最優(yōu)的處理機(jī)調(diào)度順序和處理機(jī)分配的任務(wù)量模板,接下 來(lái)的工作就是要將任務(wù)按照模板進(jìn)行組合。由于待調(diào)度任務(wù)是不可分的,因此組合的結(jié)果 不太可能完全等于各個(gè)模板的大小,任務(wù)組合優(yōu)化的目的就是讓任務(wù)組合的結(jié)果盡可能的 靠近模板大小。由于任務(wù)組合優(yōu)化的實(shí)現(xiàn)方式很多,本節(jié)只對(duì)組合優(yōu)化進(jìn)行簡(jiǎn)單地介紹,詳 細(xì)內(nèi)容和實(shí)驗(yàn)將放到后續(xù)章節(jié)進(jìn)行介紹。本節(jié)會(huì)詳細(xì)討論每個(gè)處理機(jī)上各任務(wù)的調(diào)度順 序,這一部分在策略中也是固定的。
[0120] 1.4.1任務(wù)組合優(yōu)化方案
[0121] 本文涉及到的任務(wù)組合優(yōu)化是在求出組合模板后,對(duì)任務(wù)進(jìn)行組合使其盡可能的 接近模板,對(duì)比可以發(fā)現(xiàn)本文的任務(wù)組合優(yōu)化和多背包問(wèn)題(Multiple Knapsack Problem)有很多相似性。多背包問(wèn)題是將眾多大小不等物品放入不止一個(gè)的背包中,讓所 有背包所裝的物品價(jià)值達(dá)到最大。
[0122] 文中給出了五類常見(jiàn)背包問(wèn)題:0-1背包問(wèn)題(0-1 Knapsack Problem)、多選擇背 包問(wèn)題(Multiple Choice Knapsack Problem)、多背包問(wèn)題(Multiple Knapsack Problem)、多目標(biāo)背包問(wèn)題(Multi-objective Knapsack Problem)和多維背包問(wèn)題 (Multi-dimensional Knapsack Problem)。這些背包問(wèn)題的不同點(diǎn)主要體現(xiàn)在背包個(gè)數(shù)、 物品能否重復(fù)選擇和約束條件個(gè)數(shù)三個(gè)方面。本文的任務(wù)組合優(yōu)化和多背包問(wèn)題的情況比 較相似。多背包問(wèn)題的描述如下:
[0123] 從由n個(gè)物品構(gòu)成的物品集合中挑選物品裝入m個(gè)背包中,這些背包的容量為,每 個(gè)物品有兩個(gè)屬性:重量和價(jià)值,其中,用二維數(shù)組X表示物品和背包的映射關(guān)系,當(dāng)物品j 被裝入背包i時(shí),否則。多背包問(wèn)題的目標(biāo)為:在不超過(guò)每個(gè)背包容量的前提下,使得所有背 包裝入物品的價(jià)值之和最大。即:
[0124] max 丨藝; i=l j=\
[0125] 多背包問(wèn)題的約束條件為: m.
[0126] ^.v;/ < 1,1 < /' <// ft
[0127] St,,l $/$"? j:l
[0128] xijG {0,1}, 1^; j^;n;
[0129] 表示在多背包問(wèn)題中,物品不能被重復(fù)選擇,即一個(gè)物品只能裝入一個(gè)背包;表示 每個(gè)背包所裝物品的重量不能超過(guò)背包的容量。
[0130] 在本發(fā)明涉及的任務(wù)組合優(yōu)化中,每個(gè)處理機(jī)應(yīng)該分配的任務(wù)量大小對(duì)應(yīng)多背包 問(wèn)題的背包容量,任務(wù)對(duì)應(yīng)物品,任務(wù)的大小對(duì)應(yīng)了物品的重量。雖然本文的任務(wù)組合優(yōu)化 和多背包問(wèn)題近似,但仍存在以下區(qū)別:
[0131 ] 1)在多背包問(wèn)題中,物品的大小總和是不能超過(guò)背包大小的,但在本文中,分配給 處理機(jī)的任務(wù)總量是可以超過(guò)模板的,但無(wú)論是超過(guò)還是不足,都需要盡量靠近模板大小。
[0132] 2)在多背包問(wèn)題中,物品不需要全部裝入背包,但在本文的任務(wù)組合優(yōu)化中全部 任務(wù)都需要分配到處理機(jī)上。
[0133] 3)多背包問(wèn)題中,物品有重量和價(jià)值兩個(gè)性質(zhì),背包大小是對(duì)所裝物品重量的限 制,多背包問(wèn)題的目標(biāo)是所有背包所裝物品價(jià)值最大。但在本文的任務(wù)組合優(yōu)化中任務(wù)只 有大小一個(gè)屬性。
[0134] 1.4.2任務(wù)調(diào)度順序
[0135] 在將各個(gè)任務(wù)組合得到與處理機(jī)的映射后,針對(duì)單個(gè)處理機(jī)來(lái)說(shuō),分配給該處理 機(jī)的任務(wù)以什么樣的順序調(diào)度能夠使所有任務(wù)的完成時(shí)間最短。當(dāng)不考慮通信開(kāi)銷時(shí),任 務(wù)的調(diào)度順序?qū)μ幚頇C(jī)的運(yùn)行時(shí)間是沒(méi)有影響的,因?yàn)橥瓿蓵r(shí)間只與任務(wù)大小相關(guān),只要 分配給該處理機(jī)的任務(wù)總量一定,則完成時(shí)間是固定的。但當(dāng)考慮通信開(kāi)銷后,處理機(jī)的運(yùn) 行是不一定連續(xù)的,即接收的任務(wù)全部執(zhí)行完,新任務(wù)還未接收完,如圖6所示,圖中展示了 處理機(jī)的運(yùn)行不連續(xù)的情況,在上圖中,任務(wù)在運(yùn)行完成后,任務(wù)還沒(méi)有全部接收,則運(yùn)行 出現(xiàn)了暫停,也就是圖中的灰色部分。
[0136] 下面討論兩種調(diào)度順序:
[0137] a)任務(wù)按照從小到大的順序傳輸給處理機(jī);
[0138] b)任務(wù)按照從大到小的順序傳輸給處理機(jī)。
[0139] 根據(jù)任務(wù)調(diào)度模型中給出的假設(shè),對(duì)一個(gè)任務(wù)的運(yùn)行時(shí)間大于其傳輸時(shí)間,則按 照b)順序?qū)θ蝿?wù)進(jìn)行調(diào)度時(shí),處理機(jī)的運(yùn)行一定是連續(xù)的;而按照a)順序?qū)θ蝿?wù)進(jìn)行調(diào)度 時(shí),不能保證處理機(jī)的運(yùn)行是連續(xù)的,這里假設(shè)a)順序下的最壞情況,即每個(gè)任務(wù)運(yùn)行完后 都出現(xiàn)停頓。下圖中以三個(gè)任務(wù)為例給出兩種順序的處理機(jī)運(yùn)行時(shí)間圖7,圖7中,調(diào)度節(jié)點(diǎn) P為處理機(jī)分配了三個(gè)任務(wù),下面推廣到一般情況來(lái)對(duì)比兩種順序。則在a)調(diào)度順序中,可 求出: H
[0140] 77/批丨;
[0141] 同理可以求出: n
[0142] 77/??^, =/,,^; 知.1
[0143] 要比較和的大小,對(duì)其求差值:
[0144] Timc\ - Time, =(s:~ r: //A ;
[0145] 在任務(wù)調(diào)度模型中,假設(shè)四給出帶寬速度要高于計(jì)算速度,即,則:
[0146] Timei<Time2〇
[0147] 通過(guò)上面的推導(dǎo),可以看出,任務(wù)按照從小到大的順序調(diào)度,即使在最壞情況下, 即處理器運(yùn)行不連續(xù)時(shí)也要優(yōu)于任務(wù)從大到小調(diào)度,因此對(duì)分配給同一個(gè)處理機(jī)上的任 務(wù),本文采取任務(wù)按照從小到大的順序傳給處理機(jī)。
[0148] 以上所述僅是對(duì)本發(fā)明的較佳實(shí)施方式而已,并非對(duì)本發(fā)明作任何形式上的限 制,凡是依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施方式所做的任何簡(jiǎn)單修改,等同變化與修飾,均 屬于本發(fā)明技術(shù)方案的范圍內(nèi)。
【主權(quán)項(xiàng)】
1. 云計(jì)算環(huán)境下基于模板的任務(wù)調(diào)度策略,其特征在于:建立星型網(wǎng)絡(luò),P為調(diào)度節(jié)點(diǎn), P1Spm為任務(wù)運(yùn)行的處理機(jī),處理Wp1與調(diào)度節(jié)點(diǎn)P直接相連,通信鏈路為h,其中KiSm; 任務(wù)調(diào)度云平臺(tái)由調(diào)度節(jié)點(diǎn)P,網(wǎng)絡(luò)N和處理機(jī)M三部分組成,即任務(wù)調(diào)度云Cloud= {P,N, Μ},其中M= {pi,p2,···,pm},m為處理機(jī)個(gè)數(shù),pi運(yùn)行單位大小任務(wù)的時(shí)間為ri;N= {li, I2,…,U,Ii為P與Pi之間的連接鏈路,對(duì)單位大小任務(wù)的傳輸時(shí)間為Si,其中1彡i彡m;用戶 提交的任務(wù)集合為Task= {ti,t2,…,tn},n為任務(wù)個(gè)數(shù),t j的大小為a」,且tj為獨(dú)立任務(wù),不 可再分且與其他任務(wù)之間不存在依賴關(guān)系,其中KjSn; 任務(wù)調(diào)度的過(guò)程如下:任務(wù)到達(dá)云平臺(tái)時(shí),初始位置在調(diào)度節(jié)點(diǎn)P,根據(jù)現(xiàn)有的任務(wù)集 合以及處理機(jī)集群的狀態(tài),調(diào)度節(jié)點(diǎn)采用和的調(diào)度算法得到每個(gè)任務(wù)和處理機(jī)的映射,然 后通過(guò)網(wǎng)絡(luò)將各個(gè)任務(wù)傳給對(duì)應(yīng)的處理機(jī)并運(yùn)行,所有任務(wù)運(yùn)行結(jié)束的時(shí)間即為該調(diào)度算 法下產(chǎn)生的任務(wù)完成時(shí)間T。2. 按照權(quán)利要求1所述云計(jì)算環(huán)境下基于模板的任務(wù)調(diào)度策略,其特征在于:所述調(diào)度 算法如下: 1) 對(duì)任務(wù)集合Task= {ti,t2,…,tn},求任務(wù)總量V; 2) 處理機(jī)集群按照帶寬從大到小的順序排列得到處理機(jī)集群:M= {Pl,p2,…,pm}; 求出每個(gè)處理機(jī)應(yīng)該分配的任務(wù)量模板大小; 3) 根據(jù)模板采用合理的任務(wù)組合優(yōu)化算法將任務(wù)集合中的任務(wù)分配給各個(gè)處理機(jī); 4) 按照處理機(jī)順序,依次將分配給每個(gè)處理機(jī)的所有任務(wù)一次性發(fā)送給該處理機(jī),且 分配給同一個(gè)處理機(jī)的任務(wù)按照任務(wù)從小到大的順序發(fā)送給處理機(jī); 5) 處理機(jī)在接收到完整任務(wù)后即可開(kāi)始運(yùn)行,最后停止運(yùn)行的處理機(jī)所花費(fèi)的時(shí)間即 為該調(diào)度策略下任務(wù)的完成時(shí)間T。
【文檔編號(hào)】G06F9/48GK105912390SQ201610211287
【公開(kāi)日】2016年8月31日
【申請(qǐng)日】2016年4月7日
【發(fā)明人】李強(qiáng), 劉昭昭, 袁熙, 林若男, 李雪, 逯峻雨, 盛小東
【申請(qǐng)人】四川大學(xué)