Amdahl’s law (阿姆达尔定律)的演化和思考
?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的系統支持,以提高處理機的使用率。
本文轉自cnn23711151CTO博客,原文鏈接:http://blog.51cto.com/cnn237111/536508?,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的Amdahl’s law (阿姆达尔定律)的演化和思考的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 压缩以及归档
- 下一篇: iscsi网络存储介绍及客户端配置操作