第二章、 研究背景
2.2. 桌機格網
2.2.3 相關系統及應用
這裡介紹目前桌機格網的系統及一些應用實例,首先將先介紹目前兩大桌機 格網系統:BOINC 與 Xtremweb,分別在 2.2.3.1 與 2.2.3.2 兩章節中做介紹,在 2.2.3.1 章節中將介紹 BOINC,2.2.3.2 章節則介紹 XtremWeb,並在 2.2.3.3 章節 說明 BOIN 與 XtremWeb 這兩套桌機格網系統不適用於電腦對局應用問題的原因,
而後在 2.3.4 章節中介紹由交大吳毅成教授研發團隊所開發的桌機格網其架構與 特殊性,而此桌機格網系統在本篇論文中稱該系統為 Computer Game Desktop Grid (CGDG)。
2.2.3.1 BOINC 介紹
BOINC[2][6] (Berkeley Open Infrastructure for Network Computing)是一個有 名的桌機格網運算的中介軟體,科學家依此計劃可以很容易地建立公開資源運算 的專 案 ,用以處 理 各種 科學上 的 運算, 最有 名 的計劃 包括 SETI@Home、
Background Pi 計畫(利用多餘計算能量來計算)等。這些計畫其實包括其他生 物科技、地球科學、數學、物理及天文等應用問題。
SETI@Home 是一個著名利用 BOINC 這套分散式計算系統的專案之一,透 過網路連結在一起的電腦資源,研究人員嘗詴著透過分析『無線電波 SETI』
14
(Radio SETI)尋找是否有外星文明的存在。
2.2.3.2 XtremWeb 介紹
XtremWeb [6][9][21]是一個用 Java 撰寫的中介軟體,用於大規模的分散運 算,和 BOINC 類似,工作端的機器會用 pull mode 方式向伺服器取得工作運 算,而伺服器分配到工作端的排程方式屬於 FIFO (First In First Out) 的方式。此 系統主要應用於物理計算這種大量平行計算的應用。此系統包含使用者、工作端、
伺服器三個部分,工作端會定期回報仍在運作的狀態給伺服器,若伺服器在某個 期間內都沒有得到該工作端回報目前運作的情形,則伺服器則會視該工作端已不 存在,並會將該工作端未做完的工作重新分配到其他台工作端。
2.2.3.3 BOINC 與 XtremWeb 不適用於電腦對局應用 的原因
圖表 7 為一般 BOINC 與 XtremWeb 的概略架構圖。
圖表 7 目前桌機格網系統(如 BOINC, XtremeWeb)之架構
15
16
圖表 8 高度動態工作優先權(Job Priority)問題說明圖
2.2.3.4 CGDG 介紹
面對上述 BOINC 與 XtremWeb 不適用於電腦對局應用問題的原因,我們提 出了一套桌機格網系統的做法,該系統全名為 Computer Game Desktop Grid,簡 稱 CGDG,之後將針對系統的架構以及系統的特殊性做說明[17]。
在系統的架構方面,CGDG 為一個三階層式架構的系統,如圖表 9,有用戶 端(Client)、協商者(Broker)與工作端(Worker)三個部分,用戶端產生工作並接受 結果,協商者負責協調一切工作,管理協商所有的客戶、工作與工作端並負責轉 送資訊。工作端則幫忙做工作的運算。整個系統運作流程主要為一開始協商者必 頇先運作起來,之後會一直聆聽客戶端與工作端的連線,而對於每一個客戶端,
協商者只會保留一份工作在協商者的工作序列中,當一有工作端開始處於閒置狀 態的時候,協商者會將佇列中的工作分派給工作端去幫忙作運算,當工作端將工 作執行完畢以後,會馬上將結果傳送給協商者並要求一份新的工作去幫忙作運算,
而協商者在接收到工作執行的結果以後,會馬上將結果轉送給客戶端,並向客戶 端要求一個新的工作來做,在系統運作的期間,工作端會定期的向協商者回報工 作端目前的運作情形以及工作端的系統資訊,客戶端可透過管理介面觀察系統目 前運作的狀態。
17
圖表 9 CGDG 系統架構圖
在系統特殊性方面,該系統主要是針對電腦對局應用上的特殊需求,在傳統 的桌機格網無法滿足的情況下提出一套解法,在傳統的桌機格網上,因其主要為 物理、生醫等不需要即時回傳結果的應用,其連線方式多為圖表 10 左的方式,
即工作端將工作帶回家做時,與協商者即斷線,但對於電腦對局應用上,我們會 希望結果能即時的回傳,如此才可減少多餘的時間浪費,為了達到此目的,首先,
我們採用的策略是 TCP 的通訊協定,而非 HTTP 連線來達到此需求。
圖表 10 傳統桌機格網作法(左圖)及 CGDG(右圖)之連線方式
18
而在傳統的桌機格網作法上,如下圖左因工作端下載完工作後即斷線,用戶 端則無法將正在執行中的工作中止,但在電腦對局的應用上,如果我們已經找到 一個必勝走法,則其餘的計算則可不用再作運算,但因已經斷線的原故,所以無 法將目前執行中的工作中止,針對這樣的問題,在 CGDG 系統中,我們提供中 止工作的功能,藉由連線採用 TCP 的方式,我們能夠得知目前工作端的運作資 訊,工作在工作端的計算過程中,能夠直接對工作端下達中止工作命令,如此可 避免不必要的運算。
圖表 11 傳統桌機格網作法(左圖)及 CGDG(右圖)之中止工作
除此之外,為了適用於電腦對局應用這類高度動態優先權的應用,我們採取 的作法並非如傳統桌機格網上,一開始即將工作的優先權設定好一個固定的值,
全部丟到協商者上去控管,而是將選擇要丟哪一個工作的決定權寫在客戶端,客 戶端會經由該應用的演算法結果選擇一個當前需優先處理的工作,給予最高的工 作優先權,而後藉由協商者將該工作丟到遠方的工作端執行,如圖表 12。
19
圖表 12 傳統桌機格網作法(左圖)及 CGDG(右圖)之工作優先權設定
而對於像物理科學那種彼此工作事完全獨立的應用,即使所有的結果一次回 傳,也不會影響結果,但是像電腦對局這類的應用,前面運算出來的結果會影響 到後面的運算是否頇要繼續做,因此像傳統桌機格網將等所有的結果運算完畢才 一次將結果回傳,是不適用的,於是在我們的 CGDG 系統中,採取的是串流 (Streaming)的方式,在執行的過程中就將結果回傳,如此可加速遊戲樹的結果證 明,並節省建構開局庫的時間,如圖表 13。
圖表 13 傳統桌機格網作法(左圖)及 CGDG(右圖)之結果回傳方式
20