色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

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

          —— LabVIEW Fitting for Multi-Core Times
          作者:周斌 NI技術(shù)市場工程師 時間:2008-09-19 來源:電子產(chǎn)品世界 收藏

          摘要:本文主要介紹了專門針對應(yīng)用而優(yōu)化的全新軟件,并詳細介紹其開發(fā)優(yōu)勢。

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

          關(guān)鍵詞:;;

          時代的編程挑戰(zhàn)

            眾所周知,由于對芯片功率和熱效應(yīng)的制約,以往單純通過提高主頻來提高處理器運行速度的做法已經(jīng)不再可行,一個新的架構(gòu)已經(jīng)逐漸成型,那就是多核。

            多核時代的來臨已成為主流的發(fā)展趨勢,在2006年的Intel開發(fā)者論壇上,Intel的CEO Paul Otellini向全世界展示了一個80核的原型,它可以在一秒內(nèi)處理數(shù)以千兆字節(jié)的數(shù)據(jù),那是非常驚人的處理能力,并且Intel希望在5年內(nèi)將其推入消費市場。

            然而,這對于工程師和程序員們來說,意味著什么呢?

            在以往,程序開發(fā)人員們只需換上一塊更高計算性能的處理器,就可以在無需任何代碼修改的情況下,自動加快了每一行代碼的執(zhí)行速度。然而在如今的多核時代,這樣的“免費午餐”已經(jīng)結(jié)束了。如圖1所示,即使是在一個4核處理器上,如果其應(yīng)用只是單線程的話,操作系統(tǒng)仍舊會將所有的任務(wù)分配到其中一個核上運行,導(dǎo)致多核處理器無法得到充分的利用。因此,為了充分利用多核處理器,需要有新的編程方法。

           


          圖1 單線程編程無法充分利用多核處理器

            而這恰恰是一個巨大的編程挑戰(zhàn),針對這個問題,比爾蓋茨也說過:“要想充分利用并行工作的處理器威力,……軟件必須能夠處理并發(fā)性問題。但正如任何一位編寫過多線程代碼的開發(fā)者告訴你的那樣,這是編程領(lǐng)域最艱巨的任務(wù)之一。”

            總體而言,多核處理器編程存在以下幾大難點:首先是并行的思考方式,比如要分辨出哪些任務(wù)是可以同時執(zhí)行的,這并不是一件容易的事情,尤其對于習(xí)慣于順序結(jié)構(gòu)編程的開發(fā)人員來說,思考方式的轉(zhuǎn)變往往需要花相當長的一段時間。

            其次是線程的創(chuàng)建和管理。開發(fā)人員把任務(wù)劃分成多個并行步驟之后,就要通過線程的方式來編程實現(xiàn)。事實上,多線程編程是相當困難的,很多傳統(tǒng)的編程語言都需要一組新的函數(shù)或結(jié)構(gòu)來創(chuàng)建、同步、加解鎖線程,這意味著工作量的增加。例如用C++寫一個多線程的程序,程序員就必須要非常熟悉C++,了解如何將C++程序分成多個線程和任務(wù)間并發(fā)的同步,此外還要了解Windows多線程的機制,熟悉Windows API的調(diào)用方法,或者MFC的架構(gòu)等等;在C++上調(diào)試多線程程序,更是被許多程序員視為噩夢。

            最后,開發(fā)人員還需要自己考慮并行代碼段之間哪些資源是不能共享的,比如文件、內(nèi)存、硬件等等,否則會導(dǎo)致資源的沖突和爭奪,使得并行線程因等待資源而暫停甚至死鎖。

            以往基于文本的編程語言,由于其自身是一種順序的編程模式,因此在對待時顯得有些力不從心。雖然對于一些學(xué)習(xí)計算機編程或軟件工程的專業(yè)開發(fā)人員來講,使用文本語言在一個雙核處理器中開發(fā)機制可能還不足以被難倒的話,那么當Intel推出80核處理器之后,其編程的復(fù)雜度相信任何開發(fā)人員都無法應(yīng)付。因此,工程師和開發(fā)人員們都期待著一種更高效、更具創(chuàng)新的并行編程工具,能夠協(xié)助他們順利迎接多核時代的到來。

          — 天生并行的編程語言

            LabVIEW就是這樣一種馳騁多核技術(shù)時代的編程語言,可以幫助開發(fā)人員高效地享用多核技術(shù)所帶來的益處。

            LabVIEW是一個基于數(shù)據(jù)流的圖形化開發(fā)平臺,它提供了直觀的圖形化編程方式和用戶界面。與傳統(tǒng)的文本編程相比,LabVIEW天生就是一種并行結(jié)構(gòu)的編程語言?;贚abVIEW的數(shù)據(jù)流特性,如果連線中存在著分支,或者是框圖中有著并行序列,那么后臺的LabVIEW執(zhí)行器就將自動地實現(xiàn)并行化運行,這種在計算機科學(xué)術(shù)語中叫做“潛在并行化”(圖2)。例如,我們在LabVIEW下創(chuàng)建了多個循環(huán),那么相對應(yīng)的也就創(chuàng)建了數(shù)個新的執(zhí)行線程,從而這些并行循環(huán)就會自動分配成多個線程分到多個處理核上,讓LabVIEW開發(fā)人員享受到了多核處理器的性能優(yōu)勢。

           


          圖2 LabVIEW本身就是自動多線程的編程語言

            從單核到雙核的處理器,理論上來說,獲得的運算性能可以達到原先的兩倍。但是,與這個極限值的接近程度取決于用戶應(yīng)用程序并行化運行的程度。使用LabVIEW,我們就可以方便地實現(xiàn)應(yīng)用程序性能的改進,通過最少的編程調(diào)整,并行應(yīng)用便可以獲益于多核處理器。對于普通的LabVIEW應(yīng)用程序而言,如果不考慮多核編程技巧,在不改寫代碼的情況下,與最初的基準程序相比,可以獲得25%到35%性能上的提升,這也就意味著“免費的午餐”還沒有結(jié)束。

            下面我們來看圖3的簡單例子。其中LabVIEW代碼中的分支簡化了兩個分析任務(wù) ——濾波操作和快速傅立葉變換(FFT),使它們可以在雙核機器上并行化執(zhí)行。首先程序在單核的模式下(關(guān)閉其中一個核)運行一次,然后在雙核模式下運行。從圖中可以看到,由于兩項任務(wù)的計算量都很高,因此利用任務(wù)并行化獲得的性能改進為原先的1.8倍。

           


          圖3 LabVIEW數(shù)據(jù)流編程的并行特性

            Windows操作系統(tǒng)是自動將線程分配到不同的核上,那么對于某些應(yīng)用,如果有一個對時間要求非常高的線程,那么是否有辦法能夠保證它執(zhí)行的確定性呢?

            使用LabVIEW 就可以很好地解決這個問題,從而獲得對于多核處理器更多的控制權(quán)。在 LabVIEW中,工程師可以根據(jù)自身需求手動設(shè)置線程運行在特定的核上,例如將時間要求苛刻的采集與控制任務(wù)放在單獨的核上運行,而將對確定性要求不高的界面響應(yīng)、數(shù)據(jù)記錄等任務(wù)放在另外一個核上運行(圖4)。值得一提的是,實現(xiàn)這樣的操作非常簡單,就像放一個LabVIEW循環(huán)一樣,只需放置一個定時循環(huán)(Timed Loop),再分配那個循環(huán)到指定的核上即可。

           


          圖4 LabVIEW 允許用戶手動分配線程在指定的核上運行

            作為一個典型的多核應(yīng)用案例,德國的Max Planck研究院要實現(xiàn)針對核聚變能源的受控?zé)岷朔磻?yīng)裝置的等離子控制,這種高速控制需要將88個磁感應(yīng)器上的大量數(shù)據(jù)轉(zhuǎn)換為64×128個點格上的偏微分方程組,并要在短短的1ms內(nèi)完成整個計算過程。最終他們使用LabVIEW在一個8核的系統(tǒng)上采用并行技術(shù),將整個系統(tǒng)的運算速度提高了5倍,成功地達到了1ms閉環(huán)控制速率的要求,完成了這個“不可能的任務(wù)”。

          基于LabVIEW的并行編程

            LabVIEW自身所具有的并行特性使得開發(fā)人員可以不用花過多的時間放在多線程的創(chuàng)建、管理、同步、調(diào)試等底層實現(xiàn)過程上,而可以將主要精力聚焦在整個并行程序的高層架構(gòu)上,這是能否高效利用多核處理器技術(shù)的關(guān)鍵所在。

            本節(jié)中將簡單介紹針對多核的三種常用編程方式及其在LabVIEW下的實現(xiàn)方式。


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

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

          關(guān)閉