引言

高性能计算与科学研究的发展密不可分,科学研究永无止境的计算需求和高性能计算能力既相互制约又相互促进。在我国地震研究领域中,高性能计算也有广泛应用,并取得了比较好的效果。如在地震预报(赵毅等,2007郭婷婷等,2011)、抗震救灾(吕弋培等,2009)、地震勘探(张军华等,2010龙桂华等,2011)、地震工程(王洪涛等,2009马新生等,2010陆新征等, 2014, 2015占昌宝等,2016)以及地震动力学研究(廖凯宁等,2015)等方面,高性能计算均提供了重要的技术支撑。

中国地震局地震预测研究所结合自身科研需要,于2009年建成了1套高性能集群计算系统(李闽峰等,2009李圣强等,2012),其理论最高运算能力可达17.38TFLOPS,实测最大运算能力达到14.1TFLOPS。该系统于2009年10月正式投入使用,2012年成为中国地震局地震预测重点实验室的高性能计算平台,并持续运行至今。作为动力地震预测方法研究的重要技术支撑平台之一,该系统以震源环境、地震过程和震源破裂机理等地震科学基础研究为理论依据,在技术上已可以为地震行业用户提供计算服务。

高性能计算平台属于高投入、高消耗的综合性软硬件系统,运行成本较高,电费成本是其主要组成,研制高性能计算平台计费系统是平台建设和管理的重要内容之一(林皎等,2012)。此外,统计高性能计算平台的使用效率、考评用户的绩效量化指标数据等都需要获取较为详细的系统使用资源。尽管作业管理软件本身包含作业统计模块功能,但因其统计资源不尽合理,不能真实反映系统使用情况,无法满足作业计费需求。因此,考虑到地震预测重点实验室高性能计算平台的良好应用前景和用户计量统计需求,同时也方便平台应用评价参考,开发1套简单、实用的高性能计算平台计费服务系统尤为必要。

1 高性能计算平台概况

中国地震局地震预测重点实验室的高性能计算平台硬件主要由192个计算节点、9个I/O节点、1个登录节点、1个管理节点、4组盘阵、1组计算与I/O网络和1组管理网络组成。该平台不仅提供了Linux操作系统自带的GNU C/C++、GNU Fortran免费编译器,还配置了丰富的商业编译器和数学库资源,如NAG Fortran、Intel C++,Fortran 77/90、Intel MPI、Platform MPI、Intel MKL等,同时配置了TotalView并行调试器协助用户更好地调试并行程序;此外,还配置了GMT、MATLAB及与地震应用密切相关的专业模块。经过几年的稳定运行,该平台集成了丰富的专业应用程序,主要包括三维谱有限单元法软件SPECFEM3D,并行有限元程序生成系统pFEPG,全波三维Fréchet核反演程序,GPS专业解算软件GAMIT/GLOBK、QOCA,分子动力学模拟软件VASP、PWSCF、Materials Studio等。

经统计,地震预测重点实验室高性能计算平台运行作业数量超过38万个,消耗CPU资源超过1700万CPU机时,表明系统的应用现状良好。此外,通过对历史作业消耗资源的分析发现,计算应用从高性能并行应用为主转向大量可分解的串行应用为主的普惠计算。目前,该平台的主要应用如下:

(1)川滇地区和高分示范区三维模型构建与计算以及区域走滑断层模型构建与计算。

(2)解析GPS原始观测数据,进行地壳形变分析,并进行地震断层破裂模型的反演;重力数据处理及地下构造反演;利用弹性和粘弹性球体位错理论计算大地震导致的同震和震后变形。

(3)利用高性能计算平台融合地震波形数据系统进行地震波形处理、围陷波的正反演、强震动模拟以及触发地震和微震的模板扫描检查等。

