CN117472595B - 资源分配方法、装置、车辆、电子设备以及存储介质 - Google Patents
资源分配方法、装置、车辆、电子设备以及存储介质 Download PDFInfo
- Publication number
- CN117472595B CN117472595B CN202311824656.0A CN202311824656A CN117472595B CN 117472595 B CN117472595 B CN 117472595B CN 202311824656 A CN202311824656 A CN 202311824656A CN 117472595 B CN117472595 B CN 117472595B
- Authority
- CN
- China
- Prior art keywords
- target
- cluster
- clusters
- node
- computing system
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 174
- 238000013468 resource allocation Methods 0.000 title claims abstract description 29
- 230000008569 process Effects 0.000 claims description 117
- 238000004364 calculation method Methods 0.000 claims description 55
- 230000006870 function Effects 0.000 claims description 42
- 238000013507 mapping Methods 0.000 claims description 34
- 238000010586 diagram Methods 0.000 claims description 24
- 238000002955 isolation Methods 0.000 claims description 16
- 238000012360 testing method Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 7
- 238000000638 solvent extraction Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000004382 visual function Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例提供了一种资源分配方法、装置、车辆、电子设备以及存储介质,涉及自动驾驶技术领域,基于预设划分规则,将自动驾驶计算系统中的多个业务节点划分为多个聚类簇;聚类簇中包括一个或多个业务节点;针对多个聚类簇中的任一目标聚类簇,获取目标聚类簇对应的第一对应关系;第一对应关系用于表征计算单元数量与延时时间的对应关系;根据多个聚类簇对应的第一对应关系,确定各聚类簇对应的目标数量;目标数量用于表征聚类簇在运行时所使用的计算单元数量,各聚类簇对应的目标数量之和小于等于自动驾驶计算系统中的计算单元的总数量。这样,降低了自动驾驶计算系统的时延,实现了自动驾驶计算系统的实时性以及稳定性。
Description
技术领域
本发明属于自动驾驶技术领域,特别是涉及一种资源分配方法、装置、车辆、电子设备以及存储介质。
背景技术
在自动驾驶计算系统中,存在多个业务功能模块,如图像数据预处理、激光雷达数据预处理、定位、规划、控制等,多业务功能模块的负载均衡是指在多个计算设备或计算核之间均匀分配工作负载,这对于业务计算的性和稳定性具有重要意义。
相关技术中,对于业务功能模块在计算设备或计算核上的分配主要依据人工经验通过业务人员手动分配。
发明内容
为克服相关技术中存在的问题,本发明提供了一种资源分配方法、装置、车辆、电子设备以及存储介质。
第一方面,本发明提供了一种资源分配方法,应用于自动驾驶计算系统,所述方法包括:
基于预设划分规则,将所述自动驾驶计算系统中的多个业务节点划分为多个聚类簇;所述聚类簇中包括一个或多个业务节点;
针对所述多个聚类簇中的任一目标聚类簇,获取所述目标聚类簇对应的第一对应关系;所述第一对应关系用于表征所述目标聚类簇对应的节点进程运行时使用的计算单元数量与所述目标聚类簇对应的节点进程运行过程中的延时时间的对应关系;
根据所述多个聚类簇对应的第一对应关系,确定各所述聚类簇对应的目标数量,使所述自动驾驶计算系统的整体时延最小;所述目标数量用于表征所述聚类簇在运行时所使用的计算单元数量,各所述聚类簇对应的目标数量之和小于等于所述自动驾驶计算系统中的计算单元的总数量。
可选地,所述方法还包括:
基于目标工具,捕获所述多个业务节点的订阅话题以及发布话题;
基于所述订阅话题以及所述发布话题,构建所述多个业务节点对应的节点图关系。
可选地,所述基于预设划分规则,将所述自动驾驶计算系统中的多个业务节点划分为多个聚类簇,包括:
基于所述业务节点对应的业务特征以及所述节点图关系,将所述多个业务节点划分为所述多个聚类簇。
可选地,所述获取所述目标聚类簇对应的第一对应关系,包括:
获取所述目标聚类簇对应的节点进程分别基于至少两个资源组运行时对应的延时时间,得到多个第一延时时间;所述至少两个资源组中包含的计算单元的数量互不相同,且除计算单元外的其它设备资源的数量相同;
基于所述多个第一延时时间以及所述至少两个资源组对应的计算单元数量,确定所述目标聚类簇对应的第一对应关系。
可选地,所述获取所述目标聚类簇对应的节点进程分别基于至少两个资源组运行时对应的延时时间,得到多个第一延时时间,包括:
针对所述至少两个资源组中的任一目标资源组,基于所述目标资源组,运行所述目标聚类簇对应的节点进程;所述目标资源组是基于资源隔离工具对所述自动驾驶计算系统中的资源进行隔离得到的;
基于延时测试工具,获取所述目标聚类簇对应的第一延时时间。
可选地,所述方法还包括:
基于所述资源隔离工具,根据所述目标资源组定义的计算单元数量对所述自动驾驶计算系统中的资源进行划分,得到所述目标资源组。
可选地,所述基于所述多个第一延时时间以及所述至少两个资源组对应的计算单元数量,确定所述目标聚类簇对应的第一对应关系,包括:
将所述目标资源组对应的计算单元数量以及所述第一延时时间,确定为离散映射数据组;
获取所述至少两个资源组对应的至少两个离散映射数据组,并基于插值拟合函数,对所述至少两个离散映射数据组进行处理,得到所述目标聚类簇对应的第一对应关系。
可选地,所述根据所述多个聚类簇对应的第一对应关系,确定各所述聚类簇对应的目标数量,包括:
基于所述多个聚类簇对应的第一对应关系、所述自动驾驶计算系统中的计算单元的总数量以及所述多个聚类簇的总数量,确定在所述自动驾驶计算系统的整体时延最小的情况下,各所述聚类簇对应的目标数量。
可选地,所述根据所述多个聚类簇对应的第一对应关系,确定各所述聚类簇对应的目标数量,包括:
基于第一约束公式、所述多个聚类簇对应的第一对应关系以及第一目标公式,获取各所述聚类簇对应的目标数量。
可选地,所述第一约束公式定义的内容为:各所述聚类簇对应的节点进程使用的计算单元的总数量小于等于预设数量阈值;所述基于第一约束公式、所述多个聚类簇对应的第一对应关系以及第一目标公式,获取各所述聚类簇对应的目标数量包括:
在各所述聚类簇对应的节点进程使用的计算单元的总数量小于等于预设数量阈值的前提下,基于所述多个聚类簇对应的第一对应关系以及所述第一目标公式,确定各所述聚类簇对应的目标数量。
可选地,所述第一目标公式包括:
其中,用于表示所述第一对应关系,N用于表示所述多个聚类簇的总数量,/>用于表示为聚类簇i分配的计算单元的数量。
可选地,所述第一约束公式包括:
其中,B用于表示所述自动驾驶计算系统中的计算单元的总数量;用于表示为聚类簇i分配的计算单元的数量;N用于表示所述多个聚类簇的总数量。
可选地,所述各所述聚类簇对应的目标数量的求解过程满足以下条件:
其中,用于表示拉格朗日乘子,/>;/>用于表示为聚类簇i分配的计算单元的数量;B用于表示所述自动驾驶计算系统中的计算单元的总数量;N用于表示所述多个聚类簇的总数量。
可选地,所述方法还包括:
基于各所述聚类簇对应的目标数量,为各所述聚类簇绑定目标数量个计算单元。
可选地,在所述自动驾驶计算系统为分布式计算系统的情况下,所述方法还包括:
响应于任务启动指令,基于所述任务启动指令指示的目标数量个的索引标识,确定目标数量个待绑定计算单元;
将所述目标数量个待绑定计算单元与所述任务启动指令指示的指定聚类簇对应的待启动进程进行绑定;
启动所述待启动进程;启动后的所述待启动进程基于目标数量个待绑定计算单元运行。
可选地,所述节点图关系中包括节点名称以及节点关联关系,所述节点关联关系用于表征业务节点之间的话题订阅关系。
第二方面,本发明提供了一种资源分配装置,应用于自动驾驶计算系统,所述装置包括:
第一划分模块,用于基于预设划分规则,将所述自动驾驶计算系统中的多个业务节点划分为多个聚类簇;所述聚类簇中包括一个或多个业务节点;
第一获取模块,用于针对所述多个聚类簇中的任一目标聚类簇,获取所述目标聚类簇对应的第一对应关系;所述第一对应关系用于表征所述目标聚类簇对应的节点进程运行时使用的计算单元数量与所述目标聚类簇对应的节点进程运行过程中的延时时间的对应关系;
第一确定模块,用于根据所述多个聚类簇对应的第一对应关系,确定各所述聚类簇对应的目标数量,使所述自动驾驶计算系统的整体时延最小;所述目标数量用于表征所述聚类簇在运行时所使用的计算单元数量,各所述聚类簇对应的目标数量之和小于等于所述自动驾驶计算系统中的计算单元的总数量。
第三方面,本发明提供一种车辆,包括自动驾驶计算系统,所述自动驾驶计算系统用于执行上述第一方面中任一项所述的资源分配方法。
第四方面,本发明提供一种电子设备,包括:处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述第一方面中任一项所述的资源分配方法。
第五方面,本发明提供一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上述第一方面中任一项实施例中的资源分配方法中的步骤。
本发明实施例中,通过将多个业务节点划分为多个聚类簇,以聚类簇为单位进行后续的计算单元数量的计算,可以使得为聚类簇分配的计算单元的分配更加合理且更加实用。针对多个聚类簇中的任一目标聚类簇,获取目标聚类簇对应的第一对应关系,可以得到每个聚类簇对应的第一对应关系,也即得到每个聚类簇对应的计算单元数量与延时时间之间的对应关系,并基于多个聚类簇对应的第一对应关系,可以确定各聚类簇对应的目标数量,这样,可以实现在有限的资源约束(即自动驾驶系统中包含的计算单元的总数量)下,对计算单元进行有效分配使得自动驾驶计算系统中各业务节点在自动驾驶计算时的时延最低,降低了自动驾驶计算系统的时延,实现了自动驾驶计算系统的实时性以及稳定性。并且,通过自动化的确定各聚类簇对应的目标数量,无需人工介入,提高了计算单元分配效率以及自动驾驶计算系统的部署效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种资源分配方法的步骤流程图;
图2是本发明实施例提供的一种离散映射数据组的示意图;
图3是本发明实施例提供的一种第一对应关系对应的函数曲线示意图;
图4是本发明实施例提供的一种资源分配方法的具体步骤流程图;
图5是本发明实施例提供的一种资源分配装置的结构图;
图6是本发明实施例提供的一种电子设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例提供的一种资源分配方法的步骤流程图,应用于自动驾驶计算系统。
本发明实施例中,自动驾驶计算系统部署于车辆中,自动驾驶计算系统可以是由自动驾驶框架构建而成的计算系统,自动驾驶框架可以在异构分布式计算平台运行,将自动驾驶框架的多个业务模块和任务合理分配在各个计算设备上,实现高效、稳定的分布式自动驾驶计算系统。其中,自动驾驶框架可以包括Apollo及Autoware框架,本发明实施例对此不做限制。自动驾驶计算系统中可以包括多个业务功能模块,例如图像数据预处理、激光雷达数据预处理、定位、规划、控制等模块。自动驾驶计算系统可以是机器人操作系统(Robot Operating System,ROS)二代,即ROS2。ROS2是一个用于在不同进程间匿名的发布、订阅、传递信息的中间件。ROS2系统的核心部分是ROS网络(ROS Graph)。ROS网络是指在ROS系统中不同的业务节点间相互通信的连接关系。
在自动驾驶计算系统中,需要有明确的时延上界保障自动驾驶计算系统的正常运行。若时延较高,则各个业务功能模块对应的业务的时延会导致系统安全性和可靠性无法保障。通过合理将计算任务分配到不同的计算设备或计算核上,从而提升自动驾驶的稳定性,使自动驾驶系统更加可靠安全。
如图1所示,该方法可以包括:
步骤101、基于预设划分规则,将所述自动驾驶计算系统中的多个业务节点划分为多个聚类簇;所述聚类簇中包括一个或多个业务节点。
本发明实施例中,自动驾驶计算系统中包括多个业务节点,业务节点用于表征一个业务进程,一个业务节点可以是一个可执行文件,不同业务节点之间通过话题的订阅以及话题的发布进行消息传递。节点以及节点间通信实现了自动驾驶系统中的计算功能以及通信功能。一个节点可以负责一个单独的模块化功能,例如:一个节点负责控制车轮转动,一个节点负责从激光雷达获取数据、一个节点负责处理激光雷达的数据、一个节点负责定位等等。在自动驾驶系统中,不同的业务节点对于计算资源的需求程度可能是不同的,例如,有的业务节点的计算需求较低,相对应的其计算时延也较低;有的业务节点的计算需求较高,相应的,其计算时延也较高。因此,可以基于预设划分规则,将自动驾驶计算系统中的多个业务节点划分为多个聚类簇。其中,预设划分规则可以根据用户需求进行设定,示例性的,预设划分规则可以包括:将计算需求较低的多个业务节点划分为一个聚类簇,将计算需求较高的业务节点单独划分为一个聚类簇。也就是说,聚类簇中可以包括一个或多个业务节点。在将计算需求较低的多个业务节点划分为一个聚类簇的情况下,可以根据业务节点之间的关联关系进一步规范聚类簇的划分方式,例如:可以将关联关系较高的多个计算需求较低的业务节点划分为一个聚类簇。
步骤102、针对所述多个聚类簇中的任一目标聚类簇,获取所述目标聚类簇对应的第一对应关系;所述第一对应关系用于表征所述目标聚类簇对应的节点进程运行时使用的计算单元数量与所述目标聚类簇对应的节点进程运行过程中的延时时间的对应关系。
本发明实施例中,针对多个聚类簇中的任一目标聚类簇,获取目标聚类簇对应的第一对应关系。其中,目标聚类簇可以为多个聚类簇中的任一聚类簇,第一对应关系用于表征目标聚类簇在运行时使用的计算单元数量与运行过程对应的延时时间之间的对应关系,也就是说,第一对应关系可以表征目标聚类簇对应的节点进程运行时使用的计算单元数量与目标聚类簇对应的节点进程运行过程中的延时时间之间的对应关系。具体的,可以使得目标聚类簇基于不同数量的计算单元进行运行,并基于时延检测工具获取不同运行过程中的延时时间,基于不同数量的计算单元以及对应运行过程中的延时时间,确定多组离散映射数据组。基于多组离散映射数据组,构建计算单元数量与延时时间的连续映射关系,得到第一对应关系。针对多个聚类簇中的每个聚类簇,均获取各聚类簇对应的第一的对应关系。
步骤103、根据所述多个聚类簇对应的第一对应关系,确定各所述聚类簇对应的目标数量,使所述自动驾驶计算系统的整体时延最小;所述目标数量用于表征所述聚类簇在运行时所使用的计算单元数量,各所述聚类簇对应的目标数量之和小于等于所述自动驾驶计算系统中的计算单元的总数量。
本发明实施例中,在得到多个聚类簇对应的第一对应关系的情况下,由于自动计算系统中多个业务节点共同为自动驾驶功能提供相关信息,因此,可以根据自动驾驶系统中多个聚类簇对应的第一对应关系,为各聚类簇分配计算单元,使得分配计算单元后的多个聚类簇基于各自对应的计算单元的数量运行时的时延综合最小,进而使得自动驾驶计算系统整体的时延最小,以确保自动驾驶计算系统的计算实时性以及稳定性。其中,计算单元可以是处理器核,目标数量用于表征聚类簇在运行时所使用的计算单元数量,相应的,针对一个聚类簇分配的目标数量个聚类簇,即向聚类簇分配目标数量个处理器核。可以理解的是,由于自动驾驶计算系统中计算单元的数量有限,因此,各聚类簇对应的目标数量之和小于等于自动驾驶计算系统中的计算单元的总数量。
综上所述,本发明实施例中,通过将多个业务节点划分为多个聚类簇,以聚类簇为单位进行后续的计算单元数量的计算,可以使得为聚类簇分配的计算单元的分配更加合理且更加实用。针对多个聚类簇中的任一目标聚类簇,获取目标聚类簇对应的第一对应关系,可以得到每个聚类簇对应的第一对应关系,也即得到每个聚类簇对应的计算单元数量与延时时间之间的对应关系,并基于多个聚类簇对应的第一对应关系,可以确定各聚类簇对应的目标数量,这样,可以实现在有限的资源约束(即自动驾驶系统中包含的计算单元的总数量)下,对计算单元进行有效分配使得自动驾驶计算系统中各业务节点在自动驾驶计算时的时延最低,降低了自动驾驶计算系统的时延,实现了自动驾驶计算系统的实时性以及稳定性。并且,通过自动化的确定各聚类簇对应的目标数量,无需人工介入,提高了计算单元分配效率以及自动驾驶计算系统的部署效率。
可选地,本发明实施例还包括以下步骤:
步骤201、基于目标工具,捕获所述多个业务节点的订阅话题以及发布话题。
本发明实施例中,基于目标工具,针对多个业务节点,捕获各业务节点的订阅话题以及发布话题。在自动驾驶计算系统中,一个业务节点可以把消息发布(publish)在一个服务器上(或者云端),其他业务节点也从这个服务器订阅(subscribe)消息,这样消息就能够在业务节点之间并行地快速地传输。因此,捕获业务节点的订阅话题以及发布话题,即可以得到该业务节点与哪些业务节点之间存在数据传输关系,以及业务节点之间的关联关系。根据业务节点的订阅话题以及发布话题,还可以确定业务节点对应的数据流向关系。其中,目标工具可以是基于Linux跟踪工具套件(Linux Trace Toolkit-Next Generation,LTTng)Tracer的链式感知ROS评估工具(Chain-Aware ROS Evaluation Tool,CARET)。目标工具用于捕获业务节点发布以及订阅的话题信息。
步骤202、基于所述订阅话题以及所述发布话题,构建所述多个业务节点对应的节点图关系。
本发明实施例中,根据一个业务节点的订阅话题以及发布话题,可以获取该业务节点从哪些节点接收数据以及向哪些节点发送数据,也即该业务节点与哪些业务节点进行通信。因此,可以基于业务节点之间的通信关联关系,构建多个业务节点对应的节点图关系。具体的,可以根据各业务节点之间的订阅以及发布关系,自动生成节点图关系。其中,节点图关系中可以包括节点名称以及节点关联关系,节点关联关系用于表征业务节点之间的话题订阅关系。示例性的,假设业务节点A发布话题A,该话题A被业务节点B以及业务节点C订阅。并且业务节点A订阅有业务节点B发布的话题B以及业务节点D发布的话题C。则在节点图关系中,业务节点A与业务节点B、业务节点C以及业务节点D存在连接关系。
本发明实施例中,通过捕获多个业务节点之间的订阅话题以及发布话题,可以确定各业务节点之间存在的数据传输关系,进而获取业务节点之间的关联关系,并基于此构建阶段图关系,使得业务节点之间的关联关系结构化且可视化,便于在后续过程中对业务节点进行聚类。
可选地,步骤101可以包括以下步骤:
步骤301、基于所述业务节点对应的业务特征以及所述节点图关系,将所述多个业务节点划分为所述多个聚类簇。
本发明实施例中,在自动驾驶计算系统中包含许多节点,可以根据节点功能,将节点划分为系统功能以及业务功能。其中,系统功能的节点可以包括监控节点、仿真节点等,该类节点主要用于实现安全功能、可视化功能等系统功能,不实际参与自动驾驶系统的业务计算及决策。业务功能主要指传感器、感知、定位、规划、地图及控制等与实际自动驾驶业务相关的功能,由于功能节点,例如系统监控节点、仿真节点(RVIZ2),并不实际参与自动驾驶业务计算以及决策,因此,其节点的延时对自动驾驶计算的延迟较小。而对于业务功能的业务节点,在实际使用中,需使用分布式节点启动功能,将这些业务节点分配到异构分布式架构中的功能计算设备上。对于业务节点,部分业务节点之间的耦合关系较强,且话题订阅发布关系复杂,因此,可以基于业务节点对应的业务特征以及节点图关系,以此为标准,将多个业务节点划分为多个聚类簇。其中,业务节点对应的业务特征可以包括业务节点所实现的功能对应的计算需求,根据不同业务节点所实现的功能,可以判断该业务节点的计算需求是高或低。对于计算需求较低的业务节点,相应的,其计算时延也较低,若单独为该业务节点分配固定数量的计算资源,一定程度上会造成资源浪费。因此,可以将计算需求较低且基于节点图关系确定的存在耦合关系(关联关系)的多个业务节点聚类为一个聚类簇,为一个聚类簇同一分配计算资源。而针对计算需求较高的业务节点,可以将该业务节点单独聚类为一个聚类簇。
本发明实施例中,通过基于业务节点对应的业务特征以及节点图关系,将多个业务节点划分为多个聚类簇,可以以聚类簇为单位进行资源分配,在降低系统时延的同时,一定程度上提高了资源利用效率。
可选地,步骤102可以包括以下步骤:
步骤401、获取所述目标聚类簇对应的节点进程分别基于至少两个资源组运行时对应的延时时间,得到多个第一延时时间;所述至少两个资源组中包含的计算单元的数量互不相同,且除计算单元外的其它设备资源的数量相同。
本发明实施例中,目标聚类簇中可以包括一个或多个业务节点,相应的,目标聚类簇对应的节点进程可以包括一个业务节点对应的节点进程以及包括多个业务节点对应的多个节点进程的总节点进程。分别基于至少两个资源组,运行目标聚类簇对应的节点进程,并基于延时测试工具获取对应的延时时间,得到第一延时时间。每基于一个资源组运行目标聚类簇对应的节点进程,即可获取一个第一延时时间,分别基于至少两个资源组运行目标聚类簇对应的节点进程,可以得到至少两个第一延时时间。其中,至少两个资源组中包含的计算单元的数量互不相同且计算单元外的其它设备资源的数量相同。也就是说,预先设定至少两个资源组,每个资源组中基于控制变量法调整资源组内的计算单元数量,即计算单元数量作为变量,其它设备资源均保持不变。可以理解的是,在至少两个资源组运行目标聚类簇对应的节点进程之前,需要基于自动驾驶计算系统中的资源,预先进行资源组的划分。
步骤402、基于所述多个第一延时时间以及所述至少两个资源组对应的计算单元数量,确定所述目标聚类簇对应的第一对应关系。
本发明实施例中,基于多个第一延时时间以及至少两个资源组对应的计算单元数量,确定延时时间与计算单元数量对应的多组离散映射数据组,基于多组离散映射数据组,确定目标聚类簇对应的第一对应关系。示例性的,假设资源组A包含1个计算单元,资源组B包含2个计算单元,资源组C包含4个计算单元,资源组D包含8个计算单元,分别基于资源组A/B/C运行目标聚类簇对应的节点进程,则对应得到第一延时时间分别为45ms、20ms、16ms、16ms,则可以得到四组离散映射数据组,如图2所示。在得到多组离散映射数据组后,可以基于插值拟合函数将多组离散映射数据组进行插值拟合,得到目标聚类簇对应的第一对应关系。
本发明实施例中,通过基于至少两个资源组运行目标聚类簇对应的节点进程,获取对应的第一延时时间,并基于多个第一延时时间以及至少两个资源组对应的计算单元数量,确定第一对应关系。通过基于包含不同数量的计算单元的资源组运行节点进程,可以确定不同情况下的延时时间,进而根据计算单元的数量以及延时时间,确定计算单元的数量与延时时间的对应关系,为后续资源分配奠定了数据基础。
可选地,步骤401可以包括以下步骤:
步骤501、针对所述至少两个资源组中的任一目标资源组,基于所述目标资源组,运行所述目标聚类簇对应的节点进程;所述目标资源组是基于资源隔离工具对所述自动驾驶计算系统中的资源进行隔离得到的。
步骤502、基于延时测试工具,获取所述目标聚类簇对应的第一延时时间。
本发明实施例中,基于资源隔离工具,对自动驾驶计算系统中的资源进行隔离,得到目标资源组以及自动驾驶计算系统中除目标资源组外的第一资源组。其中,目标资源组用于执行目标聚类簇对应的节点进程,第一资源组用于质心自动驾驶计算系统中的其它进程。针对至少两个资源组中的任一目标资源组,基于目标资源组,运行目标聚类簇对应的节点进程。基于延时测试工具,获取目标聚类簇对应的目标进程基于目标资源组运行时对应的第一延时时间。其中,延时测试工具可以是CARET工具,本发明实施例对此不做限制。
可选地,在步骤501之前,本发明实施例可以包括以下步骤:
步骤601、基于所述资源隔离工具,根据所述目标资源组定义的计算单元数量对所述自动驾驶计算系统中的资源进行划分,得到所述目标资源组。
本发明实施例中,基于资源隔离工具,根据目标资源组定义的计算单元数量,对于租自动驾驶计算系统中的资源进行划分,得到目标资源组。具体的,可以预先定义至少两个资源组中包含的计算单元数量,利用资源隔离工具,基于目标资源组定义的计算单元数量,从自动驾驶计算系统中选择目标资源组定义的计算单元数量个计算单元以及其他设备资源,划分得到目标资源组。其中,资源隔离工具可以是控制组(Cgroup)工具。示例性的,可以利用资源隔离工具将目标资源组定义的计算单元数量个计算单元的索引标识以及目标聚类簇对应的节点进程的名称进行绑定,并查找目标聚类簇对应的节点进程的进程标识符(PID),在系统中目录/sys/fs/cgroup/cpuset/创建子目录,并将目标聚类簇对应的节点进程的进程标识符以及进程名作为子目录的目录名称,以完成目标资源组的资源分配以及与目标聚类簇对应的节点进程的绑定。在基于目标资源组运行目标聚类簇对应的节点进程的情况下,节点进程自动会受到定义在这个目标资源组中的限制规则的影响。
本发明实施例中,通过资源隔离工具,将目标聚类簇对应的节点进程与其它普通进程进行资源隔离,可以在不影响自动驾驶计算系统中其它普通进程同时也不被其它普通进程影响,确保基于目标资源组运行目标聚类簇对应的节点进程时对应的第一延时时间更精确。
可选地,步骤402可以包括以下步骤:
步骤4021、将所述目标资源组对应的计算单元数量以及所述第一延时时间,确定为离散映射数据组。
步骤4022、获取所述至少两个资源组对应的至少两个离散映射数据组,并基于插值拟合函数,对所述至少两个离散映射数据组进行处理,得到所述目标聚类簇对应的第一对应关系。
本发明实施例中,针对至少两个资源组中的任一目标资源组,将目标资源组对应的计算单元数量以及对应的第一延时时间,确定为一组离散映射数据组。将至少两个资源组对应的至少两个离散映射数据组,基于插值拟合函数,对至少两个离散映射数据组进行插值拟合处理,得到目标聚类簇对应的第一对应关系。其中,插值拟合函数具备单调递减的性质,且y>0。插值拟合函数可以根据需求进行选择,本发明实施例对此不做限制。
示例性的,插值拟合函数可以为:。
基于多个离散映射数据组,结合插值拟合函数,对多个离散映射数据组的数据进行连续平滑操作,构建计算单元数量和延时时间的连续映射关系,得到第一对应关系。示例性的,第一对应关系可以为函数,例如:如图3所示第一对应关系对应的函数曲线示意图。
本发明实施例中,通过多个离散映射数据组,基于插值拟合函数得到目标聚类簇对应的第一对应关系,可以基于较少量的样本数据,得到计算单元数量和延时时间的第一对应关系。
可选地,步骤103可以包括以下步骤:
步骤701、基于所述多个聚类簇对应的第一对应关系、所述自动驾驶计算系统中的计算单元的总数量以及所述多个聚类簇的总数量,确定在所述自动驾驶计算系统的整体时延最小的情况下,各所述聚类簇对应的目标数量。
本发明实施例中,为了确定各聚类簇对应的目标数量,在已知多个聚类簇对应的第一对应关系(即多个聚类簇对应的计算单元数量以及延时时间的关系)的情况下,若需要使得自动驾驶计算系统整体的时延最低,则需要在自动驾驶计算系统包含的计算单元的总数量的约束下,为各聚类簇分配计算单元,并基于多个聚类簇对应的第一对应关系,获取分配计算单元后的各聚类簇对应的延时时间,使得各聚类簇对应的延时时间之和最小。因此,在各聚类簇对应的延时时间之和最小,即自动驾驶计算系统的整体时延最小的情况下,为各聚类簇分配的计算单元的数量可以确定为目标数量。
本发明实施例中,基于多个聚类簇对应的第一对应关系、自动驾驶计算系统中的计算单元的总数量以及多个聚类簇的总数量,可以确定在系统时延最小的情况下,各聚类簇对应的目标数量。可以在保证系统时延最小的情况下,为各聚类簇分配并指定计算单元的目标数量,提高了有效资源情况下的系统时间延时最小化。
可选地,步骤103可以包括以下步骤:
步骤801、基于第一约束公式、所述多个聚类簇对应的第一对应关系以及第一目标公式,获取各所述聚类簇对应的目标数量。
本发明实施例中,基于第一约束公式、多个聚类簇对应的第一对应关系以及第一目标公式,获取各聚类簇对应的目标数量。其中,第一约束公式用于约束各聚类簇对应的目标数量之和应小于等于预设数量阈值,第一目标公式用于定义多个聚类簇对应的延时时间之和最小。
相应的,所述第一约束公式定义的内容为:各所述聚类簇对应的节点进程使用的计算单元的总数量小于等于预设数量阈值。则步骤801可以包括以下步骤:
步骤8011、在各所述聚类簇对应的节点进程使用的计算单元的总数量小于等于预设数量阈值的前提下,基于所述多个聚类簇对应的第一对应关系以及所述第一目标公式,确定各所述聚类簇对应的目标数量。
本发明实施例中,在各聚类簇对应的节点进程使用的计算单元的总数量小于等于预设数量阈值的约束下,基于多个聚类簇对应的第一对应关系以及第一目标公式,使得各聚类簇对应的延时时间之和最小,以确定各聚类簇对应的目标数量。其中,预设数量阈值小于等于自动驾驶计算系统中的计算单元的总数量,具体可以根据需求自行定义,本发明实施例对此不做限制。
示例性的,第一约束公式可以为:。
其中,B用于表示自动驾驶计算系统中的计算单元的总数量(或预设数量阈值);用于表示为聚类簇i分配的计算单元的数量;N用于表示多个聚类簇的总数量。
第一目标公式包括:。
其中,用于表示第一对应关系,N用于表示多个聚类簇的总数量,/>用于表示为聚类簇i分配的计算单元的数量。
在约束最优化问题中,可以使用拉格朗日对偶性将原始问题转换为对偶问题,通过解对偶问题而得到原始问题的解。首先,引进拉格朗日函数:
其中是拉格朗日乘子,且/>。
根据Karush-Kuhn-Tucker(KKT)条件,即非线性规划(nonlinear programming)最佳解的必要条件,则和/>是原始问题解的充分必要条件是/>和/>满足下面的条件:/>
其中,用于表示拉格朗日乘子,/>;/>用于表示为聚类簇i分配的计算单元的数量;B用于表示自动驾驶计算系统中的计算单元的总数量;N用于表示多个聚类簇的总数量。
本发明实施例中,基于第一约束公式以及第一目标公式进行求解,求解出不同,即第一对应关系的模拟曲线下的最优解/>,即目标数量个计算单元。在有限计算单元数量(预设数量阈值)的限制下所有聚类簇对应的节点进程时延和最小化,即/>达到最小值,实现有效资源情况下的时间延时最小化。
可选地,本发明实施例还可以包括以下步骤:
步骤901、基于各所述聚类簇对应的目标数量,为各所述聚类簇绑定目标数量个计算单元。
本发明实施例中,在确定了各聚类簇对应的目标数量之后,也就得到的为各聚类簇分配的计算单元的数量,可以使用ROS2分布式启动功能,通过设置每个聚类簇对应的节点进程的所属计算设备及计算单元(如CPU核),为不同的聚类簇对应的节点进程分配相应的计算资源,以实现自动驾驶计算系统的计算延时最小化。具体的,可以向各聚类簇对应的节点进程发送目标数量个计算单元对应的索引标识,以使得在聚类簇对应的节点进程启动时直接基于索引标识对应的目标数量个计算单元运行。
可选地,在所述自动驾驶计算系统为分布式计算系统的情况下,本发明实施例还包括以下步骤:
步骤1001、响应于任务启动指令,基于所述任务启动指令指示的目标数量个的索引标识,确定目标数量个待绑定计算单元。
本发明实施例中,分布式计算系统中包括多个计算设备,通过主设备向其他设备发送任务启动指令,任务启动指令中携带有计算单元对应的索引标识,任务启动指令用于指示基于索引标识对应的计算单元,在远程设备上启动指定聚类簇对应的节点进程。响应于任务启动指令,对任务启动指令进行解析,获取任务启动指令指示的计算单元对应的索引标识,基于索引标识,在多个计算单元中确定目标数量个待绑定计算单元。
步骤1002、将所述目标数量个待绑定计算单元与所述任务启动指令指示的指定聚类簇对应的待启动进程进行绑定。
本发明实施例中,解析任务启动指令,获取任务启动指令指示的指定聚类簇对应的待启动进程。将目标数量个待绑定计算单元与指定聚类簇对应的待启动进程进行绑定。
步骤1003、启动所述待启动进程;启动后的所述待启动进程基于目标数量个待绑定计算单元运行。
在将目标数量个待绑定计算单元与指定聚类簇对应的待启动进程进行绑定之后,启动待启动进程,启动后的待启动进程基于目标数量个待绑定计算单元运行。
通过将待绑定计算单元与待启动进程进行绑定,可以实现为不同进程分配不同的计算资源,以及在节点进程运行过程中计算单元的资源隔离。
本发明实施例中,通过响应于任务启动指令,将目标数量个待绑定计算单元与任务启动指令指示的待启动进程进行绑定随后启动待启动进程,可以使得各聚类簇对应的节点进程可以基于各自对应的目标数量个计算单元进行运行,进而使得分布式计算系统中的各节点进程共同运行时,分布式计算系统的延时时间最小,实现了有限计算资源下对计算资源进行高效分配,保证自动驾驶计算系统应用延时最低。
示例性的,图4示出了一种资源分配方法的具体步骤流程图,以图4的步骤为例,以下将结合自动驾驶框架Autoware.universe对本发明实施例做进一步详细描述。自动驾驶框架Autoware.universe是一个开源协作项目,可以兼容ROS2。该项目可供相关开发者进行自动驾驶相关的功能开发、算法验证。Autoware.universe主要模块包含传感器、感知、规划、控制、车机接口等模块。基于自动驾驶框架Autoware.universe构建自动驾驶计算系统,该自动驾驶计算系统为异构分布式计算系统,其计算单元包括4*Orin+X86 CPU,CPU与Orin的通信基于PCIE3.0/4.0*8。
基于异构分布式计算平台运行Autoware.universe自动驾驶框架,需要将感知、规划、控制、系统等业务模块中的ROS2业务节点编排到不同的计算设备上,并且需要为业务节点分配不同的计算资源,以实现资源合理分配,并且确保Autoware.universe的端到端延时最小,以保证自动驾驶计算系统的实时性和稳定性。
1、节点图关系生成,利用CARET工具捕获各业务节点的订阅话题以及发布话题,CARET工具是一个面向ROS2应用进行性能测量的工具,除能够进行ROS2业务节点的路径测试外,还能生成ROS2应用的节点图关系,生成的节点图关系可以包括节点名称以及节点间的话题订阅关系,具体参考示例可以如下所示,其中定义了路径名称、节点名称以及话题名称,通过该数据,能够有效将节点图关系进行结构化。
2、业务节点聚类。Autoware.universe自动驾驶框架运行ROS2节点数量超过100个,对于功能节点,主要将其编排至X86平台进行计算;除功能节点外,Autoware.universe中的业务节点,主要分类为感知、控制、传感器、定位、地图、规划等节点,基于各业务节点对应的业务特征以及节点图关系,将多个业务节点划分为多个聚类簇。示例性的,聚类簇可以包括以下结果:
3、确定多个聚类簇对应的第一对应关系。基于聚类后的业务节点形成的聚类簇,针对每个聚类簇进行性能测试,即基于不同数量的CPU核测试聚类簇对应的节点进程的延时时间,以得到CPU核数量与延时时间之间的第一对应关系。针对任一聚类簇,获取该聚类簇对应的节点进程分别基于至少两个资源组运行时对应的延时时间,得到多个第一延时时间,基于多个第一延时时间以及至少两个资源组中包含的计算单元的数量,确定该聚类簇对应的第一对应关系。具体的,在得到多个由第一延时时间以及资源组中包含的计算单元的数量构成的离散映射数据组的情况下,基于多个离散映射数据组,基于插值拟合函数进行差值拟合。示例性的,拟合后函数映射关系如下方程表示,其中a为0.0633,b为-0.109,拟合相关系数为0.99,表明曲线精准拟合离散数据。
4、优化目标求解。基于多个聚类簇对应的第一对应关系,确定各聚类簇对应的目标数量。Autoware.universe计算框架中,不同ROS2业务节点对于计算资源的需求不同,在有限计算资源,即4*Orin+X86 CPU平台下,给不同ROS2业务节点分配不同的计算资源,实现有限计算资源下的节点计算时延最小化。
假设4*Orin计算节点的CPU核数共32个,聚类簇的数量共12个,因此,需对下述公式进行最优化求解:
其中,通过对上述公式求解,可求解出通模拟曲线下的最优解/>,即CPU核的目标数量,在有限CPU总核数限制下的所有进程时延和最小化,即/>达到最小值,实现有效资源情况下的时间延时最小化。
5、分布式启动。对于分布式异构计算平台4*Orin+X86 CPU,在进行分布式任务分配及启动时,响应于任务启动指令,将任务启动指令指示的索引标识对应的待绑定计算单元与任务启动指令指示的指定聚类簇对应的待启动进程进行绑定,并启动待启动进程。
图5是本发明实施例提供的一种资源分配装置的结构示意图,应用于自动驾驶计算系统。如图5所示,该装置具体可以包括:
第一划分模块1101,用于基于预设划分规则,将所述自动驾驶计算系统中的多个业务节点划分为多个聚类簇;所述聚类簇中包括一个或多个业务节点;
第一获取模块1102,用于针对所述多个聚类簇中的任一目标聚类簇,获取所述目标聚类簇对应的第一对应关系;所述第一对应关系用于表征所述目标聚类簇对应的节点进程运行时使用的计算单元数量与所述目标聚类簇对应的节点进程运行过程中的延时时间的对应关系;
第一确定模块1103,用于根据所述多个聚类簇对应的第一对应关系,确定各所述聚类簇对应的目标数量,使所述自动驾驶计算系统的整体时延最小;所述目标数量用于表征所述聚类簇在运行时所使用的计算单元数量,各所述聚类簇对应的目标数量之和小于等于所述自动驾驶计算系统中的计算单元的总数量。
可选地,该装置还包括:
第一捕获模块,用于基于目标工具,捕获所述多个业务节点的订阅话题以及发布话题;
第一构建模块,用于基于所述订阅话题以及所述发布话题,构建所述多个业务节点对应的节点图关系。
可选地,第一划分模块1101包括:
第一划分子模块,用于基于所述业务节点对应的业务特征以及所述节点图关系,将所述多个业务节点划分为所述多个聚类簇。
可选地,第一获取模块1102包括:
第一获取子模块,用于获取所述目标聚类簇对应的节点进程分别基于至少两个资源组运行时对应的延时时间,得到多个第一延时时间;所述至少两个资源组中包含的计算单元的数量互不相同,且除计算单元外的其它设备资源的数量相同;
第二确定模块,用于基于所述多个第一延时时间以及所述至少两个资源组对应的计算单元数量,确定所述目标聚类簇对应的第一对应关系。
可选地,第一获取子模块包括:
第一运行模块,用于针对所述至少两个资源组中的任一目标资源组,基于所述目标资源组,运行所述目标聚类簇对应的节点进程;所述目标资源组是基于资源隔离工具对所述自动驾驶计算系统中的资源进行隔离得到的;
第二获取子模块,用于基于延时测试工具,获取所述目标聚类簇对应的第一延时时间。
可选地,该装置还包括:
第二划分模块,用于基于所述资源隔离工具,根据所述目标资源组定义的计算单元数量对所述自动驾驶计算系统中的资源进行划分,得到所述目标资源组。
可选地,第二确定模块包括:
第一确定子模块,用于将所述目标资源组对应的计算单元数量以及所述第一延时时间,确定为离散映射数据组;
第三获取子模块,用于获取所述至少两个资源组对应的至少两个离散映射数据组,并基于插值拟合函数,对所述至少两个离散映射数据组进行处理,得到所述目标聚类簇对应的第一对应关系。
可选地,第一确定模块1103包括:
第二确定子模块,用于基于所述多个聚类簇对应的第一对应关系、所述自动驾驶计算系统中的计算单元的总数量以及所述多个聚类簇的总数量,确定在所述自动驾驶计算系统的整体时延最小的情况下,各所述聚类簇对应的目标数量。
可选地,第一确定模块1103包括:
第二获取模块,用于基于第一约束公式、所述多个聚类簇对应的第一对应关系以及第一目标公式,获取各所述聚类簇对应的目标数量。
可选地,所述第一约束公式定义的内容为:各所述聚类簇对应的节点进程使用的计算单元的总数量小于等于预设数量阈值;第二获取模块包括:
第三确定子模块,用于在各所述聚类簇对应的节点进程使用的计算单元的总数量小于等于预设数量阈值的前提下,基于所述多个聚类簇对应的第一对应关系以及所述第一目标公式,确定各所述聚类簇对应的目标数量。
可选地,所述第一目标公式包括:
其中,用于表示所述第一对应关系,所述N用于表示所述多个聚类簇的总数量,所述/>用于表示为聚类簇i分配的计算单元的数量。
可选地,所述第一约束公式包括:
其中,所述B用于表示所述自动驾驶计算系统中的计算单元的总数量;所述用于表示为聚类簇i分配的计算单元的数量;所述N用于表示所述多个聚类簇的总数量。
可选地,所述各所述聚类簇对应的目标数量的求解过程满足以下条件:
其中,所述用于表示拉格朗日乘子,/>;所述/>用于表示为聚类簇i分配的计算单元的数量;所述B用于表示所述自动驾驶计算系统中的计算单元的总数量;所述N用于表示所述多个聚类簇的总数量。
可选地,该装置还包括:
第一绑定模块,用于基于各所述聚类簇对应的目标数量,为各所述聚类簇绑定目标数量个计算单元。
可选地,在所述自动驾驶计算系统为分布式计算系统的情况下,该装置还包括:
第三确定模块,用于响应于任务启动指令,基于所述任务启动指令指示的目标数量个的索引标识,确定目标数量个待绑定计算单元;
第二绑定模块,用于将所述目标数量个待绑定计算单元与所述任务启动指令指示的指定聚类簇对应的待启动进程进行绑定;
第一启动模块,用于启动所述待启动进程;启动后的所述待启动进程基于目标数量个待绑定计算单元运行。
可选地,所述节点图关系中包括节点名称以及节点关联关系,所述节点关联关系用于表征业务节点之间的话题订阅关系。
本发明还提供了一种车辆,所述车辆包括自动驾驶计算系统,所述自动驾驶计算系统用于执行所述程序时实现前述实施例的资源分配方法。
本发明还提供了一种电子设备,参见图6,包括:处理器1201、存储器1202以及存储在所述存储器上并可在所述处理器上运行的计算机程序12021,所述处理器执行所述程序时实现前述实施例的资源分配方法。
本发明还提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述实施例的资源分配方法。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明的排序设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
需要指出的是,本申请中所有获取信号、信息或数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (18)
1.一种资源分配方法,其特征在于,应用于自动驾驶计算系统,所述方法包括:
基于预设划分规则,将所述自动驾驶计算系统中的多个业务节点划分为多个聚类簇;所述聚类簇中包括一个或多个业务节点;
针对所述多个聚类簇中的任一目标聚类簇,获取所述目标聚类簇对应的第一对应关系;所述第一对应关系用于表征所述目标聚类簇对应的节点进程运行时使用的计算单元数量与所述目标聚类簇对应的节点进程运行过程中的延时时间的对应关系;
根据所述多个聚类簇对应的第一对应关系,确定各所述聚类簇对应的目标数量,使所述自动驾驶计算系统的整体时延最小;所述目标数量用于表征所述聚类簇在运行时所使用的计算单元数量,各所述聚类簇对应的目标数量之和小于等于所述自动驾驶计算系统中的计算单元的总数量;
所述获取所述目标聚类簇对应的第一对应关系,包括:
获取所述目标聚类簇对应的节点进程分别基于至少两个资源组运行时对应的延时时间,得到多个第一延时时间;所述至少两个资源组中包含的计算单元的数量互不相同,且除计算单元外的其它设备资源的数量相同;
基于所述多个第一延时时间以及所述至少两个资源组对应的计算单元数量,确定所述目标聚类簇对应的第一对应关系;
所述基于所述多个第一延时时间以及所述至少两个资源组对应的计算单元数量,确定所述目标聚类簇对应的第一对应关系,包括:
将目标资源组对应的计算单元数量以及所述第一延时时间,确定为离散映射数据组;所述目标资源组是基于资源隔离工具对所述自动驾驶计算系统中的资源进行隔离得到的;
获取所述至少两个资源组对应的至少两个离散映射数据组,并基于插值拟合函数,对所述至少两个离散映射数据组进行处理,得到所述目标聚类簇对应的第一对应关系。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于目标工具,捕获所述多个业务节点的订阅话题以及发布话题;
基于所述订阅话题以及所述发布话题,构建所述多个业务节点对应的节点图关系。
3.根据权利要求2所述的方法,其特征在于,所述基于预设划分规则,将所述自动驾驶计算系统中的多个业务节点划分为多个聚类簇,包括:
基于所述业务节点对应的业务特征以及所述节点图关系,将所述多个业务节点划分为所述多个聚类簇。
4.根据权利要求1所述的方法,其特征在于,所述获取所述目标聚类簇对应的节点进程分别基于至少两个资源组运行时对应的延时时间,得到多个第一延时时间,包括:
针对所述至少两个资源组中的任一目标资源组,基于所述目标资源组,运行所述目标聚类簇对应的节点进程;
基于延时测试工具,获取所述目标聚类簇对应的第一延时时间。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
基于所述资源隔离工具,根据所述目标资源组定义的计算单元数量对所述自动驾驶计算系统中的资源进行划分,得到所述目标资源组。
6.根据权利要求1所述的方法,其特征在于,所述根据所述多个聚类簇对应的第一对应关系,确定各所述聚类簇对应的目标数量,包括:
基于所述多个聚类簇对应的第一对应关系、所述自动驾驶计算系统中的计算单元的总数量以及所述多个聚类簇的总数量,确定在所述自动驾驶计算系统的整体时延最小的情况下,各所述聚类簇对应的目标数量。
7.根据权利要求1所述的方法,其特征在于,所述根据所述多个聚类簇对应的第一对应关系,确定各所述聚类簇对应的目标数量,包括:
基于第一约束公式、所述多个聚类簇对应的第一对应关系以及第一目标公式,获取各所述聚类簇对应的目标数量。
8.根据权利要求7所述的方法,其特征在于,所述第一约束公式定义的内容为:各所述聚类簇对应的节点进程使用的计算单元的总数量小于等于预设数量阈值;所述基于第一约束公式、所述多个聚类簇对应的第一对应关系以及第一目标公式,获取各所述聚类簇对应的目标数量包括:
在各所述聚类簇对应的节点进程使用的计算单元的总数量小于等于预设数量阈值的前提下,基于所述多个聚类簇对应的第一对应关系以及所述第一目标公式,确定各所述聚类簇对应的目标数量。
9.根据权利要求7所述的方法,其特征在于,所述第一目标公式包括:
其中,用于表示所述第一对应关系,N用于表示所述多个聚类簇的总数量,/>用于表示为聚类簇i分配的计算单元的数量。
10.根据权利要求7所述的方法,其特征在于,所述第一约束公式包括:
其中,B用于表示所述自动驾驶计算系统中的计算单元的总数量;用于表示为聚类簇i分配的计算单元的数量;N用于表示所述多个聚类簇的总数量。
11.根据权利要求7所述的方法,其特征在于,所述各所述聚类簇对应的目标数量的求解过程满足以下条件:
其中,L()用于表示拉格朗日函数,用于表示拉格朗日乘子,/>;/>用于表示为聚类簇i分配的计算单元的数量;B用于表示所述自动驾驶计算系统中的计算单元的总数量;N用于表示所述多个聚类簇的总数量。
12.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于各所述聚类簇对应的目标数量,为各所述聚类簇绑定目标数量个计算单元。
13.根据权利要求1所述的方法,其特征在于,在所述自动驾驶计算系统为分布式计算系统的情况下,所述方法还包括:
响应于任务启动指令,基于所述任务启动指令指示的目标数量个的索引标识,确定目标数量个待绑定计算单元;
将所述目标数量个待绑定计算单元与所述任务启动指令指示的指定聚类簇对应的待启动进程进行绑定;
启动所述待启动进程;启动后的所述待启动进程基于目标数量个待绑定计算单元运行。
14.根据权利要求2所述的方法,其特征在于,所述节点图关系中包括节点名称以及节点关联关系,所述节点关联关系用于表征业务节点之间的话题订阅关系。
15.一种资源分配装置,其特征在于,应用于自动驾驶计算系统,所述装置包括:
第一划分模块,用于基于预设划分规则,将所述自动驾驶计算系统中的多个业务节点划分为多个聚类簇;所述聚类簇中包括一个或多个业务节点;
第一获取模块,用于针对所述多个聚类簇中的任一目标聚类簇,获取所述目标聚类簇对应的第一对应关系;所述第一对应关系用于表征所述目标聚类簇对应的节点进程运行时使用的计算单元数量与所述目标聚类簇对应的节点进程运行过程中的延时时间的对应关系;
第一确定模块,用于根据所述多个聚类簇对应的第一对应关系,确定各所述聚类簇对应的目标数量,使所述自动驾驶计算系统的整体时延最小;所述目标数量用于表征所述聚类簇在运行时所使用的计算单元数量,各所述聚类簇对应的目标数量之和小于等于所述自动驾驶计算系统中的计算单元的总数量;
所述第一获取模块包括:
第一获取子模块,用于获取所述目标聚类簇对应的节点进程分别基于至少两个资源组运行时对应的延时时间,得到多个第一延时时间;所述至少两个资源组中包含的计算单元的数量互不相同,且除计算单元外的其它设备资源的数量相同;
第二确定模块,用于基于所述多个第一延时时间以及所述至少两个资源组对应的计算单元数量,确定所述目标聚类簇对应的第一对应关系;
所述第二确定模块包括:
第一确定子模块,用于将目标资源组对应的计算单元数量以及所述第一延时时间,确定为离散映射数据组;所述目标资源组是基于资源隔离工具对所述自动驾驶计算系统中的资源进行隔离得到的;
第三获取子模块,用于获取所述至少两个资源组对应的至少两个离散映射数据组,并基于插值拟合函数,对所述至少两个离散映射数据组进行处理,得到所述目标聚类簇对应的第一对应关系。
16.一种车辆,其特征在于,所述车辆包括自动驾驶计算系统,所述自动驾驶计算系统用于执行如权利要求1-14中任一所述的资源分配方法。
17.一种电子设备,其特征在于,包括:
处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1-14中任一所述的资源分配方法。
18.一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行权利要求1-14中一个或多个所述的资源分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311824656.0A CN117472595B (zh) | 2023-12-27 | 2023-12-27 | 资源分配方法、装置、车辆、电子设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311824656.0A CN117472595B (zh) | 2023-12-27 | 2023-12-27 | 资源分配方法、装置、车辆、电子设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117472595A CN117472595A (zh) | 2024-01-30 |
CN117472595B true CN117472595B (zh) | 2024-03-22 |
Family
ID=89624189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311824656.0A Active CN117472595B (zh) | 2023-12-27 | 2023-12-27 | 资源分配方法、装置、车辆、电子设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117472595B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021238306A1 (zh) * | 2020-05-25 | 2021-12-02 | 华为技术有限公司 | 一种激光点云的处理方法及相关设备 |
CN115756793A (zh) * | 2022-11-17 | 2023-03-07 | 南京地平线集成电路有限公司 | 任务调度的处理方法、装置、电子设备和存储介质 |
CN116340793A (zh) * | 2023-04-06 | 2023-06-27 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备以及可读存储介质 |
CN116775431A (zh) * | 2023-06-20 | 2023-09-19 | 苏州浪潮智能科技有限公司 | 自动驾驶应用计算性能测量方法、装置、设备和存储介质 |
CN117011397A (zh) * | 2022-10-20 | 2023-11-07 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备、可读存储介质及程序产品 |
CN117234733A (zh) * | 2023-09-28 | 2023-12-15 | 苏州元脑智能科技有限公司 | 一种分布式系统任务分配方法、系统、存储介质及设备 |
-
2023
- 2023-12-27 CN CN202311824656.0A patent/CN117472595B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021238306A1 (zh) * | 2020-05-25 | 2021-12-02 | 华为技术有限公司 | 一种激光点云的处理方法及相关设备 |
CN117011397A (zh) * | 2022-10-20 | 2023-11-07 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备、可读存储介质及程序产品 |
CN115756793A (zh) * | 2022-11-17 | 2023-03-07 | 南京地平线集成电路有限公司 | 任务调度的处理方法、装置、电子设备和存储介质 |
CN116340793A (zh) * | 2023-04-06 | 2023-06-27 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备以及可读存储介质 |
CN116775431A (zh) * | 2023-06-20 | 2023-09-19 | 苏州浪潮智能科技有限公司 | 自动驾驶应用计算性能测量方法、装置、设备和存储介质 |
CN117234733A (zh) * | 2023-09-28 | 2023-12-15 | 苏州元脑智能科技有限公司 | 一种分布式系统任务分配方法、系统、存储介质及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN117472595A (zh) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110851529B (zh) | 算力调度方法及相关设备 | |
CN106776005B (zh) | 一种面向容器化应用的资源管理系统及方法 | |
CN110290189B (zh) | 一种容器集群管理方法、装置及系统 | |
Talaat et al. | Effective scheduling algorithm for load balancing in fog environment using CNN and MPSO | |
CN111352711B (zh) | 多计算引擎调度方法、装置、设备及存储介质 | |
CN115543577B (zh) | 基于协变量的Kubernetes资源调度优化方法、存储介质及设备 | |
CN115134371A (zh) | 包含边缘网络算力资源的调度方法、系统、设备及介质 | |
CN115914392A (zh) | 算力网络资源调度方法及系统 | |
CN112698952A (zh) | 计算资源统一管理方法、装置、计算机设备及存储介质 | |
CN116126488A (zh) | 一种服务器无感知计算自适应资源调度方法、系统及计算机设备 | |
CN114172814B (zh) | 一种意图驱动卫星网络资源管理三协模型构建方法及应用 | |
CN116708451A (zh) | 一种边云协同调度方法及系统 | |
CN113010296B (zh) | 基于形式化模型的任务解析与资源分配方法及系统 | |
Syamala et al. | Big data analytics for dynamic network slicing in 5G and beyond with dynamic user preferences | |
CN117472595B (zh) | 资源分配方法、装置、车辆、电子设备以及存储介质 | |
CN117787550A (zh) | 基于增量计算模型的指标处理方法、装置及电子设备 | |
CN117149445A (zh) | 一种跨集群负载均衡方法及装置、设备及存储介质 | |
CN112600936A (zh) | 一种云计算系统服务的量化和评估方法 | |
CN108770014B (zh) | 网络服务器的计算评估方法、系统、装置及可读存储介质 | |
CN117014389A (zh) | 算网资源配置方法及系统、电子设备、存储介质 | |
CN116955148A (zh) | 业务系统测试方法、装置、设备、存储介质及产品 | |
Eyckerman et al. | Distributed task placement in the fog: a positioning paper | |
CN115037625B (zh) | 网络切片处理方法、装置、电子设备及可读存储介质 | |
WO2023035147A1 (en) | Data processing method of industry edge product and distributed computing protocol engine thereof | |
CN117973820B (zh) | 基于人工智能的任务动态分配系统及方法 |
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 |