• 沒有找到結果。

第二章 相關背景

2.1 格網運算

目前電腦計算強調著合作(collaboration),資料共享(data sharing),計算能力 共享(cycle sharing)以及一些其他包含著分散式資源的互動形式。加上軟體、硬 體、以及其他資源不斷的個人化,使得一些希望能夠透過分散式、廣域網路來取 得並分享資源及服務的應用程式開始發展,於是相關的需求也開始被提出。格網 運算 (Grid Computing)指的是藉由高速網路大規模整合的電腦系統,可按照使用 者的需求提供資料處理功能,或提供單台機器與一小群機器所無法達成的功能。

而格網運算與一般常見分散式運算的差異在於,它著重於大規模的資源共享,創 新的應用,以及對工作效能的注重。簡單的說,將閒置、分散的電腦或個別CPU 藉由網路整合其運算能力,成為一個獨立處理資訊的系統,格網將打破個人電腦 運算的界線。過去幾年來,格網運算逐漸受到學術研究社群的注意,高能物理、

生物資訊、地球觀測、全球變遷以及數位典藏等領域皆積極探究網格技術的應用。

以生物資訊為例,目前(2004/06)[9]已有 167 個基因組(genome),包含了人 類的基因組,已經完成了定序解碼,而這些資料儲存在共用的資料庫裡,資料量 並以將近每年兩倍的速度成長著。對於這些大量的資料以及一些複雜的演算法,

如蛋白質的折疊(folding)結構的研究或是 3D 結構的預測,要在一個可接受的時

間內完成運算,將其運算平行化是一個重要的方法。在將格網技術應用到生物領 域上,目前已有一些正在進行中的生物格網計畫,包括myGrid [19],Asia Pacific BioGrid Initiative [20],North Carolina BioGrid [21],Canadian BioGrid,EUROGRID project [22]以及 Biomedical Informatics Research Network。

由於希望能夠利用網格帶來的計算能力,因此撰寫在網格環境上執行的應

Globus 定義了許多方便撰寫格網程式的函式,Globus Toolkit 3 (GT3) 便是其中

之一,讓使用者用來撰寫網格程式。Globus Toolkit 提供了許多對格網服務的元 件,它包含了諸如 GridFTP [6]之類的工具。GridFTP 構建在標準 FTP 協定之 上,使用者可以使用 GridFTP 工具來移動資料文件,而不必在所涉及的每個節 點上都要執行一遍登錄過程。這個工具提供了第三方文件傳送,這樣一個節點就 可以啟動另兩個節點間的文件傳送。Toolkit 是 Globus 一項重要的成果,全球網 格套件包含了監視、尋找以及管理資源的軟體服務及函式庫。

由於網格環境是由許多異質的資源所組成,所以在網格之間的互動行為必 須要透過一個一致的機制,因此由Global Grid Forum[25]定義了一個能夠支持在 不同的資源間具有通透性的開放式標準,稱為 Open Grid Services Architecture (OGSA)。

OGSA [3]是一種基於網格服務的分佈式互動和計算體系結構,用來確保異 質系統間的互通性,這樣不同類型的系統就可以進行通信、共享訊息。OGSI (Open Grid Services Interface)則定義了共通的協定及介面,而 OGSI 是利用 OGSA 為基 礎的格網間互通的一個標準。

OGSI 規範定義了網格服務並建立在標準 Web Service [27] 之上。 OGSI 利 用了 XML 與網路服務描述語言(Web Services Description Language,WSDL)

這些網路服務機制,為所有網格資源指定標準的介面、行為與互動。OGSI 進一 步擴展了網路服務的定義,提供了動態的、有狀態的和可管理的網路服務的能 力,這在對網格資源進行標準化時都是必需的。

與Web Service 相較,網格服務讓程式編寫者利用 factory/instance 的機制來 解決Web Service 的 stateless 限制及缺少生命週期(life cycle)的管理。網格服務另 外還使用 service data 來描述服務本身。service data 包含 state information 及 service metadata。除此之外,相較於 Web Service 的 URI,網格服務利用 Grid Service Handle (GSH) 來讓其他使用者知道服務的位置,並且利用 Grid Service Reference (GSR) 來告知如何與此網格服務連接溝通。

是否能夠將程式有效率的切割並分散至各端點,通常決定在於問題本身的 性質。有些問題能夠容易的平行化,而有些問題則是必須要以循序的方式來解 決。這其間的差異需要程式設計者的巧思來分析判別。而提到將運算工作平行化 並分散至網路各地執行,利用閒置伺服器的運算功能,最早提出的大型計畫為 SETI@home。 SETI [10],尋找外星智慧計畫 (Search for ExtraTerrestrial Intelligence)是一項國際性的科學計畫,利用無線電望遠鏡(telescope)接收來自太 空中自然產生的窄頻寬(narrow-bandwidth)訊號,來求證在地球之外是否還有其他 的智慧生命存在,在1999 研究人員將計畫發布至網路上,利用由網路上許多電 腦所組成的虛擬超級電腦,來完成大量資料的分析。此計畫的成功也證明了公用 資源計算(public-resource computing)的可行性。

SETI 一項很重要的工作便是將從望遠鏡上取得的原始資料,切割成小量的 工作分散給世界給地的電腦執行。這項任務是交由一台伺服器來完成,每份工作 的大小是0.25Mb,而將切割任務的工作交由一台主機的目的是為了減少儲存設 備的存取步驟。

SETI 發展了一個負責管理資料與結果的伺服器[11],主要功能是將工作單 位分配給使用者。他利用HTTP 的協定,使用者在下載了工作之後,執行分析,

並回傳結果,只有在與主機連線時需要網路的連線。所以SETI@home 的計算模 型並不複雜,收集到的訊號資料分割成固定大小的工作單元,藉由網路分散給各 地的用戶端程式執行,在運算產生結果後回傳給伺服器並取得新的工作單元。圖 (1)解釋了如何將原始資料切割成給使用者執行的工作單元。

而 SETI 的工作分配以現階段來說,是將同一份資料(就是工作單位)寄給 一些使用者,只要有接獲兩份以上的結果回傳,就將該份工作單位從電腦中移除。

這樣的做法可以加速新資料的取得以及加速將龐大的資料分離成每一個工作單 位的速度。SETI@home 的用戶端程式利用 C++開發完成,客戶端的程式可以當成 背景行程執行,或是當作螢幕保護程式。

圖 1 SETI 架構 [12]

與網格應用程式相比,SETI 將計算工作平行化的方法較為簡單,僅將原始 資料分割成同樣大小的工作,讓使用者下載至個人電腦上執行。在網格環境下,

由於要考慮程式的普遍性及面對動態異質的環境的狀況,一般的問題需要更特別 的平行化方法,程式設計者會有更多的考量。

相關文件