定義

分散式計算是一門計算機科學,主要研究分散式系統。一個分散式系統包括若干通過網路互聯的計算機。這些計算機互相配合以完成一個共同的目標(我們將這個共同的目標稱為“項目”)。具體的過程是:將需要進行大量計算的項目數據分割成小塊,由多台計算機分別計算,再上傳運算結果後統一合併得出數據結論。在分散式系統上運行的電腦程式稱為分散式計算程式;分散式編程就是編寫上述程式的過程。
工作方式
項目方把大的計算任務分割成小塊(任務單元),通過網際網路分發給志願者進行計算,志願者計算完成後再通過網路把各自的計算結果返回到項目方的伺服器。
作用
可以幫助一些缺乏研究資金的、公益性質的科學研究,加速人類的科學進程。有效利用全世界聯網機器的閒置處理能力,向大眾普及科學意識。
局限性
如上分散式計算的工作方式,該類科學研究必須是可能通過計算來解決全部或部分問題,而且其計算過程必須比較容易被分割成個人計算機的處理能力能夠接受的大小,因此,分散式計算並不適用於所有的科學研究。
安全問題
信任項目
對用戶方來說,加入任何一個項目前,您必須確保您可以信任項目的研製方,主要涉及兩方面:個人計算機上的隱私數據,您從項目方下載的計算程式,運行在本機,而且可以訪問網路,因此,只有可靠的項目方才能保證您計算機上的隱私數據不會惡意的取走、修改等。
個人計算機壽命
個人計算機的壽命,雖然分散式計算的計算程式一般運行在最低優先權,不會對您的日常使用造成影響,但計算程式全負荷運行時仍會對計算機的各個部件造成一定壓力,要了解更多請查看分散式計算對計算機軟硬體的影響。
冗餘計算機制
對項目方來說,參加分散式計算的志願者畢竟不是項目方自己的人員,並不是全體可信任,因此必須引入一定的冗餘計算機制,才防止計算錯誤、惡意作弊等。
任務單元
任務單元,又稱為任務包,對應的英文單詞為Workunit,可簡稱WU,是分散式計算項目的客戶端分配到的最小單元的計算任務。客戶端在連線到項目伺服器後,可下載一個或多個新任務單元,計算完成後,再將這些任務單元的計算結果上傳給項目伺服器,並根據情況決定是否同時取回更多新的任務單元。
如何參加
概述
分散式計算項目的種類非常多,相當一部分項目的參加和使用方式各異,幸運的是從2004年開始,由SETI@home項目組推出的BOINC平台得到了日益廣泛的使用,大部分在其後產生的新項目和少部分先其產生的老項目都建立在或遷移到了BOINC平台上,這就大大減輕了志願者參加多個分散式計算項目的難度。
從 BOINC 平台開始
因此,我們建議您從BOINC平台開始,選擇一個自己感興趣的項目加入,如果您有了更多的興趣,想要參加其它的項目,所需要的操作將是相當簡單的。在您開始操作前,請務必仔細閱讀適合入門的BOINC新手指南或是內容全面的BOINC使用教程。
或者非 BOINC 平台
當然,如果您一開始就對某個非BOINC平台的項目如Folding@home感興趣,因為各個項目的參加和使用方法各不相同,請您直接訪問中國分散式計算總站關於該項目的頁面,參照其中的說明加入該項目就可以了。
常見問答解答
有沒有中國自己的項目
有中國自己的項目,正在運行的:
1.CAS@home,由中國科學院於2010年發起,感興趣的朋友請直接訪問項目頁面。
2.優美樹驗證項目,由中國分散式計算總站fwjmath網友開發,感興趣的朋友們可以到優美樹驗證項目主頁上查看。
已經結束的
1.PiSegment項目,由中國分散式計算總站 Just網友開發。希望我們對分散式計算的不懈推廣能催生更多的國產項目!
科學無國界
科學無國界,如果您對有商業套用可能性的項目比較敏感,可以選擇一些偏向於基礎科學的研究項目。
什麼成果
因分散式計算項目大都是基礎科學的研究項目,大部分研究成果是以論文的形式發表,具體可以查閱各個項目的官方網站。
共享
絕大部分分散式計算的研究成果都是共享的,具體的申明請查閱各個項目的官方網站。
CPU占用問題
CPU占用100%的問題:分散式計算程式的運行優先權非常低,一般不會對您的正常使用造成影響,但有部分大型軟體中部分組件也可能運行於同等低優先權,這時情況下,你可以手動暫停計算或是設定為不在使用計算機的時候進行計算。
分散式計算的初衷
CPU在100%運行時耗電量會有所增加,增加的幅度依賴於具體的CPU型號,我們建議您只利用計算機的閒置時間來進行計算,不建議單純為了計算而開機,這也是分散式計算的初衷。
對計算機軟硬體的影響
軟體方面
分散式計算項目對計算機的使用與日常套用所運行的程式並無很大區別,主要區別是項目計算程式一般會以最低優先權別獲得所有空閒的CPU時間,因為比起其他程式的優先權別都要低,所以雖然一般情況下計算項目看上去占用了全部的處理器資源,但一旦其他程式需要CPU運算時,項目計算程式會在作業系統的調度下自動讓出CPU時間。對於BOINC平台的用戶,根據您的需要,既可在客戶端的本地參數設定使項目只當計算機空閒時進行運算,也可以直接允許BOINC使用的處理器資源比例,具體操作可以參考BOINC的使用教程。
硬體方面
計算機的部件一般包括主機板(motherboard)、中央處理器(CPU)、記憶體(memory)、硬碟(harddisk)、顯示卡(displaycard)、電源(power)、顯示器(monitor)、鍵盤(keyboard)、滑鼠(mouse)等等。
分散式計算項目所利用志願者的硬體主要是CPU、記憶體和顯示卡圖形處理器(GPU)的閒置資源,並占用一些硬碟空間。由於各項目的差異性很大,所占用的記憶體和硬碟空間也分別很大。例如數學類項目對記憶體和硬碟的占用都比較少,而生命科學類的項目會占用較多記憶體與硬碟空間。雖然運行分散式計算項目對計算機的硬體壽命並未多少縮減,但長期運行還是會帶來一些影響。
對主機板的影響
計算項目運行過程將有大量數據在各個部件交換,晶片組的使用率將提高,同時會帶來一定的能耗和散熱問題。
對CPU的影響
計算必然需要CPU的消耗運算功能,而此時CPU將全速進行工作,CPU所消耗的電力和產生的熱量也隨之大幅增加。
對記憶體的影響
運行計算程式需要占用一定的記憶體空間。如果計算機所配置的記憶體不多的情況下,運行計算程式將減少可用的記憶體空間,特別對於多路多核系統,每個CPU核心都將運行一個計算程式,此時所消耗的記憶體空間會倍增。BOINC平台用戶可以通過本地參數設定來限制項目使用的CPU的數量(詳見BOINC的使用教程)。
對硬碟的影響
參加分散式計算項目須在硬碟儲存客戶端軟體、計算程式、任務單元等資料,不同的項目對硬碟空間的需要有所不同,例如CPDN等氣候項目需要比較多的硬碟空間,達到幾百MB。一般項目都不需要頻繁的讀寫硬碟數據,但有些項目會需要較多的頁面檔案(虛擬記憶體)空間。
對顯示卡的影響
不少項目有提供螢幕保護程式,所顯示的圖形會消耗一定的CPU與GPU的計算能力,同時帶來電力消耗和散熱問題。利用GPU計算能力的項目有著與對CPU同樣的影響,電耗和散熱的問題。另外由於調度GPU進行計算時需要到CPU的協助,會同時消耗一定的CPU計算時間。
對電源的影響
運行項目時CPU會消耗大量電力,特別對於超頻使用的,請保證整機電力消耗在電源額定使用範圍內。如果電源長期超負荷運作,將影響電源的壽命,而且電源的轉換效率也會降低。電源的故障更會涉及其他所有部件的安全。
對顯示器的影響
帶螢幕保護程式的項目可以設定在計算機閒置是啟用屏保,對於CRT顯示器有一定的保護作用。但由於開啟顯示器即消耗電力,建議在計算機閒置時手動關閉顯示器或者設定自動關閉顯示器,以節省能耗。
對散熱器的影響
運行計算程式將是計算機各個部件產生更多的熱量。風冷散熱器的風扇將以高速運轉。風扇壽命會降低,同時計算機環境的灰塵會更快的囤積在風葉和散熱片上,增加了清理灰塵的頻率。由於風扇的高速運轉,將對環境帶來更大的噪音。
對網路的影響
大部分項目對網路的需求都很低,計算程式和工作單元檔案一般不大,在進行計算時一般都不需要網路連線。往後只需要下載新工作單元和上傳計算結果。