并行架构-硬件篇

人们通常认为并行等同于多核,但现代计算机在不同层次上都使用了并行技术。

一、位级(bit-level)并行

为什么32位计算机的运行速度比8位的计算机更快呢?因为并行,对于两个32位数的加法,8位计算机必须进行多次8位计算,而32位计算机可以一步到位,即并行地处理32位的4字节。

计算机的发展经历了8位、16位、32位,现在正处于64位时代。然而由位升级带来的性能改善是存在瓶颈的,这也正是短期内我们无法步入128位时代的原因。

二、指令级(instruction-level)并行

现代CPU的并行度很高,其中使用的技术包括流水线、乱序执行和猜测执行等。

三、数据级(data)并行

图形处理就是一种适合进行数据级并行的场景。

四、任务级(task-level)并行

终于来到了大家所认为的并行形式——多处理器。从程序员的角度来看,多处理器系统最明显的分类就是其内存模型(共享内存和分布式内存模型)

单核

1965 年,英特尔联合创始人戈登·摩尔提出以自己名字命名的「摩尔定律」,意指集成电路上可容纳的元器件的数量每隔 18 至 24 个月就会增加一倍,性能也将提升一倍。

目前来看,摩尔定律已经失效,出于几个理由,元器件的集成程度已经接近了极限。

  • 导线宽度,已经达到了物理极限
  • 散热,有可能会把机箱变成烤箱
  • 需求的变化,已经不单纯追求主频

多核/多处理器

芯片厂商基于技术和成本的考虑,向多核心方向发展,8核心、32核心、64核心等,但是内存访问还是使用共享总线的方式,这样就限制的CPU处理数据的带宽

NUMA

为了解决内存带宽的问题,引入了NUMA。只有当CPU访问自身直接attach内存对应的物理地址时,才会有较短的响应时间(后称Local Access)。而如果需要访问其他CPU attach的内存的数据时,就需要通过inter-connect通道访问,响应时间就相比之前变慢了(后称Remote Access)。所以NUMA(Non-Uniform Memory Access)就此得名。

几乎所有的运维都会多多少少被NUMA坑害过

分布式

参照Hadoop集群的运行方式

以上。

猜你喜欢

转载自blog.csdn.net/weixin_34112208/article/details/91013064