當(dāng)前位置:首頁(yè) > 測(cè)試測(cè)量 > 測(cè)試測(cè)量
[導(dǎo)讀]多核處理器環(huán)境下的編程挑戰(zhàn) 摩爾定律問(wèn)世40余年來(lái),人們業(yè)已看到半導(dǎo)體芯片制造工藝水平以一種令人目眩的速度在提高,Intel微處理器的最高主頻甚至超過(guò)了4G。雖然主頻的提升一定程度上提高了程序運(yùn)行效率,但越來(lái)越

多核處理器環(huán)境下的編程挑戰(zhàn)
摩爾定律問(wèn)世40余年來(lái),人們業(yè)已看到半導(dǎo)體芯片制造工藝水平以一種令人目眩的速度在提高,Intel微處理器的最高主頻甚至超過(guò)了4G。雖然主頻的提升一定程度上提高了程序運(yùn)行效率,但越來(lái)越多的問(wèn)題也隨之出現(xiàn),耗電、散熱都成為阻礙設(shè)計(jì)的瓶頸所在,芯片成本也相應(yīng)提高。當(dāng)單獨(dú)依靠提高主頻已不能實(shí)現(xiàn)性能的高效率時(shí),雙核乃至多核成為了提高性能的唯一出路。隨著AMD率先打破摩爾定律、終結(jié)頻率游戲后,Intel和AMD都開(kāi)始逐步推出了基于雙核、四核甚至八核的處理器,工程師們逐漸投入到基于多核處理器的新型應(yīng)用開(kāi)發(fā)中去時(shí),大家開(kāi)始發(fā)現(xiàn),借助這些新的多核處理器,并在應(yīng)用開(kāi)發(fā)中利用并行編程技術(shù),可以實(shí)現(xiàn)最佳的性能和最大的吞吐量,大大提高應(yīng)用程序的運(yùn)行效率。
然而,業(yè)界專家們也同時(shí)認(rèn)識(shí)到,對(duì)于實(shí)際的編程應(yīng)用,多核處理器的并行編程卻是一個(gè)巨大的挑戰(zhàn)。比爾蓋茨是這樣論述的:
 “要想充分利用并行工作的處理器的威力,…軟件必須能夠處理并發(fā)性問(wèn)題。但正如任何一位編寫(xiě)過(guò)多線程代碼的開(kāi)發(fā)者告訴你的那樣,這是編程領(lǐng)域最艱巨的任務(wù)之一?!?br />比如用C++寫(xiě)一個(gè)多線程的程序,程序員必須要非常熟悉 C++,了解如何將C++程序分成多個(gè)線程和并在各個(gè)線程間進(jìn)行任務(wù)調(diào)度,此外還要了解 Windows 多線程的機(jī)制,熟悉 Windows API 的調(diào)用方法和MFC 的架構(gòu)等等。在 C++ 上調(diào)試多線程程序,更是被很多程序員視為噩夢(mèng)。
所以,對(duì)于測(cè)試測(cè)量行業(yè)的工程師來(lái)說(shuō),在傳統(tǒng)開(kāi)發(fā)環(huán)境下要想獲得多核下的效率提升意味著大量而復(fù)雜的多線程編程任務(wù),而使得工程師脫離了自動(dòng)化測(cè)試及其信號(hào)處理任務(wù)本身,于是,要想在當(dāng)前的多核機(jī)器上充分利用其架構(gòu)和并行運(yùn)算的優(yōu)勢(shì),反而成為工程師們“不可能”完成的任務(wù)。
LabVIEW降低并行編程的復(fù)雜性,快速開(kāi)發(fā)并行構(gòu)架的信號(hào)處理應(yīng)用
幸運(yùn)的是,NI LabVIEW圖形化開(kāi)發(fā)平臺(tái)為我們提供了一個(gè)理想的多核處理器編程環(huán)境。作為一種并行結(jié)構(gòu)的編程語(yǔ)言,LabVIEW能將多個(gè)并列的程序分支自動(dòng)分配成多個(gè)線程并分派到各個(gè)處理核上,讓一些計(jì)算量較大的數(shù)學(xué)運(yùn)算或信號(hào)處理應(yīng)用得以提高運(yùn)行效率,并獲取最佳性能。
我們以自動(dòng)化測(cè)試中最常見(jiàn)的多通道信號(hào)處理分析為例。由于多通道中的頻率分析是一項(xiàng)占用處理器資源較多的操作,如果能夠讓程序并行地將每個(gè)通道的信號(hào)處理任務(wù)分配至多個(gè)處理器核,對(duì)于提高程序執(zhí)行速度來(lái)說(shuō),就顯得尤為重要。而目前,從LabVIEW編程人員的角度來(lái)看,要想獲得這一原本“不可能”的技術(shù)優(yōu)勢(shì),唯一需要改變的只是算法結(jié)構(gòu)的細(xì)微調(diào)整,而并不需要復(fù)雜且耗時(shí)耗力的代碼重建工作。
以雙通道采樣為例,我們需要分別對(duì)高速數(shù)字化儀的兩個(gè)通道上的數(shù)據(jù)進(jìn)行快速傅立葉變換(FFT)。假設(shè)我們采用的高速數(shù)字化儀的兩個(gè)通道均以100 MS/s采樣率采集信號(hào)并實(shí)時(shí)分析。首先,我們來(lái)看LabVIEW中對(duì)于這一操作的傳統(tǒng)順序編程模型。
 
