Linu高性能计算集群

上传人:jin****ng 文档编号:110345076 上传时间:2022-06-18 格式:DOC 页数:33 大小:713KB
返回 下载 相关 举报
Linu高性能计算集群_第1页
第1页 / 共33页
Linu高性能计算集群_第2页
第2页 / 共33页
Linu高性能计算集群_第3页
第3页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Linux高性能计算集群- Beowulf集群1 集群1.1 什么是集群简单的说,集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个 的计算机系统就是集群的节点(no de)。一个理想的集群是,用户从来不会意识到集群系统底层的 节点,在他/她们看来,集群是一个系统,而非多个计算机系统。并且集群系统的管理员可以随意增 加和删改集群系统的节点。1.2 为什么需要集群集群并不是一个全新的概念,其实早在七十年代计算机厂商和研究机构就开始了对集群系统的研究和 开发。由于主要用于科学工程计算,所以这些系统并不为大家所熟知。直到Linux集群的出现,集群 的概念才得以广为传播。对集群的研究起源于集群系统的良好的性能可扩展性(scalability)。提高CPU主频和总线带宽是最初 提供计算机性能的主要手段。但是这一手段对系统性能的提供是有限的。接着人们通过增加CPU个 数和内存容量来提高性能,于是出现了向量机,对称多处理机(SMP)等。但是当CPU的个数超过某 一阈值,象SMP这些多处理机系统的可扩展性就变的极差。主要瓶颈在于CPU访问内存的带宽并 不能随着CPU个数的增加而有效增长。与SMP相反,集群系统的性能随着CPU个数的增加几乎是 线性变化的。图1 显示了这中情况。系统性能.理想系统群系统三多处理系统丿庐kCW个数亠图 1. 几种计算机系统的可扩展性集群系统的优点并不仅在于此。下面列举了集群系统的主要优点:1. 高可扩展性:如上所述。2. 高可用性:集群中的一个节点失效,它的任务可以传递给其他节点。可以有效防止单点失效3. 高性能:负载平衡集群允许系统同时接入更多的用户。4. 高性价比:可以采用廉价的符合工业标准的硬件构造高性能的系统。1.2.1 集群系统的分类虽然 根据集群系统的不同特征可以有多种分类方法,但是一般我们把集群系统分为两类: 高可用(High Availability)集群,简称HA集群。这类集群致力于提供高度可靠的服务。 高性能计算(High Perfermanee Computing)集群,简称HPC集群。这类集群致力于提供单 个计算机所不能提供的强大的计算能力。2 高可用集群2.1 什么是高可用性计算机系统的可用性(availability)是通过系统的可靠性(reliability)和可维护性(maintainability)来度量的。工程上通常用平均无故障时间(MTTF)来度量系统的可靠性,用平均维修时间(MTTR)来度量系 统的可维护性。于是可用性被定义为:MTTF/(MTTF+MTTR)*100%业界根据可用性把计算机系统分为如下几类:可用比例(Percent Availability)年停机时间(dow ntime/year)可用性分类99.53.7天常规系统(Co nve ntio nal)99.98.8小时可用系统(Available)99.9952.6分钟高可用系统(Highly Available)99.9995.3分钟Fault Resilie nt99.999932秒Fault Tolera nt表 1. 系统可用性分类对于关键业务,停机通常是灾难性的。因为停机带来的损失也是巨大的。下面的统计数字列举了不同 类型企业应用系统停机所带来的损失。应用系统每分钟损失(美元)呼叫中心(Call Ce nter)27000企业资源计划(ERP)系统13000供应链管理(SCM)系统11000电子商务(eCommerce)系统10000客户服务(Customer Service Center)系统27000表 2. 停机给企业带来的损失 随着企业越来越依赖于信息技术,由于系统停机而带来的损失也越拉越大。2.2 高可用集群 高可用集群就是采用集群技术来实现计算机系统的高可用性。高可用集群通常有两种工作方式: 容错系统:通常是主从服务器方式。从服务器检测主服务器的状态,当主服务工作正常时,从服务器并不提供服务。但是一旦主服务器失效,从服务器就开始代替主服务器向客户提供 服务。 负载均衡系统:集群中所有的节点都处于活动状态,它们分摊系统的工作负载。一般Web服务器集群、数据库集群和应用服务器集群都属于这种类型。关于高可用集群的讨论很多,这里就不进行深入的阐述了。3 高性能计算集群3.1 什么是高性能计算集群简单的说,高性能计算(High-Performance Computing)是计算机科学的一个分支,它致力于开发超级计算机,研究并行算法和开发相关软件。高性能计算主要研究如下两类问题: 大规模科学问题,象天气预报、地形分析和生物制药等; 存储和处理海量数据,象数据挖掘、图象处理和基因测序;顾名思义,高性能集群就是采用集群技术来研究高性能计算。3.2 高性能计算分类高性能计算的分类方法很多。这里从并行任务间的关系角度来对高性能计算分类。3.2.1 高吞吐计算(High-throughput Computing)有一类高性能计算,可以把它分成若干可以并行的子任务,而且各个子任务彼此间没有什么关联。象 在家搜寻外星人( SETIHOME - Search for Extraterrestrial Intelligence at Home )就是这一类 型应用。这一项目是利用In ter net上的闲置的计算资源来搜寻外星人。SETI项目的服务器将一组数 据和数据模式发给In ter net上参加SETI的计算节点,计算节点在给定的数据上用给定的模式进行搜 索,然后将搜索的结果发给服务器。服务器负责将从各个计算节点返回的数据汇集成完整的数据。因 为这种类型应用的一个共同特征是在海量数据上搜索某些模式,所以把这类计算称为高吞吐计算。所 谓的In ter net计算都属于这一类。按照Fly nn的分类,高吞吐计算属于SIMD(Si ngleIn structio n/Multiple Data )的范畴。3.2.2 分布计算(Distributed Computing) 另一类计算刚好和高吞吐计算相反,它们虽然可以给分成若干并行的子任务,但是子任务间联系很紧 密,需要大量的数据交换。按照Flynn的分类,分布式的高性能计算属于MIMD (MultipleInstruction/Multiple Data )的范畴。33 Linux高性能集群系统当论及Linux高性能集群时,许多人的第一反映就是Beowulf。起初,Beowulf只是一个著名的科学 计算集群系统。以后的很多集群都采用Beowulf类似的架构,所以,实际上,现在Beowulf已经成为 一类广为接受的高性能集群的类型。尽管名称各异,很多集群系统都是Beowulf集群的衍生物。当然 也存在有别于Beowulf的集群系统,COW和Mosix就是另两类著名的集群系统。3.3.1 Beowulf 集群简单的说,Beowulf是一种能够将多台计算机用于并行计算的体系结构。通常Beowulf系统由通过以 太网或其他网络连接的多个计算节点和管理节点构成。管理节点控制整个集群系统,同时为计算节点 提供文件服务和对外的网络连接。它使用的是常见的硬件设备,象普通PC、以太网卡和集线器。它 很少使用特别定制的硬件和特殊的设备。Beowulf集群的软件也是随处可见的,象Linux、PVM和 MPI。本文的以后几部分将详细介绍Beowulf集群系统的硬件、网络、软件和应用体系结构。3.3.2 Beowulf集群和COW集群象Beowulf 一样,COW(Cluster Of Workstation)也是由最常见的硬件设备和软件系统搭建而成。 通常也是由一个控制节点和多个计算节点构成。COW和Beowulf的主要区别在于:1. COW中的计算节点主要都是闲置的计算资源,如办公室中的桌面工作站,它们就是普通的 PC,采用普通的局域网进行连接。因为这些计算节点白天会作为工作站使用,所以主要的集 群计算发生在晚上和周末等空闲时间。而Beowulf中的计算节点都是专职于并行计算,并且 进行了性能优化。它们采用高速网(Myrinet或Giganet)上的消息传递(PVM或MPI)进 行进程间通信(IPC)。2. 因为COW中的计算节点主要的目的是桌面应用,所以它们都具有显示器、键盘和鼠标等外 设。而Beowulf的计算节点通常没有这些外设,对这些计算节点的访问通常是在管理节点上 通过网络或串口线实现的。3. 因为连接COW中计算节点的通常是普通的局域网,所以COW上的高性能应用通常是象 SETIHOME这样的SIMD的高吞吐计算。而Beowulf无论从硬件、网络和软件上都对需 要频繁交换数据的 MIMD 应用做了特别的优化。3.3.3 Mosix 集群实际上把Mosix集群放在高性能集群这一节是相当牵强的,但是和Beowulf等其他集群相比,Mosix 集群确实是种非常特别的集群,它致力于在Linux系统上实现集群系统的单一系统映象SSI(Single System Image)。Mosix集群将网络上运行Linux的计算机连接成一个集群系统。系统自动均衡节点 间的负载。因为Mosix是在Linux系统内核中实现的集群,所以用户态的应用程序不需要任何修改就 可以在Mosix集群上运行。通常用户很少会注意到Linux和Mosix的差别。对于他来说,Mosix集群 就是运行Linux的一台PC。尽管现在存在着不少的问题,Mosix始终是引人注目的集群系统。1 什么是 Beowulf 集群Beowulf 是现存的最古老的英语史诗:Famed was this Beowulf: far ew the boast of him, son of Scyld, in the Scandian lands. So becomes it a youth to quit him well with his fathers friends, by fee and gift, that to aid him, aged, in after days, come warriors willing, should war draw nigh, liegemen loyal: by lauded deeds shall an earl have honor in every clan.它歌颂了一个英雄,他拥有强壮的体魄和无人伦比的勇气。他最终战胜了魔鬼 Grendel. 你可以在 找到这首史诗。我们所说的Beowulf首先是一个象史诗中英雄一样强大的集群系统。在1994年夏季,Thomas Sterling 和 Don Becker 在 CESDIS(The Cen ter of Excelle nee in Space Data and In formation Scie nces)用 16 个节点和以太网组成了一个计算机集群系统,并将这个系统命名为Beowulf。Beowulf集群。Beowulf 集群提供了一种使用COTS(Commodity off the shelf)硬件构造集群系统以满足特殊的计算需求的方 法。这里的COTS是指象PC和以太网这种广为应用的标准设备,它们通常可以由多家厂商提供,所 以通常有很高的性价比。Beowulf集群这种方法很快从NASA传遍了整个科研机构和社团。实际上, Beowulf 集群现在已被人们看作高性能计算中的一个分支或流派。因为几乎每个Beowulf集群的设计者都有自己的Beowulf集群的定义,恐怕很难给Beowulf集群下一 个确切的定义。一些人认为只有那些采用和原始的Beowulf集群系统一样方法构建的系统才叫 Beowulf集群。而另一些人则认为凡是能够在多个工作站上运行并行代码的系统都称为Beowulf集群。 这里我们只是列举多数Beowulf集群具有的特征作为Beowulf集群的定义: Beowulf是一种系统结构,它使得多个计算机组成的系统能够用于并行计算。 Beowulf系统通常有一个管理节点和多个计算节点构成。它们通过以太网(或其他网络)连接。 管理节点监控计算节点,通常也是计算节点的网关和控制终端。当然它通常也是集群系统文 件服务器。在大型的集群系统中,由于特殊的需求,这些管理节点的功能也可能由多个节点 分摊。 Beowulf系统通常由最常见的硬件设备组成,例如,PC、以太网卡和以太网交换机。Beowulf 系统很少包含用户定制的特殊设备。 Beowulf系统通常采用那些廉价且广为传播的软件,例如,Linux操作系统、并行虚拟机(PVM) 和消息传递接口 (MPI)。2 Beowulf集群的分类由于一些特殊的目的如系统性能,有些Beowulf集群系统也采用一些用户定制的设备(它们通常由一 家厂商提供)。为了区分这些特殊的系统,通常把Beowulf分为两大类:2.1 第一类 Beowulf 集群(CLASS I Beowulf)这一类Beowulf集群全部由COTS设备组成。第一类Beowulf系统的优点是: 硬件设备由多个来源,通常具有廉价和易管理维护的特点。 不依赖于单个硬件供应商 所有设备驱动都由Linux开发社团提供通常都是标准设备,例如,SCSI、以太网等等当然第一类Beowulf集群的缺点也是非常显然的。由于所采用的硬件都没有经过性能优化,所以其很 难达到很好的性能。比如,由于以太网的高延迟和低带宽使得集群系统中消息传递很难达到MIMD应 用的需求,从而使整个集群系统的计算能力大打折扣。2.2 第二类 Beowulf 集群(CLASS II Beowulf)第二类Beowulf集群是指那些采用了用户定制设备的Beowulf集群。这类集群系统最大优点是具有很 好的性能。例如,采用Myrinet作为集群系统的IPC网络可以极大地提供进程间消息传递延迟和速度。 当然它的缺点就是依赖于单个硬件提供商而且价格高昂。不能说,哪一类集群绝对优于另一类集群。这依赖于你的集群系统的需求和预算。3 Beowulf集群体系结构如上所述,现实中存在形形色色的Beowulf集群。虽然它们都是原始Beowulf集群的衍生物,但是它 们的体系结构也存在各种各样微小的差异。本文以IBM eServer Cluster 1300为例来阐述Beowulf 集群体系结构和系统组成。Gruffer Tod Ta图1是Cluster 1300上Beowulf集群的系统视图图1是Cluster 1300上Beowulf集群的系统视图。无论是管理节点(Master Node)和计算节点都是IntelIA32架构的xSeries PC服务器。它们通过网络(以太网和Myrinet)相连接。所有的节点都运行Linux 操作系统。运行在计算节点上的并行应用程序采用MPI进行完成并行进程间的通信。计算节点通过 管理节点和外部LAN相连。整个集群系统都在一套集群管理工具监控之下。图2 Cluster1300上Beowlf集群组件图2是Cluster 1300上Beowulf集群的组件视图。它揭示了 Beowulf集群的组成部分。通常Beowulf 集群由四个层次构成: 硬件:主要是指Intel IA32架构的PC服务器。 网络:指用于节点间通信的局域网(普通的以太网)和并行进程间通信的高速网(Myrinet等高 速网)。 软件:主要指 Linux 操作系统和用于并行通信的并行编程库(如 MPI 和 PVM)。 并行应用本文的下面三个小节将分别介绍这四个层次。而本系列文章的后面两片将更详细的介绍它们。3.1 Beowulf 集群硬件和网络Beowulf 集群硬件和网络层次需要解决的问题是如何组织硬件使其达到最高的性价比。为了达到很好 的性价比,Beowulf通常采用廉价的COTS硬件。当然有时为了提供某些关键的性能,也会使用一些 特殊的设备。从硬件组织的角度说,Beowulf集群中的节点都是非共享内存的计算机,它们通过消息传递进行通信。 实际上,我们还有其他组织硬件完成并行计算的方式。简单地说,有两种组织硬件完成并行计算的方法: 通过消息传递通信的本地内存(非共享内存)计算机系统(Beowulf集群) 通过内存访问通信的共享内存计算机系统(SMP计算机)当然也存在将多个本地或共享内存计算机相连并创造一个混和的共享内存计算机系统的可能。但在最 终用户看来,这种计算机系统就好像一个大型的共享内存计算机。这种技术被我们叫做非一致内存访 问NUMA(N on Uni form Memory Access)。但是从底层说,一个NUMA计算机系统必须在节点间传 递消息。当然也可以将共享内存计算机作为一个本地内存的计算机连入一个Beowulf集群系统。由于Linux系 统支持SMP计算机,所以Linux系统本身能够在SMP中的多个CPU上调度作业。所以Beowulf集 群本身就没有必要识别集群的节点是不是共享内存计算机了。和SMP系统相比,集群系统有明显的优点。关于这一点请参阅本系列文章的第一篇。因为Beowulf集群采用消息传递完成并行程序间通信,所以网络传输成了系统的瓶颈。在实际的系统 中,通常采用有两套彼此的独立的网络设备。一套是普通的以太网,用于象系统管理和文件服务等普 通的网络通信。另一套网络是用于进程间通信的高速网,象Myrinet和Giganet。和100M以太网相 比,这类网络具有低延迟和高带宽的特性。还有三类设备虽然不是必须,但是对于集群管理却是非常重要的: KVM Swither: KVM是指Keyboard、Video和Mouse。这个设备可以让系统管理员用一套KVM 管理系统中的所有节点。 远程电源管理设备(如ASM):这类设备使得管理员可以在管理节点Power on /off其他节点。 Termi nal Server:这种设备通过串口将节点连接起来。通过这个设备,管理员可以在管理节 点上虚拟出其他节点上的控制终端。和 KVM 相比,这种方法不需要硬件的切换。3.2 Beowulf 集群软件Beowulf集群在软件层次面临的问题是如何在硬件层次上获得最大的性能。通常,Beowulf集群采用 Linux+MPI的方式支持并行计算。MPI是采用消息传递的方式实现并行程序间通信。虽然也可以采用 其他的通信方法,但是消息传递模式是最适合于集群系统的。简单地说,有两种在并行程序间传递并 发的方法: 使用处理器间的消息传递(MPI) 使用操作系统的线程(Thread)其他的方法也存在,但是这两种方法应用得最广泛。虽然存在效率和移植的问题,这两种方法都可以 在 SMP,NUMA 和 Cluster 上实现。消息传递需要在CPU间拷贝数据,而线程却可以在CPU间共享数据。数据拷贝的速度和延迟是影 响消息传递效率的最关键的因素。PVM和MPI是最常用的两种消息传递API。消息传递也可以在线 程上实现,并且消息传递即可以用于集群系统,也可以用于SMP系统。和线程相比,在SMP系统 上使用消息传递的优点在于可以很方便的把SMP上的应用移植到集群系统上。线程的最大特点是,线程间是共享数据。因此它在SMP系统上工作的更好。而且Linux本身也是支 持Posix线程的。但是使用线程的最大缺点在于,很难将线程扩展到SMP系统以外。虽然NUMA技 术可以高效的做到这一点,但是那非常昂贵而且Linux本身也不支持。下表概括了线程和消息传递在 SMP 和集群系统上的比较:SMP系统性能集群系统性能扩展性消息传递好很好很好线程很好差差*需要昂贵的 NUMA 技术3.3 Beowulf 集群应用Beowulf 集群的应用层次位于硬件和软件层次之上。它要解决的问题是如何在实际的集群系统中并行化(PARALLEL)应用中的并发(CONCURRENT)部分,从而使集群上的应用达到最好的性能。在阐述这部分之前,我们需要区分两个概念:PARALLEL和CONCURRENT。程序的并发 (CONCURRENT)部分是指程序中可以独立计算的部分。程序的并行(PARALLEL)部分是指程序中在 同一时间被分别执行的并发(CONCURRENT)部分。它们的区别是很重要的。并发是程序本身的属性,而并行是计算机系统的属性。并行的目的是获得很 好的性能。限制并行性能的因素是计算节点间通信的速度和延迟。大部分的 Benchmark 都有很高的 并行性并且通信和延迟不是什么瓶颈。但是其他应用却没有这么简单。对于这些应用,有时候使并发 部分并行执行反而可能使应用性能更低。简单的说,除非附加的通信时间代价小于并发节约的计算时 间,否则并行执行反而会降低效率。% of applicationCommunlcailonilnie/processing lime 图3程序并发和通信计算时间比程序员的任务就是决定哪些并发的部分需要并行执行,而哪些不应该并行执行。这些决定最终会影响 应用程序的执行效率。图 3 描述了实际应用中程序并发部分和通信计算时间比的关系。在理想的系统中,通信计算时间比应该是恒定的。任何并发部分都应该实现为并行。不幸的是,实际 的系统,包括SMP系统,都是图3所示的那样。所以在设计Beowulf集群应用时,必须认识到并发 带来的效率依赖于在该系统上通信处理时间比。也正是因为这个原因,虽然可以把应用移植到另一个并发系统上,但是并不能保证应用在被移植的系统上仍然是高效的。一般来说,不存在可移植的且高 效的应用程序。同样的道理,使用更快的 CPU 也可能使你的应用变慢1 Beowulf集群硬件和网络体系结构pcWrfwi/vc|JZZ = = a EZil罚厂T|!100WLIEltwmei Swfch图1 Cluster 1300硬件和网络体系结构图 1 是 Cluster 1300 的硬件和网络体系结构图。从图中可以看出,整个系统由 5 类计算或网络设备和 5 类网络组成。这 5 类设备是 : 主控制节点(Co ntrol Node) 计算节点 以太网交换机(Ether net Switch) Myrinet 交换机 Termi nal Server5 类网络是: 集群局域网(Cluster VLAN蓝色) 管理网络(Management VLAN右边绿色) IPC 网络(IPC VLAN 棕色) Terminal 网络(灰色) Service Processor 网络(左边绿色)本文的以下部分将介绍这些设备和网络的角色,功能和一般的配置。2 Beowulf集群中的节点这一节主要介绍Beowulf集群中的节点,节点的类型和相应的功能。根据功能,我们可以把集群中的节点划分为 6 种类型: 用户节点(User Node)控制节点(Control Node)管理节点(Ma nageme nt Node)存储节点(Storage Node)安装节点(Installation Node)计算节点(Compute Node)虽然由多种类型的节点,但并不是说一台计算机只能是一种类型的节点。一台计算机所扮演的节点类 型要由集群的实际需求和计算机的配置决定。在小型集群系统中,用户节点、控制节点、管理节点、 存储节点和安装节点往往就是同一台计算机。下面我们分别解释这些类型节点的作用。2.1 用户节点(User Node)用户节点是外部世界访问集群系统的网关。用户通常登录到这个节点上编译并运行作业。 用户节点是外部访问集群系统强大计算或存储能力的唯一入口,是整个系统的关键点。为了保证用户 节点的高可用性,应该采用硬件冗余的容错方法,如采用双机热备份。至少应该采用 RAID(Redundant Array of In depe nden t Disks)技术保证用户节点的数据安全性。2.2 控制节点(Control Node)控制节点主要承担两种任务 为计算节点提供基本的网络服务,如DHCP、DNS和NFS。 调度计算节点上的作业,通常集群的作业调度程序(如PBS)应该运行在这个节点上。通常控制节点是计算网络中的关键点,如果它失效,所有的计算节点都会失效。所以控制节点也应该 有硬件冗余保护。2.3 管理节点(Management Node)管理节点是集群系统各种管理措施的控制节点: 管理网络的控制点,监控集群中各个节点和网络的运行状况。通常的集群的管理软件也运行 在这个节点上。 ASMA的控制点:ASMA(Advaneed System Manager Adapter)允许将计算节点通过菊花链 连接构成Service Processor网络用于接受计算节点的警报并收集SNMP Trap.2.4 存储节点(Storage Node)如果集群系统的应用运行需要大量的数据,还需要一个存储节点。顾名思义,存储节点就是集群系统 的数据存储器和数据服务器。如果需要存储TB级的数据,一个存储节点是不够的。这时候你需要一 个存储网络。通常存储节点需要如下配置: ServerRAID 保护数据的安全性 高速网保证足够的数据传输速度2.5 安装节点(Installation Node) 安装节点提供安装集群系统的各种软件,包括操作系统、各种运行库、管理软件和应用。它还必须开放文件服务,如FTP或NFS。2.6 计算节点计算节点是整个集群系统的计算核心。它的功能就是执行计算。你需要根据你的需要和预算来决定采 用什么样的配置。理想的说,最好一个计算节点一个CPU。但是如果考虑到预算限制,也可以采用 SMP。从性价比角度说,两个CPU的SMP优于3或4个CPU的SMP机器。因为一个计算节点的失效通常不会影响其他节点,所以计算节点不需要冗余的硬件保护。2.7 集群中节点的部署虽然由多种类型的节点,但并不是说一台计算机只能是一种类型的节点。一台计算机所扮演的节点类 型要由集群的实际需求和计算机的配置决定。在小型集群系统中,用户节点、控制节点、管理节点、 存储节点和安装节点往往就是同一台计算机,这台计算机通常成为主节点(Master Node)。在这种情 况下,集群就是由多个计算节点和一个主节点构成。在大型的集群系统中如何部署这些节点是个比较复杂的问题,通常要综合应用需求,拓扑结构和预算 等因素决定。3 Beowulf集群的网络结构3.1 集群中的网络技术因为计算节点间的通信需求,IPC网络的性能是Beowulf集群设计中非常重要的话题。由于应用的需 求,通常需要高带宽、速度和低延迟的网络。Beowulf集群的主要瓶颈通常也在于双工的网络通信, 延迟和全局同步。有好几种网络技术可以用于IPC网络。它们是快速以太网、千兆以太网和Myrinet。为了达到高带宽, 通常需要采用交换机。交换机接受从双绞线传来的数据包,但是它和集线器不一样。它不向所有连接 的节点广播这个数据包,它会根据目的地址哪个端口是接受者,然后把这个包传给接受者。32 Beowulf集群网络拓扑如上所述,通常Beowulf集群系统中有5类网络。其中Service Processor网络是以太网连接起来的 菊花链结构,Terminal网络是计算节点和Terminal Server通过串口线连接起来的星形结构。管理网 络、集群网络和IPC网络则是通过交换机相连的。虽然可以把这三个网络配置在一个网段,但是通常 我们把它们分化在三个虚拟网中(VLAN)。图2是Beowulf集群网络结构。ConiMil# Mode-WOIU3LCaiiifKiie-IdOnM川图2 Cluster 1300网络拓扑3.2.1 管理网络(ManageMent VLAN)管理网络用于访问IPC网络交换机、Service Processor网络和Termi nal Server。HTTP、Tel net和SNMP 等协议被用来管理这些设备。3.2.2 集群网络(Cluster VLAN)计算节点和存储节点用这个网络进行通常的网络I/O。3.2.3 IPC 网络(IPC VLAN)用于计算节点间的高速通信。通常由特殊的高速网络设备构成。3.2.4 Service Processor 网络以太网连接起来的菊花链结构,用于系统管理目的。3.2.5 TerMinal 网络Terminal网络是计算节点和Terminal Server通过串口线连接起来的星形结构。Terminal Server是外 界访问这个网络的接口。管理节点通过Terminal Server虚拟出来的终端可以登录到其他节点上完成 必要的管理工作。3.2.6 KVM 网络KVM网络是KVM Switch和各节点连接的星形网络。其实把KVM网络称为一个网络并恰当。KVM是指Keyboard、Video和Mouse。通过KVM Switch的切换,管理员可以在管理各个节点。4 附录:一个 Cluster 1300 集群系统的配置清单Qty.P/NDescriptionIBMProductsCompute Nodes4865431YxSeries 330 1000 256 256/OPEN 24X437L720218.2GB Ultra160 HDD410K3806866Mhz 133MHz 256K1233L3144256MB 133MHz ECC SDRAM RDIMM MEMORY106P4792C2T Cable KitManagement Node186564RY119k4630433L3144137L6091337L7202H134L1501134L0301137L6880xSeries 340,866Mhz,128Mb866Mhz 133MHz 256K256MB 133MHz ECC SDRAM RDIMM MEMORYServeRAID 4L LVD SCSI Adapter18.2GB 7200rpm Ultra160 SCSI Hot-Swap SLNetfinity 10/100 Ethernet PCI Adapter 2Netfinity Gigabit Ethernet SX Adapter 270W Redundant HS Power SupplyShared Resources19306200Netbay 22 Half Rack13619702Netbay 22 Rack Extension Kit19411AG1Monitor (flatpanel)1L6888Flatpanel rack mount kit109N42918x2 Console Switch (KVM Switch)294G7447Console Cable Set 12ft (to KVM switch)128L3644Spacesaver Keyboard/trackpoint128L4707Keyboard tray237L6866Netbay Universal Voltage PDU01K720936L997303K9308ASMA Adapter (Wiseman card)1M Fibre Channel CableShort Wave GBIC (Gigabit module)Equinox Products1990209Equinox ELS-161210059Micro-Transceiver,AUI (DB-15)to 10BaseT1790091ELS Rackmount kit4210062Equinox Serial Adapters469022610Serial CablesMyrinet Networking Products1M3-E16Myrinet2000 3-slot Chassis1M3-MManagement Module4M3S-CB-5MMyricom Myrinet LAN cables4M3S-PCI64B-2Myrinet LAN Card1M3SW16-8SMyrinet 8-port Serial modulesMiscellaneous Products83CAT5 Cables51CAT5 CablesExtreme Networks Products1 13020 Summit24 -Full Layer 3-X1 Beowulf集群软件结构JWrtJtSMWflf wa SrjufdirtfAfiftHarkMtBatchLrbfariesCptftitzg 勢ttf/n tiermi/Oticf DrivenU CtHTipie ! TWhU DstwogerBDevwJopmflflt Emirmrnent图1 Beowulf集群软件体系结构图 1 是 Beowulf 集群的软件体系机构。一般来说, Beowulf 集群由如下几个软件部分组成: 操作系统:勿容置疑,操作系统是任何计算机系统的软件基础。相对于桌面系统而言,集群 系统对操作系统的任务调度和文件管理方面的要求更高。 并行开发库:只要是指用于集群中进程通信的软件库。消息传递和线程是两种基本的通信方 法。但是对于Beowulf集群而言,消息传递更适合一些。Beowulf集群常用的开发库是MPI 和 PVM 。 作业管理:调度作业并管理集群系统的资源,是集群系统的资源得到最大的利用。 系统管理:管理和监控整个集群系统。 开发环境:开发和调试高效能应用的开发工具。 标准应用:一些标准的高性能应用如 CFD。 客户应用:客户特别定制的应用。2 操作系统并不是每种操作系统都适合高性能集群系统。理论上说,硬件的体系结构、操作系统的任务调度方式 和IPC的方式是决定应用并行化效果的主要因素。根据这三个因素,我们可以归纳出如下5种实施 应用并行化的平台: 单任务操作系统:CPU同时只处理任务队列中的一个任务。MS DOS是这类系统的代表。 多任务操作系统:基于分时技术的多任务操作系统。虽然在同一时间段,所有的进程都在运 行,但是在某一时间点, CPU 只执行一个进程。这类操作系统可分为抢占式和非抢占式。单 CPU的Unix和NT属于这种类型。 多CPU多任务操作系统:和单CPU的多任务操作系统不同的是,由于有多个CPU,所以 在某个时间点上,可以有多个进程同时运行。多CPU的Unix和NT属于这种类型。 多CPU多任务操作系统+线程:某些任务当把它分为若干并行的子任务同时在多个CPU上 执行时,它会运行的更快,尽管运行这个任务占有的总CPU时间变长了。由于采用多个CPU 而使任务结束的时间缩短了。由于应用本身的特性,随着CPU个数的增加,性能并不会线 性增加。Amdal法则说明了这种情况。运行在同一主板上多个CPU的Unix和NT+线程属 于这一类型。 SMP 系统合适采用这种方法。 多CPU多任务操作系统+消息传递:在SMP系统中,由于采用共享内存,所以CPU通信的时间几乎可以忽略。但是在象集群这种系统中,通信时间成为不得不考虑的因素。这时, 使用线程是一种很奢侈的方法。这种情况下,消息传递是一种比较好的方法。(本系列文章的第二部分解释了这种情况)。同一个主板或多个主板上的多个CPU+Unix和NT+消息传递属 于这种类型。Beowulf集群使用第5种类型平台。它可以由SMP和PC服务器组成,以Linux为操作系统,以MPI或 PVM 这种消息传递方式作为通信方法。3 文件系统文件系统是操作系统的重要组成部分,用于存储程序和数据。如何在各节点间高效、一致和简捷的实现数据共享是集群系统对文件系统提出的挑战。3.1 集群和文件系统很明显,那种仅能管理本地存储的文件系统(如EXT和FAT)是无法满足集群系统对文件共享的要求 的。在集群环境下,最容易想到,也是最容易实现的文件系统就是分布式文件系统。相当于本地文件 系统,分布式文件系统有如下优点: 网络透明:对远程和本地的文件访问可以通过相同的系统调用完成。 位置透明:文件的全路径无需和文件存储的服务绑定,也就是说服务器的名称或地址并不是 文件路径的一部分。 位置独立:正是由于服务器的名称或地址并不是文件路径的一部分,所以文件存储的位置的 改变并不会导致文件的路径改变。分布式文件系统可以使集群的节点间简捷地实现共享。但是为了提供性能,分布式文件系统通常需要使用本地的缓存(Cache),所以它很难保证数据在集群系统范围的一致性。而且往往分布式文件系统中只有一份数据,所以很容易发生单点失效。建立在共享磁盘(Share-Disk)上的并行文件系统可以克服分布式文件系统的这些缺点。通过使用在节点共享的存储设备,并行文件系统具有很多优点: 高可用性:克服了分布式文件系统中那种服务器端的单点失效的缺点,提高了文件系统的可用性。 负载均衡:有多个访问点,彼此可以协调负载。 可扩展性:容易扩展容量和访问的带宽3.2 集群中的数据共享形式下面通过给出几个集群中使用具体的数据共享的方法。其中 rsync 是建立在本地文件系统之上, NFS和Inteemezzo属于分布式文件系统(确切的说,NFS只是网络文件系统),GFS属于并行文件系统, 而 Backend-database 则属于不同于文件共享的另一种形式的共享。3.2.1 rsyncrsync是一种简单的文件共享实现方式。集群中的每个节点都有一份数据复本,复本间使用rsync进 行同步。因为节点需要的数据就在本地,所以这种方法具有很高的可用性,不会出现单点失效现象。如果需要的共享的数据量很小,而且很少更新时,可以采用这种方式。静态网页和小的 FTP 站点的 可以使用这种共享方式。3.2.2 NFS这也是一种容易实现的方式。存储节点通过NFS将自己本地的文件输出,其他节点则把存储节点输 出的文件系统mount到本地文件系统。NFS方式的存在两个很大的缺点: 性能差:因为所有的文件访问都必须经过网络和NFS服务器,所以在访问流量比较大的情 况下,网络带宽和NFS服务器都会成为系统的瓶颈。单点失效:如果 NFS 服务器的系统失效或者网络失效都会使得其他节点无法得到数据,从 而使整个集群系统瘫痪。当然使用多个互为备份的 NFS 服务器可以改善性能和避免单点失效,但是这样又会带来如何实时保持备份服务器间数据一致性的问题。 NFS 方式适合于共享访问数据量不大的小型集群系统。3.2.3 GFSGFS(Global File System)实现了存储设备的网络共享。这些存储设备可以是共享SCSI(Shared SCSI)和共享通道(Fibre Channel - FC)。GFS包装这些存储设备使得它们好像节点本地的文件系统。GFS的主要优点在于: 高可用性:如果一个GFS客户失效,数据还可以通过其他GFS客户访问。 扩展性:因为不需要中心服务器,所有很容易扩展存储容量和访问带宽。CFS CIIWICF5 口Itfl*图4用GFS和共享存储实现集群中文件共享GFS可以将物理上分离的存储设备虚拟为一个存储而且能平衡访问负载。GFS还实现了文件锁和实时文件系统。3.2.4 IntermezzoIn termezzo实现了一个分布式的文件系统。它采用客户/服务器模式。服务器拥有权威的数据,客户 节点仅有本地缓冲的版本。它们通过普通的网络进行同步。Intermezzo支持断开连接下文件操作。在 下次恢复连接时,它会集成本地的改动到服务器上。In termezzo拥有象GFS 一样的可用性和可扩展 性。但是它无法保证数据的实时一致性。3.2.5 Backend Database基于后端数据库的共享是完全不同于文件共享的方式。后端数据库系统解决了数据的一致性、性能、可用性和可扩展性问题。但是数据库的访问方法要比文件访问复杂的多。4 并行化应用程序并行化应用程序,使其更高效的运行是使用Beowulf集群系统的最终目的。一般说,并行化应用程序 分为三个步骤: 确定应用程序的并发部分 估计并行的效率 实现应用程序的并发在并行化应用程序的过程中,需要开发环境、并行开发库和各种工具的支持。这些软件都是Beowulf 集群软件体系结构中重要的组成部分。4.1 确定应用程序的并发部分从实用的角度说,应用程序有两种类型的并发:计算和I/O。尽管在多数情况下这两者是正交的,但 是也存在一些应用同时需要这两种并发性。有一些工具可以用来帮助分析应用程序的并发,而且通常 这些工具都是专门为Fortran设计的。4.2 分析并行的效率分析并行的效率是并行化应用程序中很重要的一个步骤。正确的分析并行的效率可以帮助你在有限的 经费下最大化应用的执行效率。往往Beowulf集群的需要和应用的需要有些许的差别。比如,CPU 消耗型的应用往往需要的是稍微快一点的CPU和高速低延迟的网络,而I/O消耗型的应用需要的是 稍微慢一点的 CPU 和快速以太网。如果没有分析工具,你只能使用猜测和估计的办法完成这一步骤。一般来说,如果在应用的一部分中, 计算的时间是分钟级而数据传输的时间是秒级,那么这一部分可以并行执行。但是如果并行后计算时 间降到秒级,你就需要实际测量一下再做权衡。另外,对于I/O消耗型的应用,Eadline-Dedkov法则对你做决定有些帮助:如果两个并行系统具有相 同的CPU指标,慢CPU和相应具有低速CPU间通信网络的系统反而具有较好的性能。4.3 实现应用程序的并发 有两种方法去实现应用程序的并发:显式并发和隐式并发。4.3.1 显式并行化显式并行化是指由开发者决定程序的并行。开发者通过在程序中增加PVM或MPI消息,或者增加程 序执行的线程从而达到程序的并行化。显式并行化通常难以实现和调试。为了简化显式并行化,某些 开发库中增加了一些函数用于简化标准并行方法的实现。另外也有专门用于调试并行程序的工具。TotoalView( C、C+和Fortran 调试工具。它拥有方便的图形化界面,可以用于调试多线程、多进程和集群应用程序。4.3.2 隐式并行化隐式并行化是由编译器来决定程序的并行性,高性能Fortran就是这类编译器。隐式并行化中,程序 开发者向编译器提供一些程序并行的特征,编译器根据这些特征做出程序并行化的决定。通常编译器 可以给并行应用提供一定程度的效率和移植性,但是不是最好的。5 作业管理(资源管理)从用户角度看,集群系统就好像一台服务器或者PC。很多用户可以同时使用这个系统。但是当太多 的用户使用集群系统时,系统性能会很差。资源管理就是管理用户提交的作业,合理给各个作业分配 资源从而保证集群系统高效运行。作业管理通常由资源管理器和作业调度策略器组成。6 系统管理从系统组成角度说,集群系统是由多台计算机组成的超级计算机。但是从最终用户看来,集群系统是 一台计算机,也就是说,集群系统的构成对用户是透明的。所以集群系统的管理的目的就是让集群系 统象一台计算机一样利于管理。归纳起来,集群系统管理一般完成如下任务: 资源管理 事件管理 配置管理 监控和诊断 硬件控制系统安装 域管理1 集群作业管理从用户角度看,集群系统就好像一台服务器或者PC。很多用户可以同时使用这个系统。但是当太多 的用户使用集群系统时,系统性能会变得很差。资源管理就是管理用户提交的作业,合理给各个作业 分配资源从而确保充分利用集群系统计算能力并尽可能快的得到运算结果。简单的说,集群资源由实 现如下几个部分: 资源管理器:为了确保分配给作业合适的资源,集群资源管理需要维护一个数据库。这个数 据库记录了集群系统中各种资源的属性和状态、所有用户提交的请求和正在运行的作业。策 略管理器根据这些数据和指定的调度策略生成优先级列表。资源管理器根据这个优先级列表 调度作业。资源管理器还应该具有资源预留能力。这样不仅可以保留强大的资源给需要的作 业,而且可以预留一定的冗余资源以应付集群中的结点失效和突发的计算。 作业调度策略管理器:策略管理器根据资源管理器得到各个结点上的资源状况和系统的作业 信息生成一个优先级列表。这个列表告诉资源管理器何时在哪些结点上运行哪个作业。策略 管理器不仅要提供一个复杂的参数集合去定义计算环境和作业,而且要为这个定义提供简捷 灵活的表达方式以允许系统管理员实现策略驱动的资源调度。2 Beowulf集群中的作业管理软件有很多种选择去管理集群系统中的资源。其中 PBS 资源管理器和 Maui 作业调度器最适合集群系统。2.1 PBSPBS(Portable Batch System)是由NASA开发的灵活的批处理系统。它被用于集群系统、超级计算机 和大规模并行系统。 PBS 主要有如下特征: 易用性:为所有的资源提供统一的接口,易于配置以满足不同系统的需求,灵活的作业调度 器允许不同系统采用自己的调度策略。 移植性:符合POSIX 1003.2标准,可以用于shell和批处理等各种环境。 适配性:可以适配与各种管理策略,并提供可扩展的认证和安全模型。支持广域网上的负载 的动态分发和建立在多个物理位置不同的实体上的虚拟组织。 灵活性:支持交互和批处理作业。OpenPBS()是 PBS 的 Open Source 的实现。商业版本的 PBS 可以参照: h卄p:/www pbsprc com/。2.2 MauiMaui是一个高级的作业调度器。它采用积极的调度策略优化资源的利用和减少作业的响应时间oMaui 的资源和负载管理允许高级的参数配置:作业优先级(Job Priority)、调度和分配(Scheduling and Allocation)、公平性和公平共享(Fairness and Fairsh
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!