APP下载

基于MPI的网络并行计算系统构建及分析

2012-01-25张克非赵振江

沈阳化工大学学报 2012年2期
关键词:蝶形以太网集群

张克非, 梅 栴, 赵振江

(沈阳化工大学计算机科学与技术学院,辽宁沈阳110142)

现代计算技术显著地促进了科学计算的发展,高效的计算速度是目前科学计算中迫切需要解决的问题.目前,在尖端科学研究领域诸如地震预报、气候模拟和地质研究中存在着巨大的计算任务[1].如此庞大计算任务的解决依靠单处理器是无法实现的.在这些领域,迫切需要高效的计算方法.与此同时,随着PC机性能的提高和网络产品的更新换代使一种新的计算形式——网络并行计算应运而生.网络并行计算是目前解决大规模计算问题一个可行的有效途径.本文主要阐述了基于MPI的并行计算系统搭建过程,并利用一个并行计算实例对此方法进行验证,取得了良好结果.

1 网络并行计算系统的体系结构

网络并行计算[2]是一种并行计算技术,它通过网络连接多个计算机系统来实现高效的并行处理任务.网络并行计算能够充分利用整个系统的资源进行统一调度和协调处理,是目前并行计算研究领域的一个新的发展趋势.

1.1 硬件结构

随着网络的普及和发展使得利用集群作为网络并行计算的开发平台成为一种新趋势.集群是将一组计算机连接起来实现高效并行计算的系统.集群中的各台计算机之间联系紧密,在某种程度上可将整个系统理解成一台计算机.集群中的计算节点可以是PC或工作站,每一个节点有独立的内存、输入输出设备和操作系统,节点之间通过高速局域网络互相连接.对于用户和应用程序而言,集群如同一个单一的系统.通过消息传递机制实现节点之间的互相通信,并提供上层的API接口方便用户编程.集群以低廉的价格获得强大的计算能力,是目前网络并行计算领域的优秀开发平台.一个典型包含4个节点的集群的体系结构[3]如图1所示.

图1 4个节点的集群的体系结构图Fig.1 The architecture diagram of cluster include four nodes

1.2 集群的互连网络

网络数据交换是影响网络并行计算系统性能的瓶颈.因此,采用高速的网络将会明显提高系统性能.目前,集群一般通过ATM、Myrinet、以太网[4]等网络进行互连.

ATM是异步传输模式的缩写,是以信元为基础的一种分组交换和复用技术.它具有高速数据传输率,适用于局域网和广域网,但ATM网络的硬件设备价格非常昂贵,限制了它的普及和应用.

Myrinet是一项高性能的分包通信和交换技术,被广泛应用于工作站、PC、服务器的互联集群.它以一种经济的方式实现高性能以及高可用性.它最具有吸引力的特征是同时具有高带宽和低时延,并且成本上更接近于以太网.Myrinet具有广阔的应用前景,国内外许多高性能的集群系统都是基于它构建的.

以太网是应用最为广泛的局域网,它采用带冲突检测的载波帧听多路访问机制.以太网中节点都可以看到在网络中发送的所有信息,因此,以太网是一种广播网络.以太网有共享式以太网和交换式以太网2类.共享式以太网所有用户共享带宽,每个用户的实际可用带宽随用户数的增加而递减.当信息繁忙时,多个用户都可能同时“争用”一个信道,而一个通道在某一时刻只允许一个用户占用,所以大量用户经常处于监测等待状态,致使信号在传送时产生抖动、停滞或失真,严重影响网络性能.交换式以太网中,交换机供给每个用户专用的信息通道,除非2个源端口企图将信息同时发往同一目的端口,否则各个源端口与各自的目的端口之间可同时进行通信而不发生冲突.交换式以太网是目前构建小型集群使用最多的网络互联结构.

1.3 网络并行计算环境

