同一个算法在具有8个物理内核的微处理器上的最大加速比也就是1.77x。因此,增加了这么多物理内核之后代码也还需要至少562.5秒的时间完成。
最大加速比(倍数) = 1 / ((1 - 0.50) + (0.50 / 8)) = 1.77x
图1-9展示了这个算法在物理内核数为1~16的时候的加速比。从图中可以看出,加速比并不是线性变化的。随着内核数的增加,处理资源的浪费也越多。图1-10展示了同样的内容,只不过使用了新版本的算法,其中总任务的90%(P=0.90)都是并行执行的。事实上,90%的并行率是非常高的成就了,但在具有16个物理内核的微处理器上只获得了6.40x的加速比。
最大加速比(倍数) = 1 / ((1 - 0.90) + (0.90 / 16)) = 6.40x