當前位置:首頁 > 測試測量 > 測試測量
[導(dǎo)讀]多線程編程的挑戰(zhàn)迄今為止,處理器技術(shù)的創(chuàng)新為我們帶來了配有工作于更高時鐘速率的CPU的計算機。然而,隨著時鐘速率逼近其理論上的物理極限,人們開始投入到具備多個處理核的新型處理器的開發(fā)。借助這些新型多核處理

多線程編程的挑戰(zhàn)

迄今為止,處理器技術(shù)的創(chuàng)新為我們帶來了配有工作于更高時鐘速率的CPU的計算機。然而,隨著時鐘速率逼近其理論上的物理極限,人們開始投入到具備多個處理核的新型處理器的開發(fā)。借助這些新型多核處理器,工程師們在自動化測試應(yīng)用開發(fā)中利用并行編程技術(shù),可以實現(xiàn)最佳的性能和最大的吞吐量。愛德華×李博士——加州大學(xué)伯克利分校電氣與計算機工程教授——闡述了并行處理的技術(shù)優(yōu)勢。

“許多技術(shù)專家預(yù)言,對于摩爾定律的終結(jié)回應(yīng),將是日趨并行的計算機架構(gòu)。如果我們希望繼續(xù)提高計算性能,計算機程序必須能夠利用這種并行機制。”

而且,業(yè)界專家業(yè)已認識到,對于編程應(yīng)用,如何利用多核處理器將是一個巨大的挑戰(zhàn)。比爾×蓋茨——微軟公司的締造者——是這樣論述的:

“要想充分利用并行工作的處理器的威力,…軟件必須能夠處理并發(fā)性問題。但正如任何一位編寫過多線程代碼的開發(fā)者告訴你的那樣,這是編程領(lǐng)域最艱巨的任務(wù)之一。”

幸運的是,NI LabVIEW軟件,通過一個直觀的、用于創(chuàng)建并行算法的API,為我們提供了一個理想的多核處理器編程環(huán)境,所創(chuàng)建的并行算法可以將多個線程動態(tài)分配至一

項給定的應(yīng)用。事實上,您可以利用多核處理器優(yōu)化自動化測試應(yīng)用,以獲取最佳性能。

而且, PXI Express的模塊化儀器增強了這一技術(shù)優(yōu)勢,因為這些儀器利用了PCI Express總線所能支持的高數(shù)據(jù)傳輸速率。得益于多核處理器和PXI Express儀器的兩個具體應(yīng)用是:多通道信號分析和在線處理(硬件在環(huán))。在此白皮書中,我們將評估各種并行編程技術(shù),并描述每項技術(shù)所帶來的性能優(yōu)勢。

實現(xiàn)并行測試算法

一項常見的得益于并行處理的自動化測試應(yīng)用便是多通道信號分析。由于頻率分析是一項占用處理器運行時間較多的操作,您可以并行運行測試代碼,將每個通道的信號處理分配至多個處理器核,提高執(zhí)行速度。從編程人員的角度來看,為獲得這一技術(shù)優(yōu)勢,唯一需要改變的只是測試算法結(jié)構(gòu)的細微調(diào)整。

為描述這一過程,現(xiàn)比較用于多通道頻率分析(快速傅立葉變換或FFT)的兩個算法的執(zhí)行時間,它們分別位于一個高速數(shù)字化儀的兩個通道上。NI PXIe-5122 14-位高速數(shù)字化儀的兩個通道均以最高采樣率(100 MS/s)采集信號。首先,我們察看LabVIEW中對應(yīng)于這一操作的傳統(tǒng)順序編程模型。

 

 

圖1. 利用順序執(zhí)行的LabVIEW代碼

采集來自數(shù)字化儀的兩個通道的信號

圖1中,兩個通道的頻率分析均在一個FFT快速VI中完成,它順序分析每個通道信號。雖然上述算法也可以在多核處理器環(huán)境下有效執(zhí)行,但是,您還可以通過并行處理每個通道來進一步提高算法性能。

如果您剖析上述算法,就會發(fā)現(xiàn)完成FFT所需的時間要比從高速數(shù)字化儀采集數(shù)據(jù)長得多。通過每次獲取各個通道的數(shù)據(jù)并且并行執(zhí)行各個通道的FFT,可以顯著降低處理時間。圖2表示了一個采用并行方法的新的LabVIEW模塊框圖。

圖2. 利用并行執(zhí)行的LabVIEW代碼

順序獲取數(shù)字化儀的每個通道的數(shù)據(jù)。值得注意的是如果兩次數(shù)據(jù)獲取均來自不同的儀器,那么您可以徹底并行完成這些操作。然而,由于FFT占用大量的處理器時間,您仍可以僅通過將信號并行處理來改善性能,減少了總的執(zhí)行時間。圖3顯示了兩種實現(xiàn)的執(zhí)行時間:

 

圖3. 隨著數(shù)據(jù)塊大小的增加,通過并行處理節(jié)約的處理時間愈為顯著。

