《電子技術應用》
您所在的位置:首頁 > 測試測量 > 設計應用 > 利用LabVIEW優化多核處理器環境中的自動化測試
利用LabVIEW優化多核處理器環境中的自動化測試
摘要: 迄今,處理器技術領域中的創新已經使得計算機具備了工作于更高時鐘速率的中央處理器單元(CPU)。然而,隨著時鐘速率逼近其理論上的物理極限,具有多個(而不是單個)處理核的新型處理器正處于研發之中。利用這些新型多核處理器,自動化測試應用利用并行編程技術,便可以達到最佳性能和最高吞吐量。Edward Lee博士-加州大學伯克利分校電氣與計算機工程系的杰出教授-這樣描述并行處理的技術優勢:“許多技術專家預言,回應摩爾定律的終結的將是日趨并行的計算機架構。如果我們希望繼續提高計算性能,計算機程序必須能夠利用這種并行機制。”
Abstract:
Key words :

 

多線程編程的挑戰

    迄今,處理器技術領域中的創新已經使得計算機具備了工作于更高時鐘速率的中央處理器單元(CPU)。然而,隨著時鐘速率逼近其理論上的物理極限,具有多個(而不是單個)處理核的新型處理器正處于研發之中。利用這些新型多核處理器,自動化測試應用利用并行編程技術,便可以達到最佳性能和最高吞吐量。Edward Lee博士-加州大學伯克利分校電氣與計算機工程系的杰出教授-這樣描述并行處理的技術優勢:“許多技術專家預言,回應摩爾定律的終結的將是日趨并行的計算機架構。如果我們希望繼續提高計算性能,計算機程序必須能夠利用這種并行機制。”

    而且,利用多核處理器的編程應用是一個巨大的編程挑戰,這是廣為接受的。比爾蓋茨-微軟公司的締造者關于這一挑戰有這樣一段話:“要想充分利用并行工作的處理器的威力,...軟件必須能夠處理并發性問題。但正如任何一位編寫過多線程代碼的開發者告訴你的那樣,這是編程領域最艱巨的任務之一。”

    幸運的是,LabVIEW為多核處理器提供了一個理想的編程環境,因為它為創建并行算法提供了一個直觀的環境,而且它可以動態指派多個線程至一項給定的應用。事實上,利用多核處理器的自動化測試應用,可以方便地被優化以獲取最佳性能。而且,PXIe模塊化儀器增強了這一技術優勢,因為PCIe總線使高數據傳輸速率成為可能。從多核處理器和PXIe儀器的兩個具體應用是:多通道信號分析和線上處理(硬件在環)。在本文的后續部分,我們將評估各種并行編程技術,并刻畫每項技術所帶來的性能優勢。

實現并行測試算法

    得益于并行處理的一項常見自動化測試應用(ATE),便是多通道信號分析。由于頻率分析是一項占有處理器較多的操作,通過并行化處理測試代碼使得每個通道的信號處理被分配至多個處理器核,可以提高執行速度。從編程人員的角度來看,為獲得這一技術優勢,所需的唯一改變便是僅僅重構測試算法。

    為描述這一過程,我們將比較用于多通道頻率分析(傅立葉變換或FFT)的兩個算法的執行時間,它們分別位于一個高速數字化儀的兩個通道上。在該測試中,我們使用PXIe-5122 14-位高速數字化儀的兩個通道,以最高采樣率(100MS/s)采集信號。首先,我們這一操作在LabVIEW中的傳統的順序編程模型。


圖1:利用順序執行的LabVIEW代碼

    在上述模塊框圖中,兩個通道的頻率分析均在一個FFT快速VI中完成,它順序分析每個通道信號。雖然上述算法也可以在多核處理器中有效執行,但仍存在通過并行處理每個通道提高算法性能的可能。

    如果我們剖析上述算法,我們會發現完成FFT所需的時間要比從高速數字化儀采集數據長得多。通過每次獲取一個通道的數據并并行執行兩次FFT,我們可以顯著降低處理時間。下圖表示了一個采用并行方法的新的LabVIEW模塊框圖。


圖2:利用并行執行的LabVIEW代碼

    如上面代碼所示,將順序獲取數字化儀的每個通道的數據。注意,如果兩次數據獲取均來自不同的儀器,那么完全可以并行完成這些操作。然而,由于傅立葉變換占用大量的處理器時間,我們仍可以僅通過將信號處理并行化改善性能。故而減少了總的執行時間。兩種實現的執行時間如下所示:


圖3:順序算法與并行算法(時間)的執行時間比較

    如上圖所示,隨著數據塊大小(每次獲取的采樣數)的增加,通過并行處理節約的處理時間愈為顯著。事實上,對于更大的數據塊,并行算法實現近2倍的性能改進。下圖描述了性能增長的精確百分比隨采集數據塊大小(以采樣數為單位)的變化。


