|
本帖最后由 shenlanyouyu 于 2015-10-7 01:55 编辑
我个人觉得容易把并发和并行搞混淆了,并发和并行差别很大的。
并发编程是为了提高程序的运行效率,最大程度地利用CPU资源,多个程序被轮换调度执行。现今的计算机系统架构,各个模块的执行速度差异很大。CPU的指令执行速度,但是内存、硬盘数据存取的限制了程序的运行速度,程序的很大一部分执行时间被浪费在IO wait上面。为了提高CPU的效率,在一个程序等待硬盘或其他速度较慢的外设时,调度另一个程序执行,达到并发的效果。
并行是指多核处理中,指令在多个CPU上并行执行。我个人经验是CUDA的优势是使用了GPU强大的浮点计算能力,并行计算,GPU现在也是多核的,并行计算能力很强。 |
|