用于并行计算的PC集群系统构建_第1页
用于并行计算的PC集群系统构建_第2页
用于并行计算的PC集群系统构建_第3页
免费预览已结束,剩余5页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、(华中科技大学 材料成形与模具技术国家重点实验 室, 武汉 430074 )?摘要: 在注射成形模拟研究过程中,涉及材料的牛顿和非牛顿 黏性流动模拟和注射成形后期的冷却过程模拟,以及随时间 变化各处的压力变化等科学和工程领域经常应用大规模科 学计算。随着基于网格的计算和数据处理日益复杂,很多计 算一般PC系统无法满足要求,需要超级计算环境。因为不 断追求更高的计算精度和日益复杂的对象而扩大计算规模 , 传统的串行处理方式难以满足这些要求。因此,现代高性能 计算的低成本、高效率成为选择并行计算的解决方式。重点 阐述如何构建一个用于并行计算的PC集群系统,结合实例阐明MPI的实现方法,以及对PC集

2、群系统进行了性能评测。?丶 ?词:集群系统;并行计算;Linux;消息传递接口; PVFS?恳型挤掷嗪牛?TP393文献标志码:A文章编号: 1001?B3695(2009)03?B1042?B02?PC cluster system build for parallel computing?LI Min, ZHANG Yisheng, LI Dequn?(State Key Laboratory of Material Processing & Die & Mould Technology, Huazhong University of Science & Technology, Wuhan

3、 430074, China)?Abstract:The materials involved in the Newton and Newton viscous flow simulation and the latter part of the cooling process simulation in the injection molding, and the changes in the pressure during the simulation of injection molding process need largescale scientific computing. As

4、 gridbased computing and dataprocessing increasingly complex, many PC computing systems can not meet the general requirements, need super computing environment to finish the computing job. as constant pursuit of higher accuracy and the target of an increasingly complex and expand the scale of calcul

5、ation, the traditional serial calculation can?t meet these requirements. Therefore, highperformance computing, lowcost, high efficiency, became a choice of parallel computing solutions. This paper focused on how to build a PC cluster system for parallel computing , with examples clarify the implemen

6、tation of MPI, and how the PC cluster system performanced evaluation.?Key words: cluster system; parallel computing; Linux; MPI; PVFS?fe ? 随着科学工程要求,作为非线性数值模拟研究主要手段 之一的计算机,其性能要求也不断提高,单一的计算机系统 已经不能满足实验和研究的要求。而现在用于大型计算和分 析的并行计算的发展为数值模拟的发展提供了一个越来越 宽阔而高效的平台。因此,建立一种具有高性能和高扩展性 而且易于维护和使用的集群系统非常必要。1 集群系统的研究1

7、.1 集群的概念简单地说,集群( cluster )就是一组计算机,它们作为 一个整体向用户提供一组网络资源。这些单个的计算机系统 就是集群的节点( node )。一个理想的集群是,用户从来不 会意识到集群系统底层的节点,在用户看来,集群是一个系 统,而非多个计算机系统。集群系统的管理员可以随意增加 和删改集群系统的节点。图 1 是目前最基本的,也是最容易 搭建的集群构架。1.2 集群分类 根据不同的标准,常见的集群分类有以下几种:a) 故障切换集群。 最简单的故障切换集群只有两个节点 即保持活动的节点和保持等待并不断监视活动的节点,一旦 活动节点崩溃,这个等待着的节点便立即接手,这样就保持

8、了一个系统能在紧急情况下持续发挥作用。b) 负载平衡集群。该集群通常用在繁忙的网站服务器, 使用数个节点做同一个站点的主机,每一个网页的新请求被 动态地发送到负载较低的那个节点上。c) 高性能集群。这些集群被用来运行并行程序,这些通 常是对时间有较高要求的情况,所以科学领域中对高性能集 群有特别的兴趣,科学家们通常会想在普通的硬件上以较少 的时间运行仿真器和其他对运算能力有高要求的程序。1.3 集群系统的设计要点 集群中存在着大量的冗余可用资源,如处理器、内存和 磁盘等,这就要求系统设计必须满足五个要点: a) RAS性能, 要充分考虑系统的可靠性( reliability )、可用性( av

9、ailable ) 、 可维护性(serviceability)。b)单一系统映像 SSI通过组合各节 点上的操作系统提供对资源的统一访问,表现为一个单一的 系统。c)作业管理(job management )。因为集群要获得较 高的系统使用率,所以作业管理软件需要提供批处理、负载 均衡和并行处理等功能。d)并行文件系统PFS由于机群上 大量并行应用,需要大量I/O操作,要有PFS支持。e)高效 通信。由于节点间的连线比较长,而且使用的标准通信协议 下的商用协议开销比较大,影响到系统的性能,需要一个高 效的通信子系统。2PC集群系统配置及瓶颈的解决2.1 集群系统的软件配置 由于高性能计算机价