圖4:并行算法帶來的性能增長(百分比)

    圖4顯示,當數據塊大于1百萬采樣(100Hz精度帶寬)時,并行方式實現80%或更高的性能增長。

    在多核處理器之上,我們可以方便地實現自動化測試應用的性能改進,因為LabVIEW動態地分配每一個線程。事實上,用戶不需要創建特殊的代碼以支持多線程,而是通過最少的編程調整,并行測試應用便可以獲益于多核處理器。

配置定制的并行測試算法

    將信號處理并行化的技術優勢在于它支持LabVIEW在多個處理器核中劃分CPU的用度。在下圖中,我們描述了CPU處理算法每一部分的次序。


圖5:CPU的處理執行

    如圖所示,LabVIEW能夠并行處理許多采集數據,從而節省了執行時間。對于LabVIEW,并行處理的需求之一便是拷貝(或克隆)每個信號處理子例程。缺省情況下,LabVIEW的許多信號處理算法配置為“重入執行”。這就意味著LabVIEW將動態分配每個子例程的一個不同實例,包括獨立線程和存儲空間。因而,定制子例程必須被配置為工作于重入方式。這可以通過LabVIEW中一個簡單的配置步驟完成。欲設置這一屬性,選擇文件菜單下VI屬性并選中“執行”欄;然后,選中“重入執行”標記(如下所示)。


圖6:在LabVIEW中配置重入執行屬性

    通過上圖所示的簡單步驟,我們可以并行執行多個定制子例程,就如同標準LabVIEW分析函數那樣。因此,在多核處理器之上,自動化測試應用通過簡單的編程技術就可以實現性能的改進。

優化硬件在環應用

    得益于并行信號處理技術的又一個應用便是為同時輸入與輸出使用多個儀器。一般,這些應用被稱為硬件在環(HIL)或在線處理應用。在此場景下,高速數字化儀或高速數字I/O模塊用于信號采集,其軟件執行數字信號處理算法。最后,通過另一個模塊化儀器生成結果。其典型模塊框圖如下所示:


圖7:在線信號處理(HIL)模塊框圖

    常見HIL應用包括在線數字信號處理(濾波、插值等)、傳感器仿真和定制組件模擬。在這篇特別準備的白皮書中,我們將探究用于在在線數字信號處理應用中獲得最佳吞吐量的技術。

    通常可以使用兩種基本的編程結構,單循環結構和帶有隊列的管道式多循環結構。單循環結構實現簡單,對于小數據塊具有低時延。相比之下,多循環結構能夠支持高得多的吞吐量,因為它們能夠更好地利用多核CPU。

    對于傳統的單循環方式,一個高速數字化儀的讀函數、信號處理算法和高速數字I/O順次組織。如下面模塊框圖所示,這些子例程中的每一個都必須按照LabVIEW數據流編程模型確定的順序執行。


圖8:在循環中依單循環方式進行處理

    單循環結構受限于幾個因素。由于順序執行每一環節,處理器在處理數據的同時受限無法執行儀器I/O。在這種方式下,由于處理器一次只能執行一個函數,所以無法有效利用多核CPU。因而,在應用中僅使用了多核CPU的一個核。雖然單循環結構足以處理較低的采集速率,但是要想得到較高的數據吞吐量仍需要采用多循環方式。

    多循環架構使用隊列結構實現while循環間的數據傳遞。下面,我們展開論述在while循環間采用一個隊列結構進行數據流編程的概念。


圖9:隊列結構支持多循環間的數據共享

    如圖所示,隊列支持多個循環間的數據共享。上圖所表示的是典型的所謂生產者/消費者循環結構。這里,在一個循環中,一個高速數字化儀持續采集數據,并在每次迭代中將新的數據集傳遞至FIFO隊列。消費者循環僅需監視隊列的狀態,當每個數據集可用時將其寫入磁盤。采用隊列的意義在于這兩個循環均可相互獨立執行。在上例中,高速數字化儀可以持續采集數據,即使這些數據寫入磁盤時存在一定的延遲。與此同時,其它的采樣僅需存儲在FIFO隊列中。通常,生產者/消費者管道式方法,通過支持更有效的處理器利用率,使更高的數據吞吐量成為可能。這一技術優勢在多核處理器中甚至更為顯著,因為LabVIEW可以動態分配CPU線程至每個處理器核。

    對于一項在線信號處理應用,我們可以使用三個獨立的while循環和兩個隊列結構,實現其間的數據傳遞。在此應用場景下,一個循環將從一臺儀器采集數據,一個循環將專門執行信號處理,而第三個循環將數據寫入到另一臺儀器。描述這一方式的LabVIEW模塊框圖如下所示:


