0
点赞
收藏
分享

微信扫一扫

自考-计算机系统设计-7-多处理机

本章重点:多处理机的特点,程序并行性,并行任务的派生与汇合。

本章难点:并行算法的研究,程序中并行任务的派生和汇合。

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

一、多处理机的基本概念和要解决的技术问题

1.多处理机的基本概念

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

2.多处理机的目标

对多个作业、多个任务并行执行来提高解题速度,从而提高整体性能。

使用冗余的多个处理机通过重新组织来提高系统的可靠性、适应性和可用性。

3.多处理机的特点

结构灵活性;

进程并行性;

并行任务派生;

进程同步;

资源分配和任务调度;

4.需要解决的主要问题

  1. - 硬件结构上如何处理好处理机、存贮器模块及I/O子系统之间的互连;
  2. - 如何最大限度地开发系统的并行性,以实现多处理机各级的全面并行;
  3. - 如何选择分割任务和子任务的大小,即任务的粒度大小,使并行度最高,而辅助开销小;
  4. - 如何协调好多处理机中各并行执行的任务和进程间的同步问题;
  5. - 如何将各个任务分配到一个或多个处理机上,解决好处理机调度、任务调度和资源分配问题,防止死锁;
  6. - 一旦一个处理机发生故障,如何对系统进行重新组织而不使其瘫痪。

Hadoop-软件解决所有问题(问题是常态,可以低成本但多个机器进行)

技术问题:多处理机结构、机间互连、并行算法、并行语言、编译支持、操作系统支持。

二、多处理机的硬件结构

1、紧耦合和松耦合

(1)紧耦合多处理机

紧耦合多处理机是通过共享主存来实现处理机间通信的,其通信速率受限于主存的频宽。但是,由于各处理机与主存经互连网络连接,系统中处理机数就受限于互连网络带宽及多台处理机同时访问主存发生冲突的概率

7-1紧耦合多处理机的结构

(2)松耦合多处理机

松耦合多处理机中,每台处理机都有一个容量较大的局部存储器,用于存储经常用的指令和数据,以减少紧耦合系统中存在的访主存冲突。不同处理机间或者通过通道互连实现通信,以共享某些外围设备;或者通过消息传送系统来交换信息。

7-2通过消息传送系统连接的松耦合多处理机结构

3、机间互连形式

  • (1)总线形式
  • (2)环行互连
  • (3)交叉开关形式
  • (4)多端口存储器形式
  • (5)蠕虫穿洞寻径网络
  • (6)开关枢纽结构形式

4、存储器的构成

(1)低址交叉

7-3m个模块的低位交叉编址

(2)高址交叉

7-4m个模块的高位交叉编址

第二节紧耦合多处理机多Cache的一致性

一、多Cache的一致性问题的产生

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

二、多Cache的一致性问题的解决方法:

为解决多个Cache之间的不一致性。主要有三类做法。一类是解决进程迁移引起的多Cache不一致性二类是以硬件为基础的做法;另一类是以软件为基础的做法。

  • 限制功能:禁止进程迁移、写通过;
  • 硬件方法:监听流:写更新、写作废:当一个处理器对某数据项进行写入时,通过广播使其他副本进行更新。;目录法:全映像目录表法、有限目录表法(需要广播);
  • 软件方法

(1)以硬件为基础实现Cache一致性的办法有多个。最普遍采用的办法叫监视Cache协议(SnoopyProtocal)法,各个处理机中的Cache控制器随时都在监视着其他Cache的行动。对于采用总线互连共享主存的多处理机,可利用总线的播送来实现。

(2)以软件为基础解决Cache一致性的作法,主要优点是可以减少硬件的复杂性,降低对互连网络通信量的要求,因而性能价格比可以较高,比较适用于处理机数多的多处理机。

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

一、并行算法

1、并行算法的定义和分类

     并行算法是指可同时执行的多个进程的集合,各进程可相互作用、协调和并发操作。

2、并行算法的分类

     (1)按运算对象:数值型和非数值型;

     (2)按并行进程的操作顺序:同步、异步和独立型;

     (3)按处理计算机任务大小:细粒度、中粒度和粗粒度;

  • 3、多处理机并行算法的研究思路

  • (1)研究并行算法的一种思路是将大的程序分解成由足够多的并行处理的过程。
  • (2)每个过程被看成是一个结点,将过程之间的关联关系用结点组成的树来描述。这样,程序内各过程的关系就可以被当成是一种算术表达式中各项之间的运算,表达式中的每一项都可看成是一个程序段的运行结果。
  • (3)研究程序段之间的并行问题就可设想成是对算术表达式如何并行运算的问难。

例如,E1=a+bx+cx2+dx3利用霍纳(Horner)法可得到E1=a+x(b+x(c+x(d)))

7-5不同算法影响树高的例子

首先从算术表达式的最直接形式出发,利用交换律把相同的运算集中在一起。再利用结合律把参加这些运算的操作数(称原子)配对,尽可能并行运算,从而组成树高最小的子树。最后,再把这些子树结合起来。

例如,给定表达式E2=a+b(c+def+g)+h需7级运算。利用交换律和结合律改写为

E2=(a+h)+b((c+g)+def)

7-6利用交换律和结合律降低树高

利用分配律进一步降低树高,在恰当平衡各子树的级数的情况下,往往能收到较好的效果。例如上式,计算(c+g)的子树时只用一级,而计算def的子树要用2级,相加乘b需再增加2级。如果把b写进括号内,则计算bdef仍用2级已够,却省去了后来的一次乘b,使总级数由5减为4。因此,将上式改写成

E2=(a+h)+(bc+bg)+bdef

7-7利用交换律、结合律和分配律降低树高

二、程序并行性的分析

(1)数据相关:如果Pi的左部变量在Pj的右部变量集内,且Pj必须取出Pi运算的结果来作为操作数,就称Pj“数据相关”于Pi

     PiA=B+D

     PjC=A*E

(2)数据反相关

如果Pj的左部变量在Pi的右部变量集内,且当Pi未取用其变量的值之前,是不允许被Pj所改变的,就称Pi“数据反相关”于Pj。例如:

PiC=A+E

     PjA=B+D

(3)数据输出相关

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

PiA=B+D

PjA=C+E

  • 并行语言与并行编译

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

多处理机操作系统的类型:主从型、各自独立型及浮动型

多处理机操作系统的难度

  • 处理机的分配和进程调度;
  • 进程间的同步;
  • 进程间的通信;
  • 存储系统的管理;
  • 文件系统的管理;
  • 某处理机或设备故障时系统的重组;

一、主从型操作系统

     主从型管理程序只在一个指定的处理机(主处理机)上运行。该主处理机可以是专门的执行管理功能的控制处理机,也可以是与其他从处理机相同的通用机,除执行管理功能外,也能作其他方面的应用。由于主处理机是负责管理系统中所有其他处理机(从处理机)的状态及其工作的分配,只把从处理机看成是一个可调度的资源,实现对整个系统的集中控制。

二、各自独立型操作系统

     与主从型不同,各自独立型将控制功能分散给多台处理机,共同完成对整个系统的控制工作。每台处理机都有一个独立的管理程序(操作系统的内核)在运行,即每台处理机都有一个内核的副本,按自身的需要及分配给它的程序需要来执行各种管理功能。由于多台处理机执行管理程序,要求管理程序必须是可再入的,或对每台处理机提供专用的管理程序副本。

三、浮动型型操作系统

     浮动型操作系统是界于主从型和各自独立型之间的一种折衷方式,其管理程序可以在处理机之间浮动。在一段较长的时间里指定某一台处理机为控制处理机,但是具体指定哪一台处理机以及担任多长时间控制都是不固定的。主控制程序可以从一台处理机转移到另一台处理机,其他处理机中可以同时有多台处理机执行同一个管理服务子程序。

第五节多处理机的发展

一、多处理机的发展

多处理机发展的方向:

  • (1)分布式共享存储器处理机;
  • (2)对称多处理机;
  • (3)多向量多处理机;
  • (4)并行向量处理机;
  • (5)大规模并行处理机;
  • (6)机群系统;

举报

相关推荐

0 条评论