Parallel Processing
Contents
Parallel Processing
本章讲的是各种并行方案.
并行
并行大体上有如下3种:
- 指令级并行(ILP)
- 数据级并行(DLP)
- 线程级并行(TLP)
指令级并行
指令级并行是让流行线的每个阶段尽可能同时执行多条指令.
数据级并行
数据级并行主要是指像向量加法这种计算, 天生就能拆开运算的! 只需要提供多个ALU就行了, 目前主要是由GPU来做.
线程级并行
首先介绍一下阿姆达尔定律:
一个线程就是在一个core上执行的计算任务.
Using multiple independent cores to execute a parallel task is called thread-level parallelism (TLP), where each core executes a separate computation “thread”.
不同的Core之间是通过同一个main memory来交换数据(还有更高效的MPI), 而且每个core都有自己的cache.
为了保证数据的一致性, 在cache和内存之间也有一条bus来监测cache的变化和同步.
例如MESI protocal: https://en.wikipedia.org/wiki/MESI_protocol