网络并行计算需要一个可移植的网络并行计算环境,这对整个并行计算系统尤为重要.目前,较为流行的网络并行计算环境有 MPI、PVM、Express、P4等.其中,MPI具有较好的可移植性、高效性和强大的功能,并且具有不同的免费实现版本[5].MPI是一种标准或规范的代表,而并不特指某一个对它的具体实现.迄今为止,所有的并行计算机制造厂商都提供对MPI的支持,可以在网上免费得到MPI在不同并行计算机上的实现[5].一个正确的MPI程序,可以不加修改地在所有的并行机上运行.MPI已经成为国际间并行程序设计的标准,它具有如下的显著优点:

(1)MPI支持点对点通信和集体通信;

(2)MPI的可移植性强,能同时支持同构和异构的并行计算;

(3)MPI的可伸缩性强,允许系统中节点的任意增加或减少;

(4)MPI是一个消息接口传递的标准,用于开发基于消息传递的并行程序.其目的是为用户提供一个可移植的、实际可用的、高效灵活的消息传递接口库.MPI以语言独立的形式来定义这个接口库,并提供了与C和FORTRAN的绑定.

MPI作为一个并行程序库的优秀开发平台,为用户编写和运行并行程序提供了便利的条件.因此,MPI在业界被广泛的接受和采用.

2 系统的实现

2.1 硬件平台

将所有的计算机配置在同一局域网内.笔者所搭建的集群由8台相同配置的计算机和1台交换机组成.每个节点机的配置为:2.4 GHz CPU,512 MB DDR内存,80 GB硬盘.100 Mbps高速以太网作为集群的互联网络.每个从节点只有1块网卡,而主节点安装2块网卡,一块用于连接集群系统,另一块用于连接Internet.将主节点命名为node1,其余的结点依次为node2~node8.IP地址分别设为192.168.1.1~192.168.1.8.各个节点之间通过网线连接成星型拓扑结构.为各个节点机配置相同的/etc/host文件以实现计算机名称和IP地址之间的转换.

2.2 网络操作系统

集群系统中的节点机操作系统绝大部分选用Linux、Windows NT/2000/XP,它们都有很强的网络支持功能和可靠性.Linux是一个领先的操作系统,是全面多任务和真正32位的网络操作系统.它是一款免费的操作系统,具有众多的诱人之处.其中,它提供的丰富的网络功能和可靠的安全稳定性能使之更适合网络并行计算.因此,Linux是目前主流集群系统采用的操作系统.本文搭建的集群系统采用的是Red Hat 9.0.

2.3 基本的网络服务

Linux集群每个节点有自己的处理器、内存和操作系统,各台机器之间不能直接访问.MPI却需要这样的互访,这就需要网络协议的支持.

由于需要实现互访和并行计算中每个节点运行相同的程序这一特点,就要求每个节点能载入同一个程序并进行初始化.NFS[6]可以实现这个功能.NFS允许一个系统在网络上与他人共享目录和文件.通过使用NFS,用户和程序可像访问本地文件一样访问远端系统上的文件.用户在任何一个节点登陆,看见的是单一的系统印象,感觉不到多台计算机的存在.

集群还需要有高效的身份验证,并且能执行用户发出的计算指令.这个功能由NIS和RSH服务实现.NIS是网络信息服务.由于集群系统中的节点数目多,每个节点的账号和密码都需要进行管理.NIS通过一台主控节点来管理集群中所有节点的账号,当其他主机有使用者登陆的需求时,到主控节点上要求账号和密码资料.因此,可通过主控节点来实现增加、修改或删除节点,这样可降低重复设定使用者账号的步骤.RSH是远程通信协议.基于MPI的并行计算需要在各个节点启动并行计算任务,用户需要在各个节点登陆,然后进行计算,这种做法效率很低.RSH提供这样一种机制,不需要登录远程机器就可以进行计算并提交任务.

2.4 MPICH的安装和配置

MPI具有多种实现版本.MPICH[7]是MPI标准的一种最重要的实现,它的开发主要由Argonne National Laboratory和 Mississippi State University共同完成.MPI的安装和配置主要有下载、配置、安装和编译几个步骤.本系统采用mpich2-1.0.6版本作为并行环境,由于已经安装和开启了相关的网络服务,安装和配置只需要在主节点进行1次即可.

