並行編程基礎之CPU架構理解 SMP/MPP/NUMA/SMT/CMP

 

集羣架構

l  SMP/MPP/NUMA都是cpu級別的架構,區別是在於訪問內存,I/O和外部中斷等資源方式的不同。SMP是對稱訪問和共享訪問所有資源,MPP是獨立訪問各自資源,完全沒有共享資源,如果是綜合則是NUMA(部分本地內存/部分遠端內存)。這就引起一致性等處理方式不同。

è  一致性

SMP模式:數據一致性是由硬件專門管理的,這樣做比較容易實現,但成本較高。使用了MESI協議處理多個處理器之間的Cache一致性。該協議也被稱爲IllinoisprotocolMESI協議在SMP處理器系統中得到了廣泛的應用。

MPP模式:節點之間的一致性是由軟件來管理,因此,它的速度相對較慢,但成本卻低得多;

NUMA模式:在共享內存時維持高速緩存一致性的開銷非常大(譬如ccNUMA),所以NUMA無法保證系統性能線性增加,譬如8cpu帶來3倍性能提升。Intel提出了另外一種MESI協議的變種,即MESIF協議,由IntelQPI(QuickPath Interconnect)技術引入。主要解決ccNUMA處理器結構的Cache共享一致性問題,這種結構通常使用目錄表,而不使用總線監聽處理Cache的共享一致性。值得注意的是,MESIF協議解決主要的問題是ccNUMA架構中SMP子系統與SMP子系統之間Cache一致性。而在SMP處理器系統中,依然需要使用傳統的MESI協議。Nehelem EX處理器也可以使用MOESI協議進一步優化SMP系統使用的Cache一致性協議,由此可見CMP的某種實現方式就是SMP

è  節點通信

NUMASMP:節點互聯機制是在同一物理服務器內部,NUMA訪問本地內存和SMP訪問互斥內存是必須等待。所以性能無法線性提升。

MPP:節點互聯是在服務器外部實現的,每個節點只訪問本地內存和資源,所以信息交互和節點本身執行可以同時處理,性能是線性的。

l  SMP (Symmetric Multi-Processing),對稱多處理結構的簡稱。是指在一個計算機上彙集了一組處理器(CPU),CPU之間共享內存子系統以及總線結構。在這種技術的支持下,一個服務器系統可以同時運行多個處理器,並共享內存和其他的主機資源。它是相對非對稱多處理技術而言的、應用十分廣泛的並行技術。在這種架構中,雖然同時使用多個CPU,但是從管理的角度來看,它們的表現就像一臺單機一樣。系統將任務隊列對稱地分佈於多個CPU之上,從而極大地提高了整個系統的數據處理能力。所有的處理器都可以平等地訪問內存、I/O和外部中斷。但是一般來講,SMP結構的機器可擴展性較差,所有處理器都共享系統總線,因此當處理器的數目增多時,系統總線的競爭衝突迅速加大,系統總線成爲了性能瓶頸,常規的一般是8個到16個,不過這對於多數的用戶來說已經夠用了。構建一套SMP系統的必要條件是:支持SMP的硬件包括主板和CPU;支持SMP的系統平臺,再就是支持SMP的應用軟件。爲了能夠使得SMP系統發揮高效的性能,操作系統必須支持SMP系統。

l  MPPMPP (Massively ParallelProcessing)大規模並行處理系統,這樣的系統是由許多松耦合的處理單元組成的,要注意的是這裏指的是處理單元而不是處理器。每個單元內的CPU都有自己私有的資源,如總線,內存,硬盤等。在每個單元內都有操作系統和管理數據庫的實例複本。這種結構最大的特點在於不共享資源。節點之間的數據交換需要軟件實施。它的優點是可擴展性非常好;缺點是彼此數據交換困難,需要控制軟件的大量工作來實現通訊以及任務的分配、調度,對於一般的企業應用而言過於複雜,效率不高。廣泛用於數據倉庫,並行計算等。

l  NUMA:Non Uniform Memory Access Achitecture)非一致內存訪問架構。NUMA架構則在某種意義上是綜合了SMPMPP的特點:邏輯上整個系統也是分爲多個節點,每個節點可以訪問本地內存資源,也可以訪問遠程內存資源,但訪問本地內存資源遠遠快於遠程內存資源。它的優點是兼顧了SMPMPP的特點, 易於管理,可擴充性好;缺點是訪問遠程內存資源的所需時間非常的大。Nehalem之後的cpu架構採用的是NUMANUMA-Q廣泛的適用於具有大量I/O計算、商業智能、客戶關係管理、企業資源規劃的環境。

                             

 

l  SMP/CMPSMP是一種ArchitectureCMPchipmulti-processor)是SMP的一種實現方式,SMP中的多CPU的連接方式有很多種,可以通過片內總線,系統總線、網絡,而CMP只是其中的一種方式,它仍然是包含於SMP構架的。There're two architectures to exploit on-chip multithreading, oneSMT, the other  CMP.Furthermore, CMPconsists of two implemntations: SMP(SymmetricMP) and asymmetric MP. In conclusion, when referring to on-chip MT, SMP belongs to CMP.

l  CMP:其實就是多核cpu架構Chip multiprocessors)。是由美國斯坦福大學提出的,其思想是將大規模並行處理器中的SMP(對稱多處理器)集成到同一芯片內,各個處理器並行執行不同的進程。CMP比較, SMT處理器結構的靈活性比較突出。但是,當半導體工藝進入0.18微米以後,線延時已經超過了門延遲,要求微處理器的設計通過劃分許多規模更小、局部性更好的基本單元結構來進行。相比之下,由於CMP結構已經被劃分成多個處理器核來設計,每個核都比較簡單,有利於優化設計,因此更有發展前途。多核處理器可以在處理器內部共享緩存,提高緩存利用率,同時簡化多處理器系統設計的複雜度。根據多個微處理器在哪級存儲層次上互連,CMP的結構可分爲三類:共享一級CacheCMP,共享二級Cache CMP以及共享主存的CMPCMP系統必須解決因此而引發的Cache一致性問題。在傳統多處理器系統結構中廣泛採用的Cache一致性模型有:順序一致性模型(Sequential Consistency Model)、弱一致性模型(Weak Consistency Model)、釋放一致性模型(Release Consistency Model)等。與之相關的Cache一致性機制包括偵聽一致性機制(Snooping Coherence Mechanism)、目錄機制(Directory Mechanism)、面向編譯的一致性機制(Compiler-Directed CoherenceMechanism)等。Intel sandy bridge 就是CMP而且ring bus based 共享L3 cache

CMP的核間通訊帶寬比SMP大得多,從而不會成爲性能瓶頸 CMP 的核間延遲比SMP小得多。CMP可以提供新的輕量級的一致性和同步原語。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章