事實上,對于更大的數(shù)據(jù)塊,并行算法方法實現(xiàn)了近2倍的性能改進。圖4描述了性能隨采集數(shù)據(jù)塊大小(以采樣數(shù)為單位)增大而提高的精確百分比。

圖4. 對于大于1百萬采樣(100 Hz精度帶寬)的數(shù)據(jù)塊,并行方式實現(xiàn)了80%或更高的性能增長。

在多核處理器環(huán)境下,可以方便地實現(xiàn)自動化測試應(yīng)用的性能改進,因為您可以使用LabVIEW動態(tài)地分配每一個線程。事實上,您不需要創(chuàng)建特殊的代碼以支持多線程,而是通過最少的編程調(diào)整,利用多核處理器來達到并行測試。

配置定制的并行測試算法

并行信號處理算法幫助LabVIEW在多個處理器核中劃分處理器的用途。圖5按順序描述了CPU處理算法每一部分。

圖5. LabVIEW能夠并行處理許多采集數(shù)據(jù),從而節(jié)省了執(zhí)行時間。

并行處理要求LabVIEW拷貝(或克隆)每個信號處理子例程。缺省情況下,LabVIEW的許多信號處理算法配置為“可重入執(zhí)行”。這就意味著LabVIEW將動態(tài)分配給每個子例程唯一的實例,包括獨立線程和存儲空間。因而,您必須將定制的子例程的配置,工作于可重入方式。您可以通過LabVIEW中一個簡單的配置步驟完成這一工作。欲設(shè)置這一屬性,選擇文件菜單下VI屬性并選中“執(zhí)行”欄;然后,選中“可重入執(zhí)行”標記(如圖6所示)。

圖6. 通過這一簡單步驟,您可以并行執(zhí)行多個定制的子例程,就如同標準的LabVIEW分析函數(shù)。

因此,在多核處理器環(huán)境下,您可以通過簡單的編程技術(shù)實現(xiàn)您的自動化測試應(yīng)用的性能改進。

優(yōu)化硬件在環(huán)應(yīng)用

得益于并行信號處理技術(shù)的又一個應(yīng)用便是為同時輸入與輸出使用多個儀器。一般,這些應(yīng)用被稱為硬件在環(huán)(HIL)或在線處理應(yīng)用。在此情況下,您可以使用高速數(shù)字化儀或高速數(shù)字I/O模塊來采集信號。在您的軟件中執(zhí)行數(shù)字信號處理算法。最后,通過另一個模塊化儀器生成結(jié)果。圖7描述了一個典型的模塊框圖。

 

 

圖7. 該框圖描述了一個典型的硬件在環(huán)(HIL)應(yīng)用所包括的執(zhí)行步驟。

常見HIL應(yīng)用包括在線數(shù)字信號處理(如濾波、插值等)、傳感器仿真和定制組件模擬。您可以使用多種技術(shù),以獲得在線數(shù)字信號處理應(yīng)用的最佳吞吐量。

通常,您可以使用兩種基本的編程結(jié)構(gòu),單循環(huán)結(jié)構(gòu)和帶有隊列的流水線式多循環(huán)結(jié)構(gòu)。單循環(huán)結(jié)構(gòu)實現(xiàn)簡單,對于小數(shù)據(jù)塊具有較低時延。相比之下,多循環(huán)結(jié)構(gòu)能夠支持高得多的吞吐量,因為它們能夠更好地利用多核處理器。

對于傳統(tǒng)的單循環(huán)方式,您順次組織一個高速數(shù)字化儀的讀函數(shù)、信

號處理算法和高速數(shù)字I/O的寫函數(shù)。如圖8的模塊框圖所示,這些子例程中的每一個都必須按照LabVIEW編程模型所確定的順序執(zhí)行。

圖8. 對于LabVIEW的單循環(huán)方式,每個子例程都必須順次執(zhí)行。

單循環(huán)結(jié)構(gòu)受限于幾個因素。由于順序執(zhí)行每一環(huán)節(jié),處理器在處理數(shù)據(jù)的同時受限,無法執(zhí)行儀器I/O。在這種方式下,由于處理器一次只能執(zhí)行一個函數(shù),所以您無法有效利用一個多核CPU。雖然單循環(huán)結(jié)構(gòu)可以處理較低的采集速率,但是,如需更高的數(shù)據(jù)吞吐量,仍須采用多循環(huán)方式。

多循環(huán)架構(gòu)使用隊列結(jié)構(gòu)實現(xiàn)while循環(huán)間的數(shù)據(jù)傳遞。圖9描述了多個while循環(huán)(帶有一個隊列結(jié)構(gòu))間的編程方式。

圖9. 借助隊列結(jié)構(gòu),可以實現(xiàn)多個循環(huán)間的數(shù)據(jù)共享。