3 性能测试

3.1 FFT变换

图2是8点的频率抽取法蝶形运算流图.图2中,N=2R,其中R是迭代次数.L指的是第L级迭代,0≤L≤R-1.从图2可以看出,求解N点序列的FFT变换是多步骤的迭代操作.每一级的迭代都是由多对数据之间的蝶形运算组成;每次蝶形运算都是在2个数据间进行操作.蝶形运算的规则完全相同,不同之处在于每次蝶形运算的原始数据不同,运算过程中的旋转因子不同.因此,N点序列的FFT运算具有并行性.对N点序列的FFT运算的并行求解过程实质上就是将数据进行分块处理.并行FFT算法的流程图如图3所示.

图2 N=8的频率抽取法蝶形运算流图Fig.2 The butterfly computing flowchart of 8-point FFT

图3 并行FFT变换的流程图Fig.3 The flow chart of parallel FFT

3.2 实验结果与分析

测试用例是计算数据规模从215~220的序列的FFT变换.图4所示为并行FFT算法的加速比,图5所示为并行FFT算法的效率.图4、图5中P是计算节点的数目.

图4 并行FFT算法的加速比Fig.4 The speedups of parallel FFT

图5 并行FFT算法的效率Fig.5 The efficiencies of parallel FFT

从图4和图5可知,加速比随计算节点的增加而增大,效率却相反,它随节点数目的增加而降低,将其称之为并行算法设计的瓶颈.图5中效率随参与运算节点数目的增加而显著下降,主要原因是蝶形操作之后,每个节点将结果返回给主处理器,同时还需要将更新的数据广播.由于网络的延迟,相对于算法本身的计算任务,这些结果数据和更新数据的传送也是一笔不小的时间开销.这样的计算通信比率较小的任务被称为细粒度任务.细粒度任务不适合用前述方式搭建的网络并行计算系统进行运算.前述方式搭建的网络并行计算系统更适合计算通信比率较大的粗粒度并行计算任务.

4 结论

利用局域网构建的网络并行计算系统对于小规模的计算任务是一个较好的解决方案,值得推广和普及.这种系统更适合于粗粒度的并行计算任务而不适于细粒度的并行任务.对于不同的并行计算任务选择合适的并行计算环境是实现高效并行计算的一个不可忽视的重要因素.

[1] Murphy K P.Dynamic Bayesian Networks:Representation,Inference and Learning[D].Berkley: Univ.of California,2002.

[2] 都志辉.高性能计算之并行编程技术——MPI并行程序设计[M].北京:清华大学出版社,2001:31-39.

[3] Foster I,Kesselman C,Tuecke S.The Anatomy of Grid:Enabling Scalable Virtual Organization[J].International Journal of Supercomputer Application,2001,15(13):200-222.

[4] 张晨曦.计算机体系结构教程[M].北京:清华大学出版社,2009:12-15.

[5] 陈国良.并行计算——结构、算法、编程[M].北京:高等教育出版社,2009:121-125.

[6] 杨晓东,陆松,牟胜梅.并行计算及体系结构技术与分析[M].北京:科学出版社,2009:147-152.

[7] 陈国良.并行计算——结构、算法、编程[M].北京:高等教育出版社,2001:77-80.

[8] Gropp W,Lusk E.User's Guide for Mpich,a Portable Implementation of MPI[J].Parallel Computing,2006,22(6):789-828.

猜你喜欢

蝶形以太网集群
蝶形引入光缆技术新进展
蝶形腹板剪切变形计算与分析
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
海上小型无人机集群的反制装备需求与应对之策研究
一种无人机集群发射回收装置的控制系统设计
Python与Spark集群在收费数据分析中的应用
谈实时以太网EtherCAT技术在变电站自动化中的应用
勤快又呆萌的集群机器人
一种90W高功率以太网供电系统的设计
浅谈EPON与工业以太网在贵遵高速公路中的应用