1、第9章 多处理机,9.1 多处理机结构9.2 多处理机性能模型9.3 多处理机的Cache一致性9.4 大规模并行处理机9.5 对称多处理机9.6 机群系统,多处理机定义:两个或两个以上处理机(包括PU和CU),通过高速互连网络连接起来,在统一的操作系统管理下,实现指令以上级(任务级、作业级)并行。按照Flynn分类法,多处理机系统属于MIMD计算机研究多处理机的目的:提前10年得到性能高100倍的高性能计算机系统。,9.1.1 多处理机分类9.1.2 松散偶合多处理机9.1.3 紧密偶合多处理机9.1.4 多处理机系统的特点,9.1 多处理机结构,9.1.1 多处理机分类,多处理机系统由多个
2、独立的处理机组成,每个处理机都能够独立执行自己的程序。按照处理机之间的连接程度:紧密偶合和松散偶合多处理机按照是否共享主存储器:共享存储器和分布存储器多处理机按照处理机类型:同构型和异构型多处理机按照处理机的个数:大规模并行处理机MPP和对称多处理机SMP,按照PE与IOP之间互连方式:对称型:每个IOP能够连接到所有PE上非对称型:每个IOP只与一个PE连接。冗余对称型:一个PE与多个IOP连接。按照存储器的访问方式:均均存储器,UMA模型非均均存储器,NUMA模型只有Cache,COMA模型另外,多向量处理机,机群系统等也称为多处理机系统。,处理机之间的连接频带比较低处理机之间互为外围设备
3、进行连接。通过并行口或串行口把多台计算机连接起来。多台计算机之间的连接需要有多个接口。通过Ethernet网络接口连接多台计算机。速度达10Mb、100Mb、1Gb,Mynet已经达到1.28Gb和2.56Gb。当通信速度要求更高时,可以通过一个通道和仲裁开关CAS (Channel and Arbiter Switch)直接载存储器总线之间建立连接。,9.1.2 松散偶合多处理机,处理机之间共享主存储器,通过高速总线或高速开关连接。每个CPU能够访问任意一个存储器模块通过映象部件把全局逻辑地址变换成局部物理地址通过互连网络寻找合适的路径,并分解访问存储器的冲突多个输入输出处理机IOP也连接在
4、互连网络上,输入输出设备与CPU共享主存储器。处理机个数不能太多,一般几个到几十个。,9.1.3 紧密偶合多处理机,紧密偶合方式要求有很高通信频带。可以采用如下措施:(1)采用高速互连网络(2)增加存储模块个数,一般nm,取12倍之间。(3)每个存储模块再分成多个小模块,并采用流水线方式工作。(4)每个CPU都有自己的局部存储器LM。(5)每个CPU设置一个Cache。,1. 结构灵活阵列处理机:专用,PE数多,固定有限通信多处理机: 通用,PE数少,高速灵活通信2. 程序并行性阵列处理机的并行性存在于指令内部,识别比较容易。多处理机的并行性存在于指令外部,在多个任务之间,识别难度较大。一个简
5、单的例子:Y = A+B*C*D/E+F,用两个处理机计算:CPU1:B*C, A+F, A+B*C*D/E+FCPU2:D/E, B*C*D/E,,9.1.4 多处理机系统的特点,3. 并行任务派生阵列处理机把同种操作集中,由指令直接启动各PE同时工作。多处理机用专门的指令来表示并发关系,一个任务执行时能够派生出与它并行的另一些任务如果没有空闲处理机,任务进入排队器等待4. 进程同步阵列处理机仅一个CU,自然是同步的。多处理机中,各处理机执行不同的指令,工作进度不会也不必保持相同。先做完的要停下等待。有数据相关和控制相关也要停下等待。,要采取同步措施来保持程序要求的正确顺序5. 资源分配和进
6、程调度阵列处理机的PE是固定的,用屏蔽来改变实际参加操作的PE数目。多处理机执行并发任务,需用处理机的数目不固定,各处理机进出任务的时刻不相同,所需共享资源的品种、数量随时变化。资源分配和进程调度问题,对整个系统的效率有很大的影响。,引起峰值性能下降的原因:(1)由于处理机之间通信而产生的延迟。(2)一台处理机与其它处理机同步所需的开销。(3)当没有足够多任务时,一台或多台处理机处于空闲状态。(4)由于一台或多台处理机执行无用的工作。(5)系统控制和操作调度所需的开销。,9.2 多处理机性能模型,研究多处理机的目的: 单处理机的速度提高很快,为什么还要研究多处理机?提前5年得到速度高10倍的机
7、器。 或用1/10的价格获得一台高性能的机器。在某些适合进行并行处理得应用领域,可以达到:提前10年得到速度高100倍的机器。 或用1/100的价格获得一台高性能的机器。,并行性在很大程度上依赖于R/C比值其中:R: 程序执行时间,C: 通信开销R/C小,并行度低。R/C大,并行性高。把作业分解成较大的块,能得到较大的R/C,但所得到的并行性小R/C是衡量任务粒度(Granularity)的尺度粗粒度(Coarsegrain)并行:R/C大,通信开销小 细粒度(Finegrain)并行:R/C小,通信开销大细粒度并行性是程序尽可能地分解成小任务,在极端情况下,一个小任务只完成一个操作,目标:由
8、M个任务组成的程序,在N台处理机组成的系统上运行,求最短执行时间?基本模型仅考虑由两台处理机组成的系统。 总处理时间Rmax(MK,K)C(MK)K 其中:R:每个任务的执行时间, C:通信开销, K:任务分配参数。当通信时间很小时,把M个任务平均分给两台处理机当通信时间很大时,把M个任务分配给一台处理机,9.2.1 基本模型,通信时间: C(M-K)K是一个开口向下的二次函数, 任务执行时间是两根相交的直线。 当通信时间比较大时,总时间的最小值发生在端点, 当通信时间比较小时,总时间的最小值发生在中点。结论: (1)总时间的最小值只可能出现在中点或两个端点, (2)如果总时间的最小值发生在中
9、点,必须满足: M R R M/2 + C M/2 M/2 R/C M/2总时间最短的结论:当R/CM/2时,把所有任务分配给同一台处理机,K0;当R/CM/2时,把任务平均分配给两台处理机,KM/2。,要解决的问题:把M个任务分配给N台处理机,求总处理时间的最小值。实际的最小值发生在极端分配情况下, 或者将所有的任务集中在一台处理机上, 或者将任务平均分配给所有处理机。先讨论平均分配方法:,9.2.2 N台处理机系统的基本模型,平均分配方法:例1:个任务平均分给台处理机: 例2: 11个任务平均分给台处理机:,M个任务分配给N台处理机的最佳分配方法: 台处理机,每台 个任务如果M/N0,则:
10、另外有1台处理机分得剩下的 个任务;剩下的 台处理机不分配任何任务。例如:101个任务平均分给50台处理机: 有33台处理机,每台分给3个任务; 另有台处理机分给个任务; 剩下的16台处理机不分配任务。,假设Ki个任务分给了第台处理机:第一项求出N台处理机中最大执行时间;第二项计算出Ki与(MKi)任务之间两两通信的开销时间,它是关于Ki的二次函数。Ki最多有3个取值: 、 和0当 M 是 N 的倍数时,当R/CM/2时采用平均分配方法, 当R/CM/2时采用集中分配方法。,多处理机系统的加速比:一个计算问题在一台处理机上运行时间与在多处理机系统上运行时间的比值 当M是N的倍数时,有:如果M和
11、N较小,R/C较大,即分母中的第一项远大于第二项,则加速比与处理机台数N成正比。当处理机台数N很大,加速比 ,趋近于一个常数。这时如果再增加处理机,性能的提高很小。,总结上面几个模型,可以得出如下结论:(1)多处理机系统结构所需的额外开销,包括调度,对共享资源的竞争,同步,处理机之间通信等。(2)当处理机台数增加时,额外开销时间也增加。有时,额外开销的增加可能比处理机数目的线性增加更快。(3)R/C比值越大,越有利于计算过程。如果采用粗粒度,能够获得较大的R/C比值;但是并行程度将大为降低。(4)为了使价格和性能都比较合理,处理机数目存在一个极大值,这个值主要依赖于机器的系统结构、基本技术(尤
12、其是通信技术)和具体的应用问题。,在并行处理机和多处理机系统中,采用局部Cache会引起Cache与共享存储器之间的一致性问题。存储系统行为的两个不同方面What: 读操作得到的是什么值When: 什么时候才能将已写入的值返回给读操作出现不一致性问题的原因有三个:共享可写的数据、进程迁移、I/O传输,9.3 多处理机的Cache一致性,1.写共享数据引起的不一致性使用多个局部Cache时,可能发生Cache不一致性问题:当P1把X的值写为X之后,如果P1采用写通过方式,内存中的内容也变为X,但是P2处理机Cache中的内容还是X。 如果P1采用写回策法,内存中的内容还是X,当P2处理机要读X时
13、,读到的是X而不是X。,9.3.1 问题由来,2.进程迁移引起的数据不一致性P1和P2中都有共享数据X的拷贝,P2修改了X,并采用写通过方式,所以内存中的X修改成了X。如果该进程迁移到P1上,P1的Cache中仍然是X。P1中有共享数据X的拷贝,而P2中没有该共享数据,P1进程对X进行了修改,如果该进程迁移到了P2上,P2运行时从内存中读到是X。,3.I/O造成数据不一致性如果P1和P2在各自的局部Cache中都有X的拷贝,当I/O将一个新数据X写入存储器时就导致存储器和Cache的数据不一致。如果两个局部Cache中都有X的拷贝,并采用写回方式,当P1把X修改成X之后;输出部件读X,存储器把
14、X传给输出部件一种解决I/O操作引起数据不一致性的方法是把I/O处理机分别连接到各自的局部Cache上。,有两类解决Cache不一致性问题的协议:在总线互连的多处理机系统中,通常采用监听协议。在其他多处理机系统中,通常采用基于目录协议。,9.3.2 监听协议,1.两种监听协议使用监听协议,有两种方法:方法一:写无效(Write Invalidate)策略,在本地Cache的数据块修改时使远程数据块都无效。方法二:写更新(Write Update)策略,在本地Cache数据块修改时通过总线把新的数据块广播给含该块的所有其他Cache采用写无效或写更新策略与Cache采用写回方式(Write Ba
15、ck)还是写通过方式(Write Through)无关。如果Cache采用的写通过方式,在使远程数据块无效或更新其他Cache的同时,还要同时修改共享存储器中的内容。,Cache一致性协议 在多个处理器中用来维护一致性的协议。关键:跟踪记录共享数据块的状态 两类协议(采用不同的共享数据状态跟踪技术)目录法(directory) 物理存储器中共享数据块的状态及相关信息均被保存在一个称为目录的地方。监听法(snooping)每个Cache除了包含物理存储器中块的数据副本之外,也保存着各个块的共享状态信息。,Cache通常连在共享存储器的总线上,各个Cache控制器通过监听总线来判断它们是否有总线上
16、请求的数据块。 两种更新协议(维持一致性要求)写作废协议 在处理器对某个数据项进行写入之前,保证它拥有对该数据项的唯一的访问权。(作废其他副本),例 在写回Cache、监听总线的情况下,写作废协议的实现,写更新协议 当一个处理器对某数据项进行写入时,通过广播使其他Cache中所有对应于该数据项的副本进行更新。 例 在写回Cache、监听总线的情况下,写更新协议的实现。,写更新和写作废协议性能上的差别主要来自:在对同一个数据进行多次写操作而中间无读操作的情况下,写更新协议需进行多次写广播操作,而写作废协议只需一次作废操作。在对同一Cache块的多个字进行写操作的情况下,写更新协议对于每一个写操作
17、都要进行一次广播,而写作废协议仅在对该块的第一次写时进行作废操作即可。写作废是针对Cache块进行操作,而写更新则是针对字(或字节)进行。考虑从一个处理器A进行写操作后到另一个处理器B能读到该写入数据之间的延迟时间。 写更新协议的延迟时间较小。,小规模多处理机中实现写作废协议的关键利用总线进行作废操作:把要作废的地址放到总线上 (一个放,多个读) 写操作的顺序性:由总线实现 (获取总线控制权的顺序性)写直达Cache:因为所有写的数据同时被写回主存,所以从主存中总可以取到最新的数据值。对于写回Cache,得到数据的最新值会困难一些,因为最新值可能在某个Cache中,也可能在主存中。,监听协议及
18、其实现,在写回法Cache条件下的实现技术Cache的标识(tag)用于实现监听。作废一个块只需将其有效位(valid)置为无效。给每个Cache块加一个特殊的状态位。状态:共享(shared) 至少一个副本,clean专有 (exclusive) 唯一副本,dirty Cache块的拥有者:拥有唯一的Cache块副本的处理器。,在每个结点内嵌入一个Cache状态控制器。 控制器根据来自处理器或总线的请求,改变所选择的数据块的状态。因为每次总线操作均要检查Cache的地址标识,这可能会影响CPU对Cache的访问。可通过下列两种技术之一来减少影响 :复制标志位采用多级包容Cache (许多系统
19、采用),在非总线结构的多处理机系统中,采用基于目录的Cache一致性协议。 1.Cache目录结构目录:一种专用的数据结构,用于记录可以进入Cache的每个数据块的状态、哪些处理器有该块的副本以及是否修改过等信息。Cache目录中存放的内容是大量的指针,用以指明块拷贝的地址,每个目录项还有一个重写位,指明是否有一个Cache允许写入数据。,9.3.3 基于目录的协议,根据Cache目录的存放形式,有集中式和分布式两种。根据目录的结构,目录协议分成三类:全映射(Full-Map)目录:存放全局存储器每个块的有关数据。有限(Limited)目录:每个目录项的指针数固定。链式(Chained)目录:
20、把目录分布到所有Cache中。,目录的使用规则: 当一个CPU对Cache进行写操作时,要根据Cache目录中的内容将所有其他存有相同内容的所有Cache拷贝无效,并置重写位。 在CPU对Cache进行读操作时,如果读命中,则直接读Cache即可。 如果重写位为“0”,则从主存或其他Cache中读入该块,并修改目录。,2.全映射目录目录项中有N个处理机位和一个重写位。处理机位表示相应处理机对应的Cache块的状态。只有一个处理机的重写位为“1”,则该处理机可以对该块进行写操作。Cache的每个数据块有两个状态位。一位表示数据块是否有效,另一位表示有效块是否允许写。,从第二种状态(b)转移至第三
21、种状态(c)的过程如下:(1)Cache3发现包含X单元的块有效,但不允许写(2)Cache3向包含X单元的存储器模块发写请求,并暂停P3工作(3)该存储器模块发无效请求至Cache1和Cache2(4)Cache1和Cache2接到无效请求后,将对应块置为无效态,并发回答信号给存储器模块。(5)存储器模块接到Cache1和Cache2的回答信号后,置重写位为“1”,清除指向Cache1和Cache2的指针,发允许写信号到Cache3。(6)Cache3接到允许写信号,更新Cache状态,激活P3。优点:全映射目录协议的效率比较高。缺点:开销与处理机数目的平方成正比, 不具有扩展性。,3.有限
22、目录当处理机数目为N时,限制目录大小为O(N log2 N)。目录指针需要对N进行二进制编码,每个指针占log2 N位,目录所占的总存储空间与(Nlog2 N)成正比。当Cache1和Cache2中都有X的拷贝时,若P3请求访问X,则必须在在Cache1和Cache2中选择一个使之无效,这种替换过程称为驱逐。有限目录的驱逐需要一种驱逐策略,驱逐策略的好坏对系统的性能具有很大的影响。驱逐策略与Cache替换策略在很多方面是相同的。,4. 链式目录 通过维护一个目录指针链来跟踪共享数据拷贝。当P1读X时,存储器送X到Cache1,同时写Cache1的一个链结束指针CT,在存储器中也保存一个指向Ca
23、che1的指针。当P2读X时,存储器送X给Cache2, 同时给Cache2一个指向Cache1的指针,存储器则保存一个指向Cache2的指针。当某一处理机需要写X时,它必须沿整个目录链发送一个数据无效信息。在收到所有处理机的回答信号之后,存储器才给该处理机写允许权。,当Cache中的数据块需要替换时,要把该Cache从目录链中删除。有如下解决办法: (1)把Cachei+1的指针指向Cachei-1。在Cachei中存放新数据块。 (2)使Cachei及在链中位于其后的所有Cache中的单元X无效。 (3)使用双向链。在替换时不再需要遍历整个链。但指针增加了一倍,一致性协议也更加复杂。,优点
24、:不限制共享数据块的拷贝数目,又保持了可扩展性。指针的长度以处理机数目的对数关系增长,Cache的每个数据块的指针数目与处理机数目无关。缺点:链式目录的复杂程度超过了前两种目录。,9.4 大规模并行处理机,多处理机系统主要有四大类:(1)多向量处理机系统:如CRAY YMP-90,NEC SX-3和FUJITSU VP-2000(2)SMP(Symmetry MultiProcessors)对称多处理机 SMP(Shared Memory mulptiProcessors)共享存储多处理机 如SGI Challenge、Sun SparcCenter 2000(3)MPP(massively
25、parallel processing)大规模并行处理机 如Intel Paragon,CM-5,Cray T3D(4)Cluster 机群系统(NOW或COM),1. 科学计算中的重大课题要求提供3T性能:(1) 1Teraflops计算能力(2) 1Terabyte主存储器(3) 1Terabyte/s 输入输出频带宽度科学计算中的重大课题:全球气候预报, 基因工程 ,飞行动力学 ,海洋环流, 流体动力学, 超导建模, 半导体建模, 量子染色动力学, 视觉,证券指数计算,电力安全评估,建筑工程抗震性评估 ,核能开发利用,汽车碰撞 等领域。,2. 采用的关键技术:VLSI, 可扩展技术, 共
26、享虚拟存储技术虚拟共享存储器(Shared Virtual Memory)也称为共享分布存储器(Distributed Shared Memory);物理上分布存储器,逻辑上共享的存储器。虚拟共享存储器的优点:编程容易, 系统结构灵活可扩充性好, 有较好的软件移植性与消息传递方式相比,程序运行效率高,主要原因:,(1)数据块缓存在本地, 可以多次使用(2)通信时间分散,提高了并行性(3)扩大存储空间,减少换页操作虚拟共享存储器实现途径:(1)硬件实现, 利用Cache,需要增加专用硬件(2)操作系统和库实现,通过虚拟存储机制取得共享和一致性。在松耦合的分布存储多处理机上,不需要增加任何硬件(3
27、)编译实现,自动将共享访问转换成同步和一致原语。大多数系统采用途径(1)和(2),或这两种途径结合实现,3. 同步MIMD机器SIMD与MIMD的优点结合在一起。CM-5同时支持SIMD与MIMD两种并行计算方式。数据并行可以采用SIMD、多SIMD或同步MIMD模式。32到16384个处理器结点,每个结点有一个SPARC处理机,32MB存储器,64位浮点和整数操作,128Mflops向量处理部件,三个网络:数据网络提供点对点通信。控制网络提供广播、同步、扫描和系统管理功能。诊断网络从后台访问所有系统硬件,测试系统完整性,检测和隔离错误。数据网络和控制网络有很好的可扩展性。可以划分成一个或多个
28、分区供用户使用每个分区一台控制处理机,一组处理结点,数据和控制网络的专用部分。,4. CM-5网络结构数据网络采用胖树型网,数据处理结点、控制处理机和I/O通道都位于胖树的叶子上。利用胖树的层次结构特性,可以划分一棵子树给一个用户。采用4元胖树实现,每个内部开关结点由n个寻径器芯片组成。每个寻径器与4个子芯片和2或4个父芯片相连。可以分配不同的子树处理不同的作业,子树的大小可以任意。每台处理机与数据网络有两条连接通路。,5. 控制处理机控制处理机由CPU、存储器、本地磁盘、网络接口、以太网组成。它相当于一台标准工作站。网络接口通过控制网络和数据网络使处理机与系统的其它部分相连。控制处理机专门执
29、行管理功能,不需要高性能的运算部件。每台控制处理机都能够运行操作系统,负责并行处理资源的管理。一部分控制处理机管理用户区的计算资源,其它管理I/O资源。,6.处理结点通过控制网络和数据网络将结点与系统的其它部分相连。每个向量部件有一个流水ALU和64个64位的寄存器。每条向量指令可传送给一个向量部件、或一对向量部件、或同时广播给所有4个向量部件。标量处理机负责地址转换和循环控制,向量处理部件的操作与标量处理部件并行执行。16384个处理结点的总峰值速度为:21427221 Mflops=2Tflops,9.5 对称多处理机,对称多处理机 (Symmetry MultiProcessors) 共
30、享存储多处理机 (Shared Memory mulptiProcessors),有三种模型:1. UMA多处理机均匀存储器存取模型 (Uniform Memory Access), 存储器被所有处理机均匀共享所有处理机对所有存储单元具有相同的存取时间, 每台处理机有局部Cache外围设备可以共享,2. NUMA多处理机非均匀存储器存取 (Nonuniform Memory Access)模型存储器访问时间随存储单元的位置不同而变化。共享存储器在物理上是分布在所有处理机中的本地存储器。所有局部存储器地址空间的集合就组成了全局地址空间。处理机访问本地存储器比较快,访问属于另一台处理机的远程存储器
31、则比较慢,因为通过互连网络会产生附加的时间延迟。,只有Cache的存储器结构 (Cache-Only Memory Architecture) 模型;COMA是一种只用Cache的多处理机系统实际上,COMA模型是NUMA模型的一种特例,后者分布存储器换成了Cache在每个处理机结点上没有主存储器,全部Cache组成了全局虚拟地址空间远程Cache访问通过分布Cache目录进行共享存储系统拥有统一的寻址空间,程序员不必参与数据分配和传输。,3. COMA多处理机,1996年SGI公司的Origin 2000服务器,首先采用S2MP并行体系结构S2MP实际上是NUMA多处理机系统,采用分布存储器
32、,并通过cache对系统的共享和局部数据都进行缓存。从用户编程角度看,S2MP是一种共享存储的多处理机系统。S2MP的主要特点:(1)编程容易,使用方便。(2)可扩展性好,增加处理器数目容易。(3)通信开销小,可开发程序的细粒度并行性,4. S2MP结构,S2MP的关键技术:(1)高速无阻塞互连网络,增加多处理机系统的通信带宽。(2)分布式存储器,随处理器数目的增加自动增加存储器带宽。(3)引入cache,降低访存时延。(4)所有存储器统一编址,提供单一的大容量地址空间。(5)每个处理器结点上有一个目录存储器,维护cache一致性。,双核处理技术的介绍,什么是双核处理器?简而言之,双核处理器即
33、是基于单个半导体的一个处理器上拥有两个一样功能的处理器核心。换句话说,将两个物理处理器核心整合入一个核中。,双核的优点,提高处理器性能因为处理器实际性能是处理器在每个时钟周期内所能处理指令数的总量,因此增加一个内核,处理器每个时钟周期内可执行的单元数将增加一倍。但只有充分利用两个内核中的所有可执行单元,才能使系统达到最大性能。增强处理器功能双处理器架构的引入和微软Longhorn操作系统将在很大程度上促进虚拟技术的发展。虚拟化技术可以让一台物理计算机虚拟出若干个虚拟的系统,这些虚拟系统能使用同样的PC资源独立工作。换句话说,这些技术允许用户在他们的PC上使用超过一个操作系统,以便每个操作系统解
34、决特定的运算任务。,双核的由来如果将处理器的运行频率比做高速公路的最高限速,前端总线则是这条道路容纳的车道数,在两者都不能再进一步时,还有什么办法可以解决交通堵塞呢?修建一条同样的道路显然就可以解决问题了,这与双核的工作方式本质上是一样的道理。事实上,在服务器领域,多路处理器系统已经不是新鲜事了;随着工艺的进步,将双路系统集成到处理器内部也是可以实现的。,双核处理器的发展,高端的RISC处理器中早在上个世纪末,HP和IBM就已经提出双核处理器的可行性设计,并成功推出了拥有双内核的HP PA8800和IBM Power4处理器。 Sun也在2003年10月微处理器论坛中,发表双核心UltraSP
35、ARC处理器 x86平台 AMD和Intel在2004年公布了各自的双核计划,AMD率先在服务器和工作站领域引入双核架构,而Intel则是率先在台式机领域引入双核技术!,具体双核处理结构的介绍,AMD和Intel不同的体系结构,”双核” 两个处理器核心直接连接到同一个内核上,核心之间以芯片速度通信 Intel”双芯” 采用多个核心共享前端总线的方式,把两个独立的内核封装在一起 。,对Intel和AMD双核处理器技术分析及比较,AMD的双核是把两颗内核Core(s)集成在一块晶片硅上,而Intel的双核其实是用电路将两个独立的Packet(s)缝合在一起。Intel的双核架构会遇到多个内核争用总
36、线资源的瓶颈问题。AMD直连架构(也就是通过超传输技术让CPU内核直接跟外部I/O相连,不通过前端总线)和集成内存控制器技术,使得每个内核都自己的高速缓存可资遣用,都有自己的专用车道直通I/O,没有资源争抢的问题,实现双核和多核更容易。,从上面看起来,Intel的双核心处理器在技术规格上落后于AMD双核心处理器 在价格上,Intel双核心处理器的价格远远低于AMD双核心处理器的价格,因此极具市场竞争力!,1. 机群系统的组成机群系统是利用高速网络将一组高性能工作站或高档PC机连接起来,在并行程序设计以及可视化人机交互集成开发环境支持下,统一调度,协调处理,实现高效并行处理的计算机系统。Clus
37、ter、NOW、COW从结构和结点间的通信方式来看,属于分布存储系统。,9.6 机群系统,机群系统中的主机和网络可以是同构的,也可以是异构的。微处理机技术、网络技术和并行编程环境的发展使得机群系统这一新的并行处理系统形式正成为当前研究的热点。(1)微处理器的性能不断提高。(2)网络技术的进步使得松散耦合系统的通信瓶颈逐步得到缓解。(3)并行编程环境的开发使得新编并行程序或改写串行程序更为容易。,2. 机群系统的特点 (1)系统开发周期短 (2)用户投资风险小 (3)系统价格低 (4)节约系统资源 UC Berkeley计算机系100多台工作站的使用情况调查表明,一般单机系统的使用率不到10%,
38、而机群系统中的资源利用率可达到80%左右。 (5)系统扩展性好 (6)用户编程方便,3. 机群系统的关键技术(1)高效的通信系统在用户空间实现通信协议精简通信协议Active Message通信机制(2)并行程序设计环境PVM(Parallel Virtual Machine)开始于1989年夏天,美国橡树岭国家实验室(ORNL);是一套并行计算工具软件,支持多用户及多任务运行;支持多种结构的计算机,工作站、并行机以及向量机等;,传统通信协议 (TCP/IP),10M Ethernet,100M Ethernet,Myrinet,硬件开销,软件开销,通信开销分析,软件开销成为影响通信系统性能的
39、瓶颈,支持C、C+和Fortran语言;自由软件,使用非常广泛;编程模型可以是SPMD或MPMD;具有容错功能,当发现一个结点出故障时,自动将之删除MPI(Message Passing Interface)在1992年11月至1994年元月产生。 能用于大多数并行计算机、计算机机群和异构网络环境,支持C和Fortran两种语言,编程模型采用SPMDExpress美国Parasoft公司推出;能在不同的硬件环境上运行;支持C和Fortran两种程序设计语言。,Linda美国Yale大学与科学计算协会共同研制;通过函数扩充现并行程序的设计;支持C-Linda、Fortran-Linda等(3)并
40、行程序设计语言在多处理机系统中,必须用并行程序设计语言编写程序。或者把已经用串行语言编写的程序转换成并行语言程序之后,才能在多处理机系统上运行。,把传统串行语言程序转换成并行语言程序的过程称为并行编译。有两种并行编译方式:全自动并行编译与半自动并行编译:全自动并行编译是方向,但实现起来很困难。半自动并行编译又称为交互式并行编译。程序员通过多次与机器对话,找到串行程序中可以并行执行的部分。并行编译器生成代码的形式有多种: 并行高级语言程序、并行中间语言程序、并行目标语言程序,(4) 负载平衡技术一个大任务可分解为多个子任务,把多个子任务分配到各个处理结点上并行执行的技术称为负载平衡技术对于由异构
41、处理结点构成的并行系统,相同的负载在各结点上的运行时间可能不同。因此,准确的负载定义应是负载量与结点处理能力的比值负载平衡技术的核心就是调度算法,即将各个任务比较均衡地分布到不同的处理结点上并行计算,从而使各结点的利用率达到最大。,负载平衡技术分为静态和动态两大类:静态方法是在编译时针对用户程序的各种信息(任务的计算量和通信关系等)及并行系统本身的状况(网络结构、各结点计算能力等)对用户程序中的并行任务作出静态分配决策。动态方法是在程序运行过程中实现负载平衡的。它通过分析并行系统的实时负载信息,动态地将任务在各处理机之间进行分配和调整,以消除系统中负载分布的不均匀性。动态负载平衡的算法简单,实
42、时控制,但增加了系统的额外开销。,(5)并行程序调试技术用并行程序设计语言编写程序,比用串行程序设计语言更容易出错,因此,在多处理机系统中,用并行程序设计语言编写程序更加依赖于并行调试工具。并行程序调试的主要困难: 并行程序的执行过程不能重现。,(6)可靠性技术在多处理机上运行的程序通常比较大,程序执行时间很长(几十个小时或几十天)。如果在程序执行过程中出现偶然故障(如电源掉电、磁盘满、某一台处理机故障等),则整个运算过程要从头开始。定时设置检查点,保存现场信息。当出现故障时,只要回复到上一个检查点,不必从头开始执行。,曙光5000A,曙光5000A的第一套超大型系统将于08年11月份落户“上
43、海超级计算中心”,该系统的计算节点机采用四路四核AMD Barcelona (主频2.0GHz)处理器,每个节点64GB内存,胖节点机采用八路四核AMD Barcelona(主频 2.0GHz)处理器,每个节点128GB内存,整个系统由1650个节点组成庞大机群,共有6000颗CPU与100T海量内存,其理论浮点峰值为每秒230万亿次,采用20GB,延迟小于1.3us的Infiniband高速网络进行互联,采用了WCCS + SuSe Linux 双操作系统。,从曙光针对5000A的宣传中,我们经常会看到一个比较陌生的词汇HPP (Hyper Parallel ProCESsing)体系架构。其实目前高性能计算机主流体系系统并没有HPP这个提法,而是有MPP,有MSP等等,曙光把5000体系结构叫HPP,主要它在体系结构上结合了机群体系结构和MPP体系结构两类结构的优点。它主流的结构是机群,结点机是四路四核的,所以在机群应用角度来说既能够用很大的机群,同时还能覆盖一大块基于UMA架构的,两个结合起来起一个名字叫HPP。,本章重点:1.多处理机结构及特点2.多处理机通信模型3.MPP、SMP和Cluster的特点,