Concurrency In Python 简明教程

System and Memory Architecture

在设计程序或并发系统时,需要考虑不同的系统和内存架构样式。这非常必要,因为一种系统和内存样式可能适用于一个任务,但可能对其他任务产生错误。

Computer system architectures supporting concurrency

迈克尔·弗林于 1972 年给出了对不同样式的计算机系统架构进行分类的法规。该分类定义了以下四种不同的样式 −

  1. 单指令流、单数据流 (SISD)

  2. 单指令流、多数据流 (SIMD)

  3. 多指令流、单数据流 (MISD)

  4. 多指令流、多数据流 (MIMD)。

Single instruction stream, single data stream (SISD)

顾名思义,此类系统将具有一个序列输入数据流和一个执行数据流的单个处理单元。它们就像具有并行计算架构的单处理器系统。以下是 SISD 的架构 −

ssid

Advantages of SISD

SISD 架构的优点如下 −

  1. It requires less power.

  2. 多个内核之间不存在复杂通信协议问题。

Disadvantages of SISD

SISD 架构的缺点如下 −

  1. SISD 架构的速度仅限于单核处理器。

  2. 它不适用于较大的应用程序。

Single instruction stream, multiple data stream (SIMD)

顾名思义,此类系统将具有多个输入数据流和数量的处理单元,这些处理单元可以在任何给定时间作用于单个指令。它们就像具有并行计算架构的多处理器系统。以下是 SIMD 的架构 −

simd

SIMD 的最佳示例是显卡。这些卡具有数百个单独的处理单元。如果我们讨论 SISD 和 SIMD 之间的计算差异,那么对于添加数组 [5, 15, 20][15, 25, 10], SISD 架构必须执行三个不同的添加运算。另一方面,使用 SIMD 架构,我们可以在单个添加运算中添加它们。

Advantages of SIMD

SIMD 架构的优点如下 −

  1. 仅使用一条指令就可以对多个元素执行相同操作。

  2. 可以通过增加处理器内核的数量来提高系统的吞吐量。

  3. 处理速度高于单指令单数据流架构。

Disadvantages of SIMD

单指令多数据流架构的缺点如下 −

  1. 处理器内核之间有复杂的通信。

  2. 成本高于单指令单数据流架构。

Multiple Instruction Single Data (MISD) stream

具有多指令单数据流的数据流的系统具有多个处理器单元,这些处理器单元通过对同一数据集执行不同的指令来执行不同的操作。以下是多指令单数据流的架构 −

misd

多指令单数据流架构的代表者目前还不存在于商业领域。

Multiple Instruction Multiple Data (MIMD) stream

在使用多指令多数据流架构的系统中,多处理器系统中的每个处理器可以同时独立地针对不同的数据集执行不同的指令集。这与单指令多数据流架构相反,单指令多数据流架构对多个数据集执行单一操作。以下是多指令多数据流的架构 −

mimd

常规的多处理器使用多指令多数据流架构。这些架构基本用于多个应用领域,如计算机辅助设计/计算机辅助制造、仿真、建模、通信交换机等。

Memory architectures supporting concurrency

在使用并发性和并行性等概念时,始终需要加快程序速度。计算机设计师找到的一种解决方案是创建共享内存多计算机,即具有单个物理地址空间的计算机,该地址空间由处理器具有的所有内核访问。在此情况下,可能有多种不同风格的体系结构,但以下三种是重要的体系结构样式 −

UMA (Uniform Memory Access)

在此模型中,所有处理器一致地共享物理内存。所有处理器对所有内存词都具有相等访问时间。每个处理器可能具有私有高速缓存。外围设备遵循一组规则。

当所有处理器对所有外围设备具有相等访问权限时,该系统称为 symmetric multiprocessor 。当只有一个或几个处理器可以访问外围设备时,该系统称为 asymmetric multiprocessor

uma

Non-uniform Memory Access (NUMA)

在非一致存储器访问多处理器模型中,访问时间随内存词的位置而异。在此,共享内存物理上分布在所有处理器之间,称为局部内存。所有局部内存的集合形成所有处理器都可以访问的全局地址空间。

numa

Cache Only Memory Architecture (COMA)

一致存储器访问模型是非一致存储器访问模型的一个特殊版本。在此,所有分布式的主内存都转换为高速缓存。

coma