»
2007-11-231.Application

165

Linux高性能集群-软件体系结构

本文是高性能集群系列文章的第三部分。在本文中,以IBM eServer Cluster 1300为例介绍了Beowulf集群中硬件和网络体系结构和组成部分。 

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), 所以它很难保证数据在集群系统范围的一致性。而且往往分布式文件系统中只有一份数据,所以很容易发生单点失效。 

您还可能感兴趣的内容

日志信息 »

该日志于2007-11-23 13:05由 x72 发表在1.Application分类下, 通告目前不可用,你可以至底部留下评论。

没有评论

发表评论 »


返回顶部