并行处理计算机系统

来自中文百科专业版
跳转至: 导航搜索

  并行处理计算机系统汉语拼音:Bingxingchul Jisuanji Xitong;英语:parallel computer system),同时执行多个任务或多条指令或同时对多个数据项进行处理的计算机系统。早期的计算机是串行逐位处理的,称为串行计算机。随着计算机技术的发展,现代计算机均具有不同程度的并行性。

类型

  并行处理计算机主要指以下两种类型的计算机:

  ①能同时执行多条指令或同时处理多个数据项的单中央处理器计算机;

  ②多处理机系统。

  随着电子器件的发展,计算机的处理能力有显着提高。但是,仅仅依靠器件的进展而达到的速度提高,远不能满足现代科学、技术、工程和其他许多领域对高速运算能力的需要。这就要求人们改进计算机结构,采用各种并行处理技术,以便大幅度地提高处理速度和解题能力。

结构特点

  并行处理计算机的结构特点主要表现在两个方面:

  ①在单处理机内广泛采用各种并行措施;

  ②由单处理机发展成各种不同耦合度的多处理机系统。并行处理的主要目的是提高系统的处理能力。有些类型的并行处理计算机系统(如多处理机系统)还可以提高系统的可靠性。由于器件的发展,并行处理计算机系统具有较好的性能价格比,而且还有进一步提高的趋势。

结构原理

  并行处理计算机的结构主要有流水线方式 、多功能部件方式 、阵列方式、多处理机方式和数据流方式。

  流水线处理机

  将指令的执行过程分解为若干段,每段进行一部分处理。一条指令顺序流过所有段即执行完毕获得结果。当本条指令在本段已被处理完毕而进入下段时,下条指令即可流入本段。因此,在整个流水线上可以同时处理若干条指令。若各段的执行时间均为一个时钟节拍,则在正常情况下每拍可以输出一个结果,即完成一条指令。这就可加快处理机的速度。

  程序中相邻指令的相关性会影响流水线处理机效率的发挥。例如,条件转移指令在上条指令执行完以前,有时不能确定后继指令;又如本条指令需要用上条指令的结果作为操作数等,都将中断流水线而使效率下降。

  多功能部件处理机

  一台处理机具有多个功能部件。各功能部件可以并行地处理数据,因而处理机可以使用不同的功能部件并行执行几条指令,以提高处理速度。如有的计算机具有浮点加、定点加、浮点乘、浮点除、逻辑操作、移位等多个对不同数据进行处理的功能部件。一些流水线向量机也含有多个功能部件。程序在执行中因对各部件的需求不平衡,各功能部件不可能全部处于忙碌状态。指令间的相关性也影响机器的效率,如本条指令所需的功能部件尚在执行其他指令;又如本条指令所需操作数恰为尚未执行完毕的指令的结果等。

  阵列处理机

  一台处理机由多个相同的处理部件和一个统一的控制器组成。这个控制器解释指令并传送操作命令至全部处理部件。各处理部件按照控制器的命令同时进行完全相同的操作。阵列处理机又可分为浮点阵列处理机和位片式阵列处理机两类。

  多处理机系统

  多处理机系统能提高系统的性能和可靠性。它是多指令流多数据流处理机。根据系统中各处理机的耦合程度,多处理机系统可分为两类。

  ①非直接耦合的多处理机系统:系统中各处理机均有主存储器。各处理机由各自的操作系统进行管理,它们通过共享的输入输出系统进行通信。

  ②直接耦合的多处理机系统:系统中各处理机共享主存储器,并受统一的操作系统管理。多处理机系统一般指直接耦合这一类。

  数据流处理机

  数据流处理机是受到人们重视的高度并行的处理机。它虽保留了存储程序的做法,但在主要原理上已与诺依曼计算机结构不同。它不按程序计数器指出的指令顺序执行程序,只要所需操作数全部具备,指令即可被执行,亦即程序的执行不是由控制流驱动,而是由数据流驱动。

  数据流处理机是以语言为基础的处理机。它使用数据流程序图作为用户语言与计算机结构之间的接口。数据流程序图用能动框表示。每个能动框有多个域,分别存放操作码、操作数和目标地址。数据流程序以能动框集合的方式保存在能动存储器中。当某条指令可以执行时,相应的能动框地址便被送入指令排队器。读取部件则按地址从存储器中取出该能动框,形成操作包,送至操作部件进行处理,产生结果包。修改部件根据结果包的目标地址将结果数据送至规定的能动框作为操作数,并将具备操作数的指令的地址送至指令排队器。指令排队器中的指令均具备执行条件,因而只需增加部件数量或增强部件流水程度,就可以高速并行执行。此外,还可将多个指令处理单元连接成数据流多处理机系统,进一步提高处理能力。

并行算法和并行语言

  提高并行处理效率的关键之一是并行算法。算法须适应计算机的结构。如果一种算法所表达出来的并行度与计算机的并行度基本一致,便能提高计算机的解题效率。

  在向量计算机中,提高并行度的主要问题在于把可并行处理的操作数用向量表示。许多常用的数值计算法,如数列求和、矩阵乘、高斯消元、快速傅里叶变换等,已成功地在向量计算机上实现了并行处理。较为通行的并行语言基本上是FORTRAN语言的扩展。

  在多处理机系统中,提高程序并行性的关键,是把任务分解成足够多的可同时操作的进程。在程序语言中,还须扩充能明确表达进程并发性的语句,以便程序运行时能为相应的控制机构提供控制和管理手段,其中包括并行任务的派生、通信和调度。ADA 语言为描述多处理机并行程序结构提供了必要的语句。为适应数据流计算机而出现的若干数据流语言如Id语言和VAL语言已经在试用。 其重要特点是把数组看成是值而不是目标。用数据流语言编写的程序能够自然地表达出最大的运算并行性。