3.2.3 GFS
GFS(Global File System)实现了存储设备的网络共享。这些存储设备可以是共享SCSI(Shared SCSI)和共享通道(Fibre Channel - FC)。GFS包装这些存储设备使得它们好像节点本地的文件系统。GFS的主要优点在于:
- 高可用性:如果一个GFS客户失效,数据还可以通过其他GFS客户访问。
- 扩展性:因为不需要中心服务器,所有很容易扩展存储容量和访问带宽。
GFS可以将物理上分离的存储设备虚拟为一个存储而且能平衡访问负载。GFS还实现了文件锁和实时文件系统。
3.2.4 Intermezzo
Intermezzo实现了一个分布式的文件系统。它采用客户/服务器模式。服务器拥有权威的数据,客户节点仅有本地缓冲的版本。它们通过普通的网络进行同步。Intermezzo支持断开连接下文件操作。在下次恢复连接时,它会集成本地的改动到服务器上。Intermezzo拥有象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(http://www.etnus.com/Products/TotalView/index.html)就是一个源码级的C、C++和Fortran调试工具。它拥有方便的图形化界面,可以用于调试多线程、多进程和集群应用程序。
4.3.2 隐式并行化
隐式并行化是由编译器来决定程序的并行性,高性能Fortran就是这类编译器。隐式并行化中,程序开发者向编译器提供一些程序并行的特征,编译器根据这些特征做出程序并行化的决定。通常编译器可以给并行应用提供一定程度的效率和移植性,但是不是最好的。
5 作业管理(资源管理)
从用户角度看,集群系统就好像一台服务器或者PC。很多用户可以同时使用这个系统。但是当太多的用户使用集群系统时,系统性能会很差。资源管理就是管理用户提交的作业,合理给各个作业分配资源从而保证集群系统高效运行。作业管理通常由资源管理器和作业调度策略器组成。
6 系统管理
从系统组成角度说,集群系统是由多台计算机组成的超级计算机。但是从最终用户看来,集群系统是一台计算机,也就是说,集群系统的构成对用户是透明的。所以集群系统的管理的目的就是让集群系统象一台计算机一样利于管理。归纳起来,集群系统管理一般完成如下任务:
- 资源管理
- 事件管理
- 配置管理
- 监控和诊断
- 硬件控制
- 系统安装
- 域管理
分页: [1] [2]
TAG: beowulf 集群 软件 结构