SMP和MPP的優缺點


SMP的全稱是"對稱多處理"(Symmetrical Multi-Processing)技術,是指在一個計算機上匯集了一組處理器(多CPU),各CPU之間共享內存子系統以及總線結構。它是相對非對稱多處理技術而言的、應用十分廣泛的並行技術。在這種架構中,一台電腦不再由單個CPU組成,而同時由多個處理器運行操作系統的單一復本,並共享內存和一台計算機的其他資源。雖然同時使用多個CPU,但是從管理的角度來看,它們的表現就像一台單機一樣。系統將任務隊列對稱地分布於多個CPU之上,從而極大地提高了整個系統的數據處理能力。所有的處理器都可以平等地訪問內存、I/O和外部中斷。在對稱多處理系統中,系統資源被系統中所有CPU共享,工作負載能夠均勻地分配到所有可用處理器之上。

    在國內市場上這類機型的處理器一般以4個或8個為主,有少數是16個處理器。但是一般來講,SMP結構的機器可擴展性較差,很難做到100個以上多處理器,常規的一般是8個到16個,不過這對於多數的用戶來說已經夠用了。這種機器的好處在於它的使用方式和微機或工作站的區別不大,編程的變化相對來說比較小,原來用微機工作站編寫的程序如果要移植到SMP機器上使用,改動起來也相對比較容易。SMP結構的機型可用性比較差。因為4個或8個處理器共享一個操作系統和一個存儲器,一旦操作系統出現了問題,整個機器就完全癱瘓掉了。而且由於這個機器的可擴展性較差,不容易保護用戶的投資。但是這類機型技術比較成熟,相應的軟件也比較多,因此現在國內市場上推出的並行機大量都是這一種。PC服務器中最常見的對稱多處理系統通常采用2路、4路、6路或8路處理器。目前UNIX服務器可支持最多64個CPU的系統,如Sun公司的產品Enterprise 10000。SMP系統中最關鍵的技術是如何更好地解決多個處理器的相互通訊和協調問題。

    要組建SMP系統,首先最關鍵的一點就是需要合適的CPU相配合。我們平時看到的CPU都是單顆使用,所以看不出來它們有什么區別,但是,實際上,支持SMP功能並不是沒有條件的,隨意拿幾塊CPU來就可以建立多處理系統那簡直是天方夜談。要實現SMP功能,我們使用的CPU必須具備以下要求:

    1、CPU內部必須內置APIC(Advanced Programmable Interrupt Controllers)單元。Intel 多處理規范的核心就是高級可編程中斷控制器(Advanced Programmable Interrupt Controllers--APICs)的使用。CPU通過彼此發送中斷來完成它們之間的通信。通過給中斷附加動作(actions),不同的CPU可以在某種程度上彼此進行控制。每個CPU有自己的APIC(成為那個CPU的本地APIC),並且還有一個I/O APIC來處理由I/O設備引起的中斷,這個I/O APIC是安裝在主板上的,但每個CPU上的APIC則不可或缺,否則將無法處理多CPU之間的中斷協調。
    2、相同的產品型號,同樣類型的CPU核心。例如,雖然Athlon和Pentium III各自都內置有APIC單元,想要讓它們一起建立SMP系統是不可能的,當然,即使是Celeron和Pentium III,那樣的可能性也為0,甚至Coppermine核心的Pentium III和Tualatin的Pentium III也不能建立SMP系統--這是因為他們的運行指令不完全相同,APIC中斷協調差異也很大。
    3、完全相同的運行頻率。如果要建立雙Pentium III系統,必須兩顆866MHz或者兩顆1000MHz處理器,不可以用一顆866MHz,另一顆1000MHz來組建,否則系統將無法正常點亮。
    4、盡可能保持相同的產品序列編號。即使是同樣核心的相同頻率處理器,由於生產批次不同也會造成不可思議的問題。兩個生產批次的CPU作為雙處理器運行的時候,有可能會發生一顆CPU負擔過高,而另一顆負擔很少的情況,無法發揮最大性能,更糟糕的是可能導致死機,因此,應該盡可能選擇同一批生產的處理器來組建SMP系統。

MPP (Massively Parallel Processing),大規模並行處理系統,這樣的系統是由許多松耦合的處理單元組成的,要注意的是這里指的是處理單元而不是處理器。每個單元內的CPU都有自己私有的資源,如總線,內存,硬盤等。在每個單元內都有操作系統和管理數據庫的實例復本。這種結構最大的特點在於不共享資源。

 

--------------------------------------------------------------------------------


        既然有兩種結構,那它們各有什么特點呢?采用什么結構比較合適呢?通常情況下,MPP系統因為要在不同處理單元之間傳送信息,所以它的效率要比SMP要差一點,但是這也不是絕對的,因為MPP系統不共享資源,因此對它而言,資源比SMP要多,當需要處理的事務達到一定規模時,MPP的效率要比SMP好。這就是看通信時間占用計算時間的比例而定,如果通信時間比較多,那MPP系統就不占優勢了,相反,如果通信時間比較少,那MPP系統可以充分發揮資源的優勢,達到高效率。當前使用的OTLP程序中,用戶訪問一個中心數據庫,如果采用SMP系統結構,它的效率要比采用MPP結構要快得多。而MPP系統在決策支持和數據挖掘方面顯示了優勢,可以這樣說,如果操作相互之間沒有什么關系,處理單元之間需要進行的通信比較少,那采用MPP系統就要好,相反就不合適了。

        對於SMP來說,制約它速度的一個關鍵因素就是那個共享的總線,因此對於DSS程序來說,只能選擇MPP,而不能選擇SMP,當大型程序的處理要求大於共享總線時,總線就沒有能力進行處理了,這時SMP系統就不行了。當然了,兩個結構互有優缺點,如果能夠將兩種結合起來取長補短,當然最好了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM