
在討論計算的歷史的時候,同樣地也等於討論到計算機及電腦硬體的歷史。
從算盤,到巴斯卡計算器,再到真空管電腦,直到現在的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),或是電腦的規格慢慢提高,而能夠產生更多的輸入,企業能夠去整理分析這些資料,並且創造更好的服務回饋給人類,我想是會讓生活更好。
所以雲端運算,重點並不是在其運算能力,而是應用與服務。這個目的與原本的網際網路是相同的,也因此大家從以前到現在,都一直是在雲上。
當然換個角度,對於學術而言,就不見得是要求服務,而是真正的運算能力。
現在的科技能發揮多大,就要讓他能夠多大,是一直以來資訊科學領域的人員都在努力的事。
真正在進行運算的是誰?誰願意在雲下呢?
小結
本篇介紹了運算的基礎,下一篇我們將介紹另一種計算方式。