CN113312272A - 分析算法程序数据的方法及装置 - Google Patents
分析算法程序数据的方法及装置 Download PDFInfo
- Publication number
- CN113312272A CN113312272A CN202110841008.0A CN202110841008A CN113312272A CN 113312272 A CN113312272 A CN 113312272A CN 202110841008 A CN202110841008 A CN 202110841008A CN 113312272 A CN113312272 A CN 113312272A
- Authority
- CN
- China
- Prior art keywords
- data
- program
- analyzing
- pool
- analysis
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种分析算法程序数据的方法及装置。该方法包括:后台程序接收算法程序运行至锚点处时异步发送的数据并保存在数据池中,其中,所述数据带有标识;从所述数据池获取指定标识的数据进行分析处理。该装置包括:接收单元,用于接收算法程序运行至锚点处时异步发送的数据,其中,所述数据带有标识;数据池,用于保存所述接收单元接收的数据;处理单元,用于从所述数据池获取指定标识的数据进行分析处理。这种方法及装置既可以通过对中间数据进行分析比对来比对不同机器上运行的算法,又可以实时排查算法错误,被测试算法程序对数据分析过程无感知,不影响业务,节省大规模集群测试算法调试与分析时间。
Description
技术领域
本发明涉及分布式计算领域,更为具体来说,本发明涉及一种分析算法程序数据的方法。
背景技术
在大规模集群计算场景中,常见的集群调度系统有:SLURM、PBS、LSF、以及SGE等,这些系统交互逻辑均为:编写作业脚本、提交作业、等待作业队列排队、查看作业,均不提供调试程序的操作,若要排查问题只能通过查看作业执行完毕后的日志。
计算集群上部署大规模算法运行过程中,一旦出现错误无法实时准确排查问题,例如在SLURM这样的集群作业系统中,需要根据日志排查问题。有些算法问题在单个计算节点上使用单例运行无法复现,必须在集群上大规模运行才会出现,这个问题在大规模并行计算上很常见,此时若使用算法日志排查问题,不是一件容易的事情,算法中变量众多、逻辑复杂,日志无法完全跟踪到某个变量在某个具体过程中的变化。
大规模计算系统中若对算法进行评价往往通过分析结果数据集来进行,这种评价方式只能对算法做出结论性、统计性评价,若要评价算法中某个子过程、子算法,需要单独针对性地输出结果数据集,这有两个弊端:1)评价的子过程越多则结果数据集生成的越多,管理不方便;2)若只想评价某几个子算法,在不修改代码的情况下需要运行一遍完整算法,浪费了不必要的等待时间。
鉴于现有技术存在的问题,目前亟需一种能够实现集群系统上实时数据分析的方法。
发明内容
本发明创新地提供了一种分析算法程序数据的方法及装置,可以实现计算集群上算法程序实时在线数据分析。
为实现上述的技术目的,一方面,本发明公开了一种分析算法程序数据的方法。所述计算集群上分析算法程序数据的方法包括:后台程序接收算法程序运行至锚点处时异步发送的数据并保存在数据池中,其中,所述数据带有标识;从所述数据池获取指定标识的数据进行分析处理。
进一步地,所述的分析算法程序数据的方法还包括:后台程序中的处理程序与所述数据池建立会话;所述从所述数据池获取指定标识的数据进行分析处理,包括:通过所述会话从所述数据池获取指定的与所述会话对应标识的数据进行分析处理。
进一步地,对于所述的分析算法程序数据的方法,所述处理程序包括以热更新插件形式集成的分析策略。
进一步地,对于所述的分析算法程序数据的方法,所述算法程序包括锚点,所述锚点为用于标记所跟踪的数据变量的单句代码。
进一步地,对于所述的分析算法程序数据的方法,包括锚点的算法程序在运行时自动与所述后台程序通信。
进一步地,对于所述的分析算法程序数据的方法,所述通信采用异步消息机制。
进一步地,对于所述分析算法程序数据的方法,在从所述数据池获取指定标识的数据进行分析处理之后,还包括:将分析处理后得到的分析结果数据发送到所述数据池保存。
为实现上述的技术目的,另一方面,本发明公开了一种分析算法程序数据的装置。所述分析算法程序数据的装置包括:处理单元,用于控制后台程序在接收算法程序运行至锚点处时异步发送的数据并保存在数据池中,其中,所述数据带有标识;分析单元,用于从所述数据池获取指定标识的数据进行分析处理。
为实现上述的技术目的,又一方面,本发明公开了一种计算设备。所述计算设备包括:一个或多个处理器,以及与所述一个或多个处理器耦合的存储器,所述存储器存储指令,当所述指令被所述一个或多个处理器执行时,使得所述一个或多个处理器执行上述方法。
为实现上述的技术目的,再一方面,本发明公开了一种机器可读存储介质。所述机器可读存储介质存储有可执行指令,所述指令当被执行时使得所述机器执行上述方法。
本发明的有益效果为:
本发明实施例提供的分析算法程序数据的方法及装置既可以通过对中间数据进行分析比对来比对不同机器上运行的算法,又可以实时排查算法错误,被测试算法程序对数据分析过程无感知,不影响业务,节省大规模集群测试算法调试与分析时间。
附图说明
图中,
图1为本发明实施例1提供的计算集群上分析算法程序数据的方法的流程图;
图2为本发明实施例2提供的计算集群上分析算法程序数据的方法的流程图;
图3为本发明实施例3提供的计算集群上分析算法程序数据的方法的流程图;
图4为本发明一个示例提供的算法程序和后台程序的业务层级关系;
图5为本发明实施例4提供的计算集群上分析算法程序数据的装置的结构示意图;
图6为根据本发明实施例的用于计算集群上分析算法程序数据处理的计算设备的结构框图。
具体实施方式
下面将参照附图更详细地描述本发明的实施例。虽然附图中显示了本发明的某些实施例,然而应当理解的是,本发明可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本发明。应当理解的是,本发明的附图及实施例仅用于示例性作用,并非用于限制本发明的保护范围。
应当理解,本发明的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本发明中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本发明实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
本可选实施例提供了一种分析算法程序数据的方法,具体可用于计算集群,图1为本发明实施例1提供的计算集群上分析算法程序数据的方法的流程图。
如图1所示,在步骤S110,后台程序接收算法程序运行至锚点处时异步发送的数据并保存在数据池中,其中,数据带有标识。其中,算法程序包括锚点,锚点可以为用于标记所跟踪的数据变量的单句代码。包括锚点的算法程序在运行时自动与后台程序通信。通信可以采用异步消息机制。
在步骤S120,从数据池获取指定标识的数据进行分析处理。
进一步来说,该实施例的计算集群上分析算法程序数据的方法在步骤S120之后,还可以包括步骤:将分析处理后得到的分析结果数据发送到数据池保存。
图2为本发明实施例2提供的计算集群上分析算法程序数据的方法的流程图。
如图2所示,在步骤S210,后台程序中的处理程序与数据池建立会话。
在步骤S220,后台程序接收算法程序运行至锚点处时异步发送的数据并保存在数据池中,其中,数据带有标识。其中,算法程序包括锚点,锚点可以为用于标记所跟踪的数据变量的单句代码。包括锚点的算法程序在运行时自动与后台程序通信。通信可以采用异步消息机制。
在步骤S230,处理程序通过会话从数据池获取指定的与会话对应标识的数据进行分析处理。其中,处理程序可以包括以热更新插件形式集成的分析策略。
进一步来说,该实施例的计算集群上分析算法程序数据的方法在步骤S230之后,还可以包括步骤:将分析处理后得到的分析结果数据发送到数据池保存。
可见,该实施例的计算集群上分析算法程序数据的方法以调用库+后台处理程序的方式实现。在需要分析的算法程序中下锚点,算法运行至锚点处将需要分析的数据异步发送给处理端程序的数据池中,处理端程序从池中分拣所需要标识(id)的数据块进行分析比对等操作。可以在算法程序一次运行过程中布下多个锚点以进行多处数据的分析,数据发送给处理端程序使用网络通信可比对不同机器上运行的算法。
调用库可以以侵入的方式集成在原算法程序中,但不对原始算法的变量、逻辑做任何修改,只有一行代码用于标记需要跟踪的变量、数据块,在文中将之称为“下锚点”,后期需要屏蔽某个锚点也无需修改源代码,可通过外部配置文件自由控制某个锚点的使能与否。如下面一个例子提供的调用库的伪代码所示,data1表示需要分析或者需要跟踪的数据块的变量,s1表示这个数据块的标识(id)。
其中,step_1至step_n为原始算法逻辑,其余语句为锚点库的调用,从中可见锚点库的调用均为单语句内部实现,均为异步操作,无复杂逻辑不会对原始算法产生影响。锚点库具有不同的编程语言版本,比如c++、fortran、以及python等。
算法程序一旦集成了上面提到的锚点库中的标记代码,在运行时可以自动与后台的处理程序通信,将需要跟踪的数据发送至数据池中。通信采用异步消息机制不会影响原始算法程序的运行速度。后台程序可以部署在集群上的空闲节点上,采用TCP/IP网络通信从各个计算节点上算法程序中接收数据,下锚点后的算法程序和后台程序的通信交互过程可用图3的时序图描述。从图3中可见,算法程序与后台程序通信为单向通信,仅发送被标记的数据块给后台程序的数据池,处理程序从数据池中取数据,标识(id)相同的一组数据可以建立一个数据分析会话,根据事先编排好的分析策略分析算法数据。因此,数据块的标识(id)也可以理解为是对应的会话标识。
图3为本发明实施例3提供的计算集群上分析算法程序数据的方法的流程图。
如图3所示,在步骤S310,算法程序向后台程序异步发送待比对数据,后台收到数据后保存到数据池中。
在步骤320,通过数据池向处理程序发送建立会话请求,处理程序向数据池返回询问会话数据完整性的消息,从而数据池与处理程序之间建立会话。
在步骤330,数据池向处理程序发送与会话对应标识的数据块。
在步骤340,处理程序分析数据。
在步骤350,处理程序向数据池发送结构化分析数据,并保存在数据池中。
在步骤360,算法程序向后台程序的处理程序发送操作结束消息,例如算法程序运行至上述伪代码例子中的end_anchor ( )处时。
在步骤370,处理程序向数据池发送整理比对数据。
在步骤380,数据池保存接收到的整理比对数据。
图4为本发明一个示例提供的算法程序和后台程序的业务层级关系。如图4所示,分析处理过程可以包括建立会话、分析数据和保存数据,后两者应根据不同的算法评价寻求编写对应的策略。分析数据可以包括差异分析、偏离分析、以及相似度分析等中至少一种分析策略。在实现层面上,分析策略可以以热更新插件形式集成在后台处理程序中,可做到实时无缝切换插件。分析策略以热更新插件形式集成使得分析策略易于增减、修改、替换、以及升级等等。保存数据的方式可以包括按算法保存、按会话保存、以及按分析类别保存等之中至少一种保存方式。
在用户交互层面,后台处理程序预留了RESTful API应用编程接口(ApplicationProgramming Interface),通过编写对应的浏览器端和/或桌面端图形用户界面(GUI,Graphical User Interface)程序友好地显示各个算法数据分析任务。
图5为本发明实施例4提供的计算集群上分析算法程序数据的装置的结构示意图。如图5所示,该实施例提供的计算集群上分析算法程序数据的装置500可以位于后台,包括处理单元510和以及分析单元520。
处理单元510用于控制后台程序在接收算法程序运行至锚点处时异步发送的数据并保存在数据池中,其中,数据带有标识。具体来说,算法程序包括锚点,锚点可以为用于标记所跟踪的数据变量的单句代码。包括锚点的算法程序可以在运行时自动与后台程序通信。通信采用异步消息机制。处理单元510的操作可以参照上面参考图1描述的步骤S110的操作。
分析单元520用于从数据池获取指定标识的数据进行分析处理。分析单元520可以包括处理程序。具体来说,处理程序可以包括以热更新插件形式集成的分析策略。分析单元520的操作可以参照上面参考图1描述的步骤S120的操作。
本发明实施例提供的计算集群上分析算法程序数据的方法及装置是一种实时在线数据分析方法及装置,通过在需要分析的算法程序中下锚点,算法运行至锚点处将需要分析的数据异步发送给处理端程序的数据池中,处理端程序从池中分拣所需要的标识(id)的数据块进行分析比对等操作;可在算法程序一次运行过程中布下多个锚点以进行多处数据的分析,数据发送给处理端程序使用网络通信可比对不同机器上运行的算法。被测试算法程序对数据分析过程无感知,不影响业务,节省大规模集群测试算法调试与分析时间。
图6为根据本发明实施例的用于计算集群上分析算法程序数据处理的计算设备的结构框图。
如图6所示,计算设备600可以包括至少一个处理器610、存储器620、内存630、通信接口640以及内部总线650,并且至少一个处理器610、存储器620、内存630和通信接口640经由内部总线650连接在一起。该至少一个处理器610执行在计算机可读存储介质(即,存储器620)中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器620中存储有计算机可执行指令,当其执行时使得至少一个处理器610执行:接收算法程序运行至锚点处时异步发送的数据并保存在数据池中,其中,所述数据带有标识;从所述数据池获取指定标识的数据进行分析处理。
应该理解的是,在存储器620中存储的计算机可执行指令当执行时使得至少一个处理器610进行本发明的各个实施例中以上结合图1-5描述的各种操作和功能。
在本发明中,计算设备600可以包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、个人数字助理(PDA)、手持装置、消息收发设备、可佩戴计算设备、消费电子设备等等。
根据一个实施例,提供了一种例如非暂时性机器可读介质的程序产品。非暂时性机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本发明的各个实施例中以上结合图1-5描述的各种操作和功能。
具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD-RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
以上所述仅为本发明的实施例,并非因此限制本发明的权利要求保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明权利要求的保护范围内。
Claims (10)
1.一种分析算法程序数据的方法,其特征在于,包括:
后台程序在接收算法程序运行至锚点处时异步发送的数据并保存在数据池中,其中,所述数据带有标识;
从所述数据池获取指定标识的数据进行分析处理。
2.根据权利要求1所述的分析算法程序数据的方法,其特征在于,还包括:后台程序中的处理程序与所述数据池建立会话;
所述从所述数据池获取指定标识的数据进行分析处理,包括:所述处理程序通过所述会话从所述数据池获取指定的与所述会话对应标识的数据进行分析处理。
3.根据权利要求2所述的分析算法程序数据的方法,其特征在于,所述处理程序包括以热更新插件形式集成的分析策略。
4.根据权利要求1所述的计算集群上分析算法程序数据的方法,其特征在于,所述算法程序包括锚点,所述锚点为用于标记所跟踪的数据变量的单句代码。
5.根据权利要求1或4所述的分析算法程序数据的方法,其特征在于,包括锚点的算法程序在运行时自动与所述后台程序通信。
6.根据权利要求5所述的分析算法程序数据的方法,其特征在于,所述通信采用异步消息机制。
7.根据权利要求1所述的分析算法程序数据的方法,其特征在于,在从所述数据池获取指定标识的数据进行分析处理之后,还包括:将分析处理后得到的分析结果数据发送到所述数据池保存。
8.一种分析算法程序数据的装置,其特征在于,包括:
处理单元,用于控制后台程序在接收算法程序运行至锚点处时异步发送的数据并保存在数据池中,其中,所述数据带有标识;
分析单元,用于从所述数据池获取指定标识的数据进行分析处理。
9.一种计算设备,其特征在于,包括:
一个或多个处理器,以及
与所述一个或多个处理器耦合的存储器,所述存储器存储指令,当所述指令被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1到7中任一项所述的方法。
10.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有可执行指令,所述指令当被执行时使得所述机器执行如权利要求1到7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110841008.0A CN113312272B (zh) | 2021-07-26 | 2021-07-26 | 分析算法程序数据的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110841008.0A CN113312272B (zh) | 2021-07-26 | 2021-07-26 | 分析算法程序数据的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113312272A true CN113312272A (zh) | 2021-08-27 |
CN113312272B CN113312272B (zh) | 2022-07-01 |
Family
ID=77382298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110841008.0A Active CN113312272B (zh) | 2021-07-26 | 2021-07-26 | 分析算法程序数据的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113312272B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106339321A (zh) * | 2016-09-09 | 2017-01-18 | 腾讯科技(深圳)有限公司 | 一种应用程序性能测试方法及装置 |
US20180137161A1 (en) * | 2016-11-11 | 2018-05-17 | Sap Se | Data analysis schema and method of use |
CN110083610A (zh) * | 2019-04-29 | 2019-08-02 | 百度在线网络技术(北京)有限公司 | 数据处理方法、装置、系统、可信计算装置、设备和介质 |
-
2021
- 2021-07-26 CN CN202110841008.0A patent/CN113312272B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106339321A (zh) * | 2016-09-09 | 2017-01-18 | 腾讯科技(深圳)有限公司 | 一种应用程序性能测试方法及装置 |
US20180137161A1 (en) * | 2016-11-11 | 2018-05-17 | Sap Se | Data analysis schema and method of use |
CN110083610A (zh) * | 2019-04-29 | 2019-08-02 | 百度在线网络技术(北京)有限公司 | 数据处理方法、装置、系统、可信计算装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113312272B (zh) | 2022-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102493449B1 (ko) | 엣지 컴퓨팅 테스트 방법, 장치, 전자 장치 및 컴퓨터 판독 가능 매체 | |
US10909028B1 (en) | Multi-version regression tester for source code | |
CN107979508B (zh) | 微服务测试方法及装置 | |
WO2019085073A1 (zh) | 接口测试方法、装置、计算机设备和存储介质 | |
WO2019161619A1 (zh) | 接口自动化测试方法、装置、设备及计算机可读存储介质 | |
CN110750592B (zh) | 数据同步的方法、装置和终端设备 | |
CN108228444B (zh) | 一种测试方法和装置 | |
CN112799940B (zh) | 回归测试方法、装置、计算机系统和计算机可读存储介质 | |
CN110365724B (zh) | 任务处理方法、装置及电子设备 | |
US10268549B2 (en) | Heuristic process for inferring resource dependencies for recovery planning | |
US10452528B2 (en) | System and method for assisting a user in an application development lifecycle | |
CN111782519A (zh) | 测试方法、装置和电子设备 | |
CN112395202B (zh) | 接口自动化测试方法、装置、计算机设备和存储介质 | |
CN112631919A (zh) | 一种对比测试方法、装置、计算机设备及存储介质 | |
CN108595319B (zh) | 函数选取方法和服务器 | |
US20070245313A1 (en) | Failure tagging | |
CN111782520A (zh) | 测试方法、装置和电子设备 | |
CN114006815B (zh) | 云平台节点的自动化部署方法、装置、节点及存储介质 | |
CN113191889A (zh) | 风控配置方法、配置系统、电子设备及可读存储介质 | |
CN113360377A (zh) | 一种测试方法和装置 | |
CN113312272B (zh) | 分析算法程序数据的方法及装置 | |
CN112433953A (zh) | 基于网络游戏客户端的嵌入式自动化测试方法、装置、设备及介质 | |
CN112612706A (zh) | 自动化测试方法、计算机设备及存储介质 | |
CN111782518A (zh) | 测试方法、装置和电子设备 | |
CN114610413A (zh) | 基于Java的同异步任务的执行方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |