【轉(zhuǎn)】計(jì)算機(jī)架構(gòu)及設(shè)計(jì):Amdahl' s Law(阿姆達(dá)爾定律)
計(jì)算機(jī)架構(gòu)及設(shè)計(jì):Amdahl' s Law(阿姆達(dá)爾定律)

Yang
微架構(gòu)研究
基本介紹:
阿姆達(dá)爾定律是計(jì)算機(jī)系統(tǒng)設(shè)計(jì)的重要定量原理之一,于1967年由IBM360系列機(jī)的主要設(shè)計(jì)者阿姆達(dá)爾首先提出。該定律是指:系統(tǒng)中對(duì)某一部件采用更快執(zhí)行方式所能獲得的系統(tǒng)性能改進(jìn)程度,取決于這種執(zhí)行方式被使用的頻率,或所占總執(zhí)行時(shí)間的比例。阿姆達(dá)爾定律實(shí)際上定義了采取增強(qiáng)(加速)某部分功能處理的措施后可獲得的性能改進(jìn)或執(zhí)行時(shí)間的加速比。簡(jiǎn)單來(lái)說(shuō)是通過(guò)更快的處理器來(lái)獲得加速是由慢的系統(tǒng)組件所限制。
阿姆達(dá)爾曾致力于并行處理系統(tǒng)的研究。對(duì)于固定負(fù)載情況下描述并行處理效果的加速比s,阿姆達(dá)爾經(jīng)過(guò)深入研究給出了如下公式:
S=1/(1-a+a/n)
其中,a為并行計(jì)算部分所占比例,n為并行處理結(jié)點(diǎn)個(gè)數(shù)。這樣,當(dāng)1-a=0時(shí),(即沒(méi)有串行,只有并行)最大加速比s=n;當(dāng)a=0時(shí)(即只有串行,沒(méi)有并行),最小加速比s=1;當(dāng)n→∞時(shí),極限加速比s→ 1/(1-a),這也就是加速比的上限。例如,若串行代碼占整個(gè)代碼的25%,則并行處理的總體性能不可能超過(guò)4。這一公式已被學(xué)術(shù)界所接受,并被稱做“阿姆達(dá)爾定律”,也稱為“安達(dá)爾定理”(Amdahl law).
在性能優(yōu)化中的應(yīng)用:
阿姆達(dá)爾除了計(jì)算并行處理的加速比之外,還可以用來(lái)評(píng)估處理器性能的提升的程度。如下是抽象出的阿姆達(dá)爾性能優(yōu)化公式:

舉一個(gè)簡(jiǎn)單例子,運(yùn)行一個(gè)程序需要100秒,其中程序中的乘法運(yùn)算占用了80秒,問(wèn):需要提高多少乘法器的速度才能讓整個(gè)程序速度提高五倍?
首先可以知道:
execution time affected by improvement = 80s
execution time unaffected = 20s
execution time after improvement = 100s/5=20s
假設(shè)優(yōu)化量提升倍數(shù)(amount of improvement)為n,套用公式后可以得到如下:
20s = 80s/n + 20s
80s/n = 0, n等于無(wú)窮大。所以得出結(jié)論,無(wú)論如何提高乘法器的計(jì)算速度,都無(wú)法把整個(gè)程序性能提高五倍。
最后:
所以對(duì)于處理器集成電路開(kāi)發(fā)者或者程序優(yōu)化者而言,對(duì)于某項(xiàng)優(yōu)化是否有必要或者是否能夠達(dá)到理想的預(yù)期性能,需要依據(jù)阿姆達(dá)爾定律,考慮優(yōu)化項(xiàng)在這個(gè)執(zhí)行時(shí)間所占比例,定量考慮,這樣估算出的結(jié)果才是真正的實(shí)際性能。
編輯于 2021-11-07 17:23