区分一下cluster、MPP、SMP和SSMP

article/2025/11/9 4:02:17

最近学习GA库,发现应当对多种计算机架构进行区分,故查阅资料,总结如下

MPP(Massive Parallel Processing),每个

现在有多种架构需要区分

  • MPP (Massive Parallel Processing)
  • cluster
  • SMP(Symmetrical Multi-Processing)
  • NUMA (Non-uniform memory access)
  • SSMP(Scalable shared-memory multiprocessing)
  • DSM(distributed shared memory)

1 SMP和NUMA、DSM

SMP是对称多处理器,如下图所示。所有的处理器共享一个内存,使用相同的地址空间。所有的处理器通过一条总线(bus)和内存以及IO设备(硬盘等)连接。总线同一时刻只能处理一个请求,当有多个处理器的访存访问请求时,只能一个一个处理,会导致部分处理器由于没有数据而空闲等待。

SMP的优点:

  • 编程容易,不需要修改代码为使用MPI并行的代码。
  • 处理器之间的通讯延迟低

SMP缺点

  • 内存征用情况严重,导致可扩展性差,一个系统支持的处理器数量远没有NUMA的多
  • 需要在硬件上支持cache一致性 (cache coherence)

像一般笔记本用的低端核少的CPU,比如说Intel core i3 ,往往都是SMP架构,只有一个内存控制器 存疑,不是NUMA架构就是SMP了吗?
在这里插入图片描述
NUMA是SMP的扩展版。NUMA中每个处理器都有自己的local memory,而且每个处理器都可以访问其他处理器的local meomory,但是延迟会比访问自己的local memory要高。根据这里所说,对DSM(分布式内存)的访问,就是NUMA(非均匀内存访问)。DSM也可以说是NUMA。

NUMA架构可以减缓内存访问征用的问题。现在较高性能的处理器如AMD高端CPU Threadripper锐龙、Intel定位高端HEDT的i9 CPU都使用了NUMA架构。例如知乎老狼所说的
在这里插入图片描述

2 MMP 和 CLUSTER

他俩和SMP以及NUMA不一样,MMP/cluster由多个彼此独立的节点构成的,无法跨节点访问彼此的内存,只能通过MPI等信息传递的方式来实现节点间通信。因为没有内存征用和总线带宽的限制,MMP/cluster的扩展性特别好,像现在(2021年3月)世界排名前500的超算,有几十万、上百万的核心,都是使用的MMP或cluster架构。

MMP和cluster的区别:

  1. MMP使用了更多定制化的组件,包括网络、处理器、操作系统等
    (这两段话几乎是复制的阿里云技术专家蜚廉,那里有更加详细的说明)

    最早出现的是MMP,cluster是后来才有的。这两个的区别在于MMP的组件大多是单独定制开发,每个节点使用定制CPU,运行OS微内核,使用单独开发的专有网络连接。
    ///
    进入新世纪后,Cluster 得到蓬勃的发展。cluster运行通用操作系统,互连网络使用商业标准的IB和以太网设备连接,存储为SAN、NAS和并行文件系统。原有的MPP超级计算机的单独定制门槛被打破,“堆机器”成了新玩法。

  2. MPP实际上是一台机器,这台机器有使用高速网络紧密连接的成千上万个处理器,只有一个操作系统。
    cluster实际上是有多台机器,每个机器有自己的操作系统(一般都是一样的)、硬盘、内存等,这些机器使用一些普通网络的一些变体连接起来,使用某些系统帮助分配任务给这些主机。
    参考 What is the difference between a Cluster and MPP supercomputer architecture?

3 SSMP

SSMP(可扩展的共享内存处理)的提出是为了在利用SMP优点的同时,提高他的可扩展性,主要措施有两点:

  • 使用DSM
  • 使用switch替代bus(内存总线)

具体不太懂,这里有详细的介绍


