序列;並行 基礎
該定律的主要思想是,當我們對系統某個部分加速時,其對系統整體效能的影響取決於該部分的重要性和加速程度。
設系統執行某程式最初所需時間為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系列機的主要設計者阿姆達爾首先提出。該定律是指 系統中對某一部件採用更快執行方式所能獲得的系統效能改進程度,取決於這種執行方式被使用的頻率,或所佔總執行時間的比例。阿姆達爾定律實際上定義了...