複製鏈接
請複製以下鏈接發送給好友

分佈式計算

(計算機科學)

鎖定
分佈式計算是一種計算方法,和集中式計算是相對的。
隨着計算技術的發展,有些應用需要非常巨大的計算能力才能完成,如果採用集中式計算,需要耗費相當長的時間來完成。
分佈式計算將該應用分解成許多小的部分,分配給多台計算機進行處理。這樣可以節約整體計算時間,大大提高計算效率。
中文名
分佈式計算
外文名
Distributed Computation
類    型
一門計算機科學
優    點
稀有資源可以共享
包    括
網格計算

分佈式計算基本信息

分佈式計算定義

廣義定義
研究如何把一個需要非常巨大的計算能力才能解決的問題分成許多小的部分,然後把這些部分分配給許多計算機進行處理,最後把這些計算結果綜合起來得到最終的結果。
最近的分佈式計算項目已經被用於使用世界各地成千上萬位志願者的計算機的閒置計算能力,通過因特網,可以分析來自外太空的電訊號,尋找隱蔽的黑洞,並探索可能存在的外星智慧生命;可以尋找超過1000萬位數字的梅森質數;也可以尋找並發現對抗艾滋病病毒的更為有效的藥物。這些項目都很龐大,需要驚人的計算量,僅僅由單個的電腦或是個人在一個能讓人接受的時間內計算完成是絕不可能的。
中國科學院的定義
在兩個或多個軟件互相共享信息,這些軟件既可以在同一台計算機上運行,也可以在通過網絡連接起來的多台計算機上運行。分佈式計算比起其它算法具有以下幾個優點:
1、稀有資源可以共享。
2、通過分佈式計算可以在多台計算機上平衡計算負載。
3、可以把程序放在最適合運行它的計算機上。
其中,共享稀有資源和平衡負載是計算機分佈式計算的核心思想之一。

分佈式計算網格計算

網格計算就是分佈式計算的一種。如果某項工作是分佈式的,那麼,參與這項工作的一定不只是一台計算機,而是一個計算機網絡,這種“螞蟻搬山”的方式將具有很強的數據處理能力。
網格計算的實質就是組合與共享資源並確保系統安全。

分佈式計算工作原理

分佈式計算是利用互聯網上的計算機的中央處理器的閒置處理能力來解決大型計算問題的一種計算科學。下面,我們看看它是怎麼工作的:
首先, 要發現一個需要非常巨大的計算能力才能解決的問題。這類問題一般是跨學科的、極富挑戰性的、人類急待解決的科研課題。其中較為著名的是:
  1. 解決較為複雜的數學問題,例如:GIMPS(尋找最大的梅森素數)。
  2. 研究尋找最為安全的密碼系統,例如:RC-72(密碼破解)。
  3. 生物病理研究,例如:Folding@home(研究蛋白質摺疊,誤解,聚合及由此引起的相關疾病)。
  4. 各種各樣疾病的藥物研究,例如:United Devices(尋找對抗癌症的有效的藥物)。
  5. 信號處理,例如:SETI@Home(在家尋找地外文明)。
在以前,這些問題都應該由超級計算機來解決。但是, 超級計算機的造價和維護非常的昂貴,這不是一個普通的科研組織所能承受的。隨着科學的發展,一種廉價的、高效的、維護方便的計算方法應運而生——分佈式計算!
隨着計算機的普及,個人電腦開始進入千家萬户。與之伴隨產生的是電腦的利用問題。越來越多的電腦處於閒置狀態,即使在開機狀態下中央處理器的潛力也遠遠不能被完全利用。我們可以想象,一台家用的計算機將大多數的時間花費在“等待”上面。即便是使用者實際使用他們的計算機時,處理器依然是寂靜的消費,依然是不計其數的等待(等待輸入,但實際上並沒有做什麼)。互聯網的出現, 使得連接調用所有這些擁有限制計算資源的計算機系統成為了現實。
那麼,一些本身非常複雜的但是卻很適合於劃分為大量的更小的計算片斷的問題被提出來,然後由某個研究機構通過大量艱辛的工作開發出計算用服務端和客户端。服務端負責將計算問題分成許多小的計算部分,然後把這些部分分配給許多聯網參與計算的計算機進行並行處理,最後將這些計算結果綜合起來得到最終的結果。
當然,這看起來也似乎很原始、很困難,但是隨着參與者和參與計算的計算機的數量的不斷增加, 計算計劃變得非常迅速,而且被實踐證明是的確可行的。目前一些較大的分佈式計算項目的處理能力已經可以達到甚而超過目前世界上速度最快的巨型計算機。
您也可以選擇參加某些項目以捐贈Cpu的內核處理時間,您將發現您所提供的 中央處理器 內核處理時間將出現在項目的貢獻統計中。您可以和其他的參與者競爭貢獻時間的排名,您也可以加入一個已經存在的計算團體或者自己組建一個計算小組。這種方法很利於調動參與者的熱情。
隨着民間的組隊逐漸增多, 許多大型組織(例如公司、學校和各種各樣的網站)也開始了組建自己的戰隊。同時,也形成了大量的以分佈式計算技術和項目討論為主題的社區,這些社區多數是翻譯製作分佈式計算項目的使用教程及發佈相關技術性文章,並提供必要的技術支持。
那麼誰可能加入到這些項目中來呢? 當然是任何人都可以! 如果您已經加入了某個項目,而且曾經考慮加入計算小組, 您將在中國分佈式計算總站及論壇裏找到您的家。任何人都能加入任何由我站的組建的分佈式計算小組。希望您在中國分佈式總站及論壇裏發現樂趣。
參與分佈式計算——一種能充分發揮您的個人電腦的利用價值的最有意義的選擇——只需要下載有關程序,然後這個程序會以最低的優先度在計算機上運行,這對平時正常使用計算機幾乎沒有影響。如果你想利用計算機的空餘時間做點有益的事情,還猶豫什麼?馬上行動起來吧,你的微不足道的付出或許就能使你在人類科學的發展史上留下不小的一筆呢!

