恶魔的囚禁gl:SMP、MPP、COMA、集群和NUMA技术简介

来源:百度文库 编辑:中财网 时间:2024/05/03 08:41:29
此篇文章对一些主流的并行技术,例如SMP技术、MPP技术、COMA技术、集群技术和NUMA技术作以简要的介绍 ,^_^         对于服务器而言(不管是PC服务器,还是UNIX服务器),单纯地提高单个处理器的运算能力和处理能力正在变得越来越难,虽然许多制造商从材料、工艺和 设计等方面进行了不懈的努力,近期内仍然使得CPU保持着高速的增长势态,但高频之下的高功耗所引起的电池容量问题和散热问题等负面效应,以及这些负面效 应对整机系统产生的电磁兼容性问题,又反过来将CPU运算能力的提升推到了暮年。显然,提高单个处理器速度和性能已是强弩之末,而研发多个CPU的并行处 理技术,才是真正提高现代服务器处理能力和运算速度的有效途径。这也正是多处理器服务器不仅是UNIX服务器的专利,而且也是已经在PC服务器中普遍采用 的原因。目前,业界比较关注的并行处理技术主要有SMP技术、MPP技术、COMA技术、集群技术和NUMA技术等。

1.SMP技术
        SMP(对称多处理—Symmetrical MultiProcessing)技术是相对非对称多处理技术而言的、应用十分广泛的并行技术。在这种架构中,多个处理器运行操作系统的单一复本,并共享 内存和一台计算机的其他资源。所有的处理器都可以平等地访问内存、I/O和外部中断。

        在非对称多处理系统中,任务和资源由不同处理器进行管理,有的CPU只处理I/O,有的CPU只处理操作系统的提交任务,显然非对称多处理系统是不能实现负载均衡的。在对称多处理系统中,系统资源被系统中所有CPU共享,工作负载能够均匀地分配到所有可用处理器之上。

        目前,大多数SMP系统的CPU是通过共享系统总线来存取数据,实现对称多处理的。如某些RISC服务器厂商使用Crossbar或Switch方式连接多个CPU,虽然性能和可扩展性优于Intel架构,但SMP的扩展性仍有限。

        在SMP系统中增加更多处理器的难点是系统不得不消耗资源来支持处理器抢占内存,以及内存同步两个主要问题。抢占内存是指当多个处理器共同访问内存中的 数据时,它们并不能同时去读写数据,虽然一个CPU正读一段数据时,其他CPU可以读这段数据,但当一个CPU正在修改某段数据时,该CPU将会锁定这段 数据,其他CPU要操作这段数据就必须等待。

        显然,CPU越多,这样的等待问题就越严重,系统性能不仅无法提升,甚至下降。为了 尽可能地增加更多的CPU,现在的SMP系统基本上都采用增大服务器Cache容量的方法来减少抢占内存问题,因为Cache是CPU的“本地内存”,它 与CPU之间的数据交换速度远远高于内存总线速度。又由于Cache支持不共享,这样就不会出现多个CPU抢占同一段内存资源的问题了,许多数据操作就可 以在CPU内置的Cache或CPU外置的Cache中顺利完成。

        然而,Cache的作用虽然解决了SMP系统中的抢占内存问 题,但又引起了另一个较难解决的所谓“内存同步”问题。在SMP系统中,各CPU通过Cache访问内存数据时,要求系统必须经常保持内存中的数据与 Cache中的数据一致,若Cache的内容更新了,内存中的内容也应该相应更新,否则就会影响系统数据的一致性。由于每次更新都需要占用CPU,还要锁 定内存中被更新的字段,而且更新频率过高又必然影响系统性能,更新间隔过长也有可能导致因交叉读写而引起数据错误,因此,SMP的更新算法十分重要。目前 的SMP系统多采用侦听算法来保证CPU Cache中的数据与内存保持一致。Cache越大,抢占内存再现的概率就越小,同时由于Cache的数据传输速度高,Cache的增大还提高了CPU的 运算效率,但系统保持内存同步的难度也很大。

        在硬件方面,SMP可以在UltraSPARC、SPARCserver、Alpha以及PowerPC架构上实现,也可以利用包括486以上所有Intel芯片来实现。

