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