一种材料辐照损伤多尺度模拟大数据管理系统

文档序号:26050594发布日期:2021-07-27 15:25阅读:147来源:国知局
一种材料辐照损伤多尺度模拟大数据管理系统

本发明涉及高性能计算与大数据管理领域,特别是指一种材料辐照损伤多尺度模拟大数据管理系统。



背景技术:

在材料辐照损伤的模拟过程中,通过使用不同的方法,例如分子动力学方法(moleculardynamics,md),动力学蒙特卡洛方法(kineticmontecarlo,kmc)等来进行多尺度的模拟。材料多尺度模拟过程中产生的数据跨越原子尺度、微观尺度、介观尺度、宏观尺度多个不同的模拟尺度,不仅数目巨大,而且类型丰富,包含数值型、曲线型、图片型以及各种文档类型等。这些数据一般由研究人员分散管理,不利于后续分析和研究。随着模拟规模的不断增大以及多尺度耦合的复杂化,数据量会急剧上升,进而也带来了对海量数据的存储管理、快速查询、数据分析、数据可视化等一系列需求问题。现有的数据管理方式很难胜任这样大数据量的需求。因此,针对不同尺度的模拟,急需设计统一的数据结构,以存储包括原子坐标数据,微结构演化模块数据,模拟结果数据、结果处理数据在内的一系列数据。

另一方面,随着数据规模的扩大,现有的模拟平台面临着性能不足,资源消耗过多等问题,已经无法很好的满足高性能,高并发的需求。而大数据管理系统存储容量巨大且支持大规模数据的复杂计算。因此,如何基于材料辐照损伤模拟数据,运用大数据、云服务等相关技术,搭建相关的大数据系统,从海量的大数据中提取有价值的信息进行合理、有效的利用,为广大的科研工作者提供服务和协助,成为材料领域一个重要的研究方向。



技术实现要素:

本发明实施例提供了材料辐照损伤多尺度模拟大数据管理系统,实现了大规模、多尺度的模拟数据存储,并表现出良好的可扩展性和高并发性。所述技术方案如下:

本发明实施例提供了一种材料辐照损伤多尺度模拟大数据管理系统,该系统包括:

预处理层,用于当接收到用户发送的数据时,采用消息中间件kafka集群作为所述系统的数据缓冲区,并利用storm集群,以便数据经过处理和分析后存入持久化层的数据库中;

持久化层,采用mongodb+minio+mysql的模式存储不同尺度的模拟数据;其中,使用mongodb集群存储所述系统中的模拟数据,使用分布式对象存储技术minio存储用户上传的文件,使用mysql存储用户信息和系统日志;

业务层,以松耦合的方式对功能模块进行组织;

接口层,使用graphql的api接口连接前端和后端;

应用层,使用vue的前端架构设计人机交互的web平台。

进一步地,所述预处理层,用于当接收到用户发送的数据时,采用消息中间件kafka集群作为所述系统的数据缓冲区;其中,若接收到的数据为多尺度的模拟数据,则kafka集群采用尺度作为主题,对数据进行分类发送,storm集群按照模拟的尺度从kafka集群中获取数据,并对数据进行处理和分析,将分析后的数据存入数据库中。

进一步地,所述持久化层,利用“分片+副本集”的架构搭建mongodb集群。

进一步地,所述mongodb集群包括:分片节点、配置节点和路由节点;其中,

所述分片节点,用于存储模拟数据;

所述配置节点,用于保存mongodb集群的元数据;

所述路由节点,用于将用户的请求路由到对应的分片。

进一步地,所述功能模块包括:用户管理模块、超算管理模块、故障报警模块和接口管理模块。

进一步地,所述用户管理模块,用于实现用户的注册、登陆和个人信息维护。

进一步地,所述超算管理模块,用于实现超算设备注册、超算设备信息维护和远程提交超算作业。

进一步地,所述故障告警模块,用于实现故障检测和告警生成。

进一步地,所述接口管理模块,用于实现用户认证的用户接口和模拟软件接口。

进一步地,所述接口层,用于用户通过所述系统调用api接口并发送请求给后端,后端收到请求后调用相应的功能模块进行处理再通过api接口将结果返回给用户。

本发明实施例提供的技术方案带来的有益效果至少包括:

