掌桥专利:专业的专利平台
掌桥专利
首页

一种通用算法验证平台及其算法注册调用方法

文献发布时间:2023-06-19 18:58:26


一种通用算法验证平台及其算法注册调用方法

技术领域

本发明属于计算机数据处理技术领域,特别是一种通用算法验证平台及其算法注册调用方法。

背景技术

现有的电磁信号通用分布式智能处理分析平台(例如专利CN113157252A),能够在分布式计算集群中实现分布式计算的功能。该分布式智能处理分析平台由一个调度节点、若干个常规计算节点、若干个高级计算节点、若干个数据接入节点等组成。其中每个节点上部署一个节点管理模块,用来监控硬件状态、软件运行状态、启动关闭软件模块等功能;调度节点部署调度模块,作为系统的中枢,负责调度和资源协调,计算节点用来适应并行处理任务。UI前端模块接收用户任务指令通过通信协议发送给后端服务模块,节点管理模块在资源监测与资源分配成功后,任务涉及模块(数据接入模块、预处理计算模块、深度学习计算模块)启动任务;各模块与数据管理模块交互实现数据存储与管理,任务结束后通过通信协议完成结果反馈;后端服务模块负责任务调度,节点管理模块负责资源回收,UI前端模块负责结果展示。

上述平台的软件框架中包含一个Nginx前端模块、一个调度模块、一个代理助理软件模块、一个数据管理模块、若干个数据接入模块、若干个常规计算软件模块、若干个高级计算软件模块;可运行在一台计算机上,也可按角色分别运行在多台计算机上,如:数据接入软件模块运行在采集服务器上,计算节点有两类,常规计算软件模块运行在常规计算节点,高级计算软件模块运行在高级计算节点。

在分布式计算、多任务并发场景下,将有多个客户端“同时”向调度软件发送任务申请,而且每个用户都可能申请多个任务;同时,每个任务会存在并行计算进程,甚至分布在不同计算节点上。这个问题的本质是调度模块要能够接多个任务申请,并能够根据当前计算资源状态(包括常规计算软件模块和高级计算软件模块),将任务合理的分配到相应的计算资源,同时对资源运行情况进行监控和管理。

专利CN113157252A中平台的算法,通过常规计算节点的常规计算软件模块调用通信,用户逻辑也写在常规计算软件模块中,但是用户难以对不同算法进行验证和集成,用户的开发成本较高。

发明内容

本发明的目的在于提供一种通用算法验证平台及其算法注册调用方法,能够方便用户对不同算法进行验证和集成,最大程度减轻用户的开发成本。

实现本发明目的的技术解决方案为:一种通用算法验证平台,所述平台提供开放源码的算法插件框架模板,该算法插件框架包括多种语言,用户借助该算法插件框架集成算法,并按照算法与平台交互的网络接口协议要求,将处理结果填入,用户算法不考虑网络通信相关内容;

算法和平台交互的接口采用TCP/IP通信方式,上传的算法作为TCP客户端,被平台主动拉起,并传入TCP服务端的连接信息,以及初始化参数信息;算法与平台持续尝试连接,当连接成功,自动发送进程ID这些信息,等待平台数据输入,平台将数据传入算法,算法将处理结果反馈至平台。

一种基于所述通用算法验证平台的算法注册调用方法,该方法基于节点上运行的节点管理模块和调度节点上的调度模块进行算法注册及同步,调度模块为程序主要运行的进程,节点管理模块在每个节点上运行一个;基于常规计算节点上的常规计算软件模块进行算法调用;

通过登录系统,进行算法注册,系统自动同步算法到所有计算节点,用户通过编写调用处理逻辑实现算法的验证。

本发明与现有技术相比,其显著优点为:(1)通过设计一个算法注册及调用方法,实现一个通用算法验证平台,不依赖任何开源组件,自主可控;(2)该算法插件框架有Python和C++等多种语言,用户借助该算法插件框架集成算法,并按照算法与平台交互的网络接口协议要求,将处理结果填入,用户算法不需考虑网络通信相关内容,可运行在多种操作系统上;(3)平台和算法交互的报文可根据内容自动适应,不需要进行调整报文格式,方便了用户对不同算法进行验证和集成,最大程度减轻了用户的开发成本。

附图说明

图1是背景系统硬件组成图。

图2是背景系统软件架构图。

图3是使用场景图示例图。

图4是平台算法调用流程图。

具体实施方式

结合图1~图2,本发明一种通用算法验证平台,所述平台提供开放源码的算法插件框架模板,该算法插件框架包括多种语言,用户借助该算法插件框架集成算法,并按照算法与平台交互的网络接口协议要求,将处理结果填入,用户算法不考虑网络通信相关内容;

算法和平台交互的接口采用TCP/IP通信方式,上传的算法作为TCP客户端,被平台主动拉起,并传入TCP服务端的连接信息,以及初始化参数信息;算法与平台持续尝试连接,当连接成功,自动发送进程ID这些信息,等待平台数据输入,平台将数据传入算法,算法将处理结果反馈至平台。

