如何利用多核PC技術(shù)進(jìn)行圖形編程?
在PC行業(yè),多核處理正在引起相當大的反響,很大程度上是因為Intel和 AMD兩家公司都各自發(fā)布了其首款多核處理器。這些首款多核處理器都是在一個(gè)物理處理器中包含有兩個(gè)核,或者計算引擎,因此命名為雙核處理器。具有兩個(gè)以上核的處理器也即將面市。
本文引用地址:http://dyxdggzs.com/article/194464.htm多核與多處理器
多處理器系統多年前已經(jīng)出現,它與多核系統的主要區別是多核系統只有一個(gè)物理處理器,這個(gè)物理處理器包含兩個(gè)或更多個(gè)核,而多處理器系統有兩個(gè)或更多個(gè)物理處理器。多核系統也共享計算資源,在多處理器系統中這些資源常常是被復制的,如L2高速緩存和前端總線(xiàn)。多核系統與多處理器系統性能相似,但成本常常要低得多,原因是多核處理器比多個(gè)相同的單個(gè)處理器價(jià)格要低,也不需要支持多個(gè)處理器的母板,如多處理器插頭。
多任務(wù)
像多處理器系統一樣,多核系統能同時(shí)執行多個(gè)計算任務(wù)。這一點(diǎn)在如Windows XP多任務(wù)操作系統(OS)中很有利,此時(shí)可以同時(shí)運行多個(gè)應用程序。多任務(wù)指OS在兩個(gè)任務(wù)間快速切換的能力,表面上看,這些任務(wù)同時(shí)執行。當運行在多核系統上時(shí),多任務(wù)OS能真正同時(shí)執行多個(gè)任務(wù),而不只是表面上看起來(lái)是。例如,在雙核系統上,兩個(gè)應用——如National Instruments LabVIEW 和Microsoft Excel,各自都能同時(shí)訪(fǎng)問(wèn)一個(gè)獨立的處理器核,因此,提高了如進(jìn)行數據記錄的應用程序的整體性能。

圖1:雙核系統可實(shí)現多任務(wù)操作系統,如Windows XP,真正同時(shí)執行兩個(gè)任務(wù)。
多線(xiàn)程
多線(xiàn)程將多任務(wù)思想延伸到應用程序,所以可以將一個(gè)單獨應用程序內的具體操作分成具體線(xiàn)程,各線(xiàn)程都能并行運行。這樣,OS就不僅能在不同應用程序間,也可在一個(gè)應用程序的每個(gè)線(xiàn)程間劃分處理時(shí)間。在多線(xiàn)程NI LabVIEW程序中,例如一個(gè)應用程序可分為3個(gè)線(xiàn)程:1個(gè)用戶(hù)接口線(xiàn)程、1個(gè)數據采集線(xiàn)程和1個(gè)分析線(xiàn)程??梢越o這些線(xiàn)程分配優(yōu)先權,各自獨立運行。因此,在多線(xiàn)程應用程序中,多任務(wù)能與正在其他系統上運行的其他應用程序一起并行進(jìn)行。
采用多線(xiàn)程的應用優(yōu)點(diǎn)很多,包括CPU使用效率更高,系統可靠性更高,多核系統的性能得到提高。
更高效地使用CPU
在很多應用程序中,資源可以同時(shí)調用,如在儀器中。完成這種調用常常需要花費很長(cháng)時(shí)間。在單線(xiàn)程應用中,同步調用有效阻止或防止了應用程序內的任何其他任務(wù)的執行,直到該調用完成。多線(xiàn)程避免了這種情況的發(fā)生。當一個(gè)線(xiàn)程出現同步調用時(shí),其他不依賴(lài)此調用的程序部分在其他線(xiàn)程下運行。應用程序繼續執行,而不是等到此同步調用完成后再繼續執行。這樣,如果應用程序的任何一個(gè)線(xiàn)程準備運行,則CPU都可運行該線(xiàn)程,所以,多線(xiàn)程應用最大程度提高了CPU效率。
系統可靠性更高
通過(guò)將應用程序分成不同的執行線(xiàn)程,可以避免次要操作影響最重要操作的執行。最常見(jiàn)的例子是用戶(hù)接口可能對時(shí)間更關(guān)鍵的操作的影響。屏幕更新或響應用戶(hù)事件經(jīng)常會(huì )降低應用程序的執行速度。給用戶(hù)接口線(xiàn)程賦予的優(yōu)先權比其他對時(shí)間要求更關(guān)鍵的操作事件的優(yōu)先權要低些,就能保證用戶(hù)接口操作不會(huì )阻止CPU執行更重要的操作,如采集數據或過(guò)程控制。
提高多核系統的性能
多線(xiàn)程最誘人的優(yōu)點(diǎn)之一是可以利用多核系統完備的計算能力。在幾個(gè)線(xiàn)程都同時(shí)準備運行的多線(xiàn)程應用程序中,每個(gè)核可以運行不同的線(xiàn)程,應用程序實(shí)現了真正的并行任務(wù)執行。這樣不僅增強了前面討論的CPU使用效率更高和系統可靠性更高這兩個(gè)優(yōu)點(diǎn),而且使性能得到徹底提高。
圖形編程的優(yōu)點(diǎn)
根據定義,虛擬儀器有助于利用PC業(yè)的每一個(gè)創(chuàng )新。多核處理也一樣。開(kāi)發(fā)能充分利用多核處理器計算能力的軟件時(shí),就需要本質(zhì)上具備并行性的開(kāi)發(fā)工具。由于其順序特征,如C 和C++這種基于文本的編程語(yǔ)言就要求調用函數,有計劃地產(chǎn)生和管理線(xiàn)程。同時(shí),由于文本語(yǔ)言的順序的、一行接一行的特點(diǎn),如何使不同代碼部分的并行運行可視化常常很困難。
相比之下,像LabVIEW一類(lèi)的圖形編程環(huán)境可方便地表示并行過(guò)程,這是因為數據流本來(lái)就是并行的。在圖形環(huán)境下并行代碼的執行進(jìn)行可視化更容易,在這種環(huán)境下,圖形代碼的兩個(gè)并行執行路徑并行放置。LabVIEW代碼也天生就是多線(xiàn)程。LabVIEW能識別程序中的多線(xiàn)程機會(huì ),由執行系統處理多線(xiàn)程實(shí)現和通信。例如,兩個(gè)沒(méi)有任何依賴(lài)關(guān)系而運行的獨立環(huán)在各自的線(xiàn)程內自動(dòng)執行。當在多核系統中執行LabVIEW代碼時(shí),多線(xiàn)程在多個(gè)處理器核上運行,而不需用戶(hù)進(jìn)行任何干預。

圖2: LabVIEW中圖形編程的并行特點(diǎn)自動(dòng)實(shí)現多線(xiàn)程,這些多線(xiàn)程在多核處理器上運行,而不需用戶(hù)進(jìn)行任何干預。
評論