本發(fā)明涉及電子技術(shù)領(lǐng)域,具體而言,涉及一種片上網(wǎng)絡(luò)任務(wù)調(diào)度方法及裝置。
背景技術(shù):
隨著當(dāng)今社會信息技術(shù)的高速發(fā)展,掌上智能終端、自動化控制以及大數(shù)據(jù)計算處理等眾多應(yīng)用領(lǐng)域?qū)呻娐菲舷到y(tǒng)的功能和性能提出了更高的要求,多核片上系統(tǒng)的集成度大幅提高,致使極大地增加了片上系統(tǒng)的復(fù)雜度及實現(xiàn)難度。高性能多核片上系統(tǒng)的發(fā)展趨勢必然是片上網(wǎng)絡(luò)的發(fā)展及應(yīng)用。
片上網(wǎng)絡(luò)借鑒了計算機(jī)互聯(lián)網(wǎng)絡(luò)的結(jié)構(gòu),解決了片上系統(tǒng)傳統(tǒng)總線結(jié)構(gòu)的通信瓶頸問題。但是片上網(wǎng)絡(luò)的任務(wù)調(diào)度是典型的NP問題,具有較高的時間復(fù)雜度,需要同時考慮通信功耗及通信時間等性能指標(biāo)。目前所采用的調(diào)度方法主要的是傳統(tǒng)的進(jìn)化思想,對交叉率、變異率等參數(shù)的依賴性強(qiáng),且上述參數(shù)的選擇大多是依靠經(jīng)驗選取。另外,傳統(tǒng)的進(jìn)化思想還存在對初始種群的選擇具有一定的依賴性,調(diào)度方案易陷入局部最優(yōu)以及進(jìn)化算法的并行機(jī)制未得到充分利用等缺陷。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種片上網(wǎng)絡(luò)任務(wù)調(diào)度方法及裝置,以改善上述問題。
本發(fā)明實施例提供一種片上網(wǎng)絡(luò)任務(wù)調(diào)度方法,該方法包括:
根據(jù)片上網(wǎng)絡(luò)的任務(wù)圖以及各任務(wù)之間的執(zhí)行關(guān)系進(jìn)行任務(wù)分組,其中,所述執(zhí)行關(guān)系包括并行關(guān)系和偏序關(guān)系;
生成初始種群,該初始種群包括多個部落,每個部落由與任務(wù)分組后得到的所有任務(wù)組一一對應(yīng)的量子染色體構(gòu)成,不同部落解碼后對應(yīng)不同的調(diào)度方案;
基于量子進(jìn)化算法及預(yù)先設(shè)定的用于衡量調(diào)度方案性能指標(biāo)的適應(yīng)度函數(shù)對所述初始種群進(jìn)行進(jìn)化迭代,得到最優(yōu)的調(diào)度方案,所述性能指標(biāo)包括通信功耗及通信時間;
根據(jù)所述最優(yōu)的調(diào)度方案,將各個任務(wù)組調(diào)度到對應(yīng)的處理核。
本發(fā)明另一實施例提供一種片上網(wǎng)絡(luò)任務(wù)調(diào)度裝置,該裝置包括:
任務(wù)分組模塊,用于根據(jù)片上網(wǎng)絡(luò)的任務(wù)圖以及各任務(wù)之間的執(zhí)行關(guān)系進(jìn)行任務(wù)分組,其中,所述執(zhí)行關(guān)系包括并行關(guān)系和偏序關(guān)系;
種群生成模塊,用于生成初始種群,該初始種群包括多個部落,每個部落由與任務(wù)分組后得到的所有任務(wù)組一一對應(yīng)的量子染色體構(gòu)成,不同部落解碼后對應(yīng)不同的調(diào)度方案;
進(jìn)化迭代及調(diào)度方案生成模塊,用于基于量子進(jìn)化算法及預(yù)先設(shè)定的用于衡量調(diào)度方案性能指標(biāo)的適應(yīng)度函數(shù)對所述初始種群進(jìn)行進(jìn)化迭代,得到最優(yōu)的調(diào)度方案,所述性能指標(biāo)包括通信功耗及通信時間;
任務(wù)調(diào)度模塊,根據(jù)所述最優(yōu)的調(diào)度方案,將各個任務(wù)組調(diào)度到對應(yīng)的處理核。
本發(fā)明實施例提供的片上網(wǎng)絡(luò)任務(wù)調(diào)度方法及裝置,根據(jù)各任務(wù)之間的執(zhí)行關(guān)系進(jìn)行任務(wù)分組后,基于量子進(jìn)化算法及以優(yōu)化通信功耗和通信時間為目標(biāo)進(jìn)行任務(wù)調(diào)度,減少了調(diào)度結(jié)果對進(jìn)化參數(shù)及初始種群的依賴性,充分利用了量子進(jìn)化的并行機(jī)制,最終獲得滿足優(yōu)化性能指標(biāo)的最優(yōu)調(diào)度方案。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實施例,因此不應(yīng)被看作是對范圍的限定,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
圖1為本發(fā)明實施例提供的一種智能設(shè)備的方框示意圖;
圖2為本發(fā)明實施例提供的一種片上網(wǎng)絡(luò)任務(wù)調(diào)度方法的流程圖;
圖3為本發(fā)明實施例提供的實驗用例中片上網(wǎng)絡(luò)任務(wù)圖的示意圖;
圖4為片上網(wǎng)絡(luò)為4行4列時的任務(wù)調(diào)度結(jié)果示意圖;
圖5為片上網(wǎng)絡(luò)為3行3列時的任務(wù)調(diào)度結(jié)果示意圖;
圖6為本發(fā)明實施例提供的一種片上網(wǎng)絡(luò)任務(wù)調(diào)度裝置的功能模塊框圖。
圖標(biāo):100-智能設(shè)備;110-片上網(wǎng)絡(luò)任務(wù)調(diào)度裝置;120-存儲器;130-處理器;1102-任務(wù)分組模塊;1104-種群生成模塊;1106-進(jìn)化迭代及調(diào)度方案生成模塊;1108-任務(wù)調(diào)度模塊。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。因此,以下對在附圖中提供的本發(fā)明的實施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
如圖1所示,是本發(fā)明實施例提供的一種可應(yīng)用片上網(wǎng)絡(luò)任務(wù)調(diào)度方法的智能設(shè)備100的方框示意圖。所述智能設(shè)備100可以是,但不限于,PC機(jī)、智能手機(jī)、服務(wù)器等。該智能設(shè)備100包括片上網(wǎng)絡(luò)任務(wù)調(diào)度裝置110、存儲器120以及處理器130。
所述存儲器120與處理器130之間可通過一條或多條通訊線路或信號線實現(xiàn)電性連接。所述片上網(wǎng)絡(luò)任務(wù)調(diào)度裝置110包括至少一個可以軟件或固件的形式存儲于所述存儲器120中或固化在所述智能設(shè)備100的操作系統(tǒng)中的軟件功能模塊。所述處理器130用于執(zhí)行所述存儲器120中存儲的可執(zhí)行模塊,例如所述片上網(wǎng)絡(luò)任務(wù)調(diào)度裝置110所包括的軟件功能模塊及計算機(jī)程序等。
如圖2所示,是本發(fā)明實施例提供的一種片上網(wǎng)絡(luò)任務(wù)調(diào)度方法的流程圖。所應(yīng)說明的是,本發(fā)明提供的方法不以圖2及以下所述的具體順序為限制。下面將對圖2所示的各步驟進(jìn)行詳細(xì)闡述。
步驟S101,根據(jù)片上網(wǎng)絡(luò)的任務(wù)圖以及各任務(wù)之間的執(zhí)行關(guān)系進(jìn)行任務(wù)分組。
本實施例中,所述執(zhí)行關(guān)系包括并行關(guān)系和偏序關(guān)系。所述并行關(guān)系是指兩個任務(wù)之間不存在通信依賴,可以被并行執(zhí)行。所述偏序關(guān)系是指兩個任務(wù)之間存在通信依賴,執(zhí)行順序需要分先后。
所述片上網(wǎng)絡(luò)的任務(wù)圖為有向無環(huán)圖。基于該任務(wù)圖及任務(wù)之間的執(zhí)行關(guān)系進(jìn)行分組的過程包括如下子步驟:
子步驟S1:選擇所述任務(wù)圖中任意一個無前驅(qū)結(jié)點的任務(wù)結(jié)點作為起始結(jié)點,判斷該起始結(jié)點是否存在直接后繼結(jié)點,若存在,則沿一條包括所述起始結(jié)點的分支順位選擇至少一個后繼結(jié)點作為該起始結(jié)點的同組任務(wù)結(jié)點,若不存在,則直接將該起始結(jié)點獨立地作為一個任務(wù)分組。
子步驟S3:在所述任務(wù)圖中對已完成分組的任務(wù)結(jié)點進(jìn)行標(biāo)記,并將尚未被標(biāo)記的各個任務(wù)結(jié)點構(gòu)成的任務(wù)圖作為新的任務(wù)圖。
以及子步驟S5:基于得到的所述新的任務(wù)圖,重復(fù)執(zhí)行步驟S1和S3,直至最初始的任務(wù)圖中的所有任務(wù)結(jié)點已全部被標(biāo)記。
更進(jìn)一步地,該方法在進(jìn)行任務(wù)分組前,還預(yù)先設(shè)定有一用于控制所述任務(wù)組包含的任務(wù)總數(shù)的熱點閾值,以防止任務(wù)組包括過多任務(wù)時,造成芯片過熱點的產(chǎn)生,致使系統(tǒng)性能不穩(wěn)定。由此,所述子步驟S1中沿分支構(gòu)建任務(wù)路徑時,所選擇的后繼結(jié)點的數(shù)目應(yīng)小于或等于所述熱點閾值。
此外,當(dāng)在執(zhí)行所述子步驟S1時,若起始結(jié)點存在多個直接后繼結(jié)點,則優(yōu)選具有最大通信量的任務(wù)結(jié)點作為該起始結(jié)點的同組任務(wù)結(jié)點,然后再在所選擇的任務(wù)結(jié)點的所有直接后繼結(jié)點中繼續(xù)選擇具有最大通信量的任務(wù)結(jié)點作為所述起始結(jié)點的同組任務(wù)結(jié)點,如此下去,直至順位選擇的任務(wù)結(jié)點數(shù)目達(dá)到所述熱點閾值或者所有結(jié)點都已經(jīng)被分組完畢。
由上述的描述可以看出,基于有向無環(huán)的片上網(wǎng)絡(luò)任務(wù)圖及任務(wù)之間的執(zhí)行關(guān)系進(jìn)行任務(wù)分組時,應(yīng)從沒有前驅(qū)的任務(wù)結(jié)點開始,沿著一條分支選擇后繼任務(wù)結(jié)點,構(gòu)建一條到達(dá)葉子任務(wù)結(jié)點的任務(wù)路徑。在構(gòu)建過程中,只能選擇還未被其他路徑構(gòu)建過的任務(wù)結(jié)點。并且如果當(dāng)前的任務(wù)結(jié)點存在多個可選分支,則優(yōu)選通信流量大、通信功耗或者通信時延長等有利于進(jìn)行性能優(yōu)化的分支。另外,在每選擇一個新的結(jié)點構(gòu)建任務(wù)路徑時,應(yīng)判斷是否達(dá)到預(yù)先設(shè)置的熱點閥值,若已達(dá)到,則結(jié)束當(dāng)前任務(wù)路徑的構(gòu)建,并將該路徑上所包含的任務(wù)結(jié)點分配至同一任務(wù)組。
步驟S103,生成初始種群,該初始種群包括多個部落,每個部落由與任務(wù)分組后得到的所有任務(wù)組一一對應(yīng)的量子染色體構(gòu)成。
本實施例中,生成初始種群的過程為,首先對任務(wù)組及所述片上網(wǎng)絡(luò)中的處理核進(jìn)行編號。其中,對任務(wù)組進(jìn)行編號時可以是但不限于,依照每個任務(wù)組的構(gòu)建順序進(jìn)行依次標(biāo)號;對處理核進(jìn)行編號時可以是但不限于,依照每個處理核的位置進(jìn)行依次編號。
然后,針對各個任務(wù)組分別進(jìn)行概率幅度編碼,生成與該任務(wù)組對應(yīng)的量子染色體。所有的量子染色體構(gòu)成一個部落。其中,該部落中與第i個任務(wù)組對應(yīng)的量子染色體表示為:
αij表示第i個任務(wù)組被調(diào)度至第j個處理核的概率幅度,βij表示第i個任務(wù)組未被調(diào)度至第j個處理核的概率幅度,|αij|2+|βij|2=1,
i=1,2…n,j=1,2…m。其中,n表示任務(wù)組的總數(shù)目,m表示所述片上網(wǎng)絡(luò)中的處理核的總數(shù)目。
按照上述生成部落的方法不斷重復(fù),直至生成的部落總數(shù)達(dá)到預(yù)定個數(shù)后,將已生成的所有部落構(gòu)成所述初始種群。
步驟S105,基于量子進(jìn)化算法及預(yù)先設(shè)定的用于衡量調(diào)度方案性能指標(biāo)的適應(yīng)度函數(shù)對所述初始種群進(jìn)行進(jìn)化迭代,得到最優(yōu)的調(diào)度方案。所述性能指標(biāo)包括通信功耗及通信時間。
本實施例中,基于所述初始種群進(jìn)行進(jìn)化迭代得到最優(yōu)調(diào)度方案的具體過程包括,首先對所述初始種群中的各個部落分別進(jìn)行解碼,得到每個部落對應(yīng)的調(diào)度方案。
其中,對所述部落進(jìn)行解碼的方式為,獲取該部落的每個量子染色體中的各個量子位的狀態(tài)。然后按照任務(wù)組編號,依次針對每個量子染色體將其中所有狀態(tài)為1的量子位對應(yīng)的處理核都納入第一備選處理核集,并將第一備選處理核集中未被標(biāo)記過的且具有最大概率幅度的處理核標(biāo)記為該量子染色體對應(yīng)的任務(wù)組所應(yīng)被調(diào)度到的目標(biāo)處理核。若當(dāng)前的量子染色體中不存在狀態(tài)為1的量子位或者所述第一備選處理核集中的元素已全部被標(biāo)記過時,則將該量子染色體中所有狀態(tài)為0的量子位對應(yīng)的處理核都納入第二備選處理核集,然后將第二備選處理核集中未被標(biāo)記過的且具有最大概率幅度的處理核標(biāo)記為該量子染色體對應(yīng)的任務(wù)組所應(yīng)被調(diào)度到的目標(biāo)處理核。
其次,按照預(yù)先設(shè)定的適應(yīng)度函數(shù)計算出每個調(diào)度方案的性能指標(biāo),并根據(jù)所述性能指標(biāo)以非支配排序算法確定當(dāng)前的最優(yōu)調(diào)度方案。
本實施例中,所述適應(yīng)度函數(shù)包括計算通信功耗的第一函數(shù)以及計算通信時間的第二函數(shù)。所述第一函數(shù)為:
Power=Σ1≤i,j≤m(Plink*hopi,j+Pswitch*(hopi,j+1))
其中,i和j表示具有通信依賴關(guān)系的兩個處理核的編號。m表示處理核的總數(shù)目。hopij表示兩個處理核i和j之間的通信路徑所經(jīng)歷的鏈路條數(shù),即跳數(shù)。Plink表示每條通信鏈路上的功耗。Pswitch表示每個交換結(jié)點的功耗。此處采用的Plink和Pswitch兩個功耗參數(shù)值來自于R.Das等人在文獻(xiàn)“Design and evaluation of a hierarchical on-chipinterconnect for next-generation CMPs”和“Optimizing NUCA organizations andwiring alternatives for large caches with CACTI 6.0”中提出的模型,是與通信流量相關(guān)的函數(shù)。
所述第二函數(shù)為:
Time=∑1≤i,j≤m(Tlink*hopi,j+Tswitch*(hopi,j+1))
其中,Tlink表示每一條通信鏈路上傳輸數(shù)據(jù)的時間。Tswitch表示在一個交換結(jié)點中路由緩存排隊的時間。Tlink和Tswitch的參數(shù)值來自于N.Muralimanohar等人在文獻(xiàn)“Optimizing NUCA organizations andwiring alternatives for large caches with CACTI 6.0”和“A delay optimal coterie on the k-dimensional folded Petersengraph”中提出的模型,同樣是與通信流量相關(guān)的函數(shù)。
再次,判斷當(dāng)前是否已滿足預(yù)先設(shè)定的迭代終止條件。若滿足,則終止迭代,輸出所述最優(yōu)調(diào)度方案。若不滿足,則選擇預(yù)定個數(shù)的性能指標(biāo)最高的調(diào)度方案所對應(yīng)的部落組成精英團(tuán),并采用量子旋轉(zhuǎn)門對位于所述精英團(tuán)以外的所有滿足預(yù)設(shè)更新條件的部落中的每個量子染色體進(jìn)行更新。所述量子旋轉(zhuǎn)門表示為:
其中,表示待更新的部落中第p個任務(wù)組所對應(yīng)的量子染色體中的第q個量子位。表示更新后的量子位。θ為根據(jù)當(dāng)前的最優(yōu)調(diào)度方案所對應(yīng)的部落與該待更新的部落之間的性能指標(biāo)之差確定的旋轉(zhuǎn)角,該旋轉(zhuǎn)角的方向由待更新的量子位的概率幅度確定。
本實施例中,所述迭代終止條件可以是達(dá)到預(yù)先設(shè)定的迭代終止次數(shù)時,則終止進(jìn)化迭代。所述更新條件可以是大于預(yù)先設(shè)定的一性能指標(biāo)閾值。此外,所述旋轉(zhuǎn)角的方向確定方式可以是但不限于,當(dāng)αpq>βpq時設(shè)置為正方向,反之設(shè)置為反方向。
最后,將更新后的部落與所述精英團(tuán)共同構(gòu)成新的種群,并基于該新的種群繼續(xù)進(jìn)行進(jìn)化迭代,直至滿足迭代終止條件后,輸出當(dāng)前的最優(yōu)調(diào)度方案。
步驟S107,根據(jù)所述最優(yōu)的調(diào)度方案,將各個任務(wù)組調(diào)度到對應(yīng)的處理核。
下面示例性的舉出一實驗用例,以更進(jìn)一步詳細(xì)的闡述本實施例提供的片上網(wǎng)絡(luò)任務(wù)調(diào)度方法。如圖3所示,是本實驗用例中的片上網(wǎng)絡(luò)任務(wù)圖。圖中結(jié)點表示任務(wù)結(jié)點。兩任務(wù)結(jié)點之間連線上的數(shù)字表示通信流量。
基于該任務(wù)圖進(jìn)行分組時,預(yù)先設(shè)定所述熱點閾值為3,即每個任務(wù)組最多包含3個任務(wù)結(jié)點。然后,選擇不存在直接前驅(qū)的任務(wù)結(jié)點,按照偏序關(guān)系,沿著結(jié)點分支,依次選擇歸于同一分組的任務(wù)結(jié)點,直至當(dāng)任務(wù)結(jié)點數(shù)目超過熱點閥值時終止該次分組。在所述任務(wù)圖中除去已完成分組的任務(wù)結(jié)點后,再重新選擇不存在直接前驅(qū)的任務(wù)結(jié)點開始新一輪任務(wù)分組。按此方法,圖3所示的任務(wù)圖中的任務(wù)被分為8個組,分組情況如下:
組1:0,2,7;組2:1,5,11;組3:3,8,14;組4:4,9,15;
組5:6,12,17;組6:10,16,19;組7:13,18,20;組8:21。
根據(jù)構(gòu)建路徑的結(jié)點順序,可以得到任務(wù)的調(diào)度順序,如表1所示:
表1任務(wù)調(diào)度順序表
完成上述任務(wù)分組后,根據(jù)量子進(jìn)化思想將8個任務(wù)組調(diào)度至片上網(wǎng)絡(luò)的處理核上。本實施例中,采用4行4列的片上網(wǎng)絡(luò),處理核總數(shù)為16個。預(yù)定生成部落總個數(shù)為100,即初始種群包含100個進(jìn)化部落。設(shè)置迭代總次數(shù)100次,每代選擇10個性能指標(biāo)最高的部落構(gòu)成精英團(tuán)。每個部落的8個任務(wù)組分別進(jìn)行量子染色體編碼,初始編碼值隨機(jī)產(chǎn)生,例如第k個部落Tk中的8個任務(wù)組分別對應(yīng)的8條量子染色體編碼為:
對初始種群的每個部落中的量子染色體進(jìn)行解碼。每個部落的量子染色體解碼后都得到任務(wù)組的一種調(diào)度方案。例如上述部落Tk的量子染色體進(jìn)行解碼,觀察量子染色體的每個量子位的狀態(tài)。以第一條染色體Ck1為例,觀察其狀態(tài)值為(0,1,1,0,0,1,0,1,1,0,1,1,0,0,0,1)。在量子位取值為1的位序所對應(yīng)的處理核,即編號為2,3,6,8,9,11,12,16的處理核中選擇還沒有被調(diào)度的并且概率幅度值最大的處理核,作為第一個任務(wù)組的調(diào)度核。以此方法對部落Tk中的其他染色體進(jìn)行解碼,得到其他任務(wù)組的調(diào)度核。據(jù)此得到部落Tk對應(yīng)的一種調(diào)度方案為:任務(wù)組1調(diào)度到處理核2,任務(wù)組2調(diào)度到處理核5,任務(wù)組3調(diào)度到處理核1,任務(wù)組4調(diào)度到處理核3,任務(wù)組5調(diào)度到處理核12,任務(wù)組7調(diào)度到處理核9,任務(wù)組8調(diào)度到處理核13。按照此方法對其他部落的染色體進(jìn)行解碼,得到相應(yīng)的調(diào)度方案,因為設(shè)置了100個部落,故可以得到100種調(diào)度方案。
根據(jù)預(yù)先設(shè)定的適應(yīng)度函數(shù)計算每一種方案的性能指標(biāo),作為評價調(diào)度方案的適應(yīng)度的依據(jù)。然后通過非支配排序從中選出最優(yōu)的方案標(biāo)記為最優(yōu)調(diào)度方案。并且根據(jù)性能指標(biāo)選取適應(yīng)度從高到低的10個方案納入精英團(tuán)。精英團(tuán)對應(yīng)的量子染色體自動進(jìn)入下一輪進(jìn)化迭代。判斷當(dāng)前迭代次數(shù)是否大于預(yù)設(shè)值100,如果大于100,則終止進(jìn)化,輸出當(dāng)前獲得的最優(yōu)調(diào)度方案,如果小于100,則繼續(xù)進(jìn)行下一次進(jìn)化迭代。
繼續(xù)進(jìn)行進(jìn)化迭代時,需要進(jìn)行量子染色體的更新。根據(jù)量子染色體適應(yīng)度大小,對滿足更新條件的染色體,參考最優(yōu)調(diào)度方案中的染色體對應(yīng)的量子位進(jìn)行更新,更新公式如下:
例如當(dāng)前量子染色體為最優(yōu)調(diào)度方案中的第i條染色體為根據(jù)染色體Di和Bi適應(yīng)度差值,調(diào)整旋轉(zhuǎn)門的角度θ。θ的方向根據(jù)量子位的概率幅度進(jìn)行選取,例如Bi的第1個量子位概率幅度是αi1>βi1,則旋轉(zhuǎn)角θ為正。帶入更新公式計算,得到更新后的染色體為:
更新后的量子染色體向最優(yōu)染色體趨近,但是又不完全等同最優(yōu)染色體,如此在逐漸優(yōu)化的同時,也避免了陷入過早收斂。
根據(jù)上述過程,在進(jìn)化迭代結(jié)束后得到的任務(wù)組的最優(yōu)調(diào)度方案如圖4所示。該方案所得通信功耗為1.4058e-06J,通信時間為4.0837e-04ms。若采用3行3列的片上網(wǎng)絡(luò)結(jié)構(gòu),得到的最優(yōu)調(diào)度方案如圖5所示。該方案的通信功耗為1.4297e-06J,通信時間為4.2597e-04ms。
如圖6所示,是本發(fā)明實施例提供的一種片上網(wǎng)絡(luò)任務(wù)調(diào)度裝置110的功能模塊框圖。該裝置包括任務(wù)分組模塊1102、種群生成模塊1104、進(jìn)化迭代及調(diào)度方案生成模塊1106以及任務(wù)調(diào)度模塊1108。
所述任務(wù)分組模塊1102,用于根據(jù)片上網(wǎng)絡(luò)的任務(wù)圖以及各任務(wù)之間的執(zhí)行關(guān)系進(jìn)行任務(wù)分組,其中,所述執(zhí)行關(guān)系包括并行關(guān)系和偏序關(guān)系。
所述種群生成模塊1104,用于生成初始種群,該初始種群包括多個部落,每個部落由與任務(wù)分組后得到的所有任務(wù)組一一對應(yīng)的量子染色體構(gòu)成,不同部落解碼后對應(yīng)不同的調(diào)度方案。
所述進(jìn)化迭代及調(diào)度方案生成模塊1106,用于基于量子進(jìn)化算法及預(yù)先設(shè)定的用于衡量調(diào)度方案性能指標(biāo)的適應(yīng)度函數(shù)對所述初始種群進(jìn)行進(jìn)化迭代,得到最優(yōu)的調(diào)度方案,所述性能指標(biāo)包括通信功耗及通信時間。
所述任務(wù)調(diào)度模塊1108,根據(jù)所述最優(yōu)的調(diào)度方案,將各個任務(wù)組調(diào)度到對應(yīng)的處理核。
本實施例提供的各功能模塊的具體操作方法可參照上述方法實施例中各對應(yīng)步驟的詳細(xì)描述,在此不再一一贅述。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的裝置和方法,也可以通過其它的方式實現(xiàn)。以上所描述的裝置實施例僅僅是示意性的,例如,附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的裝置、方法和計算機(jī)程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)方式中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機(jī)指令的組合來實現(xiàn)。
另外,在本發(fā)明各個實施例中的各功能模塊可以集成在一起形成一個獨立的部分,也可以是各個模塊單獨存在,也可以兩個或兩個以上模塊集成形成一個獨立的部分。
所述功能如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
應(yīng)注意到:相似的標(biāo)號和字母在上面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進(jìn)行進(jìn)一步定義和解釋。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。