请关注我的微信公众号
个人微信公众号
技术交流群 (仅作技术交流):642646237
请关注我的头条号:
现在计算机不同层次使用的并行技术
并行并不等同于多核,现代计算机在不同层次上都使用了并行技术。
单核CPU在位级和指令级两个层次上都能够并行地使用内置的晶体管资源。
现在计算机不同层次使用的并行技术——单核CPU的并行——位级(bit-level)并行
对于两个32位数的加法,8位计算机必须进行多次8位计算,而32位计算机可以一步完成,即并行地处理32位数的4字节。
由位升级带来的性能改善是存在瓶颈的,这也正是短期内无法步入128位时代的原因。
现在计算机不同层次使用的并行技术——单核CPU的并行——指令级(instruction-level)并行
现代CPU的并行度很高,其中使用的技术包括流水线、乱序执行和猜测执行等。
因为尽管单核处理器内部的并行度很高,但是经过精心设计,从外部看上去所有处理都像是串行的。
现在计算机不同层次使用的并行技术——单核CPU的并行——指令级(instruction-level)并行——多核时代的不同
多核时代,必须面对的情况是:无论是表面上还是实质上,指令都不再串行执行了。
现在计算机不同层次使用的并行技术——单核CPU的并行——数据级(data)并行(“单指令多数据”,SIMD)
并行地在大量数据上施加同一操作。
这并不适合解决所有问题,但在适合的场景却可以大展身手。
图像处理就是一种适合进行数据级并行的场景。比如,为了增加图片亮度就需要增加每一个像素的亮度。
现代GPU(图形处理器)也因图像处理的特点而演化成了极其强大的数据并行处理器。
现在计算机不同层次使用的并行技术——多核CPU的并行——任务级(task-level)并行——分类
从程序员的角度来看,多处理器架构最明显的分类特征是其内存模型(共享内存模型或分布式内存模型)。
对于共享内存的多处理器系统,每个处理器都能访问整个内存,处理器之间的通信主要通过内存进行。
对于分布式内存的多处理器系统,每个处理器都有自己的内存,处理器之间的通信主要通过网络进行。
通过内存通信比通过网络通信更简单更快速,所以用共享内存编程往往更容易。
当处理器个数逐渐增多,共享内存就会遭遇性能瓶颈——此时不得不转向分布式内存。
如果要开发一个容错系统,就要使用多台计算机以规避硬件故障对系统的影响,此时也必须借助于分布式内存。
网友评论