技術(shù)白皮書(shū):多核系統編程技術(shù)
圖2:典型的LabVIEW應用程序,它展示了數據流編程所具有的與生俱來(lái)的并行特性。
基于文本的編程語(yǔ)言如C語(yǔ)言等,在代碼中利用特殊標記來(lái)表示并行化代碼,創(chuàng )建并行任務(wù)(也就是創(chuàng )建獨立的線(xiàn)程)。管理這些多線(xiàn)程的應用程序將是一個(gè)挑戰。
在C語(yǔ)言中,用戶(hù)必須使用鎖操作、互斥量、原子操作和其他高級編程技術(shù)來(lái)管理同步。當多線(xiàn)程變得難于跟蹤調試,通常的編程缺陷便出現了,如下所示:
1. 由于線(xiàn)程太多而導致效率低下。
2. 死鎖——線(xiàn)程一直在等待某些而不能進(jìn)行處理。
3. 競爭狀況- 代碼運行的時(shí)序沒(méi)有被正確管理,在需要數據時(shí),數據不是沒(méi)有準備好就是已經(jīng)被覆蓋掉了。
4. 存儲器沖突——與代碼中存儲器管理相關(guān)的問(wèn)題。
由于使用C語(yǔ)言進(jìn)行開(kāi)發(fā)面臨的這些挑戰,LabVIEW程序員們可以獲得比以往更高的效率。
LabVIEW是利用實(shí)時(shí)SMP支持,處于“Multicore Ready”軟件層的最上層Intel公司定義了用戶(hù)需要評估的四個(gè)軟件層次來(lái)確定多核系統的可用程度。如果所用的應用程序庫和設備驅動(dòng)不是為多核而設計的,或者操作系統不能夠在多個(gè)核心上進(jìn)行負載均衡,那么并行程序在多核心系統上并不會(huì )運行得更快。
評論