笔记:并发与并行
读《深入理解计算机系统》
第一章
并发concurrent:有多个活动在时间上重叠,称为并发,并不一定要求活动同时执行,可以是交替执行的。
并行parallelism:多个活动同时执行。
并行的3个层次:
1、线程级并行
单处理器系统线程只能通过交替执行模拟并行,并发。
此外还有超线程,是允许一个cpu执行多个控制流的技术。cpu的某些硬件有多份,比如程序计数器和寄存器,而其他硬件只有1份,比如浮点运算单元。这种处理器切换线程速度很快,在一个线程等待数据加载到高速缓存的时候,可以执行另外一个线程。比如i7处理器可以让一个核执行2个线程,尽量提高核的效率。
多处理器则可以利用硬件进行线程级并行。
2、指令级并行
cpu的流水线设计可以并行处理不同指令的不同部分。而超标量操作还允许同时执行多个计算指令。
3、单指令多数据量simd
即向量化计算。