Python多线程

Python内存架构

Python内存架构详细说明
在设计程序或并发系统时,需要考虑不同的系统和内存体系结构样式。这是非常必要的,因为一种系统和内存样式可能适合一项任务,但可能容易出错,而无法执行另一项任务。

支持并发的计算机系统架构

迈克尔·弗林(Michael Flynn)于1972年提出了分类法,以对计算机系统体系结构的不同样式进行分类。此分类法定义了以下四种不同样式-
单指令流,单数据流(SISD) 单指令流,多数据流(SIMD) 多个指令流,单个数据流(MISD) 多个指令流,多个数据流(MIMD)。

单指令流,单数据流(SISD)

顾名思义,此类系统将具有一个顺序的传入数据流和一个用于执行数据流的单个处理单元。它们就像具有并行计算体系结构的单处理器系统一样。以下是SISD的体系结构-
单指令流,单数据流

SISD的优势

SISD体系结构的优点如下-
它需要更少的电量。 多个内核之间没有复杂的通信协议。

SISD的缺点

SISD体系结构的缺点如下-
像单核处理器一样,SISD体系结构的速度受到限制。 它不适用于较大的应用程序。

单指令流,多数据流(SIMD)

顾名思义,此类系统将具有多个传入数据流和数量可在任何给定时间作用于一条指令的处理单元。它们就像具有并行计算体系结构的多处理器系统一样。以下是SIMD的体系结构-
单指令流,多数据流(SIMD)
SIMD的最佳示例是图形卡。这些卡具有数百个单独的处理单元。如果我们谈论SISD和SIMD之间的计算差异,那么对于添加数组 [5,15,20] [15,25,10], SISD体系结构将不得不执行三种不同的添加操作。另一方面,使用SIMD架构,我们可以在一个添加操作中进行添加。

SIMD的优点

SIMD体系结构的优点如下-
对多个元素的相同操作只能使用一条指令执行。 可以通过增加处理器的内核数来增加系统的吞吐量。 处理速度高于SISD架构。

SIMD的缺点

SIMD体系结构的缺点如下-
处理器内核之间的通信复杂。 成本高于SISD架构。

多指令单数据(MISD)流

具有MISD流的系统具有多个处理单元,这些处理单元通过对同一数据集执行不同的指令来执行不同的操作。以下是MISD的体系结构-
多指令单数据
MISD体系结构的代表还没有商业化。

多指令多数据(MIMD)流

在使用MIMD架构的系统中,多处理器系统中的每个处理器都可以在并行的不同数据集上独立执行不同的指令集。它与SIMD体系结构相反,在SIMD体系结构中,对多个数据集执行单个操作。以下是MIMD的体系结构-
多指令多数据
普通的多处理器使用MIMD架构。这些体系结构基本上用于许多应用领域,例如计算机辅助设计/计算机辅助制造,仿真,建模,通信开关等。

支持并发的内存架构

在处理诸如并发和并行性的概念时,始终需要加快程序的速度。计算机设计者发现的一种解决方案是创建共享存储器的多计算机,即具有单个物理地址空间的计算机,该物理地址空间可以由处理器具有的所有内核访问。在这种情况下,可以有许多不同的体系结构样式,但是以下是三种重要的体系结构样式-

UMA(统一内存访问)

在此模型中,所有处理器都统一共享物理内存。所有处理器对所有存储字的访问时间均相等。每个处理器可以具有专用高速缓存存储器。外围设备遵循一组规则。
当所有处理器都可以平等地访问所有外围设备时,该系统称为 对称多处理器。当只有一个或几个处理器可以访问外围设备时,该系统称为 非对称多处理器
统一内存访问

非统一内存访问(NUMA)

在NUMA多处理器模型中,访问时间随存储字的位置而变化。在这里,共享内存在物理上分布在所有处理器之间,称为本地内存。所有本地内存的集合形成了一个全局地址空间,所有处理器都可以访问该地址空间。
非统一内存访问

仅缓存内存架构(COMA)

COMA模型是NUMA模型的专用版本。在这里,所有分布式主内存都转换为高速缓存。
缓存内存架构
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4