望麓自卑—湖南大学最具潜力的校园传媒

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1229|回复: 1

[资源共享] 建立开放的高性能集群[zz]

[复制链接]
发表于 2005-8-15 19:23:00 | 显示全部楼层 |阅读模式
建立开放的高性能集群
  
  
2004-8-11 10:42:08

   
  
                                      栗朝军  
  
   
   高性能计算集群主要用于解决大规模科学计算问题,以及存储和处理海量数据。在行业应用较广。Linux的出现,推动了集群系统的发展。目前,OpenMOSIX集群受到企业用户的欢迎。

OpenMOSIX集群的优势

   OpenMOSIX集群提供了一种特殊方式来建立集群系统,为Linux内核提供了高性能集群计算支持能力。它在多个由局域网互联的节点计算机之间,通过采用分布式的内存存取和占先式进程迁移技术,实现动态负载均衡。用户可以通过执行多个进程运行并行程序。系统把进程分配到具有最优资源的节点上。如果在程序执行过程中,某些节点的资源变得空闲,OpenMOSIX会重新分配进程,利用这些空闲资源。通过尽可能分配进程到所有可用节点,使整个集群系统具有很高的效率,提供一个多用户多任务的运行环境。

   OpenMOSIX 具有许多独特的优势。使用OpenMOSIX时,用户甚至可以使用便宜的PC,创建由数十个甚至数百个节点组成的群集。因此,对于分布式计算应用,使用OpenMOSIX比使用传统超级计算机或大型机更经济。当然,用户完全可以在高端的多处理器系统上运行 OpenMOSIX。

   在OpenMOSIX环境下,每个用户通过单一的用户宿主节点来与整个集群系统交互。这样,在用户看来,所有的进程好像运行在与之交互的节点上,不会意识到集群的存在,具有很好的透明性。OpenMOSIX可以将许多Linux机器转换成一个类似于大型虚拟对称多处理器(SMP)系统。但是,两者之间还是具有一些差异。首先,在SMP系统上,两个或更多的处理器之间可以很快地交换数据;但使用OpenMOSIX 时,节点之间彼此通信的速度是受局域网的带宽限制的。使用千兆位以太网或其他高带宽联网技术能够提高openMosix群集的效率。

   OpenMOSIX实现单一系统映像模式(Single System Image,SSI),支持所有的Unix接口和机制,具有如下特性。

1.占先式进程迁移

   由于OpenMOSIX可以透明地把用户进程迁移到任何可用节点,用户不必重新编译他们的应用程序,或者考虑不同处理器间的负载。可以通过简单地创建多个进程,使并行应用运行在OpenMOSIX系统上,就像在单机环境中一样的。系统将自动优化进程的分配和平衡负载。所有的用户进程看起来都似乎运行在用户的宿主节点上。每个新的进程是创建在其父进程所处的节点上,如果被迁移的进程产生一个子进程,它将同时创建一份代理(Deputy)和实体(Body)的拷贝。每个用户创建的进程将运行在用户宿主节点上的执行环境中。

2.动态负载平衡

   OpenMOSIX根据负载的波动和资源的可用性来发起进程迁移,通过在工作站上平均分布负载来提高性能。

3.内存共享

   OpenMOSIX通过内存损耗防止算法调整尽可能多的进程在跨越整个网络的“网络内存”中,尽可能防止进程被换出内存。当过渡的内存分页时触发这种算法。这时内存损耗防止算法的优先权高于负载平衡算法,它将迁移进程到内存充足的节点而不管此时负载是否均衡。

4.有效的通信机制

   在OpenMOSIX集群系统中,使用高效的通信机制减少了系统内核的通信开销。它假设通信介质是可靠和稳定的,因而建立了一套快速的低延迟、高吞吐量的通信协议。

5.分布式控制和高度的可伸缩性

   OpenMOSIX为了利用硬件的冗余来达到高可用性,工作站之间没有主从关系。系统的组成完全是分布式的,没有一个机器拥有整个系统的所有对象的信息。控制也是分布的,不存在集中的控制机构。

6.支持DFSA(Direct File System Access)

   DFSA通过将进程迁移到文件而不是传统的将文件数据传送给进程的方式对集群文件系统进行更好的支持。DFSA兼容的文件系统将允许迁移进程在当前节点直接文件I/O而不用通过宿主节点,这极大地减小了通信开销,充分利用了数据的本地性,特别适合于I/O密集型进程。OpenMOSIX系统实现了MFS(Mosix File System),支持DFSA特性。

