如主流中央处理器(CPU)供应商所证明的那样,多核处理器随时准备着占领桌面和嵌入式市场。多处理带来了更高的性能,也同时带来了新的问题。本文将探讨多处理和开发使用 SMP 的 Linux® 应用代码">程序背后的思想。
可以通过多种方法提高 Linux 系统高速下载站(绿色软件资源站)">系统的性能,而其中最流行的一种是提高处理器的性能。一个明显的解决方案是使用具有更快时钟频率的处理器,但是对于任何特定技术来讲都存在一个物理极限,时钟频率也有这样的极限。当达到那个极限时,可使用 “越多越好” 的方法应用多处理器。不幸的是,多处理器的性能并不与单个处理器性能的总和成线性比例。
在开始讨论 Linux 中的多处理应用代码">程序之前,我们先来快速地回顾一下多处理的历史。
多处理的历史
|
多处理起源于 20 世纪 50 年代中期的一些公司,这些公司中有些您可能知道,而另一些您可能就不记得了(IBM、Digital Equipment Corporation、Control Data Corporation)。20 世纪 60 年代早期,Burroughs Corporation 引入了一种对称 MIMD 多处理器,它带有四个 CPU 并通过交叉开关可连接最多十六个内存模块(第一种 SMP 架构)。1964 年引入了 CDC 6600,它的使用比较成功并得到流行,它提供了一个带有十个子处理器(外围处理单元)的 CPU。20 世纪 60 年代末,Honeywell 发布了它的第一个 Multics 系统高速下载站(绿色软件资源站)">系统,这是带八个 CPU 的另一种对称多处理系统高速下载站(绿色软件资源站)">系统。
在开发多处理系统高速下载站(绿色软件资源站)">系统的同时,各种技术的使用也提高了缩小处理器体积和运行更快的时钟频率的能力。20 世纪 80 年代,Cray Research 等公司引入了多处理器系统高速下载站(绿色软件资源站)">系统和类似 UNIX® 的操作系统高速下载站(绿色软件资源站)">系统(CX-OS),以便利用这些能力。
20 世纪 80 年代末期,随着单处理器个人计算机系统高速下载站(绿色软件资源站)">系统(如 IBM PC)的流行,多处理系统高速下载站(绿色软件资源站)">系统的使用呈下降趋势。但是到了二十年后的现在,多处理利用对称多处理技术又回到了个人计算机系统高速下载站(绿色软件资源站)">系统中。
Amdahl 法则
Gene Amdahl 是一名计算机架构师、IBM 职员,在 IBM、Amdahl Corporation(以他的名字命名的企业)和其他一些公司从事计算机架构开发。但是最著名的是他的法则,该法则用于在改进系统高速下载站(绿色软件资源站)">系统的一部分后预测最大的预期系统高速下载站(绿色软件资源站)">系统改进。它主要用来计算使用多处理器后理论上的最大性能改进(参见图 1)。
图 1. 处理器并行化的 Amdahl 法则
使用图 1 所示的等式,可计算系统高速下载站(绿色软件资源站)">系统的最大性能改进,N 表示处理器的数目,而因数 F 指定不能并行化的系统高速下载站(绿色软件资源站)">系统部分(即本质上顺序的系统高速下载站(绿色软件资源站)">系统部分)。结果如图 2 所示。
图 2. 最多十个 CPU 的 Amdahl 法则
图 2 中最上面的一条线显示了处理器的数目。理想状态下,添加另外的处理器来解决问题时,希望看到这样的性能增长。不幸的是,并非所有的问题都可以并行化,而且还有管理处理器的开销,所以速度的提高并没有这么大。底部(紫色的线)是一个 90% 的处理属于顺序性的问题例子。在此图中,最佳的情况是棕色的线,它展示了一个 10% 顺序性(因此 90% 可并行化)的问题。即使在这种情况下,十个处理器的执行性能也只比五个稍好一点儿。


