七周七并发模型1.2 并行架构_七周七并发模型1.2 并行架构试读-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > 七周七并发模型 > 1.2 并行架构

七周七并发模型——1.2 并行架构

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

展开全文

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

《七周七并发模型》其他试读目录

• 1.1 并发还是并行?
• 1.2 并行架构 [当前]
• 1.3 并发:不只是多核
• 1.4 七个模型