基于多核dsp的自適應(yīng)任務(wù)調(diào)度方法
【專利摘要】本發(fā)明涉及一種基于多核DSP的自適應(yīng)任務(wù)調(diào)度方法,首先需要在多核DSP系統(tǒng)內(nèi)建立公共的任務(wù)池,所有參與運算的核通過算法調(diào)度,從公共的任務(wù)池中取走相應(yīng)的任務(wù)分別進行計算。將任務(wù)分為:均等任務(wù),遞增任務(wù),遞減任務(wù)和無規(guī)則隨機任務(wù)。自適應(yīng)調(diào)度過程分三個步驟實現(xiàn):1.先將整個任務(wù)的前一部分平均分配給多個處理器核進行處理,計算每個核所負責(zé)的任務(wù)的平均處理時間,推測任務(wù)類型。2.依據(jù)推測出任務(wù)的類型,選取對應(yīng)的調(diào)度策略,直到任務(wù)池中的任務(wù)都被取走。3.先完成任務(wù)的核將找到當(dāng)前剩余任務(wù)最多的核的任務(wù)池中,分擔(dān)工作量。此方法能夠根據(jù)不同任務(wù)的特點進行自適應(yīng)調(diào)度,盡可能使得任務(wù)均衡地分配給多個處理器核,提高整體的計算性能。
【專利說明】基于多核DSP的自適應(yīng)任務(wù)調(diào)度方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種多核DSP中的任務(wù)調(diào)度方法,屬于信息【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002]自動并行化研究始于20世紀70年代,歷經(jīng)自動向量化、循環(huán)級自動并行化、過程級自動并行化等幾個階段,每個階段的發(fā)展都體現(xiàn)了人們對程序并行特性理解的不斷深入。通過對向量化編程規(guī)律的發(fā)現(xiàn),人們提出了依賴關(guān)系分析理論,從而完成了串行程序的自動向量化。隨著自動向量化技術(shù)的成功應(yīng)用,研究人員把注意力轉(zhuǎn)向共享內(nèi)存體系結(jié)構(gòu)的自動化并行化,并取得了一定的成功。但是,如何把數(shù)據(jù)分發(fā)到多個處理器上去以充分發(fā)掘程序的并行性、減少通信成本,是一個較為復(fù)雜的問題。
[0003]在多核DSP的任務(wù)并行中,最困難的問題之一是在保持所有節(jié)點或處理器負載均衡的同時最小化通信和同步的開銷。在共享內(nèi)存體系中,所有處理機對主存擁有相同的訪問延遲和貸款,不存在因處理器訪問不同位置的數(shù)據(jù)帶來的通信開銷。任務(wù)調(diào)度對于負載均衡和額外開銷具有非常重要的影響。其調(diào)度策略直接影響著系統(tǒng)資源的利用率和并行效率。
[0004]任務(wù)調(diào)度的研究包括平衡負載、同步開銷和通信開銷。在很多共享內(nèi)存多處理器系統(tǒng)中,一個單獨的準備隊列是處理調(diào)度常用機制。負載平衡是該單獨準備隊列處理機制的焦點,且單個準備隊列容易造成競爭和同步開銷,成為性能瓶頸。為并行任務(wù)選擇合適的調(diào)度策略能夠獲得很大的性能收益。
[0005]常見的負載均衡調(diào)度有兩種方法一靜態(tài)調(diào)度與動態(tài)調(diào)度。
[0006]靜態(tài)調(diào)度是在編譯時,將任務(wù)平均分配到各個線程上。而動態(tài)調(diào)度是在運行時動態(tài)地將任務(wù)分配給空閑線程,但是,這將會花費一定的調(diào)度開銷。
[0007]現(xiàn)有的大多數(shù)任務(wù)調(diào)度算法,都需要在編碼的過程中就確認任務(wù)的調(diào)度策略,一旦確定不能修改,這將直接導(dǎo)致任務(wù)調(diào)度的策略死板,不靈活。并且在討論任務(wù)調(diào)度方法時,許多方法都是默認為所有任務(wù)的計算量都是相同的進行調(diào)度,鮮有對任務(wù)的計算量不同時的情況進行探討,對任務(wù)計算量不同時的解決方案也只是簡單地采取通過某些算法將任務(wù)遞減地分配給處理器。
【發(fā)明內(nèi)容】
[0008]為了克服現(xiàn)有調(diào)度方法的不足,本發(fā)明提供了一種自適應(yīng)的任務(wù)調(diào)度方法,采用良好的調(diào)度策略對并行任務(wù)進行合理的劃分,在調(diào)度開銷以及負載均衡方面獲得更好的權(quán)衡,以提高多核的并行計算性能。
[0009]為了實現(xiàn)這個目的,本方法在多核DSP系統(tǒng)內(nèi)建立一個公共的任務(wù)池,所有參與運算的處理器核通過算法調(diào)度從公共任務(wù)池中取走相應(yīng)的任務(wù)分別進行計算,同時每個處理器核中都有一個共享的任務(wù)池,存放當(dāng)前需要執(zhí)行的任務(wù);將任務(wù)分為4種類型:
[0010](I)均等任務(wù),每個任務(wù)的計算量基本相同;[0011](2)遞增任務(wù),每個任務(wù)的計算量隨著任務(wù)的進行而遞增;
[0012](3)遞減任務(wù),每個任務(wù)的計算量隨著任務(wù)的進行而減少;
[0013](4)無規(guī)則隨機任務(wù),每個任務(wù)的計算量無明顯規(guī)律;
[0014]整個自適應(yīng)調(diào)度過程分三個步驟實現(xiàn):
[0015]a.先將整個任務(wù)的前一部分(如任務(wù)的前50% )平均分配給多個處理器核進行處理,這個過程中由任務(wù)計數(shù)器與計時器對任務(wù)的運行狀況進行跟蹤監(jiān)測;當(dāng)其中有一個處理器核完成分配到的任務(wù)之后,則開始對當(dāng)前所有處理器核中的結(jié)果進行分析:計算每個處理器核所負責(zé)的任務(wù)的平均處理時間
【權(quán)利要求】
1.基于多核DSP的自適應(yīng)任務(wù)調(diào)度方法,其特征是:在多核DSP系統(tǒng)內(nèi)建立一個公共的任務(wù)池,所有參與運算的處理器核通過算法調(diào)度從公共任務(wù)池中取走相應(yīng)的任務(wù)分別進行計算,同時每個處理器核中都有一個共享的任務(wù)池,存放當(dāng)前需要執(zhí)行的任務(wù);將任務(wù)分為4種類型: (1)均等任務(wù),每個任務(wù)的計算量基本相同; (2)遞增任務(wù),每個任務(wù)的計算量隨著任務(wù)的進行而遞增; (3)遞減任務(wù),每個任務(wù)的計算量隨著任務(wù)的進行而減少; (4)無規(guī)則隨機任務(wù),每個任務(wù)的計算量無明顯規(guī)律; 整個自適應(yīng)調(diào)度過程分三個步驟實現(xiàn): a.先將整個任務(wù)的前一部分平均分配給多個處理器核進行處理,這個過程中由任務(wù)計數(shù)器與計時器對任務(wù)的運行狀況進行跟蹤監(jiān)測;當(dāng)其中有一個處理器核完成分配到的任務(wù)之后,則開始對當(dāng)前所有處理器核中的結(jié)果進行分析:計算每個處理器核所負責(zé)的任務(wù)的平均處理時間,η為參與任務(wù)運算的處理器核的個數(shù),再根據(jù)計算出來的平均時間,推測任務(wù)的類型; b.對接下來還未開始計算的任務(wù),依據(jù)推測出任務(wù)的類型,選取對應(yīng)的調(diào)度策略進行相應(yīng)的動態(tài)分配,直到公共任務(wù)池中的任務(wù)都被取走為止:對均等任務(wù)類型,每個處理器核分配相同的數(shù)量的任務(wù);對遞增任務(wù)類型,為每個處理器核分配的任務(wù)數(shù)量滿足遞減的趨勢;對遞減任務(wù)類型,為每個處理器核分配的任務(wù)數(shù)量滿足遞增的趨勢;對隨機任務(wù)類型,為每個處理器核分配均等大小的小塊的任務(wù); c.先完成任務(wù)的處理器核將找到當(dāng)前剩余任務(wù)最多處理器核的任務(wù)池中,進行任務(wù)竊取,幫助未完成任務(wù)的處理器核分擔(dān)工作量,以實現(xiàn)平衡;如此反復(fù)直到最終所有任務(wù)都被完成為止。
2.如權(quán)利要求1所述基于多核DSP的自適應(yīng)任務(wù)調(diào)度方法,其特征是,步驟a中先將整個任務(wù)的前50%平均分配給多個處理器核進行處理。
3.如權(quán)利要求1所述基于多核DSP的自適應(yīng)任務(wù)調(diào)度方法,其特征是,步驟c所述任務(wù)竊取將剩余任務(wù)最多處理器核的任務(wù)池中的1/3任務(wù)取走進行處理。
4.如權(quán)利要求1所述基于多核DSP的自適應(yīng)任務(wù)調(diào)度方法,其特征是,步驟b中,對均等任務(wù)類型,每個處理器核分配到的任務(wù)數(shù)均為
【文檔編號】G06F9/50GK103942109SQ201410185521
【公開日】2014年7月23日 申請日期:2014年5月4日 優(yōu)先權(quán)日:2014年5月4日
【發(fā)明者】王豐, 李功燕 申請人:江蘇物聯(lián)網(wǎng)研究發(fā)展中心