2.集群技术
        集群(Cluster)技术是近几年兴起的发展高性能计算机的一项技术。它是一组相互独立的计算机,利用高速通信网络组成一个单一的计算机系统,并以单 一系统的模式加以管理。其出发点是提供高可靠性、可扩充性和抗灾难性。一个集群包含多台拥有共享数据存储空间的服务器,各服务器通过内部局域网相互通信。 当一台服务器发生故障时,它所运行的应用程序将由其他服务器自动接管。在大多数模式下,集群中所有的计算机拥有一个共同的名称,集群内的任一系统上运行的 服务都可被所有的网络客户使用。采用集群系统通常是为了提高系统的稳定性和网络中心的数据处理能力及服务能力。

常见集群技术有:
(1)服务器镜像技术
(2)应用程序错误接管集群技术
        错误接管集群技术是将建立在同一个网络里的两台或多台服务器通过集群技术连接起来,集群节点中的每台服务器各自运行不同的应用,具有自己的广播地址,对前端用户提供服务,同时每台服务器又监测其他服务器的运行状态,为指定服务器提供热备份服务。

        错误接管集群技术通常需要共享外部存储设备—磁盘阵列柜,两台或多台服务器通过SCSI电缆或光纤与磁盘阵列柜相连,数据都存放在磁盘阵列柜上。这种集 群系统中通常是两个节点互为备份的,而不是几台服务器同时为一台服务器备份,集群系统中的节点通过串口、共享磁盘分区或内部网络来互相监测对方的心跳。

        错误接管集群技术经常用在数据库服务器、MAIL服务器等的集群中。这种集群技术由于采用共享存储设备,所以增加了外设费用。它最多可以实现32台机器 的集群,极大地提高了系统的可用性及可扩展性。目前在提高系统的可用性方面用得比较广泛的是应用程序错误接管技术,即我们通常所采用的双机通过SCSI电 缆共享磁盘阵列的集群技术。

(3)容错集群技术
        容错集群技术的一个典型的应用即容错机,在容错机中,每一个部件都具有冗余设计。容错集群技术的实现往往需要特殊的软硬件设计,因此成本很高,但是容错系统最大限度地提高了系统的可用性,是财政、金融和安全部门的最佳选择。

3.NUMA技术
        现今的64位UNIX并行计算服务器可分为两类:分布式共享存储结构(DSM)和集群系统。非均匀存储访问(NUMA)是一种并行模型,属于DSM这一 类。NUMA的物理内存分布在不同节点上,在一个处理器存取远程节点的数据,比存取同一点的局部数据“路径”远一些,时间长一些,所以是非均匀存储访问。

        对称多处理也是一种共享存储器的多处理机结构。它的单一寻址空间、简单的编程方式、操作方便是其容易普及的主要原因。大规模并行处理(MPP)属于集群 系统这一类体系结构,它的优势是可扩展性好,但需要并行编程和并行编译,使用不便。NUMA系统把SMP与集群的优势结合在一起,它既有SMP的可编程 性,又具有集群的可扩展性。实际上,这一“优势的结合”实为一种折衷,其中关键是寻求结合的途径并确定结合点。

NUMA3系统架构的由来
        NUMA(非均匀存储器存取结构-Non Uniform Memory Access Architecture)是在八十年代后期作为斯坦福大学的一个研究项目诞生的。1995年,SGI与斯坦福大学DASH项目组一起设计出了第一代 NUMA系统;1996年,SGI推出了第二代NUMA系统,该系统的处理器数目可以从32个一直扩展到512个,并且系统带宽可随处理器数目增加而线性 扩展;为了进一步扩展NUMA架构的功能和提高灵活性,SGI在2000年秋季推出了第三代NUMA系统,简称NUMA3系统。新系统可以使系统的计算能 力、内存容量、外存容量、图形性能及联网能力独立地扩展,NUMA3系统具有多功能性、模块化、灵活性等三大特点。用户可根据需要量体裁衣地配置系统,因 而投资可以得到充分保护。

        第三代NUMA系统采用不同的功能模块(Brick)构成,这些模块比第二代NUMA机的模块小,功能更专一、更具可扩展性,而且尺寸标准化,这就进一步增加了系统的灵活性。

        在第三代NUMA服务器中,采用性能更好的交叉开关Bedrock,所有的处理器和存储器通过Bedrock连接在一起。这些处理器、存储器和交叉开关 的结合组成了称为NUMAlink的互联结构。另外,在第三代NUMA服务器中采用了更先进的路由芯片,通过使用特殊的光缆提供具有高带宽和极低延迟的互 联网络,路由芯片所有的Bedrock交叉开关连接起来形成一个单一的、连续的达1TB的存储空间。处理器和本地以及远程存储器之间的通信宽带(双向)由 原来的1.6GBps提高到3.2GBps。另外,电源采用N+1的冗余方式,因此可靠性也进一步提高。

        在NUMA体系结构中, 每个处理器与自已的本地存储器和高速缓存相连,多个处理器通过处理器、存储器互联网络相连。处理器还通过处理器、I/O网络访问共享的I/O和外围设备。 至于处理器之间的通信则通过可选的处理器之间的通信网络来实现。NMUA技术在科学与工程计算领域具有不可替代的地位,在联机事务处理(OLTP)、决策 支持服务(DSS)和Intranet以及Internet中的地位也越来越重要。目前,NUMA并行机的处理器数目可达到512个,且带宽可随处理器数 目基本上呈线性扩展。这样大的处理器数,使单一系统映像的NUMA机足以覆盖绝大多数的应用。首先,由于它具有与SMP相同的编程模式,因此在科学与工程 计算领域具有不可替代的地位;其次,由于它具有共享内存和良好的可扩展性优势,所以能很好适应企业数据中心的多种应用。

        今天,NUMA系统能够运行世界上一些最大的UNIX数据库应用,而且正被广泛接受为电子商务的主流技术,包括处理功能、I/O的大规模可扩展性、高可用性、工作负荷和资源管理的广泛灵活性,而且无需改变SMP编程模型。

