<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > LabVIEW馳騁多核技術(shù)時(shí)代

LabVIEW馳騁多核技術(shù)時(shí)代

作者:周斌 NI技術(shù)市場(chǎng)工程師 時(shí)間:2008-09-19 來(lái)源:電子產(chǎn)品世界 收藏

  任務(wù)并行化(Task Parallelism)

本文引用地址:http://dyxdggzs.com/article/88205.htm

  將整個(gè)程序分成多個(gè)線(xiàn)程來(lái)并發(fā)運行,是的一個(gè)基本理念,那么通常一個(gè)程序都會(huì )由幾個(gè)子任務(wù)組成,例如在某個(gè)測試測量程序中,就可以分為模擬采集和數字輸出兩個(gè)任務(wù),那么如果我們將這些獨立的任務(wù)并發(fā)地執行在處理器中,那么就自動(dòng)提高了運行的效率。這種將獨立的幾個(gè)任務(wù)在程序中并發(fā)執行的方法,就叫做任務(wù)并行化。

  對于任務(wù)并行化,如何合理地去實(shí)現任務(wù)分配是需要解決的問(wèn)題。首先,我們可以將本身就互相獨立的任務(wù)分配在不同線(xiàn)程中,如上例所提到的模擬采集與數字輸出任務(wù),之間就沒(méi)有任何的數據連接,因此在中我們就可以并行地將代碼放在程序框圖中,不需要添加任何其他代碼,如圖5所示。

 


圖5 對獨立任務(wù)自動(dòng)實(shí)現“任務(wù)并行化”

  此外,編程中常見(jiàn)的生產(chǎn)者—消費者循環(huán)也是一種任務(wù)并行化,在下我們可以將生產(chǎn)者(讀取數據)與消費者(分析數據)分成并行的兩個(gè)任務(wù),任務(wù)之間的數據交互可以使用隊列結構(Queue)來(lái)實(shí)現,如圖6所示。

 


圖6 生產(chǎn)者—消費者模型實(shí)現任務(wù)并行

  數據并行化(Data Parallelism)

  除了可以將程序任務(wù)進(jìn)行并行化之外,對于一些海量數據的處理分析,我們還可以將數據分成幾個(gè)可并行操作的小數據集,然后分別在各個(gè)核上實(shí)現,最后將結果整合起來(lái)作為整體數據集的處理分析結果,這種方式稱(chēng)為數據并行化。

  如圖7(a)所示,一個(gè)大的數據集僅僅在一個(gè)核上進(jìn)行處理和運算,當核1在處理數據時(shí),其它的三個(gè)CPU核都處在閑置狀態(tài),整個(gè)系統的運行效率很低。

  那么,使用了數據并行化之后,如圖7(b),之前的大數據集被分割成4個(gè)小數據集,并將它們在各自的核上進(jìn)行處理運算,最終再將各自的運算結果整合起來(lái)作為大數據集的處理結果。經(jīng)過(guò)了數據并行化之后,整個(gè)系統的運算效率有了直線(xiàn)的提升。

 


(a)

(b)
圖7 數據并行化

  與“任務(wù)并行化”類(lèi)似,在LabVIEW下實(shí)現“數據并行化”也相當的直觀(guān)與方便,圖8就顯示了一個(gè)矩陣相乘的代碼,程序中將兩個(gè)大矩陣各自分割成小矩陣進(jìn)行相乘,最 后再整合起來(lái),僅僅這樣一個(gè)簡(jiǎn)單的改變就可以在一個(gè)雙核處理器上得到0.9倍的性能提高。

 


圖8  LabVIEW矩陣相乘的數據并行化

  流水線(xiàn)式(Pipeline)

  流水線(xiàn),顧名思義,就是指將一系列的任務(wù)分割成固定的幾個(gè)步驟,然后按照裝配線(xiàn)的方式來(lái)執行。

  我們以一個(gè)最簡(jiǎn)單的汽車(chē)裝配線(xiàn)為例,一輛車(chē)的裝配完成需要3個(gè)步驟:底盤(pán)安裝、零件安裝以及上漆。如果每個(gè)步驟都需要花費1個(gè)小時(shí)的話(huà),那么如果一次就裝配一輛車(chē)的話(huà),我們需要花3個(gè)小時(shí)來(lái)完成(圖9a)。

  那么,如果我們換一種思路,分別對每個(gè)步驟設立一個(gè)工作站(例如工作站1就專(zhuān)門(mén)負責底盤(pán)安裝,以此類(lèi)推,如圖9b)。這樣一來(lái),我們看到,當一輛車(chē)在上漆時(shí),另外一輛車(chē)可能正在進(jìn)行底盤(pán)安裝。通過(guò)這種方式,我們成功實(shí)現了每一個(gè)小時(shí)就能完成一輛車(chē)的裝配,是之前裝配速度的3倍。這個(gè)例子中所說(shuō)的工作站,其實(shí)就可以算作是CPU各個(gè)核,那么通過(guò)這種流水線(xiàn)的操作方式,就可以充分利用技術(shù),大大提高整個(gè)程序的運行速率。        

 


(a)

(b)
圖9  流水線(xiàn)式編程思路

  而在LabVIEW下實(shí)現流水線(xiàn)式編程也是非常方便,圖10就是一個(gè)最簡(jiǎn)單的4個(gè)步驟的流水線(xiàn)式代碼,在一個(gè)For循環(huán)中,并行地執行4個(gè)處理步驟,系統將這并行的4個(gè)步驟放在不同的核上運行,從而起到“工作站”的作用,實(shí)現了流水線(xiàn)式的編程。

 


圖10  LabVIEW下實(shí)現流水線(xiàn)式編程

  綜上所述,任務(wù)并行化、數據并行化以及流水線(xiàn)式是的三種最常用的方式,相對于以往的順序結構,這些編程方式可以在處理器上發(fā)揮更強大的作用,而在LabVIEW下可以很方便地實(shí)現這些編程方式,從而幫助工程師們從多核處理器技術(shù)中得益,提升系統的性能和運算速度。

結語(yǔ)

  隨著(zhù)新一代處理器技術(shù)的日益普遍,工程師與開(kāi)發(fā)人員的一個(gè)必要考慮因素就是他們使用的軟件如何從多核系統中獲得潛在的性能提升。LabVIEW作為天生并行的圖形化編程環(huán)境,可以自動(dòng)將程序多線(xiàn)程化,避免了開(kāi)發(fā)人員繁瑣的底層實(shí)現,將主要精力投入在高層的編程模式上;而作為的三種常用模式(任務(wù)并行化、數據并行化以及流水線(xiàn)式),在LabVIEW下也都能高效地予以實(shí)現。因此,不容置疑的是,隨著(zhù)具有更多核的處理器不斷涌現,LabVIEW將幫助開(kāi)發(fā)人員真正邁入并行,馳騁多核技術(shù)時(shí)代!

參考文獻:

  1.  劉全周,汪看華,張宏偉,基于LabVIEW和PXI的汽車(chē)數字儀表測控系統,電子產(chǎn)品世界,2008.2


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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>