CN112000458A - 汽车计算任务配置给有异构能力的联网设备的方法和装置 - Google Patents
汽车计算任务配置给有异构能力的联网设备的方法和装置 Download PDFInfo
- Publication number
- CN112000458A CN112000458A CN202010115924.1A CN202010115924A CN112000458A CN 112000458 A CN112000458 A CN 112000458A CN 202010115924 A CN202010115924 A CN 202010115924A CN 112000458 A CN112000458 A CN 112000458A
- Authority
- CN
- China
- Prior art keywords
- task
- implementation
- job
- computing resources
- implementations
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 35
- 238000004891 communication Methods 0.000 claims description 44
- 238000012545 processing Methods 0.000 claims description 42
- 230000003068 static effect Effects 0.000 claims description 8
- 230000001413 cellular effect Effects 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 5
- 238000003491 array Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 23
- 230000008569 process Effects 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 9
- 238000013500 data storage Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000002485 combustion reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000005485 electric heating Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 102000054765 polymorphisms of proteins Human genes 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- 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/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
- G06F9/5038—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 considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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
- G06F9/5044—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 considering hardware capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/40—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/40—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
- H04W4/44—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for communication between vehicles and infrastructures, e.g. vehicle-to-cloud [V2C] or vehicle-to-home [V2H]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/40—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
- H04W4/46—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for vehicle-to-vehicle communication [V2V]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5013—Request control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Traffic Control Systems (AREA)
Abstract
一种用于向具有异构能力的联网计算资源动态分配计算任务的任务配置系统,包括:具有多个任务的任务库,每个任务是应用的多个不同实现中的一个,其中应用的不同实现在执行期间提供不同水平的准确性和资源使用,其中不同实现基于执行期间准确性水平和资源使用之间的权衡来配置;以及实时安排器模块,其被配置为监测可用的计算资源和与计算资源的连接性,接收多个任务请求,在执行任务时对要执行的应用进行优先级排序,其中更关键的应用被分配更高的优先级,将计算资源分配给更高优先级的应用,将剩余的计算资源分配给其他应用,以及以最大化整体效用的方式选择应用的具体实现以分配给具体的计算资源。
Description
技术领域
本专利文件中描述的技术一般涉及计算机系统,更具体地说,涉及分布式处理系统。
背景技术
车辆正在成为车轮上的数据中心。车辆可以包含复杂的处理单元,包括中央处理器(CPU)、图形处理器(GPU)、现场可编程门阵列(FPGA)和其他处理元件。对车载网络和车辆对车辆/车辆对基础设施(V2V/V2I)通信支持的需求日益增长。随着专用短程通信(DSRC)、Wi-Fi和蜂窝无线网络(例如,LTE)的出现,车辆可以更好地访问非车载资源,例如非车载计算资源(例如,边缘和云设备)和非车载传感器(例如,来自其他车辆、交通摄像机等)。)。
因此,期望提供一种实时分布式处理框架,用于辅助增加的处理需求。此外,结合附图和本发明的背景,从本发明的后续详细描述和所附权利要求中,本发明的其他期望特征和特性将变得显而易见。
发明内容
提供了用于将汽车计算任务分配给具有异构能力的联网设备的系统和方法。在一个实施例中,一种用于将原子计算任务动态分配给具有异构能力的联网计算资源套件的任务配置系统包括:具有多个任务的任务库,每个任务是应用的多个不同实现中的一个,其中应用的不同实现在执行期间提供不同水平的准确性和资源使用,其中不同实现基于执行期间准确性水平和资源使用之间的权衡来配置;实时安排器模块,包括由非瞬态计算机可读介质上的编程指令配置的一个或多个处理器,该安排器模块被配置为监测可用的计算资源和与计算资源的连接性,接收多个任务请求,其中任务请求是针对执行而请求的作业的规范,当执行作业时,对要执行的应用进行优先级排序,其中更关键的应用被分配了更高优先级,将计算资源分配给更高优先级的应用,将剩余的计算资源配置给其他应用,并以最大化整体效用的方式选择应用的具体实现以分配给具体的计算资源;以及调配器模块,其包括由非瞬态计算机可读介质上的编程指令配置的一个或多个处理器,该调配器模块被配置为将所分配的应用的具体实现调配到其所分配的计算资源以供执行。
在一个实施例中,联网计算设备套件包括板载硬件和一个或多个移动设备、边缘设备和基于云的服务器。
在一个实施例中,计算资源包括中央处理器(CPU)、图形处理器(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)和现场可编程门阵列(FPGA)中的一个或多个。
在一个实施例中,实时安排器模块被配置为:执行贪婪算法以确定应用的具体实现到具体计算资源的分配;并输出具体实现对具体计算资源的经确定分配。
在一个实施例中,贪婪算法被配置为:基于效用对作业实现划分等级,其中效用最高的作业实现被排在第一;以及在最佳可用节点处按等级顺序一个接一个地安排作业实现,其中如果还没有安排作业的其他实现并且最佳可用节点能够执行一作业实现,则安排所述作业实现。
在一个实施例中,贪婪算法被配置为:枚举所有可能的作业组合,其中每个可能的作业组合被称为捆绑束;确定潜在的捆绑束-节点对;计算每个潜在捆绑束-节点对的效用测量;按照效用顺序对捆绑束-节点对进行排序,效用最高的捆绑束-节点对位于第一位;并且一个接一个地安排捆绑束,直到已经分配了所有节点或者已经安排了所有作业,其中所分配的捆绑束不能包含相同作业的实现。
在一个实施例中,任务配置系统还包括包含每个应用实现的任务简档的任务简档数据库,任务简档包括关于任务的静态和动态数据,包括资源使用、延迟和可靠性,其中当选择应用的具体实现以分配给具体计算资源时,任务简档可由安排器模块访问。
在一个实施例中,任务配置系统还包括被配置为跟踪设备及其可用计算资源的资源监测器,其中实时安排器模块被配置为经由资源监测器提供的信息来监测可用计算资源。
在一个实施例中,任务配置系统还包括被配置为收集关于通信信道和设备速度的统计数据的执行监测器。
在一个实施例中,任务配置系统还包括通信管理器,该通信管理器被配置为管理提供计算机资源的设备之间的通信链路,该通信链路使用多个专用短程通信(DSRC)、蜂窝无线网络(例如,LTE、5G或其他)、以太网、无线局域网(WLAN))和控制器局域网(CAN)来实现。
在另一个实施例中,提供了一种车辆中的处理器实现的方法,用于将汽车计算任务动态配置给具有异构能力的联网计算资源套件。该方法包括:由车辆中的处理器接收通过计算资源执行作业的任务请求;由处理器监测计算资源的状态和与计算资源的连接性;由处理器识别用于安排的具体任务实现;由处理器将具体任务实现安排到具体计算资源;由处理器从任务库中检索已经被安排的具体任务实现;以及由处理器将用于执行的具体任务实现分配给具体计算资源。
在一个实施例中,计算资源包括中央处理单元(CPU)、图形处理器单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)和现场可编程门阵列(FPGA)中的一个或多个,并且计算资源位于车辆上的多个计算设备、边缘计算设备和基于云的计算设备中。
在一个实施例中,监测包括跟踪计算设备及其可用的计算资源,并收集关于通信信道和计算设备速度的统计数据。
在一个实施例中,从任务简档数据库中识别具体任务实现,该任务简档数据库包括关于任务的静态和动态数据,包括资源使用、延迟和可靠性。
在一个实施例中,基于关于任务、可用资源、通信信道和设备速度的静态和动态数据来安排具体任务实现。
在一个实施例中,将具体任务实现安排到具体计算资源包括运行安排算法以将作业分配给设备来执行,其中安排算法包括基于ILP的算法或贪婪算法。
在一个实施例中,安排算法包括贪婪算法;贪婪算法被配置为基于效用等级对任务实现进行排序,其中具有最高效用的任务实现被给予最高等级;并且贪婪算法被配置为在最佳可用计算资源处以等级顺序一个接一个地安排任务实现,其中如果还没有安排任务的其他实现并且最佳可用节点能够执行一任务实现,则安排所述任务实现。
在一个实施例中,安排算法包括贪婪算法,并且该贪婪算法被配置为:枚举应用实现的所有可能组合,其中每个组合被称为捆绑束;计算每个捆绑束-节点对的效用;按照效用顺序对捆绑束-节点对进行排序,效用最高的捆绑束-节点对位于第一位;并且一个接一个地安排捆绑束,直到已经分配了所有节点或者已经安排了所有作业,其中所分配的捆绑束不能包含相同作业的实现。
在一个实施例中,任务库包括不同任务实现的二进制文件,并且不同任务实现提供各种任务实现选项。
在另一个实施例中,提供了一种车辆。该车辆包括:多个计算资源;包括多个任务的任务库,每个任务是应用的多个不同实现中的一个,其中应用的不同实现在执行期间提供不同水平的准确性和资源使用,其中不同实现基于执行期间准确性水平和资源使用之间的权衡来配置;实时安排器模块,包括由非瞬态计算机可读介质上的编程指令配置的一个或多个处理器,该安排器模块被配置为监测可用计算资源和与计算资源的连接性,接收执行多个应用的作业请求,对应用进行优先级排序,将计算资源分配给更高优先级的应用,其中更关键的应用分配更高优先级,将剩余的计算资源分配给其他应用,以及以最大化整体效用的方式选择应用的具体实现以分配给具体计算资源;以及调配器模块,其包括由非瞬态计算机可读介质上的编程指令配置的一个或多个处理器,该调配器模块被配置为将所分配的应用的具体实现调配到它们的被分配的计算资源,以供执行。
附图说明
下文将结合以下附图描述示例性实施例,其中相同的数字表示相同的元件,并且其中:
图1A是显示根据各种实施例的示例计算环境的框图;
图1B是根据各种实施例的显示了示例计算环境中的示例车辆并示出处理模块相对于示例车辆可以位于的各种层级的图;
图2显示了根据各种实施例的包括任务配置系统的示例车辆;
图3是描述根据各种实施例的任务配置系统的示例环境的框图;
图4A和图4B是根据各种实施例的示例操作场景的图,其示出了提供应用的不同实现的潜在益处;
图5A和5B是示出根据各种实施例使用示例贪婪算法来安排应用实现以供执行的图;
图6是示出根据各种实施例的当使用示例贪婪算法安排作业时使用的示例作业和示例作业包的图;
图7A和7B是示出根据各种实施例使用示例性贪婪算法对捆绑束到节点(例如,计算资源)进行排序和安排的图;
图8是示出根据各种实施例的示例任务配置系统的示例环境中的示例组成部分的示例流程图;和
图9是描述根据各种实施例的示例任务配置系统中的示例过程的过程流程图。
具体实施方式
以下详细描述本质上仅是示例性的,并不旨在限制应用和使用。此外,不打算受前述技术领域、背景技术、发明内容或以下具体实施方式中呈现的任何明示或暗示的理论的约束。如这里所使用的,术语“模块”是指任何硬件、软件、固件、电子控制组件、处理逻辑和/或处理器设备,单独地或以任何组合,包括但不限于:专用集成电路(ASIC)、现场可编程门阵列(FPGA)、电子电路、执行一个或多个软件或固件程序的处理器(共享的、专用的或成组的)和存储器、组合逻辑电路和/或提供所述功能的其他合适的组件。
本文可以根据功能和/或逻辑块组件以及各种处理步骤来描述本公开的实施例。应当理解,这种块组件可以由被配置成执行指定功能的任意数量的硬件、软件和/或固件组件来实现。例如,本公开的实施例可以采用各种集成电路组件,例如存储元件、数字信号处理元件、逻辑元件、查找表等,它们可以在一个或多个微处理器或其他控制设备的控制下执行各种功能。此外,本领域技术人员将理解,本公开的实施例可以结合任意数量的系统来实施,并且本文描述的系统仅仅是本公开的示例性实施例。
为了简洁起见,本文可能不详细描述与信号处理、数据传输、信号发送、控制、机器学习模型、雷达、激光雷达、图像分析和系统的其他功能方面(以及系统的各个操作组件)相关的传统技术。此外,本文所包含的各图中所示的连接线旨在表示各种元件之间的示例功能关系和/或物理联接。应当注意,在本公开的实施例中可以存在许多替代或附加的功能关系或物理连接。
本文描述的主题公开了用于提供实时分布式处理框架,以帮助增加处理需求的装置、系统、技术和物品。以下公开内容提供了用于为多个系统利用共享硬件资源的装置、系统、技术和物品,从而降低成本、提高冗余性、利用可重用的专业知识。以下公开内容提供了用于共享硬件资源的装置、系统、技术和物品,其可以为安全关键应用提供性能保证,并为非关键应用提供最佳配置。以下公开提供了能够允许安全关键应用与非关键任务共存的装置、系统、技术和物品。以下公开内容提供了用于利用多态性(利用可适应的工作负载来满足约束,同时保持功能)的装置、系统、技术和物品。以下公开内容提供了用于利用贪婪启发式解决方案(greedy,heuristic solution)来实现次优解决方案但具有快速决策能力的装置、系统、技术和物品。以下公开内容提供了用于利用ILP问题公式和解决方案来实现全局优化的装置、系统、技术和物品。
图1A是显示了示例计算环境100的框图。示例计算环境包括软件环境102和硬件环境104。软件环境102包括多个软件应用106,这些软件应用106将使用来自硬件环境104的硬件在不同时间执行。在该示例中,示例计算环境包括汽车计算环境,并且示例软件包括可以在汽车中存在的软件应用。在该示例中,示例软件包括发动机控制单元(ECU)软件、防抱死制动系统(ABS)软件、巡航控制软件和无线电软件等。一些软件对车辆的安全运行更重要,因此被认为是优先级较高的软件,而一些软件对车辆的安全运行不太重要,被认为是优先级较低的软件。例如,ABS软件将被视为较高优先级的软件,而无线电软件将被视为较低优先级的软件。当软件环境102的计算资源需求超过硬件环境104的计算能力时,软件环境102中的软件可能需要被划分优先级,使得当需要执行时,较高优先级的软件总是可以被执行。
硬件环境包括多个处理模块108、109。每个处理模块108可以包括多个计算资源,例如中央处理单元(CPU)110、图形处理单元(GPU)112和/或其他计算资源。处理模块108、109可以分布在分布式网络中。一些处理模块(例如,处理模块108)可以是本地的,而一些(例如,处理模块109)可以是远程的。除了本地或远程之外,各种处理模块还可以具有不同的计算能力和不同的访问时间(例如,基于它们可访问的通信网络)。在车辆的例子中,本地处理模块108可以位于车辆上,远程处理模块109可以位于车辆外。
图1B是显示了示例计算环境120中的示例车辆122的图,并且示出了处理模块相对于示例车辆122可以位于的各个层级(level)。在该示例中,示例环境120包括在第一层级(1)中的、车辆122上的处理模块。示例环境120还可以包括在第二层级(2)中的移动处理模块124(例如,包含在诸如智能电话、平板电脑、平板电话、等移动设备中),其位于车辆122内或非常靠近车辆122。示例环境120可以包括在第三层级(3)中的边缘处理模块(edgeprocessing module)126(例如,包含在诸如交通设备或标志这样的边缘设备中),其位于车辆122附近。示例环境120可以包括在第四层级(4)中的云处理模块128(例如,包含在诸如服务器状态的云设备中),其可由车辆122访问。
示例计算环境100和120实现任务配置系统,该系统被配置为基于优先级、计算要求和计算能力将计算任务从软件环境(例如,软件环境102)配置给各种处理模块。
图2显示了包括任务配置系统210的示例车辆200。如图1所示,车辆200通常包括底盘12、车身14、前轮16和后轮18。车身14布置在底盘12上,并且基本上包围车辆200的部件。主体14和底盘12可以共同形成框架。轮16-18各自在车身14的相应角部附近旋转地连接到底盘12。
在各种实施例中,车辆200可以是自主车辆或半自主车辆。自主车辆200例如是被自动控制以将乘客从一个位置运送到另一个位置的车辆。车辆200在所示实施例中被显示为客车,但是其他交通工具类型(包括摩托车、卡车、运动型多功能车(SUV)、休闲车(RV)、船舶、飞机等)也可以使用。
如图所示,车辆200通常包括推进系统20、传动系统22、转向系统24、制动系统26、传感器系统28、促动器系统30、至少一个数据存储设备32、至少一个控制器34和通信系统36。在各种实施例中,推进系统20可以包括内燃发动机、诸如牵引马达这样的电机、和/或燃料电池推进系统。传动系统22被配置成根据可选择的速比将动力从推进系统20传递到车轮16和18。根据各种实施例,变速器系统22可以包括多级变传动比自动变速器(step-ratioautomatic transmission)、无级变速器或其他合适的变速器。
制动系统26被配置为向车轮16和18提供制动扭矩。在各种实施例中,制动系统26可以包括摩擦制动器、线制动、再生制动系统如电机和/或其他合适的制动系统。
转向系统24影响车轮16和/或18的位置。虽然为了说明的目的,将转向系统24显示为包括方向盘25,但是在本公开的范围内设想的一些实施例中,转向系统24可以不包括方向盘。
传感器系统28包括一个或多个感测设备40a-40n,其感测车辆200的外部环境和/或内部环境的可观察状况(例如一个或多个乘员的状态),并产生与其相关的传感器数据。感测设备40a-40n可以包括但不限于雷达(例如,远程、中程-短程)、激光雷达、全球定位系统、光学相机(例如,面前向、360度、面后向、侧向、立体等)、热(例如,红外)照相机、超声波传感器、里程计传感器(例如,编码器)和/或可以与根据本主题的系统和方法结合使用的其他传感器。
促动器系统30包括一个或多个促动器设备42a-42n,其控制一个或多个车辆特征,例如但不限于推进系统20、传动系统22、转向系统24和制动系统26。在各种实施例中,车辆200还可以包括图1中未示出的内部和/或外部车辆特征,例如各种门、行李箱和车厢特征,例如空气、音乐、照明、触摸屏显示组件(例如与导航系统结合使用的那些)等。
数据存储设备32存储用于自动控制车辆200的数据。在各种实施例中,数据存储设备32存储可导航环境的定义地图。在各种实施例中,定义的地图可以由远程系统预定义并从远程系统获得。例如,所定义的地图可以由远程系统组装并(无线地和/或以有线方式)传送到车辆200,并存储在数据存储设备32中。路线信息也可以存储在数据存储设备32中,即,一组路段(在地理上与一个或多个定义的地图相关联),它们一起定义了用户从起始位置(例如,用户的当前位置)行进到目标位置可以采取的路线。可以理解,数据存储设备32可以是控制器34的一部分,与控制器34分离,或者是控制器34的一部分和独立系统的一部分。
控制器34包括至少一个处理器44和计算机可读存储设备或介质46。处理器44可以是任何定制的或市场上可买到的处理器、中央处理单元(CPU)、图形处理单元(GPU)、专用集成电路(ASIC)(例如,实现神经网络的定制ASIC)、现场可编程门阵列(FPGA)、与控制器34相关联的几个处理器中的辅助处理器、基于半导体的微处理器(以微芯片或芯片组的形式)、它们的任何组合、或者通常是用于执行指令的任何设备。计算机可读存储设备或介质46可以包括例如只读存储器(ROM)、随机存取存储器(RAM)和保活存储器(keep-alive memory:KAM)中的易失性和非易失性存储。KAM是永久性或非易失性存储器,当处理器44断电时,其可用于存储各种操作变量。计算机可读存储设备或介质46可以使用多种已知存储设备中的任何一种来实现,例如PROM(可编程只读存储器)、EPROM(电PROM)、EEPROM(电可擦PROM)、闪存或能够存储数据的任何其他电、磁、光或组合存储设备,其中一些代表了控制器34在控制车辆200时使用的可执行指令。在各种实施例中,控制器34被配置成实现如下文详细讨论的地图描绘系统(mapping system)。
指令可以包括一个或多个单独的程序,每个程序包括用于实现逻辑功能的可执行指令的有序列表。当由处理器44执行时,指令接收并处理来自传感器系统28的信号(例如,传感器数据),执行用于自动控制车辆200的部件的逻辑、计算、方法和/或算法,并产生控制信号,该控制信号被传输到促动器系统30,以基于逻辑、计算、方法和/或算法自动控制车辆200的部件。尽管在图2中仅示出了一个控制器34,但是车辆200的实施例可以包括任意数量的控制器34,这些控制器34通过任意合适的通信介质或通信介质的组合进行通信,并且协作来处理传感器信号、执行逻辑、计算、方法和/或算法,并且生成控制信号,以自动控制车辆200的特征。
通信系统36被配置成与其他实体48无线通信信息,例如但不限于其他车辆(“V2V”通信)、基础设施(“V2I”通信)、网络(“V2N”通信)、行人(“V2P”通信)、远程运输系统和/或用户设备。在一个示例性实施例中,通信系统36是被配置为使用IEEE 802.11标准或通过使用蜂窝数据通信经由无线局域网(WLAN)进行通信的无线通信系统。然而,额外的或替代的通信方法,例如专用短程通信(DSRC)信道,也被认为在本公开的范围内。DSRC信道是指专为汽车使用而设计的单向或双向短程至中程无线通信信道,以及相应的一套协议和标准。
图3是显示了任务配置系统302的示例环境300的框图。示例任务配置系统302被配置为将原子计算任务(atomic computing task)动态配置给具有异构能力的一组联网计算设备。联网计算设备套件包括移动设备、边缘设备和基于云的服务器中的一个或多个和板载硬件。每个联网计算设备包括一个或多个计算资源301。每个计算资源301可以包括中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、数学协处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)和/或其他处理设备。
示例任务配置系统302包括一个或多个处理器,这些处理器由实现任务配置系统部件的非瞬态计算机可读介质上的编程指令来配置。示例任务配置系统部件包括实时安排器模块(real-time scheduler module)304、监测器308、任务库310和调配器模块(dispatcher module)312。示例性实时调配器模块304被配置为接收计算资源301执行作业的作业规范和/或请求306,使用来自性能监测器308的信息来监测计算资源301的状态和与计算资源301的连接性,从任务库310识别具体任务实现(task implementation),并将该具体任务实现调配到计算资源301,以满足作业请求306。示例调配器模块312被配置为检索具体任务实现,并将该具体任务实现调配到已经为它们的被分配的具体计算资源301,以供执行。
示例任务库310包括多个任务。每个任务是可以使用一个或多个计算资源301所执行的应用的具体实现。一个应用可以具有多个实现,其中应用的不同实现在执行期间提供不同水平的准确性和资源使用。基于来自应用实现的执行所带来的结果的准确性水平和执行期间的资源使用之间的权衡来配置应用的不同实现。
图4A和图4B是示出提供应用的不同实现的潜在益处的示例操作场景图。在示例操作场景中,车辆中的视觉系统拍摄车辆前方环境的快照400。车辆中的检测系统可以请求执行应用来检测快照400中的对象。该应用可以具有两种实现方式,第一种实现方式提供对快照400的不太精确的分析,但是需要较少的计算资源来执行,第二种实现方式提供对快照400的更精确的分析,但是需要更多的计算资源来执行。
图4A中显示了来自第一示例实现的对象检测结果。在第一个示例实现中,应用了平均精度(mAP)为57.1%的16层卷积神经网络(convolutional neural network:CNN),其执行时间为4.8ms/帧。第一示例实现提供对快照400的不太精确的分析(例如,快照中的一些汽车402被识别,而快照中的一些汽车404未被识别),但是需要较少的计算资源来执行(例如,每个快照在4.8ms内执行)。
图4B中显示了来自第二示例实现的对象检测结果。在第二个示例实现中,应用了32层的CNN,具有76.8%的mAP,以14.9ms/帧执行。第二示例实现提供了对快照的更精确的分析(例如,快照中的更多或所有汽车402被识别),但是需要更大的计算资源来执行(例如,每个快照在14.9毫秒内执行)。取决于计算资源的工作负荷,使用应用的第一实现来获得一些检测信息可以是有利的,因为与时间限制相比,有一些信息可能比没有信息更好。
回到图3,示例性监测器308被配置成跟踪设备及其可用的计算资源301。示例监测器308还被配置为收集关于去往和来自计算资源301的通信信道以及计算资源301的设备速度的统计数据。示例性性能监测器308还被配置成将所跟踪的数据和统计传送给示例性实时安排器模块304。
示例性实时安排器模块304被配置为使用监测器308来监测可用计算资源301和与计算资源301的连接性,接收多个接收到的作业规范和/或请求306,其中规范/请求306识别为执行而请求的任务,在执行任务时对要执行的应用划分优先级,其中更关键的应用被分配有更高的优先级,首先将计算资源301配置给更高优先级的应用,将剩余的计算资源301配置给其他应用,并且以最大化整体效用的方式选择用于分配给具体计算资源301的应用的具体实现。
示例实时安排器模块304被配置成利用安排算法来确定用哪个计算资源来安排哪个具体应用实现。安排算法所解决的问题可以表示如下:
资源消耗由r(j,k,m)表示,其中
让X(j,k,m)∈{0,1}成为二进制配置变量,其中如果使用实现m在节点k上安排作业j则其为1,否则为0。有效配置或作业安排必须满足以下约束条件:
等式1,资源约束条件,确保被分配给一节点的作业不会超过其资源,而等式2,分配约束条件,确保最多一次指定一个作业(一个节点上一个实现)
让u(j,k,m),使用实现m在节点k上运行作业j的用户设定效能
则目标是:
受制于:
在一个示例中,示例实时安排器模块304被配置为执行整数线性程序(IntegerLinear Program:ILP)作为安排算法,以确定将应用的具体实现分配给具体计算资源。ILP可以使用基于舍入的方法,如COIN-OR分支和切割(CBC)开源ILP解算器,或Gurobi ILP解算器。
在一个示例中,示例实时安排器模块304被配置为执行贪婪算法作为安排算法,以确定应用的具体实现对具体计算资源的分配,并输出具体实现对具体计算资源的经确定分配。
在一个示例中,贪婪算法被配置为基于效用等级对应用实现进行排序(sort),其中具有最高效用的应用实现被给予最高等级;并且在最佳可用节点(例如,计算资源301)处按等级顺序逐一安排应用实现,其中如果还没有安排应用的其他实现并且最佳可用节点能够执行应用实现,则安排一应用实现。
图5A和5B是示出使用示例贪婪算法来安排应用实现以供执行的图。图5A中显示的是示出了可由系统安排的示例任务和应用实现以及可用于执行应用实现的计算资源类型(例如,CPU或GPU)的框图。在本例中,要执行三个任务,作业1、作业2和作业3。作业1具有一个应用程序实现——作业1.A(用于CPU执行),作业2具有两个应用程序实现——作业2.A(用于CPU执行)和作业2.B(用于GPU执行)。任务3具有两个应用程序实现——任务3.A(用于GPU执行)和作业3.B(用于GPU执行)。
图5B中显示的是示出了使用示例性贪婪算法将三个任务进行排序并安排到计算节点的示例性框图。示例贪婪算法首先基于效用分级对应用程序实现进行排序,效用等级最高的应用程序实现排在第一位。在此示例中,作业3.A排名第一,作业2.B排名第二,作业2.A排名第三,作业1.A排名第四,作业3.B排名最后。应用程序实现根据它们的效用等级以最高效用等级到最低效用等级的顺序排序。
其次,示例贪婪算法将任务安排到计算节点。在此示例中,由于作业3.A排名第一,因此其被安排为在节点1上执行,该节点具有足够的计算资源用于作业3.A。排在第二位的作业2.B接下来被安排为在节点1,除了作业3.A外,节点1还具有足够的计算资源供作业2.B使用。作业2.A没有被安排,因为已经安排了应用的另一个实现,即作业2.B。在效用等级中处于次席的作业1.A接下来被安排在节点2,节点2具有足够的计算资源用于作业1.A。作业3.B没有被安排,因为已经安排了应用的另一个实现,即作业3.A。总之,贪婪算法以等级顺序在最佳可用节点处一个接一个地安排应用实现,其中如果还没有安排应用的其他实现,并且最佳可用节点能够执行一应用实现,则安排该应用实现。
返回参考图3,在另一个示例中,示例实时安排器模块304被配置有另一个示例贪婪算法,以安排具体的应用实现以在具体的节点上执行。该示例中的贪婪算法被配置为:枚举应用实现的所有可能组合,其中每个组合在这里被称为捆绑束(bundle);计算每个捆绑束-节点对(bundle-node pair)的效用;首先按最高效用对捆绑束-节点对进行排序;并且一个接一个地安排捆绑束,直到已经分配了所有节点或者已经安排了所有作业,其中所分配的捆绑束不能包含相同作业的实现。
图6是示出当使用示例贪婪算法安排作业时使用的示例作业和示例捆绑束的图。图6中显示的是示出可由系统安排的示例任务和应用实现以及可用于执行应用实现的计算资源类型(例如,CPU或GPU)的框图。在本例中,要执行三个任务,作业1、作业2和作业3。作业1具有一个应用实现-作业1.A(用于CPU执行),作业2具有两个应用实现-作业2.A(用于CPU执行)和作业2.B(用于GPU执行),以及作业3具有两个应用实现–作业3.A(用于GPU执行)和作业.B(用于GPU执行)。。
图6还示出了应用实现(例如,捆绑束)的所有可能组合的枚举。如图所示,在该示例中,一捆绑束可以由一个应用实现组成(例如,(1A)、(2A)、(2B)、(3A)、(3B))。在这个例子中,一捆绑束可以由两个应用实现组成(例如,(1A,2A),(1A,2B),(1A,3A),(1A,3B),(2A,3A),(2A,3B),(2B,3A),(2B,3B))。在这个例子中,一捆绑束可以由三个应用实现组成(1A、2A、3A)、(1A、2A、3B)、(1A、2B、3A)、(1A、2B、3B)。一个捆绑束只能包含同一应用的一个实现,不能包含同一应用的两个或多个实现。如图所示,示例捆绑束602是适当的捆绑束,因为它包含同一应用的不超过一个实现——它包含应用作业1、2和3中的每一个的一个实现(1A、2A、3B)。如图所示,集合604不能是捆绑束——它包括同一应用的两个实现(作业3.A和作业3.B)。
图7A和7B是示出使用示例性贪婪算法对捆绑束到节点(例如,计算资源)的排序和安排的图。在图7A中显示的是图702,其示出了捆绑束到节点的潜在分配。虽然仅示出了几个潜在的捆绑束到节点的组合,但是该图可以公开所有可能的捆绑束到节点的组合。在此示例中,该图显示了可以将捆绑束B1或B2分配给节点1(N1),仅将捆绑束B3分配给节点2(N2),将捆绑束B2和B3分配给节点3(N3)。除了显示可能的捆绑束到节点分配之外,还显示了由示例算法计算并分配给每个潜在捆绑束到节点分配的效用得分。在该示例中,潜在捆绑束到节点分配(N1B1)被分配一经计算的效用值u1,潜在捆绑束到节点分配(N1B2)被分配一经计算的效用值u2,潜在捆绑束到节点分配(N3B2)被分配一经计算的效用值u3,潜在捆绑束到节点分配(N2B3)被分配一经计算的效用值u4,并且潜在捆绑束到节点分配(N3B3)被分配一经计算的效用值u5。
还显示了了冲突图(conflict graph)704,其示出了可以分配给每个节点的竞争潜在捆绑束以及用于每个潜在捆绑束到节点分配的经计算效用值。冲突图704示出节点分配可以包括捆绑束到节点组合N1B1或N1B2、节点组合N2B3以及捆绑束到节点组合N3B2或N3B3。
图7B是示出了使用示例性贪婪算法将信息从冲突图710转换成实际捆绑束到节点分配的图。在该示例中,冲突图710示出了可以分配给每个节点的竞争潜在捆绑束和用于每个潜在捆绑束到节点分配的经计算效用值,并且示出了潜在捆绑束到节点分配(N1B1)被分配了经计算效用值20,潜在捆绑束到节点分配(N1B2)被分配了经计算效用值10,潜在捆绑束到节点分配(N3B2)被分配了经计算效用值15,潜在捆绑束到节点分配(N2B3)被分配了经计算效用值5,潜在捆绑束到节点分配(N3B3)被分配了经计算效用值8。
图7B还包括用于将数据从冲突图710转换成实际捆绑束到节点分配的表712。表712公开了由于潜在的捆绑束到节点分配(N1B1)被分配了最高的经计算效用值20,所以捆绑束B1被安排在节点1(N1)。因为潜在的捆绑束到节点分配(N3B2)被分配了次高的经计算效用值15,所以捆绑束B2被安排在节点3(N3),因为节点3(N3)还没有被分配。即使潜在的捆绑束到节点分配(N1B2)被分配了次高的经计算效用值10,但是捆绑束B2没有在被安排节点1(N1),因为节点1(N1)已经被分配。尽管潜在的捆绑束到节点分配(N3B3)被分配了次高的经计算效用值8,但是捆绑束B3没有被安排在节点3(N3),因为节点3(N3)已经被分配。因为潜在的捆绑束到节点分配(N2B3)被分配了次高的计算效用值5,所以捆绑束B3被安排在节点2(N2),因为节点2(N2)还没有被分配。
总之,表712示出了示例贪婪算法首先按最高效用对捆绑束-节点对进行排序,并逐个安排捆绑束,直到所有节点都已被分配或所有作业都已被安排。
返回参考图3,示例调配器模块312被配置为将所分配的应用具体实现调配到其被分配的计算资源以供执行。因此,通过贪婪算法进行的分配由示例调配器模块312实现。
图8是示出示例任务配置系统的示例环境800中的示例组件的示例流程图。示例任务配置系统被配置为将原子计算任务(atomic computing task)动态配置给具有异构能力的一组联网计算设备。
示例实时安排器模块802通过计算设备中的计算资源接收任务请求804以执行作业。示例计算设备包括本地计算设备806(例如,车辆中的车载控制器)、边缘计算设备808(例如,交通设备中的控制器)和云计算设备810(例如,基于云的服务器)。示例计算设备806、808、810包括由CPU,GPU,ASIC,FPGA,DSP等组成的计算资源。
示例实时安排器模块802通过资源监测器812和性能监测器814来监测计算资源的状态和与计算资源的连接。示例资源监测器812跟踪设备806、808、810及其可用资源。示例性性能监测器814收集关于通信信道和设备速度的统计数据。
示例实时安排器模块802从任务简档数据库816中识别具体任务实现。示例任务简档数据库816包括关于任务的静态和动态数据,包括资源使用、延迟(latency)、可靠性等。基于关于任务、可用资源以及通信信道和设备速度的静态和动态数据,示例实时安排器模块802将具体任务实现安排到具体计算资源以满足任务请求804。示例实时安排器模块802运行安排算法以将作业分配给设备,以用于执行。安排算法可以包括ILP或贪婪算法的使用。
示例安排器模块818从任务库820检索已经由示例实时安排器模块802安排的具体任务实现,并且经由通信管理器822将具体任务实现调配到计算设备806、808、810内的具体计算资源以供执行。示例任务库820包括任务实现的二进制文件。示例通信管理器822管理设备之间的通信链路。通信链路可以使用DSRC、蜂窝无线网络(例如,LTE,5G或其他)、以太网、控制器局域网(CAN)、无线局域网(WLAN)和/或其他通信协议来实现。
图9是显示了示例任务配置系统中的示例过程900的过程流程图。过程900内的操作顺序不限于图中所示的顺序执行,而是可以根据本公开以一个或多个可应用的变化顺序来执行。
示例过程900包括通过计算设备中的计算资源接收执行作业的任务请求(操作902)。示例计算设备可以包括本地计算设备806(例如,车辆中的车载控制器)、边缘计算设备808(例如,交通设备中的控制器)和云计算设备810(例如,基于云的服务器)。示例计算设备806、808、810可以包括由中央处理单元(CPU)、图形处理器单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他组成的计算资源。
示例过程900包括监测计算资源的状态和连接(操作904)。监测可以包括跟踪计算设备及其可用的计算资源,收集关于通信信道和计算设备速度的统计数据。
示例过程900包括识别用于安排的具体任务实现(操作906)。具体任务实现可以从任务简档数据库816中识别。示例任务简档数据库816可以包括关于任务的静态和动态数据,包括资源使用、延迟、可靠性等。
示例过程900包括将具体任务实现安排到具体计算资源(操作908)。可以基于关于任务、可用资源以及通信信道和设备速度的静态和动态数据,将具体任务实现安排到具体计算资源,以满足任务请求。将具体任务实现安排到具体计算资源可能涉及运行安排算法,以将作业分配给设备以供执行。安排算法可以包括基于ILP的算法。安排算法可以包括贪婪算法。
贪婪安排算法可以被配置为基于效用等级对应用实现进行排序,其中具有最高效用的应用实现被给予最高等级;并且在最佳可用节点(例如,计算资源)处按等级顺序逐一安排应用实现,其中如果还没有安排应用的其他实现并且最佳可用节点能够执行应用实现,则安排一应用实现。应用程序实现的效用与优先级相关,并且可以是包含在任务概要数据库中的数据、所选择的实现以及计划在哪里执行的函数。
贪婪安排算法可以被配置为:枚举应用实现的所有可能组合,其中每个组合在这里被称为捆绑束;计算每个捆绑束-节点对的效用;首先按最高效用对捆绑束-节点对进行排序;并且一个接一个地安排捆绑束,直到已经分配了所有节点或者已经安排了所有作业,其中所分配的捆绑束不能包含相同作业的实现。
示例过程900包括从任务库中检索已经被安排的具体任务实现,并且(操作910)将具体任务实现分派给具体计算资源来执行(操作912)。示例任务库可以包括不同任务实现的二进制文件。不同的任务实现为不同的硬件提供了各种的任务实现(选项),基于可接受的权衡的准确度水平。
安排可以通过通信管理器来执行。通信管理器可以被配置成管理设备之间的通信链路。通信链路可以使用DSRC、蜂窝无线网络(例如,LTE、5G或其他)、以太网、控制器局域网(CAN)、无线局域网(WLAN)和/或其他通信协议来实现。
前述概述了几个实施例的特征,使得本领域技术人员可以更好地理解本公开的方面。本领域技术人员应该理解,他们可以容易地使用本公开作为设计或修改其他过程和结构的基础,以实现这里介绍的实施例的相同目的和/或实现相同的优点。本领域技术人员还应该认识到,这种等同结构不脱离本公开的精神和范围,并且在不脱离本公开的精神和范围的情况下,它们可以在此进行各种改变、替换和变更。
Claims (10)
1.一种用于将原子计算任务动态配置给具有异构能力的联网计算资源套件的任务配置系统,该系统包括:
包括多个任务的任务库,每个任务是应用的多个不同实现中的一个,其中应用的不同实现在执行期间提供不同水平的准确性和资源使用,其中不同实现基于执行期间准确性水平和资源使用之间的权衡来配置;和
实时安排器模块,包括由非瞬态计算机可读介质上的编程指令配置的一个或多个处理器,该安排器模块被配置为监测可用的计算资源和与计算资源的连接性,接收多个任务请求,其中任务请求是针对执行而请求的作业的规范,当执行作业时,对要执行的应用进行优先级排序,其中更关键的应用被分配了更高优先级,将计算资源配置给更高优先级的应用,将剩余的计算资源配置给其他应用,并以最大化整体效用的方式选择应用的具体实现以分配给具体计算资源;
调配器模块,包括由非瞬态计算机可读介质上的编程指令配置的一个或多个处理器,该调配器模块被配置为将应用的所分配的具体实现调配到它们的被分配的计算资源,以供执行。
2.根据权利要求1所述的任务配置系统,其中:
联网计算设备套件包括板载硬件和一个或多个移动设备、边缘设备和基于云的服务器;和
计算资源包括一个或多个中央处理器、图形处理器、数字信号处理器、专用集成电路和现场可编程门阵列。
3.根据权利要求1所述的任务配置系统,其中所述实时安排器模块被配置成:
执行贪婪算法,以确定应用的具体实现对具体计算资源的分配;和
输出具体实现对具体计算资源的经确定分配。
4.根据权利要求3所述的任务配置系统,其中所述贪婪算法被配置为:
基于效用对作业实现划分等级,其中效用最高的作业实现被排在第一位;和
在最佳可用节点处按等级顺序逐一安排作业实现,其中如果没有该作业的其他实现已经被安排并且最佳可用节点能够执行一作业实现,则安排所述作业实现。
5.根据权利要求3所述的任务配置系统,其中所述贪婪算法被配置为:
枚举所有可能的作业组合,其中每个可能的作业组合被称为捆绑束;
确定潜在的捆绑束-节点对;
计算每个潜在捆绑束-节点对的效用测量;
按照效用顺序对捆绑束-节点对进行排序,效用最高的捆绑束-节点对位于第一位;和
一个接一个地安排捆绑束,直到所有节点都已被分配或者所有作业都已被安排,其中分配的捆绑束不能包含相同作业的实现。
6.根据权利要求1所述的任务配置系统,进一步包括:
任务简档数据库,包含用于每个应用实现的任务简档,任务简档包括关于任务的静态和动态数据,包括资源使用、延迟和可靠性,其中当选择应用的具体实现以分配给具体计算资源时,任务简档可由安排器模块访问;
资源监测器,被配置为跟踪设备及其可用计算资源,其中实时安排器模块被配置为经由资源监测器提供的信息来监测可用计算资源;
执行监测器,被配置为收集关于通信信道和设备速度的统计数据;和
通信管理器,被配置为管理提供计算机资源的设备之间的通信链路,该通信链路使用多个专用短程通信、蜂窝无线网络、以太网、无线局域网和控制器局域网来实现。
7.一种车辆中的处理器实现的方法,用于将汽车计算任务动态配置给具有异构能力的联网计算资源套件,该方法包括:
由车辆中的处理器接收通过计算资源执行作业的任务请求;
由处理器监测计算资源的状态和与计算资源的连接性;
由处理器识别用于安排的具体任务实现;
由处理器将具体任务实现安排到具体计算资源;
由处理器从任务库中检索已经被安排的具体任务实现;和
由处理器将用于执行的具体任务实现分配给具体计算资源。
8.根据权利要求7所述的方法,其中将具体任务实现安排到具体计算资源包括运行安排算法以将作业分配给设备来执行,其中所述安排算法包括基于ILP的算法或贪婪算法。
9.根据权利要求7所述的方法,其中:
安排算法包括贪婪算法;
贪婪算法被配置为基于效用等级对任务实现进行排序,其中具有最高效用的任务实现被给予最高等级;和
贪婪算法被配置为在最佳可用计算资源处以等级顺序逐一安排任务实现,其中如果还没有安排任务的其他实现并且最佳可用节点能够执行一任务实现,则安排该任务实现。
10.根据权利要求7所述的方法,其中:
安排算法包括贪婪算法;
贪婪算法被配置为枚举应用实现的所有可能组合,其中每个组合被称为捆绑束;确定潜在的捆绑束-节点对,计算每个捆绑束-节点对的效用;按照效用顺序对捆绑束-节点对进行排序,效用最高的捆绑束-节点对位于第一位;并且一个接一个地安排捆绑束,直到已经分配了所有节点或者已经安排了所有作业,其中所分配的捆绑束不能包含相同作业的实现。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/283,944 | 2019-02-25 | ||
US16/283,944 US10956211B2 (en) | 2019-02-25 | 2019-02-25 | Method and apparatus of allocating automotive computing tasks to networked devices with heterogeneous capabilities |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112000458A true CN112000458A (zh) | 2020-11-27 |
Family
ID=72139382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010115924.1A Pending CN112000458A (zh) | 2019-02-25 | 2020-02-25 | 汽车计算任务配置给有异构能力的联网设备的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10956211B2 (zh) |
CN (1) | CN112000458A (zh) |
DE (1) | DE102020101704A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022121685A1 (en) * | 2020-12-09 | 2022-06-16 | International Business Machines Corporation | Edge computing autonomous vehicle infrastructure |
CN116842994A (zh) * | 2023-07-03 | 2023-10-03 | 上海交通大学 | 多神经网络执行效率动态优化方法及系统 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022526178A (ja) * | 2019-04-12 | 2022-05-23 | ハーマン インターナショナル インダストリーズ インコーポレイテッド | 車載コンピューティングシステムのためのエラスティックコンピューティング |
US11567495B2 (en) * | 2019-12-11 | 2023-01-31 | Toyota Motor Engineering & Manufacturing North America, Inc. | Methods and systems for selecting machine learning models to predict distributed computing resources |
US20210291851A1 (en) * | 2020-03-23 | 2021-09-23 | Toyota Motor Engineering & Manufacturing North America, Inc. | Switching decision for vehicle computational offloading to roadside edge server |
US11297161B1 (en) * | 2020-10-08 | 2022-04-05 | Toyota Motor Engineering & Manufacturing North America, Inc. | Systems and methods for managing an automotive edge computing environment |
US20220222122A1 (en) * | 2021-01-08 | 2022-07-14 | Dell Products L.P. | Model-based resource allocation for an information handling system |
CN113612839A (zh) * | 2021-07-30 | 2021-11-05 | 国汽智控(北京)科技有限公司 | 一种驾驶任务计算终端确定方法、装置及计算机设备 |
US20230100163A1 (en) * | 2021-09-24 | 2023-03-30 | Google Llc | Allocating computing device resources |
EP4235416A1 (en) * | 2022-02-24 | 2023-08-30 | HENSOLDT Sensors GmbH | Apparatus and method for managing resources of a multifunctional radio frequency system |
CN114706689B (zh) * | 2022-05-17 | 2022-08-16 | 中诚华隆计算机技术有限公司 | 一种基于子任务特性的多核处理器任务调度方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103970607A (zh) * | 2013-01-28 | 2014-08-06 | 国际商业机器公司 | 使用等价集合来计算优化虚拟机分配的方法和装置 |
CN104834556A (zh) * | 2015-04-26 | 2015-08-12 | 西北工业大学 | 一种多态实时任务与多态计算资源的映射方法 |
CN104937584A (zh) * | 2012-12-19 | 2015-09-23 | 赛门铁克公司 | 基于共享资源的质量向经优先级排序的虚拟机和应用程序提供优化的服务质量 |
US20160171390A1 (en) * | 2014-12-12 | 2016-06-16 | Qualcomm Incorporated | Application Characterization for Machine Learning on Heterogeneous Core Devices |
CN106878389A (zh) * | 2017-01-04 | 2017-06-20 | 北京百度网讯科技有限公司 | 用于在云系统中进行资源调度的方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10346775B1 (en) * | 2015-11-16 | 2019-07-09 | Turbonomic, Inc. | Systems, apparatus and methods for cost and performance-based movement of applications and workloads in a multiple-provider system |
US10521439B2 (en) * | 2014-04-04 | 2019-12-31 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Method, apparatus, and computer program for data mining |
US10599471B1 (en) * | 2016-08-08 | 2020-03-24 | Cognizant Technology Solutions U.S. Corporation | Project scheduling in a heterogeneous distributed computing environment |
US10759444B2 (en) * | 2017-07-07 | 2020-09-01 | Toyota Research Institute, Inc. | Resource optimization in vehicles |
US10607484B2 (en) * | 2017-12-28 | 2020-03-31 | Intel Corporation | Privacy-preserving distributed visual data processing |
-
2019
- 2019-02-25 US US16/283,944 patent/US10956211B2/en active Active
-
2020
- 2020-01-24 DE DE102020101704.9A patent/DE102020101704A1/de active Pending
- 2020-02-25 CN CN202010115924.1A patent/CN112000458A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104937584A (zh) * | 2012-12-19 | 2015-09-23 | 赛门铁克公司 | 基于共享资源的质量向经优先级排序的虚拟机和应用程序提供优化的服务质量 |
CN103970607A (zh) * | 2013-01-28 | 2014-08-06 | 国际商业机器公司 | 使用等价集合来计算优化虚拟机分配的方法和装置 |
US20160171390A1 (en) * | 2014-12-12 | 2016-06-16 | Qualcomm Incorporated | Application Characterization for Machine Learning on Heterogeneous Core Devices |
CN104834556A (zh) * | 2015-04-26 | 2015-08-12 | 西北工业大学 | 一种多态实时任务与多态计算资源的映射方法 |
CN106878389A (zh) * | 2017-01-04 | 2017-06-20 | 北京百度网讯科技有限公司 | 用于在云系统中进行资源调度的方法和装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022121685A1 (en) * | 2020-12-09 | 2022-06-16 | International Business Machines Corporation | Edge computing autonomous vehicle infrastructure |
CN116842994A (zh) * | 2023-07-03 | 2023-10-03 | 上海交通大学 | 多神经网络执行效率动态优化方法及系统 |
CN116842994B (zh) * | 2023-07-03 | 2024-03-01 | 上海交通大学 | 多神经网络执行效率动态优化方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20200272509A1 (en) | 2020-08-27 |
DE102020101704A1 (de) | 2020-08-27 |
US10956211B2 (en) | 2021-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10956211B2 (en) | Method and apparatus of allocating automotive computing tasks to networked devices with heterogeneous capabilities | |
US9919715B2 (en) | Vehicle mode scheduling with learned user preferences | |
CN109767130B (zh) | 用于控制车辆的方法和装置 | |
CN113242320B (zh) | 智能驾驶系统、方法、设备及存储介质 | |
TW202034278A (zh) | 用於提供運輸服務的方法和系統 | |
CN109791731B (zh) | 一种预估到达时间的方法和系统 | |
US20200300649A1 (en) | Navigation system and route search method thereof | |
CN109891469B (zh) | 交通信号灯配时系统与方法 | |
CN113924593A (zh) | 车辆感知系统分辨率和感兴趣区的基于意图的动态改变 | |
US10572748B2 (en) | Autonomous vehicle adaptive parallel image processing system | |
CN112629524A (zh) | 出行路径推荐管理方法、装置和电子设备 | |
CN110959145A (zh) | 用于计算机设备的基于应用优先级的功率管理 | |
WO2019228285A1 (zh) | 一种任务调度方法及装置 | |
CN111562978B (zh) | 共享设备上多流视觉处理的架构和设备 | |
US20230394443A1 (en) | Vehicle management system | |
CN109582512B (zh) | 用于测试并行计算装置的部件的方法和系统 | |
US20210110326A1 (en) | Route-based digital service management | |
CN111144968A (zh) | 用于分配服务请求的系统和方法 | |
US11884296B2 (en) | Allocating processing resources to concurrently-executing neural networks | |
EP4074562A1 (en) | Control system and control method for intelligent connected vehicle | |
CN112561099A (zh) | 车辆分派方法、装置、计算机设备和存储介质 | |
CN117236646B (zh) | 车辆调度方法、装置、电子设备和计算机可读介质 | |
US20230195972A1 (en) | Autonomous vehicle simulation and code build scheduling | |
US20240140486A1 (en) | Methods and apparatuses for closed-loop evaluation for autonomous vehicles | |
US20240036943A1 (en) | Vehicle control module allocation |
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 |