参考文献

  1. 并行计算、分布式计算、集群计算和云计算,大科谱!链接
  2. 超算简史与下一代超级计算机 (介绍了cluster 和MPP的区别 链接)
  3. why parallel architecture (介绍了SSMP,链接)
  4. stack Exchange的一个帖子,里面的一个回答引用了很多链接,很值得学习 链接
  5. Massively Parallel Processing (MPP) (大绿字,给了一个综述和一些关于cluster、mpp、smp、numa以及一些其他关于高性能计算的学习链接,传送门)
  6. SMP vs NUMA vs MPP 架构简介 链接

4 不成熟的思想(下面是搜索材料时候的一些混乱思想,留在这里,可能有错)

NUMA似乎是当初SGI公司主推的一种架构,多个处理器使用共享内存来获得比单个处理器更高的性能,同时又不需要额外的MPI编程。
那串行程序如何使用多个处理器呢? 这需要查一查SGI是怎么成功的
关于SGI的成功,知乎的yolfilm说到

1994年,我们买过一台 sgi 的名机:「 iris crimson 」。
当年作动画(90年代中期),PC机用的是 3dmax 早期版本,最早的3dmax v1.0,我查了一下,是1996年才发售,换言之,我们最早用那玩意儿(1994年),装在dx66 pc机上的3ds,都是beta版。而且是在dos下运行,装起来要一整盒的软盘。相比之下,整个完整套装的 iris crimson,跑unix系统,除了「中文字」比较烦以外(当时作动画,主要是给建筑案作效果图,里面的中文都是自己建模造字。)除了字体比较痛苦外,相较pc机,那种速度,那种可用性,那种出来画面的品质(商业性),都是 pc 望尘莫及,完全无法比拟的。

而知乎的Tech Priest 说了SGI成功的另外一个原因

