利用NI LabVIEW優化多核處理器環境下的自動化測試
圖6. 通過這一簡單步驟,您可以并行執行多個定制的子例程,就如同標準的LabVIEW分析函數。
因此,在多核處理器環境下,您可以通過簡單的編程技術實現您的自動化測試應用的性能改進。
優化硬件在環應用
得益于并行信號處理技術的又一個應用便是為同時輸入與輸出使用多個儀器。一般,這些應用被稱為硬件在環(HIL)或在線處理應用。在此情況下,您可以使用高速數字化儀或高速數字I/O模塊來采集信號。在您的軟件中執行數字信號處理算法。最后,通過另一個模塊化儀器生成結果。圖7描述了一個典型的模塊框圖。

圖7. 該框圖描述了一個典型的硬件在環(HIL)應用所包括的執行步驟。
常見HIL應用包括在線數字信號處理(如濾波、插值等)、傳感器仿真和定制組件模擬。您可以使用多種技術,以獲得在線數字信號處理應用的最佳吞吐量。
通常,您可以使用兩種基本的編程結構,單循環結構和帶有隊列的流水線式多循環結構。單循環結構實現簡單,對于小數據塊具有較低時延。相比之下,多循環結構能夠支持高得多的吞吐量,因為它們能夠更好地利用多核處理器。
對于傳統的單循環方式,您順次組織一個高速數字化儀的讀函數、信
號處理算法和高速數字I/O的寫函數。如圖8的模塊框圖所示,這些子例程中的每一個都必須按照LabVIEW編程模型所確定的順序執行。
圖8. 對于LabVIEW的單循環方式,每個子例程都必須順次執行。
單循環結構受限于幾個因素。由于順序執行每一環節,處理器在處理數據的同時受限,無法執行儀器I/O。在這種方式下,由于處理器一次只能執行一個函數,所以您無法有效利用一個多核CPU。雖然單循環結構可以處理較低的采集速率,但是,如需更高的數據吞吐量,仍須采用多循環方式。
多循環架構使用隊列結構實現while循環間的數據傳遞。圖9描述了多個while循環(帶有一個隊列結構)間的編程方式。
圖9. 借助隊列結構,可以實現多個循環間的數據共享。
圖9所表示的是典型的所謂生產者/消費者循環結構。在此例中,一個高速數字化儀在一個循環中持續采集數據,并在每次迭代中將新的數據集傳遞至FIFO隊列。消費者循環僅需監視隊列的狀態,當每個數據集可用時將其寫入磁盤。采用隊列的意義在于這兩個循環均可相互獨立執行。在上例中,高速數字化儀可以持續采集數據,即使這些數據寫入磁盤時存在一定的延遲。與此同時,其它的采樣僅需存儲在FIFO隊列中。通常來說,生產者/消費者流水線方法,通過更有效的處理器利用率,提供更高的數據吞吐量。這一技術優勢在多核處理器環境下更為顯著,因為LabVIEW可以動態分配處理器線程至每個處理器核。
對于一項在線信號處理應用,您可以使用三個獨立的while循環和兩個隊列結構,實現其間的數據傳遞。在此應用情況下,一個循環將從一臺儀器采集數據,一個循環將專門執行信號處理,而第三個循環將數據寫入到另一臺儀器。
圖10. 該模塊框圖描述了帶有多個循環與隊列結構的流水線式信號處理。
圖10中,最上面的循環是一個生產者循環,它從一個高速數字化儀采集數據,并將其傳遞至第一個隊列結構(FIFO)。中間的循環同時作為生產者和消費者工作。每次迭代中,它從隊列結構中接收(消費)若干個數據集,并以流水線的方式獨立對其進行處理。這種流水線方式通過支持高達四個數據集的獨立處理,實現了在多核處理器環境下的性能改進。注意,中間的循環同時也作為一個生產者工作,將處理后的數據傳遞至第二個隊列結構。最后,最下面的循環將處理后的數據寫入至高速數字I/O模塊。
并行處理算法改善了多核CPU的處理器利用率。事實上,總吞吐量取決于兩個因素,處理器利用率和總線傳輸速度。通常,CPU和數據總線在處理大數據塊時工作效率最高。而且,我們可以進一步使用具有更快傳輸速度的PXI Express儀器,減小數據傳輸時間。
圖11. 多循環結構提供比單循環結構高得多的吞吐量。
圖11描述了最大吞吐量和采樣率的關系,采樣數據塊大小以采樣點數來計算。此處所描述的所有標定都是圍繞16位采樣進行的。此外,所采用的信號處理算法為一個截止頻率為采樣率的0.45倍的7階巴特沃茲低通濾波器。如數據顯示,您可以在4階流水線式(多循環)方式下達到最大數據吞吐量。注意,2階信號處理方式獲得了比單循環方式(順序)更好的性能,但其CPU的利用率低于4階方式。上面所列的采樣率均為NI PXIe-5122高速數字化儀和NI PXIe-6537高速數字I/O模塊的輸入和輸出的最大采樣率。注意,當采樣率為20 MS/s時,應用總線的輸入和輸出的數據傳輸率均為40 MB/s,所以總的總線帶寬為80 MB/s。
而且,應當考慮的是,流水線式處理方式在輸入與輸出之間確實引入了時延。所引入的時延取決于幾個因素,包括數據塊的大小和采樣率。下面的表1和表2比較了單循環和4階多循環架構中的實測時延隨數據塊大小和最大采樣率的變化情況。
表1和2. 這兩個表格描述了單循環和4階流水線的時延。
評論