在计算机系统中,某一功能的处理时间为整个系统运行时间的50%,若使该功能的处理速度加快10倍,根据Amdah1定律,这样做可以使整个系统的性能提高工 (27) 倍。若要使整个系统的性能提高1.5倍,则该功能的处理速度应加快 (28) 倍。
A.3
B.5
C.7
D.8
参考答案:A
解析: Amdah1定律:系统中某一部件由于采用某种更快的执行方式后,整个系统性能的提高与这种执行方式的使用频率或占总执行时间的比例有关。Amdah1定律定义了由于采用特殊的方法所能获得的加速比的大小。
Amdah1定律中,加速比与两个因素有关:一个是计算机执行某个任务的总时间中可被改进部分的时间所占的百分比,即(可改进部分占用的时间/改进前整个任务的执行时间),记为fe,它总小于1。另一个是改进部分采用改进措施后比没有采用改进措施前性能提高的倍数,即(改进前改进部分的执行时间/改进后改进部分的执行时间),记为re,它总大于1。
Amdah1定律既可以用来确定系统中对性能限制最大的部件,也可以用来计算通过改进某些部件所获得的系统性能的提高。Amdah1定律指出,加快某部件执行速度所获得的系统性能加速比,受限于该部件在系统中所占的重要性。假设我们对机器进行某种改进,那么机器系统的加速比就是:
系统加速比=改进后系统性能/改进前系统性能
或者
系统加速比=改进前总执行时间/改进后总执行时间系统加速比依赖于两个因素。
(1)可改进部分在原系统计算时间中所占的比例。例如,一个需运行60秒的程序中,有20秒的运算可以加速,那么该比例就是20/60。这个值用“可改进比例”表示,它总是小于等于1的。
(1)可改进部分改进以后的性能提高。例如,系统改进后执行程序,其中可改进部分花费2秒时间,而改进前该部分需花费5秒,则性能提高为5/2。用“部件加速比”表示性能提高比,一般情况下,它是大于1的。
部件改进后,系统的总执行时间等于不可改进部分的执行时间加上可改进部分改进后的执行时间,系统加速比为改进前与改进后总执行时间之比,即:系统加速比:改进前总执行时间/改进后总执行时间:1/((1-re)+fe/re)
Amdah1定律有3个推论。
(1)Amdah1定律表达了一种性能增加的递减规则:如果仅仅对计算机中的某一部分做性能改进,则改进越多,系统获得的效果越小。
(2)如果只针对整个任务的一部分进行优化,那么所获得的加速比不大于 1/(1-fe)。
(3)Amdah1定律告诉我们如何衡量一个“好”的计算机系统:具有高性价比的计算机是一个带宽平衡的系统,而不是看它使用的某些部件的性能。在本题中,fe=0.5,re=10,可以得到系统的加速比为1.8左右。当加速比要求为1.5时,利用上述公式,可以算出该功能部件的加速比为3倍。