【计算机系统结构】第七章:多处理机

第一节:多处理机的概念、问题和硬件结构

知识点1:多处理机的基本概念

1、多处理机的定义及目的

多处理机是指有两台以上的处理机,共享I/0子系统,机间经共享主存或高速通信网络通信,在统一操作系统控制下,协同求解大而复杂问题的计算机系统。

使用多处理机的第一个目的是通过多台处理机对多个作业、任务进行并行执行来提高解题速度,从而提高系统的整体性能;第二个目的是使用冗余的多个处理机通过重新组织来提高系统的可靠性、适应性和可用性。由于应用的目的和结构不同,因此,多处理机可以有同构型、异构型和分布型3种。

2、多处理机与阵列处理机的对比

多处理机是属于多指令流多数据流的系统。它与单指令流多数据流的阵列处理机相比,有很大的差别。其差别主要来源于并行性的等级不同,阵列处理机主要是针对向量、数组处理,实现向量指令操作级的并行,是开发并行性中的同时性。多处理机实现的则是更高一级的作业或任务间的并行,是开发并行性中的并发性。因此,在硬件结构上,它的多个处理机要用多个指令部件分别控制,通过共享主存或机间互联网络实现异步通信;在算法上,不限于向量、数组处理,还要挖掘和实现更多通用算法中隐含的并行性;在系统管理上,要更多的依靠操作系统等软件手段,有效地解决资源分析和管理,特别是任务分配、处理机调度、进程的同步和通信等问题。

知识点2:多处理机的硬件结构

1、多处理机有紧耦合和松耦合两种不同的构形。

(1)紧耦合多处理机。

紧耦合多处理机是通过共享主存来实现处理机间通信的,其通信速率受限于主存频宽。各处理机与主存经互联网络连接,处理机数受限于互联网络带宽及各处理机访主存冲突的概率。

(2)松耦合多处理机。

松耦合多处理机中,每台处理机都有一个容量较大的局部存储器,用于存储经常用的指令和数据,以减少紧耦合系统中存在的访主存冲突。不同处理机间或者通过通道互联实现通信,以共享某些外围设备;或者通过消息传送系统(MTS)来交换信息,这时各台处理机可带有自己的外围设备。消息传送系统常采用分时总线型或环型、星型、树型等拓扑结构。松耦合多处理机较适合做粗粒度的并行计算。

2、同构对称型和异构非对称型

在紧耦合多处理机中就各处理机而言,又有同构对称型和异构非对称型两种。当多处理机用于并行任务时,常采用同构对称型的紧耦合多处理机。采用异构非对称型多处理机时,其主处理机不同于从处理机。

3、多处理机的互连

多处理机的互连一般采用总线、环形互连、交叉开关、多端口存储器或蠕虫穿洞寻径网络等几种形式。

4、公用总线的冲突

为解决多个处理机同时访问公用总线的冲突,研制了静态优先级、固定时间片、动态优先级、先来先服务等多种总线仲裁算法。

5、环形互连的缺点

由于环形互连是点点连接,不是总线连接,其物理参数容易得到控制,非常适合于有高通信带宽的光纤通信。光纤通信是很难用在总线式互连系统上的。环形互连的缺点是信息在每个接口处都会有一个单位的传输延迟,当互连的处理机机数增加时,环中的信息传输延迟将增大。令牌环可看成是一种周期短、延迟长的流水线。

6、多端口存储器形式

多端口存储器形式的中心是多端口存储器模块。多个存储器模块的相应端口连接在一起,每一个端口负责处理一个处理机P或I/0通道的访存请求。

7、蠕虫穿洞寻径网络的含义如下:

机间采用小容量缓冲存储器,用于消息分组寻径存储转发。在蠕虫网络中,将消息分组又分割成一系列更小的小组,同一分组中所有小组以异步流水方式按序不间断地传送,并且同一分组中的所有小组,只有头部的小组知道其所在整个分组传送的目的地,用硬件方式进行传送的应答。各个分组允许交叉传送,但不同分组中的各个小组不能相互混在一起传送,利用虚拟通道思想,使存在于发送和接收结点之间的一条物理通道能被多个虚拟通道分时共享。

第二节:紧耦合多处理机多cache的一致性问题

知识点1:多Cache的一致性问题的产生原因

①在多处理机中,情况比较复杂。由于每个处理机都有自己的专用Cache,当主存中同一个信息块在多个Cache中都有时,会出现多个Cache之间的相应信息块的内容不一致的问题。

②在多处理机上,为了提高系统的效率,有时还允许进程迁移,将一个尚未执行完而被挂起的进程调度到另一个空闲的处理机上去执行,使系统中处理的负荷保持均衡,这样做也会造成Cache与主存间的不一致。

③被迁移的进程中最近修改过的信息只保留在原处理机的Cache中,迁到新的处理机后,该进程就会使用主存中已过期的旧信息,使进程不能正确地得到恢复而出错。

④当系统发生绕过Cache的输入/输出操作时,也会导致多Cache块之间及Cache与主存对应块的内容不一致。

知识点2:多Cache的一致性问题的解决办法

(1)解决进程迁移引起的多Cache之间的不一致性。对于进程迁移引起的多Cache之间的不一致性问题,可以通过禁止进程迁移的办法予以解决,也可以在进程挂起时,靠硬件方法将Cache中该进程改写过的信息块强制写回主存相应位置办法来解决。

(2)以硬件为基础实现多Cache的一致性。以硬件为基础实现多Cache的一致性的办法有多种。最普遍采用的办法叫做监视Cache协议法,即各个处理机中的Cache控制器随时都在监视着其他Cache的行动。

(3)以软件为基础实现多Cache的一致性

第三节:多处理机的并行性和性能

知识点1:并行算法

并行算法是指可同时执行的多个进程的集合,各进程可相互作用、协调和并发操作。按运算基本对象,并行算法可分为数值型和非数值型两类。基于代数运算,如矩阵运算、多项式求值、线性方程组求解等并行算法称为数值型并行算法。

基于关系运算,如选择、排序、查找、字符处理的并行主要是对符号操作的,称为非数值型并行算法。

按并行进程间的操作顺序不同,并行算法又分为同步型、异步型和独立型3种。

根据各处理机任务的大小(即任务粒度)不同,并行算法又分为细粒度、中粒度、粗粒度3种。

知识点2:并行算法应用

【例7-4】计算E=a+bx+cxx+dxxx

解题:利用霍纳法则可得到E1=a+x (b+x (c+x (d)))

这是在单处理机上执行的典型循环算法。共需3个乘加循环6级运算,即P=1,T1=6。但这不适合在多处理机上并行运行,反倒是用前一式的直接解法更有效,适合于P=3,T.=4。因此加速比Sp=3/2,但Ep=1/2。这两种式子的运算过程表示成树形流程图分别如图7-17(a)和图7一17 (b)所示。

结论:

把运算过程表示成树形结构,提高运算的并行性就是如何对树进行变换,以减少运算的级数,即降低树高Tp。树形结构可以用交换律、结合律、分配律来变换树的形状。由于多处理机主要是为提高速度,因此,好的并行算法应尽可能增大树中每一层的结点数,即增大树的广度,使各处理机可并行的过程数尽可能增大,以降低树的高度,即降低多处理机运算的级数。当最大限度降低了树的高度之后,就应再缩小树的广度,使之在达到一定的加速比S,之后如何减少机数P来减少多处理机效率的降低。

知识点3:程序并行性的分析

程序并行性的分析如下:

(1)数据相关。

如果P;的左部变量在P;的右部变量集内,且Pj必须取出P,运算的结果来作为操作数,就称Pj“数据相关”于P相当于流水中发生的“先写后读”相关。

(2)数据反相关。

如果P,的左部变量在P;的右部变量集内,且当P;未取用其变量的值之前,是不允许被Р;所改变的,就称P,“数据反相关”与P,相当于流水中发生的“先读后写”相关。

(3)数据输出相关。

如果P;的左部变量也是P,的左部变量,且P存入其算得的值必须在P;存入之后,则称P;“数据输出相关”与P;。

程序并行性的分析如下:

除了上述3种相关外,如果两个程序段的输入变量互为输出变量,同时具有“先写后读”和“先读后写”两种相关,以交换数据为目的,则两者必须并行执行,既不能顺序串行,也不能交换串行。

如果两个程序段之间不存在任何一种数据相关,既无共同变量,或共同变量只出现在右部的源操作数,则两个程序段可以无条件地并行执行,也可以顺序串行或交换串行。

知识点4:并行语言与并行编译

①并行算法需要用并行程序来实现。为了加强程序并行性的识别能力,就要使用并行程序设计语言。

②并行程序设计语言的基本要求是:能使程序员在其程序中灵活、方便地表示出各类并行性,能在各种并行/向量计算机系统中高效地实现。

③并行进程的特点是这些进程在时间上重叠地执行,一个进程未结束,另一个进程就已开始。

④并行任务的派生是使一个任务在执行的同时,派生出可与它并行执行的其他一个或多个任务,分配给不同的处理机完成。

知识点5:多处理机的性能

1、任务粒度的依据

任务粒度的大小会显著影响多处理机的性能和效率。任务粒度过小,辅助开销大,系统效率低:任务粒度过大,并行度低,性能不会很高。因此,要合理选择任务粒度大小,并使其尽可能均匀,还要采取措施减少辅助开销,以保证系统性能随处理机数目的增大能有较大的提高。