圖10:具有多個循環和排隊結構的管道式信號處理

    在上圖中,最上面的循環是一個生產者循環,它從一個高速數字化儀采集數據,并將其傳遞至第一個隊列結構(FIFO)。中間的循環同時作為生產者和消費者工作。每次迭代中,它從隊列結構中卸載(消費)若干個數據集,并以管道的方式獨立對其進行處理。這種管道方式通過支持高達四個數據集的獨立處理,實現了多核處理器環境下的性能改進。注意,中間的循環同時也作為一個生產者工作,將處理后的數據傳遞至第二個隊列結構。最后,最下面的循環將處理后的數據寫入至高速數字I/O模塊。

    并行處理算法改善了多核CPU的處理器利用率。事實上,總吞吐量有賴于兩個因素,處理器利用率和總線傳輸速度。通常,CPU和數據總線在處理大數據塊時工作效率最高。而且,我們可以進一步使用具有更快傳輸速度的PXIe儀器,縮減數據傳輸時間。因而,我們通過依采集數據大小(以采樣數計)變化的采樣率描述最大吞吐量,如下所示:


圖11:多循環結構與單循環結構的吞吐量比較

    該圖中所描述的所有標定都是圍繞16-位采樣進行的。此外,所采用的信號處理算法為一個截至頻率為采樣率的0.45倍的7階巴特沃茲低通濾波器。如數據顯示,4階段管道式(多循環)方式支持最大數據吞吐量。注意,2階段信號處理方式獲得了比單循環方式(順序)更好的性能,但其CPU的利用不及4階段方式有效。上面所列的采樣率為PXIe-5122高速數字化儀和PXIe-6537高速數字I/O模塊的輸入和輸出的最大采樣率。注意,當采樣率為20MS/s時,應用總線的輸入和輸出的數據傳輸率均為40MB/s,所以總的總線帶寬為80MB/s。

    應當考慮的是,管道式處理方式在輸入與輸出之間確實引入了時延。所引入的時延取決于幾個因素,包括數據塊的大小和采樣率。下表比較了單循環和4階段多循環架構中實測所得的時延隨數據塊大小和最大采樣率的變化情況。


表1:單循環的時延標定


表2:4階段管道的時延標定

    正如人們可以預知的,當CPU的使用率接近100%時時延也隨之增加。這一點在采樣率為20MS/s的4階段管道范例中尤為明顯。相比之下,任何一個單循環范例的CPU使用率都幾乎不會超過50%。

