ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:254.90KB ,
资源ID:3675106      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3675106.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Linux高性能计算集群 Beowulf集群.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Linux高性能计算集群 Beowulf集群.docx

1、Linux高性能计算集群 Beowulf集群Linux高性能计算集群- Beowulf集群1集群1.1什么是集群简单的说,集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(node)。一个理想的集群是,用户从来不会意识到集群系统底层的节点,在他/她们看来,集群是一个系统,而非多个计算机系统。并且集群系统的管理员可以随意增加和删改集群系统的节点。1.2为什么需要集群集群并不是一个全新的概念,其实早在七十年代计算机厂商和研究机构就开始了对集群系统的研究和开发。由于主要用于科学工程计算,所以这些系统并不为大家所熟知。直到Linux集群的

2、出现,集群的概念才得以广为传播。对集群的研究起源于集群系统的良好的性能可扩展性(scalability)。提高CPU主频和总线带宽是最初提供计算机性能的主要手段。但是这一手段对系统性能的提供是有限的。接着人们通过增加CPU个数和内存容量来提高性能,于是出现了向量机,对称多处理机(SMP)等。但是当CPU的个数超过某一阈值,象SMP这些多处理机系统的可扩展性就变的极差。主要瓶颈在于CPU访问内存的带宽并不能随着CPU个数的增加而有效增长。与SMP相反,集群系统的性能随着CPU个数的增加几乎是线性变化的。图1显示了这中情况。图1.几种计算机系统的可扩展性集群系统的优点并不仅在于此。下面列举了集群系

3、统的主要优点:1.高可扩展性:如上所述。2.高可用性:集群中的一个节点失效,它的任务可以传递给其他节点。可以有效防止单点失效。3.高性能:负载平衡集群允许系统同时接入更多的用户。4.高性价比:可以采用廉价的符合工业标准的硬件构造高性能的系统。1.2.1集群系统的分类虽然根据集群系统的不同特征可以有多种分类方法,但是一般我们把集群系统分为两类: 高可用(High Availability)集群,简称HA集群。这类集群致力于提供高度可靠的服务。 高性能计算(High Perfermance Computing)集群,简称HPC集群。这类集群致力于提供单个计算机所不能提供的强大的计算能力。2高可用集

4、群2.1什么是高可用性计算机系统的可用性(availability)是通过系统的可靠性(reliability)和可维护性(maintainability)来度量的。工程上通常用平均无故障时间(MTTF)来度量系统的可靠性,用平均维修时间(MTTR)来度量系统的可维护性。于是可用性被定义为:MTTF/(MTTF+MTTR)*100%业界根据可用性把计算机系统分为如下几类:可用比例(Percent Availability)年停机时间(downtime/year)可用性分类99.53.7天常规系统(Conventional)99.98.8小时可用系统(Available)99.9952.6分钟高

5、可用系统(Highly Available)99.9995.3分钟Fault Resilient99.999932秒Fault Tolerant表1.系统可用性分类对于关键业务,停机通常是灾难性的。因为停机带来的损失也是巨大的。下面的统计数字列举了不同类型企业应用系统停机所带来的损失。应用系统每分钟损失(美元)呼叫中心(Call Center)27000企业资源计划(ERP)系统13000供应链管理(SCM)系统11000电子商务(eCommerce)系统10000客户服务(Customer Service Center)系统27000表2.停机给企业带来的损失随着企业越来越依赖于信息技术,由

6、于系统停机而带来的损失也越拉越大。2.2高可用集群高可用集群就是采用集群技术来实现计算机系统的高可用性。高可用集群通常有两种工作方式: 容错系统:通常是主从服务器方式。从服务器检测主服务器的状态,当主服务工作正常时,从服务器并不提供服务。但是一旦主服务器失效,从服务器就开始代替主服务器向客户提供服务。 负载均衡系统:集群中所有的节点都处于活动状态,它们分摊系统的工作负载。一般Web服务器集群、数据库集群和应用服务器集群都属于这种类型。关于高可用集群的讨论很多,这里就不进行深入的阐述了。3高性能计算集群3.1什么是高性能计算集群简单的说,高性能计算(High-Performance Comput

7、ing)是计算机科学的一个分支,它致力于开发超级计算机,研究并行算法和开发相关软件。高性能计算主要研究如下两类问题: 大规模科学问题,象天气预报、地形分析和生物制药等; 存储和处理海量数据,象数据挖掘、图象处理和基因测序;顾名思义,高性能集群就是采用集群技术来研究高性能计算。3.2高性能计算分类高性能计算的分类方法很多。这里从并行任务间的关系角度来对高性能计算分类。3.2.1高吞吐计算(High-throughput Computing)有一类高性能计算,可以把它分成若干可以并行的子任务,而且各个子任务彼此间没有什么关联。象在家搜寻外星人(SETIHOME - Search for Extra

8、terrestrial Intelligence at Home)就是这一类型应用。这一项目是利用Internet上的闲置的计算资源来搜寻外星人。SETI项目的服务器将一组数据和数据模式发给Internet上参加SETI的计算节点,计算节点在给定的数据上用给定的模式进行搜索,然后将搜索的结果发给服务器。服务器负责将从各个计算节点返回的数据汇集成完整的数据。因为这种类型应用的一个共同特征是在海量数据上搜索某些模式,所以把这类计算称为高吞吐计算。所谓的Internet计算都属于这一类。按照Flynn的分类,高吞吐计算属于SIMD(Single Instruction/Multiple Data)的

9、范畴。3.2.2分布计算(Distributed Computing)另一类计算刚好和高吞吐计算相反,它们虽然可以给分成若干并行的子任务,但是子任务间联系很紧密,需要大量的数据交换。按照Flynn的分类,分布式的高性能计算属于MIMD(Multiple Instruction/Multiple Data)的范畴。3.3 Linux高性能集群系统当论及Linux高性能集群时,许多人的第一反映就是Beowulf。起初,Beowulf只是一个著名的科学计算集群系统。以后的很多集群都采用Beowulf类似的架构,所以,实际上,现在Beowulf已经成为一类广为接受的高性能集群的类型。尽管名称各异,很多

10、集群系统都是Beowulf集群的衍生物。当然也存在有别于Beowulf的集群系统,COW和Mosix就是另两类著名的集群系统。3.3.1 Beowulf集群简单的说,Beowulf是一种能够将多台计算机用于并行计算的体系结构。通常Beowulf系统由通过以太网或其他网络连接的多个计算节点和管理节点构成。管理节点控制整个集群系统,同时为计算节点提供文件服务和对外的网络连接。它使用的是常见的硬件设备,象普通PC、以太网卡和集线器。它很少使用特别定制的硬件和特殊的设备。Beowulf集群的软件也是随处可见的,象Linux、PVM和MPI。本文的以后几部分将详细介绍Beowulf集群系统的硬件、网络、

11、软件和应用体系结构。3.3.2 Beowulf集群和COW集群象Beowulf一样,COW(Cluster Of Workstation)也是由最常见的硬件设备和软件系统搭建而成。通常也是由一个控制节点和多个计算节点构成。COW和Beowulf的主要区别在于:1.COW中的计算节点主要都是闲置的计算资源,如办公室中的桌面工作站,它们就是普通的PC,采用普通的局域网进行连接。因为这些计算节点白天会作为工作站使用,所以主要的集群计算发生在晚上和周末等空闲时间。而Beowulf中的计算节点都是专职于并行计算,并且进行了性能优化。它们采用高速网(Myrinet或Giganet)上的消息传递(PVM或M

12、PI)进行进程间通信(IPC)。2.因为COW中的计算节点主要的目的是桌面应用,所以它们都具有显示器、键盘和鼠标等外设。而Beowulf的计算节点通常没有这些外设,对这些计算节点的访问通常是在管理节点上通过网络或串口线实现的。3.因为连接COW中计算节点的通常是普通的局域网,所以COW上的高性能应用通常是象SETIHOME这样的SIMD的高吞吐计算。而Beowulf无论从硬件、网络和软件上都对需要频繁交换数据的MIMD应用做了特别的优化。3.3.3 Mosix集群实际上把Mosix集群放在高性能集群这一节是相当牵强的,但是和Beowulf等其他集群相比,Mosix集群确实是种非常特别的集群,它

