![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|
| 網格能做什麼? |
| 計算問題 | ||||
|
計算上的問題
|
資訊科學常用「平行化」(Paralleism)的程度,來分類計算問題。即一個問題能否被分割成許多子問題,讓不同的處理器平行來處理?如果可以,便可以同時利用許多部電腦,來加速您的計算工作。 另一種則是依問題的粒狀化(granularity)程度來分類。每個子問題是否高度依賴其他子問題的結果?如果是,您要處理的是細粒子平行計算(fine-grained)。例如,在大氣模式的運算中,大氣層被切割成許多小塊,每一小塊被分到不同的處理器去運算,但每一塊的初始資料都需要相鄰另一塊的計算結果。也就是說,僅管發生改變的是相距甚遠的一小塊,仍會有所影響。這就是有名的「蝴蝶效應」,一隻蝴蝶在中國揮動趐膀,亦可造成美洲的颶風。實際上,細粒子平行計算需要非常聰明的編程,才能達到平行的最佳化,正確的資訊才會在正確的時間進入處理器。 另一種是粗粒子平行(coarse-grained )或完全平行(embarrassingly parallel)計算。每個子問題都是獨立的,例如蒙地卡羅模擬(Monte Cario Simulation)。您可以利用它在真實系統(real system??)的複雜模式來改變參數,並以統計技術來研究結果-這有點像是電腦實驗;在這個情況下,每一個計算都是各自獨立的。另一個例子是大量醫療影像資料庫的分析,每一張影像都是獨立的。 經驗法則告訴我們,細粒子的計算比較適用於大型且獨立的超級電腦,或至少是非常緊密的叢集電腦,這是由於他們擁有非常一致的處理器,可以確保彼此間的通訊不會遇到瓶頸,一般通稱為高效能計算(high-throughput computing)。另外,完全平行(embarrassingly parallel)計算較適用於鬆散的網路連結,因為傳輸的延遲並不會影響其他處理器的工作,一般通常稱為高產能計算(high-throughput computing)。 表面上看來,粗粒子平行計算似乎比較適用於網格,但事實上並不儘然,有些科學應用仍需要結合上述兩種方法,這也是網格可以發揮強大功能的地方。舉例來說,當要建構一個複雜的氣候模型時,研究者希望測試各種不同的參數,研究各種不同的結果,因此便會執行許多相似的計算。因為氣候預測是天氣預測的長時間尺度,所以每一個計算即是所謂的細粒子平行計算,都需要在叢集電腦或超級電腦上執行。
|
|||
![]() |
然而,許多獨立計算還是可以分散到網格上不同的叢集電腦去執行,便導入所謂的粗粒子平行,並且節省許多時間。如果與在一個區域叢集電腦,排隊等待計算的時間相較之下,即使網格只有分配工作到一個叢集電腦,仍然可以節省大量的時間,這是由於網格可以找到閒置叢集電腦的資源,而省去排隊等待的時間。 |
|||
![]() |
||||
![]() |