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必須具有如下要求:服務器

    一、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之間的中斷協調。
    二、相同的產品型號,一樣類型的CPU核心。例如,雖然Athlon和Pentium III各自都內置有APIC單元,想要讓它們一塊兒創建SMP系統是不可能的,固然,即便是Celeron和Pentium III,那樣的可能性也爲0,甚至Coppermine核心的Pentium III和Tualatin的Pentium III也不能創建SMP系統--這是由於他們的運行指令不徹底相同,APIC中斷協調差別也很大。
    三、徹底相同的運行頻率。若是要創建雙Pentium III系統,必須兩顆866MHz或者兩顆1000MHz處理器,不能夠用一顆866MHz,另外一顆1000MHz來組建,不然系統將沒法正常點亮。
    四、儘量保持相同的產品序列編號。即便是一樣核心的相同頻率處理器,因爲生產批次不一樣也會形成難以想象的問題。兩個生產批次的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系統就不行了。固然了,兩個結構互有優缺點,若是可以將兩種結合起來取長補短,固然最好了。事務

相關文章
相關標籤/搜索