Amdahl 定律(筆記1)

2021-08-28 12:13:16 字數 1014 閱讀 8582

序列;並行 基礎

該定律的主要思想是,當我們對系統某個部分加速時,其對系統整體效能的影響取決於該部分的重要性和加速程度。

設系統執行某程式最初所需時間為t1t_

t1​ 1t_

t1​, 提公升後為(at1t_

t1​)/k,故提公升後總執行時間為:

t 2=

(1−a

)t1+

(at1

)/k=

t1[(

1−a)

+a/k

]t_=(1-a)t_+(at_)/k=t_[(1-a)+a/k]

t2​=(1

−a)t

1​+(

at1​

)/k=

t1​[

(1−a

)+a/

k]而加速比s=t1/

t2

t_/t_

t1​/t2

​,故s=1

(1−a

)+a/

ks=\frac

s=(1−a

)+a/

k1​用乙個例題比較直觀理解:設一輛卡車所需行駛2500公里,由於限速,平均速度為100公里/小時,整個行程為25小時。

(1)已知某段路程限速取消,使得行程中有1500公里,速度可達150公里/小時,則整個行程加速比為?

已知題中a=3/5,k=3/2,則在取消限速路段速度可提公升1.5x,時間縮短為10小時,但其他路程所需時間未變仍需10小時,故提公升後總時間為20小時,加速比s=25/20=1.25x。(表示效能提公升最好的方法是用比例,用字尾「x」表示比例)

可以用「木桶理論」理解,某部分通過「並行」效能提公升非常快,但系統整體效能仍受限於「序列」那部分。(可能有錯)

amdahl的乙個特殊之處是考慮k趨向於∞時,這意味著可以將某部分效能提公升到幾乎不耗費時間的程度,但加速比仍受到未提公升那部分的限制。當k無限增大趨近無窮時,s的最大值無限趨近1/a

如a=0.6,k=∞,則s=2.5x。(而實際中不會有100%的系統可以被提公升?)

Amdahl 定律詳解

fe 可改進部分占用的時間 任務總時間 se 改進前改進部分占用的時間 改進後改進部分占用的時間 那麼fe se 則表示 改進後改進部分占用的時間 改進後執行總任務時間,即改進後改進部分所佔總任務的比例 1 fe 表示不可改進部分佔據總任務的比例,當然這裡表示改進之前的。加速比sn t0 tn 1 ...

效能專題 Amdahl定律

有些問題使用越多的資源就能越快地解決 越多的工人參與收割莊稼,那麼就能越快地完成收穫。另一些任務根本就是序列化的 增加更多的工人根本不可能提高收割速度。如果我們使用執行緒的重要原因之一是為了支配多處理器的能力,我們必須保證問題被恰當地進行了並行化的分解,並且我們的程式有效地使用了這種並行的潛能。大多...

java併發(三十一)Amdahl定律

b 阿姆達爾定律 b 阿姆達爾 amdahl 定律是計算機系統設計的重要定量原理之一,於1967年由ibm360系列機的主要設計者阿姆達爾首先提出。該定律是指 系統中對某一部件採用更快執行方式所能獲得的系統效能改進程度,取決於這種執行方式被使用的頻率,或所佔總執行時間的比例。阿姆達爾定律實際上定義了...