主页
文章
分类
系列
标签
简历
【计算机组成原理与体系架构04】常见并行架构
发布于: 2023-3-21   更新于: 2023-3-21   收录于: 计算机组成原理与体系架构
文章字数: 58   阅读时间: 1 分钟   阅读量:

SIMD

SIMD是指单指令多数据(Single Instruction, Multiple Data)的计算结构。它是一种并行计算的方法,通过在同一时间内执行多个操作来提高计算效率。 在SIMD结构中,一条指令可以同时对多个数据元素执行相同的操作,这些数据元素通常被组织成向量或矩阵的形式。这样,可以在一次指令周期内同时处理多个数据,从而实现并行计算。 SIMD广泛应用于需要处理大规模数据集和执行相同操作的任务,如图像处理、视频编解码、信号处理、科学计算等。它可以显著提高计算性能和效率,特别是在处理大量数据时。 现代处理器和计算机系统通常都具有SIMD指令集扩展,如Intel的SSE(Streaming SIMD Extensions)和AVX(Advanced Vector Extensions)、ARM的NEON等。这些指令集提供了一系列的SIMD指令,可以直接操作向量数据,简化了SIMD编程的复杂性。 总的来说,SIMD结构是一种并行计算的方式,在单个指令周期内同时处理多个数据元素,以提高计算效率。

SMP

SMP(Symmetric Multiprocessing)是一种计算机体系结构,它使用多个相同的处理器核心或处理器来同时执行任务。在SMP结构中,每个处理器核心都可以独立地执行指令,并且每个处理器核心都可以访问共享的主内存和I/O设备。 SMP结构中,多个处理器核心通过总线或互联网络连接到主内存和I/O设备。处理器核心之间可以通过共享内存进行通信和同步。这意味着在一个SMP系统中,多个处理器核心可以并行地执行任务,共享数据,并相互协作完成工作。

CC-NUMA

CC-NUMA(Cache-Coherent Non-Uniform Memory Access)是一种计算机体系结构,它结合了SMP(Symmetric Multiprocessing)和NUMA(Non-Uniform Memory Access)的特性。 在CC-NUMA结构中,计算机系统由多个处理器节点组成,每个处理器节点包含一个或多个处理器核心、本地缓存和本地内存。每个处理器节点通过互联网络相互连接,并共享主内存和I/O设备。 与传统的SMP结构不同,CC-NUMA结构中的节点之间的内存访问延迟可能不同。这是因为每个节点具有本地内存,对本地内存的访问速度比对远程节点的内存访问速度更快。此外,CC-NUMA结构还提供了一致的缓存一致性协议,确保各个节点的缓存数据的一致性。 在CC-NUMA结构下,任务可以在任何一个处理器节点上执行,并且可以通过互联网络访问其他节点的内存。当任务访问非本地内存时,会引起额外的访问延迟,但通过缓存一致性协议,系统可以自动维护数据的一致性,使程序员可以透明地使用分布在不同节点上的内存资源。 CC-NUMA结构适用于需要大内存容量和高并发处理的应用程序。它通过在节点之间共享负载和内存资源,提供了更好的可扩展性和性能。然而,程序员需要注意节点之间的内存访问延迟差异,以优化任务的调度和数据访问模式。

共享存储和共享内存

MPP或机群结构

What is 机群

MPP(Massively Parallel Processing)或机群结构指的是将多个计算节点组合在一起,构建一个具有大规模并行处理能力的计算机系统。

在MPP结构中,每个计算节点通常由一个或多个处理器核心、内存和存储设备组成。这些节点通过高速互联网络相互连接,形成一个集群(cluster)。每个节点可以独立地执行任务,并且能够通过网络进行通信和数据交换。

MPP结构的关键特点是可扩展性和并行性。通过增加计算节点的数量,系统的处理能力和计算资源可以线性扩展。这使得MPP结构非常适用于需要处理大规模数据集和执行高度并行任务的应用程序。

在MPP结构中,任务通常被划分成多个子任务,并在不同的计算节点上并行执行。每个计算节点负责处理自己的子任务,并通过网络进行数据交换和协同。这种并行处理模式可以显著提高计算效率和执行速度。

MPP结构适用于诸如数据分析、科学计算、仿真模拟等需要大规模计算和处理能力的领域。它可以利用大量的计算资源和并行处理的能力来加速任务的执行,提高系统的整体吞吐量。

需要注意的是,与SMP或CC-NUMA结构不同,MPP结构中的计算节点通常是异构的,意味着它们可以具有不同的处理能力、内存容量和存储设备。这为应用程序的优化和任务调度提出了一些挑战,需要考虑节点之间的通信开销和负载均衡等问题。

GPU采用的结构

GPU(Graphics Processing Unit)采用了一种称为SIMD(Single Instruction, Multiple Data)的并行结构。这种并行结构使得GPU能够同时处理多个数据元素,从而实现高效的并行计算。

在GPU中,有大量的处理核心(CUDA核心),每个核心都可以独立地执行指令。每个处理核心都具有自己的浮点运算单元和寄存器。与传统的CPU相比,GPU的设计目标是提供更高的并行计算能力,以满足图形渲染和通用计算等密集型任务的需求。

GPU中的核心被组织成多个流多处理器(Streaming Multiprocessors,SM)或图形处理集群(Graphics Processing Clusters,GPC)。每个SM或GPC包含多个CUDA核心,并共享一定数量的共享内存和缓存。这些SM或GPC之间通过片上互连网络连接在一起。

在并行计算中,GPU通过将同一个指令应用于多个数据元素来执行操作。这些数据元素可以是像素、顶点、数组元素等。GPU中的每个CUDA核心可以同时对多个数据进行处理,以实现高效的并行计算。

为了利用GPU的并行计算能力,开发者可以使用并行编程模型(如CUDA)来描述任务和数据的并行性。通过将工作负载划分为多个线程块(Thread Block)和网格(Grid),并在GPU上调度执行这些线程块,可以实现大规模的并行计算。


常见的并行处理结构