聊聊平行處理

雲端運算這個新名詞掀起了不少熱潮,但是平行處理的概念很早就存在了,只是很少被廣為討論。

目前比較開放、熱門的就屬 Erlang 與 Hadoop 兩個專案,而許多廠商相繼推出的解決方案雖然使用了相對熟悉的程式語言(GAE 支援 Python 與 Java 、Aptana 支援 PHP ),但是因為各家廠商之間缺乏互通性,轉移不易,急著卡位不知道會不會反而哪天變成被掐著喉嚨 ^^||

平行處理所帶來的好處對程式設計師而言是非常具有吸引力的,因為執行效能會隨著節點的增加而線性成長,而且基本上不需要改寫程式;目前一般的程式開發都會遇到類似問題,剛開始為了方便而將大部分的服務放在同一台主機,在效能遇到瓶頸時就開始把各種服務分離來提升執行效能,接著就是各種形式的快取,或是各種複雜、交錯的解決方案,令人感到沮喪的是每個轉換過程都意謂著大量的程式改寫,對程式開發單位而言可以算是個夢靨。

平行處理是否是萬靈丹?好像也沒這麼神奇,畢竟平行處理領域像是個蠻荒地帶,一些在傳統程式語言唾手可得的資源,在平行處理的世界中好像都得自己來,所以很難去比較說到底是一直重構傳統程式快還是直接以平行處理的環境進行開發快。

平行處理的需求也讓硬體的發展出現變化,以知名的超級電腦為例,台科大靠152 台DL 145 G5 Server 才做出 0.92 teraFLOPS 運算速度 ( http://www.cc.ntust.edu.tw/front/bin/cglist.phtml?Category=88 ),而昇陽 Sun Blade X6275 可以在42U機架上透過 48 台伺服器主體支援總計768個處理器核心,最高效能可達9 teraFLOPS。NVIDIA Tesla S1070 更是基於 GPU 技術的突破,在 1U 主機上就可以提供 4 teraFLOPS ,具有 960 個運算核心,同樣的機架可以提供超過 168 teraFLOPS 運算能力。

從硬體的發展看來,軟體開發走向平行處理是必然的趨勢,就看自己什麼時候覺醒了 ;)

Tags:

Leave a Reply