面向科研院校服务的高性能计算集群平台的设计与实现

2022-03-29 15:00涂金龙
河南科技 2022年3期

涂金龙

摘 要:本研究阐述了高性能计算集群平台的特点,然后介绍了平台的硬件和软件组成,并简要地阐述了平台的构建过程,最后通过一个测试案例探讨了利用平台进行作业调度的流程和方法,希望可以为企业高性能计算运维人员提供一些借鉴和参考。

关键词:高性能计算;集群部署;高校科学计算

中图分类号:TP38     文献标志码:A     文章编号:1003-5168(2022)3-0026-04

DOI:10.19968/j.cnki.hnkj.1003-5168.2022.03.006

Design and Implementation of High Performance Computing Cluster Platform for Scientific Research Institutions

TU Jinlong

(Network and Information Technology Center of Jiangxi University of Chinese Medicine,

Nanchang 330004,China)

Abstract:This paper describes the characteristics of high-performance computing cluster platform, then introduces the hardware and software composition of the platform, and briefly describes the construction process of the platform. Finally, through a test case, this paper discusses the process and method of job scheduling using the platform, hoping to provide some reference for enterprise high-performance computing operation and maintenance personnel.

Keywords:high performance computing; cluster deployment; scientific computing in colleges and universities

0 引言

高性能計算(High Performance Computing,HPC)也被称为数据分析的超级计算机,是一套计算性能强大、数据传输率超高、具有大规模存储空间和完整软件的系统,通常包含计算处理单元、并行存储单元、网络单元、管理调度软件单元,主要采用集群架构,通过网络将大量的服务器连接起来,让所有服务器协调工作来完成一系列计算任务[1]。超级计算机和传统的计算机不同,它具有超强的计算能力,能够解决很多在日常生活中难以处理的问题。当前,计算与理论方法、试验手段并列为人类认识世界的三大主要手段[2]。在大型工程中,试验和理论方法在解决尖端问题,如开展科学研究等,存在着一定程度的瓶颈。因此,使用高性能计算技术来解决此类问题,就成为发展的必然趋势。现代科技和经济的发展使高性能计算服务应用的门槛不断降低。美国、日本等发达国家在高性能计算技术发展的支持下,其工业、科学研究、新材料、新能源、服务行业等产业发展很快,高性能计算技术已经与社会生产发展实现了深度融合。

江西省在物理、化学、生物、新能源、新材料等领域对高性能计算的需求总量峰值达100万亿次以上。然而,江西省的高性能计算基础设施非常薄弱并且较分散,基本以科研单位购买自用为主。江西省内各高校对各类科学计算的超算资源需求都比较旺盛。但目前各类研究单位在高性能计算能力方面相对比较薄弱,资源供给无法满足应用发展的需求。因此,迫切需要构建一个集中公共的高性能计算服务平台,来应对各类科学计算服务。建设基于高性能计算集群的服务平台,可以大大缓解这样的不利局面。

1 高性能计算集群平台的设计

1.1 高性能计算集群的硬件配置

某高校高性能集群系统拓扑图如图1所示。该系统包含以下几部分。

1.1.1 管理节点。由一台管理节点组成,负责用户登录、管理调度整个集群、任务提交等,对整个系统进行监控管理,所配的型号为NF5270M4。

1.1.2 登录节点。包括一台登录节点服务器,为用户登录平台使用,是直接和用户交互的节点,便于用户作业的上传、程序代码的编写、作业的提交和任务结果的查看等,所配的型号为NF5270M4。

1.1.3 存储节点。配置了分布式存储系统和Lustre并行文件系统,负责存储大量的计算数据,高可用、高安全,所配置型号为SA5224H。

1.1.4 计算节点。由25台高性能刀片服务器组成,承载平台的计算任务请求,所配置的型号为NX5440M4;胖节点型号为NF8460M3;MIC加速节点、GPU加速节点型号为NF5588M3。

1.1.5 网络子系统。由管理网络和业务网络组成,管理网络负责集群管理使用,由以太网1 000 M连接管理交换机。业务网络由Infiniband网络连接计算节点和存储子系统,是业务数据通信的专用网络。

