PC集群的构建与并行计算性能评测

2011-01-25 06:59张克非张宪刚郑秀红
沈阳化工大学学报 2011年4期
关键词:PC机命令集群

张克非, 张宪刚, 梅 栴, 郑秀红

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

随着科技的飞速发展,科学与工程领域的计算日趋复杂.如此庞大的计算任务采用串行计算是无法胜任的,并行计算是目前能够满足实际大规模计算需求的有效途径.并行计算的载体是并行计算机.并行计算机分为2类[1]:一类是为面向重大应用问题而定制的专用系统,这类系统价格不菲;另一类是通用型的并行计算系统.这类系统以PC集群为典型代表.PC集群造价低廉、可满足不同规模的计算需求,特别适合小型科研机构进行并行计算的科学研究.本文主要阐述在现有实验室条件下如何构建一个小型的基于Linux的PC集群系统.主要包括硬件、软件、网络的设计与实现过程,并在此基础上对并行计算进行初步研究.

1 PC集群与并行计算

1.1 PC集群

PC集群系统是指将多台PC机通过高速局域网相互连接起来,配备一定的并行支撑软件,形成一个松散耦合的并行计算环境,协同地并行求解同一个问题[2].它可以利用本局域网内的PC机资源,动态地构造并行虚拟机,能提供高效的计算性能.PC集群系统具有投资小、结构灵活、可扩展性强、通用性好等优点,成为并行计算领域的一个新的发展方向.

1.2 并行计算与并行计算环境

并行计算[3]指在并行计算机上,将一个应用分解成多个子任务,分配给不同的处理器,各个处理器之间相互协同,并行地执行子任务,从而达到加快求解速度或者提高求解应用问题规模的目的.并行计算的开展需要并行计算环境的支撑.MPI(message passing interface)[4]是目前比较著名的并行计算环境,是基于消息传递编写并行程序的一种用户界面.MPI是免费的,而且开放源代码,同时它还具有较好的程序可移植性和较高的通信性能等特点.MPICH是目前使用最广泛的免费MPI实现.

2 Linux集群的基本网络服务

集群中各个节点机之间的互相访问需要网络环境和相关协议的支持.NFS、NIS、RSH是集群系统实现高效工作所需要的最基本的网络服务.

2.1 网络文件系统(NFS)

NFS(Network File System)[5]是主机间通过网络进行文件共享的网络协议,用于多台主机共享同一主机上的文件资源.其目的是使用户和程序可以象访问本地文件一样访问远端系统上的文件.NFS本质上是一个文件服务器,客户端通过网络将远端的NFS SERVER共享出来的文件挂接到自己的系统中,使用NFS的远端文件就如同使用本地文件一样.微机集群一般通过NFS来实现文件共享.

2.2 网络信息服务(NIS)

NIS(Network Information Service)[6]是实现网络中各机器之间重要数据分享的服务.NIS在本质上是简单的客户机/服务器数据库系统.NIS允许设立一个存放这些文件的主服务器,并把网络上的每台计算机配置为服务器的客户,每当客户需要从NIS的口令文件中获取某一项内容时,可通过访问NIS服务器来实现.

2.3 远程SHELL命令(RSH)

RSH(RemoteShell)是远程通信协议,通常在集群系统中用于MPICH的通信.在集群系统中,每个节点都要分担一定的计算任务,而这些任务是由主节点机分配的.主节点通过RSH命令将要执行的命令发送给从节点机,从节点机通过RSH来完成任务的接受并根据实际情况判断是否执行命令.

3 集群系统构建

3.1 实验环境

系统基本配置:1台交换机和10台相同配置PC机构成的同构集群.节点机的配置为:2.4 GHz CPU,512 MB内存,80 GB硬盘.操作系统: Redhat Linux9.0.

拓扑结构:PC机之间通过百兆以太网交换机相连构成星型拓扑结构,拓扑结构如图1所示.

图1 PC集群拓扑结构Fig.1 Topological structure of PC cluster

3.2 系统配置

系统配置主要包括网络环境配置和MPI并行环境配置2个方面.

3.2.1 网络环境配置

主节点机的主机名为 node0,IP设为192.168.0.0.从节点机的主机名分别为node1~node9.IP分别设为192.168.0.1,192.168.0.2,…,192.168.0.9.主节点安装的软件包有 nfsutils包,portmap服务包;ypserv、yp-tools包;rsh和rsh-server包;xinetd.其中nfs-utils提供NFS服务器功能;portmap是管理远程过程调用协议RPC(Remote Procedure Call Protocol)连接、启动RPC必需的软件包;ypserv是服务的主程序包,yp-tools是提供NIS客户端设定功能的软件包; rsh-server包括一组程序,它允许用户在远程机器上运行命令、登录到其他机器以及机器间复制文件;xinetd是互联网服务守护进程,为所有服务提供访问控制.从节点安装的软件包有ypbind、rsh-server、xinetd.其中ypbind为NIS客户端服务程序.在操作系统和所需要的软件包安装结束后,关闭防火墙.为集群系统中的各台机器配置相同的/etc/hosts文件来进行IP地址和计算机名之间的转换,内容如下:

127.0.0.1 localhost.localdomain localhost

192.16 8.0.0 node0 node0

192.16 8.0.1 node1 node1

……

192.16 8.0.9 node9 node9

3.2.1.1 NFS的配置

Node0为NFS服务器,将它的/home和/usr/ local目录输出给其余节点.

(1)启动 portmap服务,命令如下:/etc/ rc.d/init.d/portmap start

(2)在Node0开启NFS服务:/sbin/chkcon-fig nfs on

/sbin/chkconfig nfslock on

/etc/init.d/nfslock restart

/etc/init.d/nfs restart

(3)在Node0的文件/etc/exports中编辑命令如下:/home*(rw,sync)

/usr/local*(rw,sync)

(4)在Node0上查看输出的指定目录:exportfs-a

(5)分别以root身份登录到其余节点机,为分配出去的共享目录/home和/usr/local创建文件/etc/fstab,编辑如下:

Node0:/home/home nfs default 0 0

Node0:/usr/local/usr/local nfs default 0 0

(6)运行命令使得系统启动时自动挂接Node0上的/home目录.

3.2.1.2 NIS配置过程

Node0为NIS服务器,以root身份登录到Node0:

(1)启动 portmap服务,命令如下:/etc/ rc.d/init.d/portmap start

(2)在文件/etc/sysconfig/network编辑命令:NISDOMAIN=CLUSTER

(3)开启NIS服务:/sbin/chkconfig ypserv on

/etc/init.d/ypserv start

(4)初始化NIS数据库:/usr/lib/yp/ypinit-m

(5)登录到其余节点机,确认安装了ypserv,yp-tools包,在文件/etc/sysconfig/network中编辑命令:NISDOMAIN=CLUSTER.执行下述命令,开启NIS客户程序:

/sbin/chkconfig ypbind on

/etc/init.d/ypbind start

(6)修改/etc/nsswitch.conf文件,使用NIS用户登录.编辑如下:

passwd:files nis

shadow:files nis

group:files nis

hosts:files nis dns

3.2.1.3 rsh的配置过程

除安装rsh客户和服务程序以及开启rsh服务之外,还需要允许用户直接通过rsh在本机上启动程序,即建立rsh信任关系.

(1)开启rsh服务:/sbin/chkconfig rsh on

(2)编辑/etc/hosts.equiv文件.内容如下: Node0+

(3)在要使用rsh的每个用户的主目录下建立.rhosts文件,该文件控制机器上的用户用rsh访问本机.如在root的目录下,新建普通用户gf;并配置gf.rhosts:编辑/home/gf/.rhosts文件,内容如下:Node0

(4)启动rsh和rlogin服务:chkconfig rsh on

(5)重启xinetd进程:/etc/rc.d/init.d/xinetd restart

3.2.2 mpich的安装和配置

mpich的编译和安装只要在主节点进行1次即可.

(1)下载并安装mpich2-1.0.6.tar.gz

(2)配置,编译安装 mpich:cd mpich2-1.0.6

