大規模平行處理是什麼?

大規模平行處理 (MPP) 是一種處理範例,由數百或數千個處理節點來平行處理一部分運算任務。在這些節點中,每個節點都執行某一作業系統的幾個執行個體,它們有自己的輸入和輸出裝置,也不共用記憶體,只是透過高速互連和彼此通訊來完成共同的運算任務。

大規模平行處理圖解

如果組織需要處理不斷增加的大量資料,就可以運用大規模平行處理來執行資料處理。例如,一家熱門保險公司擁有數百萬名客戶,隨著客戶數量增加,客戶資料也隨之增加。即使公司使用平行處理,但在處理客戶資料時,仍會遇到延遲情況。假設資料分析師需要查詢資料庫的 1 億列資料,那麼如果組織使用 1000 個節點的大規模平行處理系統,則每個節點只需要承擔 1/1000 的運算負荷。

現代化您的數據和分析架構
現代化您的數據和分析架構
查看這 13 個用例,以了解怎樣支援當今複雜的數據和分析環境。

大規模平行處理的主要硬體組件有哪些?

有必要好好瞭解大規模平行處理系統的硬體組件,以得知不同的架構。

處理節點

處理節點是大規模平行處理的基本構建區塊,這些節點很簡單,都是同質處理核心,具有一或多個中央處理單元 (CPU),可以將其視為簡單的桌上型個人電腦。

高速互連

大規模平行處理系統中的各個節點,會平行處理單一運算問題的一部分。儘管它們的處理過程是相互獨立的,但在嘗試解決共通問題時,它們需要定期彼此通訊,因此節點之間需要低延遲、高頻寬的連線,這稱為高速互連或匯流排,它可以是乙太網路連線、光纖分散式資料介面、或任何專屬連線方法。

分散式鎖定管理工具 (DLM)

在各節點均共用一個外部記憶體或磁碟空間的大規模平行處理架構中,分散式鎖定管理工具 (DLM) 負責協調當中的資源共享。分散式鎖定管理工具在收到不同節點的資源請求之後,如果有資源可用,它就會連接各節點。在某些系統中,分散式鎖定管理工具有助於確保資料一致性,並可恢復任何故障節點。

大規模平行處理架構

根據節點共享資源的方式,大規模平行處理架構可分為兩大類。

共享磁碟系統

共享磁碟系統的每個處理節點,都擁有一或多個中央處理單元 (CPU) 和一個獨立的隨機存取記憶體 (RAM)。但是,這些節點會共用一個用來儲存檔案的外部磁碟空間。由於這些處理節點均連接至高速匯流排,所以共享磁碟系統的規模調整能力,取決於高速互連的頻寬,以及分散式鎖定管理工具的硬體限制。

共享磁碟系統有哪些優勢?

因為所有節點共用單一外部資料庫,所以大規模平行處理系統的可用性非常高。即使某個節點損壞,也不會造成任何資料永久遺失。由於共享磁碟系統不必使用分散式資料庫,所以存取更直接,也很容易在共享磁碟系統中增添新節點。

共享磁碟系統有哪些缺點?

由於處理節點共用同一個磁碟,其間的資料存取較為複雜,因此系統需要依賴分散式鎖定管理工具來進行協調。又因為這些節點之間的通訊會佔用一些高速互連頻寬,所以需要一套作業系統來控制這個共用磁碟,而這會增加額外負擔。

無共享系統

更流行的大規模平行處理系統架構是「無共享」架構,當中的處理節點均擁有獨立的隨機存取記憶體,以及儲存必要檔案和資料庫的磁碟。而需要處理的資料,則是使用各種技術在各節點之間共享。

複寫資料庫:在這種方法中,各處理節點都擁有完整的資料複本。因此在此模型中,就算有些節點出現故障,資料遺失的風險也很低,但是此模型會需要額外的儲存空間。

分散式資料庫:在此模型中,資料庫被劃分為多塊切片,每個處理節點都擁有一塊特定的資料庫切片,並在該切片上工作。由於這種方法沒有備援空間,所以能夠節省大量的磁碟儲存容量。但是,此方法比複寫資料庫更複雜。在這裡,大量資料會在節點之間移動以完成處理,這將增加互連匯流排的流量。此外,由於這種模型沒有備援空間,也可能導致資料遺失。

關於數據虛擬化你需要知道的十件事
關於數據虛擬化你需要知道的十件事
了解有關數據虛擬化的核心真相,以便克服數據瓶頸並取得更好的成果。

「無共享」系統有哪些優勢?

無共享系統可以水平擴充以納入大量節點,由於各處理節點之間相對獨立,因此增添新的處理節點較為容易。如果資料庫是唯讀的,則「無共享」系統可以運作得很好。因為節點幾乎完全獨立,所以某個節點故障並不會影響到其他節點。在「無共享」系統的情況下,資料庫損壞的可能性很小。

「無共享」系統有哪些缺點?

使用分散式資料庫的「無共享」系統需要進行大量協調,才能完成一般任務。因為每個節點都擁有一塊資料庫切片,所以這個資料庫可能會非常難以管理。而使用複寫資料庫的「無共享」系統,也不適合用於具有大量資料需求的應用程式。如果運算過程需要執行大量資料修改,例如資料插入和結合,那麼「無共享」架構就未必可行。

大規模平行處理 (MPP) 與對稱式多工處理 (SMP)

大規模平行處理是一個鬆散耦合的系統,其中的節點在某些情況下可能並不共享記憶體或磁碟空間。大規模平行處理被認為是通過高速互連匯流排,進行通訊的獨立處理節點陣列。

對稱式多工處理系統則是具有多個緊密耦合處理器的單一系統,這些處理器會共享一套作業系統、輸入輸出裝置和記憶體,所以通常比大規模平行處理系統便宜,但是,對稱式多工處理系統會受到擴充限制。由於所有對稱式多工處理系統中的處理節點,皆共用單一記憶體匯流排,因此隨著處理器數量的增加,可能會出現記憶體瓶頸,最終導致系統緩慢。反之,大規模平行處理系統雖然成本高昂且複雜,卻能夠無限成長,如果處理任務可以完美劃分,而且節點之間只需最低程度的通訊,那麼大規模平行處理就可以獲得最佳效果。