今年九月二十九日,中央研究院計算中心和全世界 13 個國家同步宣佈:『LCG(LHC Computing Grid)第一階段網格服務正式上線,分散於全世界十餘個研究單位的電腦設備連接成為虛擬的單一系統,這是應用資訊科技於科學研究的一大里程碑。』聽起來真是令人振奮!
可是,網格到底是什麼?
這有個簡短的答案:我們知道 Web 是在網際網路上分享資訊的服務,網格呢,就是在網際網路上分享運算能力和資料儲存空間的服務。網格可不是電腦之間簡單的通訊而已,其終極目標是要把全球的電腦轉變成一組龐大的運算資源。
那是網格的願景,但事實是,今天的網格仍然處於「開發中」的階段,正由世界各地上百位研究人員和軟體工程師努力實現當中,而其底層的技術仍然處於原型的階段,因此網格可說是未來科技。
正如網際網路或 Web 的早期一般,我們很難預測網格技術帶來的長期衝擊會是什麼。或許正因為網格的未來是如此地不確定,郤又有產生革命性變革的潛力,才會在世界各地吸引了高度的注目。這些關注並不只來自於資訊工程的專家,更來自於科學家、企業家、媒體人,或許也包括您在內!
那麼,網格的構想是如何出現的?又是由誰來孵育?將來能順利誕生嗎?網格對您有什麼用處?
這要從一群夢想家開始談了。
孕育網格運算的夢想家
和許多技術的進步類似的,網格技術的需求和發展也是從科學家的實驗室中產生的。這些愛作夢的科學家,正是驅使技術進步的先知。怎麼說呢?
近年來,從事科學研究但不使用電腦已經是不太可能的事了,科學家面對日益複雜的問題,所需的不再只是一片黑板,而且使用電腦所做的事也越來越可觀。舉幾個例子來看:
- ●十年前,生物學家能在電腦上模擬一個小分子就可以快樂一整天了,現在,模擬上千個不同的分子和特定蛋白質的作用以發掘新藥可能是家常便飯。
- ●基因學家使用電腦來定序含有 30 億個化學單元的人類 DNA 或決定蛋白質結構也已經不是新聞了,加拿大的團隊使用 Linux 叢集在五天內完成 SARS DNA 的定序,更是一個活生生的例子。
- ●地球科學家用人造衛星的觀測儀器來追蹤大氣中的臭氧含量,光是這項工作,每天就要從太空下載 100 GigaBytes 的原始圖片到地面上的接收站,這相當於 150 片 CD 的容量。
- ●還有,高能物理學家在 Web 誕生地「歐洲粒子物理中心」建造的加速器,從 2007 年起,每年將產生約 10 Petabytes 的數據,那大約是 2 千萬片 CD,可以從地板到天花板塞爆 60 坪大的公寓。想像一下,您可曾從這麼多通通不一樣的 CD 中找到您要的那一張 CD?再想像一下,世界上幾十個大學的數千位物理學家,每一位都對不同的資料檔有興趣,只想要找到符合他的條件的資料,但是他們都不知道要找的資料在哪個檔案裏,幾千人同時進來找,那要怎麼找?
顯然一台電腦、或幾台電腦組成的叢集、甚至一台專門設計的超級電腦,都不足以進行科學家真正要作的計算工作。科學家的天性在此顯露無疑-不斷地追求極限、挑戰極限、進而超越極限!
我們都知道電腦速度的進展真可謂一日千里:處理器的能力每 18 月左右提升一倍(有人把這個現象誤稱為 Moore 定律),即便如此,仍然趕不上科學家的需求。結果就是:想要用現有的電腦技術達成一些尖端的科學目標,不是非常難、非常貴、就是根本不可能。換句話說,科學家踢到鐵板了!
有一些科學家,踢到了鐵板,不是認命就算了,他們開始作踢破鐵板的夢。
他們夢想有一種克服這些障礙的方法:
- ●他們夢想擁有幾乎無限的儲存空間,讓他們不用操心要把資料放在哪裡;
- ●他們夢想他們的研究機構在需要的時候能擁有幾乎無限的運算能力;
- ●他們夢想能又容易又有效地和遠方的同事安全地分享運算資源、數據、程式和結果;
- ●因為科學家總免不了要操心研究經費的事,所以也夢想要很便宜地實現以上所有的夢想,反正作夢不花一毛錢。
讀者可以看得出來,這個夢想的實現未必是單一機構、單一公司、甚至單一國家所能達成的,它需要的,是一個把電腦、網路、儲存裝置及其他所有相關設備串連起來的技術,和把這個技術廣為部署的環境。就像電力一樣,除了要有輸送電力的技術,還要牽線到府。換句話說,科學家在夢想的,是個資訊基礎建設(information infrastructure),簡稱 infostructure。
天下沒有白吃的午餐 - 夢想實現的可能性
給每個人無限的儲存空間和一要就有的運算能力,當然不可能。但是換一個角度來看,全世界現有的電腦運算能力的利用率又有多高呢?網格技術如果能善加使用全球的電腦資源,就很不簡單了!
要善用全球的電腦資源,技術上還算做得到,但也不簡單,後文會有介紹;但是非技術性的問題可能才是困難的,每個人都會說:『讓我用別人的電腦,好啊!什麼?別人也會來用我的電腦?辦不到!』因此目前發展的趨勢是將來會有兩大類的網格:社群網格(Community Grid)和商業網格(Service Provider Grid)。在工作上合作的人們,如跨校的研究團隊、同一個公司的不同部門等,可以各自拿出一些電腦資源來架構一個網格,以提高總效率,這是社群網格;為不特定使用者提供付費的資源服務的,是商業網格。
但我們不要跳得太快。在網格真正落實在你我身邊之前,先來看看類似的技術進展如何。
分散式運算和網格運算
自從七零年代 creeper & reaper 開創遠端運算的紀元以來,分散式運算的技術就不斷以不同的面貌出現;從九零年代初流行用高速網路把超級電腦中心連結起來進行超大型計算的 metacomputing 技術、到 1994 年 Beowulf Linux 的 cluster computing 技術、到 Napster 的 peer to peer computing 技術、到三百多萬台 PC 貢獻 seti@home 的 internet computing 技術,分散式運算的規模逐漸增大,只是離網格之夢仍然有一段距離。這在 1997 年出現了質變。
概念成形
位於芝加哥西郊的 Argonne 國家實驗室,在 1997 年舉辦了「Building a Computational Grid」研討會,網格運算的概念於焉形成,之後網格這個名詞就逐漸在科學界蔓延開來,在流行起來的同時,網格真正的涵義也在口耳相傳之中日漸模糊。在 1999 年,網格運算的兩位先驅:Argonne 與芝加哥大學合聘的 Ian Foster 教授和南加大的 Carl Kesselman 教授,聯合分散式運算的各界專家出版了後來被尊為網格聖經的「"The Grid: Blueprint for a New Computing Infrastructure」一書,總算為網格這個熱門名詞作了清楚的定義:「計算網格是:提供可靠的、一致的、遍佈的、而且不昂貴的管道來使用高階計算能力的軟硬體基礎建設。」雖然後來有許多人對網格提出不同的看法,但大多不脫這個範疇。
《圖一 純Flash網站的HTML只有嵌入SWF檔案的Tag 》 |
|
技術流傳是關鍵 網格運算需要「白老鼠」
1998 年之後,在歐美各地的科學家開始向他們的政府請求經費,一開始是研究網格技術,然後逐漸進展為開發網格軟體和部署網格架構的計畫,這其中,我要特別強調部署這一個環節,因為在科技發展史上,有太多優秀的技術最後沒有跨出實驗室的門檻,其關鍵就是開發新技術的人未能在技術流傳這個問題上下功夫。
技術的流傳?說來簡單,做起來何其困難!技術還沒完全成熟時,誰要當白老鼠?沒有白老鼠,如何證明技術出了實驗室還能成功?這經常是無解的死結。對網格這種不能遍佈不算成功的「基礎建設」型的技術,當白老鼠的成本和風險更是高得多。
國際聯合投資計畫
幸運的是,網格的「本夢比」仍然吸引了各國政府投資,層級甚至上達歐盟。歐盟在 2001 年開始了 EDG (EU DataGrid) 的三年計畫,進行資料網格的研發,這個由 Web 誕生地歐洲粒子物理中心為首的計畫獲得歐洲各國科學家的強力支持,現正規畫其後續三年計畫 EGEE (Enabling Grids for E-science in Europe),目標在建造一個永續的歐洲網格建設,網格的未來發展一片大好!
若以成敗論英雄,歐洲粒子物理中心踏出了成功的第一步,而且正向著大規模部署邁進。但是,一將功成萬骨枯,這個成功背後的白老鼠是哪些人呢?身為白老鼠的命運就是:要不斷與功能不足、不好用、會當掉、經常改版的原型軟體奮鬥,其中之甘苦,恐怕只有當事人知道。我們應該向所有網格的開發者和白老鼠致敬:
- ●NASA 的 Information Power Grid 計畫;
- ●美國國家科學基金會的 PACI program 中的 National Technology Grid 計畫,將美國 27 州的 60 個大學或研究機構以高速網路連接,以建造和運作一分散式的科學工程應用的網格原型系統;
- ●美國的 Grid Physics Network 計畫,基於 Globus toolkit 開發適合物理研究使用的網格軟體,並在合作的研究單位中部署測試;
- ●世界各地在 EDG 計畫下的粒子物理、生命科學、地球觀測三大領域的合作單位。
LCG計畫
其他還有很多,無法一一列出。但在這裡要特別向讀者介紹 EDG 中的 LCG (LHC Computing Grid) 計畫。在 2002 年啟動的 LCG 是與歐洲粒子物理中心的 LHC 加速器搭配的運算計畫,要利用目前的網格原型軟體,把全球數千台電腦串連起來,試圖解決以上所說的千人分析 PetaByte 規模資料的問題,同時對網格技術提出嚴峻的考驗。在網格研發的圈圈中,LCG 因為是真正的全球性計畫,問題難度又高,是許多人注目的焦點,如果網格能圓滿達成 LCG 的任務,無異是網格發展的關鍵里程碑!難怪 Ian Foster 和 Carl Kesselmann 兩位都親自參與。LCG 的合作對象主要是歐洲和美國各地和粒子物理關係密切的大型電腦中心。在計畫進展上,LCG 規劃了幾個部署測試的階段(phases),在規模上和網格軟體成熟度上要一關一關地提升,目前剛到達第一階段。
中央研究院計算中心自 2002 年底起積極參與 LCG,在部署的進度上,除了歐洲粒子物理中心本身之外,是全球第三個受到認可完成第一階段的單位,進度超越美國、英國、法國、俄國、日本等國家,在此恭賀他們的努力!也期望他們再接再厲,讓網格技術在國內生根。
網格技術的關鍵組織
網格的開發與推行除了由各國的科技團隊各自進行之外,還有兩個重要的組織:由芝加哥大學、Argonne 國家實驗室和南加大為首的 Globus.org 以及由 Grid 社群發起的 Global Grid Forum,分別擔任核心模組的開發和網格技術標準的討論與制定。
Globus.org
Globus.org 所開發的 Globus Toolkit 是網格技術的核心模組,採開放源碼的授權條款釋出,這對網格技術的廣泛流傳有決定性的影響。Globus.org 在 2003 年 7 月 1 日公佈了 Globus Toolkit 3.0,採用將 Grid 和 Web services 兩個概念結合的「開放網格服務架構」(OGSA),第一版的 OGSA 規格草案是由 Globus 和 IBM 共同推出的,目前在 Global Grid Forum 中討論、修正,以求標準化,將來可以用 J2EE、.Net、C 等架構發展 Grid 應用。
Global Grid Forum(GGF)
Global Grid Forum 的任務是「藉由開發和記錄最佳慣例、實作指引和標準,以推廣和發展網格技術和應用。」從 GGF 目前的七大領域:應用程式環境、技術架構、資料技術、資訊系統和效能、Peer-to-Peer、排程及資源管理、保全(security),可看出其涵蓋的技術範疇。從 2001 年 10 月起,GGF 就開始產出類似 RFC 的技術文件:其中還在討論中的文件稱為 Grid Working Draft (GWD),而經過 GGF 的編輯和指導委員會 (Steering Committee) 通過的文件稱為 Grid Forum Document (GFD),預計這些文件在網格的發展上將扮演 IETF RFC 在 Internet 發展上的角色。
GGF 在 2001 年 7 月正式成立為一個非營利機構 GGF, Inc.,主辦每年三次的 GGF 大會和其他活動。GGF 的參與者來自全球超過 30 個國家的兩百多個組織,包括大學、國家實驗室、商業公司、研究機構、官方單位等等,贊助者也非常多,如 Argonne 國家實驗室、NASA Information Power Grid、英國 e-Science Programme、Compaq、HP、IBM、Microsoft、Sun、Silicon Graphics、Platform Computing、Qwest Communications、Grid Consortium Japan、Entropia、United Devices、Johnson & Johnson... 等等,讀者當能看出全球各國產官學研的參與程度。
網格技術架構
對技術細節有興趣的讀者,可以在 Globus.org 找到許多技術文件,限於篇幅,就不在此細述,只介紹一下網格的五層式網路協定。
(1)實體層(Fabric layer):這是網格的最底層,包括所有的實體設備或資源,如電腦、儲存設備、網路頻寬、各式各樣的感應器 (如 CPU 的溫度計) 等等。 (2)連結層(Connectivity layer):這是通訊協定和身分認證的層次。通訊協定讓不同資源之間可以交換資料,而身分認證協定提供加密的資料保全機制以確認使用者和資源的身分。 (3)資源層(Resource layer):這是啟動、監視和控制資源分享的層次。這個層次的協定使用連結層的通訊協定和身分認證協定來完成資源相關的工作。 (4)集體層(Collective layer):這是橫跨多項資源的層次,包括資源間互動的協定、服務 (service) 和應用程式介面 (API)。這個層次的程式有很多種,如資源目錄 (resource directory)、資源發現 (resource discovery)、資源仲介 (resource brokering)、資源配置 (resource allocation)、資源監視 (resource monitoring)、診斷 (diagnostics)、資料複製 (data replication/cache)、以及判斷誰能用哪些資源的會籍服務 (membership service)... 等等。 (5)應用層(Application layer):任何網格系統的最上層就是直接和使用者互動的應用層。應用層的程式藉由呼叫其底下各層的元件來完成它的工作,比方說,一位生物學家 Bob 只需要送出一個「請用我的程式 X 分析數據 Y」的要求,他的生物網格軟體就會
- ●取得 Bob 的身分認證資料 (連結層)
- ●以 Bob 代理人的身分詢問某個生物網格的目錄服務以決定數據 Y 的所在地和 CPU、儲存設備和網路頻寬等資源之可用處 A、B、C... (集體層)
- ●送出「用資源 A、B、C... 來執行程式 X 以分析數據 Y」的請求,包括其中所需的資料搬移等均自動完成 (資源層)
- ●監看整個資料搬移和計算工作的進展,對錯誤狀況作出適當反應
- ●不論過程中有無異常或錯誤,在運算完成時會通知使用者其結果。 (資源層)
對 Bob 來說,他只是下了一個命令或按了一個按鈕,工作就開始了,因為中介軟體會代理他去和各個資源提供者協調資源的使用,他只需登入一次,不必逐一連上各個站去登入。
網格服務
從 LCG 第一階段才剛完成來看,網格服務的普遍實現還需要一些時間。在業界,IBM 提出的「隨選即算」、HP 的「Utility Computing」、Sun 的 Grid Engine,目前看來還是以提供網格所需的電腦為主,有的也提供架設網格軟體環境的服務,Platform Computing、Avaki、United Devices 等軟體公司則是在它們的軟體產品上提供網格介面。因此跨校團隊、大型企業等要建立社群網格時,現在已經有公司提供協助的服務。但是商業網格因為牽涉到計費機制的信任度等問題,仍在開發中。
網格與你
上面講要用網格的人都是科學家、科學家、科學家,如果您不是科學家,網格和您有關係嗎?
今天或許還沒有,未來呢?不上網就難過的您也許離不開網格!要我拿出證明?哦,未來學是沒有證明的,能有的,是看看過去和現在,來猜測一下未來,所以我來抄舉幾個有名的句子:
IBM 公司的 Thomas J. Watson 在電腦發明的初期說:『世界只需要五台電腦。』
迷你電腦巨人 DEC 公司的 Ken Olsen 在迷你電腦風行時期說:『家中絕對不需要有電腦。』
微軟的 Bill Gates 在 PC 發明的初期說:『你所需要的記憶體永遠不會超過 640 KB。』
更何況,在 Web 發明的初期,無人能想像 Web 的技術會發展成今天這種情景、被那麼多人所使用。所以呢,就像愛因斯坦說的:『想像力比知識重要』。十年後網格會變成怎樣、能為你做什麼,沒人知道,我更不敢預測,就靠各位讀者及所有關心網格的人來發揮想像力了! (作者任教於台灣大學物理系,pyeh@phys.ntu.edu.tw)
參考資料
"The Grid: Blueprint for a New Computing Infrastructure", Ian Foster 和 Carl Kesselman 編輯, Morgan Kaufmann 出版。