Amdahl's law(阿姆達(dá)爾定律)公式推導(dǎo)與思考

原文地址:https://www.inlighting.org/archives/amdahls-law-and-its-proof

1. 介紹

Amdahl's law(阿姆達(dá)爾定律) 由計算機(jī)科學(xué)家 Gene Amdahl 在 1967 年提出,旨在用公式描述在并行計算中,多核處理器理論上能夠提高多少倍速度地梨,公式如下:
S=\frac{1}{1-a+\frac{a}{n}}
S 為 speedup叉袍,代表全局加速倍速(原來總時間/ 加速后總時間),a 為并行計算所占比例(可以并行計算代碼量 / 總代碼量),n 為并行節(jié)點處理個數(shù),可以理解為 CPU 的核心數(shù),這里先簡要介紹下轧拄,后面會詳細(xì)說明并且推導(dǎo)。

2. 前置說明

2.1 Fraction enhanced

Fraction enhanced 顧名思義是部分提高讽膏。例如我的程序總共有 100 行代碼檩电,其中 50 行是可以通過并行計算的,那么這 50 行代碼就是 Fraction enhanced 府树。但是實際上 Fraction enhanced 是一個比例數(shù)值俐末,是并行計算代碼 / 總代碼量
Fraction\ enhanced=\frac{parallel\ code}{total\ code}
例如上面的例子奄侠,Fraction\ enhanced = 50/100=0.5 卓箫,由此我們可以發(fā)現(xiàn),Fraction enhanced 的值永遠(yuǎn)小于 1垄潮。

2.2 Speedup enhanced

Speedup\ enhanced=\frac{Old\ execution\ time}{New\ execution\ time}

如上面公式所得烹卒,Speedup enhanced 等于 原有運行時間 / 并行計算加速后的時間 。例如系統(tǒng)原來串行計算需要 6 秒弯洗,加速后只需要 3 秒旅急,那么 Speed\ enhanced=6/3=2 。由此可知 Speedup enhanced 的值永遠(yuǎn)大于 1牡整。

2.3 帶入 Amdahl's law

我們分別把 Fraction enhancedSpeedup enhanced 帶入 Amdahl's law藐吮。Fraction enhanced 對應(yīng)公式中的 a ,即并行計算所占比例逃贝。Speedup enhanced 對應(yīng) n 谣辞,即并行節(jié)點處理個數(shù)。

Speedup enhanced 為什么可以代替 n 沐扳?

這里大家可能有一點疑問泥从,Speedup enhanced 明明是 未加速前時間 / 加速后的時間,為什么就可以代表并行節(jié)點處理個數(shù)沪摄。在理論上躯嫉,單核處理器處理一個任務(wù)需要 100 秒,那么雙核處理它應(yīng)該需要 50 秒卓起。時間上它提速了 2 倍, cpu 個數(shù)上它也提升了 2 倍凹炸,故兩個可以替換戏阅。

\begin{aligned} Speedup\ enhanced&=\frac{Old\ execution\ time}{New\ execution\ time} \\ &=\frac{100}{50}=2 \\ &=\frac{New\ cpu\ cores}{Old\ cpu\ cores} \\ &=\frac{2}{1}=2\\ \end{aligned}

帶入后公示得:
\begin{aligned} S&=\frac{Old\ total\ execution\ time}{New\ total\ execution\ time}\\ &=\frac{1}{{1-Fraction_{enhanced}}+Fraction_{enhanced}/Speedup_{enhanced}}\\ \end{aligned}

3. 證明

  • S 為我們所需要的結(jié)果,全局提速倍速
  • Old\ total\ execution\ time (原來系統(tǒng)執(zhí)行總時間)為 T
  • New\ total\ execution\ time (加速后系統(tǒng)執(zhí)行總時間)為 T'
  • 系統(tǒng)中并行代碼塊(指能夠通過并行計算加速的代碼塊)原來執(zhí)行時間為 t
  • 系統(tǒng)中并行代碼塊(指能夠通過并行計算加速的代碼塊)加速后執(zhí)行時間為 t'
  • 系統(tǒng)中串行代碼塊(指不能通過并行計算加速的代碼塊)執(zhí)行時間為 t_n
  • Fraction_{enhanced}f'
  • Speedup_{enhanced}s'

