A. 分布式存儲中,怎樣使用paxos演算法保證數據的一致性
在分布式系統中,我們經常遇到多數據副本保持一致的問題,在我們所能找到的資料中該問題講的很籠統,模模糊糊的,把多個問題或分類糅合在一起,難以理解。在思考和翻閱資料後,通俗地把一致性的問題可分解為2個問題:
1、任何一次修改保證數據一致性。
2、多次數據修改的一致性。
在弱一致性的演算法,不要求每次修改的內容在修改後多副本的內容是一致的,對問題1的解決比較寬松,更多解決問題2,該類演算法追求每次修改的高度並發性,減少多副本之間修改的關聯性,以獲得更好的並發性能。例如最終一致性,無所謂每次用戶修改後的多副本的一致性及格過,只要求在單調的時間方向上,數據最終保持一致,如此獲得了修改極大的並發性能。
在強一致性的演算法中,強調單次修改後結果的一致,需要保證了對問題1和問題2要求的實現,犧牲了並發性能。本文是討論對解決問題1實現演算法,這些演算法往往在強一致性要求的應用中使用。
解決問題1的方法,通常有兩階段提交演算法、採用分布式鎖服務和採用樂觀鎖原理實現的同步方式,下面分別介紹這幾種演算法的實現原理。
兩階段提交演算法
在兩階段提交協議中,系統一般包含兩類機器(或節點):一類為協調者(coordinator),通常一個系統中只有一個;另一類為事務參與者(participants,cohorts或workers),一般包含多個,在數據存儲系統中可以理解為數據副本的個數。兩階段提交協議由兩個階段組成,在正常的執行下,這兩個階段的執行過程如下所述:
階段1:請求階段(commit-request phase,或稱表決階段,voting phase)。
在請求階段,協調者將通知事務參與者准備提交或取消事務,然後進入表決過程。在表決過程中,參與者將告知協調者自己的決策:同意(事務參與者本地作業執行成功)或取消(本地作業執行故障)。
階段2:提交階段(commit phase)。
在該階段,協調者將基於第一個階段的投票結果進行決策:提交或取消。當且僅當所有的參與者同意提交事務協調者才通知所有的參與者提交事務,否則協調者將通知所有的參與者取消事務。參與者在接收到協調者發來的消息後將執行響應的操作。
舉個例子:A組織B、C和D三個人去爬長城:如果所有人都同意去爬長城,那麼活動將舉行;如果有一人不同意去爬長城,那麼活動將取消。用2PC演算法解決該問題的過程如下:
首先A將成為該活動的協調者,B、C和D將成為該活動的參與者。
階段1:A發郵件給B、C和D,提出下周三去爬山,問是否同意。那麼此時A需要等待B、C和D的郵件。B、C和D分別查看自己的日程安排表。B、C發現自己在當日沒有活動安排,則發郵件告訴A它們同意下周三去爬長城。由於某種原因,D白天沒有查看郵件。那麼此時A、B和C均需要等待。到晚上的時候,D發現了A的郵件,然後查看日程安排,發現周三當天已經有別的安排,那麼D回復A說活動取消吧。
階段2:此時A收到了所有活動參與者的郵件,並且A發現D下周三不能去爬山。那麼A將發郵件通知B、C和D,下周三爬長城活動取消。此時B、C回復A「太可惜了」,D回復A「不好意思」。至此該事務終止。
兩階段提交演算法在分布式系統結合,可實現單用戶對文件(對象)多個副本的修改,多副本數據的同步。其結合的原理如下:
1、客戶端(協調者)向所有的數據副本的存儲主機(參與者)發送:修改具體的文件名、偏移量、數據和長度信息,請求修改數據,該消息是1階段的請求消息。
2、存儲主機接收到請求後,備份修改前的數據以備回滾,修改文件數據後,向客戶端回應修改成功的消息。 如果存儲主機由於某些原因(磁碟損壞、空間不足等)不能修改數據,回應修改失敗的消息。
3、客戶端接收發送出去的每一個消息回應,如果存儲主機全部回應都修改成功,向每存儲主機發送確認修改的提交消息;如果存在存儲主機回應修改失敗,或者超時未回應,客戶端向所有存儲主機發送取消修改的提交消息。該消息是2階段的提交消息。
4、存儲主機接收到客戶端的提交消息,如果是確認修改,則直接回應該提交OK消息;如果是取消修改,則將修改數據還原為修改前,然後回應取消修改OK的消息。
5、 客戶端接收全部存儲主機的回應,整個操作成功。
在該過程中可能存在通信失敗,例如網路中斷、主機宕機等諸多的原因,對於未在演算法中定義的其它異常,都認為是提交失敗,都需要回滾,這是該演算法基於確定的通信回復實現的,在參與者的確定回復(無論是回復失敗還是回復成功)之上執行邏輯處理,符合確定性的條件當然能夠獲得確定性的結果哲學原理。
分布式鎖服務
分布式鎖是對數據被外界修改持保守態度,在整個數據處理過程中將數據處於鎖定狀態,在用戶修改數據的同時,其它用戶不允許修改。
採用分布式鎖服務實現數據一致性,是在操作目標之前先獲取操作許可,然後再執行操作,如果其他用戶同時嘗試操作該目標將被阻止,直到前一個用戶釋放許可後,其他用戶才能夠操作目標。分析這個過程,如果只有一個用戶操作目標,沒有多個用戶並發沖突,也申請了操作許可,造成了由於申請操作許可所帶來的資源使用消耗,浪費網路通信和增加了延時。
採用分布式鎖實現多副本內容修改的一致性問題, 選擇控制內容顆粒度實現申請鎖服務。例如我們要保證一個文件的多個副本修改一致, 可以對整個文件修改設置一把鎖,修改時申請鎖,修改這個文件的多個副本,確保多個副本修改的一致,修改完成後釋放鎖;也可以對文件分段,或者是文件中的單個位元組設置鎖, 實現更細顆粒度的鎖操作,減少沖突。
常用的鎖實現演算法有Lamport bakery algorithm (俗稱麵包店演算法), 還有Paxos演算法。下面對其原理做簡單概述。
Lamport麵包店演算法
是解決多個線程並發訪問一個共享的單用戶資源的互斥問題的演算法。 由Leslie Lamport(英語:Leslie Lamport)發明。
Lamport把這個並發控制演算法可以非常直觀地類比為顧客去麵包店采購。麵包店只能接待一位顧客的采購。已知有n位顧客要進入麵包店采購,安排他們按照次序在前台登記一個簽到號碼。該簽到號碼逐次加1。根據簽到號碼的由小到大的順序依次入店購貨。完成購買的顧客在前台把其簽到號碼歸0. 如果完成購買的顧客要再次進店購買,就必須重新排隊。
這個類比中的顧客就相當於線程,而入店購貨就是進入臨界區獨占訪問該共享資源。由於計算機實現的特點,存在兩個線程獲得相同的簽到號碼的情況,這是因為兩個線程幾乎同時申請排隊的簽到號碼,讀取已經發出去的簽到號碼情況,這兩個線程讀到的數據是完全一樣的,然後各自在讀到的數據上找到最大值,再加1作為自己的排隊簽到號碼。為此,該演算法規定如果兩個線程的排隊簽到號碼相等,則線程id號較小的具有優先權。
把該演算法原理與分布式系統相結合,即可實現分步鎖。
Paxos演算法
該演算法比較熱門,參見WIKI,http://zh.wikipedia.org/wiki/Paxos%E7%AE%97%E6%B3%95
Paxos演算法解決的問題是一個分布式系統如何就某個值(決議)達成一致。一個典型的場景是,在一個分布式資料庫系統中,如果各節點的初始狀態一致,每個節點都執行相同的操作序列,那麼他們最後能得到一個一致的狀態。為保證每個節點執行相同的命令序列,需要在每一條指令上執行一個「一致性演算法」以保證每個節點看到的指令一致。一個通用的一致性演算法可以應用在許多場景中,是分布式計算中的重要問題。節點通信存在兩種模型:共享內存(Shared memory)和消息傳遞(Messages passing)。Paxos演算法就是一種基於消息傳遞模型的一致性演算法。BigTable使用一個分布式數據鎖服務Chubby,而Chubby使用Paxos演算法來保證備份的一致性。
採用樂觀鎖原理實現的同步
我們舉個例子說明該演算法的實現原理。如一個金融系統,當某個操作員讀取用戶的數據,並在讀出的用戶數據的基礎上進行修改時(如更改用戶帳戶余額),如果採用前面的分布式鎖服務機制,也就意味著整個操作過程中(從操作員讀出數據、開始修改直至提交修改結果的全過程,甚至還包括操作員中途去煮咖啡的時間),資料庫記錄始終處於加鎖狀態,可以想見,如果面對幾百上千個並發,這樣的情況將導致怎樣的後果。
樂觀鎖機制在一定程度上解決了這個問題。樂觀鎖,大多是基於數據版本( Version)記錄機制實現。何謂數據版本?即為數據增加一個版本標識,在基於資料庫表的版本解決方案中,一般是通過為資料庫表增加一個 「version」 欄位來實現。讀取出數據時,將此版本號一同讀出,之後更新時,對此版本號加一。此時,將提交數據的版本數據與資料庫表對應記錄的當前版本信息進行比對,如果提交的數據版本號大於資料庫表當前版本號,則予以更新,否則認為是過期數據。
對於上面修改用戶帳戶信息的例子而言,假設資料庫中帳戶信息表中有一個 version 欄位,當前值為 1 ;而當前帳戶余額欄位( balance )為 $100 。
操作員 A 此時將其讀出(version=1 ),並從其帳戶余額中扣除 $50($100-$50 )。
在操作員 A 操作的過程中,操作員B也讀入此用戶信息( version=1 ),並從其帳戶余額中扣除 $20 ( $100-$20 )。
操作員 A 完成了修改工作,將數據版本號加一( version=2 ),連同帳戶扣除後余額( balance=$50 ),提交至資料庫更新,此時由於提交數據版本大於資料庫記錄當前版本,數據被更新,資料庫記錄 version 更新為 2 。
操作員 B 完成了操作,也將版本號加一( version=2 )試圖向資料庫提交數據( balance=$80 ),但此時比對資料庫記錄版本時發現,操作員 B 提交的數據版本號為 2 ,資料庫記錄當前版本也為 2 ,不滿足 「 提交版本必須大於記錄當前版本才能執行更新 「 的樂觀鎖策略,因此,操作員 B 的提交被駁回。這樣,就避免了操作員 B 用基於 version=1 的舊數據修改的結果覆蓋操作員A 的操作結果的可能。
樂觀鎖機制與分布式系統相結合上, 我整理了偽代碼如下:
obj 操作的目標
vlaue 修改的值
atom_update_ver 每個目標上的版本,每次修改該值遞增
set( obj, value)
{
//從每個節點上取出修改前的對象版本
get original_ver = obj.atom_update_ver from each node;
//將值賦到每個節點的obj目標
set obj = value from each node;
//條件修改每個節點的obj版本,目標版本加一
//比較和修改操作是原子操作
result = (set obj.atom_update_ver = original_ver + 1
where original_ver + 1 > obj.atom_update_ver
for each node);
if(result == ok)
return set_ok;
else
return set(obj, value);//不成功遞歸修改
該演算法未考慮節點下線、失效等問題,在後續我將分析採用樂觀鎖原理實現一致性演算法,解決問題2、節點失效、通信失敗等問題。
B. 分布式計算系統 Maekawa演算法 13個進程怎麼劃分子集
第一個進程子集是(1.2.4.10);第二個進程子集是(2.3.5.11);以後每一列數字遞增,13以後從1重新開始。
分布式系統的類型,大致可以歸為三類:
1、分布式數據,但只有一個總資料庫,沒有局部資料庫。
2、分層式處理,每一層都有自己的資料庫。
3、充分分散的分布式網路,沒有中央控制部分,各節點之間的聯接方式又可以有多種,如鬆散的聯接,緊密的聯接,動態的聯接,廣播通知式聯接等。
(2)分布式演算法題大全擴展閱讀
衡量分布式系統的指標
1、性能:系統的吞吐能力,指系統在某一時間可以處理的數據總量,通常可以用系統每秒處理的總的數據量來衡量;系統的響應延遲,指系統完成某一功能需要使用的時間。
系統的並發能力,指系統可以同時完成某一功能的能力,通常也用QPS(query per second)來衡量。上述三個性能指標往往會相互制約,追求高吞吐的系統,往往很難做到低延遲;系統平均響應時間較長時,也很難提高QPS。
2、可用性:系統的可用性(availability)指系統在面對各種異常時可以正確提供服務的能力。
系統的可用性可以用系統停服務的時間與正常服務的時間的比例來衡量,也可以用某功能的失敗次數與成功次數的比例來衡量。可用性是分布式的重要指標,衡量了系統的魯棒性,是系統容錯能力的體現。
3、可擴展性:系統的可擴展性(scalability)指分布式系統通過擴展集群機器規模提高系統性能(吞吐、延遲、並發)、存儲容量、計算能力的特性。
好的分布式系統總在追求「線性擴展性」,也就是使得系統的某一指標可以隨著集群中的機器數量線性增長。
4、一致性:分布式系統為了提高可用性,總是不可避免的使用副本的機制,從而引發副本一致性的問題。越是強的一致的性模型,對於用戶使用來說使用起來越簡單。
C. 什麼是分布式計算
什麼是分布式計算
分布式計算(Distributed Computation)是一種計算方法,和集中式計算是相對的。隨著計算技術的發展,有些應用需要非常巨大的計算能力才能完成,如果採用集中式計算,需要耗費相當長的時間來完成。分布式計算將該應用分解成許多小的部分,分配給多台計算機進行處理。這樣可以節約整體計算時間,大大提高計算效率。
D. DUAL 基於擴散計算的分布式更新演算法((Diffusing Update Algorithm)
增強的I G R P(E I G R P)是C i s c o所有的把距離向量路由協議和鏈路狀態路由協議的最佳特
性融合在一起的路由協議。E I G R P像I G R P一樣配置並且使用與I G R P相同的度量。增強部分是
通過加入散播更新演算法(D U A L)來提供的。D U A L是在J.J. Garcia的指導下由SRI 公司開發
的,用來獲得理論上保證無環網路的快速收斂的路由協議。距離向量、鏈路 -狀態和D U A L的
結合產生了E I G R P的下列特徵:
■ 快速收斂。
■ 減少了帶寬消耗。
■ 增大網路規模。
■ 減少路由器C P U利用。
快速收斂是因為使用了D U A L。使用E I G R P的路由快速收斂是通過在路由表中備份路由而
達到的。換句話說,到達一目的網路的最小開銷(選中者)和次最小開銷(也叫適宜後繼,
feasible successor)路由被保存在路由表中。這使得路由器可以快速地適應鏈路斷接而不引起
網路中主要網路的分裂。所優選的和備份的路由基於來自鄰接路由器的更新而被重新計算。
在初始收斂後,E I G R P僅當有路由變化時並且僅為變化的路由更新鄰接路由器。
因為E I G R P僅當到某個目的網路的路由狀態改變或路由的度量改變時才向鄰接 E I G R P路
由器發送路由更新,這些部分更新需要少得多的帶寬。另外,路由更新僅被發送到需要知道
狀態改變的鄰接路由器。由於增量更新的使用, E I G R P比I G R P使用更少的C P U。
因為1 5跳躍數的限制,大型網路使用R I P作為路由協議有困難。E I G R P使得可以構建更大
的網路,把跳躍限制增加到2 5 5。這意味著E I G R P計算的度量支持成千的跳躍數,允許很大的
網路配置。使用E I G R P也把網路大小的限制移動到協議棧的傳輸層。 E I G R P在報文通過1 5個
E I G R P路由器後、並且下一跳是E I G R P路由器時將傳輸控制域增1,E I G R P以此來減輕傳輸層
跳躍數1 5的不足。如果報文上非E I G R P路由器使用下一跳,則傳輸控制域獲得增量。
因為E I G R P是C i s c o公司擁有產權的路由協議,所以它具有開放標准路由協議所不具有的
優點。E I G R P還可用於傳送Novell IPX RIP/SAP更新和A p p l e Ta l k路由表維護協議(RT M P)的
路由和服務信息。在這些另外的路由協議上使用E I G R P,尤其在Novell IPX網路中優點更突出,
E I G R P在E I G R P路由器之間發送增量R I P / S A P更新。這些更新僅當I P X項發生改變時才被發送。
另外,在N o v e l l網路中使用E I G R P時,跳躍數將是2 5 5而不是IPX RIP的跳躍數1 5。用於N o v e l l
I P X的E I G R P基於E I G R P度量的帶寬和延時選擇到某目的地的最佳路由,而不是 I P X度量的滴
答和跳躍數。
E I G R P使用三種類型的表來確定路由。所有這些表用於 E I G R P所支持的三種網路協議。
這些表被稱為鄰接(N e i g h b o r)、拓撲(To p o l o g y)和路由(R o u t i n g)。每台E I G R P路由器列
出下一跳路由器的地址(鄰接路由器的網路層地址)以及路由器上鄰接路由器所連接到的接
口。使用此表驗證雙向通信的E I G R P進程。拓撲表包含目的網路和多達 6條的到達每個目的地
的已知路由。其中包括選中的(最佳路由)和適宜後繼(備份路由)。路由表是到達目的網路
的最佳路由(選中者)的列表。路由表是用拓撲表中的每個目的網路的最佳路由項填充的。
E I G R P為所有允許的、支持的網路層協議維護一組表。 E I G R P使用可變長子網掩碼
(V L S M)I P定址和路由匯總進一步支持I P網路層協議。
E. 分布式計算的基本信息
廣義定義
所謂分布式計算是一門計算機科學,它研究如何把一個需要非常巨大的計算能力才能解決的問題分成許多小的部分,然後把這些部分分配給許多計算機進行處理,最後把這些計算結果綜合起來得到最終的結果。 最近的分布式計算項目已經被用於使用世界各地成千上萬位志願者的計算機的閑置計算能力,通過網際網路,您可以分析來自外太空的電訊號,尋找隱蔽的黑洞,並探索可能存在的外星智慧生命;您可以尋找超過1000萬位數字的梅森質數;您也可以尋找並發現對抗艾滋病病毒的更為有效的葯物。這些項目都很龐大,需要驚人的計算量,僅僅由單個的電腦或是個人在一個能讓人接受的時間內計算完成是決不可能的。
中國科學院的定義
分布式計算是一種新的計算方式。所謂分布式計算就是在兩個或多個軟體互相共享信息,這些軟體既可以在同一台計算機上運行,也可以在通過網路連接起來的多台計算機上運行。分布式計算比起其它演算法具有以下幾個優點:
1、稀有資源可以共享。
2、通過分布式計算可以在多台計算機上平衡計算負載。
3、可以把程序放在最適合運行它的計算機上。
其中,共享稀有資源和平衡負載是計算機分布式計算的核心思想之一。 分布式計算是利用互聯網上的計算機的中央處理器的閑置處理能力來解決大型計算問題的一種計算科學。下面,我們看看它是怎麼工作的:
首先, 要發現一個需要非常巨大的計算能力才能解決的問題。這類問題一般是跨學科的、極富挑戰性的、人類急待解決的科研課題。其中較為著名的是: 解決較為復雜的數學問題,例如:GIMPS(尋找最大的梅森素數)。 研究尋找最為安全的密碼系統,例如:RC-72(密碼破解)。 生物病理研究,例如:Folding@home(研究蛋白質折疊,誤解,聚合及由此引起的相關疾病)。 各種各樣疾病的葯物研究,例如:United Devices(尋找對抗癌症的有效的葯物)。 信號處理,例如:SETI@Home(在家尋找地外文明)。 在以前,這些問題都應該由超級計算機來解決。但是, 超級計算機的造價和維護非常的昂貴,這不是一個普通的科研組織所能承受的。隨著科學的發展,一種廉價的、高效的、維護方便的計算方法應運而生——分布式計算!
隨著計算機的普及,個人電腦開始進入千家萬戶。與之伴隨產生的是電腦的利用問題。越來越多的電腦處於閑置狀態,即使在開機狀態下中央處理器的潛力也遠遠不能被完全利用。我們可以想像,一台家用的計算機將大多數的時間花費在「等待」上面。即便是使用者實際使用他們的計算機時,處理器依然是寂靜的消費,依然是不計其數的等待(等待輸入,但實際上並沒有做什麼)。互聯網的出現, 使得連接調用所有這些擁有限制計算資源的計算機系統成為了現實。
那麼,一些本身非常復雜的但是卻很適合於劃分為大量的更小的計算片斷的問題被提出來,然後由某個研究機構通過大量艱辛的工作開發出計算用服務端和客戶端。服務端負責將計算問題分成許多小的計算部分,然後把這些部分分配給許多聯網參與計算的計算機進行並行處理,最後將這些計算結果綜合起來得到最終的結果。
當然,這看起來也似乎很原始、很困難,但是隨著參與者和參與計算的計算機的數量的不斷增加, 計算計劃變得非常迅速,而且被實踐證明是的確可行的。目前一些較大的分布式計算項目的處理能力已經可以達到甚而超過目前世界上速度最快的巨型計算機。
您也可以選擇參加某些項目以捐贈Cpu的內核處理時間,您將發現您所提供的 中央處理器 內核處理時間將出現在項目的貢獻統計中。您可以和其他的參與者競爭貢獻時間的排名,您也可以加入一個已經存在的計算團體或者自己組建一個計算小組。這種方法很利於調動參與者的熱情。
隨著民間的組隊逐漸增多, 許多大型組織(例如公司、學校和各種各樣的網站)也開始了組建自己的戰隊。同時,也形成了大量的以分布式計算技術和項目討論為主題的社區,這些社區多數是翻譯製作分布式計算項目的使用教程及發布相關技術性文章,並提供必要的技術支持。
那麼誰可能加入到這些項目中來呢? 當然是任何人都可以! 如果您已經加入了某個項目,而且曾經考慮加入計算小組, 您將在中國分布式計算總站及論壇里找到您的家。任何人都能加入任何由我站的組建的分布式計算小組。希望您在中國分布式總站及論壇里發現樂趣。
參與分布式計算——一種能充分發揮您的個人電腦的利用價值的最有意義的選擇——只需要下載有關程序,然後這個程序會以最低的優先度在計算機上運行,這對平時正常使用計算機幾乎沒有影響。如果你想利用計算機的空餘時間做點有益的事情,還猶豫什麼?馬上行動起來吧,你的微不足道的付出或許就能使你在人類科學的發展史上留下不小的一筆呢! 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和清華大學的「清水計劃」。
F. 分布式功率控制的演算法
空中介面(Air Interface)是指用戶終端(UT)和無線接入網路(RAN)之間的介面,它是任何一種移動通信系統的關鍵模塊之一,也是其「移動性」的集中體現。IMT-Advanced的空中介面,在設計思想上是基於ITU-R M.1645建議,其設計目標是:以用戶為中心;技術上靈活;成本上可行。
IMT-Advanced系統中典型應用場景有三種:廣域場景,其小區覆蓋大,業務量中等;大城市場景,其小區覆蓋中等,業務量高;本地場景,其小區覆蓋小,業務量高。IMT-Advanced系統根據不同的應用場景,對空中介面提出了不同的性能要求(見表1)。