1.1.6 KVM切换器。KVM系统用于连接所有计算节点、存储节点和管理节点,方便运维人员系统调式和管理使用。

1.1.7 显示系统。配置2台电视显示屏和1台笔记本电脑,电视大屏作为集群平台监控和作业调度可视化,为TCL电视,挂壁安装。

1.2 高性能集群平台的软件组成

高性能集群平台的软件包括底层Linux操作系统、集群管理系统、集群作业调度系统、集群平行环境和集群开发环境[3]。

①集群平台运行环境管理节点和计算节点均安装Redhat as 6.5企业版64位操作系统。

②集群管理系统。实现集群集中管理和集中监控的功能,部署的软件为ClusterEnginer。

③集群作业调度系统。OpenPBS作业调度系统以支持命令行及web方式实现作业的提交、查看等。

④集群平行开发环境。安装Intel C++/Fortran编译器、Intel编译、调试软件等编译器,Intel MKL数学核心库等数学库,满足大部分科学计算需要。

2 高性能计算集群平台的部署

2.1 高性能计算集群平台基础环境的配置

高性能计算集群平台基础环境的配置主要包括RSH、NIS、NFS、SSH等4个服务的配置过程。

2.1.1 RSH服务。需要在集群全部的节点中配置RSH权限,配置步骤如下:首先,在其中的一个节点的配置HOSTS文件中,配置全部计算节点的IP地址及计算机名信息;其次,共享给其他节点通用;然后,需要对操作系统中的RHOSTS和HOSTS.EQUIV文件配置加入全部节点的计算机名信息;最后,完成RSH服务配置,可以重启RSH服务。

2.1.2 NIS服务。NIS服务是一项目录服务技术,用来对多个系统管理的数据库作集中控制的网络产品服务[4]。客户端用户不用自己建立自己的/etc/passwd,可利用NIS服务使用服务器端的管理文件,需要负责维护在NIS服务器的文件即可。服务端的NIS配置#echo 'nisdomainname TS10K' >>/etc/rc.d/rc.local。

2.1.3 NFS服务。NFS服务是网络文件共享服务。NFS的作用是借助于计算机网络,可以把自己的文件目录共享给他人使用,远程服务器端的文件,能夠被用户和程序随机地访问和使用[5]。在本集群管理节点中配置好共享。配置的步骤如下:

建立文件/etc/exports

vi/etc/exports/,在文件内添加上语句:

/home*(rw,insecure,no_root_squash,sync)

/opt*(rw,insecure,no_root_squash,sync)

启动nfs

#/sbin/chkconfig nfs on

#/sbin/service nfs restart

在客户端通过利用命令showmount-e IP查看服务器端开放共享出来的文件目录。

2.1.4 SSH服务。SSH服务能够提供一种较可靠、专为桌面远程登录使用、为其他网络服务等提供的一种安全性的协议[6]。集群节点之间一般都是通过脚本配置无密码访问,在脚本中配置HOSTFILE文件中加入需要SSH服务的节点的主机名称。

2.2 集群管理软件的部署

批处理是指通过命令对所有计算节点进行统一操作。本集群平台批处理采用的是开源软件Tentakel。Tentakl是集群常用软件,能十分方便地在管理节点中安装配置软件。# vi /etc/tentakel.conf 中添加需要管理的机器名和群组。使用普通用户登录集群,然后所有计算节点执行以下命令,如果正常输出,可说明节点状态正常。输入# tentakel -g allc 'date'来验证Tentakel是否正常部署。

2.3 集群平台平行开发环境的配置

①将intel编译器压缩包放到/root下。输入如下命令,安装编译程序。

# tar -xvf parallel_studio_xe_2015_update1.tgz # 。/install.sh

②配置环境变量。可以通过编写.sh脚本,配置全局环境变量,将脚本放在/etc/profile.d下。如果是单用户的变量,可以写入每个用户的$HOME/.bashrc下。