圖1. 利用順序執(zhí)行的LabVIEW代碼
和其他文本編程語(yǔ)言一樣,處理多通道信號(hào)的傳統(tǒng)方法是將各個(gè)通道信號(hào)按順序讀入并逐通道的進(jìn)行分析,上面基于LabVIEW的順序編程模型很好的說(shuō)明了這點(diǎn),0、1兩通道的數(shù)據(jù)被按順序讀入后,整合為一路數(shù)組,并由一個(gè)FFT函數(shù)進(jìn)行信號(hào)分析并輸出。雖然順序結(jié)構(gòu)能夠順利地在多核機(jī)器上運(yùn)行,但確不能使得CPU負(fù)擔(dān)得到有效的分?jǐn)偅驗(yàn)榧词乖陔p核的機(jī)器上, FFT程序也只能在一個(gè)CPU上被執(zhí)行,而此時(shí)另一個(gè)CPU卻被閑置了。
實(shí)際上,兩個(gè)通道的FFT運(yùn)算相互獨(dú)立,如果程序能夠?qū)蓚€(gè)FFT自動(dòng)分配到一臺(tái)雙核機(jī)器上的的兩個(gè)CPU上,那么理論上程序的運(yùn)行效率將提高一倍。在LabVIEW的圖形化編程平臺(tái)上,情況正是如此,我們可以通過(guò)并行化處理這兩個(gè)通道來(lái)真正提高算法性能。圖2表示了一種采用并行結(jié)構(gòu)的LabVIEW代碼,從圖形化編程的角度來(lái)看,僅僅是增加了一路并行的FFT函數(shù)而已。
 
圖2. 利用并行執(zhí)行的LabVIEW代碼
由于數(shù)據(jù)量越大,信號(hào)處理運(yùn)算在工程應(yīng)用中所占的處理器時(shí)間就越長(zhǎng),所以通過(guò)簡(jiǎn)單的程序改動(dòng)將原來(lái)的信號(hào)處理程序并行化,可以改善程序性能,減少了總的執(zhí)行時(shí)間。
 
圖3. 對(duì)于大于1M采樣(100 Hz精度帶寬)的數(shù)據(jù)塊,并行方式實(shí)現(xiàn)了80%或更高的性能增長(zhǎng)。
圖3描述了性能隨采集數(shù)據(jù)塊大?。ㄒ圆蓸訑?shù)為單位)增大而提高的精確百分比。事實(shí)上,對(duì)于更大的數(shù)據(jù)塊,并行算法方法確實(shí)實(shí)現(xiàn)了近2倍的性能改進(jìn)。工程師們不需要?jiǎng)?chuàng)建特殊的代碼來(lái)支持多線程,在多核處理器環(huán)境下,只需通過(guò)最少的編程調(diào)整,利用LabVIEW自動(dòng)分配每一個(gè)線程到多核處理器的特性,可以方便的實(shí)現(xiàn)信號(hào)處理能力的大幅度提升,從而達(dá)到了自動(dòng)化測(cè)試應(yīng)用的性能改進(jìn)。
程序性能的進(jìn)一步優(yōu)化
LabVIEW并行的信號(hào)處理算法不僅幫助工程師提高程序性能,而且可以更清楚的劃分多個(gè)處理器核在項(xiàng)目中的不同用途。比如,將控制采樣輸入,顯示輸出和信號(hào)分析的模塊獨(dú)立分開(kāi)。
以HIL(Hareware-in-the-loop)或在線信號(hào)處理應(yīng)用為例。首先,使用高速數(shù)字化儀或高速數(shù)字I/O模塊來(lái)采集信號(hào),并在軟件中執(zhí)行數(shù)字信號(hào)處理算法。然后,通過(guò)另一個(gè)模塊化儀器生成結(jié)果。常見(jiàn)HIL應(yīng)用包括在線數(shù)字信號(hào)處理(如濾波、插值等等)、傳感器仿真和定制組件模擬等等。
一般來(lái)說(shuō),HIL可以使用兩種基本的編程結(jié)構(gòu)來(lái)完成,單循環(huán)結(jié)構(gòu)和帶有隊(duì)列的流水線式多循環(huán)結(jié)構(gòu)。單循環(huán)結(jié)構(gòu)實(shí)現(xiàn)簡(jiǎn)單,對(duì)于小數(shù)據(jù)塊具有較低時(shí)延,但單循環(huán)結(jié)構(gòu)受限于各個(gè)環(huán)節(jié)的順序結(jié)構(gòu)而無(wú)法實(shí)現(xiàn)并發(fā)性,例如,由于處理器只能執(zhí)行一個(gè)函數(shù),在處理數(shù)據(jù)的同時(shí)就無(wú)法執(zhí)行儀器IO,所以單循環(huán)結(jié)構(gòu)無(wú)法有效利用多核CPU的優(yōu)勢(shì)。相比之下,多循環(huán)結(jié)構(gòu)則能夠更好的利用到多核處理器,從而支持高得多的吞吐量。
對(duì)于一項(xiàng)多循環(huán)結(jié)構(gòu)的HIL應(yīng)用來(lái)說(shuō),可以通過(guò)三個(gè)獨(dú)立的while循環(huán)和兩個(gè)隊(duì)列結(jié)構(gòu),實(shí)現(xiàn)其間的數(shù)據(jù)傳遞。在此情況下,第一個(gè)循環(huán)從儀器采集數(shù)據(jù),第二個(gè)循環(huán)專門(mén)執(zhí)行信號(hào)處理分析,而第三個(gè)循環(huán)將數(shù)據(jù)寫(xiě)入到另一臺(tái)儀器。這樣的處理方式,也被稱之為流水線式信號(hào)處理(pipeline)。
 