本发明实施例中,采用分层架构的模型,在预处理层中采用消息中间件kafka集群作为所述系统的数据缓冲区,并利用storm集群,以便数据经过处理和分析后存入持久化层的数据库中;在持久化层中采用mongodb+minio+mysql的模式存储不同尺度的模拟数据;在业务层中以松耦合的方式对功能模块进行组织;在接口层使用graphql的api接口连接前端和后端;在应用层使用vue的前端架构设计人机交互的web平台。将所述系统应用于材料辐照损伤多尺度模拟中,旨在将模拟过程中的产生的数据进行统一的管理和分析,实现了大规模、多尺度的模拟数据存储,并表现出良好的可扩展性和高并发性,降低了相关使用人员的工作难度,方便相关人员进行后续使用,同时可以更好的管理所有的模拟数据,最终实现智能化的材料模拟数据研究。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的材料辐照损伤多尺度模拟大数据管理系统的总体架构示意图;

图2为本发明实施例提供的mongodb集群配置信息示意图;

图3为本发明实施例提供的业务层的功能模块示意图;

图4为本发明实施例提供的远程提交超算作业流程示意图;

图5为本发明实施例提供的故障告警流程示意图;

图6为本发明实施例提供的系统的主页面布局示意图;

图7为本发明实施例提供的系统生成的3d模型示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

如图1所示,本发明实施例提供了一种材料辐照损伤多尺度模拟大数据管理系统,该系统采用分层架构的模型,具体包括:

预处理层,用于当接收到用户发送的数据时,采用消息中间件kafka集群作为所述系统的数据缓冲区,并利用storm集群,以便数据经过处理和分析后存入持久化层的数据库中;

持久化层,采用mongodb+minio+mysql的模式存储不同尺度的模拟数据;其中,使用mongodb集群存储所述系统中的模拟数据,使用分布式对象存储技术minio存储用户上传的文件,使用mysql存储用户信息和系统日志;

业务层,以松耦合的方式对功能模块进行组织;

接口层,使用graphql的api接口连接前端和后端;

应用层,使用vue的前端架构设计人机交互的web平台。

本发明实施例所述的材料辐照损伤多尺度模拟大数据管理系统,采用分层架构的模型,在预处理层中采用消息中间件kafka集群作为所述系统的数据缓冲区,并利用storm集群,以便数据经过处理和分析后存入持久化层的数据库中;在持久化层中采用mongodb+minio+mysql的模式存储不同尺度的模拟数据;在业务层中以松耦合的方式对功能模块进行组织;在接口层使用graphql的api接口连接前端和后端;在应用层使用vue的前端架构设计人机交互的web平台。将所述系统应用于材料辐照损伤多尺度模拟中,旨在将模拟过程中的产生的数据进行统一的管理和分析,实现了大规模、多尺度的模拟数据存储,并表现出良好的可扩展性和高并发性,降低了相关使用人员的工作难度,方便相关人员进行后续使用,同时可以更好的管理所有的模拟数据,最终实现智能化的材料模拟数据研究。

本实施例中,所述前端包括:应用层中用于人机交互的web平台;所述后端包括:持久化层中的服务器和数据库、业务层中的功能模块等。

本发明实施例所述的材料辐照损伤多尺度模拟大数据管理系统,还可以直接连接远程的超级计算机(例如天河2号)进行模拟;且所述系统采用docker容器化的部署,免去部署时复杂的环境配置;方便服务迁移。

本实施例中,采用二维表来存储材料多尺度模拟数据。以分子动力学模拟为例,具体的材料多尺度模拟数据库表,包含五个集合:inputpara集合、result集合、postprocessing集合、postprocessingmany集合和id集合,其中,inputpara表示输入参数集合、result表示结果数据集合、postprocessing表示一次模拟后处理的集合、postprocessingmany表示多次模拟后处理的集合、id用于将inputpara、result、postprocessing关联起来,便于处理。

本实施例中,inputpara集合、result集合、postprocessing集合、postprocessingmany集合的表结构如表1(a)-(d)所示:

表1(a)inputpara集合

表1(b)result集合

表1(c)postprocessing集合

表1(d)postprocessingmany集合

为了更好地理解本发明实施例提供的材料辐照损伤多尺度模拟大数据管理系统,对其中的各个分层分别进行详细说明:

1)预处理层

在现有技术中,用户输入的数据会直接写入数据库中,并没有设计中间层。但是当大量用户同时并发的上传数据时,系统的处理能力不足会带来性能的瓶颈。因此,在本实施例的预处理层中,加入了具有高吞吐率,对tb级以上数据也能保证常数时间访问性能的消息中间件kafka集群用于实现数据缓冲,防止因为突发的超负荷请求而导致系统崩溃。同时,在本实施例的预处理层中,还加入了storm集群,使数据经过处理/预处理和分析后再存入数据库中。

