首頁‎ > ‎電子期刊‎ > ‎2008年10月號‎ > ‎

雲端運算、格網運算與P2P運算(上)

摘要

  • 文章編號:
  • 投稿日期:2008/10/1
  • 作者:李開文
  • 第一次審查:
  • 第二次審查:
  • 第三次審查:
  • 備註:


在6月的Google Developer's Day活動前後,媒體報導了有關雲端運算的事情。有些也冠上了滿誇大的標題,說雲端運算是Google的武器...或是IT的明日之星...等等的。

但其實這也和「Web2.0」這個名詞的出現一樣,多半有廠商在後面的推廣,舊酒新瓶裝。

實際上,各位也是從以前到現在就都在「雲」上,只是Google將自己的三個核心技術,與網路的使用者們,一起包裝成新的名詞叫做雲端運算。


9月10號凌晨3點的時候,CERN的大型強子對撞機(LHC)投入了第一個質子束,一個月後就要進行第一次對撞。

LHC一年能夠產生15PB(15,000,000GB)的資料量,如果以一張DVD9來算的話,那就是166萬張了。

但要怎樣能夠將這些偵測器得到的原始資料進行龐大的運算?這個時候就要靠著分散式運算來得到結果。

而其中一種分散式運算的技術,我們稱做格網計算。


我希望透過這篇文章,讓大家了解電腦的運算歷史,以及未來每個人手上的電腦,又會被放在世界的哪裡。

 運算(Computing)的歷史

運算 (Computing),又被譯為計算。也因此用來計算的機器,當然就稱做為計算機了。

但在台灣的譯名,放在手上輸入數字那種才叫計算機(大陸叫做計算器),而Computer就是電腦了。

計算的意義便是,有一群資料,透過一個流程將這些資料進行加減乘除,或是更複雜的數學運算,來得到想要的結果。


在討論計算的歷史的時候,同樣地也等於討論到計算機及電腦硬體的歷史。

從算盤,到巴斯卡計算器,再到真空管電腦,直到現在的IC電腦,電腦計算的速度可以說是指數成長。

而在IC電腦已經這樣普及的時候,人們也早就習慣研究數位化的計算方法(演算法),並且將資料數位化後進行計算,在將這些計算後的數位資料,又轉回人可以理解的圖形或是文字資料。


這個時候CPU的設計也慢慢地開始從一台電腦只有一個CPU,到有多個CPU。

在1970年代左右,計算的重心是放在超級電腦(Supercomputer)上。此時所發展出來的平行計算(Parallel Computing)的能力,足夠代表一個國家的科技水平甚至是戰爭科技。

在當時也只有擁有超級電腦的國家,才有能力進行精確的彈道計算。換個角度不難可以想像,資訊科技及戰爭是相輔相成的方式互相成長。

我們通常以FLOPS(FLoating point Operations Per Second),也就是每秒能夠進行的浮點數運算數量,來代表電腦的運算能力。

今年六月的時候,IBM的Roadrunner以1375.8TFLOPS 創造驚人的數字,也就是說這個超級電腦每秒可以進行一千多兆次浮點運算,而其他的超級電腦也有5~600TFLOPS。

讀者們還是可以想像,這些超級電腦從以前到現在,大多數都還是在美國。


而我們計算的資料,也與以往大有不同。早期透過人工可以輸入,計算並理解的資料,100KB就已經是龐然大數。

然而現在的資料量動則就已經上GB或是TB,已經不可能在透過人工的方式輸入。

而這個時候許多自動化的輸入輸出裝置也相當普及,許多公司如IBM早已生產上百萬台磁碟儲存系統,每台都可以儲存上百TB的資料。

另一方面像 LHC所使用的偵測器,也能夠在很短的時間累積大量的數位資料。


很快地我們就發現,這樣的上TFLOPS的計算能量也無法完全滿足我們想要計算的資料量。

