并行计算粒度
-
分布式并行(多主机,多进程) : MPI
-
共享存储式并行 (多线程) :OpenMP OpenCL OpenACC
-
指令级并行 CPU流水线
CPU流水线
指将一条指令的执行过程划分为多个阶段,使得在每个时钟周期内能够并行执行多条指令,从而提高 CPU 的执行效率。
即将一个完整的指令执行过程分成若干个小的执行步骤,在下一个时钟周期中,另一个指令的前一步骤正好可以开始执行,并在依次进行每一步后输出执行结果,与此同时前一条指令的下一步骤也开始执行,并在下下个时钟周期中输出结果。这样,就可以实现 CPU 在同一时刻执行多条指令,并且不需要等待一条指令的完全执行才能执行下一条指令。这种处理方式类似于工厂的装配线,因此也被称为指令流水线。
一条指令的执行步骤:
- 取指令 Instruction Fetch 从内存中读取指令到指令寄存器;
- 指令译码 Instruction Decode 解码指令,确定指令操作的数据以及地址
- 指令执行 Execute 根据指令操作的数据和地址进行运算,逻辑等操作
- 访问存储 Memory Access 如果指令需要访问内存,将操作结果或需要的数据从内存中读出或写入内存中;
- 写回 Write Back 将执