存储一致性与ccNUMA
        在NUMA并行机中,虽然存储器在物理上被分配到各节点中,但可被系统内所有处理器访问或共享。存储一致性问题是由于多个处理器共享同一个存储单元而引 起的。SGI采用高速缓存一致性(Cache Coherent)技术来解决存储一致性问题,这就是“ccNUMA”并行机名称的由来。

        在ccNUMA系统中,每个CPU有一个私用高速缓冲存储器。为了得到较好的性能,CPU经常在它的高速缓存中取指令及存储数据。
 我们知道,当今数据计算领域的主要应用程序和模型可大致分为联机事务处理(OLTP)、决策支持系统(DSS)和企业信息通讯(BusinessCommunications)三大类。而小型独立服务器模式、SMP(对称多处理)模式、MPP(大规模并行处理)模式和NUMA模式,则是上述3类系统设计人员在计算平台的体系结构方面可以采用的选择。
为了全面的了解NUMA的优势,我们不妨先来考察一下这集中模式在处理器与存储器结构方面的区别。
SMP模式将多个处理器与一个集中的存储器相连。在SMP模式下,所有处理器都可以访问同一个系统物理存储器,这就意味着SMP系统只运行操作系统的一个拷贝。因此SMP系统有时也被称为一致存储器访问(UMA)结构体系,一致性意指无论在什么时候,处理器只能为内存的每个数据保持或共享唯一一个数值。很显然,SMP的缺点是可伸缩性有限,因为在存储器接口达到饱和的时候,增加处理器并不能获得更高的性能。
MPP模式则是一种分布式存储器模式,能够将更多的处理器纳入一个系统的存储器。一个分布式存储器模式具有多个节点,每个节点都有自己的存储器,可以配置为SMP模式,也可以配置为非SMP模式。单个的节点相互连接起来就形成了一个总系统。MPP体系结构对硬件开发商颇具吸引力,因为它们出现的问题比较容易解决,开发成本比较低。由于没有硬件支持共享内存或高速缓存一致性的问题,所以比较容易实现大量处理器的连接。
可见,单一SMP模式与MPP模式的关键区别在于,在SMP模式中,数据一致性是由硬件专门管理的,这样做比较容易实现,但成本较高;在MPP模式中,节点之间的一致性是由软件来管理,因此,它的速度相对较慢,但成本却低得多。
在美国某大学的研究项目中被提出来的NUMA模式,也采用了分布式存储器模式,不同的是所有节点中的处理器都可以访问全部的系统物理存储器。然而,每个处理器访问本节点内的存储器所需要的时间,可能比访问某些远程节点内的存储器所花的时间要少得多。换句话说,也就是访问存储器的时间是不一致的,这也就是这种模式之所以被称为“NUMA”的原因。简而言之,NUMA既保持了SMP模式单一操作系统拷贝、简便的应用程序编程模式以及易于管理的特点,又继承了 MPP模式的可扩充性,可以有效地扩充系统的规模。这也正是NUMA的优势所在。