Amdahl定律
该定律的主要思想是当我们对系统的某个部分加速时,其对系统整体性能的影响取决于该部分的重要性和加速程度。
设一个应用程序在系统中执行需要Told,其中某部分所占总时间的比例为a,并且性能可提升比例为k,因此提升后所需时间为aTold/k,Tnew=Told*(1 - a + a/k),然后就可以算出加速比,如下:
当k无穷大时,S趋向于1/(1-a),由此可见,如果要想显著加速整个系统,必须提升全系统中相当大部分的速度。
并发和并行
- 并发:指一个同时具有多个活动的系统
- 并行:指的是用并发来使一个系统运行得更快
线程级并发
构建在进程上,我们能够设计出同时有多个程序执行的系统,这就导致了并发。因为进程是操作系统对一个正在运行的程序的一种抽象,无论是单核还是多核系统,一个CPU通过处理器在进程间切换实现并发地执行多个进程,这种机制就是切换上下文。
指令级并行
在较低的抽象层次上,现代处理器可以同时执行多条指令的属性称为指令级并行。换个角度说,就是处理器处理指令更加快速,可以在更短的时间内执行更多的命令。
单指令、多数据并行
在最低层次上,许多现代处理器拥有特殊的硬件,来实现允许一条指令产生多个可以并行执行的操作。