高性能计算机并行计算环境的构建及使用效能情况
2013-08-06谭浩良
谭浩良
(清远市广播电视台,广东清远511500)
1.引言
随着计算机计算能力的大幅提升,以及云计算等新技术的出现,高性能计算在航空和航天、仿真计算、海洋遥感、海量数据处理、气象、石油勘探、自动化制造系统等领域中得到了广泛的应用[1-6],并且逐渐成为科技、国防、产业、金融、服务、生活等方面不可缺少的辅助工具。但是由于目前架构HPC机的规模越来越大,矛盾越来越突出,如出现难用、低效、高成本等相伴HPC终身的重大问题[7],因此如何不断提高HPC运行效率成为目前就迫切需要解决的问题。而要解决HPC的高效问题,就必须对高性能计算机并行计算环境的构建过程有所了解。本文主要对并行计算环境的配置过程及相关应用情况进行介绍,从而可以为进一步提高HPC运行效率打下良好的基础条件。
2.节点间的通讯环境
并行计算环境的配置是高性能计算的最基础部分,是实现高效率并行程序运行中最关键的一步。一般来说,在进行并行计算之前,首先要求用户在节点间的互相访问能够做到畅通,并且能够通过使用密钥对的方法实现不必输入密码就可以进行节点间的通讯,这是要开始着手做的最基本的一步;下面是使用ssh-keygen生成密钥对的简单方法:
在命令行下,建立目录.ssh;
然后进入.ssh目录中并输入ssh-keygen-t rsa后回车,其中在要求输入密码时可以直接回车(即无密码);
cp id_rsa.pub authorized_keys;
退回到上一级目录,并输入命令chmod 700.ssh。
在做完上述步骤后,可以测试一下节点的ssh情况,如在主节点node0的命令行下输入:ssh node2,其中node2为子节点名,如果回车后显示已切换到子节点node2的工作目录下,则说明这一步已经顺利地配置成功了。
3.编译环境
接下来我们还需要安装常用的一些编译器,一般来说,科研上目前比较常用的是PGF编译器,下面简要说明安装过程:
(1)首先是对压缩包进行解压,常用命令一般为tar-zxvf*.tar.gz;
(2)进入到解压后的目录中,运行./install后,按照提示可以一步步进行选择,直到安装过程完成。
(3)把有效的license.dat(许可文件)拷到安装目录下;
(4)编辑修改用户目录下的.bashrc文件,添加下面主要的几行:
export PGI=/public/software/pgi10#装载刚才PGI安装成功的目录
export PATH=$PGI/linux86-64/10.0/bin:$PATH#装载运行命令
export PATH LD_LIBRARY_PATH=$PGI/linux86-64/10.0/lib:$LD_LIBRARY_PATH#指出库文件的目录
export LM_LICENSE_FILE=$PGI/license.dat#指出许可协议文件的目录
(5)重新装载新的环境,执行source.bashrc后可测试一下编译程序,命令为:pgf90 test.f90,如果成功则表示安装已完成。
4.并行程序的调用环境
这时我们就可以进行mpi的安装了,在解压缩包后,进入到安装目录中,执行以下命令:
(1)./configure--enable-debug-f90=pgf90--prefix=/opt/mpich2.1
(2)make
(3)make install
安装完后同样对.bashrc文件进行添加:export PATH=/opt/mpich2.1/bin:$PATH,在执行source.bashrc后就基本完成了并行环境的设置工作了。
5.并行程序的实际应用情况及使用效能
接下来就可以测试一下并行的效果了。以中国国家气象局下发的GRAPES模式为例,进入到并行模式后,分别对configure.si、configure.grapes进行配置,其中 configure.si指定了编译器类型为串行的pgf90和相关编译选项,如FC=pgf90,FCONVERT=-byteswapio等,而 configure.grapes指定了编译器类型为并行的pgf90和相关编译选项,如FC=mpif90,FCONVERT=-byteswapio等,这样编译完后的可执行程序si.exe为串行的程序,而grapes.exe则为并行的可执行程序。修改完这些配置文件后,再按下面步骤进行并行编译和计算的操作:
(1)在编译计算之前要先删除老文件:rm-rf grapes/external/RSL/RSL/librsl.a(注:如重新编译,需 ./clean)
(2)编译并行程序命令:./compile grapes
(3)初边界处理程序编译:在si/frame_F目录里rm*.o后再make;
(4)进入run目录,执行./si.exe形成初值grapesinput和grapesbdy;
(5)编辑p4file文件,内容为选用测试节点,如:
node1
node1
node1
…
node16
node16
node16
…
(6)执行命令 timempirun-machinefile./p4file-np 120./grapes.Exe
其中mpirun是并行命令,-machinefile是指定哪个节点的可选参数,120是所选的并行节点数目,-np是指定用多少个节点数量的可选参数。
此时会形成一个postvar000的初始分析场,之后会生成第一个名为postvar001的预报数据,说明模式的积分正常启动,以24小时的预报时间为例,如果在输出数据时间间隔为一小时的情况下,最后一个postvar024文件正常生成,则说明所有计算结果都已经顺利完成了,这时我们可以测试一下结果的正确性,见下图1所示,整个温度场在北京时间20时的2米温度分布基本上符合天气规律,因此这时并行计算出的模式预报结果完全正常,说明了并行计算的这些基本设置已经成功完成了。
图1 12km模式2013年03月24日12时起报的24小时 2米温度预报
接下来我们用grapes模式对高性能计算的效率进行了测试,发现在处理器为intel cpu的银河高性能计算机上,当使用1个到36个节点(每个节点有12个cpu核)时,其并行效率有很大的差异,结果如表1所示,其中grapes模式分辨率为18km,经向格点为195个,纬向格点为153个,垂直层为55层,时间步长取为100。从表1可见,效率最高为4个并行节点,仅为10分钟左右时间。5个节点开始,线性加速比大幅降低。因此在该高性能计算机上,使用同样计算量的grapes模式进行并行计算时,最佳节点数应该选择3-4个节点,即36-48个cpu核。
表1 高性能计算机不同节点数的并行计算效率情况
[1]潘沙,李桦,夏智勋.高性能并行计算在航空航天C F D数值模拟中的应用[J].计算机工程与科学,2012,34(8):191-198.
[2]黄訸,易晓东,李姗姗,等.面向高性能计算机的海量数据处理平台实现与评测 [J]. 计算机研究与发展,2012,49(Suppl.):357-361.
[3]李先涛,曾志,张丰,等.基于集群的海洋遥感图像融合并行计算策略[J].计算机应用与软件,2012,29(1):84-87.
[4]刘灿灿,张卫民,骆志刚,等.面向集合预报的高性能计算环境[J].计算机工程与科学,2012,34(2):87-92.
[5]李焕芝,冯震宇,何波.集群存储技术及其在石油勘探行业的应用[J].中国西部科技,2012,11(1):18-20.
[6]杨建伟.自动化制造系统中高性能计算模型的建立及应用[J].煤炭技术,2011,30(11):193-194.
[7]周兴铭.高性能计算技术发展[J].自然杂志,2011,33(5):249-254.