新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 通過LabVIEW圖形化開發平臺有效優化多核處理器環境下信號處理性能

        通過LabVIEW圖形化開發平臺有效優化多核處理器環境下信號處理性能

        作者: 時間:2013-03-09 來源:網絡 收藏
        圖3描述了性能隨采集數據塊大小(以采樣數為單位)增大而提高的精確百分比。事實上,對于更大的數據塊,并行算法方法確實實現了近2倍的性能改進。工程師們不需要創建特殊的代碼來支持多線程,在多核處理器環境下,只需通過最少的編程調整,利用自動分配每一個線程到多核處理器的特性,可以方便的實現能力的大幅度提升,從而達到了自動化測試應用的性能改進。

        程序性能的進一步優化

        并行的算法不僅幫助工程師提高程序性能,而且可以更清楚的劃分多個處理器核在項目中的不同用途。比如,將控制采樣輸入,顯示輸出和信號分析的模塊獨立分開。

        以HIL(Hareware-in-the-loop)或在線應用為例。首先,使用高速數字化儀或高速數字I/O模塊來采集信號,并在軟件中執行數字信號處理算法。然后,通過另一個模塊化儀器生成結果。常見HIL應用包括在線數字信號處理(如濾波、插值等等)、傳感器仿真和定制組件模擬等等。

        一般來說,HIL可以使用兩種基本的編程結構來完成,單循環結構和帶有隊列的流水線式多循環結構。單循環結構實現簡單,對于小數據塊具有較低時延,但單循環結構受限于各個環節的順序結構而無法實現并發性,例如,由于處理器只能執行一個函數,在處理數據的同時就無法執行儀器IO,所以單循環結構無法有效利用多核CPU的優勢。相比之下,多循環結構則能夠更好的利用到多核處理器,從而支持高得多的吞吐量。

        對于一項多循環結構的HIL應用來說,可以通過三個獨立的while循環和兩個隊列結構,實現其間的數據傳遞。在此情況下,第一個循環從儀器采集數據,第二個循環專門執行信號處理分析,而第三個循環將數據寫入到另一臺儀器。這樣的處理方式,也被稱之為流水線式信號處理(pipeline)。

        newmaker.com
        圖4.帶有多個循環與隊列結構的流水線式信號處理圖4中,最上面的循環是一個生產者(Producer)循環,它從一個高速數字化儀采集數據,并將其傳遞至第一個隊列結構(FIFO)。中間的循環同時作為生產者和消費者(Consumer)工作。每次迭代中,它從隊列結構中接收(消費)若干個數據集,并以流水線的方式獨立為四個不同數據塊的內容進行7階低通濾波的處理,同時中間的循環也作為一個生產者工作,將處理后的數據傳遞至第二個隊列結構。最后,最下面的循環將處理后的數據寫入至高速數字I/O模塊。于是,在多核的系統下, 能夠自動地將上面的程序結構中獨立運行的的不同循環分配在不同的處理器上,同時,還可以根據CPU的運行情況將中間循環中四個數據塊的信號處理任務也分配在不同的處理器上,實現了在多核處理器環境下的性能改進。

        并行處理算法改善了多核CPU的處理器利用率。事實上,總吞吐量取決于兩個因素,處理器利用率和總線傳輸速度。通常,CPU和數據總線在處理大數據塊時工作效率最高。而且,我們可以進一步使用具有更快傳輸速度的PXI(PCI) Express儀器,來減小數據傳輸時間。

        利用NI強大的并行性計算的優勢以及PCIe高速數據流傳輸加上Intel的多核技術,在DELL的PowerEdge 2950八核處理器上,以10KHz(2.56MB/s)的速率同步采樣并處理128個通道的數據,NI幫助ASDEX Tokamak——德國最先進的核聚變裝置,完成了“不可能完成的任務”——為了保證Tokamak裝置中等離子體的高速穩定的運轉,將其裝置外壁上的88個磁感應器上的大量數據轉換成64*128個點格上的偏微分方程組,并同時在短短的1ms內完成了整個計算過程!

        正如德國開發負責人Dr. Louis Giannone所說的:
        “利用LabVIEW編程所完成的并行化應用控制,我們在8核機器上將速度提高了5倍,使得我們成功達到1ms閉環控制速率的要求!”。

        紅外熱像儀相關文章:紅外熱像儀原理

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 苗栗县| 长白| 名山县| 芦山县| 崇明县| 左贡县| 鄂伦春自治旗| 五原县| 庆安县| 明水县| 沙田区| 武宣县| 邯郸县| 阿图什市| 渝中区| 定南县| 蓝田县| 牙克石市| 娱乐| 罗山县| 合阳县| 双城市| 新郑市| 玉树县| 西乌| 法库县| 资溪县| 宜州市| 威远县| 汉源县| 武陟县| 色达县| 略阳县| 剑河县| 岳阳市| 安陆市| 白山市| 晋宁县| 浦城县| 双柏县| 谷城县|