什麼是分散式運算?
分散式運算是一種讓多部電腦協同運作以解決共同問題的方法。藉此,電腦網路即似一部功能強大的單一電腦,可提供大規模資源來應對複雜的挑戰。
例如,分散式運算可以加密大量資料;求解具有許多變數的物理和化學方程式;以及轉譯高品質的三維視訊動畫。分散式系統、分散式程式設計和分散式演算法是與分散式運算相關的其他一些術語。
分散式運算有哪些優勢?
相較於單一系統運算,分散式系統的優勢更多。以下是其中一些範例。
可擴展性
分散式系統可隨著您的工作負載和需求而擴展。您可以在需要時向分散式運算網路新增新的節點,即增加運算裝置。
可用性
如果其中一部電腦出現故障,您的分散式運算系統也不會崩潰。該設計顯示了容錯能力,因為即使個別電腦出現故障,它也可以繼續運行。
一致性
分散式系統中的電腦可在它們之間共享資訊並複製資料,但系統會自動管理所有不同電腦之間的資料一致性。因此,您可以在不影響資料一致性的情況下獲得容錯能力的好處。
透明度
分散式運算系統可提供使用者和實體裝置之間的邏輯區隔。您可以與系統互動,就像它是一台電腦一樣,而無需擔心跟別機器的設定和組態。您可以擁有不同的硬體、中介軟體、軟體和作業系統,它們可以協同工作以使您的系統順利運行。
效率
分散式系統透過基礎硬體的最佳資源使用提供更快的效能。因此,您可以管理任何工作負載,而不必擔心由於容量峰值或昂貴硬體使用不足而導致的系統故障。
分散式運算有哪些使用案例?
分散式運算如今無處不在。行動和 Web 應用程式是分散式運算的範例,因為多台機器可在後端協同工作,以便應用程式為您提供正確的資訊。不過,當分散式系統縱向擴展時,它們可以解決更複雜的挑戰。讓我們探索不同產業使用高效能分散式應用程式的一些方式。
醫療保健與生命科學
醫療保健與生命科學使用分散式運算來建模和模擬複雜的生命科學資料。藉助分散式系統,影像分析、醫學藥物研究和基因結構分析都變得更快。以下是一些範例:
- 透過在三個維度上視覺化分子模型來加速結構型藥物設計。
- 縮短基因體資料處理時間,以便及早了解癌症、囊狀纖維化和阿茲海默症。
- 開發智慧系統,透過處理大量複雜影像 (如 MRI、X 光和 CT 掃描) 來幫助醫生診斷患者。
工程研究
工程師可以在分散系統上模擬複雜的物理學和力學概念。他們利用這項研究來改進產品設計、建置複雜的結構並設計更快的車輛。以下是一些範例:
- 運算流體動力學研究會研究流體的行為,並在飛機設計和賽車中實作這些概念。
- 電腦輔助工程需要運算密集型模擬工具來測試新的工廠工程、電子產品和消費性商品。
金融服務
金融服務公司使用分散式系統來執行高速經濟模擬,以評估投資組合風險、預測市場動向並支援金融決策。他們可以建立 Web 應用程式,而這些應用程式可使用分散式系統的強大功能來執行以下動作:
- 提供低成本、個人化保費
- 使用分散式資料庫安全地支援大量金融交易。
- 對使用者進行身分驗證並保護客戶免受詐騙
能源與環境
能源公司需要分析大量資料以改善營運,並過渡至永續性和氣候友好型解決方案。他們使用分散式系統來分析來自龐大的感應器網路和其他智慧裝置的大量資料串流。以下是他們可能會執行的一些任務:
- 串流及合併地震資料,以用於發電廠的結構設計
- 用於主動風險管理的即時油井監控
分散式運算架構有哪些類型?
在分散式運算中,您設計的應用程式可以在多台電腦上而不是僅在一台電腦上執行。您可以透過設計軟體來實現這一點,以便不同的電腦執行不同的功能並進行通訊以開發最終解決方案。分散式架構有四種主要類型。
主從架構
用戶端-伺服器是分散式系統上最常見的軟體組織方法。這些功能分為兩類:用戶端和伺服器。
用戶端
用戶端的資訊和處理能力有限。反之,它們會向管理大部分資料和其他資源的伺服器發出請求。您可以向用戶端發出請求,而它會代表您與伺服器通訊。
伺服器
伺服器電話會同步和管理對資源的存取。它們使用資料或狀態資訊回應用戶端請求。通常情況下,一台伺服器可以處理來自多台機器的請求。
優勢與限制
用戶端-伺服器架構提供了安全性和易於持續管理的好處。您只需專注於保護伺服器電腦。同樣,對資料庫系統的任何變更只需要對伺服器進行變更。
用戶端-伺服器架構的缺點在於伺服器可能會導致通訊瓶頸,尤其是當多台機器同時發出請求時。
三層架構
在三層分散式系統中,用戶端機器仍然是您存取的第一層。另一方面,伺服器機器可進一步分為兩類:
應用程式伺服器
應用程式伺服器可充當通訊的中間層。它們包含您為其設計分散式系統的應用程式邏輯或核心功能。
資料庫伺服器
資料庫伺服器可充當儲存和管理資料的第三層。他們負責資料擷取和資料一致性。
透過劃分伺服器職責,三層分散式系統可降低通訊瓶頸,並改善分散式運算效能。
N 層架構
N 層模型包括幾個不同的用戶端-伺服器系統,它們可相互通訊以解決相同的問題。大多數現代分散式系統使用 n 層架構,而不同的企業應用程式可在後台協同工作,如同一個系統一般。
對等架構
對等分散式系統為所有聯網的電腦指派同等的責任。用戶端與伺服器電腦之間沒有區隔,且任何電腦都可以執行所有職責。對等架構已備受內容共享、檔案串流和區塊鏈網路的青睞。
分散式運算如何運作?
分散式運算的工作原理是電腦在分散式系統架構中相互傳遞訊息。通訊協定或規則會在分散式系統的元件之間建立相依性。這種相依性稱為耦合,而耦合主要有兩種類型。
鬆耦合
在鬆耦合中,元件為弱連通,因此對一個元件進行變更並不會影響其他元件。 例如,用戶端和伺服器電腦可以按時間進行鬆耦合。來自用戶端的訊息會新增至伺服器佇列中,用戶端可以繼續執行其他功能,直到伺服器對其訊息做出回應位置。
緊耦合
高效能分散式式系統通常使用緊耦合。快速區域網路通常會連接多台電腦,從而建立一個叢集。在叢集運算中,每台電腦皆被設為執行相同的任務。中央控制系統 (稱為叢集中介軟體) 可控制和調度任務並協調不同電腦之間的通訊。
什麼是平行運算?
平行運算是一種運算類型,其中網路中的一台電腦或多台電腦可同時執行許多計算或進程。儘管平行運算和分散式運算這兩個術語經常互換使用,但它們還是有一些區別。
平行運算與分散式運算
平行運算是分散式運算的一種特別緊密耦合的形式。在平行處理中,所有處理器都可以存取共享記憶體,以在它們之間交換資訊。另一方面,在分散式處理中,每個處理器都有私有記憶體 (分散式記憶體)。處理器使用訊息傳遞來交換資訊。
什麼是網格運算?
在網格運算中,分散於不同地理位置的電腦網路可協同工作以執行常見任務。分散式網格的一個特點是,您可以從屬於多個個人或組織的運算資源中建立網格。
網格運算與分散式運算
網格運算是高度擴展的分散式運算,強調效能和多個網路之間的協調。在內部,每個網格就像一個緊密耦合的運算系統。然而,在外部,網格的耦合更為鬆散。每個網格網路會執行個別功能並將結果傳達給其他網格。
什麼是 AWS 高效能運算?
藉助 AWS 高效能運算 (HPC),您可以透過快速聯網和幾乎無限的分散式運算基礎設施加速創新。例如,您可以使用以下服務:
- Amazon Elastic Cloud Compute (EC2) 具有安全、可調整大小的運算容量,幾乎可以支援任何工作負載。
- AWS Batch 可跨 AWS 運算服務擴展數十萬個運算作業。
- AWS ParallelCluster 可快速建置 HPC 運算環境和 HPC 叢集。
立即建立免費帳戶,開始在 AWS 上進行分散式運算。