新聞中心

EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 利用NI LabVIEW優(yōu)化多核處理器環(huán)境下的自動(dòng)化測(cè)試應(yīng)用

利用NI LabVIEW優(yōu)化多核處理器環(huán)境下的自動(dòng)化測(cè)試應(yīng)用

作者: 時(shí)間:2012-07-17 來源:網(wǎng)絡(luò) 收藏

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

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

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

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

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

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

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

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

  實(shí)現(xiàn)并行測(cè)試算法

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

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

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

  采集來自數(shù)字化儀的兩個(gè)通道的信號(hào)

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

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

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

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

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

隨著數(shù)據(jù)塊大小的增加

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

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

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

  在多核處理器環(huán)境下,可以方便地實(shí)現(xiàn)自動(dòng)化測(cè)試應(yīng)用的性能改進(jìn),因?yàn)槟梢允褂肔abVIEW動(dòng)態(tài)地分配每一個(gè)線程。事實(shí)上,您不需要?jiǎng)?chuàng)建特殊的代碼以支持多線程,而是通過最少的編程調(diào)整,利用多核處理器來達(dá)到并行測(cè)試。

  配置定制的并行測(cè)試算法

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

LabVIEW能夠并行處理許多采集數(shù)據(jù)

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

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

通過這一簡(jiǎn)單步驟

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


上一頁(yè) 1 2 3 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