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