通過LabVIEW圖形化開發(fā)平臺有效優(yōu)化多核處理器環(huán)境下的信號處理性能
程序性能的進一步優(yōu)化
本文引用地址:http://www.ex-cimer.com/article/110843.htmLabVIEW并行的信號處理算法不僅幫助工程師提高程序性能,而且可以更清楚的劃分多個處理器核在項目中的不同用途。比如,將控制采樣輸入,顯示輸出和信號分析的模塊獨立分開。
以HIL(Hareware-in-the-loop)或在線信號處理應用為例。首先,使用高速數(shù)字化儀或高速數(shù)字I/O模塊來采集信號,并在軟件中執(zhí)行數(shù)字信號處理算法。然后,通過另一個模塊化儀器生成結果。常見HIL應用包括在線數(shù)字信號處理(如濾波、插值等等)、傳感器仿真和定制組件模擬等等。
一般來說,HIL可以使用兩種基本的編程結構來完成,單循環(huán)結構和帶有隊列的流水線式多循環(huán)結構。單循環(huán)結構實現(xiàn)簡單,對于小數(shù)據(jù)塊具有較低時延,但單循環(huán)結構受限于各個環(huán)節(jié)的順序結構而無法實現(xiàn)并發(fā)性,例如,由于處理器只能執(zhí)行一個函數(shù),在處理數(shù)據(jù)的同時就無法執(zhí)行儀器IO,所以單循環(huán)結構無法有效利用多核CPU的優(yōu)勢。相比之下,多循環(huán)結構則能夠更好的利用到多核處理器,從而支持高得多的吞吐量。
對于一項多循環(huán)結構的HIL應用來說,可以通過三個獨立的while循環(huán)和兩個隊列結構,實現(xiàn)其間的數(shù)據(jù)傳遞。在此情況下,第一個循環(huán)從儀器采集數(shù)據(jù),第二個循環(huán)專門執(zhí)行信號處理分析,而第三個循環(huán)將數(shù)據(jù)寫入到另一臺儀器。這樣的處理方式,也被稱之為流水線式信號處理(pipeline)。
圖4.帶有多個循環(huán)與隊列結構的流水線式信號處理。
圖4中,最上面的循環(huán)是一個生產(chǎn)者(Producer)循環(huán),它從一個高速數(shù)字化儀采集數(shù)據(jù),并將其傳遞至第一個隊列結構(FIFO)。中間的循環(huán)同時作為生產(chǎn)者和消費者(Consumer)工作。每次迭代中,它從隊列結構中接收(消費)若干個數(shù)據(jù)集,并以流水線的方式獨立為四個不同數(shù)據(jù)塊的內(nèi)容進行7階低通濾波的處理,同時中間的循環(huán)也作為一個生產(chǎn)者工作,將處理后的數(shù)據(jù)傳遞至第二個隊列結構。最后,最下面的循環(huán)將處理后的數(shù)據(jù)寫入至高速數(shù)字I/O模塊。于是,在多核的系統(tǒng)下, LabVIEW能夠自動地將上面的程序結構中獨立運行的的不同循環(huán)分配在不同的處理器上,同時,還可以根據(jù)CPU的運行情況將中間循環(huán)中四個數(shù)據(jù)塊的信號處理任務也分配在不同的處理器上,實現(xiàn)了在多核處理器環(huán)境下的性能改進。
并行處理算法改善了多核CPU的處理器利用率。事實上,總吞吐量取決于兩個因素,處理器利用率和總線傳輸速度。通常,CPU和數(shù)據(jù)總線在處理大數(shù)據(jù)塊時工作效率最高。而且,我們可以進一步使用具有更快傳輸速度的PXI(PCI) Express儀器,來減小數(shù)據(jù)傳輸時間。
利用NI強大的并行性計算的優(yōu)勢以及PCIe高速數(shù)據(jù)流傳輸加上Intel的多核技術,在DELL的PowerEdge 2950八核處理器上,以10KHz(2.56MB/s)的速率同步采樣并處理128個通道的數(shù)據(jù),NI幫助ASDEX Tokamak——德國最先進的核聚變裝置,完成了“不可能完成的任務”——為了保證Tokamak裝置中等離子體的高速穩(wěn)定的運轉(zhuǎn),將其裝置外壁上的88個磁感應器上的大量數(shù)據(jù)轉(zhuǎn)換成64*128個點格上的偏微分方程組,并同時在短短的1ms內(nèi)完成了整個計算過程!
正如德國開發(fā)負責人Dr. Louis Giannone所說的:
“利用LabVIEW編程所完成的并行化應用控制,我們在8核機器上將速度提高了5倍,使得我們成功達到1ms閉環(huán)控制速率的要求!”。
評論