分佈式計算BOINC分佈式計算平台

BOINC是Berkeley Open Infrastructure for Network Computing的簡稱,即伯克利開放式網絡計算平台。
BOINC是不同分佈式計算可以共享的分佈式計算平台。不同分佈式計算項目可以直接使用BOINC的公用上傳下載系統、統計系統等,這樣不僅可以發揮各個分佈式計算之間的協調性,也能使分佈式計算的管理、使用更加方便易用。
BOINC項目由美國加州大學伯克利分校(U.C.Berkeley)主持發起。
BOINC項目由美國國家科學基金會(National Science Foundation)贊助。
BOINC有自己的積分系統,因為在BOINC上可以運行的項目千差萬別,比如項目A的任務包(Workunit,簡稱WU)在某台機器裏需要3個小時完成,而項目B的任務包在這台機器裏需要30個小時才能完成,顯然用WU的數目來衡量工作量是不可行的;類似的,機器性能也有差別,用CPU時間來衡量工作量更是不行的。積分系統只能通過一定的算法得到用户實際完成的計算量,這篇文章對BOINC中積分的計算方法進行了説明。

分佈式計算分佈式計算在中國

據中國互聯網信息中心(CNNIC)的統計信息,中文網民人數佔世界的比重已經增長到了12%左右,並且還在快速增長着。這裏所説的中文網民是包括大陸、香港、澳門、台灣和海外華人的。
相比於互聯網在中國的快速發展,分佈式計算在中國卻顯得發展緩慢。網民的數量並不能客觀反映一個國家信息化程度的高低,參與分佈式計算網民的數量或比例,卻可以顯示出這個國家科學普及的水平。在這方面,目前歐美國家處於領先。在北歐,幾乎一半的電腦參加了分佈式計算項目,這比例頗為驚人。而在中國和印度,盡最新科技不少,在網絡普及化進程中也有不錯的表現,但是在分佈式計算方面仍顯得薄弱。讓我們來看些例子:
SETI@home是世界上最大的分佈式計算項目,在中國也是最參與者最多的分佈式計算項目。它通過使用聯網的計算機下載程序分析射電望遠鏡所收到的訊號,來搜索地球外的生命跡象。
儘管中國在取得了分佈式計算領域的進步:國際排名從29上升到了24,但是中國用户完成的計算量,僅相當於日本用户完成的十分之一,而且日本的網民人數少於中國。想取得進一步的突破,提高網民素質、提高科學普及化程度無疑是十分重要的。印度和一些中東國家也有相似的問題,而中歐國家做的相對好一些,不少獨聯體國家所完成的數據計算量已經超過了俄羅斯聯邦的總和
Folding@home是一個研究蛋白質摺疊,誤解,聚合及由此引起的相關疾病的分佈式計算工程。它使用聯網式的計算方式和大量的分佈式計算能力來模擬蛋白質摺疊的過程,並指引我們對由摺疊引起的疾病的一系列研究。
中國參加這個項目的人數在不斷增多,截至2011年3月底,中國3213團隊的用户數達到3025人,活躍用户有190人左右。
參與該項目 Climateprediction工程是把最新的氣候預測模型通過家庭、學校、辦公室的計算機來進行計算。這些計算完成的結果將會組成世界最大的氣象預測模型。氣候改變了,而我們對此的行動已經是全球重要的話題。這將影響到人類的農業生產、水資源量、生態系統、能源需求、保險花費和很多其他與人類息息相關的方面。確鑿的科學依據表明,地球在在接下來的幾個世紀可能會變得温暖,但是我們無法估計到底變化會有多大。如果您參加,這將能有助與21世紀的氣候科學預測
中國已經有了很多計算機,其中不乏性能極其先進的。而他們中的大多數僅僅是打字、播放幻燈而已。這不能不説是一種資源的浪費。
從另外一個角度看,我們不難發現發達國家發展中國家的差距。我們把這種現象稱為數字鴻溝。另一個現象同樣令人痛心疾首,所有的分佈式計算項目都是由發達國家,如:美國、德國、英國、日本等發起的,這一方面也加深了科學鴻溝。斯坦福大學化學系的戈爾哈姆·理查德·切爾曼教授説,分佈式計算將加快整個人類的科學進程。科學家們可以完成以前從來想不到要去完成的,或者要花幾十年幾百年才能完成的計算任務。這是的確是千真萬確的,但是這種計算從一定程度上助長了發達國家的科學壟斷。
中國有關部門也開始意識到分佈式計算的重要性,一些大學教授和科學家也開始鑽研分佈式計算科學,比如:中科院CAS@HOME和清華大學的“清水計劃”。

