「共用記憶體多處理器系統」又稱為對稱式多處理器電腦 (Symmetric Multiprocessors ,簡稱 SMP) ,是傳統超級電腦的縮小版。 SMP 架構的特色是採用系統匯流排 (System Bus) 的方式將系統的 CPU 、記憶體及 I/O 相連接,如圖 1 所示。 SMP 電腦系統之架構, CPU 、記憶體及 I/O 等資源皆為共享。所有 CPU 共用一塊記憶體,整個系統是由單一作業系統管理。當多顆處理器平行運作時,溝通就決定了執行的效率,而傳輸的方法就是靠著彼此之間的資料交換。假使所有 CPU 都將資料存放在一起,那就可以省下許多互傳訊息的時間,而使平行運作更為順暢。
現階段 SMP 電腦系統的 CPU 個數以兩個、四個、八個最普遍,也有多到十六個、或三十二個 CPU 的機種,這些 CPU 是在一個作業系統下運作的。從使用者的角度來看 SMP 電腦系統,不管它有幾個 CPU ,在感覺上它像只有一個 CPU 一樣。當你進入該電腦系統之後,可以進行程式的修改、編譯和執行。 SMP 電腦系統本身就可以做到各個 CPU 之間負載的均衡分佈 (Load Balancing) 。
對管理者而言, SMP 電腦系統系統容易操作和管理。這是因為整個系統是單一的、資源是共享的。但其缺點是整個系統硬體之擴充性有限,而且系統匯流排的頻寬在不斷增加 CPU 時會造成瓶頸。系統匯流排 (System Bus) 的通道越多,可以連結的 CPU 個數亦越多,但是成本亦越高。而系統匯流排 (System Bus) 的資料傳輸頻寬是固定的,每一個 CPU 到共用記憶體的資料傳輸頻寬也是固定的,兩者的商數就是可以連結 CPU 數目的上限。
圖 1 : SMP 電腦系統之架構
》分散式記憶體多處理器系統
(Distributed Memory Multiprocessor System)
「分散式記憶體多處理器系統」是一種分工程度更高的模式,它是指同一台機器裡有多顆 CPU ,且各自擁有私屬的記憶體 (Local Memory) 。分散式記憶體多處理器系統又稱為巨量多處理器電腦 (Massive Parallel Processors ,簡稱 MPP) 。
MPP 架構是由數個 CPU 及記憶體之模組以某種拓樸學 (Topology) 的方式連接而成,如圖 2 所示。在 MPP 電腦系統架構裡,每一個含 CPU 及私屬記憶體 (Local memory) 的子系統皆為各自獨立,整個系統也是由單一作業系統管理。每一個處理器模組 (Processor Module = CPU + Local Memory) 內的記憶體都是各自獨立作業, CPU 與 CPU 之間只能靠訊息傳遞 (Message Passing) 的方式來溝通,而重要的溝通問題則由 CPU 額外花時間來處理。
由於每個 CPU 幾乎都具有完整的電腦架構 ( 唯獨無法單獨處理 I/O) ,所以它們都各自執行其工作,只有透過彼此之間的通訊,才有辦法互相協調、互助合作,一般常聽說的 MIMD 就是指這種「多重指令、分散資料」的模式。這種電腦系統可以連結的 CPU 個數相當多,可以到達 512 個、 1024 個或更多。
現階段 MPP 各個 CPU 之間高速網路的資料傳輸速度比 CPU 到自己記憶體內的資料傳輸速度要慢很多倍,因此 CPU 之間傳送的資料越少,平行計算的效率就越高。但其優點是整個系統之擴充性非常高,因為沒有如 SMP 般受到 System Bus 的限制。