定量分析,Amdahl定律

2018-02-22  本文已影响22人  微小的沙土

两个概念:

1.可改进比例:改进前,可改进部件的执行时间 除以 总时间

2.部件加速比:改进后,改进前的部件的执行件时间 除以 改进后部件的执行时间 (类比跑50米,花2秒后改进为1秒,加速比为2,也就是提高两倍)

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

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

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

换算:(1 - 可改进比例)* 改进前总执行时间 + 可改进比例 * 改进前总执行时间 / (部件加速比)  ,

也就是 (1 - 20/60) * 60    +    20/60 * 60 / (部件加速比)

等等于  40 + 20/(部件加速比)    ==》  40 + 20 * 10 / 20 = 50

(也就是知道了改进前系统总执行时间,可改进比例【改进前此部件执行时间占整个系统总执行时间的百分之多少】,还有部件加速比【部件改进后的速度比改进前提高了多少倍】,就可以算出改进后系统的总执行时间 )

系统加速比  = 改进前的总执行时间 / 改进后的总执行时间 = 60/50 = 1.2

刚才已经求出 改进后的总执行时间,把时间抽出来合并一下【换算:】那里的等式,也就是

改进后的总执行时间  = 【(1 - 可改进比例) + (可改进比例/部件加速比) 】 *  改进前总执行时间

那么,系统加速比就为 :改进前的总执行时间 /【(1 - 可改进比例) + (可改进比例/部件加速比) 】 *  改进前总执行时间

也就是,系统加速比 = 1 / (1 - 可改进比例) + (可改进比例 / 部件加速比)

  1 / [ (1 - 20/60 )  +  20/60 /(20/10) ] =1/ [40/60 + 10/60] = 1/[50/60] = 1.2

(也就是知道了可改进比例【改进前此部件执行时间占整个系统总执行时间的百分之多少】,还有部件加速比【部件改进后的速度比改进前提高了多少倍】,就可以算出 整个系统的加速比)

由系统加速比可以得出:当部件可改进比例为0时,系统加速比为1;当部件加速比趋于无穷大时,(可改进比例 / 加速比)就会趋于0,这时有

系统加速比 = 1 / (1 - 可改进比例)

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

上一篇 下一篇

猜你喜欢

热点阅读