计算机系统性能与技术挑战解析
1. Amdahl定律
Amdahl定律由IBM工程师Gene Amdahl于1967年首次发表。最初它针对并行架构,但适用于任何提升计算机系统性能的增强方式,还可用于其他指标,如功率、可靠性,甚至很多人类活动,而非仅局限于计算领域。
假设对现有系统进行增强E,能将计算的F部分加速S倍。设执行时间为Texe ,则有:
- 增强后的执行时间:$T_{exe}(with\ E) = T_{exe}(without\ E) × [(1 - F) + F/S]$
- 增强带来的加速比:$speedup (E) = \frac{T_{exe}(without\ E)}{T_{exe}(with\ E)} = \frac{1}{(1 - F) + F/S}$
从这个加速比定律中,我们可以得到以下几点启示:
- 最大加速比受限 :最大可能的加速比受无法加速的代码部分限制,最大加速比为$1/(1 - F)$。例如,一位工程师发明了一种计算实数x正弦函数的革命性方法,能将计算时间缩短1000倍,但由于正弦函数在科学工作负载的执行时间中占比不到千分之一,该发明带来的加速比不到1/0.999,即0.1%。只有在专门用于计算正弦函数的机器中,该发明才可能有用。
- 优化常见情况 :要提高计算机系统性能,应关注能加速执行时间占比最大部分的机制。对于执行时间占比小的函数,加速它们往往是徒劳的。比如,对于正弦函数,将其作为软件子程序执行比设计专用硬件加速更好。通常,常见功能(如内存缓存访问)用硬件实现,罕见功能用软件实现。软件实现功能的一个重要机制是异常,当硬件需要
超级会员免费看
订阅专栏 解锁全文
11万+

被折叠的 条评论
为什么被折叠?