分佈式計算意義格局

分佈式計算分佈式計算與人類

由於現代人類各個課題學科繁多,涉及面廣,而分類又細。而當今的每個學科似乎都需要進行大量的計算。天文學研究組織需要計算機來分析太空脈衝(pulse),星位移動;生物學家需要計算機來模擬蛋白質的摺疊(protein folding)過程;藥物學家想要研製克服艾滋病(AIDS)或非典(SARS)的藥物;數學家想計算最大的質數圓周率的更精確值;經濟學家要用計算機分析計算在幾萬種因素考慮下某個企業/城市/國家的發展方向從而宏觀調控。由此可見,人類未來的科學,時時刻刻離不開計算。而分佈式計算(Distributed Computing),以其獨特的優點——便宜、高效而越來越受到社會的關注。

分佈式計算分佈式計算格局

就目前來看,全球的各種分佈式計算已有約百種,這些計算大多互無聯繫、獨立管理、獨立使用自己的一套軟件。這種分佈式計算互相割據的格局很不利於發展的需要。比如,某個生物學研究機構需要利用世界各地誌願者的計算機來模擬蛋白質摺疊的過程,那個生物學研究機構沒有分佈式計算方面的專業人才,而但是社會上也並沒有任何公司可以提供這樣的服務,他們就不得不自己花費大量精力用於開發分佈式計算的服務器、客户端。這樣一來,原來可以用於研究生物的時間用在了別的地方。剛才提到的生物學研究機構就是美國斯坦福大學的PANDE小組。

分佈式計算BOINC一統大局

為了改變這種雜亂無章的割據,美國加州大學伯克利分校(UC Berkeley)首先提出了建立BOINC的想法。BOINC的中文全稱是伯克利開放式網絡計算平台(Berkeley Open Infrastructure for Network Computing),他能夠把許多不同的分佈式計算項目聯繫起來統一管理。並對計算機資源進行統一分配(比方您對研究艾滋病藥物和探索地外文明同時感興趣,您就可以同時選擇兩個運行,並設置優先級)。對統計評分系統進行統一管理(無論你在為哪個項目工作,只要你奉獻CPU時間長,就積分高)。有了這樣的統一管理,的確給PANDE小組這樣的科學研究機構提供了便利!
BOINC已經成熟,多個項目已經成功運行於BOINC平台之上,如SETI@homeLHC@home等。

分佈式計算安全性

對用户方來説,加入任何一個項目之前,您必須確保您可以信任項目的研製方,主要涉及兩方面:

分佈式計算計算機上的隱私數據

您從項目方下載的計算程序,運行在本機,而且可以訪問網絡,因此,只有可靠的項目方才能保證您計算機上的隱私數據不會惡意的取走、修改等。

分佈式計算個人計算機的壽命

雖然分佈式計算的計算程序一般運行在最低優先級,不會對您的日常使用造成影響,但計算程序全負荷運行時仍會對計算機的各個部件造成一定壓力,要了解更多請查看分佈式計算對計算機軟硬件的影響。
對項目方來説,參加分佈式計算的志願者畢竟不是項目方自己的人員,並不是全體可信任,因此必須引入一定的冗餘計算機制,才能防止計算錯誤、惡意作弊等。