zoukankan      html  css  js  c++  java
  • 认识多处理器架构

    常见的多处理器架构有哪些?

    • SMP(Symmetric Multi-Processor) 对称多处理器结构
    • NUMA(Non-Uniform Memory Access) 非统一内存访问架构
    • MPP(Massive Parallel Processing) 大规模并行处理结构

    他们都是如何工作的?

    SMP

    所谓对称多处理器结构,就是指服务器中多个CPU对称工作,无主次或从属关系,他们共享总线和内存。
    各CPU内部必须内置APIC(Advanced Programmable Interrupt Controllers)高级可编程中断控制器单元。用来相互发送中断协调工作。

    NUMA

    NUMA的基本特征是具有多个CPU模块,每个CPU模块可以由多个CPU组成,并且具有独立的本地内存、I/O槽口等。
    节点之间可以通过互联模块(如称为Crossbar Switch)进行连接和信息交互,因此每个CPU可以访问整个系统的内存。

    MMP

    MMP基本特征是由多个服务器通过互联网络连接而成,每个节点只访问自己的本地资源(内存、存储等),是一种完全无共享(Share Nothing)结构。
    多个服务器通过互联网络进行连接,协同工作,完成相同的任务,从用户的角度来看是一个服务器系统。

    他们各自的缺点

    SMP

    随着CPU数量的增加,内存访问冲突将迅速增加,最终会造成CPU资源的浪费,使CPU性能的有效性大大降低。
    并且因为共享内存,内存可拓展性受限。

    NUMA

    互联机制影响,访问本地内存快,访问远端内存慢,所以不能实现线性增长。
    当用于数据仓库环境时,由于大量复杂的数据处理必然导致大量的数据交互,将使CPU的利用率大大降低。

    MMP

    MPP服务器太复杂了,需要一种复杂的机制来调度和平衡各个节点的负载和并行处理过程。

    他们各自的优势

    SMP

    越简单效率越高,特别是在不需要远程通讯的情况下。

    NUMA

    能够集成大量CPU,适合处理大量计算。

    MMP

    MMP系统不共享资源,因此对它而言,可拓展的资源比SMP要多,当需要处理的事务达到一定规模时,MPP的效率要比SMP好。

    总结

    在计算机发展的某一个阶段,CPU的处理性能比较差,不如内存的性能强,所以诞生了SMP框架,多个CPU协同工作解决了CPU性能问题。
    后来CPU的性能发展上来了,所以可以更多的内存来提高性能,但是因为SMP的多个CPU共享内存,内存的可拓展性受到限制(毕竟主板可插内存数量有限),
    所以诞生了NUMA,NUMA有效的解决了内存拓展性的问题,但是呢NUMA访问远端内存的效率不如访问本地的,所以性能不能线性增长。
    而MMP不仅解决了拓展性问题,而且每个节点只访问自己的资源,从而实现了线性增长。

    个人博客:https://geanqin.github.io/

  • 相关阅读:
    python入门(变量命名规则)
    基础数据类型(不可变数据类型)
    记录Linux下安装elasticSearch时遇到的一些错误
    利用谷歌 kaptcha 进行验证码生成
    分布式拒绝服务攻击
    python3.5文档
    python反射机制
    tornado 使用tornado让你的请求异步非阻塞
    tornado的入门教程
    spark 环境变量系列配置
  • 原文地址:https://www.cnblogs.com/gean/p/12737335.html
Copyright © 2011-2022 走看看