单处理器性能提升有限,晶体管传递速度过快能耗过高发热,所以需要继承多个处理器在芯片中
自动将串行程序转化为并行程序转化出的程序效率不高,还是要自己编写
分为任务并行和数据并行:任务并行即每个核执行不同的任务,数据并行即每个核执行不同的数据,但操作大致相同。改卷是一个好例子。
编写过程中需要考虑通信、负载平衡和同步。
MPI,Pthreads,OpenMP
主要有两种并行系统:共享内存和分布式内存:共享内存各个核都能够访问内存,所以可以更新内存的数据来协调各个核;分布式内存每个核都有自己的私有内存,所以需要显式的通信。
MPI为分布式,Pthreads和OpenMp为共享式,其中OpenMP是对C语言比较高层次的扩展。
并发、并行和分布式
并发包括并行和分布式,并行是紧耦和,分布式是松耦和。