所以從二次世界大戰帶來了網際網路之後,運算開始走向許多台電腦一起進行,而並非以前的單打獨鬥。

也因此從平行計算逐漸開始有了不同的分支,一個是利用網路將多台電腦串在一起,我們稱做分散式計算(Distributed Computing),另一個是原本的多CPU技術(SMP),逐漸往多核心(Multicore)的技術發展。

分散式計算,根據分散及構成方式不同,在分做網際網路運算(Internet Computing),叢集運算(Cluster Computing),格網運算(Grid Computing),P2P運算(P2P Computing),以下就讓我來介紹這些運算方式。

Internet運算和雲端運算


在我過去的文章曾經討論到,在還沒開始Web 2.0的時代之前,人們的在瀏覽器上的輸入,不管是填寫的表單也好,或者是搜尋的關鍵字也好,都已經是構成大量輸入的動作,但這些資料並沒有啥關連性。

在 Google還沒成名的時候,很多人就已經投入搜尋引擎的研發。

後來Google卻將這個技術建構得非常紮實,讓這些資料有索引,也讓這些資料關連越來越密集。

儘管2004的時候尚無網際網路運算這個名詞,卻可以視作現在雲端運算的前身。


由於網際網路實在過於龐大,無法以一般的方式進行測量,只能夠提及這個代表性的計畫,Seti@HOME。

Seti@HOME計算的目的是收集宇宙的電波,並進行快速富立葉轉換的演算,來變成電腦可以分析的資料,藉此來發現有沒有外星人的存在。

利用BOINC的分散式計算系統,透過全球33萬台電腦,在今年八月的時候達到了 528TFLOPS,相當於上述的超級電腦。而LHC也有使用BOINC進行一部份的計算。


可以想像全世界的電腦一定多過於這個數字,就知道未來雲端計算能夠發揮的能量有多大。


而現在不管Yahoo還是微軟,都與Google一起爭奪這個龐大資源。因為雲端運算不僅牽扯到全世界的電腦,也包括全世界的使用者。

如果能做出更好的平台,更好的服務,讓更多使用者涉入,那就有更多的商機。


儘管雲端運算看起來像是驚人的科技,但也有缺點。

要將世界的電腦組合成有用的資源,除了像BOINC平台去進行特定計算或跑特殊的程式,以目前的科技還無法這樣隨心所欲。

我們還無法做到讓使用者想執行的程式,想解決的問題,都變成拿地球上所有電腦去跑。

也因此,不管現在這科技三巨頭怎樣做,都還是以自身的經費所建置的運算資源來達成。

也因此從這些公司口中所說的「雲端」到底是否有真正運用到網際網路上的電腦,還是一個大問號。

但不可否認的是,他們耗盡研發能量,經費構成的運算資源,都會讓全世界的人有機會「使用」,甚至是免費的,這樣就不是一般的中小企業做得到的。

此外以一個企業的經費到底能夠產生多少運算能量,也一定有個上限。


儘管如此,雲端運算能夠讓眾人自由甚至免費使用,還是一個相當大的誘因。

其使用能夠帶給企業更多的利潤,這也是企業所希望的。

人類日常生活的資訊會因為他們手上所持有的裝置(手機,PDA),或是電腦的規格慢慢提高,而能夠產生更多的輸入,企業能夠去整理分析這些資料,並且創造更好的服務回饋給人類,我想是會讓生活更好。


所以雲端運算,重點並不是在其運算能力,而是應用與服務。這個目的與原本的網際網路是相同的,也因此大家從以前到現在,都一直是在雲上。


當然換個角度,對於學術而言,就不見得是要求服務,而是真正的運算能力。

現在的科技能發揮多大,就要讓他能夠多大,是一直以來資訊科學領域的人員都在努力的事。


真正在進行運算的是誰?誰願意在雲下呢?

 小結

本篇介紹了運算的基礎,下一篇我們將介紹另一種計算方式。

Comments