圖9所表示的是典型的所謂生產(chǎn)者/消費者循環(huán)結(jié)構(gòu)。在此例中,一個高速數(shù)字化儀在一個循環(huán)中持續(xù)采集數(shù)據(jù),并在每次迭代中將新的數(shù)據(jù)集傳遞至FIFO隊列。消費者循環(huán)僅需監(jiān)視隊列的狀態(tài),當每個數(shù)據(jù)集可用時將其寫入磁盤。采用隊列的意義在于這兩個循環(huán)均可相互獨立執(zhí)行。在上例中,高速數(shù)字化儀可以持續(xù)采集數(shù)據(jù),即使這些數(shù)據(jù)寫入磁盤時存在一定的延遲。與此同時,其它的采樣僅需存儲在FIFO隊列中。通常來說,生產(chǎn)者/消費者流水線方法,通過更有效的處理器利用率,提供更高的數(shù)據(jù)吞吐量。這一技術(shù)優(yōu)勢在多核處理器環(huán)境下更為顯著,因為LabVIEW可以動態(tài)分配處理器線程至每個處理器核。

對于一項在線信號處理應(yīng)用,您可以使用三個獨立的while循環(huán)和兩個隊列結(jié)構(gòu),實現(xiàn)其間的數(shù)據(jù)傳遞。在此應(yīng)用情況下,一個循環(huán)將從一臺儀器采集數(shù)據(jù),一個循環(huán)將專門執(zhí)行信號處理,而第三個循環(huán)將數(shù)據(jù)寫入到另一臺儀器。

圖10. 該模塊框圖描述了帶有多個循環(huán)與隊列結(jié)構(gòu)的流水線式信號處理。

圖10中,最上面的循環(huán)是一個生產(chǎn)者循環(huán),它從一個高速數(shù)字化儀采集數(shù)據(jù),并將其傳遞至第一個隊列結(jié)構(gòu)(FIFO)。中間的循環(huán)同時作為生產(chǎn)者和消費者工作。每次迭代中,它從隊列結(jié)構(gòu)中接收(消費)若干個數(shù)據(jù)集,并以流水線的方式獨立對其進行處理。這種流水線方式通過支持高達四個數(shù)據(jù)集的獨立處理,實現(xiàn)了在多核處理器環(huán)境下的性能改進。注意,中間的循環(huán)同時也作為一個生產(chǎn)者工作,將處理后的數(shù)據(jù)傳遞至第二個隊列結(jié)構(gòu)。最后,最下面的循環(huán)將處理后的數(shù)據(jù)寫入至高速數(shù)字I/O模塊。

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

圖11. 多循環(huán)結(jié)構(gòu)提供比單循環(huán)結(jié)構(gòu)高得多的吞吐量。

圖11描述了最大吞吐量和采樣率的關(guān)系,采樣數(shù)據(jù)塊大小以采樣點數(shù)來計算。此處所描述的所有標定都是圍繞16位采樣進行的。此外,所采用的信號處理算法為一個截止頻率為采樣率的0.45倍的7階巴特沃茲低通濾波器。如數(shù)據(jù)顯示,您可以在4階流水線式(多循環(huán))方式下達到最大數(shù)據(jù)吞吐量。注意,2階信號處理方式獲得了比單循環(huán)方式(順序)更好的性能,但其CPU的利用率低于4階方式。上面所列的采樣率均為NI PXIe-5122高速數(shù)字化儀和NI PXIe-6537高速數(shù)字I/O模塊的輸入和輸出的最大采樣率。注意,當采樣率為20 MS/s時,應(yīng)用總線的輸入和輸出的數(shù)據(jù)傳輸率均為40 MB/s,所以總的總線帶寬為80 MB/s。

而且,應(yīng)當考慮的是,流水線式處理方式在輸入與輸出之間確實引入了時延。所引入的時延取決于幾個因素,包括數(shù)據(jù)塊的大小和采樣率。下面的表1和表2比較了單循環(huán)和4階多循環(huán)架構(gòu)中的實測時延隨數(shù)據(jù)塊大小和最大采樣率的變化情況。

表1和2. 這兩個表格描述了單循環(huán)和4階流水線的時延。

如您所推測,當CPU的使用率接近100%時時延也隨之增加。這一點在采樣率為20 MS/s的4階流水線范例中尤為明顯。相比之下,任何一個單循環(huán)范例的CPU使用率都幾乎不會超過50%。

總結(jié)

基于PC的儀器系統(tǒng),如PXI和PXI Express模塊化儀器,從多核處理器技術(shù)的進步和數(shù)據(jù)總線速度的提高中獲益匪淺。當新型CPU通過添加多個處理核改進性能時,并行或流水線式處理結(jié)構(gòu)在最大化CPU效率時是必須的。幸運的是,LabVIEW通過將需要處理的任務(wù)動態(tài)分配至每個處理核,解決了這一編程難題。如上所述,您可以通過將LabVIEW算法結(jié)構(gòu)化以利用并行處理,實現(xiàn)性能的顯著提高。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