/configure-prefix=/usr/local/mpi

make

make install

(3)在每个节点创建配置文件mpich.sh和mpich.csh,将目录/usr/local/mpi/bin加入到环境变量PATH.它们分别适用于用户的登录Shell是Bash和C-Shell的情况.

(4)运行 mpich程序:创建文件 machinefile,列出节点机名称.用mpirun在指定的节点运行程序.

4 系统性能测试

在已构建的PC集群对求π值进行并行实现,通过对串行算法和并行算法执行效果的比较,验证该PC集群系统的可行性.求解思想是在微小间隔内用求和运算近似积分运算.设n值为将[0,1]区间所分的间隔数,主机将n值发送到各个从节点机,每一个进程各自计算出一部分的矩形面积之后完成求和.算法本身具有较好的并行性,消息的传递只涉及n以及各个从节点机计算得到的部分和,通信开销比较小,适合通过编制并行程序来实现.

4.1 性能测试指标

加速比和并行效率是最传统的并行算法评价标准[7].对求解具有相同规模的同一应用问题,并行计算加速比可定义为在单个处理器上求解问题的串行程序所花时间与P个相同处理器并行求解同一问题所花时间之比.假设某一个问题,在某个处理器上执行所需的时间记为TS,在有P个节点的集群上的执行时间为TP,则加速比SP=TS/TP.并行效率是衡量并行系统性能的另一个技术指标.P个节点的并行效率为:EP= SP/P.对P个处理器的集群而言,假设并行开销为零,则理想加速比最大值为P,理想的并行效率为100%.

4.2 测试结果与分析

测试结果如表1所示.从测试结果可以看出,对于同一规模的问题,随着参与运算节点数目的增加,计算时间减少,但节点达到一定数目后,对计算时间的影响越来越不明显.

表1 加速比和效率Table 1 Speed-up and efficiency

由图2可知:随着参与运算节点数目的增加,加速比提高;在节点数目超过8时,加速比的提高速度明显变慢.原因是在节点数目较小时,通信时间相对于计算时间的比例较少,可以忽略不计;但是当节点数目达到一定数值时,通信开销急剧增加,导致加速比的增速减缓.随着参与运算节点数目的增加,计算效率降低.但本系统的加速比和理想加速比十分接近,同时系统的效率随参与运算节点数增加的下降也比较缓慢.因此,本系统具有一定的并行性能,具有一定的应用价值.在实际应用系统进行并行计算过程中,要结合具体应用问题本身的特点,合理地利用系统资源、设计高效的并行算法、尽量做到负载平衡以获得最佳的加速比和效率.

图2 不同节点数目的加速比Fig.2 Speed-up with different node number

5 结论

PC集群具有较高的应用价值,利用局域网和现有的硬件资源可构建中小型性能优良、高性价比的并行计算环境.通过本文的研究工作,希望能够给需要进行高性能并行计算的用户提供一个廉价、高效、可靠的开发平台.

[1] Culler D E.Parallel Computer Architecture-A Hardware/Software Approach(Second edition)[M].北京:机械工业出版社,1999:20-33.

[2] 黎康保,黎文楼.用PC机群组构并行超级计算机[J].计算机工程,2000,26(9):1-3.

[3] Dongarra J.并行计算综论[M].莫则尧,译.北京:电子工业出版社,2005:2-9.

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

[5] 金洁珩,王娟.Red Hat Linux 9系统管理[M].北京:机械工业出版社,2004:255-260.

[6] 黄丽娜,管佩森,陈彩可.Red Hat Linux 9.0基础教程[M].北京:清华大学出版社,2004:336-337.

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

猜你喜欢
PC机命令集群
只听主人的命令
海上小型无人机集群的反制装备需求与应对之策研究
一种无人机集群发射回收装置的控制系统设计
移防命令下达后
基于三菱FXPLC的感应淬火机床与PC机的串行通信实现
Python与Spark集群在收费数据分析中的应用
VC.NET下实现dsPIC单片机与PC机的通信
勤快又呆萌的集群机器人
排除OLT设备登录故障
这是人民的命令