第7章__多处理机
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
+ h a b g c d e
+
* a + + c * * +
+
* h b + g d e
+
* * f
f
利用分配律进一步降低树高,在恰当平衡各 子树的级数的情况下往往能收到较好的效果。 表达式运算并行性的识别,除了依靠算法 外,还可以依靠编译程序。 例如:给定算术表达式 Z=E+A*B*C/D+F,利用 普通的串行编译算法,产生三元指令组为: 1* A B 2* 1 C 3 / 2 D 4+ 3 E 5+ 4 F 6= 5 Z
7.2 多处理机的硬件结构
7.2.1 紧耦合和松耦合
多处理机有紧耦合和松耦合两种。 1、紧耦合多处理机 紧耦合多处理机是通过共享主存实现处理机间通 讯的,其通讯速率受限于主存频宽。各处理机与主存 经互连网络连接,处理机数受限于互连网络带宽及各 处理机访主存冲突的概率。 为减少访主存冲突,主存采用模m交叉存取。处 理机还可自带高速缓冲存储器Cache以减少访主存次 数。184页图7.1是紧耦合多处理机的两种构形。它们 的主要差别是处理机是否自带专用Cache。
7.3
程序并行性
多处理机的并行性既存在于指令内部,也 存在于指令外部,因此,必须利用算法、程序语 言、编译、操作系统及指令、硬件等多种途径来 开拓。 多处理机低层次的并行可通过向量化实现, 系统高层次的任务和作业的并行主要靠算法、编 译、语言和操作系统来开发。
7.3.1 并行算法
为了简化讨论,以算术表达式的并行运算为 例来说明并行算法的研究思路。 算法必须适应具体的计算机结构。串行处理 机上习惯采用的循环和迭代算法往往不适合于多 处理机,采用直接解法有时反倒能揭示更多的并 行性。 例如: E1=a+bx+cx2+dx3,利用霍纳法可得到: E1=a+x(b+x(c+x(d)))。这是在单处理机上执行 的典型算法。共需要3个乘加循环6级运算,但不 适合于在多处理机上运行,因为它无法利用上其 他的处理机。
+
+
+ a b * c d *
*
* x * x x *
a x
* + b x x c d x * + *
x x
既然可把运算过程表示成树形结构,那么, 提高运算的并行性就是如何对树进行变换,减少 运算的级数,即降低树高。树型结构可以用交换 律、结合律、分配律来交换。 方法:首先从算术表达式的最直接形式出发, 利用交换律把相同的运算集中在一起。然后利用 结合律把参加这些运算的操作数(称原子)配对, 尽可能并行运算。从而组成树高最小的子树。最 后再把这些子树结合起来。 例如:表达式E2=a+b(c+def+g)+h,共需7级运 算,利用交换律和结合律改写为 E2=(a+h)+b((c+g)+def),则只需5级运算。
二、 多处理机存在的主要技术问题
1、硬件上处理好处理机、I/O通道、存储模块的互连问 题。 2、软件上最大限度开发系统的并行性,以实现多处理 机各级的全面并行。 3、确定任务粒度问题,即如何选择任务和子任务的大 小。 4、进程同步问题。 5、任务分配,资源分配,防止死锁问题。 6、当系统中某个处理机发生故障后的恢复问题。 7、多处理机机数增多后,如何能给编程者提供良好的 编程环境问题。
• 优点:由于环形互连是点点连接,不是总线 式连接,其物理参数容易得到控制,非常适 合于有高通讯带宽的光纤通讯。有效带宽可 以得到最充分的利用。 • 缺点:信息在每个接口处都会有一个单位的 传输延迟,当互连的处理机机数增加时,环 中的信息传输延迟将增大。
3、交叉开关形式(空间分配) 单总线互连结构最简单,但争用总线最严重。 交叉开关形式则不同于单总线。它用纵横开关阵 列将横向的处理机P及I/O通道与纵向的存储器模 块M连接起来。如188页图7.7所示。 交叉开关形式是总线形式的极端,总线数 =(PE数+PEM数+I/O通道数)2,控制、仲裁、转换 机构均在开关中。 总线数等于全部相连的模块数(n+i+m),且 m>=i+n,n个处理机和i个I/O设备都能分到总线与 m个存储器模块之一连通并行地通讯。
(1)提高总线形式的系统效率的办法 一是用优质高频同轴电缆来提高总线的传输速率。 二是用多总线方式来减少访总线的冲突概率。 (2)多种总线仲裁算法 • 静态优先级算法为每个连到总线的部件分配一固 定的优先级。 • 固定时间片算法是把总线按固定大小时间片轮流 提供给部件使用。 • 动态优先级算法是总线上各部件优先级可根据情 况按一定规则动态改变。 • 先来先服务算法是按接收到访问总线请求的先后 顺序来响应。
3、并行任务派生:并行处理机由指令反映数据间能否并 行计算,并启动多个处理单元并行工作;多处理机系 统需专用语句来指明。一个任务在执行时可派生另外 的任务与之并行。 4、进程同步:并行处理机的处理单元在同一控制器控制 下执行同一条指令,工作显然同步。多处理机系统中 处理可能执行不同指令,工作进度不一致,必须用同 步机制来控制。 5、资源分配和调度:并行处理机主要执行向量、数组运 算,处理单元数目是固定的,并行处理机任务调度较 易,用屏蔽手段就可以改变实际参加并行工作的处理 单元数。多处理机系统需用的处理机数不固定,需解 决好资源分配和任务调度,负荷平衡问题。尽可能提 高系统硬件资源的利用率,防止系统死锁。
结点1 P NI M I/O I/O桥
结点1
…
P NI
M
I/O I/O桥
NI--网络 接口
结点i
P
NI
M
I/O
I/O桥
互连网络 紧耦合多处理机系统
松耦合系统结点结构
互连网络:实现结点(非PE与PSM)间互连。 控制—分布式控制(消息传递机制)。 结点结构:是完整的处理机系统; 当结点为多处理机系统时,构成了层次系统。
5、开关枢纽结构形式 参照多端口存储器的思想,把互连结构的开 关设置在各处理机或接口内部,组成分布式结构, 则称为开关枢纽结构形式。 每一台处理机通过它的开关枢纽与其他多台 处理机连接组成各种有分布结构的多处理机。开 关枢纽的选择,应使组成的多处理机有较佳的拓 扑结构和良好的互连特性,特别是要适应处理机 机数很多的情况。 理想的拓扑结构应该是:所用开关枢纽数量 少,每个开关枢纽的端口数不多,能以较短的路 径把数量很多的处理机连接起来,实现快速而灵 活的通讯;不改变模块本身的结构,就可使系统 规模得到任意扩充。
为了减少各处理机同时访问同一存储器模块的 冲突,存储器模块数m应等于或略大于处理机数 p。 每台处理机自带局部存储器,不仅可以减少 访主存信息量,降低访主存冲突概率,也可以减 少处理机---存储器互连网络的冲突。如果再自带 专用Cache就可以进一步减少这类冲突。 处理机间通过中断信号互连网络,由一台处 理机向另一台处理机发生中断信号来实现处理机 间的进程同步。 多数多处理机采用非对称互连。 紧耦合多处理机常用于并行执行作业中的多 个任务,以提高系统的速度性能。因此各处理机 一般是同构形的。
2、环形互连形式 构造一种逻辑总线,让各台处理机之间点点 相连成环状,称环形互连。在这种多处理机上, 消息的传递过程是由发送进程将信息送到环上, 经环形网络不断向下一台处理机传递,直到此 信息又回到发送者为止。 发送信息的处理机拥有一个唯一的令牌, 它是普通传送的信息中不会出现的特定标记。 同时只能有一台处理机可持有这个令牌。发送 者在发送信息时,环上其他处理机都处于接收 信息的状态。
多处理机具有两台以上的处理机,在操作系 统控制下通过共享的主存或输入输出子系统或高 速通讯网络进行通讯。多处理机属MIMD系统。 一、多处理机与并行处理机的差别
1、结构灵活性:并行处理机结构主要针对向量、数组 处理设计,专用性强,互连形式简单;多处理机系统实 现多作业、多任务并行,结构灵活,互连形式复杂, MIMD机结构上具有更大灵活性和更强的通用性 。 2、程序并行性:并行处理机是操作级并行,并行性存 在于指令内部,识别比较容易;多处理机系统是作业级 并行。存在于指令外部,较难识别。
同构/异构--PE类型相同/不同; 对称/非对称—每个PE与部分/全部的I/O通道连接。 常见结构:同构对称式和异构非对称式多机系统。
互连网络:实现PE←→PEM、PE←→I/O通道、 PE←→中断信号间的连接。 互连网络控制—分布式控制(消息传递机制)。 思考1:为什么每个PE可自带小容量局部存储器? 思考2:为什么每个PE可自带一个Cache? 系统规模:PE数量不能很多。为什么?
Pi A=B+D Pj C=A*E 相当于流水中发生的“先写后读”相关。顺序串行运行的 正确结果应当是: P i A 新= B原+ D原 Pj C新= A新* E原=(B原+ D原)* E原 (2)数据反相关 如果Pj的左部变量在Pi的右部变量集内,且当Pi未取 用其变量的值之前,是不允许被Pj所改变的,就称 Pi“数据反相关”于Pj。例如: Pi C=A+E Pj A=B+D 相当于流水线中发生的“先读后写”相关。顺序串行运行 的正确结果应是:
通信与同步:通过共享存储器地址进行通信; 通过共享地址或PPIN进行同步。
1、松耦合多处理机 松耦合多处理机中,每台处理机都有一个容 量较大的局部存储器,用于存储经常用的指令和 数据,以减少紧耦合系统中存在的访主存冲突。 不同处理机间或者通过通道互连实现通讯, 以共享某些外部设备;或者通过消息传送系统 MTS来交换信息,各台处理机可带有自己的外部 设备。 消息传送系统常采用分时总线或环形、星形、 树形等拓扑结构。松耦合多处理机较适合做粗粒 度的并行计算。
• 改进:用一系列较小开关串联或并联,形成多级 交叉开关,减少其复杂性。 • 交叉开关方式不适宜连接过多的处理机。
• 由于多处理机的通信模式不规则,因此,能实现 N!种排列的全排列网络同样适用于多处理机的机 间互连。 4、多端口存储器形式 将控制、仲裁、转换机构移到存储器中。 每个存储器端口与一个PE或I/O通道相连。 多端口存储器形式不适宜连接过多的处理机。
指令之间都是相关的,需5级运算。如用并 行编译算法,则可得到能并行执行的三元指令组 为: 1* A B 2/ C D 3* 1 2 4+ E F 5+ 3 4 6= 5 Z 可见,有了好的并行编译算法,算术表达式 的预先变形也可以是不必要的。
7.3.2 程序并行性的分析
任务间能否并行,除了算法外,很大程度还取决于程 序的结构。程序中各类数据相关,是限制程序并行的重 要因素。数据相关既可存在于指令之间,也可存在于程 序段之间。 假定一个程序包含P1、P2、… Pi、… Pj、… Pn等n 个程序段,其书写的顺序反映了该程序正常执行的顺序。 为了便于分析,设Pi和Pj程序段都是一条语句, Pi在Pj 之前执行,且只讨论Pi和Pj之间数据的直接相关关系。 (1)数据相关 如果Pi的左部变量在Pj的右部变量集内,且Pj必须 取出Pi运算的结果来作为操作数,就称Pj“数据相关” 于Pi。例如:
第7章
7.1 7.2 7.3 7.4 7.5
多处理机
多处理机的特点及主要技术问题 多处理机的硬件结构 程序并行性 多处理机的性能 多处理机的操作系统
•本章重点:
多处理机结构特点,程序并行性,并行 任务的派生与汇合。
•本章难点:
并行算法的研究思路,程序中并行任务的 派生与汇合。
7.1 多处理机的特点及主要技术问题
7.2.2
机间互连形式
多处理机机间互连的形式是决定多处理机性 能的一个重要因素。在满足高通讯速率、低成本 的条件下,互连还应灵活多样,以实现各种复杂 的乃至不规则的互连而不发生冲突。 1、总线形式(时间分配) 多个处理机、存储器模块和外围设备通过 接口与公用总线相连,采用分时或多路转接技术 传送。 单总线方式结构简单、成本低,系统增减ห้องสมุดไป่ตู้ 块方便,但对总线的失效敏感,处理机机数增加 会增大总线冲突概率,使系统效率急剧下降。
• 用3台处理机只需4级运算就够了。将这两式的运算过程 表示为树形流程图分别为下图所示。 • 运算的级数就是树的高度,用Tp代表。P为所需处理机 的数目,称顺序运算的级数T1与P台处理机运算的级数 Tp的比为加速比,用Sp代表。而Sp/P=Ep称为效率。可见, Sp>=1时,会使Ep<=1,即运算的加速总是伴随着效率的 下降。 +