SMP和MPP的优缺点

SMP的全称是"对称多处理"(Symmetrical Multi-Processing)技术,是指在一个计算机上聚集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构。它是相对非对称多处理技术而言的、应用十分普遍的并行技术。在这种架构中,一台电脑再也不由单个CPU组成,而同时由多个处理器运行操做系统的单一复本,并共享内存和一台计算机的其余资源。虽然同时使用多个CPU,可是从管理的角度来看,它们的表现就像一台单机同样。系统将任务队列对称地分布于多个CPU之上,从而极大地提升了整个系统的数据处理能力。全部的处理器均可以平等地访问内存、I/O和外部中断。在对称多处理系统中,系统资源被系统中全部CPU共享,工做负载可以均匀地分配到全部可用处理器之上。数据库

    在国内市场上这类机型的处理器通常以4个或8个为主,有少数是16个处理器。可是通常来说,SMP结构的机器可扩展性较差,很难作到100个以上多处理器,常规的通常是8个到16个,不过这对于多数的用户来讲已经够用了。这种机器的好处在于它的使用方式和微机或工做站的区别不大,编程的变化相对来讲比较小,原来用微机工做站编写的程序若是要移植到SMP机器上使用,改动起来也相对比较容易。SMP结构的机型可用性比较差。由于4个或8个处理器共享一个操做系统和一个存储器,一旦操做系统出现了问题,整个机器就彻底瘫痪掉了。并且因为这个机器的可扩展性较差,不容易保护用户的投资。可是这类机型技术比较成熟,相应的软件也比较多,所以如今国内市场上推出的并行机大量都是这一种。PC服务器中最多见的对称多处理系统一般采用2路、4路、6路或8路处理器。目前UNIX服务器可支持最多64个CPU的系统,如Sun公司的产品Enterprise 10000。SMP系统中最关键的技术是如何更好地解决多个处理器的相互通信和协调问题。编程

    要组建SMP系统,首先最关键的一点就是须要合适的CPU相配合。咱们平时看到的CPU都是单颗使用,因此看不出来它们有什么区别,可是,实际上,支持SMP功能并非没有条件的,随意拿几块CPU来就能够创建多处理系统那简直是天方夜谈。要实现SMP功能,咱们使用的CPU必须具有如下要求:服务器

    一、CPU内部必须内置APIC(Advanced Programmable Interrupt Controllers)单元。Intel 多处理规范的核心就是高级可编程中断控制器(Advanced Programmable Interrupt Controllers--APICs)的使用。CPU经过彼此发送中断来完成它们之间的通讯。经过给中断附加动做(actions),不一样的CPU能够在某种程度上彼此进行控制。每一个CPU有本身的APIC(成为那个CPU的本地APIC),而且还有一个I/O APIC来处理由I/O设备引发的中断,这个I/O APIC是安装在主板上的,但每一个CPU上的APIC则不可或缺,不然将没法处理多CPU之间的中断协调。
    二、相同的产品型号,一样类型的CPU核心。例如,虽然Athlon和Pentium III各自都内置有APIC单元,想要让它们一块儿创建SMP系统是不可能的,固然,即便是Celeron和Pentium III,那样的可能性也为0,甚至Coppermine核心的Pentium III和Tualatin的Pentium III也不能创建SMP系统--这是由于他们的运行指令不彻底相同,APIC中断协调差别也很大。
    三、彻底相同的运行频率。若是要创建双Pentium III系统,必须两颗866MHz或者两颗1000MHz处理器,不能够用一颗866MHz,另外一颗1000MHz来组建,不然系统将没法正常点亮。
    四、尽量保持相同的产品序列编号。即便是一样核心的相同频率处理器,因为生产批次不一样也会形成难以想象的问题。两个生产批次的CPU做为双处理器运行的时候,有可能会发生一颗CPU负担太高,而另外一颗负担不多的状况,没法发挥最大性能,更糟糕的是可能致使死机,所以,应该尽量选择同一批生产的处理器来组建SMP系统。架构

MPP (Massively Parallel Processing),大规模并行处理系统,这样的系统是由许多松耦合的处理单元组成的,要注意的是这里指的是处理单元而不是处理器。每一个单元内的CPU都有本身私有的资源,如总线,内存,硬盘等。在每一个单元内都有操做系统和管理数据库的实例复本。这种结构最大的特色在于不共享资源。性能

 

--------------------------------------------------------------------------------操作系统


        既然有两种结构,那它们各有什么特色呢?采用什么结构比较合适呢?一般状况下,MPP系统由于要在不一样处理单元之间传送信息,因此它的效率要比SMP要差一点,可是这也不是绝对的,由于MPP系统不共享资源,所以对它而言,资源比SMP要多,当须要处理的事务达到必定规模时,MPP的效率要比SMP好。这就是看通讯时间占用计算时间的比例而定,若是通讯时间比较多,那MPP系统就不占优点了,相反,若是通讯时间比较少,那MPP系统能够充分发挥资源的优点,达到高效率。当前使用的OTLP程序中,用户访问一个中心数据库,若是采用SMP系统结构,它的效率要比采用MPP结构要快得多。而MPP系统在决策支持和数据挖掘方面显示了优点,能够这样说,若是操做相互之间没有什么关系,处理单元之间须要进行的通讯比较少,那采用MPP系统就要好,相反就不合适了。队列

        对于SMP来讲,制约它速度的一个关键因素就是那个共享的总线,所以对于DSS程序来讲,只能选择MPP,而不能选择SMP,当大型程序的处理要求大于共享总线时,总线就没有能力进行处理了,这时SMP系统就不行了。固然了,两个结构互有优缺点,若是可以将两种结合起来取长补短,固然最好了。事务

相关文章
相关标签/搜索