6.2 为什么并行化如此重要
过去我们可以指望CPU时钟频率会变得越来越快。1979年,英特尔公司推出的8086处理器的时钟频率为5 MHz;到了1993年,奔腾芯片的速度达到了60 MHz。在21世纪早期,CPU的处理速度一直以这种方式增长。
然而在过去十年中,主流的芯片厂商转向了多核处理器。在写作本书时,服务器通过几个物理单元搭载32或64核的情况已不鲜见,而且,这种趋势尚无减弱的征兆。
这种变化影响到了软件设计。我们不能再依赖提升CPU的时钟频率来提高现有代码的计算能力,需要利用现代CPU的架构,而这唯一的办法就是编写并行化的代码。
大家若已经听过这个消息,我该是多么欣慰。事实上,这一观点在过去几年中,不断地被各种会议的演讲者、技术图书的作者和顾问提及。阿姆达尔定律让我开始关注并行化的重要性。
阿姆达尔定律是一个简单规则,预测了搭载多核处理器的机器提升程序速度的理论最大值。以一段完全串行化的程序为例,如果将其一半改为并行化处理,则不管增加多少处理器,其理论上的最大速度只是原来的2倍。有了大量的处理器后,现在这已经是现实了,问题的求解时间将完全取决于它可被分解成几个部分。
以这样的方式思考性能问题,优化任何和计算相关的任务立即变成了如何有效利用现有硬件的问题。当然,不是所有的任务都和计算相关,本章只关注这类和计算相关的问题。
