[toc]
Chapter 7:Parallel Processors from Client to Cloud
由于功耗墙的限制,单核处理器的性能提升遇到瓶颈,所以转向多核以追求更高能效。
Parallelism 分为:
- 指令级并行:每个处理器执行的 指令不同。
- 数据级并行:每个处理器执行的 指令相同,数据不同。
本章重点:MIMD,向量机、GPU。
Parallel Programming#
要通过并行计算得到较好性能,难点在:负载均衡、协调、通信开销。
Amdahl’s Law#
由于串行部分的存在,加速比是有上限的。
阿姆达尔定律,用来计算 加速比。
如果有 100 个处理器,想要达到加速比为 90 倍。
用 表示可并行指令的比例,则:
解得需要 才能达到。
Scaling#
在 HPC 中,Scaling 概念,是用来衡量 系统或算法扩展能力 的核心指标。
- Strong scaling:
- 问题规模固定。
- 希望用更多的资源来缩短同一个任务的等待时间。
- 瓶颈:串行部分。
- Weak scaling:
- 问题规模随处理器数量线性增加
- 每个处理器负责的数据量不变,希望在相同的时间内解决一个更大的问题。
- 瓶颈:通信和同步代价。
Vector Processors#

MIMD 是现在最常用的,多指令多数据流。
为了实现这个数据流,需要 向量机 和一组 向量寄存器。
向量寄存器 (v0-v31):每个寄存器可以存放 32 个 64 位元素。
向量指令:每次可以算 32 个数。常用的有:
- 加载、存储、向量相加、把一个标量加到向量的每个元素上等等。
优势:没有循环判断;减少取指和译码;
GPU Architectures#
- 进程与线程:一个进程可以包含若干个线程。所有线程共用一个虚拟内存空间,但每个线程有自己独立的寄存器和PC。