衡量任务粒度大小的一个依据是程序用于有效计算的执行时间E与处理机间的通信等辅助开的销时间C的比值。只有E/C较大时,开发并行性才有好处。如果最大并行度会带来最大的通信等辅助开销,倒不如增大任务粒度,降低并行度来减少辅助开销。因此,为获得最佳的性能,必须对并行性和额外开销进行权衡。

第四节:多处理机的操作系统

知识点1:主从型操作系统

1、优点是:

主从型操作系统的结构比较简单;整个管理程序只在一个处理机上运行,除非某些需递归调用或多重调用的公用程序,一般都不必是可再入的;只有一个处理机访问执行表,不存在系统管理控制表格的访问冲突和阻塞,简化了管理控制的实现。所有这些均使操作系统能最大限度地利用已有的单处理机多道程序分时操作系统的成果,只需要对它稍加扩充即可。因此,实现起来简单、经济、方便。是目前大多数多处理机操作系统所采用的方式。

2、缺点是:

对主处理机的可靠性要求很高,一且发生故障,很容易使整个系统瘫痪,这时必须由操作员干预才行,如果主处理机不是设计成专用的,操作员可用其他处理机作为新的主处理机来重新启动系统,整个系统显得不够灵活,同时要求主处理机必须能快速执行其管理功能,提前等待请求,以便及时为从处理机分配任务,否则将使从处理机因长时间空闲而显著降低系统的效率。即使主处理机是专门的控制处理机,如果负荷过重,也会影响整个系统的性能,特别是当大部分任务都很短时,由手频繁地要求主处理机完成大量的管理性操作,系统的效率将会显著降低。

3、适用场合是:

主从型操作系统适用于工作负荷固定,从处理机能力明显低于主处理机,或由功能相差很大的处理机组成的异构型多处理机。

知识点2:各自独立型操作系统

1、优点是:

很适应分布处理的模块化结构特点,减少对大型控制专用处理机的需求;某个处理机发生故障,不会引起整个系统的瘫痪,有较高的可靠性;每台处理机都有其专用控制表格,使访问系统表格的冲突较少,也不会有许多公用的执行表,同时控制进程和用户进程一起进行调度,能取得较高的系统效率。

2、缺点是:

实现复杂。尽管每台处理机都有自己的专业控制表格,但仍有一些共享表格,会增加共享表格的访问冲突,导致进程调度的复杂性和开销的加大,某台处理机一旦发生故障,要想恢复和重新执行未完成的工作比较困难。每台处理机都有自己专用的输入/输出设备和文件,使整个系统的输入/输出结构变换需要操作员干预。各处理机负荷的平衡比较困难,各台处理机需有局部存储器存放管理程序副本,降低了存储器的利用率。

3、适用场合是:

各自独立型操作系统适用于松耦合多处理机

知识点3:浮动型操作系统

浮动型操作系统是介于主从型和各自独立型操作系统之间的一种折中方式,其管理程序可以在处理器之间浮动。在一段较长的时间里指定某一台处理机为控制处理机,但是具体指定哪一台处理机以及担任多长时间控制处理都是不固定的。

1、优点是:

各类资源可以较好地做到负荷平衡。一些像I/0中断等非专门的操作可交由在某段时间最闲的处理机去执行。它在硬件结构和可靠性上具有分布控制的优点,而在操作系统的复杂性和经济性上则接近于主从型。如果操作系统设计得好,将不受处理机机数多少的影响,因而具有很高的灵活性。

2、缺点是:

浮动型操作系统的设计最为困难。

3、适用场合是:

该系统适用于紧耦合多处理机,特别是公共主存和I/O子系统的多个相同处理机组成的同构型多处理机。

第五节:多处理机的发展

知识点1:多处理机的发展

1、多处理机的发展形式

近十几年来,多处理机发展很快,有分布式共享存储器多处理机、对称多处理机、多向量多处理机,并行向量处理机、大规模并行处理机和机群系统等。

2、机群系统

机群系统是将多个高性能的工作站或高档微型计算机,使用高速的通信网络加以互连组成的系统。

机群系统中的主机和网络可以是同构的,也可以是异构的。主机间的通信主要采用消息传递。从结构和结点间的通信来看,是一种分布式存储方式;从用户来看,表示的是一个完整的并行系统。

3、机群系统比起传统的并行处理系统有如下明显的优点:

(1)系统有高的性能价格比。

(2)系统的开发周期短。

(3)系统的可扩展性好。

(4)系统的资源利用率高。

(5)用户投资风险小。

(6)用户编程方便。

  • 9
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值