OpenMOSIX集群的建立

   OpenMOSIX的透明性意味着不需要专门的编程,就可利用OpenMOSIX的负载均衡技术。实际上,缺省OpenMOSIX安装会自动地将进程迁移到“最佳”节点上。这使得OpenMOSIX成为能够立即为分布式应用带来好处的群集解决方案。一个低端的OpenMOSIX配置可以包含通过局域网连接起来的多台PC。一个中等的配置可以包含通过千兆以太网连接起来的多台工作站和服务器。高端的OpenMOSIX配置可以包含通过千兆网络连接起来的多台SMP或非SMP工作站和服务器。为了获取最大的群集性能,至少使用百兆以太网。将节点机器的以太网卡连接到专用的高速交换机上也是非常有益的。这样,各个系统都能够以全双工方式通过以太网进行通信,从而有效地使带宽加倍。

   最简单的方式是安装预先编译好的RPM包,但这样灵活性差,并且不一定适合具体应用情况。下面主要介绍从源代码开始安装的方式。

   要设置OpenMOSIX 群集,需要两个或更多连接在局域网中的Linux系统。要运行OpenMOSIX,这些系统应该能编译和运行2.4系列的内核。每个Linux系统都成为群集中的一个节点。至于OpenMOSIX系统的安装,可以按以下步骤实现。

1.集群内核的安装

   首先,需要下载OpenMOSIX内核补丁。这个补丁应用于特定版本的现成Linux内核,从而添加OpenMOSIX功能。下载的OpenMOSIX内核补丁,确保到它是针对现有的Linux内核版本,OpenMOSIX网站上会指明它所适合的内核源代码树。

2.安装userland工具

   userland工具主要用于管理OpenMOSIX集群的运行。既可以在每个节点机上分别编译userland工具,也可以在一个节点上编译这些工具分发到每个节点机。

所有节点都启动并运行后,通过察看/proc/hpc/nodes可以看到所有节点机。通过OpenMOSIX userland工具或/proc/hpc/admin可以有效地调整OpenMOSIX的工作方式。通过使用OpenMOSIX tress-test测试套件,可以全面详细地测试整个集群系统。OpenMOSIXVIEW则提供了监测系统的工具。

OpenMOSIX系统应用分析

   集群计算中最重要的手段是分布处理,这就涉及到数据的可分性和程序的可分性。数据可分指数据之间没有必然的联系,可以分别处理,比如MP3的压缩、有限元计算的某个步骤等。具有这种性质的数据很合适采用集群技术。例如,如果需要使用群集压缩8个数字音轨,则可以简单地同时启动所有8个音频编码进程。数秒之后,OpenMOSIX会将每个进程都迁移到群集中的一个合适节点上。如果该群集恰好有8个节点,那么完成音频编码作业的速度几乎比使用一台机器时快8倍。

   程序可分是集群重要的应用基础。即使程序不可分,而集群借助于子进程迁移,也意味着类似SMP系统支持程序可分。OpenMOSIX在进程级别上具有良好的伸缩性。OpenMOSIX 可以畅通无阻地在节点之间迁移大多数标准Linux进程。如果一个应用程序派生出许多子进程,每个子进程都执行工作,那么 OpenMOSIX能够将这些进程中的每一个都迁移到群集中的一个适当的节点上。即使特定应用程序并没有设计成使用多个可以独立迁移的子进程,也可以利用这种能力。

   OpenMOSIX像SMP系统一样,不能在多个物理CPU上同时执行单个进程。这意味着OpenMOSIX不能加速诸如浏览器这样的单进程程序,而只能将它迁移到执行效率最高的节点上。此外,OpenMOSIX目前不支持多个协作线程彼此隔离。

   OpenMOSIX适合以下应用环境有CPU密集型处理(如一些具有相对低IPC关联的科学、工程计算)、多用户的分时环境、并行处理环境和I/O、CPU混合型任务等等,由于具有DFSA 和MFS的支持这类工作OpenMOSIX也可以处理较好。

   OpenMOSIX应用在音频、图像的编码处理方面是非常合适的,使用OpenMOSIX作为编译环境也是很好的选择。OpenMOSIX与MPI、PVM配合得也很出色。由于OpenMOSIX出现时间不长。它的很多应用还有待开发。

应用注意事项

   OpenMOSIX系统的整体性能主要受到以下4个条件的制约。

(1)节点机的性能。节点机的性能对集群系统的影响是不言自明的。

(2)系统的调度算法。OpenMOSIX的占先式进程迁移、MFS文件系统等保证了在一些应用下,OpenMOSIX 性能几乎与群集的CPU资源成线性关系。

(3)程序的优化。OpenMOSIX是以进程迁移为基础的,所以一个(或多个)被设计为具有多个进程或子进程的程序,在OpenMosix集群下运行会有很好的效果。