# vi /etc/profile.d/intel.sh source /opt/intel/composer_xe_2015.1.133/bin/compilervars.sh intel64so-urce /opt/intel/mkl/bin/intel64/mklvars_intel64.sh

2.4 集群平台作业调度软件的配置

作业调度软件是专为高性能集群平台而开发的一款作业调度软件,底层用openpbs和maui作业调度管理软件。作业管理提供负载均衡共享服务,有时被称作为负载管理。它主要用于用户的作业调度,能最优地调度和优化系统中的各类计算资源[7]。目的是有效地管理集群,合理地调度作业,充分利用集群的软硬件资源及宝贵的CPU时间,提高系统的吞吐率和利用率,如图2所示。

3 作业提交调度实践

利用作业调度系统,可以对集群平台中的硬件资源和软件资源进行集中统一的管理,也可以管理用户所提交的作业任务,并根据集群中资源使用的实际情况,合理调度作业执行,从而达到提高各类资源的利用率及用户作业的执行度的作用[8]。作业调度过程如图3所示。

下面以一个实际的案例,阐述作业提交的步骤和作业调度的流程。

3.1 添加新用户

在集群中添加新用户,首先在管理节点mu01上添加新用户,编辑/var/yp 目录,这样client端可以使用创建的用户登录系统。创建完用户后,在NIS基础上,节点间实现ssh无密码访问后,还需要针对环境变量进行相关设定。只需要在mu01节点上修改(/home/tujl1010目录是共享的),使用Tentakel工具在所有节点上执行source命令即可。在bashrc添加对应的环境变量,环境变量中可以指定Intel c、Intel fortran、MKL和MPI的安装路径。此处修改后就不需要在pbs脚本中指定。bashrc文件输入如下命令。

#vi  /home/tujl1010/.bashrc

source /opt/intel/composer_xe_2015.1.133/bin/compilervars.sh intel64

source /opt/intel/impi_5.0.2/bin64/mpivars.sh

source /opt/intel/mkl/bin/mklvars.sh intel64

以lammps应用为例,图4介绍PBS脚本文件的编写。

3.2 提交作业

使用普通用户,登录到mu01节点,使用#qsub sleep.pbs提交作业,每个作业提交后必有一个作业号码。

3.3 查看作業状态及结果

通过qstat -n命令查看作业的状态,计算完毕后查看输出结果,以sleep为例,这里的名字取决于在脚本中设定的作业名字,后面的数字15即作业号。运行后看到多出了文件sleep.e15 sleep.o15,其中e代表错误输出,o代表正确输出。同时也可以通过web监控界面观察作业调度情况,如图5所示。Job statistics 中Q为排队状态、R为正在执行状态、C为执行结束状态。

4 结语

高性能计算集群平台要求有直观的界面化操作,以虚拟化技术快速部署资源,实现动态的、可伸缩可扩展的服务,按需求提供资源,通过互联网提供服务等智能化的管理体系来提高科学计算的效率、节省计算成本。平台的建立将极大地推动超级计算机的普及应用和产业化,解决目前科研院校计算资源不足的问题,从而促进药物设计、新材料、新能源等领域的发展,有效地推进了江西省产业结构优化升级、发展方式转变。

参考文献:

[1] 黄建强,孟永伟,曹腾飞,等.青海大学三江源数据分析中心高性能计算集群的构建与设备管理[J].实验技术与管理,2014(12):237-240.

[2] 廖湘科,肖侬.新型高性能计算系统与技术[J].中国科学:信息科学,2016(9):1175-1210.

[3] 安喜锋.高性能计算集群管理系统与作业调度技术研究与实现[D].西安:西北工业大学,2005.

[4] 吴梦芸.一种基于1分布式数值计算模式软件的实现[D].成都:电子科技大学,2016.

[5] 刘建.基于CIFS的文件属性信息扫描方法研究[J].硅谷,2012(24):100-101.

[6] 郭默.分布式网络爬虫的研究与实现[D].西安:西北大学,2016.

[7] 叶庆华.基于服务的机群作业管理系统设计与实现[D].北京:中国科学院研究生院(计算技术研究所),2002.