S=\frac{T}{T'}\\ T=t_n+t\\ T'=t_n+t'\\ f' = \frac{t}{T}=\frac{t}{t_n+t}\\ s'=\frac{t}{t'}\\ \frac{f'}{s'}=\frac{t}{t_n+t} \div \frac{t}{t'}=\frac{t'}{t_n+t}\\

帶入公式得:
\begin{aligned} S&=\frac{T}{T'}\\ &=\frac{t_n+t}{t_n+t'}\\ &=\frac{1}{(t_n+t')/(t_n+t)}\\ &=\frac{1}{1-\frac{t}{t_n+t}+\frac{t'}{t_n+t}}\\ &=\frac{1}{1-f'+\frac{f'}{s'}}\\ &=\frac{1}{{1-Fraction_{enhanced}}+Fraction_{enhanced}/Speedup_{enhanced}}\\ &=\frac{1}{1-a+\frac{a}{n}} \end{aligned}
證明完畢啤它!

4. 總結(jié)

讓我們回到最初的公式
S=\frac{1}{1-a+\frac{a}{n}}
a 為并行計算所占比例奕筐,n 為并行節(jié)點處理個數(shù)舱痘。當(dāng) a=0 時(即只有串行沒有并行),無論 n 為多少离赫,加速比 S 均為 1芭逝。當(dāng) n \rightarrow +\infty ,當(dāng) cpu 核心數(shù)無限增多的時候渊胸,極限加速比 S=1/(1-a) 旬盯。例如若并行代碼有 75%,極限加速比不能超出 4翎猛。

由此我們可知胖翰,在并行系統(tǒng)中一味的增加運算資源,并不能永遠(yuǎn)成倍的提升系統(tǒng)整體性能切厘。

5. 參考資料

阿姆達(dá)爾定律

Computer Organization | Amdahl’s law and its proof

理解性能提升By阿姆達(dá)爾定律(Amdahl's law)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末萨咳,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子疫稿,更是在濱河造成了極大的恐慌培他,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件遗座,死亡現(xiàn)場離奇詭異舀凛,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)员萍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進(jìn)店門腾降,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人碎绎,你說我怎么就攤上這事螃壤。” “怎么了筋帖?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵奸晴,是天一觀的道長。 經(jīng)常有香客問我日麸,道長寄啼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任代箭,我火速辦了婚禮墩划,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嗡综。我一直安慰自己乙帮,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布极景。 她就那樣靜靜地躺著察净,像睡著了一般驾茴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上氢卡,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天锈至,我揣著相機(jī)與錄音,去河邊找鬼译秦。 笑死峡捡,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的诀浪。 我是一名探鬼主播棋返,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼雷猪!你這毒婦竟也來了睛竣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤求摇,失蹤者是張志新(化名)和其女友劉穎射沟,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體与境,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡验夯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了摔刁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挥转。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖共屈,靈堂內(nèi)的尸體忽然破棺而出绑谣,到底是詐尸還是另有隱情,我是刑警寧澤拗引,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布借宵,位于F島的核電站,受9級特大地震影響矾削,放射性物質(zhì)發(fā)生泄漏壤玫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一哼凯、第九天 我趴在偏房一處隱蔽的房頂上張望欲间。 院中可真熱鬧,春花似錦断部、人聲如沸猎贴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嘱能。三九已至,卻和暖如春虱疏,著一層夾襖步出監(jiān)牢的瞬間惹骂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工做瞪, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留对粪,地道東北人。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓装蓬,卻偏偏與公主長得像著拭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子牍帚,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,629評論 2 354