什麼是分散式運算?
分散式計算是一種計算方法,和集中式計算是相對的,分散式計算是將該應用分解成許多小的部分,分配給多台計算機進行處理,這樣可以節約整體計算時間,大幅提升計算效率。
分散式運算定義
廣義定義
研究如何把一個需要非常巨大的運算能力才能解決的問題分成許多小的部分,然後把這些部分分配給許多計算機處理,最後把這些計算結果綜合起來得到最終的結果。
最近的分散式運算計畫已經被用於使用世界各地成千上萬位志工的電腦的閒置運算能力,透過因特網,可以分析來自外太空的電訊號,尋找隱藏的黑洞,並探索可能存在的外星智慧生命;可以尋找超過1000萬位數字的梅森質數;也可以尋找並發現對抗愛滋病病毒的更為有效的藥物。這些項目都很龐大,需要驚人的計算量,僅僅由單一的電腦或個人在一個能讓人接受的時間內計算完成是絕不可能的。
中國科學院的定義
在兩個或多個軟體互相分享訊息,這些軟體既可以在同一台電腦上運行,也可以在透過網路連接起來的多台電腦上運行。分散式計算比起其它演算法有以下幾個優點:
1、稀有資源可以共享。
2、透過分散式計算可以在多台電腦上平衡計算負載。
3、可以把程式放在最適合運作它的電腦上。
其中,共享稀有資源和平衡負載是電腦分散式運算的核心思想之一。
網格計算
網格計算就是分散式計算的一種。如果某項工作是分散式的,那麼,參與這項工作的一定不只是一台計算機,而是一個計算機網絡,這種“螞蟻搬山”的方式將具有很強的數據處理能力。
網格計算的實質就是組合與共享資源並確保系統安全。
工作原理
分散式運算是利用網路上的電腦的中央處理器的閒置處理能力來解決大型運算問題的一種運算科學。下面,我們來看看它是怎麼運作的:
#首先, 要發現一個需要非常巨大的運算能力才能解決的問題。這類問題一般是跨領域的、極富挑戰性的、人類急待解決的科學研究課題。其中較著名的是:
解決較複雜的數學問題,例如:GIMPS(尋找最大的梅森素數)。
研究尋找最安全的密碼系統,例如:RC-72(密碼破解)。
生物病理研究,例如:Folding@home(研究蛋白質摺疊,誤解,聚合及由此引起的相關疾病)。
各種疾病的藥物研究,例如:United Devices(尋找對抗癌症的有效的藥物)。
訊號處理,例如: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團隊的用戶數達到3,025人,活躍用戶約190人。
參與此計畫 Climateprediction工程是把最新的氣候預測模型透過家庭、學校、辦公室的電腦來進行計算。這些計算完成的結果將會組成世界最大的氣象預測模型。氣候改變了,而我們對此的行動已經是全球重要的議題。這將影響到人類的農業生產、水資源量、生態系統、能源需求、保險花費和許多其他與人類息息相關的方面。確鑿的科學依據表明,地球在接下來的幾個世紀可能會變得溫暖,但是我們無法估計到底變化會有多大。如果您參加,這將有助於與21世紀的氣候科學預測。
中國已經有了很多計算機,其中不乏性能極其先進的。而他們中的大多數只是打字、播放幻燈而已。這不能不說是一種資源的浪費。
從另一個角度來看,我們不難發現已開發國家和開發中國家的差距。我們把這種現象稱為數位落差。另一個現象同樣令人痛心疾首,所有的分散式運算計畫都是由已開發國家,如:美國、德國、英國、日本等發起的,這一方面也加深了科學鴻溝。史丹佛大學化學系的戈爾哈姆·理查德·切爾曼教授說,分散式計算將加快整個人類的科學進程。科學家可以完成以前從來想不到要去完成的,或是要花幾十年幾百年才能完成的計算任務。這是的確是千真萬確的,但是這種計算從某種程度上助長了已開發國家的科學壟斷。
中國相關部門也開始意識到分散式運算的重要性,一些大學教授和科學家也開始鑽研分散式計算科學,例如:中科院CAS@HOME和清華大學的「清水計畫」。
推薦教學:《PHP》
以上是什麼是分散式計算?的詳細內容。更多資訊請關注PHP中文網其他相關文章!