內容摘要:為普及志願者分布式計算相關知識,從基礎知識開始逐步解開大家對於志願者分布式計算的種種不解和疑惑,文中把自己參與分布式計算的感受和了解的知識與大家分享,同時也希望更多人能以科學的眼光來看待分布式計算並給予理解和支持。同時中國的分布式計算的發展,不僅依靠程序開發人員,更多地需要依靠志願者長期穩定的參與和支持,力所能及地為人類進步儘自己的綿薄之力。
關鍵詞:志願者;分布式計算;應用;現狀
分布式計算是一門計算機科學,主要研究分布式系統。一個分布式系統包括若干通過網絡互聯的計算機。這些計算機互相配合以完成一個共同的項目。具體的過程是:將需要進行大量計算的項目數據分割成小塊,由多臺計算機分別計算,再上傳運算結果後統一合併得出數據結論。在分布式系統上運行的電腦程式稱為分布式計算程序;分布式編程就是編寫上述程序的過程。分布式計算技術已經歷十幾年的研究,但該領域現在仍然方興未艾,將是計算機研究領域的最有發展潛力的領域之一,在不同的應用領域發展起來特點各異的分布式計算技術的分支。
1 概述
1.1為什麼需要志願者分布式計算
(1)可以幫助一些缺乏研究資金的、公益性質的科學研究,加速人類的科學進程
(2)有效利用全世界聯網機器的閒置處理能力
(3)向大眾普及科學意識
1.2所有科學研究都可以用分布式計算來解決嗎
不是,適合分布式計算的科學研究必須是可能通過計算來解決全部或部分問題,而且其計算過程必須比較容易被分割成個人計算機的處理能力能夠接受的大小,因此,分布式計算並不適用於所有的科學研究。
據統計,僅BOINC平臺上,目前已有50個項目和580000位志願者的計算機提供著平均 1.2 PetaFLOPS 的計算能力。可以說巨型機已經完全被淹沒在人民的海洋裡,這就是志願者分布式計算的力量。
1.3分布式計算的工作方式
項目方把大的計算任務分割成小塊(任務單元),通過網際網路分發給志願者進行計算,志願者計算完成後再通過網絡把各自的計算結果返回到項目方的伺服器。
2 參加分布式計算
2.1從 BOINC 平臺開始
分布式計算項目的種類非常多,相當一部分項目的參加和使用方式各異,幸運的是從2004年開始,由 SETI@home 項目組推出的 BOINC 平臺得到了日益廣泛的使用,大部分在其後產生的新項目和少部分先其產生的老項目都建立在或遷移到了BOINC平臺上,這就大大減輕了志願者參加多個分布式計算項目的難度。
BOINC 是當前最為流行的分布式計算平臺[1],提供了統一的前端和後端架構,一方面大為簡化了分布式計算項目的開發,另一方面,對參加分布式計算的志願者來說,參與多個項目的難度也大為降低。目前已經有超過 50 個的分布式計算項目基於 BOINC 平臺,BOINC 平臺上的主流項目包括有 SETI@home、Einstein@Home、World Community Grid(WCG) 等等。
2.2 BOINC 平臺下的部分項目
2.1.1 SETI@home
SETI@home(通過分析從射電望遠鏡傳來的數據來搜尋地外文明)
2.1.2 IBM World Community Grid[2]
AfricanClimate@Home(地球科學類,非洲區域的氣候模擬)
Computing for Clean Water(「清水計算」項目)
FightAIDS@Home(生命科學類,尋找抗擊 AIDS 的有效藥物)
Genome Comparison(生命科學類,染色體對比研究)
Help Conquer Cancer(生命科學類,幫助科學家徵服癌症)
Help Defeat Cancer(生命科學類,幫助科學家對抗癌症)
Human Proteome Folding(生命科學類,人類蛋白質摺疊研究)
Human Proteome Folding 2(生命科學類,人類蛋白質摺疊第2階段研究)
2.1.3 數學與計算機科學項目
ABC@home(尋找滿足 ABC 猜想三元數組的分布)
Chess960@home(象棋算法測試)
Collatz Conjecture(研究考拉茲猜想)
Enigma@Home(破解恩尼格瑪密碼)
NCSSM Grid(網格計算研究)
RND@home(測試一個算法用儘量少的基站來覆蓋儘量大的面積)
SHA-1 Collision Search Graz(SHA-1 密碼分析)
2.1.4 物理化學類項目
BRaTS@home(引力透鏡描繪)
Cosmology@home(天文計算宇宙模型)
Einstein@Home(尋找引力波證據)
Hydrogen@home(尋找生成氫的有效方法)
LHC@home(模擬粒子在大型強子對撞機中運行從而研究其穩定性)
MilkyWay@home(研究銀河系的建模和深化)
Nano-Hive@home(納米尺度的實體世界的模擬)
QMC@Home(量子蒙特卡洛法研究)
uFluids@Home(模擬微重力和微流體力學問題中的氣/液兩相流動現象)
Zivis(研究在核聚變容器(託卡馬克)裡邊的等離子體的流動)
2.1.5 地球科學項目
BBC Climate Change(模擬1920到2080年的氣候變化)
ClimatePrediction.Net(簡稱CPDN)(預測21世紀氣候的一項實驗)
Seasonal Attribution Project(研究人類的工業活動對氣候的影響)
2.1.6 生命科學項目
Docking@home(探索多尺度性質的算法的修改蛋白質-配體對接)
Folding@home(蛋白質摺疊過程研究)
Malaria Control.net(瘧疾藥物、疫苗開發研究)
NNSIMU Project(神經網絡模擬)
POEM@HOME(預測蛋白質結構)
Predictor@home(研究蛋白質序列來預測蛋白質結構)
Proteins@home(蛋白質結構預測)
GPUGRID(顯卡項目系列,有多個子項目)
RALPH@home(Rosetta@home的子測試項目)
Rosetta@home(增強預測和設計蛋白質結構及其複合體技術準確性)
SIMAP(探察蛋白質序列的相似性)
Superlink@Technion(研究基因的連結,來找出糖尿病、高血壓、癌症、精神分裂症等疾病的原因)
TANPAKU(蛋白質結構預測)
2.2如何參加BOINC
運行下載好的 BOINC 安裝文件,安裝程序啟動後,一般用戶按照預設的設置進行安裝即可。
安裝操作完成後,安裝程序將自動運行客戶端的管理界面,且預設使用的是客戶端的簡易視圖,同時會顯示「加入項目」的嚮導對話框,通過統一的步驟來加入項目。
2.3團隊管理
團隊是由用戶組成的群體,擁有團隊名稱、總積分等屬性,用戶可自由加入和退出。
加入團隊對用戶的積分沒有任何影響,但加入團隊後,用戶所得到的新積分,用戶所屬的團隊也能得到同樣的積分,離開團隊後或者換到其它團隊,貢獻給原團隊的積分不帶走。作為中國人,當然強烈建議加入Team China!
加入團隊的方法: 在各個項目的官方網站都可以搜索相應項目的團隊,進入團隊的頁面後,有個 Join(加入)的連結,點擊後即可加入該團隊(可能需要先進行登錄)。而客戶端在下一次與伺服器通訊後即可正確顯示用戶的團隊信息。
3 我國目前分布式計算現狀
分布式計算在國內的普及度還有待提高,但主流媒體已多次對分布式計算的相關內容進行了報導。國內僅各大高校和科研機構參與分布式計算[3],我國雖擁有基數龐大的計算機用戶和網絡用戶,但實際了解並運用分布式計算的用戶卻不多,大部分人或者絕大多數用戶使用計算機進行日常溝通、信息查詢、聊天娛樂等功能,與歐美國家國家相比而言,我國不僅理論研究的深度不夠,並且實際應用的廣度也無法與歐美發達國家比肩。
通過調查了解到,參加過分布式計算志願者服務的師生一般對分布式計算的相關知識多少會有所了解,而對此類知識不了解的師生通過了解後大都表示出對此項技術的支持,都表達出願意參加這種方式為人類科研進步儘自己的一份力量。
目前存在的這樣情況與國內媒體正面宣傳不到位有關,我們擁有全球最廣泛的網民,卻在志願者分布式計算發展方面步履維艱。分布式計算的客戶端程序在今天看來已經非常成熟和簡單,它讓科研不再高深,反而平易近人。我們的媒體因此更是肩負重大的責任,在更多的文章中提及分布式計算,引導大家了解項目細節,改變以往的認識。我們的政府和科研機構同樣應該引起重視,因為合理安全地利用志願者提供的運算資源是一個重大課題,開發好的運算項目,服務於經濟建設同時推動科技發展,何樂而不為。在我們的國家網格日臻完善時,大家共同行動起來開發和使用民間巨大的計算資源,志願者分布式計算帶來的益處和成果同樣不可估量。
4 總結
分布式計算作為一項快速發展的計算機技術,因有低運營成本高計算性能的優勢,且目前我國有豐富的閒置計算資源,其發展前景十分樂觀,關於對該項技術的研究,我國明顯落後於發達國家,已經成為計算機大國,存在嚴重的資源浪費和閒置,隨著計算機的普及,個人電腦開始進入千家萬戶。與之伴隨產生的是電腦的利用問題。越來越多的電腦處於閒置狀態,即使在開機狀態下CPU的潛力也遠遠不能被完全利用。我們可以想像,一臺家用的計算機將大多數的時間花費在「等待」上面。即便是使用者實際使用他們的計算機時,處理器依然是寂靜的消費,依然是不計其數的等待。現在分布式計算技術只是在一些高校、科研機構內作為研究和應用的對象[4],分布式計算技術雖然發展迅速[5],但各項技術大都存在一些問題,例如:數據安全問題、網絡異構問題等等,還有巨大的研究和發展潛力。
參考文獻 略