網格計算
網格計算(英語:Grid computing)透過利用大量異構計算機(通常為桌上電腦)的未用資源(CPU周期和磁碟儲存),將其作為嵌入在分散式電信基礎設施中的一個虛擬的電腦叢集,為解決大規模的計算問題提供一個模型。網格計算的焦點放在支援跨管理域計算的能力,這使它與傳統的電腦叢集或傳統的分散式計算相區別。
網格計算的設計目標是:解決對於任何單一的超級電腦來說,仍然大得難以解決的問題,並同時保持解決多個較小的問題的靈活性。這樣,網格計算就提供了一個多用戶環境。它的第二個目標就是:更好的利用可用計算力,迎合大型的計算練習的斷斷續續的需求。
網格計算包括共用異構資源(基於不同的平台,硬件/軟件體系結構,以及電腦語言),這些資源位於不同的地理位置,屬於一個使用公開標準的網絡上的不同的管理域。簡而言之,它包括虛擬化計算資源。
網格計算經常和叢集計算相混淆。二者主要的不同就是:叢集是同構的,而網格是異構的;網格擴充包括用戶桌面機,而叢集一般局限於數據中心。
從功能上來說,可以將網格分類為:
網格計算的3個定義
對於網格計算(Grid computing)這一術語有三重理解可供參考,如下:
- 為萬維網誕生起到關鍵性作用的歐洲核子研究組織(CERN,European Organization for Nuclear Research),其對網格計算是這樣定義的:「網格計算就是透過互聯網來共用強大的計算能力和數據儲存能力」。
- 外部網格(External grids)。事實上,網格計算對分佈在世界各地的、非營利性質的研究機構頗有吸引力,進而造就了美國國家超級電腦應用中心計算生物學網格,如生物學和醫學資訊科學研究網絡。
- 內聯網格(Internal grids)。同樣,網格計算對那些需要解決複雜計算問題的商業公司有着非同一般的吸引力,其目標是將企業內部的計算能力最大化。
全球網格討論區
全球網格討論區(OGF)的目標是為網格計算定義相關的規範。Globus聯盟透過Globus工具包實現了這些標準,這個工具箱已經成為網格中介軟體事實上的標準。作為一個中介軟體組件,它為構建於它之上的服務提供了一個標準的平台,但是網格計算也需要其他的組件,以及很多其他的工具的運轉以支援一個成功的網格環境。這種情形類似於TCP/IP的開發:互聯網的有用性來自於TCP/IP的成功以及新聞組和網頁等應用程式的建立。
Globus實現了下述一些由GGF定義的協定:
- 資源管理:網格資源分配管理協定(GRAM)
- 資訊服務:監視及發現服務(MDS)
- 安全服務:網格安全基礎結構(GSI)
- 數據遷移和管理:Global Access to Secondary Storage(GASS)and GridFTP
Globus同時還提供了一些工具,使網格計算平台更加健壯,更適用於高效能計算的需要。他們有:
- 網格入口軟件(Grid Portal Software),如GridPort和OGCE
- 網格封裝工具集(Grid Packaging Toolkit,GPT)
- MPICH-G2(Grid Enabled MPI)
- 網絡氣象服務(Network Weather Service,NWS)(QoS監控和統計)
- Condor(CPU Cycle Scavenging)and Condor-G(Job Submission)
北美及歐洲的研究機構和學術社區里執行的大多數網格都採用Globus工具集作為核心中介軟體。
基於XML的web服務提供了在分散式環境中訪問各種不同的服務和應用的方法。2003年網格計算界開始共同將網格作為web服務提供出來(稱為網格服務)。開放網格服務結構定義了這種環境,提供了一些遵守網格服務語意的功能。
網格提供了解決Grand Challenge problem的辦法,如蛋白質摺疊、金融建模、地震模擬、氣象模型等等。網格還為組織內部如何最佳化使用大量的資訊科技資源提供了解決途徑。網格也作為公用事業機構為商業和非商業客戶提供資訊科技提供了一種方法,這些客戶可以只為他們所需要的服務付費,就象電和自來水一樣。
網格運算商業化
約在2000年左右,開始有商業機構提供網格解決方案,有的是以Globus Toolkit為基礎來實現,有的則採用自有的專屬架構。要提醒與注意的,有些業者會將按需運算(computing on demand)、叢集運算(cluster computing)包裝成網格運算來推行。
目前能提供網格運算方案的主要商家:
概念框架
網格計算的概念反映的是一種理念框架,而不是指一個物理上存在的資源。所謂的網格所採用的方法是指,利用位於分散管理域內的資源完成計算任務。網格技術的焦點在於對超出本地管理域的計算資源的需求的靈活提供。
歷史回顧
如同Internet一樣,網格的概念也是從「大科學」的巨大計算需求演化來的。Internet是為了滿足各大型的聯邦資助的計算中心之間的普通通訊需求而開發的。這些通訊連接實現了這些中心之間的資源和資訊共用,並最終為額外用戶提供了訪問。這些組之間的特殊資源共用「程式」催生了協定的『標準化』,以滿足任意管理域間的通訊需求。當前的網格技術也可以被看作是Internet這個框架的一個擴充或是應用,目的是為了建立一個更為通用的資源共用環境。SETI@home是第一個非營利性的科學專案,其目的是為了對空閒的CPU周期加以回收利用。該專案所設計的程式通常是在電腦沒有被用戶使用或是使用極少得的情況下在背景執行或作為螢幕保護裝置。其後的許多的其他的同類專案進步的地方在於增加了投入控制(prohibitive investment)和返回結果延遲(delay in results)。
虛擬組織
網格環境的建立是為了滿足資源共用的需求,而各種資源(例如,CPU周期,磁碟儲存空間,數據,軟件程式,外圍裝置等)取決於該資源在本地管理域之外是否可用。這種「外部提供」的方法的不足使我們迫切需要建立一個新的管理域:虛擬組織,或VO。每個虛擬組織有各自獨立和分離的管理政策(本地管理政策+外部資源管理政策=VO管理政策)。「任務執行」所需要的環境是根據該任務在本地管理域之外執行時的需求所區分的。網格技術(也稱作中介軟體,middleware)是用來規範化的,以保證你的應用程式執行時所關聯的網格環境的具有統一的規範並且遵守之。
網格化(Grid enabled)
除了定義管理的需求和確定「外部」資源(external resource)需求以外,目標程式必須是網格化的。網格化這項工作的本質和外延是由VO(虛擬組織)所處的環境和應用程式本身共同作用的結果。舉個例子來說,如果我們需要用到的「外部資源」是被位於隔壁的大樓內的另一個部門所有,那麼對於資源發現,資源中介,時序安排,記賬,安全和通訊的要求都可以達到最小。