(4)利用从微观到宏观(量子力学、第一性原理、分子动力学、耗散粒子动力学和有限元方法)的跨尺度模拟方法,研究地球内部高温高压条件下高压矿物(长石、方镁铁矿)、含水矿物(橄榄石、蛇纹石、角闪石、云母等)的物理化学性质;探讨孕震介质的演化及其动力学环境,探索地震预测理论方法。

2 计费服务系统设计
2.1 问题分析

目前主流的高性能计算平台计费系统包括基于PBS或TORQUE作业管理软件设计的计费或记账系统(王伟等,2008陈振娅等,2009李惠欢等,2016)和基于LSF作业管理软件设计的计费配额系统计时统计系统(牛铁等,2010盛乐标等,2014)。此外,还有基于校园网格计费研究(刘明良,2008)和基于神威4000A系统及IBM系统设计的统一资源管理系统(沈瑜等,2014)。

地震预测重点实验室高性能计算平台因集群管理软件升级改造,运行期分为2个阶段,增加了研制开发计费服务系统的难度。第1阶段从2009年6月至2012年10月,该平台的集群管理软件为CHESS2,作业管理系统为TORQUE/MAUI。此阶段存在2个问题,一是部分成熟的商业应用软件和免费应用软件对GCC、INTEL、HP等MPI并行程序的编译运行环境要求较高,TORQUE作业管理系统无法记录完整准确的CPU时间信息,需要人工校正;二是虽然具备多个开源命令行作业日志信息分析工具,如PBSACCT、MYPBS、PERL-PBS-LOGS、PBSACCOUTING,但不具备友好的作业信息查询、统计、计费等功能。第2阶段从2012年11月完成升级改造至今,该平台的作业管理系统由TORQUE更换为LSF 8.3 Express Edition,但缺乏相应的用户交流平台和合理准确的作业信息查询、统计以及计费功能。

2.2 设计思路

以作业管理系统日志为数据基础,实现作业信息的提取、分析和校正,建立完整准确的作业信息库,存入MYSQL数据库,通过B/S架构满足用户准实时作业查询和历史作业查询、统计、计费功能以及作业预约服务,并融合Ganglia集群监控功能、留言板功能和信息发布功能,整合成1套高性能计算平台计费服务系统。

2.3 关键技术

实现计费服务系统需要重点解决2方面技术问题,即采取何种方式计费和作业日志信息如何提取。

2.3.1 计费方式

在高性能计算平台作业计费服务系统中,作业计费核心要解决的是如何计费(何戈等,2003)。准确的作业计费信息不仅可以为高性能计算用户提供可靠的计算量数据,也可为制定计算服务价格提供参考。

高性能计算平台提供给用户CPU时、内存、虚拟内存、硬盘空间、网络带宽等资源。与作业CPU time(CPU执行程序指令累计所用的脉冲时间)相比,Wall time(墙上时间,即作业开始执行和作业结束的时间差)更符合作业对计算资源的实际占用,因此,用户使用集群完成计算任务后,采用Wall time为基础计算CPU消耗量(盛乐标等,2014),考虑到作业有串行和并行情况,可表示为:

$ 作业{\rm{CPU}}消耗量 = {\rm{Wall}}\;{\rm{time}} \times 作业调用{\rm{CPU}}核数 $ (1)

而内存和虚拟内存资源的使用是动态的,因此采用了作业日志信息中的最大物理内存和虚拟内存作为计算参考。另外,网络带宽属于集群系统环境和性能指标,不单独在作业计费中体现;硬盘空间通常是分配给用户的固定存储空间,不属于单独作业,该部分可以通过按年或按月的方式收取存储空间费。

考虑到CPU、内存、虚拟内存在作业计算中的需求重要性有所差别,因此为不同种类的资源赋予不同的权重因子以体现其计费的差异性。

综上所述,作业资源使用计费公式可表示为:

