海洋数值模式运行管理系统的设计与实现
2020-04-18韩琦琦曾云辉朱光慧
韩琦琦 刘 鑫 曾云辉 朱光慧
(齐鲁工业大学(山东省科学院) 山东 济南 250000) (山东省计算中心(国家超级计算济南中心) 山东 济南 250101) (山东省计算机网络重点实验室 山东 济南 250014)
0 引 言
海洋数值模式研究在21世纪非常重要,已经成为海洋研究领域的主要手段之一。随着海洋数值模式网格细化、分辨率提高,海洋模拟所需要的计算性能越来越高,一般说来,水平分辨率每提升1倍,模式的计算量要增大10倍以上,为模式的业务化运行带来了巨大的挑战。
随着高性能计算技术和超级计算机的发展,特别是近年来CPU/GPU、CPU/MIC等异构系统的异军突起,高性能计算机的峰值计算能力得到了快速提升,使E级计算成为可能。百亿亿次超级计算机又称“E级计算机”,被公认为“超级计算机界的下一顶皇冠”。2018年8月5日中国新一代超级计算机神威E级原型机在济南正式启用。神威E级计算机原型系统由国家并行计算机工程技术中心研制,落户于国家超级计算济南中心,系统架构源自神威太湖之光[1],采用了申威众核国产处理器申威26010+,具有4颗主核、256颗从核,处理器性能与神威太湖之光的申威26010处理器性能相同,其运行速度约3~4 PFlops,主要应用在海洋模拟、电磁计算、医养健康和高端装备等方面。
目前,海洋数值模式软件大约有数十种,大多数是基于分散的命令行方式进行离线管理,相同数值模式的多个版本部署在同一高性能计算机环境中,其依赖的基础编译器和第三方扩展库也有多种不同的版本,在管理上比较随意和混乱。用户在使用模式软件时,大多基于命令行或交互界面的方式提交到作业管理系统排队运行。用户在提交前需要自行选择模式软件、配置模式和设计算例,运行完成后再离线对结果进行诊断分析,这种方式既不方便用户使用,也容易引入意外的失误。为了规范海洋数值模式软件的管理和使用流程,简化用户的编译和使用过程,我们基于国产神威超级计算机研制了海洋模式运行管理系统,以提高国产超级计算机的易用性和海洋数值模式的运行管理效率。
1 系统设计
1.1 设计目标
海洋模式运行管理系统的设计目标是为了规范海洋数值模式软件的管理和使用流程,简化用户的编译和使用过程,能够保障海洋数值模式的连续性运行。海洋数值模式在国产神威超级计算环境上运行时,能够快速分析和定位模式软件的运行故障问题,实现模式作业自动重新提交、实时监测、在线分析、性能比对和结果比对,提供在线可视化功能,提高国产神威超级计算系统使用的友好程度,为模式软件系统的优化提供运行数据支撑。
1.2 体系结构
该系统采用主流的B/S模式,用户通过浏览器即可进入系统,采用JeeSite框架实现系统快速开发。后台采用MySQL数据库,对节点信息、作业信息、模式运行特征、各性能参数的阈值范围、故障信息、异常现象和故障处理方法等进行集中统一管理。文件系统用来存储模式软件、模式运行日志和初始/中间/结果数据等。该系统的节点、队列、作业信息等数据通过国产神威超级计算机的监控平台获得。系统体系结构图如图1所示。
图1 系统的体系结构图
1.3 功能模块
为了实现系统的设计目标,依据系统的先进性、稳定性、科学性以及安全性原则,该系统设计了系统监控、日志解析、智能分析、模式流程管理、软件与数据管理、性能比对和结果比对、辅助工具等七大模块,如图2所示。
图2 系统功能模块图
(1) 系统监控。系统监控包括资源状态监控和作业管理监控两个子模块。资源状态监控模式运行时的资源性能情况,包括计算节点(含主核和从核)状态及负载率、内存(含mpeMEM和speMEM)剩余大小、网络连接状态及速率、文件系统挂载状态、文件数量和文件占用空间大小等。作业管理监控作业运行情况,包括作业编号、作业状态、作业所在计算节点和队列的状态等。
(2) 日志解析。日志解析包括作业日志解析、队列日志解析、节点日志解析和网络日志解析四个子模块,日志信息通过国产神威超级计算机的集中监控平台实时获取。作业日志解析所有用户提交的作业信息,包括作业编号、作业名称、作业状态、作业运行的队列和节点、开始时间和结束时间等信息。队列日志解析所有队列信息,包括队列名称、队列状态、队列包含的节点和队列中的用户等信息。节点日志解析所有计算节点的信息,包括节点编号、CPU编号、核心数、状态、内存、所在队列等信息。网络日志解析网络文件名称、网络内容等。
(3) 智能分析。智能分析包括模式故障发现与快速定位、运行特征分析、预警分析三个子模块。其中,模式故障发现与快速定位是该系统的重要功能,为海洋数值模式的业务连续运行提供保障。本文基于状态获取的故障信息,对可能导致作业运行失败的原因事件进行分类和严重等级分级,进而通过问题规模及其关联关系,有效解决了大规模作业运行过程中故障快速定位的问题。运行特征分析提取模式运行时特征,将同一用户的同一模式的各次运行情况进行记录,进而对模式运行规模、运行时长、模式参数变更等特征作出对比分析。预警分析推送故障告警信息、隐患信息和异常现象等给用户或者平台管理人员处理。
(4) 模式流程管理。模式流程管理主要对海洋数值模式软件使用流程进行规范化管理。通过梳理分析模式软件的使用过程及相关参数设置情况,该系统将模式软件使用流程分解为“选模式—配模式—资源准备—作业提交”等环节。超级计算环境负责后台与计算机密切相关的软件编译、作业提交、变量抽取及数据的比对工作,用户只需要直观地选择模式软件及依赖的相关库、设定算例及计算规模后即可提交运行,运行完成后对模式结果进行比对分析。
该系统在模式流程管理提交作业阶段设置了是否自动重提交选项,若选择了自动重提交,模式作业由于故障异常退出后,系统会在2分钟内自动重提交作业。此时,如果计算资源充足,则模式作业即可运行;否则,模式作业先进行排队,等待故障资源处理完成后恢复可用时即可运行。对于三次重新提交仍不能成功运行的模式作业交由客户分析处理。
(5) 软件与数据管理。软件与数据管理主要为模式协商确定标准统一的数据格式和存储规范,对海洋数值模式计算数据进行规范分类和管理[2-3]。软件管理模块对海洋数值模式软件、依赖的第三方库、编译环境和模式算例等进行集中管理。用户使用时仅需要对新的版本软件进行在线编译,对系统中已有的软件版本用户直接调用即可,方便用户使用的同时也避免了软件版本混乱。数据管理主要对初始数据、边界数据、地形数据、驱动场数据、再启动数据、结果数据等进行统一分类后规范化存储和管理。
(6) 性能比对和结果比对。性能比对和结果比对是以原始模式的串行计算作为基准,同一模式在不同计算进程规模下的并行计算结果与其进行比对[4]。将同一用户的同一模式的各次运行情况进行记录,进而对模式运行规模、运行时长、模式参数变更等特征作出对比分析,方便用户快速地对自己模式的各个规模的计算进行性能比对、加速比和效率分析,作为依据供给用户选择最优的模式参数方案和运行规模。
(7) 辅助工具。辅助工具包括性能测试和计算拓扑优化两个子模块。性能测试基于国产神威超级计算机的监控和监测工具、模式软件的运行及输出情况,对国产神威超级计算机系统的节点计算性能、MPI通信性能、文件系统I/O性能和负载均衡等指标进行分析[5]。计算拓扑优化让具有不同通信要求的进程映射到具有不同网络性能分布的异构节点上,从而起到优化网络设置,提高通信效率、模式运行效率和优化性能的目的。
2 主要方法和实现技术
2.1 数据库切分技术
该系统采用MySQL作为数据库,对计算节点信息、作业信息和模式运行特征等数据进行集中统一存储。随着系统的稳定运行,需要存储的的计算节点信息数量巨大,以神威蓝光国产超级计算机运行万核规模作业为例,需要至少2 500颗CPU,每颗CPU分成4个核组,以5 s/次的频率获取计算节点信息,那么作业持续运行一个月,读取的计算节点信息超过10亿条。庞大的数据量和频繁的读取给数据库服务器带来巨大的压力,导致应用程序运行崩溃。
为了解决这一问题,在应用程序端对每次获取的计算节点信息进行筛选判断,对于同一计算节点下一个时序点仅将和上一个时序点的信息不同的记录存储到数据库里[6],计算节点历史记录表中只存储了节点初始状态和其变化的记录,根据模式作业运行时长和计算节点的稳定性,大大缩减了数据量,减轻了数据库的存储压力。但是随着系统的稳定运行,计算节点信息表数量会非常巨大,单机数据库将不能满足大规模的数据存储和访问的需求,因此本系统利用了数据库切分技术将数据切分到不同的数据库中,来提高系统的整体性能。
系统采用Mycat实现数据切分[7]。Mycat是介于数据库与应用之间进行数据处理与交互的中间服务,其核心功能就是分库分表,主要修改server.xml、schema.xml和rule.xml文件。server.xml是Mycat服务器参数调整和用户授权的配置文件;schema.xml是逻辑库定义和表以及分片定义的配置文件;rule.xml是分片规则的配置文件。数据库切分思路是:首先进行一次垂直切分,把计算节点记录表切分到一个独立的数据库中。由于该计算节点记录表汇总数据量巨大,一次性查数据速度很慢,所以再对计算节点记录表进行水平切分。通过对计算节点的VN号的取模规则将数据分别存放到三个数据库中,把计算节点的VN号记为n,则分别把n%3=1、n%3=2、n%3=3的计算节点记录分别存放到单独数据库中,但是表结构是完全一样的。数据库架构如图3所示。
图3 数据库切分
2.2 模式运行时特征分析
模式运行时特征综合了硬件资源的运行性能情况和模式软件的运行性能情况,对模式运行速度、中间变量和统计量的趋势特征、数据文件的输出特征、计算负载、内存负载、网络利用率和MPI通信特征等模式运行特征数据进行表征。利用统计分析和时间序列分析技术[8],通过对模式运行时特征数据的关联分析和动态分析,预测模式运行时特征在下一时刻的趋势走向和量值范围,通过比较实际输出与预期输出的差别来判断是否发生异常。模式性能异常分析基于模式运行时特征,主要包括四类分析方法:
(1) 相关性分析。计算节点运行状态、计算性能负载、(主核/从核)内存负载的使用时段和使用变化时间点应基本一致。
(2) 常态范围判别。在模式运行过程中模式运行速度、运行时计算负载、运行时内存负载和中间统计量的幅值应基本固定,其中运行时计算负载上下浮动范围应不超过10%的负载率,运行时内存负载上下浮动范围应不超过50 MB的内存负载。另外,同一版本模式软件在同一算例、同等计算规模下的MPI通信特征应一致,通信矩阵中发送/接收进程的关系保持不变,通信次数和通信量基本一致。所以,一个直接的方法就是按上下浮动范围不超过10%进行判定。
(3) 固定周期预测。在模式进入正常的计算模拟后,模式运行日志文件和数据文件即表现为周期性增长的现象,包括增长的时间点、增长的大小等。如超出1.5个周期仍未监测到日志输出,则可判断为运行异常。
(4) 时间序列分析。通过时间序列分析方法对单变量的数据序列值进行时间序列模型识别、周期信息获取、预测和判别等。
① 输出的中间变量数值,在模式作业运行一定周期(2个至10个)后即进入稳定运行过程,呈现出显著的周期性特征。如果监测到的中间变量值超出基于时间序列模型预测的范围,则判别为作业运行异常。
② 网络利用率,在模式作业运行过程中呈现周期性变化,但会存在一定的背景通信流量,因此建议容许不超过20%的上下浮动范围。
2.3 模式故障快速定位
本文通过问题规模及国产神威超级计算机架构之间的关联关系,实现了针对批量大规模并行作业运行故障的快速定位。根据获取到的故障信息,主要包括作业ID号、作业状态、与作业相关的故障节点数量、对应的计算节点号、结构号、计算节点状态、HCA卡状态和文件系统状态等,把导致故障发生的原因分为直接原因和间接原因。直接原因通过故障现象本身或直接关联知识库,即可给出故障原因和处理建议;间接原因则通过故障关联分析方法找到故障的根本原因。对于故障之间存在关联关系的情况,首先根据问题规模及其关联关系,判断故障的类型和级别,筛选出主要故障;然后按照已有历史故障处理方法排查局部故障[9-10]。故障定位分析流程图如图4所示。
图4 故障定位分析流程图
3 系统实现
3.1 主界面
海洋数值模式运行管理系统已经开发完成,并部署应用到神威蓝光超级计算环境和神威E级原型验证系统环境中。用户在浏览器中输入网址http://192.168.126.66:8080/csms/,进入海洋数值模式运行管理系统网站登录界面,输入用户名和密码后进入系统主页。主页包含了用户功能、日志解析、系统监控、智能分析、模式流程管理和软件与数据管理等栏目,海洋数值模式运行管理系统网站主页如图5所示。
图5 海洋数值模式运行管理系统主页
3.2 软件与数据管理
软件管理功能对海洋数值模式软件、依赖的第三方库、编译环境和模式算例等进行集中管理,如图6所示。数据管理功能对边界数据、初始数据、地形数据和参考数据集进行集中分类后规范化存储和管理,如图7所示。该系统对模式软件和算例进行了依赖关联,选择某一模式软件,会列出其对应的算例供用户选择,避免用户使用时造成混乱。
图6 软件管理界面
图7 数据管理界面
3.3 模式流程管理
下面以运行海洋数值模式软件MPIPOM为例,演示模式流程管理功能。首先在模式流程管理选模式阶段选择软件名称、软件版本、编译器、配置算例和第三方库,如图8所示。然后进入配模式阶段,如图9所示,输入日志存放路径、诊断变量、中间文件名称、数据文件和参数文件。接着进入资源准备阶段,如图10所示,该界面显示可用队列、状态及可用节点情况,为用户提交作业阶段选择队列做参考。最后进入提交作业阶段,用户可以在模式作业提交时设置是否自动重提交选项,如图11所示,设置自动提交后,若模式作业异常退出,则2分钟内系统自动重提交作业。这样一个MPIPOM的算例就提交完成了。
图8 选模式界面
图9 配模式界面
图10 资源准备界面
图11 提交作业界面
3.4 模式故障发现与快速定位
针对批量大规模并行作业运行的故障发现与快速定位是该系统的重要功能,为海洋数值模式的业务连续运行提供保障。例如:某客户在国产神威超级计算机上提交了2个作业,分配的计算资源分别为0~63和64~127号CPU。在作业运行过程中执行bjobs命令检查发现作业1和作业2状态变为异常结束。通过cnload命令检查发现作业1和作业2分配的计算节点都出现了同样的文件系统挂载失败现象,且对应同一个文件系统服务节点,由此判定为该文件系统服务节点状态出现异常。通过重启该服务节点后,问题解决并恢复正常。系统中的故障定位诊断结果如图12所示。
图12 运算系统服务节点故障界面
4 结 语
本文分析了海洋模式运行管理系统的主要功能,基于国产神威超级计算机设计开发了一套海洋模式运行管理系统并开展了应用示范。该海洋模式运行管理系统的数据来源于超算中心环境已有的工具手段,适用于国产环境和通用集群环境,适应多种模式软件及多个版本的使用需求,能够简化模式软件的技术服务成本,大大提升我国超级计算基础设施的应用和服务能力。目前,该海洋模式运行管理系统已部署应用到神威蓝光超级计算环境和神威E级原型验证系统环境,后续也可以应用到未来的神威E级计算环境。