本文小結

    基于PC的儀器系統,如PXI和PXIe模塊化儀器,從多核處理器技術的進步和數據總線速度的提高中獲益匪淺。當新型CPU通過添加多個處理核改進性能時,并行或管道式處理結構成為最大化CPU效率所必需。幸運的是,LabVIEW通過將處理任務動態分配至單個處理核;為這一編程挑戰提供了一種上佳的解決方案。如上面數據顯示,將LabVIEW算法結構化以利用并行處理,可以帶來顯著的性能提高。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲国产老妈| 日韩亚洲欧美高清| 亚洲精品一区二区三区av| 国产亚洲欧洲997久久综合| 国产精品videossex久久发布| 欧美高清在线一区| 老司机免费视频久久| 久久久久久97三级| 久久精品人人做人人爽| 欧美在线网站| 欧美一级视频免费在线观看| 亚洲欧美国产制服动漫| 亚洲欧美日本日韩| 亚洲免费小视频| 亚洲欧美经典视频| 午夜精品影院| 欧美亚洲一级| 欧美在线首页| 久久久噜久噜久久综合| 久久视频在线看| 蜜桃久久精品乱码一区二区| 久久久久网站| 女生裸体视频一区二区三区| 欧美a级在线| 欧美成人资源网| 欧美激情视频免费观看| 欧美另类人妖| 欧美亚日韩国产aⅴ精品中极品| 欧美视频亚洲视频| 国产精品久久久久久久久免费| 国产精品美女久久久久久免费| 国产精品激情av在线播放| 国产精品午夜视频| 国内精品国产成人| 亚洲国产精品国自产拍av秋霞 | 性久久久久久久久| 欧美在线视频二区| 亚洲黄色av| 一区二区三区视频免费在线观看 | 久久影院亚洲| 欧美精品v日韩精品v国产精品| 欧美日韩精品一区视频| 国产精品日韩一区二区| 国产综合久久| 亚洲精品日韩激情在线电影 | 午夜欧美不卡精品aaaaa| 久久高清免费观看| 免费成人在线观看视频| 欧美三区美女| 国产一区二区三区的电影 | 欧美亚洲网站| 麻豆成人在线播放| 欧美日韩国产三级| 国产欧美综合在线| 亚洲经典视频在线观看| 亚洲深夜影院| 亚洲大片一区二区三区| 亚洲视频在线观看三级| 久久精品国产精品| 欧美精品在线观看91| 国产九九精品视频| 亚洲国产精品一区二区www| 亚洲少妇在线| 亚洲欧洲一区二区三区久久| 亚洲一区二区视频| 久久久五月婷婷| 欧美日韩在线一区二区| 黄色成人在线网站| 99国产精品视频免费观看| 性做久久久久久免费观看欧美| 亚洲精品一区二区三区婷婷月| 亚洲砖区区免费| 欧美成年人视频网站| 国产精品每日更新| 亚洲人成亚洲人成在线观看| 午夜亚洲精品| 一本色道久久综合一区 | 美女久久一区| 国产精品自拍一区| 日韩视频精品| 久久国产精品久久w女人spa| 亚洲婷婷在线| 欧美成人首页| 国产日韩一区二区| 99成人在线| 亚洲黄色高清| 久久久久久91香蕉国产| 国产精品啊v在线| 最新亚洲一区| 亚洲黄色免费| 久久久久久久综合| 国产精品欧美日韩一区二区| 亚洲第一综合天堂另类专| 午夜在线视频观看日韩17c| 一二美女精品欧洲| 美女啪啪无遮挡免费久久网站| 国产精品日本精品| 99视频精品免费观看| 亚洲精品欧美激情| 久久夜色精品国产噜噜av| 国产欧美日本一区二区三区| 日韩特黄影片| 亚洲精品国产拍免费91在线| 久久久久久成人| 国产色爱av资源综合区| 亚洲午夜精品福利| 亚洲一区在线观看免费观看电影高清| 欧美风情在线| 亚洲大胆人体在线| 亚洲高清视频一区二区| 久久久久久久久久久成人| 国产乱码精品1区2区3区| 亚洲无吗在线| 亚洲已满18点击进入久久| 欧美日韩p片| 亚洲美女在线国产| 一区二区高清视频在线观看| 欧美激情bt| 亚洲破处大片| 夜夜嗨av一区二区三区中文字幕 | 亚洲乱码日产精品bd| 男女精品视频| 亚洲国产经典视频| 亚洲精品黄网在线观看| 欧美成人综合在线| 亚洲国产另类久久久精品极度| 亚洲日本欧美在线| 欧美精品三级日韩久久| 亚洲国产日韩精品| 日韩一本二本av| 欧美日韩国产成人在线观看| 亚洲美女av网站| 亚洲视频欧洲视频| 国产精品久久九九| 午夜精品一区二区三区在线视| 欧美一区二区啪啪| 国产视频在线观看一区二区| 久久成年人视频| 免费精品视频| 亚洲区一区二区三区| 一本一本久久a久久精品综合妖精| 欧美日韩一区成人| 亚洲伊人色欲综合网| 久久精品最新地址| 影院欧美亚洲| 亚洲最新合集| 国产精品美女www爽爽爽| 性色一区二区三区| 嫩草成人www欧美| 日韩西西人体444www| 午夜一区不卡| 红桃视频国产一区| 亚洲三级观看| 欧美午夜久久| 欧美一级久久久| 免费一区视频| 一本久久综合亚洲鲁鲁| 欧美一区二区三区日韩视频| 黄色一区二区三区四区| 亚洲作爱视频| 国产农村妇女精品一区二区| 亚洲国产欧美国产综合一区| 欧美区亚洲区| 亚洲欧美一区二区三区在线 | 开元免费观看欧美电视剧网站| 亚洲欧洲一区二区在线观看| 亚洲一区国产精品| 韩国一区二区三区美女美女秀| 亚洲美女电影在线| 国产精品入口66mio| 亚洲电影免费在线观看| 欧美日韩久久精品| 午夜影视日本亚洲欧洲精品| 欧美成人精品在线观看| 亚洲欧美成人网| 欧美国产免费| 午夜亚洲福利| 欧美日韩高清在线播放| 欧美在线观看视频一区二区| 欧美日韩国产三级| 久久精品电影| 国产精品嫩草影院一区二区| 亚洲黑丝一区二区| 国产欧美一区二区三区久久人妖| 亚洲欧洲日本一区二区三区| 国产精品毛片a∨一区二区三区|国| 亚洲国产一区二区三区在线播| 国产精品v欧美精品v日韩| 亚洲国产精品成人精品| 国产精品久久久久久福利一牛影视 | 欧美在线观看视频在线| 欧美日韩精品在线观看| 亚洲第一成人在线| 国产精品一区二区女厕厕| 日韩亚洲一区二区| 伊人色综合久久天天| 欧美一区二区精品久久911| 亚洲最黄网站| 欧美国产日韩一区| 久久本道综合色狠狠五月|