问题 单项选择题

假定求浮点数平方根(FPSQR)的操作在某台机器上的一个基准测试程序中占总执行时间的20%,FP运算指令所用时间占总执行时间的50%。采用两种优化FPSQR的方法,第一种方法是增加专门的FPSQR硬件,可以将FPSQR的操作速度提高为原来的10倍;第二种方法是提高所有FP(浮点)运算指令的执行速度到原来的1.6倍,从而提高求浮点数平方根操作的速度。可以通过计算这两种方法对基准测试程序的加速比来比较这两种方法的优劣。以下叙述正确的是______。

A.第一种方法的加速比是1.23,效果较好
B.第二种方法的加速比是1.23,效果较好
C.第一种方法的加速比是1.22,效果较好
D.第二种方法的加速比是1.22,效果较好

答案

参考答案:B

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

判断题
单项选择题