專利名稱:基于多核dsp的并行矩陣全選主元高斯約旦求逆算法的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于移動通信領(lǐng)域,具體的講,涉及一種基于多核DSP的并行矩陣全選主元高斯約旦求逆算法。
背景技術(shù):
矩陣求逆是工程實踐中常用也是較為繁瑣的運算過程,現(xiàn)有的普通矩陣求你算法種類繁多,其中絕對大部分的算法復雜程度可以滿足一般的工程應(yīng)用要求 。然而隨著應(yīng)用的日益復雜,這些的矩陣求逆算法已經(jīng)不能滿足高速運算的要求。因此現(xiàn)有技術(shù)中為了滿足矩陣求逆高速運算的要求,提出了一些高速的求逆算法,但是這些算法都是針對一些特殊矩陣而實現(xiàn),如針對三對角線矩陣、五對角線矩陣和三角矩陣逆矩陣的算法,這些算法對矩陣的類型有特定的要求,因此開發(fā)出既能針對所有矩陣均可實現(xiàn)求逆功能、并且滿足高速運算要求的求逆算法已成為現(xiàn)階段人們研究的重點。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)中關(guān)于求逆矩陣的算法不能滿足所有矩陣,并且現(xiàn)有的矩陣求逆算法已經(jīng)不能滿足高速運算要求的缺陷,提供一種基于多核DSP的并行矩陣全選主元高斯約旦求逆算法,充分地發(fā)揮多核DSP的高性能優(yōu)勢,解決上述缺陷。本發(fā)明采用的技術(shù)方案如下
基于多核DSP的并行矩陣全選主元高斯約旦求逆算法,通過以下步驟實現(xiàn)
(1)共有P塊處理器,將處理器依次編號為O (p-1),并通過第O號處理器對原矩陣A進行全選主元,得到主行元素,其中P為正整數(shù);
(2)將進行了全選主元后的矩陣A劃分為P塊子矩陣,第O號處理器保留其中一個子矩陣,并將另外P-I塊子矩陣分別發(fā)送給第I (P-I)號處理器,使每個處理器分別接收一塊子矩陣;
(3)擁有當前主行元素的處理器對主行元素進行更新,并將更新后的主行元素發(fā)送給除第O號處理器和自身處理器外其余的處理器;
(4)除第O號處理器和自身處理器外其余的處理器收到更新后的主行元素數(shù)值后,第I (P-1)號處理器分別對自身的子矩陣進行更新;之后分別將自身的子矩陣回傳給第O號處理器;
(5)第O號處理器進行整理,再進行全選主元;
(6)選擇原矩陣A主行元素的下一行元素作為新的主行元素,重復步驟(3) (5),直到主行元素遍歷完原矩陣的所有對角線元素,此時第O號處理器整理得到的矩陣即為原矩陣A的逆矩陣。為了便于查詢,所述步驟(I)和步驟(6)中對原矩陣A進行全選主元后,記錄交換元素的行列號。為了分散計算,所述步驟(2)中具體實現(xiàn)步驟如下(2a)從原矩陣中的第O行開始,依次將原矩陣的第j行分配給第(j mod p)號的處理器,其中所述j為整數(shù)且j彡O;
(2b)每一個處理器中被分配的所有行組成一個子矩陣,在所有子矩陣形成后,第O號處理器保留其中一個子矩陣,并將另外P-I塊子矩陣分別發(fā)送給第I (P-I)號處理器,使每個處理器分別接收一塊子矩陣。再進一步的,所述步驟(3)中子矩陣中擁有當前主行的處理器利用公式
和公式
對主行元素進行更新,其中式中為子矩陣中元素值a力更新后子矩陣中的元素值,η為子矩陣行數(shù),j為整數(shù)且O彡j < n, k為整數(shù)且O彡k < η,同時j關(guān)k。為了滿足不同數(shù)據(jù)傳輸要求,所述步驟(3)中擁有當前主行的處理器利用公式對 主行元素進行更新后,使用EDMA3或SRIO將更新后的主行元素發(fā)送給第I (p-Ι)號處理器中除自身處理器外其余的處理器。為了更新自身的矩陣,所述步驟(4)中I (P-I)號處理器使用公式
% = 4.-
和公式
對自身的子矩陣進行更新,其中i為整數(shù)且O < i < n,同時i古k。為了再次滿足不同數(shù)據(jù)傳輸要求,所述步驟(5)中第I (P-I)號處理器中的子矩陣完成更新后,使用EDMA3或SRIO將其子矩陣回傳給第O號處理器。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果
(I)本發(fā)明利用多核DSP平臺進行矩陣的求逆計算,即將矩陣劃分為多個子矩陣并將每個子矩陣放入每一個處理器,每一個處理器對于自身子矩陣再分別進行更新,這樣分散了矩陣求逆計算,可以有效地提高矩陣求逆運算的速度;通過實驗證明,在矩陣階數(shù)越大,并且并行運算的處理器個數(shù)越多時,運算速度越快,效果越明顯。(2)本發(fā)明通過全選主元高斯約旦算法達到了占用內(nèi)存小的同時求解精度高、運算速度快的效果,高斯約旦算法主要為求解矩陣的逆矩陣,采用多核DSP平臺通過高斯約旦算法求解矩陣的逆矩陣,結(jié)合了多核平臺與高斯約旦算法共同的優(yōu)點,達到了事半功倍的效果。因為其不僅大大提高了求解的速度,同時還提高了矩陣的求解精度,質(zhì)量和速度同時得到了保證。(3)本發(fā)明采用的是多核DSP,DSP是一種獨特的微處理器,是以數(shù)字信號來處理大量信息的器件。它不僅具有可編程性,而且實時運行速度可達每秒數(shù)以千萬條復雜指令程序,遠遠超過通用微處理器,是數(shù)字化電子世界中日益重要的電腦芯片。它的強大數(shù)據(jù)處理能力和高運行速度,是最值得稱道的兩大特色,多核DSP被應(yīng)用于本發(fā)明,在很大程度上提高了相互通信的處理器之間的數(shù)據(jù)交換速度。
(4)本發(fā)明通過行交叉劃分將矩陣A劃分為P塊子矩陣,即將原矩陣的第j行分配給第(j mod p)號的處理器,再由分配該處理器所有原矩陣的行組成一個子矩陣,在分配好所有的子矩陣后,將其中的P-I塊子矩陣發(fā)送給對應(yīng)的第I (P-I)號處理器。該方法被稱為行交叉法,通過上述方法來劃分矩陣A的P塊子矩陣,不僅簡便快捷,充分發(fā)揮了多核處理器的優(yōu)勢,同時還保證了后面步驟的正常執(zhí)行。(5)本發(fā)明還使用了 EDMA3或SRIO將子矩陣從第O號處理器發(fā)送給其余處理器,或者將其余處理器的子矩陣回傳給第O號處理器,EDMA3或SRIO能滿足不同的數(shù)據(jù)傳輸需求,是未來十幾年中嵌入式系統(tǒng)互聯(lián)的最佳選擇之一。
圖I為本發(fā)明一實施例I中并行算法流程圖。圖2為本發(fā)明一實施例I中主行元素位于第O號處理器子矩陣時的通信示意圖。圖3為本發(fā)明一實施例2中主行元素位于第I號處理器子矩陣時的通信示意圖。圖4為本發(fā)明一實施例3中主行元素位于第2號處理器子矩陣時的通信示意圖。圖5為本發(fā)明一實施例4中主行元素位于第3號處理器子矩陣時的通信示意圖。
具體實施例方式下面結(jié)合附圖與實施例對本發(fā)明作進一步說明,本發(fā)明的實施方式包括但不限于下列實施例。實施例I
如圖I所示的基于多核DSP的并行矩陣求逆算法,該算法為全選主元高斯約旦算法,占用內(nèi)存小,運算速度快且精度較高,易于并行實現(xiàn)等。高斯約旦求逆算法矩陣元素的每次更新都是以對角線上的元素為基礎(chǔ),分別對該元素同行不同列,同列不同行以及既不同列也不同行的元素以不同的公式進行更新。其中每一次更新中當前對角線元素所在的行稱為主行,主行上的各矩陣元素稱為主行元素,其余矩陣元素稱為非主行元素。如圖1、2所示,本實施例中使用j=5塊處理器對η階矩陣A求逆,處理器從O到4進行編號。其中數(shù)字信號處理器DSPl中包括第O號處理器、第I號處理器和第2號處理器,為三核處理器;數(shù)字信號處理器DSP2包括第3號處理器和第4號處理器,為雙核處理器。圖2為本實施例中主行元素位于第O號處理器子矩陣時的通信示意圖。具體的并行算法如下
第I步第O號處理器對原矩陣A進行全選主元,并記錄交換元素的行列號。其中所述全選主元即主列消元,并得到主行元素,這里的主行為矩陣A的第一行。第2步將矩陣A劃分為5個子矩陣,其中具體實現(xiàn)步驟如下
(2a)從矩陣A中的第一行開始,依次將原矩陣的每一行進行分配,即將第j行分配給第(j mod 5)號的處理器,其中所述j為正整數(shù);
其中mod為取余運算,即計算j除以5的余數(shù);
(2b)每一個處理器中被分配的所有行組成一個子矩陣,在所有子矩陣形成后,將其中的4塊子矩陣發(fā)送給對應(yīng)的第I 4號處理器。
第3步其中子矩陣中擁有主行的處理器為第O號處理器,因此第O號處理器利用公式
權(quán)利要求
1.基于多核DSP的并行矩陣全選主元高斯約旦求逆算法,其特征在于,通過以下步驟實現(xiàn) (1)共有P塊處理器,將處理器依次編號為O (P-1),并通過第O號處理器對原矩陣A進行全選主元,得到主行元素,其中P為正整數(shù); (2)將進行了全選主元后的矩陣A劃分為P塊子矩陣,第O號處理器保留其中一個子矩陣,并將另外P-I塊子矩陣分別發(fā)送給第I (P-I)號處理器,使每個處理器分別接收一塊子矩陣; (3)擁有當前主行元素的處理器對主行元素進行更新,并將更新后的主行元素發(fā)送給除第O號處理器和自身處理器外其余的處理器; (4)除第O號處理器和自身處理器外其余的處理器收到更新后的主行元素數(shù)值后,第1 (P-I)號處理器分別對自身的子矩陣進行更新;之后分別將自身的子矩陣回傳給第O號處理器; (5)第O號處理器進行整理,再進行全選主元; (6)選擇原矩陣A主行元素的下一行元素作為新的主行元素,重復步驟(3) (5),直到主行元素遍歷完原矩陣的所有對角線元素,此時第O號處理器整理得到的矩陣即為原矩陣A的逆矩陣。
2.根據(jù)權(quán)利要求1所述的基于多核DSP的并行矩陣全選主元高斯約旦求逆算法,其特征在于,所述步驟(1)和步驟(6)中對原矩陣A進行全選主元后,記錄交換元素的行列號。
3.根據(jù)權(quán)利要求2所述的基于多核DSP的并行矩陣全選主元高斯約旦求逆算法,其特征在于,所述步驟(2)中具體實現(xiàn)步驟如下 (2a)從原矩陣中的第O行開始,依次將原矩陣的第j行分配給第(j mod p)號的處理器,其中所述j為整數(shù)且j≥O; (2b)每一個處理器中被分配的所有行組成一個子矩陣,在所有子矩陣形成后,第O號處理器保留其中一個子矩陣,并將另外P-1塊子矩陣分別發(fā)送給第1 (P-1)號處理器,使每個處理器分別接收一塊子矩陣。
4.根據(jù)權(quán)利要求3所述的基于多核DSP的并行矩陣全選主元高斯約旦求逆算法,其特征在于,所述步驟(3)中子矩陣中擁有當前主行的處理器利用公式 和公式
5.根據(jù)權(quán)利要求4所述的基于多核DSP的并行矩陣全選主元高斯約旦求逆算法,其特征在于,所述步驟(3)中擁有當前主行的處理器利用公式對主行元素進行更新后,使用EDMA3或SRIO將更新后的主行元素發(fā)送給第1 (p_l)號處理器中除自身處理器外其余的處理器。
6.根據(jù)權(quán)利要求5所述的基于多核DSP的并行矩陣全選主元高斯約旦求逆算法,其特征在于,所述步驟(4)中I (p-Ι)號處理器使用公式 和公式
7.根據(jù)權(quán)利要求I 6任意一項所述的基于多核DSP的并行矩陣全選主元高斯約旦求逆算法,其特征在于,所述步驟(5)中第I (p-Ι)號處理器中的子矩陣完成更新后,使用EDMA3或SRIO將其子矩陣回傳給第O號處理器。
全文摘要
本發(fā)明提供了一種基于多核DSP的并行矩陣全選主元高斯約旦求逆算法,解決了現(xiàn)階段關(guān)于求逆矩陣的算法不能滿足所有矩陣,并且現(xiàn)有的矩陣求逆算法已經(jīng)不能滿足高速運算要求的缺陷。本發(fā)明將矩陣A劃分為p塊子矩陣后依此發(fā)送給1~(p-1)號處理器,擁有當前主行元素的處理器對主行元素進行更新,并發(fā)送給除第0號處理器和自身處理器外其余的處理器后,1~(p-1)號處理器一樣對自身的子矩陣進行更新,并分別將自身的子矩陣回傳給第0號處理器,然后選擇上一主行元素的下一行元素作為新的主行元素重復上述過程,直到主行元素遍歷完原矩陣的所有對角線元素。通過上述方案,本發(fā)明達到了既能針對所有矩陣可實現(xiàn)求逆功能、又滿足高速運算要求的效果。
文檔編號G06F17/16GK102880594SQ20121039432
公開日2013年1月16日 申請日期2012年10月17日 優(yōu)先權(quán)日2012年10月17日
發(fā)明者王堅, 李玉柏, 李桓, 楊凱琪 申請人:電子科技大學