$ \begin{array}{l} 总费用 = {\rm{CPU}}消耗量 \times {\rm{CPU}}价格 \times 权重 + 物理内存 \times 内存价格 \times 权重 + \\ \;\;\;\;虚拟内存 \times 虚拟内存价格 \times 权重 \end{array} $ (2)
2.3.2 作业日志信息提取

(1)TORQUE历史作业信息提取

PBS是目前历史最久、支持最广、功能较为丰富的集群作业管理软件包之一,其包括3个主要分支:OpenPBS、PBS Pro和TORQUE。TORQUE是Adaptive Computing公司基于OpenPBS后续支持的开源版本,通过和Maui调度器相结合,成为当前分布式集群最流行的资源调度和作业管理开源系统。TORQUE作业日志信息一般存放在/var/torque/server_ priv/accounting目录下,每天的日志信息存放在以日期命名(文件格式:YYYYMMDD)的文件中,日志记录8种不同的标记事件,包括作业开始(S)、作业设置检查点(C)、作业放弃(A)、作业排队(Q)、作业返回(R)、作业删除(D)、作业检查点重启(T)和作业退出(E)(李惠欢等,2016)。采用Linux shell和Perl脚本程序分别完成历史作业信息收集、作业信息入库和数据的汇总。

通过Perl语言编写脚本程序提取数据到数据库computing表torque_job。作业数据表包含用户名(user)、作业名称(jobname)、作业提交节点(jobsubmithost)、作业编号(jobid)、作业核数(cores)、作业队列(queue)、作业创建时间(jobcreatetime)、作业进入排队时间(jobqueuetime)、作业可执行时间(jobexcutabletime)、作业开始时间(jobstarttime)、作业结束时间(jobendtime)、作业退出状态(exitstatus,0为正常退出,其它为异常退出)、作业CPU时间(cputime)、作业消耗物理内存(mem)、作业消耗虚拟内存(vmem)、作业运行时间(walltime)、校正系数(correctfactor)、作业CPU校正时间(correctcputime)、作业CPU时间转化为秒(cputimesec)、作业运行时间转化为秒(walltimesec)、作业完成记录时间(eventtime)。

(2)LSF作业信息提取

LSF是加拿大Platform公司研制的分布式管理和调度集群管理软件,在系统容错、负载平衡、进程迁移、检查点操作上具备更好的实用性,已成为集群管理软件领域中的国际工业标准。

LSF日志信息通常存放在以“lsb.acct”或“lsb.acct.X”格式命名的文件(其中X是阿拉伯数字)中,文件的每行存储1个作业日志,包含作业ID、作业完成时间、提交时间、调度时间、开始时间、结束时间、使用CPU核数、作业属主、执行节点列表、队列名、执行文件名等50多个字段,这些文件保存在LSF系统的管理节点logdir目录下。

目前,主要有2种方式获取LSF作业信息:①使用脚本语言处理,如基于Python的Python LSF collection开源软件包,通过引用该包提供的类编写相应的脚本提取作业信息,这种方法比较简单;②基于LSF API和LSB API的底层接口,通过C语言提取结构化数据方式获取作业的详细信息(盛乐标等,2014)。本文采用第1种方式,通过Python脚本acctfile.py实现历史作业信息的提取和入库功能,利用Crontab定时器结合Shell脚本定时更新(每5分钟)MYSQL数据库lsf_job表中的历史作业信息,以供查询。

此外,为了方便用户查询运行作业(running)、即将运行作业(pending)、挂起作业(suspended)、队列(queue)和主机(host)信息,本文采用shell脚本提取bjobs、bqueues、bhosts命令输出信息和存储入库,并利用Crontab定时更新(每5分钟),实现准实时的作业信息查询和队列、节点信息查询。

3 系统实现
3.1 开发环境

系统采用开源的免费框架结构(Linux、Apache、PHP和MySQL),具备功能强大、运行稳定、技术成熟等特点。WEB开发语言PHP具有以下优势:

(1)安全性好。PHP是开源软件,可以看到所有PHP的源代码,同时PHP具有公认的安全性能,它与Apache编译相结合的方式也可以使其具有灵活的安全设定。

(2)移植性强。PHP几乎支持所有的操作系统平台及数据库系统,并广为流行。

(3)执行效率高。PHP是1种强大的CGI脚本语言,语法混合了C、Java、Perl和PHP式的新语法,执行网页速度比CGI、Perl和ASP更快,且内嵌Zend加速引擎,性能稳定,占用系统资源少,代码执行速度快。

(4)扩展性好。PHP具有很好的开放性和扩展性,其源代码完全公开,便于扩展附加功能。

3.2 系统功能

系统具备如下功能:①用户可查询、统计、计算已消耗资源的费用和正在运行的作业情况、队列情况、节点情况、集群概览;②用户可提交作业预约申请,管理员审核通过后线下处理预约作业;③用户通过留言和在线服务功能,较好地实现交流;④用户可以通过平台资源下载文档资料和查询相关平台制度,促进了信息化和制度规范化;⑤采用分级用户管理模式,根据用户权限的不同进行不同的功能操作;⑥可根据实际需要进行调整和扩展。

系统前台和后台功能模块如图 12所示,后台计费功能管理如图 3所示。


图 1 前台功能模块 Fig. 1 Front function models

图 2 后台功能模块 Fig. 2 Back function models

图 3 后台计费功能管理界面 Fig. 3 Back accounting function models
3.3 计费统计

综合考虑作业实际消耗资源和运维电费,并依据前文提出的计算公式,本研究提出了一种可操作的资源价格计算方法及相应的权重赋值,见表 1。此外,选取了5个实际用户2009—2017年的年度历史作业进行计费统计,如图 4所示。


图 4 用户年度计费统计 Fig. 4 Annual accounting statistics of users
表 1 计算资源价格及权重赋值 Table 1 The price and weight value of computing resoureces
4 结语

基于中国地震局地震预测重点实验室高性能计算平台良好的应用前景和计费需求,本文在高性能计算平台作业计费系统的基础上,提出了利用作业管理系统TORQUE和LSF日志文件提取作业信息的方法,建立了可满足复杂高性能计算平台下作业计费需求的简单、实用系统。该系统不仅可以准实时查询和显示作业完成信息,还可以对消耗资源记录信息进行自动校正并完成作业的正确计费,与简单的命令行工具以及商业软件相比,具有更广泛的兼容性和普适性;另外,该系统还实现了对未完成作业、队列、节点等集群系统查询显示功能、集群计费参数配置管理功能以及栏目信息发布、在线交流等功能,这有利于促进高性能计算平台向管理公开透明化和信息化方向发展,同时可充分发挥高性能计算平台的科研辅助作用,并提高用户使用高性能计算平台的效率和便捷性。

随着高性能计算技术的快速发展,云计算技术也日臻成熟,利用云计算技术实现地震行业的高性能计算资源整合并服务于地震研究领域将是大势所趋。基于高性能计算平台作业日志的计费服务系统只要稍加修改和完善,即可移植到云计算平台应用,具有较好的可扩展性和应用前景。

