不需要

没有人的生活能不需要it互联网、搜索引擎

« 有道词典V2.0.12.7000发布搜狗拼音组词准,搜狗搜索结果准 »

以太集群的设计与性能测试

利用以太集群系统实现数据的并行处理,提高整个系统运行的性能,就可以用较低的价格配置来代替超级计算机的工作。
  
  1 以太集群简介
  
  以太集群提供了一种使用COTS(Commodity off the shelf)硬件构造集群系统以满足特殊的计算需求的方法。所谓的COTS是指象PC和以太网这种广为应用的标准设备,它们通常可以由多家厂商提供,所以通常有较高的性价比。实际上,以太集群现在已被人们看作高性能计算中的一个分支。
  以太系统通常有一个管理节点和多个计算节点构成。它们通过以太网(或其他网络)连接。管理节点监控计算节点,通常也是计算节点的网关和控制终端。当然它通常也是集群系统文件服务器。在大型的集群系统中,由于特殊的需求,这些管理节点的功能也可能由多个节点分摊。它通常由最常见的硬件设备组成,例如,PC、以太网卡和以太网交换机。以太集群系统很少包含用户定制的特殊设备。
  
  2 以太集群系统的设计
  
  由于以太集群系统的设计大同小异,只是节点多少的区别。这里以组建16节点的以太集群系统为例加以介绍,其设计主要包括选择相关硬件、操作系统组建局域网、启动相关服务、配置并行环境、系统调试四部分。
  2.1 组建局域网
  根据要求可以将该系统划分为服务器节点(接入Internet、提供集群环境、管理数据、进行分割计算任务、进行数值运算)、用户节点(进行数值计算)两种节点。其拓扑结构如图1所示。
  其硬件设备只是目前的常用的PC设备即可,笔者选用的CPU是16个Intel Pentern IV处理器(技术指标:Norwood芯片2.66GHz)。目前,比较流行操作系统有Windows系列和Linux系列。综合考虑其系统的稳定性和安全性,我采用的是RedHat10.0。由于安装操作系统、组建局域网的方法其他许多地方都有介绍,可以参考相关资料[1],这里不做叙述。
  2.2 启动相关服务
  为了方便操作,实现本地终端登陆远端终端,需要启动telnet服务;在构造以太集群系统时,经常需要在各节点之间进行传输文件,所以我们必须要进行配置FTP服务;为了实现本地节点操纵远端节点,需要Rsh服务;如何在各结点之间高效、一致和快捷地实现数据并行处理是集群系统对文件系统提出的要求。以太集群系统的并行环境中,用户节点镜像服务器节点的并行环境,所以要在各个节点创建一个共同目录,配置Nfs服务。这些可以参考一般的Linux资料都可以实现[2]。
  2.3 置并行环境
  以太集群主要目的是实现数据并行,让主机的任务,可以部分让其它负载分担。因此它需要一个可移植的网络计算环境,以便在一个通用的平台上开发并行计算应用软件,一般集群系统都采用消息传递型的编程环境。消息传递既适用于集群系统,又适用于SMP和MPP系统。通用的消息传递编程环境的主要以下两种。
  1) PVM——并行虚拟机(Parallel Virtual Machine)
  PVM是在美国国家基金会资助下由美国橡树岭国家实验室开发的开放软件系统,目前的最新版本为PVM3.4.3,国际上大多数并行计算机公司都支持PVM3。PVM具有以下特点:开放软件,可自由获得源代码;通用性强,既适用于TCP/IP网络,又适用于MPP大规模并行系统;系统规模小(约几兆字节);成熟程度高,支持厂商多,应用范围广;一批标准数学软件库已移植到PVM平台上,如Linpack、Lapack、Eispack等。PVM支持C和Fortran语言。
  2) MPI——消息传递接口(Message Passing Interface)
  这是目前集群计算环境下使用最为广泛的并行软件开发环境,是一个由大学、实验室、工业界等组成的标准化委员会制定的消息传递接口的国际标准。MPI标准的制定开始于1992年,1992年11月发布草稿,1994年发布了MPI的定义和实验版本MPI1,目前的最新版本为MPI3,本文暂用MPI2为例。MPI有一个支持X窗口的版本MPICH。它具有以下特点:
  ①移植性:基于MPI的并行应用程序可以几乎不作修改在不同型号的并行机之间转移,或转移到网络环境中运行,只要这些并行机或网络环境都支持MPI平台即可,具有很好的移植性。
  ②通信模式:MPI提供了点到点通信和集合通信。在点到点通信中,发送只有阻塞式发送,接收有阻塞和非阻塞两种。在集合通信中,MPI提供了更多的全局操作函数,支持广播、分散、收集、多收集、多对多等过程组内多进程数据通信操作,通信方式多样,功能十分强大。
  ③安全通信:MPI中提供了通信子的概念,所谓通信子就是一组具有同一上下文的任务与通信上下文的绑定。上下文则是通信的一个组成属性,它用于区分一个消息的通信空间。上下文的存在,保证了可靠安全的通信环境,避免了通信空间的出错,提供了可靠的通信接口。
  ④进程管理:MPI-1完全是静态的,也就是认为所有进程是事先静态初始化好了,尽管MPI-2在此进行了改进,提供了增加一组进程组的函数及组内进程间发送控制信息的函数,可是并不支持对动态进程的查询。但MPI中对任务分配提供了笛卡尔拓扑和图拓扑来分配资源,有可能充分利用硬件的特性来达到简化设计,提高效率。
  这里我们采用的是mpich,它是Linux平台下最重要的一种MPI实现,是一个与MPI规范同步发展的版本,并且是免费的。每当MPI标准推出新的版本时,mpich就会有相应的实现版本。mpich是一个MPI的库,它提供了不同版本MPI的库结构,编程人员可以使用mpich来使用这些MPI接口,以便写出适合自己的基于消息传递的并行程序。编程人员使用C、C++或者是Fortran语言来调用这些标准库,实现程序的并行性。mpich使用的是MPI标准,所以它开发的程序可移植性很强,而且它提供统一的编程接口,所以程序的可开发性很强。从因特网上下载mpich.tar.gz,在服务器节点上用户节点镜像的目录下解压缩、安装,编辑../mpich-1.2.6/util/machines/machines.LINUXmachines.LINUX文件,进行授权计算节点,并在path路径中加入../mpich/bin,这样从新启动用户节点,并行环境安装成功了。

 2.4 系统调试
  以太集群系统安装成功后就可以进行调试。mpich的examples目录下许多并行例程,这里可用它们调试,笔者选用的是cpi。在服务器节点运行mpirun–np16cpi后,显示器就可以显示出效果,可以根据提示发现是否安装成功。如果按以上步骤处理,通常不会出现问题。
  2.5 意事项
  安装过程中的每一个环节都很重要,都将直接决定的以后工作的成败,所以不要急躁,要沉着、仔细地做好每一个环节。多阅读相关软件附带的帮助文档。由于以太集群系统需要远程登录,数据共享,所以在启动服务时要首先要关闭防火墙,允许接受外部的数据包。另外要注意的是,通常RedHatLinux10.0自带的并行环境lam-mpi与要安装的mpich有冲突,所以在安装mpich前要先在各个节点卸载lam-mpi。
  
  3 性能测试
  
  以太集群的性能测试通常采用Linpack测试[3]。Linpack是由JackDongarra编写的在高性能计算领域最出名和广泛使用的基准测试程序。Linpack使用高斯消元法求解线性代数方程,测量解稠密线性方程系统所需的时间。它在分布存储计算机上的并行版本为HPL(HighPerfor2manceLinpack)。国际上著名的TOP500超级计算机排名就是依据HPL测试值为标准。
  使用HPL基准测试一般需要和收集的信息包括:
  1) Nmax:获得最高GFLOPS值时的矩阵规模或问题规模。
  2) Rpeak:系统的最大的理论峰值性能,用GFLOPS(GigaFloatingPointoperationsPerSecond每秒十亿个浮点操作。计算CPU浮点能力的一个单位,以兆条指令为基准)表示。
  3) Rmax:在Nmax规定的问题规模下,达到的最大GFLOPS。
  4) NB:对于数据分配和计算粒度,HPL使用的块尺度NB。从http://www.netlib.org/benchmark/hpl/上下载最新的HPL包hpl.tar.gz并解包,目前HPL的最新版本为hpl1.0a。同时要从http://www.netlib.org/atlas/archives/linux/上下载合适的atlas包并解包到相应目录下。这样就可以进行Linpack测试了。这里的理论峰值为42.56GFLOPS,相当于一个高性能计算机在工作,节约了成本。
  
  4 总结
  
  这样16节点的以太集群系统组建完成,完全做到了节约成本,实现了高性能计算,更多结点以太集群系统不过是在系统的安装、管理节点分配上下些时间功夫。

作者:国锋 电脑知识与技术

  • 相关文章:

发表评论: