分布式計算的本質、特點和未來


  在計算機早期,都是由一台主機承擔全部存儲和計算工作,這種方式被稱為集中處理。后來隨着處理器發展和網絡出現,衍生出客戶機/服務器架構,即由服務器完成主要的存儲計算工作,客戶機則負責較弱的存儲計算和顯示工作。到了今天,客戶機的角色未變,但是存儲計算工作已經不是單台服務器所能承載,需要由一堆服務器共同完成,這也就是通常說的集群架構。

  現在我們所說的分布式計算,主要是指集群架構下的分布式計算工作。這種工作要求從某個客戶機節點出發,將一個計算工作分割成若干小的子任務,分配給多台服務器節點去處理,並從這些服務器獲得結果的計算過程。

  由於分布式計算整合了大量計算機,處理效果遠超單點計算,自帶高性能和高效率光環,這些年隨着各行業加速向數字化轉移,產生的數據越來越多,數據業務復雜度也在同步增加,促使各行業對計算性能和計算效率的要求越來越高,必須使用分布式計算來完成日益龐大和復雜的計算工作。

  所有分布式計算,拋開各種分布式計算模型表面的包裝,回歸計算本質,都可以分解成“分散”和“聚合”兩個動作,執行順序是先分散再聚合。更加復雜的,為了提高分布式計算效率,會運用迭代技術,持續將上階段計算結果傳輸給下個階段,滾動地進行分散計算和聚合計算,最終得出計算結果。

  在分散和聚合基礎上,已經衍生出許多分布式計算模型,比如谷歌的MapReduce,就屬於比較簡單的分布式計算模型,最初是用在它的搜索引擎上,后來也被Hadoop采用,用於大數據處理。Spark的分布式計算模型就復雜一些,因為它能夠同時操作多個Map任務和Reduce任務一起工作。Laxcus更進一步,將分布式計算和計算機硬件整合起來,發展成一個分布式操作系統,它的分布式軟件工具包(DSDK)里面,針對不同的分布式計算業務,封裝了多種分布式計算模型,同樣它也提供可以迭代運行技術,支持持續地處理分布式計算。

 

 

(基本是最簡單的分布式計算)

 

  分布式計算的“分散”,指的是從一個節點出發,把指令或者數據傳遞到多個節點上運行,按照某種計算規則,驅動這些節點生成計算結果。“聚合”是對結果數據的編排和匯總,根據不同的需求,聚合又分為對數據本身的聚合和對元數據的聚合。

  對數據本身的聚合比較容易理解,就是把相同性質的數據放到一起進行處理。比如MPP數據庫,當Select執行Group by和Order by操作時,就需要先提取多個節點上的同質數據,經過匯集后,再進行分組計算和排序計算。

  元數據的聚合通常發生在數據聚合前,這是一種預處理操作,要求按照某種預定的規則,對不同性質的數據進行分區。分區后產生的對原來數據集合的映射,就是元數據。

  元數據產生在迭代計算過程中,這種數據屬於中間數據,被用來做為輸入提供給下個階段使用。元數據現在被各種分布式計算模型普遍使用,因為這些分布式計算模型都需要提高計算效率,最后都統一了選擇這種小樣本管理大數據的策略。

  面對不同的業務,元數據的格式和內容雖然多種多樣,但是有兩個參數是必須具有的:1. 標記元數據唯一性的散列碼。2. 產生元數據的節點。這兩個參數保證分布式計算過程中,每一塊數據都能夠被定位和識別。

  現在各種分布式計算框架,基本都提供元數據編程接口,允許開發者自己定義元數據。象Laxcus集群操作系統,它的分布式軟件開發工具包里面,每套分布式計算模型都有對應的元數據編程接口,同樣也支持開發者在即有規則上,定義自己的元數據規范。這樣做,即簡化了開發分布式應用軟件的難度,也給開發者帶來更多靈活性和開發便利。

  為了更好地提升計算效率和節省計算資源,所有分布式計算模型都會建議開發者采用“移動計算”,減少“移動數據計算”。這個概念現在很少有人提及,但是非常重要,所以要說一說。

  移動計算就是在產生數據本身的節點上進行計算,移動數據計算需要把數據搬運到指定的目標節點上,再進行計算工作。相比移動數據計算,移動計算省略了數據在網絡中的傳輸開銷,計算效率會大大提高。

  但是完全擺脫移動數據計算也是不可能的,因為分布計算過程中,一旦涉及數據的編組、排列、匯總等計算工作,就需要把若干節點的數據傳遞到指定的目標節點上,網絡數據傳輸工作不可避免。目前很多分布式計算執行過程中,相當大的一部分時間會被數據傳輸占用,而計算工作處於空置狀態,所以為了減少時延提高計算效率,各種分布式計算模型也在用各種辦法改進網絡通信效率。

  在改善網絡通信效率方面,尤其以Laxcus做得最為出色。它提供了一套類似5G Massive MIMO的多通道傳輸技術,同時還有人工智能技術輔助管控通信設備和網絡流量,數據傳輸的穩定性可靠性非常高。在對比測試中,在網絡基礎環境不變情況下,它比更早期不支持多通道的數據傳輸,改進后的通信效率能夠提升5-20倍。這是一種非常有前景的技術,也是目前所有分布式計算模型中獨樹一幟的。

 

(多點連接,多通道並行,數據傳輸效果會更好)

 

  現在的分布式計算,無論是理論、技術,還是產品和使用上,都已經日臻完善。它的未來發展趨勢,正在以肉眼可見的速度,快速向軟件化方向,特別是當Laxcus這樣的分布式操作系統出現后,由於有了統一和標准化的基礎平台,更容易部署和使用分布式應用軟件。目前這股發展趨勢已經非常明顯,象高速空氣流體、基因工程、生物醫葯、人工智能的計算工作,都重度依賴大規模分布式計算和它的基礎平台。一旦分布式計算全面應用軟件化,整個市場都會發生巨大變化。這些好處,我總結一下,大概有以下三點:

  1. 有了統一的標准平台,就意味着,只是操作系統不改變,應用軟件放在哪里都可以運行。不象現在各家雲服務商自己建立一套,導致互相不兼容,應用軟件遷移難度非常大。而企業如果不上雲,就需要自己搭建基礎平台,建設成本非常高。

  2. 分布式應用軟件的開發會更加規范,同時也意味着開發成本更低,這方面可以參考安卓、IOS、Windows上的開發經驗。

  3. 形成生態,產生更大的新的市場。分布式應用在沒有軟件化之前,主要以解決方案的方式出現,這種模式重度依賴特定企業和特定目標群體,無論開發成本還是使用成本都非常高,而且市場容量有限。現在有了分布式操作系統,應用軟件的開發工作可以快速下沉到個體開發者。以當前分布式計算蓬勃的發展勢頭,一旦把海量個體開發者群體納入進來,與市場上各種需求對接,形成用戶與開發者的良性互動,就會出現供需市場。當用戶有了更多更豐富的分布式應用軟件可供選擇,市場就會發展起來,最終通過市場規模的持續擴大,就會形成分布式應用生態。同理參考這十年手機生態的發展歷程。

  所以說,分布式計算的發展趨勢是應用軟件化和生態化,也是它的最終形態。

  未來結果如何,各位拭目以待吧!歡迎大家在下方評論!

 

 

Laxcus集群操作系統桌面,類似Windows,客戶端遠程操控集群上運行的分布式應用軟件)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM