APP下载

云化与业务流技术支撑的新一代超级计算应用平台

2020-11-05马庆珍司道军孟祥飞

计算机工程与科学 2020年10期
关键词:云化可视化软件

康 波,马庆珍,司道军,孟祥飞

(1.天津大学智能与计算学部,天津 300350;2.国家超级计算天津中心,天津 300457)

1 引言

自20世纪80年代以来,超级计算一直为气候气象预报、航空航天研发、海洋数值模拟、石油地震数据处理、材料计算、基因分析等领域提供算力支撑[1]。尤其是近十年以来,超级计算机已成为支撑重大科技创新和产业发展的重器[2,3]。随着国内“计算创新驱动”模式的兴起、产业信息化提升、大数据与人工智能发展,超级计算的应用场景需求越来越多。目前已经从超级计算单纯提供硬件算力服务开始转变为围绕超级计算打造应用服务生态。超级计算开始成为众多应用场景产业链中的一环或多环,支撑整个创新链的发展。

超级计算算力的再封装已有多种尝试,例如通过云化形成超算云,屏蔽底层计算资源,实现常用软件和库的快速加载,简化用户登录使用的过程,目的是降低超算使用的门槛,提高受众的接受度。又比如,将超算使用界面通过虚拟桌面的方式推出,通过虚拟网络计算VNC(Virtual Network Computing)实现对超算资源的桌面化操作与管理[4]。

不仅是超算算力的再封装,在应用服务层面,超级计算支撑的平台也逐渐成为主流共识。但目前来看,这些基于超算形成的平台多位于互联网公司或者大型软件服务商内,是其提供内部业务驱动的重要工具,并不具有对外服务属性。

超级计算中心作为公益服务机构,承担了较多的公共服务属性,响应来自科技创新与产业发展的需求,是其发展的重要方面。而当前,以超级计算为支撑的产业应用服务平台成为超级计算服务产业的重要方面,需要超算中心予以尝试推进。

面对当前的超算发展趋势,本文提出了云化与业务流化技术支撑的行业应用平台,分为3个部分:第1部分介绍超算行业应用平台的特点,第2部分介绍超算云化和业务流化技术,第3部分以石油物探平台为例,介绍2项技术的应用。

2 超算行业应用平台特点

超算行业平台以超级计算机为算力支撑,面向不同的行业应用提供定制化的服务,其在服务中具有完备性、易用性和专业性的特点。

2.1 完备性

不同于软件工具,完备性是超算行业平台一个重要方面,其需要具备平台的一些公共属性,比如用户管理、权限管理、资源配置、数据管理、软件工具集集成、交互式界面等。平台具备完成一项工作必须的数据采集、数据预处理、建模、计算、分析、可视化显示、结果下载等通用的闭环过程。用户借助该平台能够完成所开展研究或工程的完整环节。同时,平台具备不同形式的数据存储能力,提供非结构化、半结构化、结构化的数据库存储服务,借助云服务设施,支撑用户数据的存储与共享。

2.2 易用性

平台化的一大优势是屏蔽了数据上传下载、编写流程代码、设计资源调度执行脚本、结果抽取与查看等一系列原在超级计算机上所需要执行的操作,面向用户开放的是端到端的服务。用户通过界面化上传数据、管理数据,交互图形化配置流程、参数和计算资源,结果数据可以通过报表、图形、影像等多种形式查看。

2.3 专业性

基于超级计算机的行业平台具有面向行业的专业属性,它需要解决的是面向不同行业的专业需求与问题,其中算力与专业背景知识高度耦合。在高通量材料计算中,平台需要实现微观-介观-宏观等不同尺度、金属-高分子-陶瓷不同研发需求的材料计算,同时要处理高并发、多尺度、自动工作流等超算技术问题[5]。在人工智能应用中,平台需要具备数据集标准化、建模、训练、评价、部署等功能,超级计算机则为实现这些功能提供不同体系的计算能力、层次式动态可扩展数据存储与管理能力、面向场景的算法支撑能力,从而使专业方向与超级计算紧密融合。

3 面向超算的云化与业务流化技术

3.1 云化

云化过程主要解决如何通过互联网访问部署在超级计算机上的软件工具,同时使用超级计算和大数据存储环境开展工作,核心工作之一是实现软件工具的快速集成。

通过实践,国家超级计算天津中心形成了“软件信息拆分、接口配置、软件物理配置、平台接入”4步集成法的插件机制,实现了不同软件可无缝嵌入到平台,并保持了统一的用户视图(如图1所示)。

Figure 1 Plug-in mechanism based deployment solution for platform software tools图1 基于插件机制平台软件工具部署方案

软件信息拆分主要的工作是把软件主体、软件描述、参数描述拆分出来,形成结构化的表述模式,并通过JSON、XML等描述文件格式存储,实现软件的执行形式、版本管理、宿主信息、参数配置格式的统一。

接口配置用于实现软件功能的模块化,屏蔽不同软件工具之间在数据格式上的差异,主要通过指定标准文件格式、配置输入输出信息、开发转换中间层来实现。

软件物理部署需要指定超级计算集群、配置依赖库、安装部署等过程,实现软件在物理实体的配置。

平台接入用于填补超级计算机与云平台之间的鸿沟,实现软件工具的无差异方式使用和配置,主要包括软件接入、参数接入、调度接入、API接入等过程。

此外,云化需要解决的另一个问题是平台用户统一视图的实现方式。通过基于统一软件信息封装的动态映射和实时渲染显示,可以较大程度地减少软件工程量和迭代开发重构范围,在多个行业应用平台中的效果较好。

超算应用的一类典型运行方式为脚本作业提交执行,即基于Slurm等调度系统,通过编写执行脚本提交多结点计算任务来完成计算过程。针对该类应用,云化过程包括以下关键步骤(如图2所示):(1)定义模板参数描述文件,约定计算参数类型、数值、计算资源需求、状态标识等内容,以JSON形式存储。(2)模板参数描述文件通过前端统一视图模板引擎显示前端,并解析成对应多选框、下拉框、输入框等形式,填充初始数值。(3)前端在被操作更改对应数值后生成动态表单,并将参数更新至模板参数描述文件。(4)实现计算参数提取,将其映射到应用自身数据参数文件中。(5)提取计算资源、数据资源、软件版本资源等信息,通过模板格式合成,形成基于格式约束的作业执行脚本。(6)调用与云服务器连接的超算统一资源调用接口,实现作业提交。(7)作业在超算系统中执行,并通过统一资源调度接口返回运行状态到模板参数描述文件,更新渲染至前端,结果通过专用接口返回,反馈给前端处理。通过数据统一管理接口,为数据交互、结果可视化提供支持。

Figure 2 Technical process to realize unified view template图2 统一视图模板实现技术流程

3.2 业务流化

业务流化满足了数据流驱动的工作需求,是在软件云化基础上的功能扩展和增强。业务流需要同时解决3个技术问题,即:业务流的交互式构建、业务流程解析、业务流执行管理。

在业务流交互式构建方面,借助模块化的功能设计,可以将资源池、业务流设计、参数配置、结果查看等实现有机组合。在业务流解析方面,形成了以嵌套工作流为特征的业务流模式。对于一个实际的流程,它通常会包括多个业务,如图3所示。传统的业务流仅包括这一部分,当形成业务流后,为其指定计算资源、使用的软件工具、配置参数后,交由调度执行,它仅仅实现了业务层的控制。在实际业务中,通常每个业务都是由一个工作流组成的,例如业务i由工作1到工作N组成,这个工作流才能完整反映业务需要完成的事情。针对每个工作而言,需要为之配置参数;对于每个业务而言,需要配置计算资源、软件工具等。这样,每个业务都成为了一个独立执行的单元,业务内部也实现了丰富的定制,较大地提高了平台处理业务的能力和灵活性。这种嵌套式的复杂业务流模式设计使得用户可以在业务层和工作层分别对业务流进行控制。

Figure 3 Basic features of nested worflow图3 嵌套业务流基本特点

在业务流解析方面,通过数组映射的方式把由节点、连接来实现业务流的有向图描述,分解成按计算次序标识的任务数组,即从有向图源开始,按照连接依赖,以此展开,形成[[task_1],[task_2,task_3],[task_4,…],…]的形式。针对工作流层,采用3.1节提到的参数模板描述文件来解析各工作环节的相关参数配置,获得每个工作流所需的计算参数与资源参数。

在业务流执行管理方面,由于单个工作流模块可映射于一个云化流程,因此工作流作业执行方面可采用3.1节述及的方法。对于业务流层次而言,构建有工作流执行引擎,主要完成以下工作:(1)按照业务流图解析产生的任务数组,依次遍历各个条目,对每个条目内的子条目,并发提交高性能计算作业。(2)对每一阶段作业结果进行校验,校验分为计算过程校验(作业执行过程无异常)和算例结果合理性校验(算例内置测试单元无异常),当两者都通过时,执行(1);当出现异常时候,启动预置仲裁策略,启动从头重算、回滚上一流程步重算、中止计算等选项;当所有工作流作业任务都顺利执行完成时,保存计算过程相关数据和结果。当计算任务为多层嵌套时,从外层到内层,逐层循环执行,获取最终结果。

4 应用实践:以石油物探行业为例

4.1 石油地震数据处理特点

石油地震数据处理的业务流程比较复杂,涉及多个数据处理功能的组合。以常规地震处理业务流程为例,其涉及到地震数据输入、定义观测系统、静校正、噪声压制、振幅处理、反褶积、速度分析、动校正、叠前偏移、叠加剖面的一系列业务过程,这些业务都是一个相对独立的处理过程[6]。例如,振幅补偿业务包括数据加载、振幅均衡、球面扩散补偿、地表一致性补偿、数据输出等环节。噪声压制业务包括了数据加载、面波压制、线性噪音压制、非线性噪音压制、相干噪音压制、数据输出等环节。这些环节在流程上是非独立的,其依赖于上一个过程的结果,具有数据依赖性(如图4所示)。

数据处理过程中,涉及不断的参数优化与迭代,可视化交互编辑和质控、多种资源调用方式,此外用户权限控制与数据管理等要求,也都是该平台面临的挑战。

Figure 4 Schematic diagram of conventional seismic data processing图4 常规地震数据处理流程示意图

4.2 云化

围绕地震资料处理的各个环节,充分融合各类专业软件工具在地震资料处理中的特色,本文设计并集成了可支撑常规处理、速度建模、偏移成像与构造解释的勘探业务流程的应用软件超过50项,形成了“自主+开源+行业”软件的综合性业务软件集成平台。根据各类软件的业务特性和对资源的需求,在“天河一号”[7]、商用HPC系统、国产E级验证系统等不同的体系结构下完成了针对性配置,实现了针对多类型超级计算机系统的部署与应用(如图5所示)。

Figure 5 Architecture diagram of application platform图5 应用平台架构图

同时,开发设计了由“Web服务器、天河超算服务器、图形化服务器、存储服务器”组成的实验平台。针对Web服务器,开发了网站统一视图框架,按照模块式开发策略,将交互平台进行了拆分,为协同开发提供有力支撑。基于WebSocket技术[8]、Web SSH技术和VNC技术完成了异构数据交互和远程应用可视化(如图6所示)。

Figure 6 Supercomputing-based data remote visualization and interaction图6 基于超级计算的数据远程可视化与交互

在软件集成与应用方面,完成了GeoEast[9]、逆时偏移[10]、地震正演[11]等软件在实验平台上的部署与测试。按照串行、MPI并行、数据批处理并行等运行方式,对静校正、动校正、速度分析、偏移成像等地震资料处理典型流程进行了梳理归类。针对地震处理不同阶段对数据、界面交互、串并行要求,对各个模块进行了测试分析,调研了不同流程的特点,为应用平台的性能优化与版块设置提供有效参考。针对天河资源调度特点,开发了作业执行、状态监控、作业提交、工作流执行与控制4个资源调度脚本模块,并以地震资料处理数据为例进行了测试,取得了较好的效果(如图7所示)。

Figure 7 Job monitoring and management图7 平台作业监控和管理

接口配置用于实现软件功能的模块化,屏蔽不同软件工具之间在数据格式上的差异,主要通过指定标准文件格式、配置输入输出信息、开发转换中间层来实现(如图8所示)。

Figure 8 Data unified interface for seismic data processing图8 地震数据处理的数据统一接口

针对天河系统平台特点,建立了用户与数据安全管理方式,通过天河系统与应用平台双重管理保障用户安全,通过用户数据物理与逻辑隔离保障数据的安全性。

通过研发图形化的业务流程设计软件,使应用平台具备业务流程设计能力;研发主控软件、作业流程编辑可视化软件,让使用者方便地搭建处理业务流程,并对处理业务流程的运行进行监控和管理。通过执行控制系统、作业调度系统研发,完成业务流程的实施、运行和结果查询(如图9所示)。

研发构建了交互应用开发框架,框架包括:窗口及界面的构建、二维绘图、剖面显示、CGM成图等勘探业务基础功能。用户可使用交互框架方便地开发基于图形界面的应用软件。

通过批量模块开发框架、交互应用开发框架的研发与集成,形成开放的应用软件开发平台,支撑勘探业务新技术的发展。开发者借助平台的开发工具,可快速实现业务目标[12]。

Figure 9 Business flow design interface of petroleum seismic data processing platform 图9 石油地震数据处理平台业务流设计界面

4.3 业务流化

基于嵌套式工作流,形成了业务流交互设计功能(如图9所示)。业务池中包含开展石油地震勘探处理的业务类别,目前平台集成了22类,涵盖了绝大多数的常规处理、速度建模、时间偏移等地震处理业务。

在业务流设计区,用户通过鼠标点击拖动来完成业务流的创建、保存、执行等操作。在工作流编辑区,当用户选定某个业务以后,便可以从工具模块池中选择完成该业务的所需模块,然后通过拖拽连接形成工作流,业务流模板内可以配置计算资源、并行方式等参数。工作流中的每个模块,可以在参数配置区域完成对当前模块参数的配置。针对石油勘探行业的特点,应用平台实现业务流和工作流2级流程执行控制,可以根据需要灵活地进行作业提交,既满足业务流级的勘探处理流程执行,同时可以通过工作流级的作业执行,进行参数实验。为了优化作业执行效率,针对不同的工具模块,提供了串行、MPI并行和具备容错功能的并行执行方式[13]等多种作业执行选项。

4.4 多元化服务模式

除了以互联网网页的方式提供交互式服务外,平台还提供了VNC、虚拟桌面推送等多种服务模式。

VNC服务模式用于向用户推送封装化的服务,包括大体量结果数据的实时交互显示,大体量模型交互编辑等(如图10所示)。用户通过代理服务访问平台提供的可视化应用,平台接收到请求后,连接天河统一资源API服务,启动可视化集群上的可视化应用,并返回可视化应用URL,以及验证所需的口令和token等信息。平台接收到可视化应用URL后,通过代理服务连接到对应URL、token和口令等信息,验证通过后,用户即可访问可视化集群上启动的远程应用。

软件工具池中集成了完成某项地震处理业务所需的软件模块,可以有效满足不同地震勘探数据处理要求,适应不同勘探区域的地震数据资料特点。

Figure 10 Remote data visualization based on VNC图10 基于VNC的数据远程可视化

虚拟桌面推送服务模式,将应用作为整个服务进行推送,保留了用户对特定软件的完整使用习惯,也为一些高度封装的商业软件集成提供了参考。通过平台提供的可视化应用,在疫情期间为中国海洋大学实现了远程在线教学,利用天河超级计算机强大的计算能力和东方地球物理公司GeoEast软件丰富的功能实现了石油勘探处理全流程在线学习、实践。平台可视化应用为在线教学提供了稳定可靠的服务,顺利完成了2个班64学时的教学活动,较好地实践了产学研用深度融合模式。石油勘探处理理论和实际勘探资料处理能力实现有效结合,改善了教学效果,提高了学生实践能力。

5 结束语

围绕超级计算如何更好地服务产业,开展了基于云化和业务流化的平台建设实践,以石油物探行业为例,实现了超级计算与云计算、大数据融合环境的高效利用,形成了面向应用环境的技术有机组合,为基于超级计算机的产业应用服务平台建设提供了较好的参考。

猜你喜欢

云化可视化软件
基于CiteSpace的足三里穴研究可视化分析
思维可视化
禅宗软件
基于CGAL和OpenGL的海底地形三维可视化
“融评”:党媒评论的可视化创新
软件对对碰
5G/云化下的VR产业未来
IBM中国企业云化实践中心成立
核心网云化技术的分析
即时通讯软件WhatsApp