在一种具体实施方式中,算法与平台交互的报文形式采用JSON加bin附件的统一的方式进行交互,通过上传注册时,填入的输入输出参数描述进行解析和处理。

在一种具体实施方式中,用户将算法上传注册到系统,上传时,填入算法名称、初始化参数、是否使用这些信息,系统自动将算法同步到各计算节点,各计算节点根据是否使用标记,选择是否启动该算法,并自动维护算法调用映射表。

在一种具体实施方式中,算法插件框架采用的语言包括Python和C++。

结合图3~图4,本发明一种基于所述通用算法验证平台的算法注册调用方法,该方法基于节点上运行的节点管理模块和调度节点上的调度模块进行算法注册及同步,调度模块为程序主要运行的进程,节点管理模块在每个节点上运行一个;基于常规计算节点上的常规计算软件模块进行算法调用;

通过登录系统,进行算法注册,系统自动同步算法到所有计算节点,用户通过编写调用处理逻辑实现算法的验证。

在一种具体实施方式中,该方法用于以下两种场景:一种是相同的接口,适应多个算法,算法能够选择进行验证测试;另一种是不同的接口,根据不同算法,编写调用处理逻辑实现具体软件功能。

在一种具体实施方式中,该方法包括算法上传、算法注册启动、算法调用三个处理过程。

在一种具体实施方式中,所述算法上传具体为:

(1.1)用户通过平台的算法管理界面,将算法插件上传到平台的数据管理模块,上传时,在算法管理界面中点击上传按钮,并在弹窗填入算法名称、算法类别、初始化参数、算法启动相对路径以及是否使用这些信息;

(1.2)平台的数据管理模块收到前端上传的算法插件及描述信息后,根据算法类别生成对应的算法ID,根据平台设置的绝对启动路径这些信息存入数据库;

(1.3)通知调度模块将算法插件通过网络通信传输给各计算节点上的节点管理模块,由节点上的节点管理将算法模块存放到指定路径,实现平台自动将算法同步到各计算节点的功能。

在一种具体实施方式中,所述算法注册启动具体为:

(2.1)用户新建一个数据处理分析任务,并在流程中选中需要调用的算法;

(2.2)常规计算软件收到待处理任务,对任务流程参数进行解析,根据算法ID找到本节点的算法插件,并将该算法插件启动;

(2.3)算法插件启动后,根据常规计算软件模块的启动参数,算法作为TCP客户端,与常规计算软件模块建立连接;

(2.4)每个常规计算软件模块将与算法插件的网络连接ID、算法名称、进程ID这些信息维护在映射表中,算法注册在平台中。

在一种具体实施方式中,所述算法调用具体为:

(3.1)用户在编写业务逻辑需算法调用时,调用平台封装的API,传入调用的算法名称、函数名称以及输入结构体,实现对算法的调用,通过设置实现同步消息、异步消息和延迟消息;

(3.2)输入结构体为平台指定的格式,包括结构化的信息总体描述、JSON描述长度、数据体长度、JSON以及数据体;属性和参数信息写入JSON中,数据体中存放待处理的数据,为非结构化或半结构化数据,平台对输入数据进行序列化操作;

(3.3)平台API通知常规计算软件以TCP/IP的方式向算法插件传输待处理数据;

(3.4)常规计算软件监测算法插件的结果返回信息,当收到算法插件返回结构后,进行反序列化操作,并存放在该算法的处理结果队列中借助平台API通知到用户业务逻辑算法调用处;

(3.5)用户根据收到的通知信息,借助平台API获取数据处理结果。

下面结合附图及具体实施例对本发明做进一步详细说明。

实施例

本发明所述的一种通用算法验证平台算法注册及调用方法所依赖的硬件组成图如图1所示,所运行的分布式计算软件框架结构如图2所示。

本发明所述一种通用算法验证平台算法注册及调用方法,算法注册及同步依赖节点上运行的节点管理模块和调度节点上的调度模块,调度模块为程序主要运行的进程,节点管理模块在每个节点上运行一个;算法调用依赖常规计算节点上的常规计算软件模块。

本发明依托专利CN113157252A所述的平台,设计开发了算法注册及调用方法,以提高通用算法验证平台的开发成本。

该发明是通过设计一个算法注册及调用方法,实现一个通用算法验证平台。通用算法是指不考虑算法内部实现细节,经封装后能加载调用传入数据得到处理结果的算法。

本发明所述一种通用算法验证平台算法注册及调用方法,依托平台及各个计算节点上的节点管理模块实现算法的注册和节点同步,依托常规计算节点上运行的常规计算软件,实现算法调用交互功能。

本发明技术方案是:本发明所述一种通用算法验证平台算法注册及调用方法,用户可将算法上传注册到系统,上传时,填入算法名称、初始化参数、是否使用等信息,系统自动将算法同步到各计算节点,各计算节点根据是否使用标记,选择是否启动该算法,并自动维护算法调用映射表。

