技術(shù)白皮書(shū):多核系統(tǒng)編程技術(shù)
LabVIEW——一種圖形化數(shù)據(jù)流式編程語(yǔ)言
在LabVIEW中開(kāi)發(fā)應(yīng)用程序的主要優(yōu)勢(shì)是這種語(yǔ)言有著直觀、圖形化的特點(diǎn)。在LabVIEW中,用戶解決工程問(wèn)題就像是在紙上畫(huà)框圖一樣。現(xiàn)代多核處理器技術(shù)使得LabVIEW成為一種更適合的編程工具,因?yàn)樗兄⑿谢磉_(dá)和執(zhí)行任務(wù)的能力。
LabVIEW的數(shù)據(jù)流特性使得如果連線中存在著分支,或者是框圖中存在并行序列,那么LabVIEW執(zhí)行機(jī)構(gòu)會(huì)嘗試著并行的執(zhí)行程序。在計(jì)算機(jī)科學(xué)術(shù)語(yǔ)中,這稱(chēng)為“潛在的并行化”,因?yàn)槟悴恍枰鶕?jù)并行運(yùn)行的需要明確地編寫(xiě)并行代碼,編程語(yǔ)言自己會(huì)進(jìn)行一定程度的并行化。
從單核到雙核計(jì)算機(jī),理論上講,獲得的性能應(yīng)該是原來(lái)的兩倍。但是,與這個(gè)極限接近的程度取決于用戶應(yīng)用程序運(yùn)行的并行化程度。LabVIEW程序員們可以很方便的以并行方式來(lái)表示他們的解決方案。對(duì)于普通的LabVIEW應(yīng)用程序而言,如果不考慮多核心編程技術(shù),在不改寫(xiě)代碼的情況下,與最初的程序相比,可以獲得25%到35%的性能提升,這都是緣于普通LabVIEW程序所具有的并行特性。
圖2是一個(gè)簡(jiǎn)單的應(yīng)用程序的例子。其中,LabVIEW代碼中的分支簡(jiǎn)化了兩個(gè)分析任務(wù)——一個(gè)濾波器操作和一個(gè)快速傅立葉變換(FFT),使它們可以在雙核機(jī)器上并行執(zhí)行。在圖表中沒(méi)有顯示的性能測(cè)試代碼,它首先在單核模式下(關(guān)掉其中的一個(gè)核)運(yùn)行“for loop”一次,然后在雙核的模式下運(yùn)行。因?yàn)檫@兩項(xiàng)任務(wù)都是計(jì)算量很高的,利用任務(wù)并行化獲得的性能改進(jìn)為原來(lái)的1.8倍。
評(píng)論