13、致力于在Linux系统上实现集群系统的单一系统映象SSI(Single System Image)。Mosix集群将网络上运行Linux的计算机连接成一个集群系统。系统自动均衡节点间的负载。因为Mosix是在Linux系统内核中实现的集群,所以用户态的应用程序不需要任何修改就可以在Mosix集群上运行。通常用户很少会注意到Linux和Mosix的差别。对于他来说,Mosix集群就是运行Linux的一台PC。尽管现在存在着不少的问题,Mosix始终是引人注目的集群系统。1什么是Beowulf集群Beowulf是现存的最古老的英语史诗:Famed was this Beowulf: farewth

14、e 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.它歌颂了一个英雄,他拥

15、有强壮的体魄和无人伦比的勇气。他最终战胜了魔鬼Grendel.你可以在我们所说的Beowulf首先是一个象史诗中英雄一样强大的集群系统。在1994年夏季,Thomas Sterling和Don Becker在CESDIS(The Center of Excellence in Space Data and Information Sciences)用16个节点和以太网组成了一个计算机集群系统,并将这个系统命名为Beowulf。Beowulf集群。Beowulf集群提供了一种使用COTS(Commodity off the shelf)硬件构造集群系统以满足特殊的计算需求的方法。这里的COTS是

16、指象PC和以太网这种广为应用的标准设备,它们通常可以由多家厂商提供,所以通常有很高的性价比。Beowulf集群这种方法很快从NASA传遍了整个科研机构和社团。实际上,Beowulf集群现在已被人们看作高性能计算中的一个分支或流派。因为几乎每个Beowulf集群的设计者都有自己的Beowulf集群的定义,恐怕很难给Beowulf集群下一个确切的定义。一些人认为只有那些采用和原始的Beowulf集群系统一样方法构建的系统才叫Beowulf集群。而另一些人则认为凡是能够在多个工作站上运行并行代码的系统都称为Beowulf集群。这里我们只是列举多数Beowulf集群具有的特征作为Beowulf集群的定

17、义: Beowulf是一种系统结构,它使得多个计算机组成的系统能够用于并行计算。 Beowulf系统通常有一个管理节点和多个计算节点构成。它们通过以太网(或其他网络)连接。管理节点监控计算节点,通常也是计算节点的网关和控制终端。当然它通常也是集群系统文件服务器。在大型的集群系统中,由于特殊的需求,这些管理节点的功能也可能由多个节点分摊。 Beowulf系统通常由最常见的硬件设备组成,例如,PC、以太网卡和以太网交换机。Beowulf系统很少包含用户定制的特殊设备。 Beowulf系统通常采用那些廉价且广为传播的软件,例如,Linux操作系统、并行虚拟机(PVM)和消息传递接口(MPI)。2 B

18、eowulf集群的分类由于一些特殊的目的如系统性能,有些Beowulf集群系统也采用一些用户定制的设备(它们通常由一家厂商提供)。为了区分这些特殊的系统,通常把Beowulf分为两大类:2.1第一类Beowulf集群(CLASS I Beowulf)这一类Beowulf集群全部由COTS设备组成。第一类Beowulf系统的优点是: 硬件设备由多个来源,通常具有廉价和易管理维护的特点。 不依赖于单个硬件供应商 所有设备驱动都由Linux开发社团提供 通常都是标准设备,例如,SCSI、以太网等等当然第一类Beowulf集群的缺点也是非常显然的。由于所采用的硬件都没有经过性能优化,所以其很难达到很好

19、的性能。比如,由于以太网的高延迟和低带宽使得集群系统中消息传递很难达到MIMD应用的需求,从而使整个集群系统的计算能力大打折扣。2.2第二类Beowulf集群(CLASS II Beowulf)第二类Beowulf集群是指那些采用了用户定制设备的Beowulf集群。这类集群系统最大优点是具有很好的性能。例如,采用Myrinet作为集群系统的IPC网络可以极大地提供进程间消息传递延迟和速度。当然它的缺点就是依赖于单个硬件提供商而且价格高昂。不能说,哪一类集群绝对优于另一类集群。这依赖于你的集群系统的需求和预算。3 Beowulf集群体系结构如上所述,现实中存在形形色色的Beowulf集群。虽然它

