首页> 中国专利> 用于分布式视频智能分析平台的算力负载调度方法及装置

用于分布式视频智能分析平台的算力负载调度方法及装置

摘要

本说明书一个或多个实施例提供一种用于分布式视频智能分析平台的算力负载调度方法及装置,由于采用了实时算力资源的采集方法,使得负载调度计算结果能更实时、更准确;由于在算力负载调度计算过程中采用算法资源消耗估算与算法服务实时资源空闲率相结合的方法,使得负载调度算法的结果具有算法服务算力预估能力,保证了调度结果的可靠性;由于在算力负载调度计算过程中采用负载优先权值的计算与对比,实现了系统最优负载算法服务的选拔,使得用户算法调用计算响应速度更快,提高了用户体验。

著录项

  • 公开/公告号CN112905333A

    专利类型发明专利

  • 公开/公告日2021-06-04

    原文格式PDF

  • 申请/专利权人 招商新智科技有限公司;

    申请/专利号CN202110092033.3

  • 申请日2021-01-23

  • 分类号G06F9/50(20060101);

  • 代理机构11403 北京风雅颂专利代理有限公司;

  • 代理人王冰冰

  • 地址 100022 北京市朝阳区建国路118号五层

  • 入库时间 2023-06-19 11:16:08

说明书

技术领域

本说明书一个或多个实施例涉及算力负载调度技术领域,尤其涉及一种用于分布式视频智能分析平台的算力负载调度方法及装置。

背景技术

近些年来,随着机器学习与深度学习的快速发展,越来越多的产品通过应用图像分析技术变得更加自动化与智能化,例如人脸识别、车牌识别等。日益增长的用户端调用数量导致许多视频智能分析平台不堪重负,迫使很多平台产商通过提高硬件设施的性能或新增硬件服务器数量来应对,但这种应对方式不仅增加了平台的成本,又增加了平台维护的工作量。因此,研究一种能够对平台算力资源进行充分、灵活的调度方法对于视频智能分析平台在经济效益与资源节约方面具有较高的实用性。

常规的负载均衡调度主要实现两个主要目标:第一,将大量的并发访问或数据流量分担到多台节点设备上做并行处理,减少用户等待响应的时间;第二,避免单个节点重负载运算,使系统的处理能力得到大幅度提高。常规的负载均衡调度方法有轮循(RoundRobin)、最少连接数(Least Connection)、加权响应(Weighted Response)等,其中,轮循、最少连接数的方法适用于性能与资源消耗都相似的服务器,加权响应的方法实现复杂、不能够排除网络速度对于响应时间计算的影响。

对于视频智能分析平台而言,由于平台服务器上的各种图像分析算法对系统资源的占用不同,甚至同一种算法在一路与多路分析的情况下资源的占用情况都不是简单的根据数量递增叠加,因此,常规的通过连接计数或者响应时间计算的方式并不能真正解决视频智能分析平台算力的负载均衡调度问题。

发明内容

有鉴于此,本说明书一个或多个实施例的目的在于提出一种用于分布式视频智能分析平台的算力负载调度方法及装置,以解决视频智能分析平台算力的负载均衡调度的问题。

基于上述目的,本说明书一个或多个实施例提供了一种用于分布式视频智能分析平台的算力负载调度方法,包括:

配置不同类型算法、不同类型厂商对GPU显存消耗容量、内存消耗容量、CPU占用的估算数值,得出算法资源消耗信息;

采集算力资源数据,解析算法服务信息与资源状态数值,得到各算法服务对应的算力资源消耗信息;

获取用户的请求数据,基于所述算法资源消耗信息和所述算力资源消耗信息,判断各算法服务是否满足用户调用的负载能力,并得出当前的最优算法服务,返回算法服务标识。

优选地,在获取用户的请求数据后,本方法还包括:

对用户进行合法性验证;

若验证为不合法,则回复请求失败,若验证为合法,则提取用户的请求数据中的算法类型与算法厂商类型,执行下一步流程。

优选地,采集算力资源数据,解析算法服务信息与资源状态数值,得到各算法服务对应的算力资源消耗信息包括:

创建用于接收算力资源数据的HTTP服务;

系统中各算法服务定时通过算力资源数据接收RESTful接口推送算力资源数据;

接收算力资源数据后,解析算法服务信息与资源状态数值;

将算法服务信息与资源状态数值储存到生成的算力资源信息表中。

优选地,算法服务信息包括但不限于算法服务支持算法厂商类型列表和算法服务访问地址,所述资源状态数值包括但不限于GPU显存空闲容量、内存空闲容量和CPU占用率。

优选地,算法资源消耗信息包括各厂商的各算法类型对应的GPU显存消耗估值GM、内存容量消耗估值M和CPU占用率估值C0,所述算力资源消耗信息包括各算法服务对应的算法类型支持列表TList、厂商支持类型、CPU占用率C1、GPU显存空闲容量GMF和内存空闲容量MF,所述用户的请求数据中包含用户请求算法类型T0;

判断用户请求算法类型T0是否在所述算法类型支持列表Tlist中,若不包含则返回FALSE;

若包含则计算算法类型支持列表Tlist中支持用户请求算法类型T0的算法服务的估算CPU空闲利用率C_DIF=(CT-C0-C1)、估算GPU空闲显存容量GM_DIF=(GMF-GM)和估算空闲内存容量M_DIF=(MF-M),若C_DIF小于0或者GM_DIF小于0或者M_DIF小于0,则返回FALSE,否则判断为该算法服务满足用户调用的负载能力,其中CT为CPU占用率阈值。

优选地,得出当前的最优算法服务,返回算法服务标识包括:

输入满足用户调用的负载能力的算法服务的估算CPU空闲利用率C_DIF、估算GPU空闲显存容量GM_DIF和估算空闲内存容量M_DIF;

读取当前最优负载算法服务器资源空闲估算的CPU空闲率为BEST_C_DIF、GPU显存空闲容量BEST_GM_DIF、内存空闲容量BEST_M_DIF,比较GM_DIF与BEST_GM_DIF的大小,若GM_DIF小则返回FALSE,否则,计算输入的算法服务负载权值f=(C_DIFx0.7+M_DIF/1000x0.3),计算当前最优算法服务负载权值f_best=(BEST_C_DIFx0.7+BEST_M_DIF/1000x0.3),若f小于f_best则设置返回值为FALSE,否则设置返回值为TRUE,将输入的算法服务作为新的最优算法服务;

直至遍历所有满足用户调用的负载能力的算法服务,输出最优算法服务的算法服务标识。

优选地,本方法还包括:

根据返回的算法服务标识,生成算法服务访问授权信息,所述算法服务访问授权信息包括授权码、授权时间;

将授权码发送给对应的算法服务;

返回算法服务的访问RESTful接口地址与授权信息。

本说明书还提供了一种用于分布式视频智能分析平台的算力负载调度装置,包括:

算法资源消耗估算模块,用于配置不同类型算法、不同类型厂商对GPU显存消耗容量、内存消耗容量、CPU占用的估算数值,得出算法资源消耗信息;

算力资源消耗计算模块,用于采集算力资源数据,解析算法服务信息与资源状态数值,得到各算法服务对应的算力资源消耗信息;

算力负载调度分析模块,用于获取用户的请求数据,基于所述算法资源消耗信息和所述算力资源消耗信息,判断各算法服务是否满足用户调用的负载能力,并得出当前的最优算法服务,返回算法服务标识。

从上面所述可以看出,本说明书一个或多个实施例提供的用于分布式视频智能分析平台的算力负载调度方法及装置,由于采用了实时算力资源的采集方法,使得负载调度计算结果能更实时、更准确;由于在算力负载调度计算过程中采用算法资源消耗估算与算法服务实时资源空闲率相结合的方法,使得负载调度算法的结果具有算法服务算力预估能力,保证了调度结果的可靠性;由于在算力负载调度计算过程中采用负载优先权值的计算与对比,实现了系统最优负载算法服务的选拔,使得用户算法调用计算响应速度更快,提高了用户体验。

附图说明

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

图1为本说明书一个或多个实施例的算力负载调度方法流程示意图;

图2为本说明书一个或多个实施例的算力资源数据采集流程示意图;

图3为本说明书一个或多个实施例的用户请求处理流程示意图;

图4为本说明书一个或多个实施例的负载调度分析流程示意图;

图5为本说明书一个或多个实施例的负载能力预估算法示意图。

图6为本说明书一个或多个实施例的最优负载比对算法流程示意图;

图7为本说明书一个或多个实施例的算力负载调度装置整体架构示意图。

具体实施方式

为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,对本公开进一步详细说明。

需要说明的是,除非另外定义,本说明书一个或多个实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本说明书一个或多个实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。

本说明书一个或多个实施例提供一种用于分布式视频智能分析平台的算力负载调度方法,包括以下步骤:

S101配置不同类型算法、不同类型厂商对GPU显存消耗容量、内存消耗容量、CPU占用的估算数值,得出算法资源消耗信息,举例来说,可通过构建算法资源消耗估算表的方式对算法资源消耗信息进行存储,上述配置可根据用户的输入进行配置,如提供输入方法供用户输入。

S102采集算力资源数据,解析算法服务信息与资源状态数值,得到各算法服务对应的算力资源消耗信息;

作为一种实施方式,该步骤包括首先创建一个用于接收算力资源数据的HTTP服务,系统中各算法服务定时通过算力资源数据接收RESTful接口推送算力资源数据(算力资源数据以JSON协议的格式封装并放入HTTP协议的BODY字段中),系统接收算力资源数据之后,解析算法服务信息与资源状态数值,其中算法服务信息包括算法服务支持算法厂商类型列表,算法服务访问地址,资源状态数值包括GPU显存空闲容量、内存空闲容量、CPU占用率等;最后把算法服务信息与其资源状态数值存储到生成的算力资源信息表中,即通过算力资源信息表的方式对算力资源消耗信息进行存储。

S103获取用户的请求数据,基于所述算法资源消耗信息和所述算力资源消耗信息,判断各算法服务是否满足用户调用的负载能力,并得出当前的最优算法服务,返回算法服务标识。

作为一种实施方式,步骤103包括:

一、判断各算法服务是否满足用户调用的负载能力,若满足则继续进行最优算法服务的获取,若不满足则继续遍历下一个算法服务;

其中算法资源消耗信息包括各厂商的各算法类型对应的GPU显存消耗估值GM、内存容量消耗估值M和CPU占用率估值C0,所述算力资源消耗信息包括各算法服务对应的算法类型支持列表TList、厂商支持类型、CPU占用率C1、GPU显存空闲容量GMF和内存空闲容量MF,所述用户的请求数据中包含用户请求算法类型T0;

判断用户请求算法类型T0是否在所述算法类型支持列表Tlist中,若不包含则返回FALSE;

若包含则计算算法类型支持列表Tlist中支持用户请求算法类型T0的算法服务的估算CPU空闲利用率C_DIF=(CT-C0-C1)、估算GPU空闲显存容量GM_DIF=(GMF-GM)和估算空闲内存容量M_DIF=(MF-M),若C_DIF小于0或者GM_DIF小于0或者M_DIF小于0,则返回FALSE,否则判断为该算法服务满足用户调用的负载能力,其中CT为CPU占用率阈值。

二、得出当前的最优算法服务,返回算法服务标识,即对于满足用户调用的负载能力的算法服务,将其负载能力与当前的最优算法服务进行比对,若该算法服务的负载能力更有,则把该算法服务作为新的最优算法服务,返回其算法服务标识。

具体来说,包括:

输入满足用户调用的负载能力的算法服务的估算CPU空闲利用率C_DIF、估算GPU空闲显存容量GM_DIF和估算空闲内存容量M_DIF;

读取当前最优负载算法服务器资源空闲估算的CPU空闲率为BEST_C_DIF、GPU显存空闲容量BEST_GM_DIF、内存空闲容量BEST_M_DIF,比较GM_DIF与BEST_GM_DIF的大小,若GM_DIF小则返回FALSE,否则,计算输入的算法服务负载权值f=(C_DIFx0.7+M_DIF/1000x0.3),计算当前最优算法服务负载权值f_best=(BEST_C_DIFx0.7+BEST_M_DIF/1000x0.3),若f小于f_best则设置返回值为FALSE,否则设置返回值为TRUE,将输入的算法服务作为新的最优算法服务;

直至遍历所有满足用户调用的负载能力的算法服务,输出最优算法服务的算法服务标识。

作为一种实施方式,在获取用户的请求数据后,本方法还包括:

对用户进行合法性验证;

若验证为不合法,则回复请求失败,若验证为合法,则提取用户的请求数据中的算法类型与算法厂商类型,执行下一步流程。

在得到算法服务标识后,本方法还包括:

