730 likes | 853 Views
第七章 多处理机系统. 7.1 多处理机系统结构 7.2 多处理机的互连网络 7.3 多处理机的系统控制 7.4 并行处理语言及算法 7.5 多处理机的性能 7.6 多处理机的系统实例. 第一节 多处理机的系统结构.
E N D
第七章 多处理机系统 • 7.1 多处理机系统结构 • 7.2 多处理机的互连网络 • 7.3 多处理机的系统控制 • 7.4 并行处理语言及算法 • 7.5 多处理机的性能 • 7.6 多处理机的系统实例
第一节 多处理机的系统结构 • 多处理机系统由多台独立的处理机组成,每台处理机都能够独立执行自己的程序和指令流,相互之间通过专门的网络连接,实现数据的交换和通信,共同完成某项大的计算或处理任务。系统中的各台处理机由统一的操作系统进行管理,实现指令级以上并行,这种并行性一般是建立在程序段的基础上,也就是说,多处理机的并行是作业或任务级的并行。从硬件结构、存储器组织方式等区分,多处理机系统有多种分类方法,接下来将逐一介绍
一、硬件结构 • 1、紧密耦合多处理机系统 • 系统中各处理机相互之间的联系是比较紧密的,通过系统中的共享主存储器实现彼此间的数据传送和通信。
优点: • 通过共享存储器,处理机间的通信和数据传输速度快、效率高 • 缺点: • 存在访问冲突,总线带宽限制导致处理及数量不能太多。 • 为每个处理机配置较大的独立cache可以缓解访问冲突问题,但同时cache同步也是较大问题
2、松散耦合多处理机系统 • 这种系统多由一些功能较强,相对独立的模块组成。每个模块至少包括一个功能较强的处理机,一个局部存储器和一个I/O设备,模块间以消息的方式通信。系统中每台处理机都有处理单元,各自的存储器和I/O设备子系统。
二、存储器组织 • 1、 集中式共享存储器系统 • 处理机数目较少的多处理机,各个处理机可以共享单个集中式存储器。在使用大容量Cache的情况下,单一存储器(可能是多组)能够确保小数目处理机的存储访问得到及时响应
对所有的处理器而言是对等的,既每个处理机访问存储器的时间相同,也称为对称式共享存储器多处理机系统(SMPs),这种系统结构也称为均匀存储器访问(UMA)。 对所有的处理器而言是对等的,既每个处理机访问存储器的时间相同,也称为对称式共享存储器多处理机系统(SMPs),这种系统结构也称为均匀存储器访问(UMA)。 • 大容量、多层次的Cache能够大量减少单个处理机对存储器带宽的要求,减少访问时延,减少多个处理机同时读取共享数据时的竞争现象
为了支持更多的处理机,存储器不能按照集中共享方式组织,而必须分布于各个处理机。否则由于访问冲突以及总线带宽的限制,当处理机数量很大时,访问延迟就会很大。 为了支持更多的处理机,存储器不能按照集中共享方式组织,而必须分布于各个处理机。否则由于访问冲突以及总线带宽的限制,当处理机数量很大时,访问延迟就会很大。 • 分布式存储器多处理机由多个独立结构组成,每个节点包括处理机(可以多个)、存储器、输入输出系统和互联网络的接口,各个节点通过互联网络连接在一起
存储器优缺点 • 大部分访问是在节点内的本地存储器中进行的,这种做是增大存储器带宽比较经济的方法 • 缩短了本地存储器访问的时延 • 处理节点之间的数据通信在某种程度上变得更加复杂,且时延也更大
节点之间通信方式 • 共享的地址空间 • 把物理上分开的存储器作为逻辑上共享的地址空间进行统一寻址。 • 消息传递 • 地址空间由多个私有的地址空间组成,这些私有地址空间在逻辑上是分散的,并且不能被远程处理器寻址。节点之间通过发送消息进行数据交换
三、多处理机系统的操作系统 • 多处理机操作系统按照结构来划分,目前有三种类型:主从式(Master-slave)、独立监督式(Separate Supervisor)、浮动监督式(Floating Supervisor)。
1、主从式(Master-slave) • 由一台主处理机进行系统的集中控制,负责记录、控制其它从处理机的状态,并分配任务给从处理机。 • 优点:硬件和软件结构相对简单 • 缺点:对主处理机可靠性要求很高,当不可恢复错误发生时,系统容易崩溃,此时必须重新启动主处理机。系统灵活性差,在控制使用系统资源方面效率也不高。
2、独立监督式(Separate supervisor) • 操作系统将控制功能分散给多台处理机,共同完成对整个系统的控制工作。每个处理机均有各自的管理程序(操作系统的内核)。 • 优点: • 每个处理机都有其专用的管理程序,故访问公用表格的冲突较少,阻塞情况自然也就较少,系统的效率较高 • 每个处理相对独立,因此一台处理机出现故障不会引起整个系统崩溃
缺点: • 减少了对控制专用处理机的需求,但是实现更复杂 • 每个管理程序都有一套自用表格,但仍有一些共享表格,从而发生表格访问冲突问题,导致进程调度复杂性和开销的加大 • 修复故障造成的损害或重新执行故障机未完成的工作非常困难 • 各处理机负荷的平衡比较困难。
3、浮动监督式(Floating supervisor) • 作系统中每次只有一台处理机作为执行全面管理功能的“主处理机”,“主处理机”可以根据需要浮动,即从一台切换到另一台处理机。这样,即使执行管理功能的主处理机故障,系统也能照样运行下去; • 优点: • 系统可靠性更强,没有单主处理崩溃瓶颈 • 更好的平衡处理机负载 • 缺点:主要表现在系统实现复杂性。
4、与单处理机操作系统比较 • 多进程资源共享访问需要新的进程同步算法 • 多处理机任务调度,需要考虑各处理机负载平衡性,发挥各节点的最大性能 • 存储器访问方面访问冲突仲裁,以及各局部缓存与全局存储之间的同步 • 系统可靠性,使系统具有重构能力
四、多核处理器 • 单个芯片上的多个处理器所构成的处理器系统,即多核处理器。 • 多核处理器的思想是将大规模并行处理器的处理器集成到同一个芯片内,由各个处理器并行执行不同的进程。 • IBM,Intel,AMD等芯片公司均推出可给予多核的微处理芯片系统
第二节 多处理机的互连网络 • 多处理机系统中,包含多个处理机以及完成处理机间通信、协调所需的多个功能部件,势必涉及到处理机间、处理机和功能部件间的相互连接问题。互连网络是多处理机系统的重要组成部分,它对系统的性能指标有决定性的影响。
一、互连网络的基本概念 • 互连网络是指由开关元件按照一定的拓扑结构和控制方式构成的网络,用以实现多处理机系统内部多个处理机或多个功能部件之间的相互连接。 • 互连网络具有三大要素,即结点间互连拓扑(包含连接通路)、开关元件和控制方式。 • 互连函数表示法 • 如果将互连网络看作一个黑盒子,盒子的输出端口与输入端口间就存在一定的位置变换关系,这就是互连函数。 • 函数表示法 • 输入为x = xn-1 xn-2… x1 x0为端口编号的二进制值表示。互连函数为f (xn-1 xn-2… x1 x0)
表格表示法 • 通过输入输出对应表示,用表格的形式列出对应端口间的对应关系表。其表示形式为: • 在符号框内,上一个元素与下一个元素分别对应输入与输出的连接关系。
图形表示法 • 用连线表示映射关系,通过图形将对应的端口连接起来表示。如下图7-8所示,就将各输入端与输出端端口连接情况直观的表示出来。
二、互连网络的特性 • 网络规模:也就是网络中所连接的结点的个数。该特性可以用于衡量网络可扩展性的一个方面 • 结点度:与结点相连接的边的数目称为结点度。结点度分入度和出度。入度指进入结点的边数。出度指从结点中出来的边数。 • 距离:任意两个结点间相连的最少边数。距离与两结点间最快的信息传输速度是成正比的。
网络直径:网络中任意两个结点间距离的最大值。也即是最长距离,它和网络结构中最慢的传输速度成正比,可以在一定程度上衡量网络结构的速度指标。网络直径:网络中任意两个结点间距离的最大值。也即是最长距离,它和网络结构中最慢的传输速度成正比,可以在一定程度上衡量网络结构的速度指标。 • 等分宽度:在将某一网络切成相等两半的各种切法中,沿切口的最小通道边数。 • 对称性:从网络中的任何一个结点看,拓扑结构都是一样的。具有对称性的网络称为对称网络。
三、互连网络的类型 • 以互连特性为特征,可以把互连网络分为静态互连网络和动态互连网络两类 • 1. 静态互连网络。 • (1)使用节点和边来表示静态互连网络五要满足 • 网络每个结点的相连边数,就是结点度要小,且在各结点处最好都相等,同时与网络的大小无关; • 在任意两个结点间沿着最短路径通信所经过边数的最大值要小,也就是网络直径要小,且随结点数目增多而缓慢增大; • 对称性要好,以达到信息流量分布均匀; • 各结点编址合理,从而实现高效路径算法; • 有较高的路径冗余度,以满足坚固性要求; • 增量扩展性要好,即每次只扩展一个或少数几个结点,仍能保持原有互连拓扑特性
(2)静态互连网络形式:一维的有线性阵列结构;二维的有环形、星形、树形、网格形等;三维的有立方体等;三维以上的有超立方体等。(2)静态互连网络形式:一维的有线性阵列结构;二维的有环形、星形、树形、网格形等;三维的有立方体等;三维以上的有超立方体等。 • 线性网:一种一维的线性网络,其中N个结点用N-1个链路连成一行。如(a)所示,在这种结构中,内部结点度为2,端结点度为1,网络直径为N-1。 • 环形网:用一条附加链路将线性阵列的两个端点连接起来而构成。可以单向工作,也可以双向工作。如图(b)所示。在这种结构中,结点度为2,单向环的网络直径为N,双向环的直径为N/2。
树形网:一般说来,一棵k层完全平衡的二叉树有N=2k-1个结点。最大结点度是3,直径是2(k-1)。结构如图(c)所示。特例之一是星型,一种结点度为N-1,直径为常数2的2层树。结构如图7-9(d)所示。另一种是二叉胖树(e),其特点是结点度从叶子结点往跟结点逐渐增加,从而缓解一般二叉树根结点通信速度高的矛盾。树形网:一般说来,一棵k层完全平衡的二叉树有N=2k-1个结点。最大结点度是3,直径是2(k-1)。结构如图(c)所示。特例之一是星型,一种结点度为N-1,直径为常数2的2层树。结构如图7-9(d)所示。另一种是二叉胖树(e),其特点是结点度从叶子结点往跟结点逐渐增加,从而缓解一般二叉树根结点通信速度高的矛盾。 • 网格形网:是一种比较流行的网络结构,有各种变体形式。一般网格网,N=nk 个结点的k维网络的内部结点度为2k ,网络直径为k(n-1)。边结点和角结点的结点度分别为3或2。如图(f)所示。 • 立方体网:n维立方体由N=2n个结点, 分布在n维上, 每维有两个结点,每个结点的度为n,网络直径为n。如8个结点的23立方体,其结点的度为3,直径为3,如图(g)所示。超立方体网采用交换函数,结点度为n,直径也为n。
2. 动态互连网络 • 静态互连网络一旦设计成功,就不能改变。为了达到多用或者通用的目的,就要采用动态互连网络 • (1)基于总线的互连网络
两个或更多的CPU以及一个或者更多的内存模块都使用同一条总线通信。当某个CPU想读取内存时,它首先检查总线是否被使用。如果总线是空闲的,CPU就把字地址放在总线上,当然还需要一些控制信号,然后等待内存把它需要的内存字放在总线上两个或更多的CPU以及一个或者更多的内存模块都使用同一条总线通信。当某个CPU想读取内存时,它首先检查总线是否被使用。如果总线是空闲的,CPU就把字地址放在总线上,当然还需要一些控制信号,然后等待内存把它需要的内存字放在总线上 • 单总线形式:形式简单,成本低,系统上增减模块方便,但其吞吐率是固定有限的,且对总线的失效敏感。而且,随着处理机个数增加,访问总线冲突的概率会随之增大,从而导致系统效率急剧下降
多总线形式:将多条总线连接到多个处理机是对单总线的自然扩展。多总线多处理机系统具有高可靠性和易扩展性。单条总线发生故障时,在处理机和模块间仍有无故障的通路,然而,当总线总数少于存储器模块数时,总线的竞争将会增加。这时需要由系统总线总裁器进行裁决,以确定哪个请求源可以使用系统总线。多总线形式:将多条总线连接到多个处理机是对单总线的自然扩展。多总线多处理机系统具有高可靠性和易扩展性。单条总线发生故障时,在处理机和模块间仍有无故障的通路,然而,当总线总数少于存储器模块数时,总线的竞争将会增加。这时需要由系统总线总裁器进行裁决,以确定哪个请求源可以使用系统总线。
(2)基于交叉开关的互连网络 • 将主存分为多个模块并在CPU和主存模块间提供更多的通路,这样不但可以增加带宽,也可并行处理多个请求。连接n个CPU和i个内存模块的最简单的电路就是交叉开关
每条水平线(输入线)和垂直线(输出线)的交点都是一个交叉点。每个节点可以处于打开和关闭状态。每条水平线(输入线)和垂直线(输出线)的交点都是一个交叉点。每个节点可以处于打开和关闭状态。 • 交叉开关网络是一种无阻塞的网络,CPU不会因为某些交叉点或者线路被占用无法与内存模块建立连接(假设内存模块是可用的)。而且,建立连接时不需要事先规划。即使已经建立了多个任意的连接,仍然有可能在剩下的CPU和剩下的内存之间建立连接 • 交叉网络的缺点是节点需要n2个,当节点数量比较大(n>1000)时候不可能实现的。
3. 多级互连网络 • 为了实现任意处理机间的互连,引入了多级互连网络的概念。所谓多级互连网络,就是指由多级开关按照一定的方式进行互连,组合而成的一个复杂的网络系统
决定多级互连网络特性的主要因素有三个方面:交换开关、拓扑结构和控制方式。决定多级互连网络特性的主要因素有三个方面:交换开关、拓扑结构和控制方式。 • 交换开关是组成互连网络的基本单元。通常一个a×b交换开关代表有a个输入和b个输出。每个输入可与一个或多个输出相连。最常用的是二元开关,具有直通和交换功能。四元开关则在此基础上,增加了上播和下播功能。 • 拓扑结构指前一级交换开关的输出端与后一级交换开关的输入端之间的连接模式。通常,可以采用互连函数实现拓扑结构。
控制方式是对各个交换开关进行控制,通常分如下三种控制方式:级控制,即同一级交换开关通过同一个控制信号控制;单元控制,即对每个交换开关进行单独控制;部分级控制,对不同的级采用不同数量的控制信号。例如,第i级使用i+1个控制信号控制(0≤i≤n—1)。显然,部分级控制是前两种方式的折中。控制方式是对各个交换开关进行控制,通常分如下三种控制方式:级控制,即同一级交换开关通过同一个控制信号控制;单元控制,即对每个交换开关进行单独控制;部分级控制,对不同的级采用不同数量的控制信号。例如,第i级使用i+1个控制信号控制(0≤i≤n—1)。显然,部分级控制是前两种方式的折中。 • 同一个多级网络分别采用不用的控制方式,可以构成三种不同的互连网络
多级互连网络实例 • 多级立方体网络通常是由三种互连函数的3个 • 单级立方体网串接起来形成的,它的开关全部采 • 用二功能开关。对一个N×N的n级立方体网络, • 其级数n=㏒2N,每级有N/2个开关,全部开关 • 数为nN/2。采用交换函数构成拓扑结构,各级分 • 别采用E0、E1、…En交换函数。当所有开关都 • 直通时,实现恒等变换。 • 采用三种不同的控制方式,可以构成三种不同 • 的互连网络:采用级控制可以构成STARAN交换 • 网;采用部分级控制,可以构成STARAN移数 • 网;采用单元控制可以构成间接二进制n方体网。
以N=8为例,n=㏒2N=3,即分三级,开关总数为3×8/2=12个,如图7-14所示。当采用级控方式时,具有交换功能。例如当0—2三级级控信号为101时,即第0级和第2级中所有开关状态处于交换状态,第1级中开关处于直通状态,输入和输出的对应关系为0-5,1-4,2-7,3-6,4-1,5-0,6-3,7-2。对于其它几种级控信号,也将会形成不同的输入和输出的交换连接。当采用部分级控时,网络实现移位功能。比如第0级用级控信号“0”,第1级中的开关均使用部分级控信号“1”,第2级中的开关I、J信号用信号“1”,开关K、L用信号“0”,则实现移2(mod 8)的功能。当采用单元控制时,对各个开关进行单独控制,可以实现包括交换置换、移数置换在内的常用函数置换。
第三节 多处理机系统的系统控制 • 多处理机系统中,每台处理机都能够独立执行自己的程序和指令流,但是,一个进程应该分配到哪个处理机上运行是由什么决定的呢,运行不同进程的处理机间又是怎样进行通信的呢?
1. 多处理机系统的调度 • 调度算法的一般目标是:使用最少的处理机、在最短的时间内完成并行程序的执行任务 • 下图是3个处理机P1、P2、P3上执行5个任务T1~T5的任务时空图,各个任务执行时间分别为7、6.5、2、2、2。结合该图来说明关于任务调度的参数
(1)调度参数 • 任务流时间 • 完成任务所需要的时间定义为任务流时间,例如完成任务T1共需要 5+2 = 7 时间单位 • 调度流时间 • 一个调度流时间是调度中所有任务流的时间。图中的调度流时间 = T1流+T2流+T3流+T4流+T5流时间 = 7+6.5+2+2+2 = 19.5 (时间单位)。
平均流 • 平均流等于调度流时间除以任务数。最小平均流时间表示任务占用处理机与存储器等资源的时间很短,不但使任务的机时费用降低,还使系统有更充裕的时间处理其他任务。这样,最少平均流时间就是系统吞吐率的一个间接度量参数。 • 处理机的利用率 • 处理机的利用率等于该处理机上任务流之和除以最大有效时间单位(本例为7.0)。P1、P2、P3的利用率分别为0.93、1.00和0.86,空闲的时间分别为0.5、0.0和1.0,忙的时间分别为6.5、7.0、6.0且均为各处理机上的任务流之和。处理机平均利用率 = 0.93+1.00+0.86)/3 = 0.93。
(2)调度算法模型 • 调度模型一般分为静态的确定性模型和动态的随机型模型 • 静态确定型模型 • 要求在求解问题前就已知每个任务执行所需的时间以及系统中各任务间的关系。这种调度算法的设计比较简单,但如果事先不能准确估计每个任务的执行时间及任务间的关系,该调度算法的效率就不高
动态随机型模型 • 在运行过程中对资源进行动态分配,一般用随机分配方式或巡回方式,将当前任务分配给空闲的处理机执行 • (3)常见调度策略 • 轮转法 • 多级轮转法 • 组调法 • 随机函数法
2. 多处理机的进程通信 • 多处理机进程间通信一般是通过共享内存的方式进行通信。其中最关键的就是不同处理机之间cache的不一致问题。由此引入cache一致性协议 • (1)监听协议 • 每个含有物理存储器中数据块副本的Cache还要保留该数据块共享状态的副本,但是不集中地保存状态。Cache通常可以通过广播媒介(总线或交换机访问),所有的Cache控制器对总线进行监听,来确定它们是否含有总线或交换机上请求的数据块的副本。任何可以向所有处理器广播Cache缺失的通信媒介都可以用来实现基于监听的一致性。
写无效协议 • 在执行写操作时使其它cache副本无效,处理器写数据项之前保证该处理机能独占地访问数据项
写更新协议 • 在写入数据项时更新该数据项的所有副本。因为写更新协议必须将所有的写操作广播给共享Cache,从而需要更大的带宽。因此,目前极大多数的对称式共享存储器多处理机都选择执行写无效协议。
(2)目录协议 • 把共享物理存储器的共享状态存放在一个地方,称为目录。目录协议保存每个Cache数据块的状态。目录中的信息包括哪个Cache拥有该块的副本,是否处于无效状态等 • 全映象目录 • 目录项中有N个处理机位和一个重写位。处理机位表示相应处理机对应的Cache块的状态。重写位为“1”,且只有一个处理机位为“1”,则该处理机可以对该块进行写操作
有限目录: • 每个目录项的指针数固定。表中每项的标志位少于N个。因此,限制了一个数据块在各Cache中能存放的副本数目。全映象目录表和有限目录表都是集中地存入在共享的主存之中,因此需要由主存向各处理机广播。 • 链式目录 • 把目录分散存放在各个Cache中,主存只存有一个指针,指向一台处理机。 通过维护个目录指针链要查找所有放有同一个信息块的Cache时,先找到一台处理机的Cache,然后顺链逐台查找, 直到找到目录表中的指针为空时为止。它不限制共享数据块的拷贝数目,又保持了可扩展性。指针的长度以处理机数目的对数关系增长,Cache的每个数据块的指针数目与处理机数目无关。
第四节 并行处理语言及算法 • 在多处理机系统中,并行性存在于不同的层次上,充分开发其并行性有较大难度,为此,必须从系统结构、操作系统、算法、语言、编译各方面来统筹协调地开发。也就是说,在多处理机设计成功之后,还必须进行并行开发。本节将简要介绍多处理机系统设计在并行性处理中遇到的挑战以及所采用的并行性处理技术。
1. 并行处理遇到的挑战 • 程序可获得的并行度有限以及相对较高的通信开销,成为并行处理应用的障碍。这可以用Amdahl定律解释,我们通过下面的例题来看。 • Amdahl定律是