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