APP下载

基于Linux的高性能计算集群MPI并行环境配置研究

2017-04-13金能智者建武李唐艳孙一桐

科技创新导报 2017年3期
关键词:集群

金能智++者建武++李唐艳++孙一桐

摘 要:高性能计算集群是当前较为先进的计算体系,是融合了计算、存储、网络和软件的综合体系,高性能计算的快速发展已为其他科学技术的发展提供了越来越广的支撑,而MPI并行环境是高性能计算集群的要素。该文以MPICH3.2为例,从集群无密码访问、MPICH3.2编译安装、配置环境变量、并行环境测试等方面详细阐述了并行环境的配置过程。

关键词:Linux 高性能计算 集群 MPI 并行环境

中图分类号:TP393 文献标识码:A 文章编号:1674-098X(2017)01(c)-0116-02

理论推导和科学实验长期以来一直是人们研究和探索自然的两大方法,但随着高性能计算技术和应用的迅猛发展,计算模拟已成为科学研究中不可缺少的第三种方法[1]。高性能计算已在基础科学研究、工业设计、装备制造等各个领域广泛应用,解决了一些重大科学和工程问题,对支撑科技创新、推动经济发展起到了重要作用[2]。

高性能计算(High performance computing,HPC)作为计算科学的必备基础设施,已经成为国家之间的战略必争点和创新转型的利器,各国都投入巨资争夺世界制高点。中国的高性能计算系统研制水平和能力经过10多年的快速发展,已经跻身世界先进水平的行列。2010年11月,国际TOP500组织在网站上公布了最新全球超级计算机前500强排行榜,中国首台千万亿次超级计算机系统“天河一号”排名全球第一,是中国国产超级计算机首次夺得世界冠军[3]。2013年6月,“天河二号”以峰值速度、持续速度成为当时最快的超级计算机[4]。2016年6月20日,国际TOP500组织在法兰克福世界超算大会(ISC)上,“神威·太湖之光”超级计算机系统登顶榜单之首,成为世界上首台运算速度超过10亿亿次的超级计算机。而“中国芯”“申威26010”的问世,也成为中国自主研发打破30年技术封锁的一柄利器[5]。

并行环境是提高服务器计算速度和处理能力的一种有效手段,对于高性能计算是必不可少的。目前,大量并行程序采用的都是基于消息传递的并行编程方式。基于消息传递的并行编程环境中,最流行的是MPI(Message Process Interface)[6]。因此,MPI并行环境的配置研究是高性能计算的基础工作,具有重要意义。该文以MPICH3.2为例,详细介绍MPI并行环境的配置过程。

1 高性能计算概述

高性能计算是一个计算机集群系统,它通过各种互联技术将多个计算机系统连接在一起,利用所有被连接系统的综合计算能力来处理大型计算问题,所以又通常被称为高性能计算集群[7]。

高性能计算一直代表了计算机学科领域的尖端技术,在这一领域的创新和技术突破,往往可被用于更为广阔的商用市场,影响不同行业领域的应用,从而带动整个信息技术领域的发展。随着高性能计算步入千万亿次时代,必将会对现有的系统架构和应用产生深刻的影响。

2 MPI并行环境介绍

MPI[8]的全称是Message Passing Interface,即标准消息传递界面,是一种基于消息传递的并行编程接口,而不是一门具体的语言。目前已发展成为消息传递模型的代表和事实上的工业标准。1997年7月在原来MPI-1的基础上推出了MPI的扩充部分MPI-2,MPI-2主要扩充了3个方面:并行I/O、远程存储访问和动态进程管理。2012年9月,在MPI-2基础上推出了MPI-3。

MPI吸取了众多消息传递系统的优点,具有可移植性和易用性,有完备的异步通信功能,有正式和详细的精确定义。

3 MPI并行环境配置

MPI有多种实现版本,如,MPICH、CHIMP以及OPENMPI。其中MPICH是一种最重要的MPI实现版本。它的开发和MPI规范的制定是同步的,因此最能反映MPI的变化和发展,是MPI最成熟和最广泛使用的版本。编程人员可以使用MPICH来使用这些MPI接口,以便写出适合自己的基于消息传递的并行程序。编程人员使用C或者是Fortran语言来调用这些标准库,实现程序的并行性,它可以从网上免费获得。该文就以MPICH3.2在甘肃省计算中心高性能集群为例研究MPI并行环境的配置。

3.1 集群无密码访问配置

