Amdahl’s law (阿姆達爾定律)的演化和思考

from: http://manio.org/progress-and-thoughts-of-amdahls-law-286.html

 

G.M.Amdahl在1967年提出了Amdahl’s law,針對並行處理的scalability給出了一個模型,指出使用並行處理的提速由問題的可並行的部分所決定。這個模型爲並行計算系統的設計者提供了指導。

其形式如下:

f爲問題中可被並行處理的部分的比例,m爲並行處理機的數量,Speedup爲並行後相比串行時的提速。

Amdahl’s law表明在問題的可並行部分不大時,增加處理機的數量並不能顯著地加快解決問題的時間。這讓計算機界產生了悲觀的情緒,有人認爲搞多處理器的機器沒什麼前途。但是,Amdahl’s law忽略了一些重要的事實。Amdahl’s law是一個fixed-size model,就是要解決的問題的大小是固定的,可並行化的比例是固定的。而在實際中,我們不會用1000個處理機來處理一個小問題,當我們的計算能力的總和增加之後,可以也應該去解決更大的問題。當問題更大的時候,通常情況下,這個問題也有更大的可能被分爲可並行化的小問題(或者說處理多個相互獨立的問題),也就意味着f更大(更接近1),能得到更大的Speedup。

直到1988年,Gustafson提出了一個fixed-time model,也即Gustafson’s Law,人們對重拾對大規模並行計算的信心。Gustafson’s Law可表示爲以下公式:

對一個在單處理機上的工作w,我們將其擴大到m個核上,scaled workload爲w’=(1-f)w+fmw。對在串行條件下對w’的處理時間比上在並行條件下對w’的處理時間即爲Speedup。在這個模型中,問題的規模是可以被擴大(scale)的。從這個公式可以看到,f固定時,speedup顯線性增長。

在1990年,Sun and Ni提出了memory-bounded model,即Sun and Ni’s law。形式如下:

在這個模型下,workload被scale的方式不同,workload跟隨着memory的增長而以某種方式增加(G(n))。在這個模型裏,Speedup也隨處理機的數量的增長而線性增長,而且比Gustafson’s Law的增長情況更樂觀。

其實,這幾個模型其實在本質上是一致的,並沒有衝突,那爲什麼Speedup會有那麼大的不同呢?這是因爲處理機的使用率。當workload被scale,而不是fix時,增加的處理機就會有事可做,保持一個比較高的使用率。也就是這些computing capacity沒有被浪費掉。如果沒有被浪費掉,這些computing capacity就在一定的時間多完成了一些工作,完成整個工作的時間就縮短了。所以,Speedup就變大了。

結論是,多搞些處理機是沒錯的,但是要有具有好的scalability的系統支持,以提高處理機的使用率。

For more about Amdahl’s law, visit

http://en.wikipedia.org/wiki/Amdahl’s_law

 

 

 

延伸閱讀:

 

Sun-Ni law  (作者主頁http://www.cs.iit.edu/~scs/sun/index.html

 

基本描述

 

Sun-Ni定理中引入了一個函數G(p)表示存儲容量受限時工作負載的增加量。那麼Sun-Ni的加速比公式可表示爲:S=/frac{W_s+(1-f)G(p)W}{W_s+(1-f)G(p)/frac{W}{p}}

討論

Gustafson定理中,加速比與處理器數幾乎呈線性關係,這是Sun-Ni定理中G(p)=p的情況;而如果G(p)=1,則是表明工作量無增加,即Amdahl定理中的情況。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章