《【教学课件】第八章多计算机系统.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第八章多计算机系统.ppt(54页珍藏版)》请在三一办公上搜索。
1、第八章 多计算机系统,8.1 集群计算机系统结构8.2 典型集群系统实例8.3 MPP系统8.4 网格技术8.5 网格实例,第一节 集群计算机系统结构,集群系统就是多个独立计算机的集合。本节将从集群系统的基本概念开始,对集群系统的结构、集群系统的特点、集群间通信、集群间资源管理和任务调度以及集群间并行程序设计环境等问题分别进行介绍,1.集群系统的基本概念和结构集群系统由将多个高性能的工作站或高档微型计算机,使用高性能网络互连在一起,协同完成特定的并行任务.它是一种造价低廉、易于构建且具有较好可扩放性的体系结构。集群系统中的主机和网络可以是同构的,也可以是异构的。下图为一个包含四节点的集群系统,
2、构成集群的每台计算机都被称为一个结点。每个结点都是一个完整的系统,拥有本地磁盘和自己的完整的操作系统。除了PC外,集群的结点还可以是工作站,甚至是规模较大的对称多处理机。,集群的每个结点一般通过商品化网络连接在一起,如以太网、FDDI、Myrinet等,部分商用集群也采用专用网络连接,如SP Switch,Crossbar等。网络接口与结点I/O总线以松散耦合的方式相连,如图中的NIC与PCI。从结构上看,集群系统属于分布存储系统,由建立在通用操作系统之上的并行编程环境完成系统的资源管理及相互协作,同时也屏蔽工作站和网络的异构性。对程序员和用户来说,集群系统是一个整体的并行系统。集群系统中的结
3、点机间采用消息传递方式通信。,2.集群系统的特点与传统并行计算机系统相比,集群系统具有许多优点:系统开发周期短可靠性高可扩缩性强性价比高用户编程方便,集群不足之处:由于集群由多台完整的计算机组成,它的维护相当于要同时管理多个计算机系统,因此维护工作量较大,维护费用也较高。对称多处理机则相对较好,因为管理员只要维护一个计算机系统即可。正因为如此,现在很多集群采用对称多处理机作为结点,这样可以减少结点数量,从而减少维护工作量和降低开支。,3.集群系统的通信技术(1)现有集群一般是使用商用以太网连接,通信协议使用的TCP/IP.集群通信具有以下缺点:网络通信频宽低多层结构的TCP/ICP协议处理开销
4、大协议复杂的缓冲管理增加了网络延迟操作系统的额外开销,(2)提高集群通信效率的方法采用新型高速网络以提高网络通信频宽目前出现了多种新型的高速网络,如共享介质型的快速以太网和基于开关型的ATM和Myrinet,极大地提高了通信频宽。设计新的通信协议以降低通信延迟在用户空间实现通信协议:直接对网络硬件设备进行必要的操作,减少通信数据的拷贝次数,提高通信效率;二是减少对操作系统调用的额外时间开销;三是用户态协议可根据用户的实际应用需求来设计,减少协议不必要的冗余。,精简通信协议。第一方面是功能的精简,删除不必要的功能呢,第二方面是协议层次的精简,合并协议各层的功能呢,使得通信协议变为一层,以达到减少
5、数据传输次数的目的。Active Message通信机制Active Message是消息驱动的异步通信方式。Active Message的通信原理如下:,消息除包含通常的数据项外,还增加了两项:消息处理程序指针Handler和参数。当消息达到目的结点时,结点处理机立即产生中断调用,由该消息的Handler启动相应的消息处理程序。消息处理程序的功能是从网卡上取出该消息并给发送方发送一个应答消息,然后返回原来被中断的程序。Active Message通信机制有两个突出特点:一是消息驱动的异步通信方式,二是简化了对通信数据的缓冲管理。,4.集群系统资源管理和调度集群操作系统是在各结点的操作系统之上
6、再构建一层操作系统来管理整个集群,即建立一个全局UNIX,用来解决集群系统中所有资源管理,包括组调度、资源分配和并行文件系统等。这就是集群操作系统。集群操作系统须具有以下特性:,单一系统映像(Single System Image,SSI)1.单一入口点:用户连接到集群而不是某个具体结点;2.单一文件系统:用户看到单个目录和文件层次;3.单一作业管理系统:用户可以透明地从任一结点提交作业,作业能在整个集群系统中透明地竞争资源。4.单控制点:用户可以从控制工作站单点控制管理整个系统,实现系统的安装、监督和配置、系统操作、用户管理等功能。,负载均衡负载平衡就是将各个任务均衡得分布到集群系统的各处理
7、结点,以充分利用系统资源,提高各结点的利用率和整个系统的吞吐率。衡量负载平衡的指标吞吐率:系统上运行的应用程序的响应时间或平均完成时间。可扩展性:系统规模增大或总负载大小变化时系统负载平衡的适应能力。容错性:处理机发生故障后任务恢复运行的能力。,实现负载均衡的任务调度算法静态调度:在编译时根据用户程序中的各种信息(如各个任务的计算量大小、依赖关系和通信关系等)和并行系统的状况(如网络结构、各处理结点计算能力等)对用户程序中的并行任务作出静态的分配策略,动态调度方法:通过分析并行系统的实时负载信息,动态地将任务在各处理机之间进行分配和调度,以消除系统中负载分布的不均衡静态调度在高度并行环境下不够
8、均衡不准确,造成资源利用不足动态调度会给集群带来额外的计算开销,5.集群系统并行程序设计环境(1)PVM(Parallel Virtual Machine,并行虚拟机)它允许将网络上基于UNIX操作系统的并行机和单处理机的集合当成一台“并行虚拟机”来使用。PVM支持多种体系结构的计算机、工作站等,给用户提供一个功能强大的分布式计算机系统.具有以下特点:,PVM系统支持多用户及多任务运行,多个用户可将系统配置成相互重叠的虚拟机,每个用户可以同时执行多个应用程序。系统提供一组便于使用的通信原语,可以实现一个任务向其它任务发消息、向多个任务发消息,以及阻塞和非阻塞收发消息等功能,用户编程与网络接口分
9、离。系统还实现了通信缓冲区的动态管理机制。PVM支持进程组,可以把一些进程组组成一个组,一个进程可属于多个进程组,而且可以在执行时动态变改变。支持异构计算机联网构成并行虚拟计算机系统。具有容错功能。当一个节点出现故障时,PVM会自动将其从虚拟机中删除。,(2)MPI(Message Passing Interface,消息传递接口)它是目前最重要的一个基于消息传递的并行编程工具。它具有移植性好、功能强大和效率高等优点,几乎所有的并行计算机厂商都提供对它的支持,成为事实上的并行编程标准。MPI具有以下特点:,MPI提供了缓冲区管理的函数,用户可以决定是完全由系统对发送、接收缓冲区进行管理,还是用
10、户参与部分管理,以便更实际地控制系统的缓冲区空间,提高系统的安全性。MPI能运行于异构的网络环境中,另外,MPI还提供一些结构和函数,允许用户构造自己的复杂数据类型。MPI通过通信上下文提供通信的安全性。,MPI采用点对点通信,实现了两个任务间的多种通信方式,如阻塞式、非阻塞式通信。MPI提供了丰富的数据操作函数,实现了组内所有任务之间的通信、数据交换和数据处理。在错误处理上,MPI提供可靠的数据传输机制,发送的消息总能被对方正确的接收,用户不用检查传输错误、超时错误或其它错误条件。,第二节 典型集群系统,1.NOW集群NOW(Network Of Workstations)集群是伯克莱大学的
11、工作站网络,它是集群系统的一个重要代表。,节点间利用Myrinet交换机网络和活动消息(Active Message)进行信息传递,NOW支持Berkeley套接字、快速套接字、共享地址空间并行C(Split-C)和MPI等。在操作系统方面,NOW开发了称为GLUnix(Global Layer Unix)的操作系统。该操作系统由两层组成,提供透明远程运行、交互式运行和串行作业支持、负载平衡和对鲜有二进制应用程序的向后兼容性等功能。它采用xFS无服务器的网络文件系统,将服务器功能分布到客户机上,以达到低延迟、高带宽的文件系统访问,2.Beowulf集群1994年夏季,Thomas Sterli
12、ng和Don Becker在CESDIS(The Center of Excellence in Space Data and Information Sciences)用16个节点和以太网组成了一个计算机集群系统,并将这个系统命名为Beowulf。这是世界上最早的Beowulf集群。Beowulf集群是基于Linux和Grendel(系统软件工具包)之上的PC机集群,它采用TCP/IP多个以太网完成节点间信息交换,主要特点是使用现有的商品化机器实现超级计算机的处理能力。,3.Linux集群实例:cluster 1350Cluster 1350是IBM公司定位高性能计算市场的Linux集群,包
13、括一套完整的解决方案,集成了众多IBM与非IBM的先进的软硬件技术,有其特有的技术优势和强大的服务支持。其结构如下图所示:,IBM专为Cluster 1350开发了Linux版本的的IBM集群系统管理(CSM)1.2,它能提供资源监控、自动运行、远程硬件控制、完成指令操作、设置文件管理和并行网络安装等功能。CSM通过一个单独的控制节点可对整个Cluster 1350系统进行有效管理,减少管理员的工作强度。在负载加大时,CSM无需管理员额外操作,即能完成设置改变。同时,CSM的较高可靠性基础设施和事件监控功能,有助于快速检查和解决问题,从而增强了集群的可用性。,第三节 MPP系统,1.MPP系统
14、结构MPP系统一般是指使用大量的,同构的处理单元(PE,Processing Element),并以一种高带宽,低时延的专有网络互联而成的计算机系统。MPP系统节点之间的消息传送相对于集群系统具有更短的延迟,系统性能更强。下图为当前MPP系统的通用结构,MPP系统特征:超强的并行处理能力。每个结点相对独立,并拥有一个或多个微处理器(P/C),MPP的各个结点均拥有各自的操作系统映像各个结点间的内存模块相互独立,且不存在全局内存单元的统一硬件编址容错能力,MPP会有专门的监督系统,确定故障并恢复,使整个系统稳定的运行SVM(共享的虚拟存储)存储系统将分布于各个节点的内存进行逻辑上的统一编址,这样
15、不仅能系统结构更灵活,更易扩展,还可以简化上层应用的程序的编写,具有较好的可移植性,按存储结构的不同,MPP又可以分为两类:分布式存储大规模并行机(DM-MPP)、多台UMA或NUMA并行机通过高性能互联网络相互联接的大规模机群(UMA-MPP或NUMA-MPP):DM-MPP:每个结点仅包含一个微处理器,早期的MPP均属于这一类。例如CRAY T3D、CRAY T3E、Intel Paragon、IBM SP-2、YH-3等。UMA-MPP:每个结点是一台SMP并行机,例如当前位于Top500排名前列的多台MPP并行机均属于这一类,其中包括IBM ASCI White、Intel ASCI
16、Red、IBM Blue Pacific等;NUMA-MPP:每个结点是一台DSM并行机,其典型代表为包含6144台处理器的ASCI Blue Mountain MPP并行机,它由48台Origin 2000 构成,其中每台含128个微处理器。,2.MPP系统实例IBM 的ASCI White。由512个RS/6000节点互联而成,每个节点包含16个处理芯片,并且拥有自己独立的AIX操作系统映像。他还拥有6TB的内存,160TB磁盘容量。世界上第一台运算速度超10 TFLOPS的超级计算机 IBM的BlueGene/L,蓝色基因二代(Blue Gene/P),蓝色基因第三代(Blue Gene
17、/P)在2010年11月公布的全球TOP500中,我国的天河一号以2.566PFLOPS的运算速度居第一位,,3.集群与MPP集群注重的是将物理上独立的计算单位通过网络互联,节点数量从几个到几千不等都可以。各个节点都是一个完整的计算机,节点之间的通信采用的是标准的TCP/IP协议。而MPP更注重的是计算单元的大规模集成,通过专有的互联网络进行连接,每个计算单元也是相对独立,拥有自己的资源以及系统。下图列出他们一些参数的比较,第四节 网格技术,1.网格基础简单地讲,网格是把整个因特网整合成一台巨大的超级计算机,实现计算资源、数据资源、存储资源、知识资源、信息资源、专家资源等的全面共享网格必须同时
18、满足三个条件协调非集中控制资源网格整合各种资源,协调各种使用者,这些资源和使用者在不同控制域中;网格还解决在这种分布式环境中出现的安全、策略、使用费用、成员权限等问题。使用标准、开放、通用的协议和界面网格建立在多功能的协议和界面之上,这些协议和界面解决认证、授权、资源发现和资源存取等基本问题,(3)得到非平凡的服务质量网格允许协调使用它的资源,以得到多种服务质量,满足不同使用者需求,如系统响应时间、流通量、有效性、安全性及资源重定位,使得联合系统的功效比其各部分的功效总和要大得多。,2.网格技术网格计算实际上应归属于分布式计算(Distributed Computing),也是从早期的集群技术
19、发展而来的网格系统可以分为三个基本层次:资源层、中间件层和应用层,网格计算环境的构建层次从下至上依次为:(l)网格节点由分布在Internet上的各类资源组成,包括各类主机、工作站甚至PC机,它们是异构的,可运行在Unix,WindowsNT等各种操作系统下,也可以是上述机型的集群系统、大型存储设备、数据库或其他设备。它是网格计算资源的提供者,包括高端服务器、集群系统、M即系统大型存储设备、数据库等。这些资源在地理位置上是分布的,系统具有异构特性。(2)中间件它是网格计算的核心,负责提供远程进程管理、资源分配、存储访问、登录和认证、安全性和服务质量(QoS)等。例如Globus工具,作为自由软
20、件,对资源管理、安全、信息服务及数据管理等网格计算的关键技术进行研究,Globus能够开发在各种平台上运行的网格计算工具软件(Toolkit),帮助规划和组建大型的网格实验平台,开发适合大型网格系统运行的大型应用程序。,(3)开发环境和工具层提供用户二次开发环境和工具,以便更好地利用网格资源。(4)应用层它能提供系统能接受的语言,如HPC+和MPI等。可配置其他一些支持工程应用、数据库访问的软件,还可提供Web服务接口,使用户可以使用Web方式提交其作业并取得计算结果。,网格技术从所处的不同层次可分为网格应用技术、网格编程技术、网格核心管理技术以及网格底层支撑技术。网格应用技术:主要四部分,分
21、布式超级计算应用、实时广域分布式仪器系统、数据密集型计算以及远程沉浸网格编程技术可分为:编程支持系统的设计开发;面向对象技术在网格的应用;基于商品化技术集成的网格编程,商品化技术包括J2EE、.Net、CORBA、COM等各种网络技术;在网格中的数值计算编程。,网格核心管理技术由高性能调度技术、高吞吐率资源管理技术、性能数据的收集分析与可视化技术、网格安全技术几部分组成。网格底层支撑技术是构建网格的基础。包含有:网格计算节点的构建技术;在网格环境中的各式各样的协议开发,如传输协议、组通讯协议、流协议等等;局部节点的操作系统和网络接口;底层网络的基础设施。,3.网格体系结构五层沙漏结构开放网格服
22、务体系结构(OGSA-Open Grid Services Architecture)web服务资源框架(WSRFweb Service Resource Framework),(1)五层沙漏结构,五层沙漏结构根据各组成部分与共享资源的距离,将功能分散在五个不同的层次越向下层就越接近于物理的共享资源,而且各部分的协议数量是不同的,对于其最核心的部分,要能够实现上层协议向核心协议的映射,同时实现核心协议向下层其他各种协议的映射,因此核心协议形成了协议层次结构中的瓶颈,(2)开放网格服务体系结构OGSA2002年2月20日,IBM与美国Argonne国家实验室Globus项目组在多伦多联合发布了开
23、放性网格服务架构OGSA(Open Grid Services Architecture)OGSA架构由四个主要的层构成,从下到上依次为:资源层(物理资源和逻辑资源)、Web服务层(Web Services,包括定义网格服务的OGSI(Open Grid Service Infrastructure)扩展)、基于OGSA架构的网格服务层(OGSA Architected Services)、网格应用程序层(Applications),OSGA结构示意图,资源层:资源的概念是OGSA以及通常意义上的网格计算的中心部分。构成网格能力的资源不仅限于处理器。物理资源包括服务器、存储器和网络,物理资源之
24、上是逻辑资源。它们通过虚拟化和聚合物理层的资源来提供额外的功能。通用的中间件,比如文件系统、数据库管理员、目录和工作流管理人员,在物理网格之上提供这些抽象服务。Web服务层:OGSA架构中的第二层是Web服务。所有网格资源(逻辑的与物理的)都被建模为服务。OGSI规范定义了网格服务并建立在标准Web服务技术之上。OGSI利用诸如XML与Web服务描述语言(Web Services Description Language,WSDL)这样的Web服务机制,为所有网格资源指定标准的接口、行为与交互。OGSI进一步扩展了Web服务的定义,提供了动态的、有状态的和可管理的Web服务的能力,这在对网格资
25、源进行建模时都是必需的。,基于OGSA架构的网格服务层:Web服务层及其OGSI扩展为下一层提供了基础设施:基于架构的网格服务。GGF目前正在致力于诸如程序执行、数据服务和核心服务等领域中定义基于网格架构的服务。随着这些新架构的服务开始出现,OGSA将变成更加有用的面向服务的架构(SOA)。网格应用程序层:随着时间的推移,一组丰富的基于网格架构的服务不断被开发出来,使用一个或多个基于网格架构的服务的新网格应用程序亦将出现。这些应用程序构成了OGSA架构的第四个层,(3)Web服务资源框架WSRF2004年由IBM、Globus联盟和HP共同提出Web服务资源框架(WS-Resource Fra
26、mework,WSRF)。主要目的在于定义出一个通用且开放的架构,利用Web服务对具有状态属性的资源进行存取,并包含描述状态属性的机制,另外也包含如何将机制延伸至Web服务中的方式,与现有的Web服务开发工具能够很好地融合,WSRF是根据特定的消息交换和相关的XML模式来定义Web服务资源(WS-Resource)方法的描述规范。这些规范定义了Web服务和一个或多个有状态的资源之间的关联方法引入了资源的有状态性和服务的无状态性,第五节 网格实例,1.GlobusG1obus项目是目前国际上最有影响力的与网格计算相关的项目之一。开始于1996年,它由美国Argonne国家实验室和南加州大学承担,
27、全美国有12所大学和研究机构参与了该项目。,(1)元计算实验床,图示的底层是Globus的元计算测试床和实验系统,具体来说,它们是网络连接的一些有组织的计算网格结点,其中最著名的有I-WAY和GUSTO。I-WAY是Globus的较简化系统,用于气象卫星的实时图像处理。在这个应用中,卫星中的数据下载后,进入一个远程超级计算机进行云层检测处理,然后再由另外一个图形处理机进行气象图绘制。这些处理均在地理上分布的多台机器上实现。I-WAY成功地验证了Globus 系统一些基本构件和机制。,(2)Globus工具包构件中间层是Globus的工具包模块,也是Globus的核心服务,主要包括7个部分,(3)高级服务虽然Globus的工具包可以被应用程序直接调用,但仍然可以通过更高层的工具调用。如基于消息传递的MPI、高级并行编程语言C+、远程文件访问系统Remote I/O等,(4)GlobusToolkit软件Globus Toolkit软件是Globus项目最重要的研究成果,Globus Toolkit能够帮助规划和组建大型的网格试验和应用平台,开发适合大型网格系统运行的应用程序。它的开发借鉴了Unix的开发路线,即不构造一个完整的系统,而只构造一套底层的开发工具,