Linux和对称多处理应用程序介绍

2016-01-29 17:36 0 1 收藏

Linux和对称多处理应用程序介绍,Linux 和对称多处理应用程序介绍

【 tulaoshi.com - Linux 】

    如主流中央处理器(CPU)供应商所证明的那样,多核处理器随时准备着占领桌面和嵌入式市场。多处理带来了更高的性能,也同时带来了新的问题。本文将探讨多处理和开发使用 SMP 的 Linux® 应用程序背后的思想。

    可以通过多种方法提高 Linux 系统的性能,而其中最流行的一种是提高处理器的性能。一个明显的解决方案是使用具有更快时钟频率的处理器,但是对于任何特定技术来讲都存在一个物理极限,时钟频率也有这样的极限。当达到那个极限时,可使用 “越多越好” 的方法应用多处理器。不幸的是,多处理器的性能并不与单个处理器性能的总和成线性比例。

    在开始讨论 Linux 中的多处理应用程序之前,我们先来快速地回顾一下多处理的历史。

多处理的历史

Flynn 的多 CPU 架构分类

Single Instruction, Single Data(SISD) 是典型的单处理器架构。Multiple Instruction, Multiple Data(MIMD) 多处理架构拥有一些独立的处理器,它们各自操作独立数据(控制并行)。最后,Single Instruction, Multiple Data(SIMD) 拥有操作不同数据的大量处理器(数据并行)。

请参阅下面的 参考资料 部分,获取 Flynn 的原始文件的详细信息。

    多处理起源于 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),以便利用这些能力。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/linux/)

    20 世纪 80 年代末期,随着单处理器个人计算机系统(如 IBM PC)的流行,多处理系统的使用呈下降趋势。但是到了二十年后的现在,多处理利用对称多处理技术又回到了个人计算机系统中。

Amdahl 法则

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/linux/)

    Gene Amdahl 是一名计算机架构师、IBM 职员,在 IBM、Amdahl Corporation(以他的名字命名的企业)和其他一些公司从事计算机架构开发。但是最著名的是他的法则,该法则用于在改进系统的一部分后预测最大的预期系统改进。它主要用来计算使用多处理器后理论上的最大性能改进(参见图 1)。


图 1. 处理器并行化的 Amdahl 法则
处理器并行化的 Amdahl 法则

    使用图 1 所示的等式,可计算系统的最大性能改进,N 表示处理器的数目,而因数 F 指定不能并行化的系统部分(即本质上顺序的系统部分)。结果如图 2 所示。


图 2. 最多十个 CPU 的 Amdahl 法则
最多十个 CPU 的 Amdahl 法则

    图 2 中最上面的一条线显示了处理器的数目。理想状态下,添加另外的处理器来解决问题时,希望看到这样的性能增长。不幸的是,并非所有的问题都可以并行化,而且还有管理处理器的开销,所以速度的提高并没有这么大。底部(紫色的线)是一个 90% 的处理属于顺序性的问题例子。在此图中,最佳的情况是棕色的线,它展示了一个 10% 顺序性(因此 90% 可并行化)的问题。即使在这种情况下,十个处理器的执行性能也只比五个稍好一点儿。

延伸阅读
标签: 电脑入门
您知道怎么消除应用程序乱码吗?掌握消除应用程序的乱码的方法是非常重要的,下面就给您介绍怎么消除应用程序的代码. 当你运行某些中文软件时,假如菜单等显示界面上出现乱码,一般可能是软件的中文链接库被英文链接库覆盖引起的,这类乱码经常发生在用微软开发工具(例如 VB、VC)开发的中文软件上。 因为你开发的这类软件,菜单等显示界面上的...
新的JavaTM 虚拟机(VMs)具有能够提高性能的特点, 并且你可以使用许多工具来提高应用程序的性能或减小一般类文件的尺寸。这种Java虚拟机的特性和工具可使你在不改变应用程序、或对应用程序仅做很小改动的情况下, 提高应用程序的性能。 Java虚拟机的特性 !-- frame contents -- !-- /frame contents -- Ja...
VC应用程序框架提供的强大功能,为我们的开发提供了极大的方便,利用它可以很轻松地生成应用程序的框架.许多常用功能,例如文档的创建,文件的打开,保存等操作的大部分代码都由应用程序框架来完成.这些操作对于开发软件的用户而言是透明的。微软设计Visual C++的初衷是尽量向用户提供尽可能简单的接口,但是,正是因为应用框架的这一透明性,使VC...
本文主要讲解Android应用程序签名相关的理论知识,包括:什么是签名、为什么要给应用程序签名、如何给应用程序签名等 。 1、什么是签名?       如果这个问题不是放在Android开发中来问,如果是放在一个普通的版块,我想大家都知道签名的含义。可往往就是将一些生活中常用的术语放在计算机这种专业领域,大家就开...
  大多使用Linux的人都对WINE程序比较熟悉,WINE程序是可以在不需要Windows的情况下使用Windows的软件。WINE还是算比较成熟的,但是WINE只能运行部分程序,还有一些程序在运行的时候会出现一些问题。   除了WINE,还有一些其它的软件可以帮助你运行一些特殊的程序。例如,CodeWeaver 公司的CrossOver办公软件,它可以让你在Linux下...