20、们都是原始Beowulf集群的衍生物,但是它们的体系结构也存在各种各样微小的差异。本文以IBM eServer Cluster 1300为例来阐述Beowulf集群体系结构和系统组成。图1是Cluster 1300上Beowulf集群的系统视图图1是Cluster 1300上Beowulf集群的系统视图。无论是管理节点(Master Node)和计算节点都是Intel IA32架构的xSeries PC服务器。它们通过网络(以太网和Myrinet)相连接。所有的节点都运行Linux操作系统。运行在计算节点上的并行应用程序采用MPI进行完成并行进程间的通信。计算节点通过管理节点和外部LAN相连。

21、整个集群系统都在一套集群管理工具监控之下。图2 Cluster1300上Beowlf集群组件图2是Cluster 1300上Beowulf集群的组件视图。它揭示了Beowulf集群的组成部分。通常Beowulf集群由四个层次构成: 硬件:主要是指Intel IA32架构的PC服务器。 网络:指用于节点间通信的局域网(普通的以太网)和并行进程间通信的高速网(Myrinet等高速网)。 软件:主要指Linux操作系统和用于并行通信的并行编程库(如MPI和PVM)。 并行应用本文的下面三个小节将分别介绍这四个层次。而本系列文章的后面两片将更详细的介绍它们。3.1 Beowulf集群硬件和网络Beow

22、ulf集群硬件和网络层次需要解决的问题是如何组织硬件使其达到最高的性价比。为了达到很好的性价比,Beowulf通常采用廉价的COTS硬件。当然有时为了提供某些关键的性能,也会使用一些特殊的设备。从硬件组织的角度说,Beowulf集群中的节点都是非共享内存的计算机,它们通过消息传递进行通信。实际上,我们还有其他组织硬件完成并行计算的方式。简单地说,有两种组织硬件完成并行计算的方法: 通过消息传递通信的本地内存(非共享内存)计算机系统(Beowulf集群) 通过内存访问通信的共享内存计算机系统(SMP计算机)当然也存在将多个本地或共享内存计算机相连并创造一个混和的共享内存计算机系统的可能。但在最终

23、用户看来,这种计算机系统就好像一个大型的共享内存计算机。这种技术被我们叫做非一致内存访问NUMA(Non Uniform Memory Access)。但是从底层说,一个NUMA计算机系统必须在节点间传递消息。当然也可以将共享内存计算机作为一个本地内存的计算机连入一个Beowulf集群系统。由于Linux系统支持SMP计算机,所以Linux系统本身能够在SMP中的多个CPU上调度作业。所以Beowulf集群本身就没有必要识别集群的节点是不是共享内存计算机了。和SMP系统相比,集群系统有明显的优点。关于这一点请参阅本系列文章的第一篇。因为Beowulf集群采用消息传递完成并行程序间通信,所以网络

24、传输成了系统的瓶颈。在实际的系统中,通常采用有两套彼此的独立的网络设备。一套是普通的以太网,用于象系统管理和文件服务等普通的网络通信。另一套网络是用于进程间通信的高速网,象Myrinet和Giganet。和100M以太网相比,这类网络具有低延迟和高带宽的特性。还有三类设备虽然不是必须,但是对于集群管理却是非常重要的: KVM Swither:KVM是指Keyboard、Video和Mouse。这个设备可以让系统管理员用一套KVM管理系统中的所有节点。 远程电源管理设备(如ASM):这类设备使得管理员可以在管理节点Power on/off其他节点。 Terminal Server:这种设备通过串

25、口将节点连接起来。通过这个设备,管理员可以在管理节点上虚拟出其他节点上的控制终端。和KVM相比,这种方法不需要硬件的切换。3.2 Beowulf集群软件Beowulf集群在软件层次面临的问题是如何在硬件层次上获得最大的性能。通常,Beowulf集群采用Linux+MPI的方式支持并行计算。MPI是采用消息传递的方式实现并行程序间通信。虽然也可以采用其他的通信方法,但是消息传递模式是最适合于集群系统的。简单地说,有两种在并行程序间传递并发的方法: 使用处理器间的消息传递(MPI) 使用操作系统的线程(Thread)其他的方法也存在,但是这两种方法应用得最广泛。虽然存在效率和移植的问题,这两种方法