圖4.帶有多個(gè)循環(huán)與隊(duì)列結(jié)構(gòu)的流水線式信號(hào)處理。
圖4中,最上面的循環(huán)是一個(gè)生產(chǎn)者(Producer)循環(huán),它從一個(gè)高速數(shù)字化儀采集數(shù)據(jù),并將其傳遞至第一個(gè)隊(duì)列結(jié)構(gòu)(FIFO)。中間的循環(huán)同時(shí)作為生產(chǎn)者和消費(fèi)者(Consumer)工作。每次迭代中,它從隊(duì)列結(jié)構(gòu)中接收(消費(fèi))若干個(gè)數(shù)據(jù)集,并以流水線的方式獨(dú)立為四個(gè)不同數(shù)據(jù)塊的內(nèi)容進(jìn)行7階低通濾波的處理,同時(shí)中間的循環(huán)也作為一個(gè)生產(chǎn)者工作,將處理后的數(shù)據(jù)傳遞至第二個(gè)隊(duì)列結(jié)構(gòu)。最后,最下面的循環(huán)將處理后的數(shù)據(jù)寫(xiě)入至高速數(shù)字I/O模塊。于是,在多核的系統(tǒng)下, LabVIEW能夠自動(dòng)地將上面的程序結(jié)構(gòu)中獨(dú)立運(yùn)行的的不同循環(huán)分配在不同的處理器上,同時(shí),還可以根據(jù)CPU的運(yùn)行情況將中間循環(huán)中四個(gè)數(shù)據(jù)塊的信號(hào)處理任務(wù)也分配在不同的處理器上,實(shí)現(xiàn)了在多核處理器環(huán)境下的性能改進(jìn)。
并行處理算法改善了多核CPU的處理器利用率。事實(shí)上,總吞吐量取決于兩個(gè)因素,處理器利用率和總線傳輸速度。通常,CPU和數(shù)據(jù)總線在處理大數(shù)據(jù)塊時(shí)工作效率最高。而且,我們可以進(jìn)一步使用具有更快傳輸速度的PXI(PCI) Express儀器,來(lái)減小數(shù)據(jù)傳輸時(shí)間。
利用NI強(qiáng)大的并行性計(jì)算的優(yōu)勢(shì)以及PCIe高速數(shù)據(jù)流傳輸加上Intel的多核技術(shù),在DELL的PowerEdge 2950八核處理器上,以10KHz(2.56MB/s)的速率同步采樣并處理128個(gè)通道的數(shù)據(jù),NI幫助ASDEX Tokamak——德國(guó)最先進(jìn)的核聚變裝置,完成了“不可能完成的任務(wù)”——為了保證Tokamak裝置中等離子體的高速穩(wěn)定的運(yùn)轉(zhuǎn),將其裝置外壁上的88個(gè)磁感應(yīng)器上的大量數(shù)據(jù)轉(zhuǎn)換成64*128個(gè)點(diǎn)格上的偏微分方程組,并同時(shí)在短短的1ms內(nèi)完成了整個(gè)計(jì)算過(guò)程!
正如德國(guó)開(kāi)發(fā)負(fù)責(zé)人Dr. Louis Giannone所說(shuō)的:
“利用LabVIEW編程所完成的并行化應(yīng)用控制,我們?cè)?核機(jī)器上將速度提高了5倍,使得我們成功達(dá)到1ms閉環(huán)控制速率的要求!”。
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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