1.9
系统是硬件和系统软件互相交织的集合体,它们必须共同协作才能达到运行应用程序的最终目的。
1.9.1
Amadahl定律,其主要思想是,当我们对某个系统的部分加速时,其对系统整体性能的影响取决于该部分的重要性和加速程度。若系统执行某应用程序的时间为Told,设系统某部分所需执行时间与该时间的比例为α,而该部分性能提升比例为k。该部分初始所需时间为Told*α,现在所需时间为(Told*α)/k。总执行时间为:
Tnew = (1-α)*Told + (Told*α)/k = Told*[(1-α)+α/k]。
由此可计算加速比为
S=1/[(1-α)+α/k]
举个栗子:
系统某个部分初始耗时比例为60%(0.6),其加速比例因子为3(k=3)。则我们可以获得加速比为1/[0.4+0.6/3] = 1.67倍。虽然我们对系统的一个主要部分作出了重大改进,但是获得的系统加速比却明显小于这部分的加速比。这就是Amadhal定律的主要观点——要想加速整个系统,必须提升全部系统中相当大的部分的速度。Told/Tnew若有所改进,速度应该大于1。我们用后缀X来表示比例,2.2X读作2.2倍。
练习题
1.全程2500公里,限速范围内,开车平均每小时100公里,全程需要25小时。
1.1 有1500公里的路程取消限速,开车速度可达到150公里/小时,那么这对整个行程加速比是多少?
Amadahl定律练习题11.2 若你想要整个行程的加速比为1.67X,那么必须以多块的速度通过这1500公里
Amadahl定律练习题1.22.若将一个软件的整体性能将改进2X,只有80%系统能被改进,那么这部分需要被改进多少(即K取何值)才能达到整体性能目标。
Amadahl定律练习题2若K趋向于∞,可以取系统的某一部分将其加速到一个点,在这个点上,这部分花费的时间可以忽略不计。
S∞ = 1/(1-α)
举个栗子:若60%的系统能加速到不花时间,我们获得的净加速比仍只有1/0.4=2.5。
要想提升2倍或更高的比例因子,只有优化系统的大部分组件,大部分组件,大部分组件。重要的事情说三遍
网友评论