根据返回的算法服务标识,生成算法服务访问授权信息,所述算法服务访问授权信息包括授权码、授权时间;

将授权码发送给对应的算法服务;

返回算法服务的访问RESTful接口地址与授权信息。

本发明方法通过提供一种用于分布式视频智能分析平台的算力负载调度方法,由于采用了实时算力资源的采集方法,使得负载调度计算结果能更实时、更准确;由于在算力负载调度计算过程中采用算法资源消耗估算与算法服务实时资源空闲率相结合的方法,使得负载调度算法的结果具有算法服务算力预估能力,保证了调度结果的可靠性;由于在算力负载调度计算过程中采用负载优先权值的计算与对比,实现了系统最优负载算法服务的选拔,使得用户算法调用计算响应速度更快,提高了用户体验;由于算法服务通过RESTful接口向调度服务上报算力资源数据的方式,使得算法服务之间没有耦合性,算法服务集群的算法服务数量更容易扩展。

综上所述,本文提出的用于分布式视频智能分析平台的算力负载调度方法具有实时性强、准确性高、可靠性强,用户请求响应速度快,平台易扩展的优点。

本说明书还提供一种用于分布式视频智能分析平台的算力负载调度装置,包括:

算法资源消耗估算模块,用于配置不同类型算法、不同类型厂商对GPU显存消耗容量、内存消耗容量、CPU占用的估算数值,得出算法资源消耗信息;

算力资源消耗计算模块,用于采集算力资源数据,解析算法服务信息与资源状态数值,得到各算法服务对应的算力资源消耗信息;

算力负载调度分析模块,用于获取用户的请求数据,基于所述算法资源消耗信息和所述算力资源消耗信息,判断各算法服务是否满足用户调用的负载能力,并得出当前的最优算法服务,返回算法服务标识。

该装置的有益效果与上述方法相同,不再赘述。

下面以某公司的分布式架构视频分析平台为例,说明本发明方法的实施步骤。

某公司的视频分析平台采用了分布式架构,算法服务包括人脸识别算法服务、安全帽识别算法服务,服务器有A、B、C、D四台,其中,服务器A部署了人脸识别算法服务F1,服务器B部署人脸识别算法服务F2,服务器C部署了安全帽识别算法服务H1,服务器D部署了安全帽识别算法服务H2,平台需要实现较为实时、准确的获取平台内的某个负载算法服务给用户进行算法调用,并且保证用户的算法调用响应快、体验好。

使用本方法涉及的一种分布式视频智能分析平台算力负载调度方法实现了平台的算力调度需求,本方法主要包括算法资源消耗预估表构建、算力资源数据实时采集、用户请求处理、系统算力负载调度分析等过程。

第一步:本方法提供配置接口让平台管理者配置算法对资源消耗的估算数值,假设用户配置的人脸识别算法资源消耗估算数值如表1所示,系统将用户输入的算法资源消耗信息保存到JSON格式文件中。

表1

第二步:首先启动一个HTTP服务用于监听算法服务推送的算力资源数据,按照协议格式规范,算力资源数据以JSON协议格式文本的方式放在HTTP协议BODY中,算力资源数据分为两个部分,第一部分是算法服务信息,第二个部分是资源状态信息。

接收到人脸算法服务F1、F2与安全帽识别算法服务H1、H2推送的算力资源数据,经过数据解析后算力资源数据如表2所示,由于数据会实时更新,因此算力资源消耗信息存储在内存列表中。

表2

第三步:首先启动一个HTTP服务用于监听用户请求,按照用户协议格式规范,用户信息存放在HTPP协议头部的user字段中,其它请求参数以JSON协议格式文本的方式放在HTTP协议BODY中。

视频智能分析平台调度服务接收到三个用户请求分别为:reqest_1、reqest_2、reqest_3,用户请求数据如表3所示。

表3

经过协议解析之后,依次对reqest_1、reqest_2、reqest_3三个请求进行用户访问合法性验证,发现用户请求reqest_1的用户信息不符合系统授权规则,属于非法请求,立即回复reqest_1请求失败,再分别根据reqest_2、reqest_3用户请求的算法类型与厂商类型调用第四步的系统算力负载调度分析之后,获取到的结果如表4所示。

表4

从算力负载服务获取结果可以看出,用户请求reqest_2获取服务器失败,则系统立即回复用户请求reqest_2请求失败,用户请求reqest_3获取算力负载服务成功。

