定量分析,Amdahl定律

两个概念:

1.可改进比例

2.部件加速比

(类比跑50米,花20秒后改进为10秒,加速比为=2,也就是提高两倍)

举一个例子:一个需要运行60秒的程序中有20秒的运算可以加速,那么他的 可改进比例 =

现在假如 这个20秒可以提速为10秒,那么他的 部件加速比 = ,比原本提高两倍

改进后的总执行时间  = 不可改进部分的执行时间 + 可改进部分改进后的执行时间 40 + 10 = 50

换一种算法:

不可改进部分的执行时间 =  (1 - 可改进比例) 改进前总执行时间

不可改进部分的执行时间 =  改进前总执行时间

可改进部分改进后的执行时间 =

可改进部分改进后的执行时间 = 改进前可改进部分的执行时间

由上面这两个式子可得:

改进后的总执行时间  =  (1 - 可改进比例)改进前总执行时间 + 可改进比例   (1 - ) 60  +  40 + 40 + 20 =  50

由公式可得:已知改进前系统总执行时间可改进比例(改进前此部件执行时间占整个系统总执行时间的百分之多少),还有部件加速比(部件改进后的速度比改进前提高了多少倍),就可以算出 改进后系统的总执行时间

3.系统加速比:  = 1.2

刚才已经求出 改进后的总执行时间,把改进前总执行时间抽出来合并一下,可得:

改进后的总执行时间 = ( (1 - 可改进比例) + ) ) 改进前总执行时间

那么,系统加速比 = \frac{改进前的总执行时间}{( (1 - 可改进比例) + \frac{可改进比例}{部件加速比}) \times  改进前总执行时间}

系统加速比 =

  =  = = 1.2

由公式可得:已知可改进比例(改进前此部件执行时间占整个系统总执行时间的百分之多少),还有部件加速比(部件改进后的速度比改进前提高了多少倍),就可以算出 整个系统的加速比

由公式:系统加速比 = 可以得出:

当部件可改进比例为0时,系统加速比为1;

当部件加速比趋于无穷大时,就会趋于0,这时有:系统加速比 = ;

所以可得到一个重要推论:如果只针对整个任务的一部分进行改进和优化,那么所获得的加速比不超过

你可能感兴趣的:(定量分析,Amdahl定律)