超算这块,sgi当年的看家法宝是numalink, 我不知道numa的机器他家是不是最大的,不过绝对是卖的最多的, 换句话说,单一内存地址空间的,没我核多,比我核多的,都是分布式的mpp或者cluster架构。所以很多不适合mpp/cluster架构的应用(再加上懒得把代码拿mpi重写一遍的应用),还有numa架构带来的管理/开发/使用上的便利(当成一台多核的机器就行),使得sgi从origin到altix随然top500上榜不多(没办法numa没法堆太多的核)但是实际用户不少,sgi当年绝对是闷声发大财。今天转手几次的sgi还在卖UV, 没查过销量但是应该也不会太差, 毕竟就算是今天很多应用更适合numa而不是集群(包括一小部分算法上不适合分布式内存的

第三个从wiki中NUMA的介绍里也提到了一些原因:

Modern CPUs operate considerably faster than the main memory they use. In the early days of computing and data processing, the CPU generally ran slower than its own memory. The performance lines of processors and memory crossed in the 1960s with the advent of the first supercomputers. Since then, CPUs increasingly have found themselves “starved for data” and having to stall while waiting for data to arrive from memory. Many supercomputer designs of the 1980s and 1990s focused on providing high-speed memory access as opposed to faster processors, allowing the computers to work on large data sets at speeds other systems could not approach.

从上面的分析来看,SGI成功的原因包括

  • 对于视频剪辑,SGI的性能高(为什么嘞?),有配套的剪辑软件,可用性好
  • 对于高性能计算,SGI的服务器提供统一内存寻址空间,对于不适合或是不方便修改为用于MPP/cluster类型并行计算的应用十分友好
  • 在1960年代开始,处理器的计算能力逐渐不再是计算速度的瓶颈。内存访问速度慢常让CPU因等待数据送达而处于空闲状态,这逐渐成为制约计算速度的一大瓶颈。而SGI支持的CC-NUMA架构可以改善这个问题,因此计算性能很高。(均为猜测)

SGI的没落是在家用PC机的性能开始逐渐增强的时候,知乎的yolfilm认为

SGI的「生死交叉点」,是家用机的 cpu 主频,开始出现超过 100mhz 的机种时(英特尔奔腾系列,以及苹果的 power pc系列),sgi 的败象就按捺不住了。
主频一过百,那时代立刻出现了一堆 pc 架构下的「类 sgi 图型工作站」(比如名机 toaster,大陆市场上的各种杂牌组装图形工作站,更是不计其数)。当然,这种机器会 down,但人家售价只有你的十几分之一,而且还挺好用,你哪能比得过?

这衰败的原因感觉是CPU的性能提升了?这不是和之前说的CPU性能不制约计算速度相违背吗?
可能是因为以前CPU单核性能不高,因此使用多处理器架构,但是多处理器SMP架构会有内存争用的问题,因为一个CPU对内存的访问会让其他CPU都等着。但是NUMA架构能够改善这个问题(这个在NUMA的WIKI里面也说了)。但是随着CPU 的性能提升,不需要太多的核就可以有很好的性能,内存争用情况有了改善,这时其他厂商的电脑、工作站等也能很好的解决问题了,因此SGI的市场受到了蚕食。

(猜测需要证实)

至于说没落,应该说是整个cluster架构的崛起和numa的没落(mpp也没落了)。这就又回到了和工作站一样的问题,既然大家都是堆xeon堆tesla/phi堆infiniband这些开放平台,不计成本狂堆能上top500前十也叫集群,一穷二白刚毕业小青椒暑假找几个本科生拿几台破机器装个rocks也叫集群, 为啥非要sgi呢?

作者:Tech Priest
链接:https://www.zhihu.com/question/30500794/answer/64657328


SGI的特色是NUMA LINK,难道说SGI的机器使用的其实是NUMA的架构?已知NUMA架构是和SMP类似的(wiki,NUMA architectures logically follow in scaling from symmetric multiprocessing (SMP) architectures.)
那么NUMA和SMP的区别与联系是什么呢


才发现,老师给我的《可扩展并行计算》里面就已经讲了各种架构。唉,本科就已经给我的宝藏,我到现在才发现。现在简单了解一下各种架构,然后慢慢地看书学习。不能影响当前的科研进度。

现在的家用电脑是NUMA架构的吗?


http://chatgpt.dhexx.cn/article/lj8T6S67.shtml

相关文章

MPP 与 Hadoop是什么关系?

链接:https://www.zhihu.com/question/22037987/answer/106984010 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 1. hadoop(hive)跟mpp的本质区别是什么,这个有的时候界限很模糊,比…

RKMPP库快速上手--(四)MPP编码入门

首先,了解MPP编码之前,先了解一下MPP的MPI接口。 1、MPI接口结构 MPP设计的MPI接口,下面的图都来自于官方参考文档: MppMem:C库malloc内存的封装; MppBuffer:dmabuf内存的封装; MppPacket:一维缓存封装,可以从MppMem、MppBuffer生成,用来表示码流数据; MppFram…

MPP数据库初识

MPP数据库初识 先了解下OLTP与OLAP区别为什么需要MPP数据库?MPP数据库应用领域什么是MPP?MPP架构特征MPPDB架构什么是MPP数据库?MPP数据库的使用场景?MPPDB、Hadoop与传统数据库技术对比与适用场景 先了解下OLTP与OLAP区别 OLTP(…

MPP架构,SMP架构,NUWA架构

MPP架构 随着分布式、并行化技术成熟应用,MPP引擎逐渐表现出强大的高吞吐、低时延计算能力,有很多采用MPP架构的引擎都能达到“亿级秒开 MPP是由多台SMP服务器通过一定的节点互联网络进行连接,协同工作,完成相同的任务&#xff0…

MPP架构是什么?看这一篇就行了。。

文章目录 MPP是什么SMP- Symmetric Multi-Processor 对称多处理器结构NUMA -Non-Uniform Memory Access 非一致存储访问结构MPP -Massive-Parallel Processing 海量并行处理架构 MPP DB- Share Disk- Share Nothing 典型MPP DBGreenplumTeradataImpalaPrestoElasticSearchVerti…

MPP数据库

MPP数据库定义 MPP即大规模并行处理(Massively Parallel Processor )。 在数据库非共享集群中,每个节点都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上,每台数据节点通过专用网…

MPP数据库简介及架构分析

目录 什么是MPP?特性并行处理超大规模 数据仓库真正适合什么典型的分析工作量数据集中化线性可伸缩性 MPP架构技术特性数据库架构分析Shared EverythingShared DiskShare MemoryShared NothingShared Nothing数据库架构优势 什么是MPP? MPP (Massively P…

什么是MPP数据库?

大规模并行分析(MPP)数据库(Analytical Massively Parallel Processing (MPP) Databases)是针对分析工作负载进行了优化的数据库:聚合和处理大型数据集。MPP数据库往往是列式的,因此MPP数据库通常将每一列存…

MPP数据库简介

1、先了解下OLTP与OLAP区别 OLTP(OnLine Transaction Processing ,联机事务处理)系统 例如mysql。擅长事务处理,在数据操作中保持着很强的一致性和原子性 ,能够很好的支持频繁的数据插入和修改 ,但是,一旦数据量过大…

MPP(大规模并行处理)

1、 什么是MPP? MPP (Massively Parallel Processing),即大规模并行处理,在数据库非共享集群中,每个节点都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上,每台数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体…

MPP架构

MPP架构 0x01 摘要 本文综合各家看法,再加上个人理解,介绍下对MPP架构的理解以及一些其他架构的对比。 0x02 MPP架构基本概念 2.1 什么是MPP MPP,全称为Massively Parallel Processor,翻译过来就是大规模并行处理。MPP系统是由…

MPP(大规模并行处理)简介

1、 什么是MPP? MPP (Massively Parallel Processing),即大规模并行处理,在数据库非共享集群中,每个节点都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上,每台数据节…

基于WiFi的Android局域网即时通讯软件

基于WiFi的Android局域网即时通讯软件,通过自建WiFi热点的方式与其他移动设备进行通信,实现了文字聊天、语音留言、文件互传等功能,满足基本的日常使用需求。 下载地址:http://www.devstore.cn/code/info/670.html 运行截图&…

基于WiFi的Android局域网即时通讯软件——Android源码

基于WiFi的Android局域网即时通讯软件 基于WiFi的Android局域网即时通讯软件,通过自建WiFi热点的方式与其他移动设备进行通信,实现了文字聊天、语音留言、文件互传等功能,满足基本的日常使用需求。 下载地址:http://www.devstore.…

局域网即时通讯软件_企业即时通讯软件需要符合哪些要求?

随着网络信息的发展,市面上出现了大量的企业即时通讯软件,旨在帮助企业打通信息化的道路。很多企业不知道该如何正确选择一款符合要求的通讯软件,选择的标准应该从哪些方面入手。下面企达小编为大家详细介绍一下。 1、数据安全性 企业的商业部…

局域网即时通讯软件_远程桌面监控软件好不好用?哪个好?

远程桌面监控软件好不好用?哪个好?有时候经常需要进行远程协助,大家第一时间想到的就是QQ远程协助了,没错,QQ可以,但是 QQ远程协助很卡顿,响应不及时。电脑自带应用不会设置,这可怎么办?超级眼远程监控软…

局域网即时通讯软件_做企业即时通讯软件,我们是认真的

协同办公无非分为外部沟通和内部沟通两种局势,内部沟通则是企业协同工作的一部分,注重效率;外部沟通为企业社交,注重便捷,从而实现内部沟通的高效性,是协同办公工具所要解决的基础性问题。真心特别羡慕那些…

局域网即时通信软件都有哪些?要如何选择?

近些年来,由于企业内部敏感信息通过即时通信软件和互联网泄露的事件频发,许多企业对于内部信息安全保护越来越重视。除了使用局域网环境办公以外,还会采用局域网即时通信软件来作为内部沟通工具,降低信息泄露的风险。那么局域网即…

c语言即时通讯软件源码,即时通讯软件源码-基于c语言即时通讯软件代码实现

我不知道哪种语言无关紧要。开源,我不知道该用什么。 即时通讯软件源代码为JAVA语言 对于即时通讯软件源代码最好是用C语言编写的,想学一下,感谢您即时通讯软件有什么。 includewinscock2、h# includewinscock2、h# includesting。h# includewindows。h# includePROCESS。h#…

基于Qt的局域网即时通讯软件

以前写的一篇日志,不小心删了,竟然没得恢复。万恶的CSDN,重排版。 第一个写的软件。基本上还是很粗糙,而且代码也大多不是自己写的,不过也着实让我过了一把瘾。接下来简单地讲讲整个过程和学到的东西吧。 首先是软件的…