1 计算机架构与并行计算

计算机架构

冯.诺依曼架构(哈佛架构)


明确指出计算机主要由四部分组成:

  1. 中央控制单元(Center Control Unit)
  2. 逻辑运算单元(Logic Unit)
  3. 输入输出(Input/Output)
  4. 数据内存和指令内存(Data Memmory & Zhiling Memmory)

架构图如下:
image

后来,出现了变体冯.诺依曼架构,主要区别是把数据内存和指令内存合并为统一内存

并行程序设计:本质上就是无限压榨硬件性能

根据指令和数据对计算机架构进行划分

主要分为以下四种:

  1. SISD:单指令单数据(一条指令只处理一个数据)
  2. SIMD:单指令多个数据(不同核心,指令是一样的,但是处理的数据不一样)
  3. MISD:多指令单个数据(扯淡,意思是多个指令处理一个数据,算力多烧得慌)
  4. MIMD:多指令多个数据(多个指令处理多个数据,通常包含单个指令处理多个数据(SIMD),需要计算核支持SIMD)

image

根据内存分布对计算机架构进行划分

  1. 共享内存的多处理器系统
    这些节点挂载在同一个内存上,多个核心和缓冲区
    image

  2. 分布式内存的多节点系统
    类似于集群,一个机房里面有多个服务器,他们通过网络互动,这就是典型的分布式多节点系统
    image

并行性


主要分为两种:

  • 指令并行
  • 数据并行

因此,并行可以是指令并行或数据并行,工作重心主要在数据并行任务上。
并行任务可以先了解CPU中的pThread和OpenMP。

  1. 数据并行切块并行
    (1) 一维按块划分
    image

(2) 二维按块划分
image

  1. 数据并行周期循环并行

image

区别:一个核心处理一块数据;多个核心处理一块数据的多个部分

如何评价一个计算机架构的性能呢?


NVIDIA给出一个一些指标

  • 延迟: 一条指令从执行到结束所需要的时间,通常用ns作为单位;
  • 带宽: 单位时间处理的数据量,通常用M/s或者G/s表示;
  • 吞吐量: 单位时间内的运算数量,通常使用(GFlops)(十亿次浮点运算)表示;
    • 运算速度:运算时间 / 运算次数
    • 吞吐量:运算数量 / 运算时间
posted @ 2026-04-28 19:54  梁文锋之深圳分锋  阅读(4)  评论(0)    收藏  举报