大数据之MPP架构


从并行/平行计算系统内存架构来看,目前商用服务器大体可以分为三类,即 对称多处理器架构(SMP:Symmetric Multi-Processor), 非一致性存储访问架构(NUMA:Non-Uniform Memory Access),以及 海量并行处理架构(MPP:Massive Parallel Processing)。

一、对称多处理器架构

对称多处理器(Symmetric Multi-Processing),简称SMP,是指在一个计算机上汇集了一组处理器(也即多个CPU),处理器之间对称工作,无主次和从属关系;处理器之间通过共享北桥内存控制器实现外部内存和IO共同访问,也就是说处理器对内存和I/O访问方式和开销都相同,因此SMP也被称为一致存储器访问结构(UMA:Uniform Memory Access)。
对称多处理器架构

对SMP系统进行扩展的方式包括增加内存、使用更快的CPU、增加CPU、扩充I/O(槽口数与总线数)以及添加更多的外部设备(通常是磁盘存储)。SMP系统的主要特征是共享,系统中所有资源(CPU、内存、I/O 等)都是共享的。也正是由于这种特征,导致了SMP系统的主要问题,那就是它的扩展能力非常有限。对于SMP系统而言,每一个共享的环节都可能造成SMP 系统扩展时的瓶颈,而最受限制的则是内存。由于每个CPU必须通过相同的内存总线访问相同的内存资源,因此随着CPU数量的增加,内存访问冲突将迅速增加,最终会造成CPU资源的浪费,使CPU性能的有效性大大降低。实验证明,SMP系统CPU利用率最好的情况是2至4个 CPU。

二、非一致性存储访问架构

非一致性存储访问架构(Non-uniform Memory Architecture),简称NUMA,是为了解决传统对称多处理(Symmetric Multi-processor)系统可扩展性问题而诞生的。NUMA系统基本特征是具有多个处理器模块,每个处理器模块由多个处理器组成,并且具有独立的本地内存、I/O槽口等。

非一致性存储访问架构

NUMA系统节点之间可以通过互联模块(即Crossbar Switch或Bus Interconnect)进行连接和信息交互,因此每个CPU可以访问整个系统的内存(这是NUMA系统与MPP系统的重要差别)。显然,访问本地内存的速度将远远高于访问远地内存(系统内其它节点的内存)的速度,这也是非一致存储访问NUMA的由来。由于这个特点,为了更好地发挥系统性能,开发应用程序时需要尽量减少不同CPU模块之间的信息交互。利用NUMA 技术,可以较好地解决原来 SMP系统的扩展问题,在一个物理服务器内可以支持上百个CPU。比较典型的NUMA服务器的例子包括HP的Superdome、Sun 15K、IBM PSeries 690等。

但 NUMA 技术同样有一定缺陷,由于访问远地内存的延时远远超过本地内存,因此当CPU数量增加时,系统性能无法线性增加。如HP公司发布Superdome服务器时,曾公布了它与HP其它 UNIX服务器的相对性能值,结果发现,64路CPU的Superdome (NUMA结构)的相对性能值是20,而8路N4000(共享的 SMP 结构)的相对性能值是6.3。从这个结果可以看到,8倍数量的CPU换来的只是3倍性能的提升。

三、海量并行处理架构

和NUMA不同,MPP提供了另外一种进行系统扩展的方式,它由多个SMP服务器通过一定的节点互联网络进行连接,协同工作,完成相同的任务,从用户的角度来看是一个服务器系统。其基本特征是由多个SMP服务器(每个SMP服务器称节点)通过节点互联网络连接而成,每个节点只访问自己的本地资源(内存、存储等),是一种完全无共享(Share Nothing)结构,因而扩展能力最好,理论上其扩展无限制。

海量并行处理架构

3.1 NUMA与MPP的区别

从架构来看,NUMA与MPP具有许多相似之处:它们都由多个节点组成,每个节点都具有自己的CPU、内存、I/O,节点之间都可以通过节点互联机制进行信息交互。
那么,它们的区别在哪里?首先是节点互联机制不同,NUMA的节点互联机制是在同一个物理服务器内部实现的,当某个CPU需要进行远地内存访问时,它必须等待,这也是NUMA服务器无法实现CPU增加时性能线性扩展的主要原因。而MPP的节点互联机制是在不同的SMP服务器外部通过I/O实现的,每个节点只访问本地内存和存储,节点之间的信息交互与节点本身的处理是并行进行的。因此MPP在增加节点时性能基本上可以实现线性扩展。其次是内存访问机制不同。在NUMA服务器内部,任何一个CPU可以访问整个系统的内存,但远地访问的性能远远低于本地内存访问,因此在开发应用程序时应该尽量避免远地内存访问。在MPP服务器中,每个节点只访问本地内存,不存在远地内存访问的问题。

3.2 MPP DB

MPPDB是一款 Shared Nothing架构的分布式并行结构化数据库集群,具备高性能、高可用、高扩展特性,可以为超大规模数据管理提供高性价比的通用计算平台,并广泛地用于支撑各类数据仓库系统、BI 系统和决策支持系统。典型代表产品如Impala、Presto、Hive等。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值