標籤:

海量數據,分散式計算,並行計算 ,虛擬化與雲計算的關係是怎樣的?


海量數據

是一個形容詞,它是用來形容巨大的、空前浩瀚的數據。隨著現代科學的發展,我們在天文、地理、基因等等領域搜集到了海量數據,並期望將這些數據通過特定演算法獲得計算結果。為了更快獲得計算結果,提高科研效率,人們一方面設法提高計算機的製造工藝及物理極限,另一方面設法製造更大的計算機、以及使多台計算機協同工作,這就是計算機科學的領域。海量數據與計算機科學沒有直接的關係,但可以說是促成高性能計算的原動力之一。

並行計算(Parallel Computing)或稱平行計算

是相對於串列計算來說的。並行計算是指同時使用多種計算資源解決計算問題的過程。並行計算的主要目的是快速解決大型且複雜的計算問題。單台計算機中集成多路多核CPU就是並行計算的研究成果。

分散式計算(Distributed Computing)

是指將一組計算機通過網路相互鏈接,把需要進行大量計算的工程數據分區成小塊,由多台計算機分別計算,在上傳運算結果後,將結果統一合併得出數據結論的科學。

目前常見的分散式計算項目通常使用世界各地上千萬志願者計算機的閑置計算能力,通過互聯網進行數據傳輸。

比如https://zh.wikipedia.org/wiki/Folding@home是一個研究蛋白質摺疊,誤解,聚合及由此引起的相關疾病的分散式計算工程。它使用聯網式的計算方式和大量的分散式計算能力來模擬蛋白質摺疊的過程,並指引我們近期對由摺疊引起的疾病的一系列研究。

並行計算與分散式計算的區別

並行計算與分散式計算都是運用並行來獲得更高性能,化大任務為小任務。簡單說來,如果處理單元共享內存,就稱為並行計算,反之就是分散式計算。也有人認為分散式計算是並行計算的一種特例。

但是分散式的任務包互相之間有獨立性,上一個任務包的結果未返回或者是結果處理錯誤,對下一個任務包的處理幾乎沒有什麼影響。因此,分散式的實時性要求不高,而且允許存在計算錯誤。

並行計算的任務包之間有很大的聯繫,而且並行計算的每一個任務塊都是必要的,沒有浪費的分割的,就是每個任務包都要處理,而且計算結果相互影響,就要求每個的計算結果要絕對正確,而且在時間上要盡量做到同步。

從應用場景來說,打個比方,有一家軟體公司。員工就是計算單位,計算方法就是項目經理(PM),並行計算就像產品公司,員工組成項目團隊並分享信息及協作,根據PM的指派獲得任務,PM調度開發者使儘可能快速的完成開發,其中任何一人出錯都會導致產品出錯;而分散式計算就像項目外包公司,有很多項目,PM組建了很多項目團隊及外包商,即便個別項目失敗,公司依然可以經營下去。

虛擬化

是指計算元件在虛擬的基礎上而不是真實的基礎上運行,是一個為了簡化管理,優化資源的解決方案。通過虛擬化技術把一台計算機虛擬為多台邏輯計算機,在一台計算機上同時運行多個邏輯計算機,每個邏輯計算機可運行不同的操作系統,並且應用程序都可以在相互獨立的空間內運行而互不影響,從而顯著提高計算機的工作效率。

雲計算(Cloud Computing)是一種基於互聯網的計算方式

即用戶可以通過互聯網獲得按需即取的計算資源。而虛擬化則是雲計算的基石,一個雲計算的應用必定是構建在虛擬化的基礎上的。同時雲計算相比並行計算、分散式計算的科學目的而言更偏向於商業目的,利用虛擬化的多路復用實現其商業模式。

虛擬化和雲計算往往容易混淆,簡單來講,虛擬化描述的是一項技術,雲計算則描述的是一項商業服務。比如說,堅果雲是一家雲計算服務提供商,利用虛擬化等技術為企業提供服務。


海量數據:我們對數據存儲擴展性和高可用性,對數據進行分析的效率都提出了要求,第一點涉及到雲存儲和分散式存儲。第二點涉及到分散式計算和並行計算。

分散式計算和並行計算:並行計算偏科學領域,偏單用戶,單請求,在配置多處理機的伺服器下處理。分散式計算偏多用戶,多請求,涉及多台伺服器多個計算單元的分散式處理。分散式計算本身又分為兩種,一種是單任務拆分,如mapreduce來實現;一種是多請求分散式調度,涉及到雲計算paas層的核心能力。

虛擬化和雲計算:雲計算重點是要有可調度的計算單元或存儲單元,而且調度單元的粒度不能太粗,否則影響到資源利用,調度單元本身要相互隔離。而虛擬化作用則是對已有計算或存儲能力進行拆分,形成標準化的,物理或邏輯上隔離的可調度單元。如果機器本身就是利舊,能力一般,那麼虛擬化不是雲計算的必備選擇。


推薦閱讀:

怎樣看待阿里雲褚霸擔任ECS負責人以及阿里雲中間件掌門人小邪入主阿里雲?
有哪些值得推薦的雲存儲服務?理由是什麼?
想從事雲計算方面,需要涉獵哪些技術,具體包括語言,系統,開發平台等?
在七牛工作是什麼樣的體驗和感受?
IDC和雲計算是一樣的嗎?

TAG:雲計算 |