10、格昂贵,在科学计算领域中,人们 开始将注意力投向通过普通PC机或工作站的集群来代替昂贵的超级计算机。用于科学计算并行集群的最广泛的操作系 统平台是Linux,其价廉、高效的网络性能及可靠性得到广泛 认同。因此,选择了RedHat Linux EL4(内核)作为每个节点的操作系统。并行通信库是一层中间件,它可以使用户程序发送接 收消息,只需通过简单调用库函数即可统一访问集群的不同 节点,不管节点上运行的是什么操作系统。这类消息传递接 口库软件中,广泛应用的是 MPI(message passing interface )和 PVM(parallel virtual machine ),它们均能提

11、供简便的消息传 递 API 接口,并支持多数的并行计算体系结构和操作系统。与 PVM 相比较, MPI 得到了更多的支持,它运行效 率更高并且已经是国际标准。 MPI 以语言独立的形式提供了 一个接口库,Fortran和C语言中可以直接对这些库中函数进行调用。MPI1标准提供了与C、Fortran77等语言的绑定; MPI2标准将语言绑定扩展到 Fortran90和C+。因此选用了应用广泛、可免费获取的 MPI 工具集 作为集群并 行程序的开发环境, 该工具集支持 MPI1 标准,部分支持 MPI2 标准。2.2 集群计算瓶颈的解决 集群中有大量的信息交互,如进程间数据传输、进程间 数据同步等

12、。通信性能对于集群并行计算非常重要,如果通 信性能不能满足交互的需要,将导致计算性能快速下降。在 集群组成的各个部分中,通信瓶颈主要集中在网络的延迟和 带宽方面。根据有关的实验资料表明,如果集群中每个计算 节点采用单个 100 Mbps 以太网卡,节点数量达到 4 个节点 后通信瓶颈将非常严重;节点数量达到 8 个节点时,由于通 信堵塞计算反而比一个节点还慢。通过应用网卡捆绑技术来部分地解决这一瓶颈:首先, 在每个计算节点上安装配置双 100 Mbps 以太网卡,并通过 一个多通道绑定程序实现双网卡捆绑;其次,通过配置交换 机端口,将集群内部网络划分为两个虚拟局域网VLAN。这样数据包被拆分成

13、两等分从两块网卡同时输入 /输出,使进程 间的交换数据能够通过两块网卡并行传输,通信性能因而得 到很大提高。经笔者测试,在双节点上传输长度为 64 Byte 的数据包,平均传输时间约为 62卩s,长度在200 Byte以下 的包,平均传输时间小于 100卩s。一些程序经常会在磁盘上读写大量的数据, 这时文件 I/O 成为计算中最慢的一个步骤。更快的硬盘驱动器能够改善此 问题,但是总有不够的时候。当一个硬盘分区在所有的节点 之间共享时(如使用NFS这个问题更突出了,而这在 Linux集 群中是很常见的。这就是并行文件系统能派上用场的地方。 并行文件系统将一个文件分散在许多不同节点的硬盘上,这 些

14、节点被称做 I/O 节点。当一个程序试图读一个文件时,那 个文件的每个小部分被并行地读取。这样减少了每一个磁盘 控制器的负载并允许它们接收更多的请求。PVFS是开源并行文件系统中一个很好的例子;在一个Linux集群上使用标准IDE磁盘的环境下,磁盘的性能已经超 过了 1 GBps。PVFS可以作为Linux内核模块或者可以被编译 进 Linux 内核,后台实现的概念是很简单的,如图 2 所示。3PC集群系统的实现与简单的性能测试PC集群系统拓扑示意图如图3所示。使用p个节点计算 c=Ab 。 其中: A 是 m 阶矩阵; b 是 m 维向量。假设 m=np (如不能整除将剩余部分放在最后一个进

15、程中),在每个进程中存放 A 的 n 列和对应的 b 的 n 个分量。本文通过使用相同的数据,测试不同的节点数采集的计算数据,如下所示:program redsct include ? mpif.h? integer lda, cols, maxnp parameter (lda = 100, cols = 100, maxnp = 5) integer myid, p, mycomm, ierr, m, n, counts(maxnp) real a(lda, cols), b(cols), c(lda), sum(lda) logical sct call mpi_init( ierr )

16、 call mpi_comm_dup( mpi_comm_world, mycomm, ierr) call mpi_comm_rank( mycomm, myid, ierr ) call mpi_comm_size( mycomm, p, ierr ) print *, ? Process ?, myid, ? of ?, p, ? is running? if (p .gt. maxnp) goto 999 m = 100 sct = .false. sct = .true.call initab(m, myid, p, n, a, lda, b, sum) call locmv(m, n, a, lda, b, sum) if sct = true, call reduce_scatter, otherwize call allreduce if(sct) thencall mpi_allgather(n, 1, mpi_integer, counts, 1,&mpi_integer, mycomm, ierr)call mpi_reduce_scatter(sum, c, counts

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论