概念


并发: 同一时间应对(dealing with)多件事情的能力
并行: 同一时间动手做(doing)多件事情的能力

并发程序的执行通常是不确定的,它会随着事件时序的改变而给出不同的结果
并行程序可能是确定的———— 给班里每个小朋友分4个苹果

so, 用支持并行的编程语言可以写出并行程序,而不引人不确定性。


并行架构


(1)位级(bit-level)并行

如2个32位数的加法,8位计算机必须进行多次8位计算,而32位计算机可以一步完成,即并行地处理32位数的4字节


(2)指令级(instruction-level)并行

单核 -》 多核
CPU并行度,流水线、乱序执行和猜测执行等。


(3) 数据级(data)并行

数据级并行(也称为“单指令多数据”,SIMD)架构,可以并行地在大量数据上施加同一操作。
例如GPU(图形处理器), 为了增加图片亮度就需要增加每一个像素的亮度。


(4)任务级(task-level)并行

多处理器。多CPU。
多处理器架构最明显的分类特征是其内存模型(共享内存模型或分布式内存模型)