参考文献
陈振娅, 杨英, 陈丽娟, 等, 2009. 基于OpenPBS的高性能计算平台计费系统[J]. 山东科学, 22(5): 98-102.
郭婷婷, 徐锡伟, 2011. 有限元法在构造应力场与地震预测研究中的应用与发展[J]. 地震研究, 34(2): 246-253. DOI:10.3969/j.issn.1000-0666.2011.02.023
何戈, 董小社, 钱德沛, 2003. 网络计算环境下一种计费方法的研究与实现[J]. 计算机工程与应用, 39(17): 185-187. DOI:10.3321/j.issn:1002-8331.2003.17.060
李惠欢, 杨敏, 吴汝明, 2016. 基于TORQUE的高性能计算平台记账系统[J]. 计算机应用与软件, 33(8): 126-130, 205. DOI:10.3969/j.issn.1000-386x.2016.08.028
李闽峰, 李圣强, 王斌等, 2009.地震预测研究所高性能集群计算系统.见: 中国地球物理2009.合肥: 中国地球物理学会.
李圣强, 李闽峰, 刘桂平, 等, 2012. 高性能集群计算系统的构建[J]. 地震, 32(1): 144-149. DOI:10.3969/j.issn.1000-3274.2012.01.014
廖凯宁, 郝永伟, 2015. 地震数据处理和地震动力学仿真平台的优化研究[J]. 计算机工程与科学, 37(4): 663-669. DOI:10.3969/j.issn.1007-130X.2015.04.007
林皎, 张武生, 徐伟平, 等, 2012. 高性能计算平台预付费管理系统的研制与应用[J]. 实验技术与管理, 29(12): 104-105, 128. DOI:10.3969/j.issn.1002-4956.2012.12.030
刘明良, 2008. 基于校园网格系统计费方案研究[J]. 计算机系统应用, (3):60-63, (3): 60-63, 91.
龙桂华, 赵宇波, 李小凡, 等, 2011. 三维交错网格有限差分地震波模拟的GPU集群实现[J]. 地球物理学进展, 26(6): 1938-1949. DOI:10.3969/j.issn.1004-2903.2011.06.007
陆新征, 卢啸, 许镇等, 2014.基于高性能计算的工程抗震与防灾: 从单体到城市.见: 徐正安, 任伟新, 丁克伟主编, 第六届结构工程新进展国际论坛文集.北京: 中国建筑工业出版社.
陆新征, 陈磊, 曾翔, 等, 2015. 基于云计算的工程结构地震响应数值模拟[J]. 沈阳建筑大学学报(自然科学版), 31(5): 769-777.
吕弋培, 徐锐, 田文洪, 等, 2009. 基于中国国家高性能计算与网格系统的抗震减灾应用平台[J]. 中国科技纵横, (12): 472-476. DOI:10.3969/j.issn.1671-2064.2009.12.347
马新生, 谢志南, 王延伟, 等, 2010. 高性能集群系统在地震波数值模拟中的应用[J]. 地震工程与工程振动, 30(6): 43-48.
牛铁, 朱鹏, 赵毅, 等, 2010. 超级计算环境计算配额系统设计和实现[J]. 计算机应用, 30(S2): 8-9, 39.
沈瑜, 李娟, 常飚, 等, 2014. 高性能计算机统一资源管理系统的设计与实现[J]. 计算技术与自动化, 33(1): 83-90.
盛乐标, 周庆林, 2014. 利用LSF API实现高性能计算机集群的机时统计[J]. 实验科学与技术, 12(2): 50-52, 117. DOI:10.3969/j.issn.1672-4550.2014.02.017
王洪涛, 谢礼立, 2009. 考虑楼板作用的钢筋混凝土框架有限元模型及并行计算效率[J]. 地震工程与工程振动, 29(1): 63-69.
王伟, 杨利, 刘建锋, 2008. 一种高性能计算环境中的计费系统[J]. 计算机工程与科学, 30(1): 148-150. DOI:10.3969/j.issn.1007-130X.2008.01.042
占昌宝, 罗川, 丁振坤, 等, 2016. 高层建筑抗震性能预测仿真研究[J]. 计算机仿真, 33(8): 397-402. DOI:10.3969/j.issn.1006-9348.2016.08.086
张军华, 臧胜涛, 单联瑜, 等, 2010. 高性能计算的发展现状及趋势[J]. 石油地球物理勘探, 45(6): 918-925.
赵毅, 朱鹏, 迟学斌, 等, 2007. 浅析高性能计算应用的需求与发展[J]. 计算机研究与发展, 44(10): 1640-1646.