多处理机技术
① 多处理机技术的起源在超大型计算中,并行计算机有着较大范围的应用,随着科技的发展,应用范围的扩大,对计算机的高性能、低价格有了更高的要求,并行处理已经成为了现代计算机的关键技术,分布式并行处理能够满足基于计算机网络的快速计算的需要,因此,多处理系统的关键技术成为了问题的核心。硬件上从存储结构以及软件上从多线程,这两个方面讨论了对多处理机的支持。②多处理机技术的定义两个或两个以上处理机,通过高速互联网络连接起来,在统一的操作系统管理下,实现指令以上级并行。按照Flynn分类法,多处理机系统属于MIMD计算机。多处理系统由多个独立的处理机组成,每个处理机能够独立执行自己的程序
ps:多指令流多数据流MIMD是用于实现并行性的技术,MIMD计算机具有多个异步和独立工作的处理器,在任何时钟周期内不同的处理器可以在不同的数据片段上执行不同的指令,也即是同时执行多个指令流,而这些指令流分别对不同数据流及进行操作
多处理机使属于多指令流多数据流的系统,与单指令流多数据流的阵列处理机相比,差别主要来源于并行性的等级不同。多处理机则实现的是更高一级的作业或任务间的并行,是开发并行中的并发行,所以在硬件结构上,它的多个处理机要用多个指令部件分别控制,通过机间互联网络实现异步通信。在算法上,不限于向量、数组处理,还要挖掘和实现更多通用算法中隐含的并行性,在系统管理上,要更多地依靠操作系统等软件手段有效地解决资源分配和管理,特别是任务分配、处理机调度、进程的同步和通信等问题
ps:存储器操作并行-并行存储系统、相联处理机处理器操作步骤并行-流水线处理机处理器操作并行-阵列处理机任务、作业并行-多处理机
ps:计算机体系结构中并行性等级:(1)字串位串:同时只对一个字的一位进行处理。这是最基本的串处理方式,不存在并行性。(2)字串位并:同时对一个字的全部位进行处理,不同字之间是串行的。这里已开始出现并行性。(3)字并位串:同时对许多字的一位进行处理。这种方式有较高的并行性。(4)全并行:同时对许多字的全部位进行处理。这是最高一级的并行性。从执行程序的角度看,并行性等级从低到高可分为:(1)指令内部并行:一条指令执行时各微操作之间并行。(2)指令级并行:并行执行两条或多条指令。(3)任务级或过程级并行:并行执行两个以上过程或任务(程序段)。(4)作业或程序级并行:并行执行两个以上作业或程序。
③多处理机的目的使用多处理机有两个不同的目的,一是想通过多台处理机对多个作业、任务进行并行执行来提高求解大而复杂问题的速度,从而提高系统的整体性能,另一个使用冗余的多个处理机,通过重新组织来提高系统的可靠性、适应性和可用性。多处理机可以有同构型、异构型、分布型三种
ps:并行处理机:又称SIMD计算机,是多个PU按照一定方式互联,在同一个CU控制下,对各自的数据完成统称同一条指令规定的操作。它是单一控制部件控制下的多个处理单元构成的阵列,所以又称阵列处理机。多处理机是由多台独立的处理机组成的系统④多处理机的特点(1)结构灵活性并行处理机:专用的,就为了同一条指令进行操作。PE(处理单元)数很多,固定有限的通信多处理机:通用,可以执行多个不同指令。高速灵活的通信(2)程序并行性并行处理机的并行性存在于指令内部,识别比较容易多处理机的并行性存在于指令外部,在多个任务之家,识别难度较大(3)并行任务派生并行处理机把同种操作集中在一起,由指令直接启动各PE同时工作多处理机用专门的指令来表示并发关系,一个任务开始执行时能够派生出与它并行执行的另一些任务,如果任务数多于处理机数,多余的任务进入排队器等待。(4)进程同步并行处理机仅一个CU,自然是同步的多处理机执行不同的指令,工作进度不会也不必保持相同,先做完的要停下来等待,有数据相关和控制相关也要停下来等待,要采取特殊的同步措施来保持程序所要求的正确顺序(5)资源分配和进程调度并行处理机的PE是固定的,采用屏蔽手段改变实际参加操作的PE数目多处理机执行并发任务,需用处理机的数目不固定,各个处理机进入或退出任务的时刻不相同,所需共享资源的品种、数量又随时变化⑤技术问题在多处理上,要研究如何将一个大的作业或者任务进行分割,合理的选择任务的粒度大小和各任务粒度大小的均匀性,使并行度高,又要让额外的派生、汇合、通信等辅助开销小,同样要涉及并行算法、并行语言的研究,设计多处理机性能效率的分析。
ps: 任务粒度的大小会显著影响多处理机的性能和效率
多处理机执行并发任务所需的处理机的机数使不固定的,各处理机进入或者退出任务的时间及所需资源的变化是比较大的,必须研究如何较好的解决动态的资源分配和任务调度,让各处理机的负荷尽可能均衡,并要防止死锁
在单处理机系统中,这种并行性升到某一级别后(如任务级或者过程级别并行)需要通过软件(如操作系统中的进程管理、作业管理)来实现,在多处理机系统中,已经具备完成各项任务或者作业的处理机,其并行性是由硬件实现的。在一个计算机系统中,可以采用多种并行性措施。⑥硬件构型紧耦合多处理机是通过共享主存实现处理机间通信的,其通信速率受限于主存频宽,各处理机与主存经互联网络连接,处理机数受限于互联网络带宽及各处理机访主存冲突的概率。为了减少访主存冲突,主存采用模m多体交叉存取。模数m越大,发生冲突的概率越低,但要解决好数据在各存储器模块中的分配和定位,各处理机可自带小容量局部存储器存放该处理机运行进行的核心代码和常用系统表格,进一步减少访主存冲突。ps:模m多体交叉存取:并行主存系统的两个组成方式之一,计算机中大容量的主存,可以由多个存储体组成,每个体都具有自己的读写线路、地址寄存器和数据寄存器,称为“存储模块”,这种多模块存储器可以实现重叠与交叉存取,如果在M各模块上交叉编址,则称为模M交叉编址。设存储器包括M个模块,每个模块的容量为L,各存储模块进行低位交叉编址,连续的地址分布在相邻的模块中多体交叉模块的访问方式:①同时访问:所有模块同时启动一次存储周期,相对各自的数据寄存器并行地读出或者写入信息②交叉访问:M个模块按照一定的顺序轮流启动各自的访问周期,启动两个相邻模块的最小时间间隔等于单模块访问后期的1/M
⑦机间互联形式多处理机机间互联的形式是决定多处理机性能的一个重要因素,在满足高通信速率、低成本的条件下,互连还应灵活多样,以实现各种复杂的乃至不规则的互连而不发生冲突1)总线形式多个处理机、存储器模块和外围设备通过接口与共用总线相连,采用分时或多路转接技术传送。总线形式具有结构简单、成本低、可扩充性的优点,但是性能和可靠性严重受到物理因素的制约。总线形式需要使用相应的总线控制机构和总线仲裁算法,来解决总线的访问冲突。有两种办法可以提高总线形式的系统效率,一是用优质高频同轴电缆来提高总线的传输速率。二是用多总线方式来减少访总线的冲突概率。为解决多个处理机同时访问共用总线的冲突,研制了有静态优先级、固定时间片、动态优先级、先来先服务等多种总线仲裁算法。2)环形互连形式为保持总线式互连的优点,同时又能客服其严重受物理因素制约的不足,考虑构造一种逻辑总线,让各台处理机之间点点相连成环状,称环形互连。在这种多处理机上,信息的传递过程是由发送进程将信息送到环上,经环形网络不断向下一台处理机传递,直到此信息又回到发送者为止。环形互连是点点连接,不是总线式连接,其物理参数容易得到控制,适合于有高通信带宽的光纤通信,缺点是信息在每个接口都会有一个单位的传输延迟3)交叉开关形式用纵横开关阵列将横向的处理机P及I/O通道与纵向的存储器模块M连接起来。n个处理机和i个I/O设备都能分到总线与m各存储器模块之一连通并行地通信,交叉开关按空间分配机制,任何处理机或I/O通道交换信息时,只在交叉开关处有一个单位的传输延迟,适合处理机机数较多的情形,具有可扩充性好、系统流量大的特点4)多端口存储器形式每个存储器模块有多个访问端口,将分布于交叉开关矩阵中的控制、转移和优先级仲裁逻辑分别移到相应存储器模块的接口中,就构成了多端口存储器形式的结构。多端口存储器形式的中心是多端口存储器模块,多个存储器模块的相应端口连接在一起,每一个端口负责处理一个处理机P或I/O通道的访存请求,每个存储器模块按照对它的各个端口指定的优先级来分解对它的访问冲突。5)蠕虫穿洞网络机间采用小容量缓冲存储器,实现消息分组寻径存储转发之用,在蠕虫网络中,将消息分组又分割成一系列更小的小组,同一分组中所有小组以异步流水方式按序不间断地传送,同一分组中的所有小组,只有头部的小组知道其所在整个分组传送的目的地,用硬件方式进行传送的应答6)开关枢纽结构形式把互连结构的开关设置在各处理机或接口内部,组成分布式结构,则称为开关枢纽结构形式。所用的开关枢纽数量少,每个开关枢纽的端口数不多,能以较短的路径把数量很多的处理机连接起来,实现快速而灵活的通信,不改变模块本身的结构,就可使系统规模得到任意扩充。这种模块式多处理机可重构性强,使系统具有较强的通用性。
⑧多处理机的并行性多处理机并行性存在于指令内部,也存在于指令外部,因此,必须利用算法、程序设计语言、编译、操作系统及指令、硬件等多种途径来开拓,多处理机低层次的并行可以通过向量化实现,高层次的任务和作业的并行主要靠算法、编译、语言及操作系统来开发1)并行算法算法规定了求解某一特定问题时的有穷的运算处理步骤。并行算法指可以同时执行的多个进程的集合,各进程可以相互作用、协调和并发操作。多处理机并行算法的研究思路:算法取决于计算机的结构和题目,是提高多处理机并行性能的关键。研究并行算法的一种思路是将大的程序分解成可由足够多的处理机并行处理的并行过程。每个过程被看成是一个结点,将过程之间的关联关系用结点组成的树来描述,增大树中每一层的结点数,即增大各处理机可并行运行的过程树,降低树的高度,即降低多处理机的运算级数。在多处理机上,程序的并行要求要设计处好的编译程序,能将高级语言源程序尽可能编译出并行度高的目标程序,而不是生成指令间有着大量相关的串行程序2)程序段间的相关性分析(程序并行性分析)任务间能否并行,除了算法很大程度还取决于程序的结构,程序间的并行性是指多个程序段、进程、任务之间是否并行,依赖于程序的结构。程序段间的数据关联是限制程序并行的重要因素,数据相关可以存在指令之间,也可以存在于程序段之间。若有先写后读的数据相关,可以串行,不能并行若有先读后写的数据反相关,可以串行,不能交换串行,可以并行执行,但是必须保证其写入共享主存时的先读后写的次序若先写后写的数据输出相关,可以串行,在保证对相关单元写入的先后次序的前提下,可以并行,但是不能交换串行若同时有先写后读和先读后写的两种相关,以交换数据为目的的时候,则必须是并行,并要求读与写完全同步,不允许顺序串行和交换串行若没有任何相关,或仅有源数据相同时,可以并行,顺序串行或交换串行。ps:交换串行的目的是,如果程序段之间不能并行,也可以让空闲的处理机提前去执行后面的程序段,这可以从宏观上增强各个程序段之间的并行度,加快作业完成的速度,改进系统的运行效率。
⑨性能任务粒度与系统性能 衡量任务粒度大小的一个依据是程序用于有效计算的执行时间E与处理机间的通信等辅助开销时间C的比值。只有E/C的比值较大时,开发并行性才能得到好处,如果最大并行度会带来最大的通信等辅助开销,倒不如增大任务粒度,降低并行度,来较少辅助开销,因此,为获得最佳的性能,必须对并行性和额外开销进行综合平衡N =2且计算与通信不能重叠 一个程序在双处理机上运行,如果将全部任务都分配给一台处理机而让另一台处理机空闲,虽然没有并行,却不需要机间通信,程序总的运行时间是R = T * E,如果将其中I个任务分配给一台处理机,将余下的T-I个任务分配给另一条处理机,则 R = E* max{T - I,I} + C*(T-I)I2.N > 2且计算与通信不能重叠 若将IK个任务分配给第K台处理机,则R = E *MAX{IK}+C/2(T^2-)究竟是采用平均分配还是集中分配,可以通过计算这两个任务分配策略的总运行时间差来决定,为简单,设T是N的整数倍,则平均分配与集中分配的总运行时间差为(ET/N+CT^2/2-CT^2/2N)-ET,若令其等于0,可得E/C=T/2,说明当E/C>T/2时,采用平均分配策略,当E/C<T/2时,因为额外开销C较大,采用集中分配策略,否则并行执行的总运行时间反而延长。进一步,可求得采用平均分配时,并行系统的加速比时SP=集中分配的R/平均分配的R,得到一个重要的结论是,如果E/C>>T*(n-1)/2,加速比可接近于N,即当任务数T及处理机数N均较少,E/C较大时,并行系统的加速比是随处理机机数N的增加而接近线性的提高,当机数N增大到较大后,SP趋近于2E/(CT),只与E/C及任务数T有关,而与机数N基本无关
机间通信可以多路同时进行:现假设每台处理机均有通信链路与其他处理机通信,则通信操作就可以与任务本身的执行重叠进行,任何时刻,由于一台处理机只能与另一台处理机通信,即使链路数位N的平方,至多也只有N台处理机在并发通信,因此这种系统的总运行时间位R = E * max....它和机间通信只能顺次串行的差别在于通信辅助开销随N增大在减少。增大并行度和增大通信链路带宽均可以缩短总运行时间,任务粒度相应可以取得小些,不过通信链路数的增大及通信链路带宽的提高,并不能降低通信之外的其他辅助开销,同时将会显著提高系统的造价,因此,并行度大小主要取决于系统的性能价格比,所采用的机间通信技术、互连结构以及为降低其他辅助开销所采取的措施。
总之:随着多处理机的机数增加,解题时用于计算的执行时间会减少,但调度、共享资源的竞争、同步、机间通信等辅助开销会增大,而且增大的量可能比机数的线性增加还大,在某一特定的系统上,程序的执行时间和通信等额外开销时间的比值越大,对计算过程越有利,此时采用细粒度可以提高处理的并行度,但不能单纯靠增大处理机机数来制造出高性能的多处理机,设计者需要考虑如何设计出一个使E/C值尽可能高,价格合理,机数多,又能高效使用的多处理机,
⑩操作系统包含并行性的程序在多处理机上运行时,需要有相应的控制机构来实现管理功能,主要时通过多处理机操作系统,用软件手段来实现的。1)处理机的分配和进程调度在多处理机中,进程的分配和调度是否合理将直接影响到程序的并行性能,在进程分配时,除了必须了解每一台处理机的能力,一边把适合它处理的任务分配给它之外,还要了解系统资源的使用状态,使处理机、输入输出负荷均衡。2)进程间的同步在多处理机中,多个进程并行执行,有可能若干进程要求同时访问某一共享的资源,所以要解决在同一处理机上程序并发执行的同步问题,还要解决好不同处理机程序并发执行时的同步问题3)进程间的通信相互合作的进程运行于不同的处理机上,进程间的通信会在多个处理机之间进行,松耦合多处理机中,进程通信还可能要通过长距离的信道或网络进行4)存储系统的管理在多处理机中每个处理机都有自己的存储器,也可以供多个处理机共享的共用存储器,数据的一致性是在共享主存的数据在多个局部存储器中出现时,如何保证他们的一致性5)文件系统的管理在多处理机中,文件系统的管理根据情况可以有3钟不同的方式,一台处理机的用户不必了解文件的物理位置就可以使用文件,不过这对文件的访问速度及文件的保护提出更高的要求。6)系统的重组当系统中某处理机或设备发生故障时,能迅速进行重组并恢复运行,使故障弱化
多处理系统由3类1)主从型操作系统只在一个指定的主处理机上运行,采用集中控制,优点是:硬件比较简单,缺点是系统容易瘫痪,如果主处理机工作负荷重,会影响到整个系统的性能,适合于工作负荷固定,异构型多处理机2)单独管理型将控制功能分散到多台处理机上,由他们共同来完成。每台处理机都有一个独立的管理程序在运行,某个处理机发生故障,不会引起整个系统的瘫痪,但是实现比较复杂,进程调度的复杂性和开销加大,若某台处理机发生故障,则难以修复,各处理机负荷难以均衡,适合于地理位置分散的松耦合型多处理机3)浮动管理控制型操作系统的管理程序可以在处理机之间浮动它可以使各种资源比较好的负荷均衡,在硬件结构和可靠性上有分布控制的优点,在操作系统的复杂性和经济型上,它接近于主从型的但是操作系统的设计最困难,适合于紧耦合的同构型多处理机