「计算机基础」多CPU架构演进

昨天和前天通过文章《「计算机基础」CPU历史之AMD系列》和《「计算机基础」CPU历史之Intel系列》介绍了Intel和AMD的产品,今天围绕的话题仍然是CPU。

对称多处理器结构:(SMP,Symmetric Multi-Processor)

服务器最开始的时候是单CPU,然后才进化到了双CPU甚至多CPU的SMP架构。所谓SMP架构指的是多路CPU无主次,共享内存、总线、操作系统等。此时每个CPU访问内存任何地址所耗费的时间是相等的。所以也称为一致存储器访问结构

大家共享同样的内存,所以扩展能力有限,因为CPU数量增加了,内存访问冲突也会增加。为了进一步提高CPU数量的同时还能保证效率,NUMA架构出现了,将多个SMP进行松耦合。

还有一种AMP架构,不同的CPU是做不同的事的,互不干扰。

非一致存储访问结构:(NUMA,Non-Uniform Memory Access)

NUMA架构中,多个SMP通过Crossbar switch交换矩阵进行互联。
每个SMP有自己的内存,同时还可以访问其他SMP的内存,但是需要经过高速交换矩阵,很显然SMP访问自己的内存速度非常高,但是访问远端的SMP的内存还需要经过交换矩阵,延迟增加,可以看出NUMA通过牺牲内存的访问时延来达到更高的扩展性。

总之,SMP与NUMA架构对软件程序方面影响扩展性不大,一台主机内都使用单一的操作系统。
缺点是CPU数量增加,访问远端内存的时延也会增加,性能不能线性增加。此时MPP架构就出现了。

海量并行处理结构:(MPP,Massive Parallel Processing)

MPP说白了就是将多台独立的主机组成集群。显然在此架构下,每个节点都有各自的CPU、内存、IO总线、操作系统,完全松耦合。最关键的是MPP集群中的软件架构也相应的改变了,这样MPP的效率随节点数量增加就可以线性增加了。

其实如果NUMA架构下,如果通过上层软件来使得程序尽量少的读取远端的内存,NUMA效率也会线性增加。但是实际上NUMA操作系统仍然是同一个,内存仍然是全局均匀的,所以访问远端内存是不可避免的。

那么MPP相当于把内存强制分开,同时又改变了程序架构,这样就可以保证海量计算下的效率线性增加。

存储系统的演进

存储系统与服务器CPU架构演进相同,控制器就好比CPU,后端磁盘柜就类似于内存。

谁才是真正的Scale-out

SMP/NUMA/MPP其实都算Scale-out,只不过程度和形态不同。
MPP架构的存储,比如XIV,在多路大块连续的IO下,效率反而很差。这是因为单路IO可能导致整个MPP集群中的磁盘资源全部牵动

但是如果是小块随机的IO,多路IO关联很少,则性能随节点数增加线性增加,这就好比将一个程序并行分解为多个子任务(类似于随机小IO),因为子任务之间的关联很少,节点之间的通信量很小,则并行执行的效率高。也就是MPP自身是share-Nothing架构,运行在上面的程序也尽可能的是Share-Nothing

SMP、NUMA、MPP各有各的好处,比如

文章来源:dy2903_https://www.cnblogs.com/dy2903/p/8341268.html

展开阅读全文

页面更新:2024-04-20

标签:架构   矩阵   节点   集群   线性   控制器   场景   效率   内存   计算机   基础   程序

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top