高性能计算导论 笔记 1

并行计算

并行计算硬件模型

Flynn分类法,按照指令流(Instrcution Stream)与数据流(Data Stream)进行分类,其中指令流是指处理器操作指令的流水线数量,数据流是指一条指令操作的数据数量:

  • SISD:单指令流,单数据流
  • SIMD:单指令流,多数据流(例如Intel CPU上的大位宽算数指令)
  • MISD:多指令流,单数据流
  • MIMD:多指令流,多数据流

对于NVIDIA GPU,其中每一个计算流称为一个Streaming Multiprocessor(SM),每一个SM中包含若干个Warp,Warp是变成可操作的最小计算单元,每个Warp中包含32个Core,其中的每一个Core可以操作不同的数据,也就是说其规定了操作数的个数,这被称为SIMT(Single Instruction Multiple Threads)

同样我们还能按照其他的方式对硬件进行分类

内存视角

  • 共享内存:所有处理器都与共享内存相连,处于同一个地址空间下,任何处理器可以访问任意内存位置,还可以细分为:
    • 均匀内存访问架构(UMA):性能均等,难以扩展
    • 非均匀内存访问架构(NUMA):每个单元有局部内存,跨单元代价高
  • 分布式内存:每个处理器有自己的地址空间,需要显示通信来访问其他单元的内存
共享内存的两种类型
共享内存的两种类型

处理器视角