本实施例中,当用户通过用户设备向所述系统发送模拟数据时,kafka集群作为所述系统的数据缓冲区,实现峰值压力的转移,避免海量数据造成系统的崩溃。同时,若接收到的数据为多尺度的模拟数据,对于多尺度的模拟数据,kafka集群采用“尺度”作为主题,对数据进行分类发送,这使得在做后续的处理时,同尺度数据的结构大致相似,大幅度的提高效率。随后,storm集群按照模拟的“尺度”从kafka集群中获取数据,并对数据进行处理和分析。随后将分析后的数据以表1(a)-(d)中二维表的结构存入到数据库中进行持久化保存。

2)持久化层

本实施例中,持久化层中的数据库包含不同尺度的模拟数据,主要有md、kmc、scd和dd等主要数据。在模拟中比如合金的比例,它是不定的,其他参数有时也是不定的,且随着模拟的增加,数据也会大量的增加。由于mongodb可以为web应用提供可扩展的高性能数据存储,读写效率高,mongodb文档类似于json对象,在使用时也更加的灵活,因此,使用mongodb集群存储平台中的海量模拟数据,使用分布式对象存储技术minio存储用户上传的大文件,使用mysql存储用户信息和系统日志等数据,从而保障所述系统具有很高的数据吞吐率和可扩展性。

本实施例中,所述持久化层使用“分片+副本集”的架构来搭建mongodb集群。mongodb集群主要包含三种节点:分片节点(shards)、配置节点(configservers)和路由节点(queryrouters);其中,分片节点用于存储模拟数据(用户输入的参数,配置文件,上传的后处理信息等),配置节点用于保存mongodb集群的元数据,路由节点用于将用户的请求路由到对应的分片。

本实施例中,使用图2中的配置信息作为所述系统中mongodb集群的配置。分别使用三台服务器作为配置节点、路由节点和分片节点。针对每个分片,系统配置了主节点、副节点和仲裁结点;其中,主节点用于保存数据,副节点用于数据备份,仲裁节点用于当主节点因故障失效时,将副节点提升为主节点以保证系统正常工作。这保证了数据的安全性和系统的高可用性。

3)业务层

本实施例中,如图3所示,所述业务层按照需求划分为用户管理模块、超算管理模块、故障报警模块和接口管理模块这4个功能模块,各个模块具有良好的封装性,以松耦合的方式组织在一起,避免了功能重复和混乱;其中,

用户管理模块包含用户的注册、登陆和个人信息维护,主要用于用户与数据库进行交互验证;

超算管理模块包含超算设备注册、超算设备信息维护和远程提交超算作业。主要用于管理所述系统中模拟软件所需要使用的超算设备;其中,用户远程提交超算作业步骤为:

1)用户在系统页面输入模拟所需要的全部参数;

2)系统根据用户的输入自动生成配置文件;

3)系统调用graphqlapi接口将参数以及配置文件存入系统的数据库中;

4)系统调用rpc(远程过程调用)向超算请求服务;

5)系统将相关参数通过vpn/ssh发送到天河2号超算并开始远程运行作业。远程提交超算作业方式如图4所示;

故障告警模块用于实现故障检测和告警生成。当所述系统中的超算由于某些特殊原因导致模拟的结果不能及时返回时,系统会自动生成告警信息并发送给用户;其中,如图5所示,故障告警的步骤为:

1)系统(即:图5中的平台)设置定时执行任务机制,每隔30分钟定时运行任务;

2)系统查询用户作业的创建时间并记录为t1;

3)系统查询当前时间t2并计算作业已运行时间t=t2-t1;

4)若作业已运行时间t大于1小时,则系统向用户邮箱发送告警信息,所述告警信息包括:用户名称、用户id、作业名称、作业id、故障id等;

接口管理模块包括实现用户认证的用户接口和模拟软件接口,其中,模拟软件接口帮助所述系统集成包括md、kmc、scd等一系列分子动力学模拟软件。

4)接口层

本实施例中,所述接口层,用于用户通过所述系统调用api接口并发送请求给后端,后端收到请求后调用相应的功能模块进行处理再通过api接口将结果返回给用户。

5)应用层

本实施例中,所述应用层方便帮助用户创建模拟,生成配置文件,远程直接连接超算等操作。所述应用层基于vue开发,使用组件化编程实现应用中的各项功能。应用层主页面布局如图6所示,所述应用层主页面包括:菜单栏(menu-group)、模拟选择区(simulation-group)、模拟列表(simulation-list)和工具栏(tool-bar),其中,菜单栏用于切换系统主页与模拟页面并且为后续系统升级预留接口;模拟选择区用于选择不同的模拟软件进行模拟(比如md,kmc);模拟列表区向用户展示所有已经创建的模拟;工具栏区用于用户登陆注册,更改系统的语言。同时,使用codemirror插件开发平台的网页编辑器功能,使用three.js插件开发3d模型展示功能,使用vue-plotly插件开发二维的坐标图功能。所述系统生成的3d模型图如附图7所示。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1