更新时间:2022-11-24 21:07
并行处理计算机系统(parallel computer system)是指同时执行多个任务或多条指令或同时对多个数据项进行处理的计算机系统。早期的计算机是串行逐位处理的,称为串行计算机。随着计算机技术的发展,现代计算机均具有不同程度的并行性。
parallel computer system
并行处理计算机
并行处理计算机主要指以下两种类型的计算机:①能同时执行多条指令或同时处理多个数据项的单中央处理器计算机;②多处理机系统。
并行处理计算机的结构特点
随着电子器件的发展 ,计算机的处理能力有显著提高。但是,仅仅依靠器件的进展而达到的速度提高,远不能满足现代科学、技术、工程和其他许多领域对高速运算能力的需要。这就要求人们改进计算机结构,采用各种并行处理技术,以便大幅度地提高处理速度和解题能力。
并行处理计算机的结构特点主要表现在两个方面:①在单处理机内广泛采用各种并行措施;②由单处理机发展成各种不同耦合度的多处理机系统。并行处理的主要目的是提高系统的处理能力。有些类型的并行处理计算机系统(如多处理机系统)还可以提高系统的可靠性。由于器件的发展,并行处理计算机系统具有较好的性能价格比,而且还有进一步提高的趋势。
并行处理计算机的结构主要有流水线方式 、多功能部件方式 、阵列方式、多处理机方式和数据流方式。
将指令的执行过程分解为若干段,每段进行一部分处理。一条指令顺序流过所有段即执行完毕获得结果。当本条指令在本段已被处理完毕而进入下段时,下条指令即可流入本段。因此,在整个流水线上可以同时处理若干条指令。若各段的执行时间均为一个时钟节拍,则在正常情况下每拍可以输出一个结果,即完成一条指令。这就可加快处理机的速度。
程序中相邻指令的相关性会影响流水线处理机效率的发挥。例如,条件转移指令在上条指令执行完以前,有时不能确定后继指令;又如本条指令需要用上条指令的结果作为操作数等,都将中断流水线而使效率下降。
一台处理机具有多个功能部件。各功能部件可以并行地处理数据,因而处理机可以使用不同的功能部件并行执行几条指令,以提高处理速度。如有的计算机具有浮点加、定点加、浮点乘、浮点除、逻辑操作、移位等多个对不同数据进行处理的功能部件。一些流水线向量机也含有多个功能部件。程序在执行中因对各部件的需求不平衡,各功能部件不可能全部处于忙碌状态。指令间的相关性也影响机器的效率,如本条指令所需的功能部件尚在执行其他指令;又如本条指令所需操作数恰为尚未执行完毕的指令的结果等。
一台处理机由多个相同的处理部件和一个统一的控制器组成。这个控制器解释指令并传送操作命令至全部处理部件。各处理部件按照控制器的命令同时进行完全相同的操作。阵列处理机又可分为浮点阵列处理机和位片式阵列处理机两类。
ILLIAC-Ⅳ机属于浮点阵列处理机,包括64个完全相同的处理部件(PU)和一个公共的控制部件(CU)。每个处理部件包括一个能执行64位浮点操作的处理单元(PE)和一个容量为2k字的存储器(PM)。64个处理部件排列成8×8阵列。每个处理部件与四邻处理部件均有直接数据通路。
多处理机系统能提高系统的性能和可靠性。它是多指令流多数据流处理机。根据系统中各处理机的耦合程度,多处理机系统可分为两类。①非直接耦合的多处理机系统:系统中各处理机均有主存储器。各处理机由各自的操作系统进行管理,它们通过共享的输入输出系统进行通信。②直接耦合的多处理机系统:系统中各处理机共享主存储器,并受统一的操作系统管理。多处理机系统一般指直接耦合这一类。
在直接耦合多处理机系统中,实现处理机与存储器、处理机与处理机之间连接的互连网络十分重要。互连网络有三种主要形式。
① 总线结构:总线结构是多处理机系统中最为简单的网络结构。实际的多处理机系统的互连网络,往往是在总线结构的基础上发展起来的(图3)。
② 交叉开关结构:交叉开关由纵横开关阵列组成,将横向的处理机与纵向的存储器模块连接起来(图4)。
③ 多端口存储器结构:把交叉开关结构中的各交叉点上的开关移到相应存储器的接口内部,形成多端口存储器结构。
数据流处理机是受到人们重视的高度并行的处理机。它虽保留了存储程序的做法,但在主要原理上已与诺依曼计算机结构不同。它不按程序计数器指出的指令顺序执行程序,只要所需操作数全部具备,指令即可被执行,亦即程序的执行不是由控制流驱动,而是由数据流驱动。
数据流处理机是以语言为基础的处理机。它使用数据流程序图作为用户语言与计算机结构之间的接口。数据流程序图用能动框表示 。每个能动框有多个域 ,分别存放操作码、操作数和目标地址。数据流程序以能动框集合的方式保存在能动存储器中。当某条指令可以执行时,相应的能动框地址便被送入指令排队器。读取部件则按地址从存储器中取出该能动框,形成操作包,送至操作部件进行处理,产生结果包。修改部件根据结果包的目标地址将结果数据送至规定的能动框作为操作数,并将具备操作数的指令的地址送至指令排队器。指令排队器中的指令均具备执行条件,因而只需增加部件数量或增强部件流水程度 , 就可以高速并行执行。此外,还可将多个指令处理单元连接成数据流多处理机系统,进一步提高处理能力。
并行算法和并行语言
提高并行处理效率的关键之一是并行算法。算法须适应计算机的结构。如果一种算法所表达出来的并行度与计算机的并行度基本一致,便能提高计算机的解题效率。
在向量计算机中,提高并行度的主要问题在于把可并行处理的操作数用向量表示。许多常用的数值计算法,如数列求和、矩阵乘、高斯消元、快速傅里叶变换等,已成功地在向量计算机上实现了并行处理。较为通行的并行语言基本上是FORTRAN语言的扩展。
在多处理机系统中,提高程序并行性的关键,是把任务分解成足够多的可同时操作的进程。在程序语言中,还须扩充能明确表达进程并发性的语句,以便程序运行时能为相应的控制机构提供控制和管理手段,其中包括并行任务的派生、通信和调度。ADA 语言为描述多处理机并行程序结构提供了必要的语句。为适应数据流计算机而出现的若干数据流语言如Id语言和VAL语言已经在试用。 其重要特点是把数组看成是值而不是目标。用数据流语言编写的程序能够自然地表达出最大的运算并行性。
对于并行处理系统的分类,最广泛使用的是根据计算机系统中数据流和指令流的多倍性将计算机系统分为四类:
(1)单指令单数据流计算机系统
单指令单数据流计算机系统,Single Instruction Single Data , SISD计算机系统,在SISD计算机系统中,单一处理器执行单一的指令流以实现对保存在单一可访问存储器内的数据操作。SISD计算机的典型例子就是单处理器系统,在这种计算机系统中没有并行处理方式。
(2)单指令多数据流计算机系统
单指令多数据流计算机系统,Single Instruction Multiple Data , SIMD计算机系统,在SIMD计算机系统中,单一指令可以同步控制多个处理不见,每个处理不见都有一个相关的数据存储器,所以一条指令可以在不同的数据组上完成相同的操作。SIMD计算机
(3)多指令单数据流计算机系统
多指令单数据流计算机系统,Multiple Instruction Single Data , MISD计算机系统可以实现对顺序数据进行多个处理器的操作。每个处理器执行不同的指令序列。在实际系统中还没有完全的MISD计算机出现。
(4)多指令多数据流计算机系统
多指令多数据流计算机系统,Multiple Instruction Multiple Data , MIMD计算机系统,在MIMD计算机系统中,多个处理器并行处理完成不同的指令序列,对不同的数据进行加工操作。MIMD计算机实际上就是多处理器并行系统。在MIMD的组织下,各个处理器是通用的,每个处理器都能处理所有数据并完成相应数据运算的指令。MIMD系统还可以按照各处理器的通信方式进一步进行划分,如果各处理器共享一个存储器,则每个处理器存取共享存储器中的程序和数据,并经由次存储器相互通信。这种结构的系统最普遍的形式就是SMP系统。SMP通过共享总线或其他方式互连实现多个处理器共享单一存储器或存储器组。在SMP存储系统中,存储器接口性能对各个处理单元基本上相同,也就是说,对共享存储的获取事件各个处理单元基本一致。一群独立的处理机或SMP可以由各计算机之间通信链路或其他固定路径,甚至是网络设备进行互连,从而形成机群系统。NUMA系统则对其内部的存储器实现了不同速度的读/写,使得存取时间与处理单元访问的位置相关。
随着计算机技术的发展和硬件成本的下降,设计人员已经越来越多地寻求实现并行的方式,其中,多处理器并行系统能够极大地提高计算机系统的性能。在并行处理系统中,个处理单元可以并行执行,平衡输入的工作负载。目前最普遍采用的并行多处理器组织方式有对称多处理机(SMP)、机群系统(Cluster)以及非均匀存储器(NUMA)三种。SMP采用多个相同或相似的处理器组成,以总线形式或开关阵列互连形成多处理机计算系统,是通常意义上的多处理器计算机。在SMP系统中,最重要的问题就是存储一致性,每个处理器均具有独立的存储即高速缓冲存储器Cache,当某一行数据出现在不同处理器的Cache中时,如果对一个Cache内容进行修改,那么其他Cache以及主存中内容也应得到更新。这一问题及时由Cache一致性协议所解决的。机群系统分是由一组完整的计算机互连形成的,作为统一的计算资源一起进行数据处理,整个机群外部可以看作是一台机群进行处理。NUMA系统通过共享存储器的方式实现多处理机并行工作。NUMA最主要的特点就是系统内某个处理器对存储字存取时间是随存储器字位置而变化。