本發(fā)明屬于多核系統(tǒng)任務(wù)調(diào)度方法技術(shù)領(lǐng)域,特別涉及一種基于粒子群算法的多核系統(tǒng)任務(wù)調(diào)度方法。
背景技術(shù):
為了提高計算機的系統(tǒng)性能和處理能耗問題,對計算機處理器的研究已經(jīng)從單核向多核進行發(fā)展。目前通過多個處理器核的并行工作來完成計算任務(wù)成為解決處理器問題的性能瓶頸。任務(wù)調(diào)度是決定計算機系統(tǒng)性能好壞的因素之一。當(dāng)單一芯片上集成了多個處理器核時,在這些處理器核之間進行多任務(wù)的調(diào)度是十分重要。
在多核系統(tǒng)中,并行程序的執(zhí)行順序取決于每個處理器核分配到任務(wù)的情況,所以制定任務(wù)調(diào)度要有一套好的規(guī)則和策略。好的任務(wù)調(diào)度策略可以減少整個系統(tǒng)的執(zhí)行時間并提高系統(tǒng)的響應(yīng)速度。隨著多核處理器的不斷發(fā)展,任務(wù)調(diào)度對于高性能處理器來說變得十分重要。近年來,針對解決多核處理器的任務(wù)調(diào)度問題出現(xiàn)了不少方案。解決任務(wù)調(diào)度的主要問題在于如何縮短調(diào)度時間,降低通信成本和提高系統(tǒng)性能。
目前,公認(rèn)最有發(fā)展前景的任務(wù)調(diào)度技術(shù)是使用啟發(fā)式算法將任務(wù)劃分為不同的組,然后使用遺傳算法分別對它們進行調(diào)度。實際上,多任務(wù)調(diào)度問題是一個np問題。許多智能算法可以應(yīng)用于多任務(wù)調(diào)度問題,如遺傳算法,粒子群優(yōu)化算法,蟻群算法等。粒子群優(yōu)化pso是kennedy和eberhart在1995年基于群體智能進化提出的計算方法。此算法基于對鳥群覓食行為的研究,類似于遺傳算法。粒子群算法原理簡單并且易于實現(xiàn)。粒子群算法主要用于解決復(fù)雜問題的連續(xù)優(yōu)化,但它在離散組合優(yōu)化中的使用卻是非常有限的。蟻群優(yōu)化aco是另一種智能優(yōu)化算法,該算法是受螞蟻覓食時不斷改變活動路徑這一行為的啟發(fā)。aco是通過不斷更新信息素來獲取最優(yōu)解。但是,因為在初始階段缺少信息素,所以這種算法在開始階段的收斂速度十分緩慢。
技術(shù)實現(xiàn)要素:
為了解決多核處理器的任務(wù)調(diào)度,本發(fā)明提出了一種基于粒子群優(yōu)化算法的混合算法。pso和aco都是可以用于多核多任務(wù)調(diào)度的群智能算法。局部最優(yōu)和全局最優(yōu)可以通過pso和aco的混合來實現(xiàn)。使用pso在初始階段收集最優(yōu)解。當(dāng)產(chǎn)生早熟收斂要出現(xiàn)最終結(jié)果時,再使用aco完成剩余的工作。
本發(fā)明所采用的技術(shù)方案是:一種基于粒子群算法的多核系統(tǒng)任務(wù)調(diào)度方法,其特征在于,包括以下步驟:
步驟1:構(gòu)造任務(wù)調(diào)度模型,生成有向無環(huán)圖dag;
步驟2:初始化基本參數(shù)和信息素;
步驟3:更新信息素以計算任務(wù)間通信時間和適應(yīng)度值;
步驟4:生成全局最優(yōu)解。
本發(fā)明與現(xiàn)有技術(shù)相比,具有的有益的效果是:
(1)高效性。本實驗通過將蟻群算法和粒子群優(yōu)化算法相結(jié)合,在初始階段利用粒子群優(yōu)化算法收集最優(yōu)解,加快迭代速度,然后使用蟻群算法控制信息素的更新,通過不斷優(yōu)化縮短任務(wù)調(diào)度時間。
(2)低成本性。通過該算法找到最佳任務(wù)調(diào)度方法,減少通信開銷,使系統(tǒng)性能達(dá)到最優(yōu)。
附圖說明
圖1是本發(fā)明實施例的流程圖;
圖2是本發(fā)明實施例中包含8個線程,邊上權(quán)重表示通信開銷的dag圖;
圖3是本發(fā)明實施例中混合粒子群優(yōu)化算法hoa和遺傳算法ga的性能比較圖。
具體實施方式
為了便于本領(lǐng)域普通技術(shù)人員理解和實施本發(fā)明,下面結(jié)合附圖及實施例對本發(fā)明作進一步的詳細(xì)描述,應(yīng)當(dāng)理解,此處所描述的實施示例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
請見圖1,本發(fā)明提供的一種基于粒子群算法的多核系統(tǒng)任務(wù)調(diào)度方法,包括以下步驟:
步驟1:構(gòu)造任務(wù)調(diào)度模型,生成有向無環(huán)圖dag;
多核處理器中的所有處理器核構(gòu)成并行系統(tǒng),使用有向無環(huán)圖dag將任務(wù)調(diào)度模型轉(zhuǎn)換為數(shù)學(xué)模型,有向無環(huán)圖dag可以描述為g=(v,e,c,w),其中:
v是頂點集合,該集合是有序的任務(wù)集{vi};
e是有向邊集{ei},<vi,vj>∈e表示任務(wù)的先后執(zhí)行順序,vi在前,vj在后,
任務(wù)vi沒有執(zhí)行完就不能執(zhí)行任務(wù)vj;
c表示集合{c(vi,vj)},c(vi,vj)是端點為vi和vj的帶有權(quán)重的邊,其權(quán)重表示兩個線程之間的通信量和控制相關(guān)度,任務(wù)vi是任務(wù)vj的源點;
w是集合{w(vi,vj)},表示線程間的通信開銷w(vi,vj)表示執(zhí)行任務(wù)vi和任務(wù)vj的兩個線程之間的通信所需要的時間,當(dāng)這兩個任務(wù)在同一處理器核中運行時,w(vi,vj)設(shè)置為最小值。
圖2是包含8個線程的dag圖。圖中,c={c(v1,v3),c(v3,v6),c(v2,v4),c(v4,v6),c(v2,v5),c(v4,v7),c(v5,v7),c(v6,v8),c(v7,v8)};w={w(v1,v3),w(v3,v6),w(v2,v4),w(v4,v6),w(v2,v5),w(v4,v7),w(v5,v7),w(v6,v8),w(v7,v8)}。如v1和v3之間的通信開銷為2(w(v1,v3)=2)。
在給定數(shù)量的處理器核和任務(wù)線程數(shù)量下隨機生成100個類似以上的dag圖,分別用遺傳算法ga和本發(fā)明的混合算法hoa分別對dag圖進行任務(wù)間通信開銷的計算。計算結(jié)果如下表1所示:
表1
步驟2:初始化基本參數(shù)和信息素;
初始化的基本參數(shù)包括迭代次數(shù)nc的值,螞蟻數(shù)m和節(jié)點數(shù)n。
在起始階段,使用粒子群優(yōu)化算法pso收集最優(yōu)解,將所有的任務(wù)通過調(diào)度方法分配給相同的b-level核,根據(jù)初始解決方案產(chǎn)生合理的調(diào)度序列,生成初始信息素分布,并在路徑的n節(jié)點處添加m螞蟻的信息素。
在多核處理器的任務(wù)調(diào)度算法中,x的位置由二進制值組成。當(dāng)有n個處理器和m個任務(wù)線程時,粒子x的位置可以表示為:
其中,xij的值為1時,表示將線程i分配給處理器核j,xij的值為0,表示線程可以分配給任意一個處理器核。
步驟3:更新信息素以計算任務(wù)間通信時間和適應(yīng)度值;
步驟3.1:根據(jù)當(dāng)前的位置,計算粒子的適應(yīng)度值itsp0,將適應(yīng)度值設(shè)置為個體極值ptbest,計算當(dāng)前位置的個體極限位置pcbest,根據(jù)每個粒子的個體極值ptbest,找出全局極值gtbest和全局極值位置gcbest;
適應(yīng)度函數(shù)f為:
任務(wù)分配和實現(xiàn)所需的最大時間為:ti=max(tc,v);其中,tc,v表示處理器核完成任務(wù)所需的時間。
步驟3.2:根據(jù)螞蟻移動到下一個節(jié)點j的概率,將每個螞蟻的起始點放置在每個當(dāng)前解集中,節(jié)點j被放置在當(dāng)前解集中;
蟻群算法的概率迭代算法如下:
其中,k為螞蟻編號,τij表示將任務(wù)i分配給核心j的實時信息素濃度,α和β都表示啟發(fā)式因素;allowedk表示第k次迭代運行時的候選任務(wù)序列集。
步驟3.3:第k只螞蟻路徑c0(f)和全局極值位置gcbest相交獲得c'1(f),c'1(f)與個體極限位置pcbest相交得c”1(f),c”1(f)以一定的概率變異到c1(f),根據(jù)當(dāng)前位置計算路徑長度itsp1;
步驟3.4:判斷適應(yīng)度值是否變小;
若是,則更新位置,k=k+1(對下一只螞蟻進行操作),并執(zhí)行下述步驟3.5;
若否,則不更新位置,k=k+1,并執(zhí)行下述步驟3.5;
步驟3.5:判斷是否所有的螞蟻都進行了步驟3.3-3.4操作;
若是,則執(zhí)行下述步驟3.6;
若否,則回轉(zhuǎn)執(zhí)行步驟3.3;
步驟3.6:更新信息素,并迭代數(shù)加1;
步驟3.7:判斷迭代數(shù)是否達(dá)到最大;
若是,則執(zhí)行步驟4,本流程結(jié)束;
若否,則回轉(zhuǎn)執(zhí)行步驟3.1。
將粒子群大小(螞蟻數(shù))m設(shè)為30;最大迭代數(shù)設(shè)為500;w(i)和c(i)取值在1~10之間;λ值為e=2.718的自然指數(shù)。圖3是利用設(shè)定的值取數(shù)據(jù)平均值進行混合粒子群優(yōu)化算法hoa和遺傳算法ga的比較。
本發(fā)明是通過對信息素的有效初始化,將蟻群算法和粒子群算法相結(jié)合,同時使用引入遺傳算法的交叉變異策略,以高效地實現(xiàn)多核系統(tǒng)的任務(wù)調(diào)度。本方法實現(xiàn)了縮短任務(wù)調(diào)度的時間,降低通信成本,彌補單方面算法的不足之處。
應(yīng)當(dāng)理解的是,本說明書未詳細(xì)闡述的部分均屬于現(xiàn)有技術(shù)。
應(yīng)當(dāng)理解的是,上述針對較佳實施例的描述較為詳細(xì),并不能因此而認(rèn)為是對本發(fā)明專利保護范圍的限制,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的啟示下,在不脫離本發(fā)明權(quán)利要求所保護的范圍情況下,還可以做出替換或變形,均落入本發(fā)明的保護范圍之內(nèi),本發(fā)明的請求保護范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。