分布式计算入门知识
分布式計算是一種計算方法,和集中式計算是相對的。隨著計算技術的發展,有些應用需要非常巨大的計算能力才能完成,如果采用集中式計算,需要耗費相當長的時間來完成。分布式計算將該應用分解成許多小的部分,分配給多臺計算機進行處理。這樣可以節約整體計算時間,大大提高計算效率。
定義
廣義定義
所謂分布式計算是一門計算機科學,它研究如何把一個需要非常巨大的計算能力才能解決的問題分成許多小的部分,然后把這些部分分配給許多計算機進行處理,最后把這些計算結果綜合起來得到最終的結果。 最近的分布式計算項目已經被用于使用世界各地成千上萬位志愿者的計算機的閑置計算能力,通過因特網,您可以分析來自外太空的電訊號,尋找隱蔽的黑洞,并探索可能存在的外星智慧生命;您可以尋找超過1000萬位數字的梅森質數;您也可以尋找并發現對抗艾滋病病毒的更為有效的藥物。這些項目都很龐大,需要驚人的計算量,僅僅由單個的電腦或是個人在一個能讓人接受的時間內計算完成是決不可能的。
中國科學院的定義
分布式計算是一種新的計算方式。所謂分布式計算就是在兩個或多個軟件互相共享信息,這些軟件既可以在同一臺計算機上運行,也可以在通過網絡連接起來的多臺計算機上運行。分布式計算比起其它算法具有以下幾個優點:
1、稀有資源可以共享。
2、通過分布式計算可以在多臺計算機上平衡計算負載。
3、可以把程序放在最適合運行它的計算機上。
其中,共享稀有資源和平衡負載是計算機分布式計算的核心思想之一。
意義格局
分布式計算與人類
由于現代人類各個課題學科繁多,涉及面廣,而分類又細。而當今的每個學科似乎都需要進行大量的計算。天文學研究組織需要計算機來分析太空脈沖(pulse),星位移動;生物學家需要計算機來模擬蛋白質的折疊(protein folding)過程;藥物學家想要研制克服艾滋病(AIDS)或非典(SARS)的藥物;數學家想計算最大的質數和圓周率的更精確值;經濟學家要用計算機分析計算在幾萬種因素考慮下某個企業/城市/國家的發展方向從而宏觀調控。由此可見,人類未來的科學,時時刻刻離不開計算。而分布式計算(Distributed Computing),以其獨特的優點——便宜、高效而越來越受到社會的關注。
分布式計算格局
就目前來看,全球的各種分布式計算已有約百種,這些計算大多互無聯系、獨立管理、獨立使用自己的一套軟件。這種分布式計算互相割據的格局很不利于發展的需要。比如,某個生物學研究機構需要利用世界各地志愿者的計算機來模擬蛋白質折疊的過程,那個生物學研究機構沒有分布式計算方面的專業人才,而但是社會上也并沒有任何公司可以提供這樣的服務,他們就不得不自己花費大量精力用于開發分布式計算的服務器、客戶端。這樣一來,原來可以用于研究生物的時間用在了別的地方。剛才提到的生物學研究機構就是美國斯坦福大學的PANDE小組。
BOINC一統大局
為了改變這種雜亂無章的割據,美國加州大學伯克利分校(UC Berkeley)首先提出了建立BOINC的想法。BOINC的中文全稱是伯克利開放式網絡計算平臺(Berkeley Open Infrastructure for Network Computing),他能夠把許多不同的分布式計算項目聯系起來統一管理。并對計算機資源進行統一分配(比方您對研究艾滋病藥物和探索地外文明同時感興趣,您就可以同時選擇兩個運行,并設置優先級)。對統計評分系統進行統一管理(無論你在為哪個項目工作,只要你奉獻CPU時間長,就積分高)。有了這樣的統一管理,的確給PANDE小組這樣的科學研究機構提供了便利!
BOINC已經成熟,多個項目已經成功運行于BOINC平臺之上,如SETI@home,LHC@home等。
安全性
對用戶方來說,加入任何一個項目之前,您必須確保您可以信任項目的研制方,主要涉及兩方面:
計算機上的隱私數據
您從項目方下載的計算程序,運行在本機,而且可以訪問網絡,因此,只有可靠的項目方才能保證您計算機上的隱私數據不會惡意的取走、修改等。
個人計算機的壽命
雖然分布式計算的計算程序一般運行在最低優先級,不會對您的日常使用造成影響,但計算程序全負荷運行時仍會對計算機的各個部件造成一定壓力,要了解更多請查看分布式計算對計算機軟硬件的影響。
對項目方來說,參加分布式計算的志愿者畢竟不是項目方自己的人員,并不是全體可信任,因此必須引入一定的冗余計算機制,才能防止計算錯誤、惡意作弊等。
下面附帶分布式計算入門教程
教學課程:分布式計算入門
(課程針對大數據分步式計算中的相關技術進行講解,核心講解流式計算和內存計算技術,闡述阿里云在處理這些功能時所使用的技術,并對阿里在這里的技術優化方式進行了詳細的講解。)
教程資料
教程課時
課時1:流式計算概述 27:45
課時2:流計算與批量計算的區別 07:16
課時3:流式計算典型系統技術分析 19:09
課時4:阿里計算核心技術概述 25:49
課時5:有狀態計算實現方式 17:35
課時6:StreamSQL 14:11
課時7:大數據和數據庫的結合 33:12
課時8:分析型數據庫服務ADS 05:55
課時9:統一計算框架 16:01
課程目標
學習分步式計算相關技術
適合人群
大數據開發者、愛好者
阿里云大學官網(edu.aliyun.com)
總結
- 上一篇: C算法编程题(一)扑克牌发牌
- 下一篇: 程序员Web面试之JSON