26、都可以在SMP,NUMA和Cluster上实现。消息传递需要在CPU间拷贝数据,而线程却可以在CPU间共享数据。数据拷贝的速度和延迟是影响消息传递效率的最关键的因素。PVM和MPI是最常用的两种消息传递API。消息传递也可以在线程上实现,并且消息传递即可以用于集群系统,也可以用于SMP系统。和线程相比,在SMP系统上使用消息传递的优点在于可以很方便的把SMP上的应用移植到集群系统上。线程的最大特点是,线程间是共享数据。因此它在SMP系统上工作的更好。而且Linux本身也是支持Posix线程的。但是使用线程的最大缺点在于,很难将线程扩展到SMP系统以外。虽然NUMA技术可以高效的做到这一点,但是

27、那非常昂贵而且Linux本身也不支持。下表概括了线程和消息传递在SMP和集群系统上的比较:SMP系统性能集群系统性能扩展性消息传递好很好很好线程很好差*差*需要昂贵的NUMA技术3.3 Beowulf集群应用Beowulf集群的应用层次位于硬件和软件层次之上。它要解决的问题是如何在实际的集群系统中并行化(PARALLEL)应用中的并发(CONCURRENT)部分,从而使集群上的应用达到最好的性能。在阐述这部分之前,我们需要区分两个概念: PARALLEL和CONCURRENT。程序的并发(CONCURRENT)部分是指程序中可以独立计算的部分。程序的并行(PARALLEL)部分是指程序中在同一

28、时间被分别执行的并发(CONCURRENT)部分。它们的区别是很重要的。并发是程序本身的属性,而并行是计算机系统的属性。并行的目的是获得很好的性能。限制并行性能的因素是计算节点间通信的速度和延迟。大部分的Benchmark都有很高的并行性并且通信和延迟不是什么瓶颈。但是其他应用却没有这么简单。对于这些应用,有时候使并发部分并行执行反而可能使应用性能更低。简单的说,除非附加的通信时间代价小于并发节约的计算时间,否则并行执行反而会降低效率。程序员的任务就是决定哪些并发的部分需要并行执行,而哪些不应该并行执行。这些决定最终会影响应用程序的执行效率。图3描述了实际应用中程序并发部分和通信计算时间比的关

29、系。在理想的系统中,通信计算时间比应该是恒定的。任何并发部分都应该实现为并行。不幸的是,实际的系统,包括SMP系统,都是图3所示的那样。所以在设计Beowulf集群应用时,必须认识到并发带来的效率依赖于在该系统上通信处理时间比。也正是因为这个原因,虽然可以把应用移植到另一个并发系统上,但是并不能保证应用在被移植的系统上仍然是高效的。一般来说,不存在可移植的且高效的应用程序。同样的道理,使用更快的CPU也可能使你的应用变慢。1 Beowulf集群硬件和网络体系结构图1是Cluster 1300的硬件和网络体系结构图。从图中可以看出,整个系统由5类计算或网络设备和5类网络组成。这5类设备是: 主控

30、制节点(Control Node) 计算节点 以太网交换机(Ethernet Switch) Myrinet交换机 Terminal Server5类网络是: 集群局域网(Cluster VLAN蓝色) 管理网络(Management VLAN右边绿色) IPC网络(IPC VLAN棕色) Terminal网络(灰色) Service Processor网络(左边绿色)本文的以下部分将介绍这些设备和网络的角色,功能和一般的配置。2 Beowulf集群中的节点这一节主要介绍Beowulf集群中的节点,节点的类型和相应的功能。根据功能,我们可以把集群中的节点划分为6种类型: 用户节点(User N

31、ode) 控制节点(Control Node) 管理节点(Management Node) 存储节点(Storage Node) 安装节点(Installation Node) 计算节点(Compute Node)虽然由多种类型的节点,但并不是说一台计算机只能是一种类型的节点。一台计算机所扮演的节点类型要由集群的实际需求和计算机的配置决定。在小型集群系统中,用户节点、控制节点、管理节点、存储节点和安装节点往往就是同一台计算机。下面我们分别解释这些类型节点的作用。2.1用户节点(User Node)用户节点是外部世界访问集群系统的网关。用户通常登录到这个节点上编译并运行作业。用户节点是外部访问集群系统强大计算或存储能力的唯一入口,是整个系统的关键点。为了保证用户节点的高可用性,应

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1