專利名稱:信號(hào)處理并行計(jì)算軟件的動(dòng)態(tài)重配置方法
技術(shù)領(lǐng)域:
本發(fā)明涉及并行計(jì)算,具體地指一種信號(hào)處理并行計(jì)算軟件的動(dòng)態(tài)重配置方法。
背景技術(shù):
面向功能及操作需求的按需計(jì)算可能面對各種需求變化,因此,要求實(shí)時(shí)并行計(jì)算技術(shù)能支持這種在線變化,并同時(shí)考慮有限計(jì)算資源和其計(jì)算能力的約束,這就是所謂的計(jì)算彈性,是多傳感器信號(hào)處理等許多并行計(jì)算軟件系統(tǒng)的高性能特征。隨著需求的不同,信號(hào)處理并行計(jì)算量和數(shù)據(jù)存儲(chǔ)量是變化的。 例如,在傳感器陣列數(shù)字波束形成中,陣型、波束數(shù)、工作頻段及采樣頻率的變化均會(huì)導(dǎo)致陣列處理部分算法和/或計(jì)算量的改變,而算法與計(jì)算量的變化必然導(dǎo)致計(jì)算任務(wù)與數(shù)據(jù)流向的變化,即計(jì)算結(jié)構(gòu)的變化。若考慮有限硬件資源條件的約束,傳統(tǒng)的軟件編制方法將無法適應(yīng)上述的計(jì)算彈性,必須發(fā)展軟件技術(shù)以適應(yīng)計(jì)算任務(wù)的多粒度與可變粒度。實(shí)現(xiàn)計(jì)算粒度的變化,應(yīng)受到實(shí)時(shí)性能的約束,因而所需的計(jì)算、通信和存儲(chǔ)資源也將隨之而變。尤其是當(dāng)計(jì)算任務(wù)所對應(yīng)的硬件資源需求增大時(shí),軟件應(yīng)能及時(shí)對計(jì)算任務(wù)進(jìn)行資源重分配,否則將影響實(shí)時(shí)性能。因此必須對多粒度或變粒度計(jì)算任務(wù)按資源特性重新進(jìn)行并行分解,然后動(dòng)態(tài)分布到計(jì)算平臺(tái)上。鑒于上述特征,當(dāng)軟件系統(tǒng)因計(jì)算需求變化或資源故障而引起性能異常時(shí),軟件系統(tǒng)需要有自適應(yīng)動(dòng)態(tài)重配置軟件和分配硬件資源的能力。然而,現(xiàn)有的能支持計(jì)算彈性的并行任務(wù)分解映射方法,沒有考慮隔離應(yīng)用需求與硬件資源的各種異構(gòu)影響因素(包括處理器結(jié)構(gòu)、互聯(lián)網(wǎng)絡(luò)結(jié)構(gòu)、計(jì)算性能與通信帶寬等),使分解映射的優(yōu)化方法有很大的代價(jià),甚至因網(wǎng)絡(luò)互聯(lián)拓?fù)浣Y(jié)構(gòu)不確定而造成無解,即無法重分配計(jì)算任務(wù)或無法支持計(jì)算彈性。目前,信號(hào)處理并行計(jì)算軟件通常是在設(shè)計(jì)階段實(shí)現(xiàn)應(yīng)用并行化,也就是事先將應(yīng)用劃分成若干個(gè)計(jì)算任務(wù),并將各個(gè)計(jì)算任務(wù)程序代碼分別編譯連接后,利用開發(fā)環(huán)境提供的工具加載執(zhí)行程序到處理器。這種方法通常存在以下缺點(diǎn)I、處理器資源是預(yù)先分配的,一旦計(jì)算任務(wù)所需的算法粒度與算法本身發(fā)生變化后,必須重新編寫代碼、至少重編譯和重加載程序代碼,因而,軟件系統(tǒng)不具有在線的計(jì)算彈性。2、計(jì)算任務(wù)進(jìn)程是靜態(tài)編碼和加載的,進(jìn)程間數(shù)據(jù)流是固定的,因而,程序編碼是與處理器分布緊密相關(guān),軟件無法適應(yīng)硬件平臺(tái)的變化,不便于系統(tǒng)擴(kuò)展。因此,研究一種信號(hào)處理并行計(jì)算軟件動(dòng)態(tài)重配置方法,對于克服上述缺陷,形成高性能的靈巧計(jì)算具有進(jìn)步意義與實(shí)用價(jià)值。
發(fā)明內(nèi)容
本發(fā)明的目的就在于克服上述現(xiàn)有技術(shù)的不足,而提供信號(hào)處理并行計(jì)算軟件的動(dòng)態(tài)重配置方法,該方法支持多粒度或變粒度計(jì)算任務(wù)的在線并行分解,能夠根據(jù)信號(hào)處理算法或任務(wù)計(jì)算量的需求,動(dòng)態(tài)管理處理器資源,并能將計(jì)算任務(wù)動(dòng)態(tài)分布到多核處理器中。實(shí)現(xiàn)本發(fā)明目的采用的技術(shù)方案是一種信號(hào)處理并行計(jì)算軟件的動(dòng)態(tài)重配置方法,包括以下步驟(I)以信號(hào)處理的數(shù)據(jù)吞吐要求為目標(biāo),通過計(jì)算任務(wù)圖與并行處理系統(tǒng)硬件特征的最優(yōu)匹配,生成軟件架構(gòu)圖;(2)針對處理器的數(shù)量與拓?fù)浣Y(jié)構(gòu),將所述軟件架構(gòu)圖分布到實(shí)際并行處理系統(tǒng)的各個(gè)處理器上。其中,所述計(jì)算任務(wù)圖是面向數(shù)據(jù)驅(qū)動(dòng)型信號(hào)處理應(yīng)用的數(shù)據(jù)流圖,具有多計(jì)算粒度和可變計(jì)算粒度,所述計(jì)算粒度為計(jì)算任務(wù)在處理器上的最短計(jì)算時(shí)間。 所述并行處理系統(tǒng)硬件特征包括處理器的內(nèi)部層次結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)、處理器計(jì)算性能、以及處理器之間通信網(wǎng)絡(luò)的通信帶寬。與現(xiàn)有技術(shù)相比,本發(fā)明的信號(hào)處理并行計(jì)算軟件重配置方法,是在系統(tǒng)執(zhí)行時(shí),動(dòng)態(tài)分布計(jì)算任務(wù)到多核處理器,以實(shí)現(xiàn)自適應(yīng)變粒度并行計(jì)算,因而能夠?qū)崿F(xiàn)在線的計(jì)算彈性。
圖I為本發(fā)明信號(hào)處理并行計(jì)算軟件的動(dòng)態(tài)重配置方法的流程圖;圖2為圖I中軟件架構(gòu)圖重配置的流程圖;圖3為本發(fā)明信號(hào)處理并行計(jì)算軟件的動(dòng)態(tài)重配置方法的操作示意圖;圖4為圖3中計(jì)算實(shí)體的結(jié)構(gòu)框圖;圖5為圖4中任務(wù)池?cái)?shù)據(jù)結(jié)構(gòu)示意圖;圖6為圖4中數(shù)據(jù)端口鏈表結(jié)構(gòu)示意圖;圖7為圖3中將軟件構(gòu)架圖的分布流程示意圖。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施例對本發(fā)明作進(jìn)一步的說明。本實(shí)施例中,信號(hào)處理并行計(jì)算應(yīng)用軟件運(yùn)行在多核集群平臺(tái)的并行處理系統(tǒng)上。該并行處理系統(tǒng)中的處理器為SMP多核處理器,處理器計(jì)算速度和網(wǎng)絡(luò)帶寬等性能特征可被測量。SMP多核處理器具有“節(jié)點(diǎn)-內(nèi)核”兩級(jí)結(jié)構(gòu),各內(nèi)核與片內(nèi)的存儲(chǔ)器對稱連接。在本實(shí)施例中,所述計(jì)算任務(wù)圖是面向數(shù)據(jù)驅(qū)動(dòng)型信號(hào)處理應(yīng)用的數(shù)據(jù)流圖,其中的信號(hào)處理計(jì)算任務(wù)具有多計(jì)算粒度和可變計(jì)算粒度特點(diǎn)。所述計(jì)算粒度用該計(jì)算任務(wù)在處理器上最短計(jì)算時(shí)間衡量。所述數(shù)據(jù)驅(qū)動(dòng)的信號(hào)處理受到數(shù)據(jù)吞吐率的實(shí)際約束。如圖I和圖3所示,本發(fā)明信號(hào)處理并行計(jì)算軟件的動(dòng)態(tài)重配置方法包括以下步驟步驟SlOO配置并生成軟件構(gòu)架圖。優(yōu)化匹配器以數(shù)據(jù)吞吐指標(biāo)為目標(biāo),根據(jù)監(jiān)視分析器在線獲取的實(shí)時(shí)數(shù)據(jù)吞吐量與并行處理系統(tǒng)的硬件結(jié)構(gòu)特征和性能特征,生成軟件構(gòu)架圖。其中,所述并行處理系統(tǒng)硬件結(jié)構(gòu)特征和性能特征包括處理器的內(nèi)部層次結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)、處理器計(jì)算性能、以及處理器之間通信網(wǎng)絡(luò)的通信帶寬;
本步驟生成的軟件構(gòu)架圖包括多個(gè)可配置的計(jì)算軟件實(shí)體、發(fā)送連接器和接收連接器,其中發(fā)送連接器和接收連接器通過數(shù)據(jù)端口與計(jì)算實(shí)體連接,兩個(gè)計(jì)算實(shí)體之間通過發(fā)送、接收連接器連接。如圖4所示,計(jì)算實(shí)體內(nèi)嵌配置信息包,配置信息包包括以下配置屬性計(jì)算任務(wù)及其執(zhí)行序列、硬件資源需求、數(shù)據(jù)端口、實(shí)例運(yùn)行線程與特定內(nèi)核間的綁定關(guān)系。其中,計(jì)算任務(wù)是并行處理軟件中的最小計(jì)算粒度,計(jì)算任務(wù)配置的變化反映計(jì)算粒度的變化。因此,所述配置信息包可適時(shí)體現(xiàn)并行計(jì)算粒度的變化。計(jì)算軟件實(shí)體具有動(dòng)態(tài)可重配置特征,如圖4所示,其內(nèi)部包含以下控制邏輯單元①啟停(生命期)控制器任務(wù)池控制器端口控制器線程控制器。為了從外部能夠控制上述內(nèi)部控制邏輯單元的操作,計(jì)算軟件實(shí)體還定義有相應(yīng)管理接口 啟停(生命期)管理接口、任務(wù)管理接口、端口管理接口和線程管理接口,外部控制進(jìn)程通過管理接口實(shí)施啟停(生命期)控制、任務(wù)池控制、端口控制和線程控制操作。上述配置信息包是由優(yōu)化匹配器和所述計(jì)算實(shí)體內(nèi)嵌控制邏輯單元共同作用,并被動(dòng)態(tài)設(shè)置或更新。為了計(jì)算實(shí)體內(nèi)部計(jì)算任務(wù)執(zhí)行序列的動(dòng)態(tài)組合和替換,實(shí)現(xiàn)計(jì)算功能的可配置,計(jì)算實(shí)體內(nèi)嵌有任務(wù)池和任務(wù)池控制器。任務(wù)池用于存放計(jì)算任務(wù)的執(zhí)行對象指針和計(jì)算任務(wù)的執(zhí)行序列,任務(wù)池控制器實(shí)施任務(wù)池中計(jì)算任務(wù)的配置與動(dòng)態(tài)加載,還能依據(jù)配置信息包中的配置屬性,實(shí)時(shí)更改數(shù)據(jù)端口與任務(wù)池中計(jì)算任務(wù)的綁定關(guān)系。任務(wù)池中的每個(gè)計(jì)算任務(wù)關(guān)聯(lián)一個(gè)輸入數(shù)據(jù)塊表和輸出數(shù)據(jù)塊表,分別用于存儲(chǔ)該計(jì)算任務(wù)所要處理的輸入和輸出數(shù)據(jù)塊指針。如圖5所示,任務(wù)池的數(shù)據(jù)結(jié)構(gòu)定義為一個(gè)鏈表,其鏈表中的每一節(jié)點(diǎn)存儲(chǔ)一個(gè)計(jì)算任務(wù)信息,包括計(jì)算任務(wù)編號(hào)、執(zhí)行對象指針、以及計(jì)算任務(wù)與輸入輸出端口的連接關(guān)系。計(jì)算任務(wù)在鏈表中的存放順序表不執(zhí)行順序。由于任務(wù)池中的計(jì)算任務(wù)是動(dòng)態(tài)變化的,因此,任務(wù)池控制器將依據(jù)配置信息實(shí)時(shí)更改任務(wù)池中的輸入、輸出數(shù)據(jù)緩沖區(qū)與計(jì)算任務(wù)的連接關(guān)系。任務(wù)池中計(jì)算任務(wù)是按順序執(zhí)行,前序任務(wù)的輸出數(shù)據(jù)塊應(yīng)是后序任務(wù)的輸入數(shù)據(jù)塊。為了減少任務(wù)間的數(shù)據(jù)塊拷貝,使計(jì)算任務(wù)和數(shù)據(jù)塊結(jié)構(gòu)松耦合。為此,在計(jì)算任務(wù)內(nèi)部定義數(shù)據(jù)塊表,用于存儲(chǔ)該任務(wù)所要加工的數(shù)據(jù)塊指針,其中第一個(gè)計(jì)算任務(wù)的輸入數(shù)據(jù)塊指針將指向輸入端口緩沖區(qū)列表,作為任務(wù)池的始端數(shù)據(jù)。計(jì)算實(shí)體還包括端口控制器和端口鏈表,用于提供計(jì)算實(shí)體的數(shù)據(jù)輸入和數(shù)據(jù)輸出端口的管理。端口控制器能夠動(dòng)態(tài)地創(chuàng)建或修改數(shù)據(jù)端口鏈表,并通過釋放或重建與數(shù)據(jù)端口關(guān)聯(lián)的發(fā)送連接器和接收連接器,從而動(dòng)態(tài)改變計(jì)算實(shí)體進(jìn)程間的數(shù)據(jù)鏈路。如圖6所示為輸入數(shù)據(jù)端口鏈表結(jié)構(gòu),其中的每一節(jié)點(diǎn)存儲(chǔ)輸入端口指針、輸入數(shù)據(jù)緩沖區(qū)指針等信息。為了匹配于本實(shí)施實(shí)例SMP多核處理器內(nèi)部“節(jié)點(diǎn)-內(nèi)核”兩層結(jié)構(gòu),以及處理器片內(nèi)的多個(gè)內(nèi)核共享存儲(chǔ)的結(jié)構(gòu)特點(diǎn),本實(shí)例生成的軟件構(gòu)架圖中計(jì)算實(shí)體的硬件資源需求屬性具有粗、細(xì)粒度兩個(gè)層次。所述粗粒度計(jì)算屬性為計(jì)算任務(wù)池中的計(jì)算任務(wù)所需SMP多核處理器的數(shù)量(或稱服務(wù)器刀片數(shù)),所述細(xì)粒度計(jì)算屬性為計(jì)算實(shí)體的一個(gè)實(shí)例完成計(jì)算所需的處理器的內(nèi)核數(shù),并且一個(gè)內(nèi)核綁定一個(gè)線程。
下面分別以如何生成軟件構(gòu)架圖,配置計(jì)算實(shí)體進(jìn)行說明。采取圖分割方法,優(yōu)化配置軟件架構(gòu)圖,目的是優(yōu)化計(jì)算實(shí)體的任務(wù)池和配置信息包、以及計(jì)算實(shí)體間的拓?fù)潢P(guān)系。配置后得到的每個(gè)計(jì)算實(shí)體具有合適的粗粒度計(jì)算屬性。即所述任務(wù)池中計(jì)算任務(wù)總的計(jì)算時(shí)間費(fèi)用·匹配于并行處理系統(tǒng)硬件的處理能力,并要求由所述計(jì)算實(shí)體的實(shí)例構(gòu)成的信號(hào)處理流水線沒有瓶頸,且滿足數(shù)據(jù)吞吐實(shí)際應(yīng)用要求。具體如圖2所示,包括以下步驟步驟SlOl :以數(shù)據(jù)吞吐需求指標(biāo)為優(yōu)化目標(biāo),將相鄰的、計(jì)算粒度小的計(jì)算任務(wù)合并為一個(gè)任務(wù)簇。步驟S102 :合并得到的任務(wù)簇的粒度屬性值若不大于計(jì)算閾值ub,任務(wù)簇映射到一個(gè)計(jì)算實(shí)體的任務(wù)池中,并可被單獨(dú)調(diào)度到一個(gè)多核處理器上成為一個(gè)實(shí)例,如圖7中的計(jì)算實(shí)體I。該計(jì)算實(shí)體的粗粒度屬性值為I。步驟S103 :如果一個(gè)計(jì)算任務(wù)的計(jì)算粒度屬性值大于閾值,該任務(wù)則單獨(dú)映射到一個(gè)計(jì)算實(shí)體,并將該任務(wù)所處理的數(shù)據(jù)塊分解為多個(gè)數(shù)據(jù)項(xiàng),該計(jì)算實(shí)體將被分布到多個(gè)多核處理器上,不同處理器上的實(shí)例將處理不同的數(shù)據(jù)項(xiàng),如圖7計(jì)算實(shí)體2,其粗粒度屬性值為2。其中,計(jì)算閾值(Ub)為一個(gè)計(jì)算實(shí)體實(shí)例在一個(gè)多核處理器上運(yùn)行時(shí)間的上限值,受限于SMP多核處理器的計(jì)算能力、網(wǎng)絡(luò)帶寬以及數(shù)據(jù)吞吐需求。如果應(yīng)用的信號(hào)處理的并行計(jì)算數(shù)據(jù)流的數(shù)據(jù)吞吐為h,網(wǎng)絡(luò)平均單位通信時(shí)延△,計(jì)算實(shí)體進(jìn)程總的通信量為com,若計(jì)算和通信沒有重疊,那么該計(jì)算實(shí)體進(jìn)程的執(zhí)行時(shí)間上限應(yīng)為Ub=I/h_A*com ;若計(jì)算和通信有重疊,那么ub =l/h。由此,可以確定一個(gè)計(jì)算實(shí)體粗粒度屬性值S,滿足s=c/ub,其中c表示所述計(jì)算實(shí)體內(nèi)部任務(wù)池內(nèi)計(jì)算任務(wù)總的計(jì)算費(fèi)用,即€ = 2-<0,其中《(0表示計(jì)算任務(wù)t在所述多核處理器上的計(jì)算時(shí)間費(fèi)用。采取計(jì)算實(shí)體內(nèi)置線程控制器的方式,控制線程分解與分布操作,包括實(shí)時(shí)分析計(jì)算實(shí)體實(shí)例進(jìn)程的計(jì)算時(shí)延,根據(jù)處理器內(nèi)部的內(nèi)核結(jié)構(gòu)和數(shù)量以及存儲(chǔ)結(jié)構(gòu)和層次,將該進(jìn)程分解為層次化的多個(gè)線程,得到該計(jì)算實(shí)體的細(xì)粒度計(jì)算屬性;將多個(gè)線程一一綁定到處理器內(nèi)核上,使得計(jì)算實(shí)體實(shí)例進(jìn)程的計(jì)算費(fèi)用最小。步驟S200、將軟件構(gòu)架圖分布到并行處理系統(tǒng)中的各個(gè)SMP多核處理器上,具體步驟如下步驟2. I粗粒度分布主進(jìn)程執(zhí)行最優(yōu)調(diào)度算法,即首先根據(jù)所述計(jì)算實(shí)體粗粒度計(jì)算屬性值,按數(shù)據(jù)并行方式實(shí)例化計(jì)算實(shí)體為若干個(gè)計(jì)算進(jìn)程,約束于并行軟件架構(gòu)圖。每個(gè)計(jì)算進(jìn)程實(shí)例被獨(dú)立分布到一個(gè)空閑的多核處理器上,分布原則是負(fù)載平衡和通信費(fèi)用最小。如圖7所示,計(jì)算實(shí)體I的計(jì)算粗粒度屬性值是1,計(jì)算機(jī)實(shí)體I的實(shí)例進(jìn)程為P1,被單獨(dú)地調(diào)度到一個(gè)SMP多核處理器上成為一個(gè)實(shí)例。如果一個(gè)計(jì)算任務(wù)的計(jì)算粗粒度屬性值是2,因而該計(jì)算實(shí)體2的2個(gè)實(shí)例進(jìn)程p21和p22分別分布到2個(gè)多核處理器上。并將該計(jì)算任務(wù)所處理的數(shù)據(jù)塊分解為兩個(gè)數(shù)據(jù)項(xiàng),不同SMP多核處理器上的實(shí)例將處理不同的數(shù)據(jù)項(xiàng);然后是計(jì)算實(shí)體實(shí)例進(jìn)程的配置操作。主進(jìn)程通過計(jì)算實(shí)體實(shí)例進(jìn)程的配置信息包接口寫入該實(shí)例進(jìn)程的配置信息,并通過端口管理接口驅(qū)動(dòng)端口控制器設(shè)置該實(shí)例進(jìn)程的數(shù)據(jù)端口鏈表和連接器,完成數(shù)據(jù)流重定向;通過任務(wù)管理接口驅(qū)動(dòng)其中任務(wù)池控制器操作。步驟2. 2、細(xì)粒度分布主進(jìn)程通過計(jì)算進(jìn)程的線程管理接口驅(qū)動(dòng)線程控制器實(shí)施細(xì)粒度線程分布操作,即進(jìn)程實(shí)例進(jìn)入線程的自主分解運(yùn)行狀態(tài),并將線程綁定到內(nèi)核,如圖7所示,如計(jì)算實(shí)體的細(xì)粒度計(jì)算屬性值為3,線程控制器就將進(jìn)程實(shí)例分為3個(gè)線程,每個(gè)線程分布到一個(gè)SMP多核處理器的內(nèi)核中。本發(fā)明中所依賴的實(shí)時(shí)數(shù)據(jù)吞吐、并行處理系統(tǒng)資源信息是由監(jiān)視器實(shí)時(shí)獲取和更新。此外,由于計(jì)算實(shí)體的硬件資源需求是可配置的,其硬件資源需求屬性的數(shù)據(jù)結(jié)構(gòu)匹配于處理器內(nèi)部結(jié)構(gòu)特征,因而,按硬件資源的實(shí)際情況,計(jì)算實(shí)體可以被動(dòng)態(tài)地分布·或遷移到并行處理系統(tǒng)中具有相同結(jié)構(gòu)特征的處理器上,而與處理器的實(shí)際數(shù)量無關(guān)。由此,提高了并行計(jì)算軟件的硬件平臺(tái)適應(yīng)性,便于實(shí)現(xiàn)與擴(kuò)展。再者,本發(fā)明本質(zhì)上是將影響信號(hào)處理應(yīng)用的實(shí)時(shí)性能之不同層面因素(如應(yīng)用的計(jì)算方法、軟件結(jié)構(gòu)、并行處理器結(jié)構(gòu)、處理器計(jì)算性能與網(wǎng)絡(luò)通信帶寬、處理器物理分布等)一一隔離開來,允許其有獨(dú)立的自適應(yīng)調(diào)節(jié)規(guī)范。這樣,將影響應(yīng)用系統(tǒng)性能的各種影響因素解耦合?;谒鼋怦詈戏椒?,本發(fā)明在軟件架構(gòu)圖的配置時(shí)只考慮計(jì)算需求、處理器內(nèi)部結(jié)構(gòu)特征及網(wǎng)絡(luò)帶寬的影響因素,而無須考慮網(wǎng)絡(luò)互連結(jié)構(gòu)的變化,從而簡化了應(yīng)用并行化的計(jì)算代價(jià),并克服了由于網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)不確定而造成的優(yōu)化匹配算法解的不確定問題。由于所述優(yōu)化匹配是在線動(dòng)態(tài)的過程,因而所述計(jì)算任務(wù)圖中的計(jì)算任務(wù)及數(shù)據(jù)的劃分可以事先憑直覺、按照領(lǐng)域應(yīng)用的自然邊界進(jìn)行分解,只要求每個(gè)任務(wù)功能和任務(wù)間的接口及數(shù)據(jù)通信是清晰和明確的。本發(fā)明通過兩步驟重配置這一技術(shù)手段,簡化了具體應(yīng)用分解過程,使信號(hào)處理應(yīng)用軟件達(dá)到以實(shí)時(shí)性能滿足為基本要求,同時(shí)適應(yīng)計(jì)算的多粒度或變粒度需求變化,動(dòng)態(tài)配置硬件資源的目的。
權(quán)利要求
1.一種信號(hào)處理并行計(jì)算軟件的動(dòng)態(tài)重配置方法,其特征在于,包括以下步驟 (1)以信號(hào)處理的數(shù)據(jù)吞吐要求為目標(biāo),通過計(jì)算任務(wù)圖與并行處理系統(tǒng)硬件特征的最優(yōu)匹配,生成軟件架構(gòu)圖;所述并行處理系統(tǒng)硬件特征包括處理器的內(nèi)部層次結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)、處理器計(jì)算性能、以及處理器之間通信網(wǎng)絡(luò)的通信帶寬; (2)針對處理器的數(shù)量與拓?fù)浣Y(jié)構(gòu),將所述軟件架構(gòu)圖分布到實(shí)際并行處理系統(tǒng)的各個(gè)處理器上。
2.根據(jù)權(quán)利要求I所述信號(hào)處理并行計(jì)算軟件的動(dòng)態(tài)重配置方法,其特征在于所述計(jì)算任務(wù)圖是面向數(shù)據(jù)驅(qū)動(dòng)型信號(hào)處理應(yīng)用的數(shù)據(jù)流圖,具有多計(jì)算粒度和可變計(jì)算粒度,所述計(jì)算粒度為計(jì)算任務(wù)在處理器上的最短計(jì)算時(shí)間。
3.根據(jù)權(quán)利要求I或2所述信號(hào)處理并行計(jì)算軟件的動(dòng)態(tài)重配置方法,其特征在于,所述軟件架構(gòu)圖包括 多個(gè)可配置的計(jì)算軟件實(shí)體; 發(fā)送連接器,通過數(shù)據(jù)端口與所述可配置的計(jì)算軟件實(shí)體連接;以及 接收連接器,通過數(shù)據(jù)端口與所述可配置的計(jì)算軟件實(shí)體連接; 不同可配置的計(jì)算軟件實(shí)體之間通過所述發(fā)送連接器和接收連接器進(jìn)行數(shù)據(jù)傳輸。
4.根據(jù)權(quán)利要求3所述信號(hào)處理并行計(jì)算軟件的動(dòng)態(tài)重配置方法,其特征在于,所述計(jì)算軟件實(shí)體包括 任務(wù)池,用于存放能動(dòng)態(tài)增減的計(jì)算任務(wù),及所述計(jì)算任務(wù)的執(zhí)行對象的指針; 配置信息包,包括所述計(jì)算任務(wù)的執(zhí)行對象及其執(zhí)行序列、硬件資源需求、數(shù)據(jù)端口、實(shí)例運(yùn)行線程與特定內(nèi)核間的綁定關(guān)系的配置屬性; 任務(wù)池控制器,用于根據(jù)所述配置信息包中計(jì)算任務(wù)的執(zhí)行對象及其執(zhí)行序列的配置屬性,控制所述任務(wù)池中計(jì)算任務(wù)的執(zhí)行,以及根據(jù)該配置信息實(shí)時(shí)更改數(shù)據(jù)端口的數(shù)據(jù)緩沖區(qū)與所述計(jì)算任務(wù)的連接關(guān)系; 端口控制器,根據(jù)所述配置信息包中數(shù)據(jù)端口配置,建立或修改數(shù)據(jù)端口鏈表,建立計(jì)算實(shí)體與數(shù)據(jù)端口的關(guān)聯(lián)關(guān)系;以及驅(qū)動(dòng)與所述數(shù)據(jù)端口關(guān)聯(lián)的發(fā)送/接收連接器釋放或重建數(shù)據(jù)鏈路,由此實(shí)現(xiàn)動(dòng)態(tài)改變計(jì)算實(shí)體間的數(shù)據(jù)連接。
5.根據(jù)權(quán)利要求4所述信號(hào)處理并行計(jì)算軟件的動(dòng)態(tài)重配置方法,其特征在于,所述計(jì)算軟件實(shí)體還包括 線程控制器,用于線程分解與分布操作;以及 端口配置表,用于存儲(chǔ)計(jì)算軟件實(shí)體的數(shù)據(jù)端口實(shí)時(shí)配置信息。
6.根據(jù)權(quán)利要求4或5所述信號(hào)處理并行計(jì)算軟件的動(dòng)態(tài)重配置方法,其特征在于所述計(jì)算軟件實(shí)體的硬件資源需求屬性描述的數(shù)據(jù)結(jié)構(gòu)匹配于處理器內(nèi)部的層次結(jié)構(gòu)特征,該硬件資源需求屬性包括粗粒度計(jì)算屬性和細(xì)粒度計(jì)算屬性。
7.根據(jù)權(quán)利要求6所述信號(hào)處理并行計(jì)算軟件的動(dòng)態(tài)重配置方法,其特征在于,通過優(yōu)化匹配器配置并生成軟件架構(gòu)圖,包括以下步驟 對輸入的計(jì)算任務(wù)圖進(jìn)行分割,優(yōu)化計(jì)算實(shí)體的任務(wù)池和配置信息包、以及計(jì)算實(shí)體間的拓?fù)浣Y(jié)構(gòu),使配置后得到的每個(gè)計(jì)算實(shí)體具有合適的粗粒度計(jì)算屬性,即使所述任務(wù)池中計(jì)算任務(wù)總的計(jì)算時(shí)間費(fèi)用匹配于并行處理系統(tǒng)硬件的處理能力,并要求由所述計(jì)算實(shí)體的實(shí)例所構(gòu)成的信號(hào)處理流水線沒有瓶頸,且滿足數(shù)據(jù)吞吐的應(yīng)用要求。
8.根據(jù)權(quán)利要求7所述信號(hào)處理并行計(jì)算軟件的動(dòng)態(tài)重配置方法,其特征在于,對輸入的計(jì)算任務(wù)圖進(jìn)行分割包括以下步驟 將所述計(jì)算任務(wù)圖中計(jì)算粒度屬性大于計(jì)算閾值的計(jì)算任務(wù)單獨(dú)映射到一個(gè)計(jì)算實(shí)體的任務(wù)池中,并將該任務(wù)所處理的數(shù)據(jù)塊分解為多個(gè)數(shù)據(jù)項(xiàng),該計(jì)算實(shí)體的多個(gè)實(shí)例將被分布到多個(gè)處理器上,不同處理器上的實(shí)例將處理不同的數(shù)據(jù)項(xiàng); 將所述計(jì)算任務(wù)圖中計(jì)算粒度屬性小于計(jì)算閾值ub的、且相鄰的計(jì)算任務(wù)合并成一個(gè)任務(wù)簇,所述任務(wù)簇的計(jì)算粒度屬性不大于計(jì)算閾值ub,將該任務(wù)簇映射到一個(gè)計(jì)算實(shí)體的任務(wù)池中,并將被單獨(dú)分布到一個(gè)處理器上成為一個(gè)實(shí)例; 重復(fù)上述步驟,直至所述軟件構(gòu)架圖中每個(gè)計(jì)算實(shí)體具有合適的粗粒度計(jì)算屬性。
9.根據(jù)權(quán)利要求8所述信號(hào)處理并行計(jì)算軟件的動(dòng)態(tài)重配置方法,其特征在于,所述計(jì)算閾值ub為一個(gè)計(jì)算實(shí)體實(shí)例處理一個(gè)數(shù)據(jù)項(xiàng)時(shí),在一個(gè)處理器上運(yùn)行的時(shí)間上限值,滿足關(guān)系 Ub=l/h-A*com,計(jì)算和通信沒有重疊; Ub=l/h,計(jì)算和通信有重疊; 其中,h為信號(hào)處理的并行計(jì)算數(shù)據(jù)流水線的數(shù)據(jù)吞吐,Λ為網(wǎng)絡(luò)平均單位通信時(shí)延,com為計(jì)算實(shí)體進(jìn)程總的通信量。
10.根據(jù)權(quán)利要求9所述信號(hào)處理并行計(jì)算軟件的動(dòng)態(tài)重配置方法,其特征在于,通過優(yōu)化調(diào)度器將所述軟件架構(gòu)圖分布到實(shí)際并行處理系統(tǒng)的各個(gè)處理器上,包括以下步驟 首先對計(jì)算實(shí)體的粗粒度分布操作,按照負(fù)載平衡和通信費(fèi)用最小的分布原則,根據(jù)所述計(jì)算實(shí)體的粗粒度計(jì)算屬性值,按數(shù)據(jù)并行方式實(shí)例化計(jì)算實(shí)體為若干個(gè)計(jì)算進(jìn)程;約束于并行軟件架構(gòu)圖,將所述每個(gè)計(jì)算進(jìn)程實(shí)例獨(dú)立分布到一個(gè)空閑的多核處理器上; 然后對計(jì)算實(shí)體的計(jì)算進(jìn)程實(shí)例配置操作,通過計(jì)算實(shí)體的配置信息包接口寫入該計(jì)算進(jìn)程實(shí)例的配置信息,并通過端口管理接口驅(qū)動(dòng)端口控制器設(shè)置該計(jì)算進(jìn)程實(shí)例的數(shù)據(jù)端口鏈表和連接器,完成數(shù)據(jù)流重定向; 最后驅(qū)動(dòng)計(jì)算進(jìn)程實(shí)例的任務(wù)執(zhí)行與線程的分布操作,即通過任務(wù)管理接口驅(qū)動(dòng)任務(wù)池控制器操作,通過線程管理接口驅(qū)動(dòng)其中線程控制器操作,線程控制器實(shí)時(shí)分析計(jì)算實(shí)體實(shí)例進(jìn)程的計(jì)算時(shí)延,根據(jù)處理器內(nèi)部的內(nèi)核結(jié)構(gòu)、數(shù)量以及存儲(chǔ)結(jié)構(gòu)和層次,將所述計(jì)算實(shí)例進(jìn)程分解為層次化的多個(gè)線程,得到該計(jì)算實(shí)體的細(xì)粒度計(jì)算屬性;以及,將所述的多個(gè)線程一一綁定到處理器內(nèi)核上,使得計(jì)算實(shí)體實(shí)例進(jìn)程的計(jì)算費(fèi)用最小。
全文摘要
本發(fā)明公開了一種信號(hào)處理并行計(jì)算軟件的動(dòng)態(tài)重配置方法,其包括兩個(gè)步驟首先是軟件架構(gòu)圖配置與生成,通過計(jì)算任務(wù)圖與并行處理系統(tǒng)硬件特征模型的最優(yōu)匹配,生成軟件架構(gòu)圖;然后是軟件架構(gòu)圖分布,針對實(shí)際處理器數(shù)量與拓?fù)浣Y(jié)構(gòu),將配置好的軟件架構(gòu)圖分布到實(shí)際并行處理系統(tǒng)的各個(gè)處理器上。并行處理系統(tǒng)硬件特征包括處理器的內(nèi)部層次結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)、處理器計(jì)算性能、以及處理器之間通信網(wǎng)絡(luò)的通信帶寬。與現(xiàn)有技術(shù)相比,本發(fā)明的信號(hào)處理并行計(jì)算軟件重配置方法,是在系統(tǒng)執(zhí)行時(shí)動(dòng)態(tài)分布計(jì)算任務(wù)到多核處理器,以實(shí)現(xiàn)自適應(yīng)變粒度并行計(jì)算,因而,能夠?qū)崿F(xiàn)在線的計(jì)算彈性。
文檔編號(hào)G06F9/50GK102929725SQ20121045055
公開日2013年2月13日 申請日期2012年11月12日 優(yōu)先權(quán)日2012年11月12日
發(fā)明者蔡志明, 王希敏, 幸高翔, 姜可宇, 周航, 游波 申請人:中國人民解放軍海軍工程大學(xué)