📜  并行架构的融合

📅  最后修改于: 2020-12-13 15:19:09             🧑  作者: Mango


并行机已经开发了几种不同的架构。在本节中,我们将讨论不同的并行计算机体系结构及其融合的性质。

通讯架构

并行体系结构通过通信体系结构增强了计算机体系结构的常规概念。计算机体系结构定义了关键的抽象(例如用户系统边界和硬件软件边界)和组织结构,而通信体系结构定义了基本的通信和同步操作。它还解决了组织结构。

抽象层

编程模型是顶层。应用程序是用编程模型编写的。并行编程模型包括-

  • 共享地址空间
  • 讯息传递
  • 数据并行编程

共享地址编程就像使用公告板一样,在该公告板上可以通过在特定位置发布信息来与一个或多个个人进行通信,该信息由所有其他个人共享。通过注意谁在执行什么任务来协调个人活动。

消息传递就像电话或信件一样,其中特定的接收者从特定的发送者那里接收信息。

数据并行编程是一种有组织的合作形式。在这里,几个人同时对数据集的各个元素执行操作,并全局共享信息。

共享内存

共享内存多处理器是并行计算机中最重要的一类。它在多重编程工作负载上提供了更好的吞吐量,并支持并行程序。

共享内存多处理器

在这种情况下,所有计算机系统都允许处理器和一组I / O控制器通过某种硬件互连来访问存储模块的集合。通过添加内存模块来增加内存容量,并通过将设备添加到I / O控制器或通过添加其他I / O控制器来增加I / O容量。可以通过等待更快的处理器可用或添加更多处理器来提高处理能力。

所有资源都围绕中央存储器总线进行组织。通过总线访问机制,任何处理器都可以访问系统中的任何物理地址。由于所有处理器与所有内存位置等距,因此所有处理器在内存位置上的访问时间或等待时间都相同。这称为对称多处理器

消息传递架构

消息传递体系结构也是并行计算机的重要一类。它提供处理器之间的通信,作为显式I / O操作。在这种情况下,通信将在I / O级别而不是在存储系统上进行组合。

在消息传递体系结构中,通过使用操作系统或库调用执行的用户通信,这些操作系统或库调用执行许多较低级别的操作,其中包括实际的通信操作。结果,编程模型与物理硬件级别的通信操作之间存在距离。

发送接收是消息传递系统中最常见的用户级通信操作。发送指定一个本地数据缓冲区(要发送)和一个接收远程处理器。接收指定发送过程和本地数据缓冲区,将在其中放置发送的数据。在发送操作中,标识符标签会附加到消息中,接收操作会指定匹配规则,例如来自特定处理器的特定标签或来自任何处理器的任何标签。

发送和匹配接收的组合完成了内存到内存的复制。两端指定其本地数据地址和成对同步事件。

收敛

硬件和软件的开发已经淡化了共享内存和消息传递阵营之间的界限。消息传递和共享地址空间代表两种不同的编程模型;每个都为共享,同步和通信提供了透明的范例。但是,基本的机器结构已经汇聚为一个通用的组织。

数据并行处理

另一类重要的并行机被不同地称为-处理器阵列,数据并行体系结构和单指令多数据机。编程模型的主要特征是,可以在大型常规数据结构(如数组或矩阵)的每个元素上并行执行操作。

数据并行编程语言通常通过查看一组进程的本地地址空间(每个处理器一个)来执行,从而形成一个显式的全局空间。由于所有处理器一起通信,并且所有操作都有全局视图,因此可以使用共享地址空间或消息传递。

基本设计问题

编程模型的开发仅不能提高计算机的效率,硬件开发也不能单独做到这一点。但是,计算机体系结构的发展可以使计算机的性能有所不同。通过关注程序如何使用机器以及提供哪些基本技术,我们可以了解设计问题。

在本节中,我们将讨论通信抽象和编程模型的基本要求。

通讯抽象

通信抽象是编程模型和系统实现之间的主要接口。就像提供平台的指令集一样,这样同一程序可以在许多实现上正确运行。此级别的操作必须简单。

通信抽象就像硬件和软件之间的契约,它使彼此可以在不影响工作的情况下提高灵活性。

编程模型要求

并行程序具有一个或多个对数据进行操作的线程。并行编程模型定义了数据线可以命名,其操作可以在指定的数据来进行,并且为了后面的操作。

为了确认程序之间的依赖性得到了加强,并行程序必须协调其线程的活动。