Amdahl 定律 = Gustafson定律
Posted on 2009-09-10 12:04 Fox 閱讀(6320) 評(píng)論(0) 編輯 收藏 引用 所屬分類: T技術(shù)碎語本文同步自游戲人生
周偉明老師應(yīng)該是多核計(jì)算領(lǐng)域的老人了。
這幾日因?yàn)橄胝艺覠o鎖(lock-free)方面的信息,就打開了周老師的blog。看到多核系統(tǒng)中三種典型鎖競爭的加速比分析這篇文章時(shí),覺得老師強(qiáng)調(diào)多核計(jì)算效率是有必要的,但拿Amdahl 定律和Gustafson定律作對(duì)比有點(diǎn)不恰當(dāng)。
按照我的理解,這兩個(gè)定律所刻畫的內(nèi)容是完全一致的,只是對(duì)加速比的定義不一樣罷了。這里,我們都以S(n)表示n核系統(tǒng)對(duì)具體程序的加速比,K表示串行部分計(jì)算時(shí)間比例。
Amdahl 定律的加速比:S(n) = 使用1個(gè)處理器的串行計(jì)算時(shí)間 / 使用n個(gè)處理器的并行計(jì)算時(shí)間
S(n) = 1/(K+(1-K)/n) = n/(1+(n-1)K)
Gustafson定律的加速比:S(n) = 使用n個(gè)處理器的并行計(jì)算量 / 使用1個(gè)處理器的串行計(jì)算量
S(n) = K+(1-K)n
通俗的講,Amdahl 定律將工作量看作1,有n核也只能分擔(dān)1-K的工作量;而Gustafson定律則將單核工作量看作1,有n核,就可以增加n(1-K)的工作量。
這兩個(gè)計(jì)算公式都沒有將鎖開銷考慮在內(nèi),是理想化的。周老師提到設(shè)計(jì)不當(dāng)造成并行變串行的問題與這兩個(gè)公式計(jì)算無關(guān)。因?yàn)槿魏味嗪擞?jì)算都存在對(duì)串行和并行的設(shè)計(jì)考量,這正是程序員在使用多核并行時(shí)最關(guān)心的事情。
總之,二者的區(qū)別只在于態(tài)度的不同:一個(gè)消極悲觀,一個(gè)積極樂觀,充其量是一個(gè)冷笑話,而于多核計(jì)算沒有任何關(guān)聯(lián)。
我說這些也與多核計(jì)算沒有關(guān)聯(lián),絲毫沒有質(zhì)疑多核效率的意思。相反,我期待能夠通過技術(shù)層面提高多核的有效負(fù)載。
最后一句題外話,周老師使用Word的水平一般:所有來自Word的截圖都是在頁面視圖直接截,換行符和光標(biāo)隨處可見。