《计算机系统结构(第二版)尹朝庆主编第6章多处理机》由会员分享,可在线阅读,更多相关《计算机系统结构(第二版)尹朝庆主编第6章多处理机(105页珍藏版)》请在金锄头文库上搜索。
1、第第6章章 多处理机多处理机6.1 多处理机的结构与特点多处理机的结构与特点6.2 多处理机的多处理机的Cache一致性一致性6.3 多处理机的软件多处理机的软件6.4 多处理机的性能多处理机的性能6.5 MIMD并行机结构模型并行机结构模型1第第6 6章章 多处理机多处理机多处理机具有两台以上处理机,每台处理机可以带有本地Cache、本地存储器、甚至I/O设备,它们都能独立执行各自的程序。多台处理机之间通过总线、纵横交叉开关、多级互连网络或高速的商品化网络实现互连。多处理机可以通过共享存储器,也可以通过消息传送系统来实现处理机间的通信。多台处理机在操作系统的控制下,实现资源的统一分配与调度。
2、2第第6 6章章 多处理机多处理机6.1多处理机的结构与特点多处理机的结构与特点6.1.1 多处理机的结构多处理机的结构多处理机在系统结构上可分为两类:1.紧耦合多处理机2.松耦合多处理机3第第6 6章章 多处理机多处理机1.紧耦合多处理机紧耦合多处理机是通过共享主存来实现处理机间的通信的。各处理机与主存之间通过一个互连网络连接。它的典型结构如图6.1所示。 4第第6 6章章 多处理机多处理机在紧耦合多处理机系统中,为了减少处理机访问主存的冲突而采取的措施有:v 多处理机的主存采用多模块交叉存取。模块数越多,发生访主存冲突的概率将越低,但必须解决好数据在各存储器模块中的定位和分配。v 让每台处
3、理机拥有一个小容量的本地存储器,用来存放频繁使用的核心代码等,以减少对主存的访问。v 让每台处理机都有一个Cache,以减少对主存的访问。但要解决好Cache与主存之间以及各个Cache之间的数据一致性问题。5第第6 6章章 多处理机多处理机紧耦合多处理机按所用处理机类型是否相同可分为同构型和异构型两种。而按其对称性又可分为对称式多处理机和非对称式多处理机。如果紧耦合多处理机中的每台处理机在访问任意一个存储器模块或I/O用设备时,都具有同等的能力,那么这个系统就具有对称性。反之,表示多处理机是非对称的。一个多处理机要成为对称式多处理机必须满足两个条件:首先存储器必须是集中共享的,其次系统所用的
4、互连网络也必须是对称的。 6第第6 6章章 多处理机多处理机具有非对称I/O子系统的多处理机如图6.2所示。7第第6 6章章 多处理机多处理机采用冗余连接非对称I/O子系统的多处理机如图6.3所示8第第6 6章章 多处理机多处理机 在紧耦合多处理机中,常见的组合是同构对称式多处理机及异构非对称式多处理机。 1)同构对称式多处理机 Sequent公司生产的Balance多处理机就是同构对称式的,它的结构如图6.4所示。 9第第6 6章章 多处理机多处理机10第第6 6章章 多处理机多处理机2)异构非对称式多处理机异构非对称式多处理机的一般结构如图6.5所示。 11第第6 6章章 多处理机多处理机
5、2. 松耦合多处理机松耦合多处理机是通过消息传送方式来实现处理机间的相互通信的。每台处理机是由一个独立性较强的计算机模块组成,该模块由处理器、较大容量的本地存储器(在运算时所需的绝大部分的指令和数据均取自本地存储器)、I/O设备以及网络接口电路组成。各模块之间通过消息传送系统(MTS)相连接。当不同模块上运行的进程间需要通信时,通过网络接口电路及消息传送系统进行信息交换。由于这种相互间的耦合程度是很松散的,因此称之为松耦合多处理机。 12第第6 6章章 多处理机多处理机松耦合多处理机可分为层次式和非层次式两种结构。1)松耦合非层次式多处理机图6.6所示是一个典型的通过消息传送系统进行互连的松耦
6、合非层次式多处理机。 13第第6 6章章 多处理机多处理机2)松耦合层次式多处理机松耦合层次式多处理机采用多级总线实现层次连接。图6.7所示为卡内基梅隆大学研制的Cm* 松耦合层次式多处理机。 14第第6 6章章 多处理机多处理机6.1.2 多处理机的特点多处理机的特点1.灵活性和通用性强 2.高层次的并行性等级 3.并行任务派生 4.进程同步 5.资源分配和任务调度 15第第6 6章章 多处理机多处理机6.2 多处理机的多处理机的Cache一致性一致性Cache作为提高系统性能的一种技术手段在计算机系统中得到普遍的使用。在共享存储器的多处理机中,每台处理机都有自己的局部Cache。这类多处理
7、机在运行一个具有多个进程的程序时,各处理机可能会使用到共享存储器中的同一数据块,为维持多处理机的高速运行,这些共享数据块将被调入各处理机的局部Cache中。由于多个处理机是异步地独立操作,可能使共享存储器中同一数据块的不同Cache拷贝出现不一致,就可能危及系统的正常运行,这就是Cache的一致性问题。16第第6 6章章 多处理机多处理机6.2.1 出现出现Cache一致性问题的原因一致性问题的原因出现Cache一致性问题的原因主要有3个:1.共享可写的数据2.进程迁移3.I/O传输17第第6 6章章 多处理机多处理机1共享可写数据引起的不一致 假设在写操作之前,Cache的初始状态如图6.8
8、(a)所示。处理机P1和P2的局部高速缓冲存储器Cache1和Cache2中分别有共享存储器的某个数据x的副本。18第第6 6章章 多处理机多处理机 若采用写直达法,如图6.8(b)所示,当处理机P1改写Cache1中的数据为x时,共享存储器中的相应数据也立即更新为x,这将导致Cache1中的数据与Cache2中所缓存的数据不一致。19第第6 6章章 多处理机多处理机 若采用写回法,如图6.8(c)所示,当处理机P1改写Cache1中的数据为x时,Cache1的变化不会引起Cache2和共享存储器的变化,这将导致Cache1中的数据与共享存储器和Cache2中所缓存的数据不一致。20第第6 6
9、章章 多处理机多处理机2进程迁移引起的不一致 在多处理机上,有时为了提高系统的效率而允许进程迁移,将一个尚未执行完而被挂起的进程调度到另一个空闲的处理机上去执行,使系统中各处理机的负荷保持均衡。但这样做可能会造成Cache一致性问题。 假设在迁移前Cache的初始状态仍如图6.9(a)所示,处理机P1的Cache1中有共享存储器中数据x的拷贝,而处理机P2的Cache2中没有该数据。21第第6 6章章 多处理机多处理机 若采用写直达法,如图6.9(b)所示,当某进程从P1迁移到P2后,处理机P2在执行此进程时需要使用数据x时,会将x所在块由共享存储器调入Cache2。假设进程运行时将Cache
10、2的数据x改写为x,在共享存储器中的相应数据也立即更新为x,这将导致共享存储器和Cache2中的数据与处理机P1中Cache1所缓存的数据的不一致。22第第6 6章章 多处理机多处理机 若采用写回法,如图6.9(c)所示,当处理机P1修改Cache1中的数据成x时Cache1的变化不会引起共享存储器的变化。当某进程从P1迁移到P2后,处理机P2在执行此进程时需要使用数据x时,会将x所在块由共享存储器调入Cache2。此时调入的数据x并非是已经修改过的x,这将导致共享存储器及Cache2与处理机P1中Cache1所缓存的数据的不一致。23第第6 6章章 多处理机多处理机3I/O操作引起的不一致
11、假设在执行I/O操作之前,Cache的初始状态如图6.10(a)所示。处理机P1和P2的局部Cache中分别有共享存储器的某个数据x的拷贝。 24第第6 6章章 多处理机多处理机 若采用写直达法,当I/O处理机执行输入操作,直接将共享存储器中的数据x改写成x时,将导致Cache1和Cache2中的数据与共享存储器数据的不一致,如图6.10(b)所示。25第第6 6章章 多处理机多处理机 若采用写回法,当处理机P1将Cache1中的数据x改写为x时,由于Cache1数据的修改不会立即引起共享存储器中数据x的更新,此时若此数据恰好被I/O处理机输出,就会造成输出错误,如图6.10(c)所示。26第
12、第6 6章章 多处理机多处理机 解决多处理器维护Cache一致性的协议称为Cache一致性协议。实现Cache一致性协议的关键是跟踪共享数据块的状态。目前有两类协议,它们采用了不同的共享数据状态跟踪技术,分别适合于不同的系统结构。 (1)监听:每个Cache除了包含物理存储器中块的数据拷贝之外,也保存着各个块的共享状态信息。这是一种基于总线的一致性协议,各处理机通过监听总线上处理机与存储器之间的Cache操作事件,对各自局部Cache中的数据采取保持一致性的措施。 (2)目录:物理存储器中共享数据块的状态及相关信息均被保存在一个称为目录的地方。共享数据块的变化通过此数据块所在的各目录项,将一致
13、性命令发给所有存放该数据块拷贝的Cache。27第第6 6章章 多处理机多处理机6.2.2 监听一致性协议监听一致性协议 在基于总线互连结构的系统中,各处理机的Cache都连接到公共总线。一般都采用监听协议,通过总线监听机制实现高速缓存和共享存储器之间的数据一致性。监听协议有两种策略来保持Cache一致性:1.写无效策略2.写更新策略28第第6 6章章 多处理机多处理机1. 写无效策略 写无效策略是指在某局部Cache数据被修改后,使所有其它Cache中的相应数据拷贝都无效。 假设在写操作之前,Cache的初始状态如图6.11(a)所示。处理机P1和P2的局部Cache中都存有共享存储器中数据
14、x的拷贝,图中数据x加虚线框表示数据x所在的数据块。 当处理机P1要进行写操作时,它必须首先获得对x的唯一访问权, 然后更新数据为x并使Cache2中的相应数据块拷贝失效(标志为I)。29第第6 6章章 多处理机多处理机 若采用写直达法,则共享存储器中的数据x将会立即更新为x,如图6.11(b)所示。当处理机P2访问已修改的数据x时,会发生Cache2失效并从共享存储器中读取新值x,同时将x所在数据块调入Cache2。30第第6 6章章 多处理机多处理机 若采用写回法,则共享存储器中数据x所在的数据块也将被设置为无效,如图6.11(c)所示。当处理机P2访问已修改的数据x时,会发生Cache2
15、失效并从处理机P1的Cache1读取新值x,同时将x所在数据块调入Cache2并且更新共享存储器中的相应数据块。31第第6 6章章 多处理机多处理机2.写更新策略 写更新策略是指在某局部Cache数据被修改后,通过总线广播修改后的数据使所有含有相应数据拷贝的其他Cache进行更新。 假设在写操作之前,Cache的初始状态如图6.12(a)所示。处理机P1和P2的局部Cache中都存有共享存储器中数据x的拷贝。32第第6 6章章 多处理机多处理机 若采用写直达法,则共享存储器中数据x所在的数据块将会立即更新,如图6.12(b)所示。若采用写回法,则共享存储器中数据x所在的数据块将会被设置为无效,
16、如图6.12(c)所示。33第第6 6章章 多处理机多处理机写更新和写无效策略性能上的差别来自三个方面:对同一数据的多个写而中间无读操作的情况,写更新策略需进行多次写广播操作,而在写无效策略下只需一次置无效操作。对同一块中多个字进行写操作,写更新策略对每个字的写均要进行一次广播,而在写无效策略下仅在对该块第一次写时进行置无效操作即可。写无效是针对Cache块进行操作,而写更新则是针对字(或字节)进行操作。从一个处理机写到另一个处理机读之间的延迟通常在写更新模式中较低,因为它写数据时马上更新了相应的其他Cache中的内容(假设读的处理器Cache中有此数据)。而在写无效策略中,需要读一个新的拷贝
17、。34第第6 6章章 多处理机多处理机6.2.3 基于目录的协议基于目录的协议 在监听协议中,每当Cache被修改时,要与所有的Cache进行通信,包括对于可能共享的数据的写操作,这可能导致总线的流量大大增加。 基于目录的协议的基本思想是:使用Cache目录来记录可以进入Cache的每个数据块的访问状态、该块在各个处理机的共享状态以及是否修改过等信息。把一致性命令只发给存有相应数据块拷贝的Cache,从而支持Cache的一致性。各种目录协议的主要差别是目录存放什么信息以及如何维护信息。 35第第6 6章章 多处理机多处理机根据目录的结构特点,基于目录的协议可分为三类:1.全映射目录(full-
18、map directory)2.有限目录(limited directory)3.链式目录(chained directory) 36第第6 6章章 多处理机多处理机1. 全映射目录协议 全映射目录协议规定共享存储器中的每个数据块都有一个目录项,每个目录项中有N个处理机位和一个重写位,其中N为处理机的台数,目录项结构如图6.13所示。 37第第6 6章章 多处理机多处理机 下面以三个处理机的系统为例,说明全映射目录的三种状态以及全映射目录协议保持Cache一致性的原理。 (1)处理机Cache中没有包含单元x的数据块副本 全映射目录的第一种状态。此时,包含单元x的数据块Bd目录项中的三个处理机
19、位均为“0”,表示整个系统所有Cache中都没有数据块Bd的副本;重写位为未写(C)状态,表示没有一台处理机允许写入该数据块。38第第6 6章章 多处理机多处理机(2)处理机从共享存储器读入数据块到Cache 当三台处理机都有过读x的请求之后,全映射目录出现第二种状态。目录项中的三个处理机位被置“1”,表示这些Cache中已有数据块Bd的拷贝;重写位仍为未写状态,不允许处理机写Cache块Bd。此时,三个Cache中Bd的Cache块状态位均为有效位1,允许写位0,与Cache目录的状态位一致。39第第6 6章章 多处理机多处理机(3)处理机写Cache块 如果处理机P3向Cache3发出写x
20、(或Bd中其它单元)的请求,全映射目录将从第二种状态转换到第三种状态,此时的Cache全映射目录呈现第三种状态。目录项中Cache1和Cache2的处理机位被置“0”,表示这些Cache中数据块Bd的拷贝已失效;Cache3的处理机位为“1”,同时重写位为重写状态,表示允许处理机P3写Cache块Bd,且Cache3中的Bd块已被修改为Bd。40第第6 6章章 多处理机多处理机2. 有限目录协议 有限目录协议与全映射目录协议十分相似,都有一位重写位,但有限目录的目录项中的指针(处理机位)实际上是数目固定的若干个处理机编号。若共有N台处理机,则每个处理机指针为log2N位。有I个指针域的目录项最
21、多只能允许该数据块装入I个Cache中,有限目录协议使用IN个指针,可以缓解目录过大的问题。 41第第6 6章章 多处理机多处理机 如图6.15所示,假设多处理机系统中共有三台处理机,目录项中只有两个指针域。当P1和P2的Cache中都有单元x所在数据块Bd的拷贝时,该数据块对应的目录项中的两个指针分别指向处理机P1和P2。 42第第6 6章章 多处理机多处理机3. 链式目录协议 链式目录通过将目录信息分布到多个小规模的本地目录中来模拟全映射机制。其主要思想是通过维护一个目录指针链来跟踪共享数据块的拷贝。要想得到某个数据块在所有Cache中的共享情况,必须搜索整个Cache目录链。链式目录的优
22、点在于既不限制共享数据块的拷贝数目,又保持了可扩展性。链式目录有两种实现方法,单向链和双向链。若采用比较简单的单向链,则目录项中除一位重写位之外,只需要一个指针域。43第第6 6章章 多处理机多处理机采用单向链的链式目录如图6.16所示。 44第第6 6章章 多处理机多处理机6.3 多处理机的软件多处理机的软件6.3.1并行算法并行算法算法对于并行性的开发至关重要。算法必须适应具体的计算机结构。对表达式E1abxcx2dx3 ,顺序算法与并行算法比较如图6.17所示。将运算过程用树形流程图来表示的方法。运算的级数就是树的高度,用Tp代表;P为所需处理机数目;Sp为加速比,SpTl/Tp;Ep为
23、效率,EpSp/P 45第第6 6章章 多处理机多处理机 对树进行变换来降低树高,减少运算级数,即可提高运算的并行性。树形结构可以用交换律、结合律、分配律来变换。 先从算术表达式的最直接形式出发,利用交换律把相同的运算集中在一起;再利用结合律把参加运算的操作数(称原子)配对,尽可能并行运算,组成树高最小的子树;最后利用分配律,平衡各分支运算的级数,把这些子树结合起来,使总级数减至最少。 46第第6 6章章 多处理机多处理机 例如:某表达式E2ab(cdefg)h,需7级运算,如图6.18(a)所示。利用交换律和结合律改写为E2(ah)b(cg)def ,则需5级运算,如图6.18(b)所示。
24、47第第6 6章章 多处理机多处理机再利用分配律,将上式改写为E2(ah)(bcbg)bdef则用3个处理机,仅需4级运算。如图6.18(c)所示。 48第第6 6章章 多处理机多处理机6.3.2 程序并行性分析程序并行性分析除算法以外,任务间能否并行在很大程度还取决于程序的结构形式。假设一个程序包含P1、P2、Pi、Pj、Pn等n个程序段,其书写的顺序反映了该程序正常执行的顺序。为了便于分析,设Pi和Pj程序段都是一条语句,Pi在Pj之前执行,且只讨论Pi和Pj之间的直接数据相关关系。49第第6 6章章 多处理机多处理机程序段之间会出现类似的3种数据相关。1.如果Pi的左部变量在Pj的右部变
25、量集内,且Pj要从Pi取得运算结果来作为操作数,则称Pj“数据相关”于Pi。如Pi A = B + DPj C = A * EPj必须取Pi算得的A值作为操作数,相当于流水中发生的“先写后读”相关。50第第6 6章章 多处理机多处理机2.如果Pj的左部变量在Pi的右部变量集内,且当Pi未取用其变量的值之前,不允许被Pj所改变,则称Pi“数据反相关”于Pj。如Pi C = A * EPj A = B + D在A的值未被Pi取用之前不能被Pj所改变,相当于流水中发生的“先读后写”相关。3.如果Pi的左部变量也是Pj的左部变量,且Pj存入其算得的值必须在Pi存入之后。则称Pj“数据输出相关”于Pi。
26、如Pi A = B + DPj A = C + E Pj存入其算得的A值必须在Pi存入其结果A之后,相当于流水中发生的“写写”相关。51第第6 6章章 多处理机多处理机对程序并行性的影响表现为下列几种可能的执行次序。1.写读串行次序2.读写次序3.可并行次序4.必并行次序52第第6 6章章 多处理机多处理机1. 写读串行次序如果程序必须保持前面的语句先写,后面的语句后读的次序,则允许上述任意一种数据相关存在。一般情况下,执行的次序不可并行,也不可颠倒。这是通常遇到的典型串行程序。但有一种特殊情况,即当Pi和Pj服从交换律时,虽仍需串行执行,但允许Pi和Pj的执行次序交换,这称为可交换串行。如P
27、i A = 2 * APj A = 3 * A为可交换串行,但Pi A = B + 1Pj B = A + 1就不是可交换串行的。53第第6 6章章 多处理机多处理机2. 读写次序如果两个程序段之间只包含第2种数据相关,则只须保持前面的语句先读,后面的语句后写的次序,便允许它们既可串行执行,也可并行执行,但不可交换串行。如Pi A = B + DPj B = C + E二者同时执行,能保证Pi先读B,Pj后写B的次序。又如Pi A = 3 * C/BPj B = C * 5Pk C = 7 + E 三者同时执行虽属可能,但由于处理时间上Pi费时最长,Pj次之,Pk最短,如果不采取特别的同步措施
28、,就不能保证必要的先读后写次序。54第第6 6章章 多处理机多处理机3. 可并行次序如果两程序段之间不存在任何一种数据相关,即无共同变量,或共同变量仅为右部变量,而不作为左部变量出现,则它们可以无条件地并行执行。当然,也可以串行执行,而且是可交换串行的。如Pi A = B * CPj D = B + E55第第6 6章章 多处理机多处理机4. 必并行次序如果两程序段的输入变量互为输出变量,同时具有“先写后读”和“先读后写”两种相关,以交换数据为目的,则二者必须并行执行,既不能顺序串行,也不能交换串行。如Pi A = BPj B = A两语句的左右变量互相交换,必须并行执行,且需保证读写完全同步
29、。56第第6 6章章 多处理机多处理机综上所述:两个程序段之间若有先写后读的数据相关,不能并行,只在特殊情况下可以交换串行;若有先读后写的数据反相关,可以并行执行,但必须保证其写入共享主存时的先读后写次序,不能交换串行;若有写写的数据输出相关,可以并行执行 但同样需保证其写入的先后次序,不能交换串行;若同时有先写后读和先读后写两种相关,以交换数据为目的时,则必须并行执行,且要求读写完全同步,不许顺序串行和交换串行;若没有任何相关,或仅有右部源数据相同时,可以并行、顺序串行和交换串行。57第第6 6章章 多处理机多处理机6.3.3并行程序设计语言并行程序设计语言并行算法需要用并行程序来实现,而编
30、写并行程序所用的程序语言中需要含有能明确表示并发进程的成分,这就要使用并行程序设计语言。并行进程的特点是多个进程在时间上重叠地执行,而并行程序设计语言必须便于具体描述这些并行关系。 58第第6 6章章 多处理机多处理机1.描述程序并行性的语句包含并行性的程序在多处理机上运行时,需要对并行任务的派生和汇合进行管理。 并行任务的派生和汇合通常是用软件手段来控制的。要在程序中反映出并行任务的派生和汇合关系,可以在程序语言中使用FORK 语句来派生并行任务,用JOIN语句来实现对多个并发任务的汇合。59第第6 6章章 多处理机多处理机语句格式:FORK m,其中m为一个新进程开始的标号。功能:执行一个
31、 FORK m 语句时l继续在原分配的处理机上执行FORK m 语句的原进程;l派生出标号为m开始的新进程。准备好启动和继续执行新进程所必需的有关信息。若是共享主存,则应该产生存储器指针、映像函数和访问权等信息。l将空闲处理机分配给被FORK语句派生的新进程,如果所有处理机都忙,则让新进程排队等待。60第第6 6章章 多处理机多处理机语句格式:JOIN n ,其中n为已派生出的并发进程个数。JOIN与FORK语句相配合,作为每个并发进程的终端语句。功能:JOIN语句附有一个计数器,其初始值为0。当执行JOIN语句时,计数器加1,并与n比较。l若计数器值等于n,表明此进程是执行中的第n个并发进程
32、经过JOIN语句,则允许该进程通过JOIN语句,将计数器清0,在其所在的处理机上继续执行后续语句。l若计数器值小于n,表明此进程不是并发进程中的最后一个,可让现在执行JOIN语句的这个进程先结束,并把它占用的处理机释放出来,分配给排队等待的其他任务。若无等待任务,则该处理机空闲。61第第6 6章章 多处理机多处理机给定算术表达式Z = E + A * B * C/D + F经并行编译得到如下程序: S1 G = A * B S2 H = C/D S3 I = G * H S4 J = E + F S5 Z = I + J如果不加并行控制语句,该程序仍是串行程序,不能发挥多处理机作用。图6.19
33、(a)示出了各语句间的数据相关情况。 62第第6 6章章 多处理机多处理机 利用FORK和JOIN语句实现并行任务派生和汇合,可将程序改写为: FORK S2 S1G = A * B (进程S1)JOIN 2GOTO S3S2H = C/D (进程S2)JOIN 2S3FORK S4I = G * H (进程S3)JOIN 2GOTO S5S4J = E + F (进程S4)JOIN 2S5Z = I + J (进程S5) 63第第6 6章章 多处理机多处理机 执行这个程序可用P1和P2两个处理机。假定最初的程序在P1上运行,按照FORK语句和JOIN语句对并行任务的派生和汇合关系,程序执行过
34、程如图6.19(b)所示。64第第6 6章章 多处理机多处理机 作为FORKJOIN概念的发展,E.W.Dijkstra提出一种新的块结构语言。它把所有可并行执行的语句或进程S1,S2,Sn用并行语句对cobegincoend(或parbeginparend)括起来,如下程序的执行过程如图所示:beginS0;cobegin S1;S2; Sn;coendSn+1;end65第第6 6章章 多处理机多处理机并行语句也可以嵌套。例如:begin S0; cobegin S1; begin S2; cobegin S3;S4;S5;coend S6; end S7; coend S8;end其程序
35、的执行过程如图6.21所示。66第第6 6章章 多处理机多处理机2.并行编译 实现算术表达式的并行处理可以应用并行算法编制并行程序,还可以依靠并行编译程序。有一些编译算法,可以经过或不经过逆波兰式,直接从算术表达式产生能并行执行的目标程序。例如,对下列表达式:Z = E + A * B * C/D + F利用普通串行编译算法,产生三元指令组为 1 *AB2 *1C3 /2D4 +3E5 +4F6 =5Z指令之间均相关,需5级运算。67第第6 6章章 多处理机多处理机如采用并行编译算法可得 1 *AB2 /2D3 *124 +EF5 +346 =5Z 其中,1,2为第1级;3,4为第2级;5,6
36、为第3级。分配给两个处理机,只需3级运算即可实现。68第第6 6章章 多处理机多处理机6.3.4 多处理机的操作系统多处理机的操作系统1.多处理机操作系统的功能与特点在多处理机中有多台实际的处理机,它可以真正实现多个进程的并行执行。在多处理机中有多个进程并行执行,很可能出现若干个进程同时要求访问某一共享的资源的情况。在多处理机中有各处理机共享的全局性存储器,还有每个处理机自己的局部存储器。多处理机(尤其是松耦合多处理机)表现出任务、资源和控制上的分布性。 系统的容错性对多处理机,特别是分布式系统是非常重要的。 69第第6 6章章 多处理机多处理机2. 多处理机操作系统的类型主从型,即集中控制方
37、式;单独管理型,即分布控制方式;浮动管理型,即对称控制方式。70第第6 6章章 多处理机多处理机6.4 多处理机的性能多处理机的性能多处理机系统是程序并行的基础,使用多处理机的主要目的是用多个处理机并发执行多个任务来提高解题速度。只有当多处理机系统的并行性能为程序并行带来较高的性能时才能产生效益,否则只会增加程序的运行成本和复杂性。因此,多处理机的性能除取决于多处理机系统硬件和软件的性能之外,在很大程度上取决于程序的并行度。71第第6 6章章 多处理机多处理机6.4.1 任务粒度与系统性能任务粒度与系统性能 颗粒规模或粒度是衡量软件进程所含计算量的尺度。任务粒度过小,辅助开销大,系统效率低;粒
38、度过大,并行度低,性能也不会很高。 如果用R表示程序用于有效计算的时间开销,C表示处理机间的通信等的辅助时间开销,则比值R/C就作为衡量任务粒度大小的依据。在粗任务粒度并行情况下,R/C比值较大,计算所需的处理机数量少;在细任务粒度并行情况下,R/C比值较小,计算所需的处理机数量多。用R/C比值能直观地反映系统的性能,只有R/C比值较大时,开发并行性才能得到好处。72第第6 6章章 多处理机多处理机6.4.2 多处理机性能模型多处理机性能模型现在我们通过几种不同的多处理机模型来分析R/C的值对系统性能的影响。 1.基本模型2.随机模型3.通信开销为线性函数的模型4.完全重叠通信的模型5.具有多
39、条通信链的模型73第第6 6章章 多处理机多处理机1.基本模型若某应用程序包含M个任务,在一个由N台处理机组成的系统上运行。为了简单起见,我们先讨论在一个仅有两台处理机的系统上运行的情况,并假设以下两个条件是成立的。l每个任务的计算时间开销为R,各处理机的执行速度相同;l不在同一台处理机上运行的两个任务之间用于通信的额外时间开销为C,忽略在同一台处理机上运行的两个任务之间的通信开销。74第第6 6章章 多处理机多处理机 M个任务在两台处理机上有多种分配方法。如果把全部任务都分配给一台处理机而另一台空闲,则通信开销最小,但没有并行性。若把K个任务分配给一台处理机,把(MK)个任务分配给另一台处理
40、机,则系统运行包含M个任务的应用程序所需总的处理时间为: TRmax(MK,K)C(MK)K (6.1)式中第一项为程序用于计算的时间,取两台处理机执行时间中的大者;第二项为通信产生的额外开销时间。K称为任务分配参数。 75第第6 6章章 多处理机多处理机由(6.1)式可知,总处理时间是K的函数, 第一项是K的线性函数,第二项是K的二次函数。任务分配应使总处理时间最小,分析任务分配参数K对处理时间的影响可得:l当K0 时(任务集中分配给一台处理机),执行时间最长(为RM),通信时间最短(为0),总的处理时间为T1RM;l当KM/2时(任务平均分配给两台处理机) ,执行时间最短(为RM/2),通
41、信时间最长(为CM2/4),总的处理时间为T2RM/2CM2/4。76第第6 6章章 多处理机多处理机使总处理时间最短的K的最佳值的范围为:0KM/2。当0KM/2时,max(MK,K)MK,总处理时间为TR(MK)C(MK)K CK2(CMR)KRM (6.2)T与K的关系曲线为一开口向下的抛物线,如图6.22所示。77第第6 6章章 多处理机多处理机由图6.22可见,当K0和KM/2时的总处理时间T较小,而谁是使总处理时间最小的最佳K值则与任务粒度有关。设TT1T2,有TRM(RM/2CM2/4) RM/2CM2/4 (6.3) 对(6.3)式进行讨论,并得该模型的结论:l若T0,得R/C
42、M/2,说明任务粒度较细。此时T1T2,表示采用集中分配策略(K0)可使总的处理时间最短,为TRM;l若T0,得R/CM/2,说明任务粒度较粗。此时T1T2,表示采用平均分配策略(KM/2)可使总的处理时间最短,为TRM/2CM2/4。78第第6 6章章 多处理机多处理机 现在,讨论包含M个任务的程序,在一个由N台处理机组成的系统上运行的情况。仍假设各处理机的速度相同,每个任务的执行时间均为R,将Ki个任务分配给第i台处理机,则N台处理机执行一个包含M个任务的应用程序所需的总处理时间为 (6.4) 式中第一项为N台处理机中最大的计算时间,第二项为不同处理机上的任务两两之间通信的额外时间开销的总
43、和。这里,假设处理机的计算时间和通信时间不会重叠,而且所有的任务间的通信是串行执行的。79第第6 6章章 多处理机多处理机与两台处理机系统的基本模型类似,N台处理机系统的基本模型也有一个决定采用平均分配还是采用集中分配的临界值。设M为N的倍数,由(6.4)式可得:l当K0 时(采用集中分配策略),执行时间最长(为RM),通信时间最短(为0),总的处理时间为T1RM;l当KM/N时(采用平均分配策略,将M个任务尽可能平均分配给N台处理机) ,执行时间最短(为RM/N),通信时间最长(为CM2/2(11/N),总的处理时间为TNRM/NCM2/2(11/N) 80第第6 6章章 多处理机多处理机
44、注意,这里的所谓平均,是指如果任务数M是处理机数N的整数倍,则每台处理机分得M/N个任务,否则让大多数处理机分得个任务,一台处理机分配剩余的不足个任务,余下的处理机空闲不分配任务。这样可减少不必要的通信开销。例如,有19个任务和6台处理机。让其中4台处理机各分得个任务,第5台处理机分得余下的3个任务,而第6台处理机空闲,免去了通信开销。81第第6 6章章 多处理机多处理机令TT1TN ,有 (6.5) 对(6.5)式进行讨论,由此得出R/C比值对最佳任务分配的影响:l若T0,得R/CM/2,细粒度任务对应的R/C比值很小,T1TN表示采用集中分配策略(K0)将任务集中分配给一台处理机可使总的处
45、理时间最短,为TRM;l若T0,得R/CM/2,粗粒度任务对应的R/C比值较大,T1TN表示采用平均分配策略(KM/N)将任务平均分配给所有处理机会使总的处理时间最短,为TRM/NCM2/2(11/N) 82第第6 6章章 多处理机多处理机2. 随机模型对于N台处理机系统的随机模型,假设各处理机的速度不一定相同,各任务的执行时间也可能不同。执行一个包含M个任务的应用程序所需的总处理时间为 (6.6)其中,Ri表示i台处理机执行一个任务所需的时间,其它参数的含义与N台处理机系统的基本模型相同。83第第6 6章章 多处理机多处理机 例2.2假设有两台处理机,处理机A的速度是B的两倍,参考基本性能模
46、型和随机模型的分析,请问如何分配任务能达到最优性能?解:由于A处理机的速度是B处理机的两倍,现给B分配K个任务,每个任务执行的时间为R,则A分配MK个任务,每个任务执行的时间为R/2,同时设各对任务之间的通信开销为C。参考基本性能模型和随机模型的系统总处理时间公式,可写出两台处理机执行M个任务的总处理时间为 (6.7) 式中第一项为并行执行时间,若要使其最小,必须让两个处理器的执行时间完全相等,即R/2(MK)RK,可得KM/3。84第第6 6章章 多处理机多处理机分析(6.7)式可得:l当K0时(全部任务集中分配给速度快的A处理机),计算时间最长(为RM/2),通信时间最短(为0),总处理时
47、间为T1RM/2; l当KM/3时(让两个处理机的执行时间相等),计算时间最短(为RM/3),通信时间为2M2C/9,总处理时间为T2RM/32M2C/9;l当KM/2时(将任务平均分配给两个处理机),计算时间并不是最短(为RM/2),但通信开销却是最大(M2C/4),故其总处理时间(RM/2M2C/4) 肯定大于T2。85第第6 6章章 多处理机多处理机 由此可知,使总处理时间T最小的K值最佳取值范围为0KM/3。据此简化(6.7)式得 (6.8)86第第6 6章章 多处理机多处理机T与K的关系曲线为一开口向下的抛物线,如图6.23所示。其中,图6.23(a) 表示当K0时T取最小值(图中M
48、/3也可能大于(2MCR)/(4C),图中未标出),图6.23(b) 表示当KM/3时T取最小值。87第第6 6章章 多处理机多处理机具体K取何值能使总处理时间最短仍与任务粒度有关。设TT1T2,有 (6.9) 分析上式并得以下结论:l若T0,得R/C4M/3,说明任务粒度较细。此时取K0可使总的处理时间最短,为TRM/2;l若T0,得R/C4M/3,说明任务粒度较粗。此时取KM/3可使总的处理时间最短,为TRM/32M2C/9。88第第6 6章章 多处理机多处理机3. 通信开销为线性函数的模型在基本模型中,我们假设每一对在不同处理机上的任务之间都要通信,因此通信开销随处理机数目的增加以二次函
49、数增加。实际上一个任务要同另一台处理机上的所有任务通信,且通信内容相同,只需向这台处理机发送一次信息就可以了,当信息到达该处理机后,在这台处理机上各任务之间的信息传递就不必花费通信开销了。 89第第6 6章章 多处理机多处理机在通信开销为线性函数的模型中,就假设通信开销与处理机的数目N成正比,而不是同分配的任务数成正比。如果把M个任务分配给N台处理机,并假设M是N的整数倍,各处理机的速度相同,每个任务的执行时间均为R,则总的处理时间为TRmax(Ki)CN (6.10)式中的第一项与任务的分配有关,第二项与任务的分配无关。如果把M个任务平均地分配给N台处理机,那么第一项等于RM/N,使计算时间
50、最短。总处理时间为T(N)RM/NCN。当N增加时,第二项的增加甚至会超过第一项的减少。所以存在一个最大的N值,这时的性能最佳,这个N值是R/C的函数。 90第第6 6章章 多处理机多处理机把M个任务平均地分配给N1台处理机,则总处理时间为T(N1)RM/(N1)C(N1)对 M个任务多分配一台处理机是希望总处理时间减少,即T(N1)T(N),由此可得出进一步提高并行性的条件为: 或 N (6.11)上式表明,如果分配M个任务给N台处理机并行处理,当任务的R/C比值已达到临界值N(N1)/M后,总的处理时间不会随N的增加而减少,反而也会增加。原因是通信开销的增加超过了提高并行性带来的好处。式(
51、6.11)的第二种形式直接给出了可使用处理机数量N的上限。91第第6 6章章 多处理机多处理机 该模型的结论是:将任务平均地分配给各台处理机,且当处理机的数目 时,总的处理时间最短。 在本模型中,通信开销随着N值的增大线性增加,当N超过临界值时,计算时间的减少将小于通信开销的增加,这使得系统的整体性能下降。前面的几种模型告诉我们,在某种情况下,限制并行性反而能获得高性能,也就是说,使用的处理机数目并不是越多越好。92第第6 6章章 多处理机多处理机4. 完全重叠通信的模型 完全重叠通信是指任务间的通信过程可以完全与任务的计算过程重叠进行以使额外开销趋于零。在N台处理机系统的完全重叠通信模型中,
52、执行包含M个任务的程序所需的总处理时间为93第第6 6章章 多处理机多处理机通信过程与计算过程完全重叠时,计算时间越短,总处理时间也就越短。当任务平均分配时,即KM/N并带入式(6.12),得最短计算时间为 (6.13)通信时间为 (6.14)对于完全重叠通信模型,计算时间等于通信时间,由式(6.13)和(6.14)得 (6.15)94第第6 6章章 多处理机多处理机 当N值很大时,1/N可忽略,式(6.15)可简化为 (6.16) 式(6.16)表明,包含M个任务的程序在N台处理机上并行处理,若任务间的通信过程能与计算过程重叠进行,则只有当R/C比值等于或大于MN/2,才能将通信的开销完全屏
53、蔽,从而使总处理时间最短。式(6.16)的第二种形式直接给出了可使用处理机数量N的上限,并显示处理机数量N的选择与可提供的任务数M成反比。95第第6 6章章 多处理机多处理机 若N的值不是很大,则式(6.15)中的1/N不能忽略。如对N2的两台处理机完全重叠通信的理想模型,有 (6.17) 简化上式,得R/CM/2,满足此关系时总处理时间最短,为TRM/2。 该模型的结论是:将任务平均地分配给各台处理机,当处理机的数目N较大且等于2R/(CN) 时,计算时间与通信时间完全重叠,且总的处理时间最短。96第第6 6章章 多处理机多处理机5. 具有多条通信链的模型如果每台处理机与其他任何一台处理机之
54、间都有专用的通信链路,而且链路和处理机都支持双向通信。由于一台处理机在某一时刻只能与另一台处理机通信,则在一个具有N台处理机的系统中,通信过程的最大并发度为N。在这种理想情况下,总的通信开销可缩短为原来通信过程串行执行时的1/N。在此具有多条通信链路支持并行通信的模型中,N台处理机执行M个任务的总处理时间为97第第6 6章章 多处理机多处理机设M为N的倍数,由式(6.18)可得l当K0时(采用集中分配策略),执行时间最长(为RM),通信时间最短(为0)总的处理时间为T1RM;l当N2时,由N台处理机系统的基本模型可知,尽可能平均分配任务可以使总处理时间达到最小。故当KM/N时(采用平均分配策略
55、),执行时间最短(为RM/N),通信时间最长(CM2/(2N)(11/N)),总处理时间为98第第6 6章章 多处理机多处理机 由式(6.19)可看出,当N2时,计算时间和通信时间将随N的增大而逐渐减少,即N越大,总处理时间TN越短,提高并行性将缩短程序的运行时间。 为了确定任务粒度与分配策略和系统性能的关系, 设TT1TN,有 (6.20)分析(6.20)式可得以下结论:l若T0,则R/CM/(2N),说明任务粒度较细。此时取 K0,采用集中分配策略可使总处理时间最短,为 TRM;l若T0,则R/CM/(2N),说明任务粒度较粗。此时取KM/N,采用平均分配策略可使总处理时间最短,为TRM/
56、NCM2/(2N)(11/N),并且N的值越大(NM)总处理时间越短。99第第6 6章章 多处理机多处理机6.5 MIMD并行机结构模型并行机结构模型6.5.1并行向量处理机并行向量处理机 并行向量处理机的结构如图6.24所示。它包含功能很强的定制向量处理机、共享存储器SM模块和定制的高速纵横交叉开关互连网络。PVP系统由少数几台巨型向量处理机采用共享存储器方式互连而成,每个存储模块都能提供高速数据访问。这类机器通常不使用Cache,而是使用大量向量寄存器以及指令缓存。100第第6 6章章 多处理机多处理机6.5.2对称多处理机对称多处理机 对称多处理机的结构如图6.25所示。它由带有片内和片
57、外Cache的处理机经总线或交叉开关网络与共享存储器连接而成。该系统是具有对称性特点的紧密耦合系统,每个处理机的能力都一样,并且可以平等地访问任何共享存储器模块、I/O设备和操作系统服务,同时可以开发较高的并行性。所有存储单元按单一物理地址空间编址。 101第第6 6章章 多处理机多处理机6.5.3大规模并行处理机大规模并行处理机 大规模并行处理机的结构如图6.26所示。MPP并行机采用了大量的商品化微处理器芯片作为单结点,每个处理结点都带有独立编址的本地存储器以及网络接口电路(NIC) ,结点内部通过存储器总线(MB)相连,结点之间则由NIC通过高性能定制网络实现互连。102第第6 6章章
58、多处理机多处理机分布共享存储器多处理机的结构如图6.27所示。它与MPP在结构上的区别是每个结点中增加了一个用于支持分布Cache一致性的Cache目录DIR。所谓分布共享存储器也称为共享虚拟存储器。它是将在物理上分散的各台处理机所拥有的本地存储器在逻辑上加以统一编址,形成一个统一的虚拟地址空间来支持存储器的共享,以实现每台处理机可以访问共享虚拟存储器的任意一个地址。6.5.4分布共享存储器多处理机分布共享存储器多处理机103第第6 6章章 多处理机多处理机6.5.5机群系统机群系统机群系统是指利用高速网络将一组计算机结点按某种结构连接起来,并在并行程序设计以及可视化人机交互集成开发环境支持下
59、,统一调度、协调处理,实现高效并行处理的计算机系统。机群系统的结构如图6.28所示。104第第6 6章章 多处理机多处理机五种MIMD并行机模型的特性 PVPSMPMPPDSMCOW同构性MIMDMIMDMIMDMIMDMIMD同步性异步或松同步异步或松同步异步或松同步异步或松同步异步或松同步通信机制共享变量共享变量消息传递共享变量消息传递地址空间单地址空间单地址空间多地址空间单地址空间多地址空间处理器类型专用定制商用商用商用商用互连网络定制的纵横交叉开关总线或交叉开关定制网络定制网络商品化网络(以太网、ATM)系统存储器集中式共享集中式共享分布式非共享分布式共享分布式非共享代表机器Cray C-90、Fujistu VPP500、银河2号IBM R50、SUN Ultra En-terprise 1000曙光1号Cray T3E、Inter ASCI Op-tion Red、曙光-1000Stanford DASH、Cray T3DSGI/Cray Origin 2000Berkeley NOW、Alpha Farm、Digital Trucluster模型特性105