基于Netty的CFD软件处理方法、装置、设备及介质与流程
- 国知局
- 2025-01-10 13:45:19
本发明涉及计算机,特别涉及一种基于netty的cfd软件处理方法、装置、设备及介质。
背景技术:
1、cfd(computational fluid dynamics,计算流体动力学)软件大多是以孤立求解器的方式在工业部门超算上部署,由用户在本地生成仿真所需的参数文件然后再手动提交仿真作业,这种方式不仅增加了仿真作业的执行时间,还无法实时获取仿真作业结果,面对批量仿真计算的工程需求时,更是需要耗费大量时间进行仿真作业的执行与查看。现有方案面向超算应用时,有两种部署运行方式:1、超算具备可视化硬件条件支撑时,将cfd软件交互界面和求解器耦合在一起整体部署在超算可视化节点上,用户登录超算可视化节点,启动软件利用软件交互界面进行仿真计算;2、超算不具备可视化硬件条件支撑时,在超算上单独部署求解器,用户需要在本地pc(personal computer,个人计算机)端使用windows版cfd软件生成输入参数文件手动上传至超算,通过超算调度系统提交作业进行仿真计算。缺点如下:1、缺乏可移植性,超算缺乏可视化硬件支撑时无法整体部署;2、在超算上部署求解器,用户通过手动上传工程文件并执行仿真作业的方式效率低下,面对工程上的批量仿真需求时,存在大量重复性手动操作;3、在超算上部署求解器,仿真作业在超算孤立运行,界面与求解器无法数据互通,用户不能通过交互界面实时查看气动力曲线、云图等仿真结果,使用体验较差。
2、由上可见,如何提高cfd软件的兼容性和可移植性,提高仿真作业的执行效率,解决求解器在超算上孤立作业,交互界面无法实时获取超算上仿真结果数据的情况,降低软件的集成部署门槛是本领域有待解决的问题。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种基于netty的cfd软件处理方法、装置、设备及介质,能够提高cfd软件的兼容性和可移植性,提高仿真作业的执行效率,解决求解器在超算上孤立作业,交互界面无法实时获取超算上仿真结果数据的情况,降低软件的集成部署门槛。其具体方案如下:
2、第一方面,本技术公开了一种基于netty的cfd软件处理方法,包括:
3、建立本地与客户端之间的连接关系,并基于netty框架构建各类型处理器,利用所述连接关系获取所述客户端发送的仿真处理指令,并确定所述仿真处理指令的指令类型;
4、若所述指令类型为解码,则从与所述仿真处理指令对应的所述客户端中获取待处理信息,并对所述待处理信息进行解码以及反序列化,以得到字符串,对所述字符串进行解析,以得到属性值,根据所述属性值从各类型的所述处理器中筛选目标处理器,利用所述目标处理器对所述字符串进行处理;
5、若所述指令类型为编码,则对待编码对象进行字符串转换以及序列化,以得到字节流,计算所述字节流的长度,根据所述长度和所述字节流生成待发送信息,将所述待发送信息发送至与所述仿真处理指令对应的所述客户端。
6、可选的,所述建立本地与客户端之间的连接关系,并基于netty框架构建各类型处理器,包括:
7、定义bossgroup线程组,利用所述bossgroup线程组建立本地与客户端之间的连接关系;
8、初始化本地与所述客户端之间的数据通道,并基于netty框架构建各类型处理器;所述处理器包括支持超文本传输协议和传输控制协议的处理器。
9、可选的,所述利用所述连接关系获取所述客户端发送的仿真处理指令,并确定所述仿真处理指令的指令类型,包括:
10、基于workergroupp中nioeventloop并利用本地与所述客户端之间的连接关系获取所述客户端发送的仿真处理指令,并确定所述仿真处理指令的指令类型。
11、可选的,所述对所述待处理信息进行解码以及反序列化,以得到字符串,包括:
12、确定所述待处理信息的长度,读取所述待处理信息的字节流;
13、根据所述长度从所述字节流中筛选待解码字节流,对所述待解码字节流进行解码以及反序列化,以得到json格式的字符串。
14、可选的,所述对所述字符串进行解析,以得到属性值,根据所述属性值从各类型的所述处理器中筛选目标处理器,包括:
15、对json格式的所述字符串进行解析,以得到属性值;
16、获取与所述属性值相关联的类对象,并将json格式的所述字符串实例化为javabean对象,根据所述类对象和所述javabean对象从各类型的所述处理器中筛选目标处理器。
17、可选的,所述利用所述目标处理器对所述字符串进行处理,包括:
18、若所述目标处理器的类型为用于进行数值计算的处理器,则利用所述目标处理器对所述字符串进行数值计算处理;
19、若所述目标处理器的类型为用于进行作业状态监控的处理器,则利用所述目标处理器对所述字符串进行作业状态监控处理;
20、若所述目标处理器的类型为用于进行曲线监控的处理器,则利用所述目标处理器对所述字符串进行曲线监控处理;
21、若所述目标处理器的类型为用于进行文件管理的处理器,则利用所述目标处理器对所述字符串进行文件管理处理;
22、若所述目标处理器的类型为用于进行作业管理的处理器,则利用所述目标处理器对所述字符串进行作业管理处理;
23、若所述目标处理器的类型为用于进行配置的处理器,则利用所述目标处理器对所述字符串进行配置处理。
24、可选的,所述对待编码对象进行字符串转换以及序列化,以得到字节流,计算所述字节流的长度,根据所述长度和所述字节流生成待发送信息,包括:
25、对待编码对象进行字符串转换,以得到json格式的字符串;所述待编码对象为javabean对象;
26、将json格式的所述字符串序列化为字节流,计算所述字节流的长度;
27、将所述长度存储至消息头部,并将所述字节流作为消息体,以生成待发送信息。
28、第二方面,本技术公开了一种基于netty的cfd软件处理装置,包括:
29、处理器构建模块,用于建立本地与客户端之间的连接关系,并基于netty框架构建各类型处理器,利用所述连接关系获取所述客户端发送的仿真处理指令,并确定所述仿真处理指令的指令类型;
30、解码模块,用于若所述指令类型为解码,则从与所述仿真处理指令对应的所述客户端中获取待处理信息,并对所述待处理信息进行解码以及反序列化,以得到字符串,对所述字符串进行解析,以得到属性值,根据所述属性值从各类型的所述处理器中筛选目标处理器,利用所述目标处理器对所述字符串进行处理;
31、编码模块,用于若所述指令类型为编码,则对待编码对象进行字符串转换以及序列化,以得到字节流,计算所述字节流的长度,根据所述长度和所述字节流生成待发送信息,将所述待发送信息发送至与所述仿真处理指令对应的所述客户端。
32、第三方面,本技术公开了一种电子设备,包括:
33、存储器,用于保存计算机程序;
34、处理器,用于执行所述计算机程序,以实现前述的基于netty的cfd软件处理方法。
35、第四方面,本技术公开了一种计算机存储介质,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的基于netty的cfd软件处理方法的步骤。
36、可见,本技术提供了一种基于netty的cfd软件处理方法,包括建立本地与客户端之间的连接关系,并基于netty框架构建各类型处理器,利用所述连接关系获取所述客户端发送的仿真处理指令,并确定所述仿真处理指令的指令类型;若所述指令类型为解码,则从与所述仿真处理指令对应的所述客户端中获取待处理信息,并对所述待处理信息进行解码以及反序列化,以得到字符串,对所述字符串进行解析,以得到属性值,根据所述属性值从各类型的所述处理器中筛选目标处理器,利用所述目标处理器对所述字符串进行处理;若所述指令类型为编码,则对待编码对象进行字符串转换以及序列化,以得到字节流,计算所述字节流的长度,根据所述长度和所述字节流生成待发送信息,将所述待发送信息发送至与所述仿真处理指令对应的所述客户端。本技术建立本地与客户端之间的连接关系,并基于netty框架构建各类型处理器,能够同时兼容windows/linux操作系统,提高了软件的兼容性和可移植性,当客户端发送的仿真处理指令为解码时,对待处理信息进行解码以及反序列化,得到字符串,对字符串进行解析,利用解析后得到的属性值筛选目标处理器,从而利用目标处理器对字符串进行处理,解决了求解器在超算上孤立作业,交互界面无法实时获取超算上仿真结果数据的问题,提升了软件一体化仿真服务能力,并且无需用户在超算上手动提交仿真作业,提高了仿真作业的执行效率,当客户端发送的仿真处理指令为编码时,对待编码对象进行字符串转换以及序列化,得到字节流,根据字节流的长度和字节流生成待发送信息,将待发送信息发送至对应的客户端,解决了超算缺少可视化节点无法整体部署的情况,并且本技术能够支持多个超算与一个客户端进行仿真作业,所以当客户端退出后,仿真作业仍然能够后台运行,有效整合了计算资源,降低软件的集成部署门槛。
本文地址:https://www.jishuxx.com/zhuanli/20250110/355041.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表