Parallel Computing (1)

课程核心主题

【课程前置:计算机组成相关课程】

设计并编写真的能够加速的并行程序

并行思维

  1. 将工作分解为多个块,使得这些块可以安全地并行执行
  2. 将每块工作分配给处理器
  3. 适当地规划不同处理器之间的交流和同步问题,保证这些问题不会限制加速比

对上述并行思维各项任务的抽象(架构):使用现有并行编程语言进行编程

并行计算机硬件的实现:并行计算机如何工作

可以高效实现程序抽象的架构

  • 实现的性能特征
  • 设计的trade-off:性能,便利,能耗

为什么需要了解硬件

  • 计算机的设计架构对于程序编写十分重要
  • 效率和性能十分重要

关注效率

快速并不意味着高效率!

使用一个具有10个处理器的计算机,但是仅仅实现了2倍的加速比,这显然是不行的。

基础概念

程序

电脑程序是一系列需要执行的指令。

指令

指令是处理器需要处理的操作。执行指令实际上修改了电脑的状态,所谓状态就是指存储在电脑中的数据,这些数据处于寄存器或者存储器中。

指令级别并行

instruction level parallelism(ILP):构建

寄存器-缓存-存储器多级结构