(4)OpenMOSIX的节点间通信是TCP/IP为基础的,所以网络的性能对系统性能有较大影响。网络的性能对于集群系统的性能的影响十分显著,通常可以在网络连接的选型、网络拓扑结构、通信方式、任务粒度划分等方面改进网络性能。

   目前一些商用集群的节点间连接通常使用快速以太网、千兆以太网、Myrinet等。其中快速以太网可以提供100Mbps的链路带宽,千兆以太网可提供1Gbps带宽;而Myrinet由一系列交换开关组成,交换开关内部使用流水线机制,目前其带宽已经达到2Gbps以上。在通信网络的协议选择上可以使用普通的TCP/IP协议,也可以使用等效TCP/IP协议的精简协议,如Active Message、Fast Message、VIA(Virtual Interface Architecture)等。

   由于网络通信延时的关系,通信网络的拓扑结构对高性能计算机的性能有着非常重要的影响。不同拓扑结构的功能特性、网络时延、带宽、硬件复杂性、可扩展性和可靠性也不相同。下面是三种基本的连接方式:(1)2D或3D网络(2D、3D Mesh):连接方式非常简单,在同时对节点与其邻近节点交换数据频繁的应用场合非常有效。这种网络的性能主要取决于网络中路由器的性能。(2)超立方体(Hypercube)网络:这种连接的主要思想是减小任意两个节点间通信的“Hop”数。它的扩张性能较差,随着超立方体维数的增加所需要的节点数目按指数增长。(3)交换网络:所有的节点都直接与一个或多个高速交换开关相连,属于动态连接方式且速度很快。

   在很多情况下,对于一个给定的并发程序,并不是增加更多的处理节点就可以获得更多的性能,因为随着节点数目的增加,节点间通信开销、同步的开销等都会增加。因此为了提高整个系统的性能,需要在任务通信时做以下几点的均衡考虑:(1)所需处理节点的数目; (2)执行任务模块或划分的数目(如是否将一些小规模的任务组合在一起串行执行);(3) 系统通信开销。

   为了均衡好上述因素,可以对任务粒度(Task Granularity)作简单的分析。一个比较通用的任务粒度的定义如下:

G = R/C


   式中G是任务粒度,R代表程序执行的时间,C是以通信时延为主的额外开销。G越小则粒度越细,数据流计算中的程序指令就是一个细粒度的典型例子;另一方面,如果G越大则粒度越粗大,其典型的例子有任务的子程序和函数等。通常的细粒度的任务并行度高,但是通信开销大;粗粒度任务的并行度低,但通信开销小。为了最大限度发挥高性能计算机的并行度,往往把减小系统通信延时作为任务划分的依据,即将一些任务划分到一个节点上串行执行,使得通信延时的减小效果超过串行执行对性能的影响。

   因而,对于OpenMOSIX集群系统可以通过选用低延迟、高吞吐量的网络技术,使用合理的拓扑结构,优化任务粒度来提高OpenMOSIX集群系统的性能。当然这些问题需要具体分析。

   总之,OpenMOSIX 是在Linux系统群集上智能地分布任务的有效的解决方案。同时由于OpenMOSIX对硬件的依赖性很低,而且不需要改写应用程序,因此OpenMOSIX是一种非常经济、高效的高性能集群系统。作者地址:大庆市八百垧钻井工程技术研究院

小资料:OpenMosix

   MOSIX代表Multicomputer Operating System for Unix,它是一个使用Linux内核来实现进程负载均衡集群系统,为Linux提供了透明的群集解决方案。MOSIX原本是GPL(General Public License,通用公共许可证)代码。但是,在 2001年底,Mosix项目的领导者决定在非GPL许可证下发布Mosix的所有新版本。现在新的Mosix代码根本不包含任何许可证。由于这一突如其来的变化,再也不能把此后的Mosix看作是免费软件。因此,出现了OpenMosix项目,OpenMosix是Mosix的一个新分支,目的是确保广大用户可以继续使用Mosix的免费版本。第一个OpenMosix于2002年1月发布,目前最新的版本是openMosix-kernel-2.4.22。自从OpenMosix项目开始以来,原Mosix用户大都转移到了OpenMosix系统。

原文出处:http://www.ccw.com.cn/server/yyjq/htm2004/20040811_10GYF.htm
发表于 2005-8-21 20:30:24 | 显示全部楼层
好啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

每日推荐上一条 /1 下一条

小黑屋|手机版|湖南大学望麓自卑校园传媒 ( 湘ICP备14014987号 )

GMT+8, 2024-11-27 18:16 , Processed in 0.185606 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表