最后,生成授权码“task=1000,date=2019-10-10”,获取算法服务标识为server_h2的算法服务访问接口“http://10.19.155.207:10081/api/helmet/recog”,然后,向算法服务server_h2发送用户访问授权码,并回复用户请求,回复消息中携带算法服务访问授权码与访问接口地址。

第四步:算力负载调度分析包括几个具体步骤:首先,判断算法服务类型是否与用户请求的算法类型一致,其次,判断算法服务厂商支持列表是否包含用户请求的算法厂商类型,然后预估算法服务器算力资源是否够支持用户算法调用请求,最后比对查找系统当前时刻最优的负载算法服务。

一、针对用户请求reqest_2的负载调度计算过程:

a)用户请求算法类型为“facerecog”,由于算法服务H1与H2的算法类型为“helmetrecog”,因此算法服务H1与H2被排除。

b)用户请求算法厂商类型为“shangtang”,而算法服务F2不支持该厂商类型,因此排除算法服务F2被排除。

c)假设CPU占用率阈值CT=0.9,表1中的人脸识别算法“shangtang”的资源消耗估算数值CPU占用率C0=0.2,GUP显存容量GM=500、内存容量M=300,算法服务F1的资源状态数据CPU占用率为C1=0.6、GUP显存空闲容量GMF=400、内存空闲容量MF=1000,根据负载能力计算公式计算得出:C_DIF=0.1,GM_DIF=-100,M_DIF=100,由于GM_DIF小于0,说明GPU显存容量不够支持算法运行,因此F1算法服务被排除

d)由于服务F1、F2、H1、H2都不满足负载条件,因此返回FALSE。

二、针对用户请求reqest_3的负载调度计算过程:

a)算法类型支持判断:用户请求算法类型为“helmetrecog”,由于算法服务F1与F2的算法类型为“facerecog”,因此算法服务F1与F2被排除。

b)厂商类型支持判断:用户请求算法厂商类型为“yx”,算法服务H1、H2都支持该厂商类型

c)负载条件判断:假设CPU占用率阈值CT=0.9,表1中的安全帽识别算法“yx”的资源消耗估算数值CPU占用率C0=0.3,GUP显存容量GM=500、内存容量M=200。算法服务H1的资源状态数据CPU占用率为C1=0.5、GUP显存空闲容量GMF=550、内存空闲容量MF=800,根据负载能力计算公式计算得出:C_DIF=0.1,GM_DIF=50,M_DIF=600。算法服务H2的资源状态数据CPU占用率为C1=0.2、GUP显存空闲容量GMF=550、内存空闲容量MF=500,根据负载能力计算公式计算得出:C_DIF=0.4,GM_DIF=50,M_DIF=300。因此算法服务H1、H2否满足算法调用的负载条件。

d)最优负载算法服务比对:根据负载权值计算公式,算法服务H1负载权值f1=0.1*0.7+0.6*0.3=0.25,算法服务H2负载权值f2=0.4*0.7+0.3*0.3=0.37,由计算结果可以看出f1小于f2,因此算法服务H2为当前系统适用于用户请求的最优负载算法服务。

返回TRUE,并携带算法服务H2的服务编号H2。

综上所述,本方法研究的是适用于分布式视频智能分析平台的算力负载调度方法,本方法具体包括:算法资源消耗估算表构建、算力资源数据采集、系统算力负载调度分析、用户请求处理四个方面,其中,算法资源消耗估算表构建支持平台根据算法类型的不同配置其算力资源消耗预估数值,算力资源数据采集实现了自动化实时采集实各个算法服务器的算力资源使用数据,包括内存容量、GPU显存容量、CPU占用率等;系统算力负载调度分析实现了对用户请求需要算力的估算以及算法服务资源的分析比对,从而确定处理用户请求的最优负载算法服务;用户请求处理实现了对用户算法类型的提取、算力负载调度服务的获取、算法服务访问授权信息的生成与同步。本方法在实际应用中能够较好的实现视频智能分析平台的算力资源负载均衡。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本说明书一个或多个实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。

另外,为简化说明和讨论,并且为了不会使本说明书一个或多个实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本说明书一个或多个实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本说明书一个或多个实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本说明书一个或多个实施例。因此,这些描述应被认为是说明性的而不是限制性的。

本说明书一个或多个实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号