利用多核PC技術進行圖形編程
發布時間:2008/6/16 0:00:00 訪問次數:464
多核與多處理器
多處理器系統多年前已經出現,它與多核系統的主要區別是多核系統只有一個物理處理器,這個物理處理器包含兩個或更多個核,而多處理器系統有兩個或更多個物理處理器。多核系統也共享計算資源,在多處理器系統中這些資源常常是被復制的,如l2高速緩存和前端總線。多核系統與多處理器系統性能相似,但成本常常要低得多,原因是多核處理器比多個相同的單個處理器價格要低,也不需要支持多個處理器的母板,如多處理器插頭。
多任務
像多處理器系統一樣,多核系統能同時執行多個計算任務。這一點在如windows xp多任務操作系統(os)中很有利,此時可以同時運行多個應用程序。多任務指os在兩個任務間快速切換的能力,表面上看,這些任務同時執行。當運行在多核系統上時,多任務os能真正同時執行多個任務,而不只是表面上看起來是。例如,在雙核系統上,兩個應用——如national instruments labview 和microsoft excel,各自都能同時訪問一個獨立的處理器核,因此,提高了如進行數據記錄的應用程序的整體性能。
圖1:雙核系統可實現多任務操作系統,如windows xp,真正同時執行兩個任務。 |
多線程
多線程將多任務思想延伸到應用程序,所以可以將一個單獨應用程序內的具體操作分成具體線程,各線程都能并行運行。這樣,os就不僅能在不同應用程序間,也可在一個應用程序的每個線程間劃分處理時間。在多線程ni labview程序中,例如一個應用程序可分為3個線程:1個用戶接口線程、1個數據采集線程和1個分析線程。可以給這些線程分配優先權,各自獨立運行。因此,在多線程應用程序中,多任務能與正在其他系統上運行的其他應用程序一起并行進行。
采用多線程的應用優點很多,包括cpu使用效率更高,系統可靠性更高,多核系統的性能得到提高。
更高效地使用cpu
在很多應用程序中,資源可以同時調用,如在儀器中。完成這種調用常常需要花費很長時間。在單線程應用中,同步調用有效阻止或防止了應用程序內的任何其他任務的執行,直到該調用完成。多線程避免了這種情況的發生。當一個線程出現同步調用時,其他不依賴此調用的程序部分在其他線程下運行。應用程序繼續執行,而不是等到此同步調用完成后再繼續執行。這樣,如果應用程序的任何一個線程準備運行,則cpu都可運行該線程,所以,多線程應用最大程度提高了cpu效率。
系統可靠性更高
通過將應用程序分成不同的執行線程,可以避免次要操作影響最重要操作的執行。最常見的例子是用戶接口可能對時間更關鍵的操作的影響。屏幕更新或響應用戶事件經常會降低應用程序的執行速度。給用戶接口線程賦予的優先權比其他對時間要求更關鍵的操作事件的優先權要低些,就能保證用戶接口操作不會阻止cpu執行更重要的操作,如采集數據或過程控制。
提高多核系統的性能
多線程最誘人的優點之一是可以利用多核系統完備的計算能力。在幾個線程都同時準備運行的多線程應用程序中,每個核可以運行不同的線程,應用程序實現了真正的并行任務執行。這樣不僅增強了前面討論的cpu使用效率更高和系統可靠性更高這兩個優點,而且使性能得到徹底提高。
圖形編程的優點
根據定義,虛擬儀器有助于利用pc業的每一個創新。多核處理也一樣。開發能充分利用多核處理器計算能力的軟件時,就需要本質上具備并行性的開發工具。由于其順序特征,如c 和c++這種基于文本的編程語言就要求調用函數,有計劃地產生和管理線程。同時,由于文本語言的順序的、一行接一行的特點,如何使不同代碼部分的并行運行可視化常常很困難。
相比之下,像labview一類的圖形編程環境可方便地表示并行過程,這是因為數據流本來就是并行的。在圖形環境下并行代碼的執行進行可視化更容易,在這種環境下,圖形代碼的兩個并行執行路徑并行放置。labview代碼也天生就是多線程。labview能識別程序中的多線程機會,由執行系統處理多線程實現和通信。例如,兩個沒有任何依賴關系而運行的獨立環在各自的線程內自動執行。當在多核系統中執行labview代碼時,多線程在多個處理器核上運行,而不需用戶進行任何干預。
圖1:雙核系統可實現多任務操作系統,如windows xp,真正同時執行兩個任務。 |
多線程
多線程將多任務思想延伸到應用程序,所以可以將一個單獨應用程序內的具體操作分成具體線程,各線程都能并行運行。這樣,os就不僅能在不同應用程序間,也可在一個應用程序的每個線程間劃分處理時間。在多線程ni labview程序中,例如一個應用程序可分為3個線程:1個用戶接口線程、1個數據采集線程和1個分析線程。可以給這些線程分配優先權,各自獨立運行。因此,在多線程應用程序中,多任務能與正在其他系統上運行的其他應用程序一起并行進行。
采用多線程的應用優點很多,包括cpu使用效率更高,系統可靠性更高,多核系統的性能得到提高。
更高效地使用cpu
在很多應用程序中,資源可以同時調用,如在儀器中。完成這種調用常常需要花費很長時間。在單線程應用中,同步調用有效阻止或防止了應用程序內的任何其他任務的執行,直到該調用完成。多線程避免了這種情況的發生。當一個線程出現同步調用時,其他不依賴此調用的程序部分在其他線程下運行。應用程序繼續執行,而不是等到此同步調用完成后再繼續執行。這樣,如果應用程序的任何一個線程準備運行,則cpu都可運行該線程,所以,多線程應用最大程度提高了cpu效率。
系統可靠性更高
通過將應用程序分成不同的執行線程,可以避免次要操作影響最重要操作的執行。最常見的例子是用戶接口可能對時間更關鍵的操作的影響。屏幕更新或響應用戶事件經常會降低應用程序的執行速度。給用戶接口線程賦予的優先權比其他對時間要求更關鍵的操作事件的優先權要低些,就能保證用戶接口操作不會阻止cpu執行更重要的操作,如采集數據或過程控制。
提高多核系統的性能
多線程最誘人的優點之一是可以利用多核系統完備的計算能力。在幾個線程都同時準備運行的多線程應用程序中,每個核可以運行不同的線程,應用程序實現了真正的并行任務執行。這樣不僅增強了前面討論的cpu使用效率更高和系統可靠性更高這兩個優點,而且使性能得到徹底提高。
圖形編程的優點
根據定義,虛擬儀器有助于利用pc業的每一個創新。多核處理也一樣。開發能充分利用多核處理器計算能力的軟件時,就需要本質上具備并行性的開發工具。由于其順序特征,如c 和c++這種基于文本的編程語言就要求調用函數,有計劃地產生和管理線程。同時,由于文本語言的順序的、一行接一行的特點,如何使不同代碼部分的并行運行可視化常常很困難。
相比之下,像labview一類的圖形編程環境可方便地表示并行過程,這是因為數據流本來就是并行的。在圖形環境下并行代碼的執行進行可視化更容易,在這種環境下,圖形代碼的兩個并行執行路徑并行放置。labview代碼也天生就是多線程。labview能識別程序中的多線程機會,由執行系統處理多線程實現和通信。例如,兩個沒有任何依賴關系而運行的獨立環在各自的線程內自動執行。當在多核系統中執行labview代碼時,多線程在多個處理器核上運行,而不需用戶進行任何干預。