平行計算、分散式計算以及網格計算和雲端計算都是屬於高效能運算(HPC)的範疇,主要目的在於對大資料的分析與處理,但它們卻存在很多差異。我們需要瞭解兩者的原理、特點和運用的場合,對雲端計算的瞭解大有裨益。
之所以將兩種計算技術放在一起,是因為這兩種計算具有共同的特點,都是運用並行來獲得更高效能運算,把大任務分為N個小任務。但兩者還是有區別的,關於兩者的區別在後面有介紹。
平行計算
1、平行計算概念
平行計算(Parallel Computing)又稱平行計算是指一種能夠讓多條指令同時進行的計算樣式,可分為時間並行和空間並行。時間並行即利用多條流水線同時作業,空間並行是指使用多個處理器執行併發計算,以降低解決複雜問題所需要的時間。
平行計算同時使用多種計算資源解決計算問題的過程。為執行平行計算,計算資源應包括一臺配有多處理機(並行處理)的計算機、一個與網路相連的計算機專有編號,或者兩者結合使用。平行計算主要目的在於兩個方面:
-
(1) 加速求解問題的速度。
-
(2) 提高求解問題的規模。
2、平行計算的原理
平行計算能快速解決大型且複雜的計算問題。此外還能利用非本地資源,節約成本 ― 使用多個“廉價”計算資源取代大型計算機,同時剋服單個計算機上存在的儲存器限制。
為提高計算效率,平行計算處理問題一般分為以下三步:
-
(1)將工作分離成離散獨立部分,有助於同時解決;
-
(2)同時並及時地執行多個程式指令;
-
(3)將處理完的結果傳回主機經一定處理後顯示輸出。
從上圖可以看出,序列計算必須按步驟一步一步計算才能出來最終結果。而平行計算則要將問題分成N多個子任務,每個子任務並行執行計算。而每個子任務是非獨立的,每個子任務的計算結果決定最終的結果。這個和分散式計算不同。
3、平行計算需滿足的基本條件
-
(1)平行計算機。平行計算機至少包含兩臺或兩臺以上處理機,這此處理機透過網際網路絡相互連線,相互通訊。
-
(2)應用問題必須具有並行度。也就是說,應用可以分解為多個子任務,這些子任務可以並行地執行。將一個應用分解為多個子任務的過程,稱為並行演演算法的設計。
-
(3)並行程式設計。在平行計算機提供的並行程式設計環境上,具體實現並行演演算法,編製並行程式並執行該程式,從而達到並行求解應用問題的目的。
分散式計算
1、分散式計算概念
分散式計算是一個需要非常巨大的計算能力才能解決的問題分成許多小的部分,然後把這些部分分配給許多計算機進行處理,最後把這些計算結果綜合起來得到最終的結果。分散式計算和集中式計算相對應的概念。
2、分散式計算的優點
分散式計算是在兩個或多個軟體互相共享資訊,這些軟體既可以在同一臺計算機上執行,也可以在透過網路連線起來的多臺計算機上執行。
分散式計算比起其它演演算法具有以下幾個優點:
-
(1)稀有資源可以共享。
-
(2)透過分散式計算可以在多臺計算機上平衡計算負載。
-
(3)可以把程式放在最適合執行它的計算機上。其中,共享稀有資源和平衡負載是計算機分散式計算的核心思想之一。
3、分散式計算原理
Hadoop計算框架是出現比較早的一個分散式計算框架,由Apache基金會所開發。使用者可以在不瞭解分散式底層細節的情況下,開發分散式程式。
平行計算與分散式計算區別與聯絡
平行計算和分散式計算既有區別也有聯絡。從解決物件上看,兩者都是大任務化為小任務,這是他們共同之處。 具體區別和聯絡如下表所示:
結語
平行計算、分散式計算以及網格計算和雲端計算都是屬於高效能運算(HPC)的範疇,主要目的在於對大資料的分析與處理,但它們卻存在很多差異。我們需要瞭解兩者的原理、特點和運用的場合,對雲端計算的瞭解大有裨益。(來源 “Tsarpro智慧科技”)。
推薦閱讀:
溫馨提示:
請搜尋“ICT_Architect”或“掃一掃”二維碼關註公眾號,點選原文連結獲取更多電子書詳情。
求知若渴, 虛心若愚