该集群操作系统为SUSE Linux Enterprise Server10.0,首先安装rsh-server软件包,然后配置/etc/hosts、/etc/hosts.equiv及/root/.rhosts文件,添加需要无密码访问的节点。

/etc/hosts文件将IP与host名对应,例如可添加如下行:

10.10.10.1 node1

10.10.10.2 node2

......

/etc/hosts.equiv和/root/.rhosts文件将host名添加进去,例如下行:

node1

node2

......

node*在实际情况中要替换成服务器的主机名,可通过hostname获得主机名。

所有节点都要操作:

编辑/etc/xinetd.d/rsh和/etc/xinetd.d/rlogin文件,将disable=yes更改为disable=no,并將rexec、rlogin、rsh加入到/etc/securetty里面,然后重启xinetd进程。

到此,可以通过ssh命令访问不同的服务器,如果不需要密码则说明服务器之间可以无密码访问:rsh node1。

3.2 MPICH3.2的安装

3.2.1 下载安装包并解压缩

从网站http://www.mpich.org/downloads/下载mpich-3.2.tar.gz安装包,然后tar zxvf mpich-3.2.tar.gz解压缩到磁盘阵列。

3.2.2 配置configure文件

进入解压后的目录,配置configure文件。

./configure --prefix=/public1/home/user/jinnzh/mpich3.2

--prefix为软件所安装的目录,该集群配置了磁盘阵列,测试用户home目录在磁盘阵列,因此--prefix配置到磁盘阵列。

3.2.3 编译安装程序

编译 make

安装 make install

3.3 配置环境变量

修改path,为path添加mpi的bin目录:

vim .bashrc

在.bashrc文件的末尾添加:export PATH=/public1/home/user/jinnzh/mpich3.2/bin:$PATH

source .bashrc

echo $PATH,查看PATH变量是否发生变化;

ls/usr/local/mpich/bin,查看bin下的可执行程序;

which mpiexec,查看命令是否安装目录下的命令。

3.4 修改做并行计算的主机名

修改/public1/home/user/jinnzh/mpich3.2/share/machines.LINUX文件,加入集群中可以用来做并行计算的主机名,例如:

node1:16

node2:16

node3:16

......

注:冒号后为节点的CPU数或者内核数。

3.5 运行测试程序

在服务器节点上,以mpich自带的计算PI值的并行计算程序cpi对所搭建的集群环境做简单的测试。

步骤:

在/public1/home/user/jinnzh/mpich3.2/example目录下。

(1)编译#make cpi。

(2)启动并行计算#mpirun–np N cpi(其中N为节点机的个数)。

可以看到PI值及误差和计算时间,说明环境搭建基本成功。

4 結语

随着高性能计算的迅猛发展,越来越多的科学计算和工程应用依赖于高性能科学计算,采用并行计算和计算机网络技术构建高性能科学计算集群,能够有效提高计算速度并降低运算成本。这就需要构建统一的并行计算环境,该文以甘肃省计算中心高性能计算集群为试验集群,详细介绍了mpich3.2的安装过程,对高性能计算集群的构建、维护、软件编译具有重要的指导意义。实际工作中,由于MPI的标准和MPI实现的多样性,特别是不同的商业封装的存在,在MPI环境的安装和配置过程中有所不同,要详细地阅读相关的帮助文件,以便正确地配置MPI运行环境。

参考文献

[1] 陈志明.科学计算:科技创新的第三种方法[J].中国科学院院刊,2012,27(2):161-166.

[2] 臧大伟,曹政,孙凝晖.高性能计算的发展[J].科技导报,2016,34(14):22-28.

[3] 朱小谦,孟祥飞,菅晓东,等.“天河一号”大规模并行应用程序测试[C]//全国高性能计算学术年会.2011.

[4] 王涛.“天河二号”超级计算机[J].科学,2013(4):52.

[5] 王涛.“神威太湖之光”超级计算机[J].科学,2016(4):5.

[6] 迟学斌,赵毅.高性能计算技术及其应用[J].中国科学院院刊,2007,22(4):306-313.

[7] 孙健超.基于Linux的集群系统的应用研究[D].辽宁工程技术大学,2009.

[8] Clarke L,Glendinning I,Hempel R.The MPI Message Passing Interface Standard: Programming Environments for Massively Parallel Distributed Systems[S].Birkh?user Basel,1994:179.

猜你喜欢

集群
海上小型无人机集群的反制装备需求与应对之策研究
一种无人机集群发射回收装置的控制系统设计
Python与Spark集群在收费数据分析中的应用
对构建智慧产业集群的几点思考
中华医学会医学期刊集群化发展的模式分析