平台提供开放源码的算法插件框架模板,该算法插件框架有Python和C++等多种语言,用户借助该算法插件框架集成算法,并按照算法与平台交互的网络接口协议要求,将处理结果填入,用户算法不需考虑网络通信相关内容。

算法和平台交互的接口采用TCP/IP通信方式,上传的算法作为TCP客户端,被平台主动拉起,并传入TCP服务端的连接信息,以及初始化参数信息;算法与平台不断尝试连接,当连接成功,自动发送进程ID等信息,等待平台数据输入,平台将数据传入算法,算法将处理结果反馈至平台。

算法与平台交互的报文形式采用JSON加bin附件的统一的方式进行交互,通过上传注册时,填入的输入输出参数描述进行解析和处理。依赖节点上运行的节点管理模块和调度节点上的调度模块。调度模块为程序主要运行的进程,节点管理模块在每个节点上运行一个。

本发明基于所述通用算法验证平台的算法注册调用方法,包括算法上传、算法注册启动、算法调用三个处理过程:

1、算法上传:

用户通过平台的算法管理界面,将算法插件上传到平台的数据管理模块,上传时,在算法管理界面中点击上传按钮,并在弹窗填入算法名称、算法类别、初始化参数、算法启动相对路径以及是否使用等信息;平台的数据管理模块收到前端上传的算法插件及描述信息后,根据算法类别生成对应的算法ID,根据平台设置的绝对启动路径等信息存入数据库。通知调度模块将算法插件通过网络通信传输给各计算节点上的节点管理模块,由节点上的节点管理将算法模块存放到指定路径,实现平台自动将算法同步到各计算节点功能。

2、算法注册启动:

用户新建一个数据处理分析任务,并在流程中选中需要调用的算法,平台根据算法ID,常规计算软件模块将其启动,根据常规计算软件模块的启动参数,算法作为TCP客户端,与常规计算软件模块建立连接,每个常规计算软件模块维护一个映射表(包含tcp连接ID、算法名称、进程ID等信息),算法注册在平台中。具体流程如下:

1)用户新建一个数据处理分析任务,并在流程中选中需要调用的算法;

2)常规计算软件收到待处理任务,对任务流程参数进行解析,根据算法ID找到本节点的算法插件,并将其启动;

3)算法插件启动后,作为TCP客户端与常规计算软件模块建立连接;

4)常规计算软件将与算法插件的网络连接ID、算法名称、进程ID等信息维护在映射表中。

3、算法调用:

用户逻辑在调用算法时,只需要调用平台的API,传入调用的算法名称、函数名称以及输入结构体,平台根据调用的函数名,找到对应ID进而找到绑定的算法IP和端口号,将输入结构体转为二进制流,发送算法,算法将结果返回二进制流,并按照输出结构体,进行转换。输入结构体和输出结构体的格式一致,均为JSON对象和字节数组组成,其中输入结构体中的JSON对象用来承载输入参数、属性等信息,输入结构体的字节数组用来承载需要处理的数据;输出结构体中的JSON对象用来承载返回结果信息,输入结构体的字节数组用来承载需要返回的二进制数据。平台将算法返回结果进行反序列号,并将处理结果提供给用户业务逻辑。具体流程如下:

1)用户在编写业务逻辑需算法调用时,调用平台封装的API,传入调用的算法名称、函数名称以及输入结构体,实现对算法的调用,可通过设置实现同步消息、异步消息和延迟消息;

2)输入结构体为平台指定的格式,包括结构化的信息总体描述、JSON描述长度、数据体长度、JSON以及数据体;一般的属性和参数信息写入JSON中,数据体中存放待处理的数据,一般为非结构化或半结构化数据,平台对输入数据进行序列化操作;

3)平台API通知常规计算软件以TCP/IP的方式向算法插件传输待处理数据;

4)常规计算软件一线程监测算法插件的结果返回信息,当收到算法插件返回结构后,进行反序列化操作,并存放在该算法的处理结果队列中借助平台API通知到用户业务逻辑算法调用处;

5)用户根据收到的通知信息,可借助平台API获取数据处理结果。

本发明所述一种通用算法验证平台算法注册及调用方法适用两种场景:一种是相同的接口,适应多个算法,算法可选择进行验证测试;另一种是不同的接口,根据不同算法,编写调用处理逻辑实现具体软件功能。

通过登录系统,进行算法注册,系统自动同步算法到所有计算节点,用户通过编写调用处理逻辑实现算法的验证;用户无需关注网络通信等细节,相比RPC方式,也更为简单。

本发明所述一种通用算法验证平台及其算法注册调用方法适用两种场景:一种是相同的接口,适应多个算法,算法可选择进行验证测试;另一种是不同的接口,根据不同算法,编写调用处理逻辑实现具体软件功能。通过登录系统,进行算法注册,系统自动同步算法到所有计算节点,用户通过编写调用处理逻辑实现算法的验证;用户无需关注网络通信等细节,相比RPC方式,也更为简单。

相关技术
  • 一种基于UVM的对称加密算法的验证平台和验证方法
  • 一种用于导航算法的仿真验证方法和仿真验证平台
技术分类

06120115758125