阿姆達爾定律和古斯塔夫森定律


參考

https://blog.csdn.net/yutianzuijin/article/details/8489555

https://blog.csdn.net/qq_34594236/article/details/79674204

 

加速比=優化前系統耗時/優化后系統耗時

阿姆達爾定律

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

 

 

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

這就是加速比的計算公式,從公式可以看出增加處理器的數量(提升n的值)並不一定能有效地提高加速比,如果系統的並行化程序不高,即F的值接近100%,就算n無窮大,加速比也是趨近於1的,並不會對系統的性能優化起到什么作用,而成本卻無限增加了。所以,我們可以從“加速比”的公式中看出,單純地增加cup處理器的數量並不一定可以有效地提高系統的性能,只有在提高系統內並行化模塊比重的前提下,同時合理增加處理器的數量,才能以最小的投入得到最大的加速比,這就是阿姆達爾定律要告訴我們的核心思想,它很直觀地反應了加速比與處理器個數、系統串行比例之間的關系。


    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可表示為以下公式:

們定義a為系統串行執行時間,b為系統並行執行時間,n為處理器個數,F為串行比例,那么系統執行時間(串行時間+並行時間)可以表示為a+b,系統總執行時間(串行時間)可以表示為a+nb

 

 

 其中,串行比例F=a/a+b,其代入上面的公司,可得到:

 

 

 

 從公式中可以看出,F(串行化程度)足夠小,也即並行化足夠高,那么加速比和cpu個數成正比。

對一個在單處理機上的工作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的系統支持,以提高處理機的使用率

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM