CN110554912A - 调度设备执行任务的方法和装置 - Google Patents
调度设备执行任务的方法和装置 Download PDFInfo
- Publication number
- CN110554912A CN110554912A CN201810551595.8A CN201810551595A CN110554912A CN 110554912 A CN110554912 A CN 110554912A CN 201810551595 A CN201810551595 A CN 201810551595A CN 110554912 A CN110554912 A CN 110554912A
- Authority
- CN
- China
- Prior art keywords
- execution
- execution device
- target
- value
- algorithm
- 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
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/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
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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
-
- 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
-
- 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
-
- 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/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- 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]
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- 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/5033—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 data affinity
-
- 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
-
- 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/505—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 load
-
- 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/5055—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 software capabilities, i.e. software resources associated or available to the machine
-
- 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
-
- 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/5083—Techniques for rebalancing the load in a distributed system
-
- 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/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- 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/501—Performance criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/549—Remote execution
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)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开是关于一种调度设备执行任务的方法和装置,属于电子技术领域。所述方法包括:获取待执行的目标任务对应的目标算法;获取预设的目标算法的执行环境条件,以及各执行设备当前的执行环境信息;在各执行设备中,确定执行环境信息满足执行环境条件的目标执行设备;向所目标执行设备发送执行目标任务的控制消息。采用本公开,避免了挨个在多个执行设备上试执行目标任务,进而即使在任务的数量较多且执行设备的数量较多的情况下,也可以自动为不同算法匹配到能够成功执行它的执行设备,分配任务的效率较高,执行任务的效率也较高。
Description
技术领域
本公开是关于电子技术领域,尤其是关于一种调度设备执行任务的方法和装置。
背景技术
在需要执行图像分析任务时,一般是通过人工的方式将各任务分配到各执行设备上。例如,用户接到两个任务,一个任务是检测视频A中每帧图像中的人脸图像,另一个任务是对图像B进行羽化处理,用户可以手动将检测视频A中每帧画面的人脸的任务分配至执行设备C,将对图像B进行羽化处理的任务分配至执行设备D上。
在具体执行任务时,需要调用与任务对应的算法以实际执行任务。例如检测视频A中每帧画面的人脸的任务需要调用人脸识别算法,经常需要将每个任务依次分配至多个执行设备上尝试执行,直到能成功执行任务为止。在上述过程中,当任务被分配至执行设备时,如果当前执行设备不能成功执行任务,当前执行设备会向用户反馈执行失败提示信息。
在实现本公开的过程中,发明人发现至少存在以下问题:
当任务的数量较多、执行设备的数量也较多时,各执行设备的硬件资源被占用的比较严重,这样当某个任务在不同执行设备上尝试执行的时候,尝试失败的概率会比较大,尝试的次数可能非常多,执行任务的效率非常低。
发明内容
为了克服相关技术中存在的问题,本公开提供了以下技术方案:
根据本公开实施例的第一方面,提供一种调度设备执行任务的方法,所述方法包括:
获取待执行的目标任务对应的目标算法;
获取预设的所述目标算法的执行环境条件,以及各执行设备当前的执行环境信息;
在所述各执行设备中,确定执行环境信息满足所述执行环境条件的目标执行设备;
向所述目标执行设备发送执行所述目标任务的控制消息。
可选地,所述方法还包括:
获取所述各执行设备当前执行的任务对应的算法;
所述在所述各执行设备中,确定执行环境信息满足所述执行环境条件的目标执行设备,包括:
在所述各执行设备中,确定执行环境信息满足所述执行环境条件,且当前执行的任务对应的算法为所述目标算法的目标执行设备。
可选地,获取各执行设备当前的执行环境信息,包括:
获取各执行设备当前的计算能力值、芯片型号和系统环境信息,其中,所述系统环境信息包括系统位宽和内核版本;
所述在所述各执行设备中,确定执行环境信息满足所述执行环境条件的目标执行设备,包括:
在所述各执行设备中,确定所述计算能力值大于或者等于所述目标算法对应的计算能力值阈值、所述执行设备的芯片型号与所述目标算法对应的基准芯片型号相匹配、且所述系统环境信息与所述目标算法对应的基准系统环境信息相匹配的目标执行设备。
可选地,所述获取各执行设备当前的计算能力值,包括:
基于各执行设备当前的中央处理单元CPU空闲比例、图形处理器GPU空闲比例以及内存空闲比例确定所述各执行设备当前的计算能力值。
可选地,所述基于各执行设备当前的CPU空闲比例、GPU空闲比例以及内存空闲比例确定所述各执行设备当前的计算能力值,包括:
对于所述各执行设备中不是预设的基准执行设备的任一执行设备,将所述任一执行设备当前的CPU空闲比例乘以第一占比值,得到第一计算值;将所述任一执行设备当前的GPU空闲比例乘以第二占比值,得到第二计算值;将所述任一执行设备当前的内存空闲比例乘以第三占比值,得到第三计算值;确定所述第一计算值、所述第二计算值以及所述第三计算值中的最小值为所述任一执行设备当前的计算能力值,其中,所述第一占比值为所述任一执行设备的CPU基础性能值与所述基准执行设备的CPU基础性能值的比值,所述第二占比值为所述任一执行设备的GPU基础性能值与所述基准执行设备的GPU基础性能值的比值,所述第三占比值为所述任一执行设备的内存总容量与所述基准执行设备的内存总容量的比值;
对于所述基准执行设备,确定所述基准执行设备当前的CPU空闲比例、GPU空闲比例以及内存空闲比例中的最小值为所述基准执行设备当前的计算能力值。
可选地,所述方法还包括:
向算法仓库服务器发送指示消息,所述指示消息用于指示所述算法仓库服务器向所述目标执行设备发送所述目标算法对应的算法代码。
根据本公开实施例的第二方面,提供一种调度设备执行任务的装置,所述装置包括:
获取模块,用于获取待执行的目标任务对应的目标算法;
所述获取模块,用于获取预设的所述目标算法的执行环境条件,以及各执行设备当前的执行环境信息;
确定模块,用于在所述各执行设备中,确定执行环境信息满足所述执行环境条件的目标执行设备;
发送模块,用于向所述目标执行设备发送执行所述目标任务的控制消息。
可选地,所述获取模块,还用于获取所述各执行设备当前执行的任务对应的算法;
所述确定模块,用于在所述各执行设备中,确定执行环境信息满足所述执行环境条件,且当前执行的任务对应的算法为所述目标算法的目标执行设备。
可选地,所述获取模块,用于获取各执行设备当前的计算能力值、芯片型号和系统环境信息,其中,所述系统环境信息包括系统位宽和内核版本;
所述确定模块,用于在所述各执行设备中,确定所述计算能力值大于或者等于所述目标算法对应的计算能力值阈值、所述执行设备的芯片型号与所述目标算法对应的基准芯片型号相匹配、且所述系统环境信息与所述目标算法对应的基准系统环境信息相匹配的目标执行设备。
可选地,所述获取模块用于:
基于各执行设备当前的CPU空闲比例、GPU空闲比例以及内存空闲比例确定所述各执行设备当前的计算能力值。
可选地,所述获取模块用于:
对于所述各执行设备中不是预设的基准执行设备的任一执行设备,将所述任一执行设备当前的CPU空闲比例乘以第一占比值,得到第一计算值;将所述任一执行设备当前的GPU空闲比例乘以第二占比值,得到第二计算值;将所述任一执行设备当前的内存空闲比例乘以第三占比值,得到第三计算值;确定所述第一计算值、所述第二计算值以及所述第三计算值中的最小值为所述任一执行设备当前的计算能力值,其中,所述第一占比值为所述任一执行设备的CPU基础性能值与所述基准执行设备的CPU基础性能值的比值,所述第二占比值为所述任一执行设备的GPU基础性能值与所述基准执行设备的GPU基础性能值的比值,所述第三占比值为所述任一执行设备的内存总容量与所述基准执行设备的内存总容量的比值;
对于所述基准执行设备,确定所述基准执行设备当前的CPU空闲比例、GPU空闲比例以及内存空闲比例中的最小值为所述基准执行设备当前的计算能力值。
可选地,所述发送模块还用于:
向算法仓库服务器发送指示消息,所述指示消息用于指示所述算法仓库服务器向所述目标执行设备发送所述目标算法对应的算法代码。
根据本公开实施例的第三方面,提供一种计算机设备,所述计算机设备包括处理器、通信接口、存储器和通信总线,其中:
所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序,以实现上述调度设备执行任务的方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述调度设备执行任务的方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
通过本公开实施例提供的方法,可以根据目标算法的执行环境条件以及各设备当前的执行环境信息,自动为目标算法寻找能够成功执行它的目标执行设备。这样,避免了挨个在多个执行设备上试执行目标任务,进而即使在任务的数量较多且执行设备的数量较多的情况下,也可以自动为不同算法匹配到能够成功执行它的执行设备,分配任务的效率较高,执行任务的效率也较高。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。在附图中:
图1是根据一示例性实施例示出的一种调度设备执行任务的系统的结构示意图;
图2是根据一示例性实施例示出的一种调度设备执行任务的方法的流程图示意图;
图3是根据一示例性实施例示出的一种调度设备执行任务的方法的流程图示意图;
图4是根据一示例性实施例示出的一种调度设备执行任务的装置的结构示意图;
图5是根据一示例性实施例示出的一种计算机设备的结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开实施例提供了一种调度设备执行任务的方法,该方法可以由计算机设备如调度服务器实现,并可以由算法仓库服务器和执行设备配合实现。如图1所示,是本公开实施例提供的一种调度设备执行任务的系统的结构示意图。
其中,调度服务器可以包括处理器、存储器等部件。处理器,可以为CPU(CentralProcessing Unit,中央处理单元)等,可以用于在各执行设备中,确定执行环境信息满足执行环境条件的目标执行设备,等处理。存储器,可以为RAM(Random Access Memory,随机存取存储器),Flash(闪存)等,可以用于存储接收到的数据、处理过程所需的数据、处理过程中生成的数据等,如执行环境条件等。
调度服务器还可以包括收发器等。收发器,可以用于与服务器进行数据传输,收发器可以包括蓝牙部件、WiFi(Wireless-Fidelity,无线高保真技术)部件、天线、匹配电路、调制解调器等。
本公开一示例性实施例提供了一种调度设备执行任务的方法,如图2所示,该方法的处理流程可以包括如下的步骤:
步骤S210,获取待执行的目标任务对应的目标算法。
调度服务器可以直接获取待执行的目标任务,该待执行的目标任务可以是从终端获取的,用户可以对终端进行操作,以将待执行的目标任务下达给终端。
或者,用户可以通过预设的操作,触发生成查询算法仓库服务器中都预设有哪些算法,这样,用户就可以知道通过这些算法,执行设备能够做一些什么样的任务,接着,就可以把执行设备能做的任务作为待执行的目标任务下发到调度服务器。调度服务器可以获取待执行的目标任务。此外,用户还可以通过预设的操作,触发生成查询执行设备当前能执行的算法。这需要调度服务器综合算法仓库服务器和执行设备的情况,分析得到执行设备当前能执行的算法,并将执行设备当前能执行的算法的信息反馈至终端。
在调度服务器中可以预设有任务标识和算法的对应关系,调度服务器在获取到待执行的目标任务时,可以确定待执行的目标任务标识,进而可以确定与待执行的目标任务标识对应的目标算法。例如,待执行的目标任务是人脸识别任务,目标算法是与人脸识别相关的算法。待执行的目标任务是对图像进行羽化的任务,目标算法是与羽化相关的算法。可以通过目标算法,实现待执行的目标任务的实际执行。
步骤S220,获取预设的目标算法的执行环境条件,以及各执行设备当前的执行环境信息。
可以在调度服务器本地预先存储多个算法的执行环境条件。当调度服务器确定了待执行的目标任务对应的目标算法之后,可以确定与目标算法的执行环境条件。
或者,如图3所示,可以在算法仓库服务器中预先存储多个算法对应的算法代码、算法库(将算法代码编译之后得到的库文件),可以将算法代码和算法库打包,得到算法包。还可以在算法仓库服务器中预先存储各算法代码的执行环境条件。调度服务器可以向算法仓库服务器发送用于查询目标算法的执行环境条件的指示消息。算法仓库服务器接收到该指示消息之后,可以在预先存储的多个算法代码,以及各算法代码的执行环境条件中,查询目标算法的执行环境条件,将查询到的目标算法的执行环境条件发送到调度服务器。
再或者,如果用户在方案开始并没有给调度服务器下达任务,只是想查询算法仓库服务器都能做哪些算法。用户可以在终端中进行预设的查询操作。终端可以检测到查询指令,生成查询消息,将查询消息发送到调度服务器。调度服务器可以向算法仓库服务器查询算法仓库服务器都能做哪些算法,以及这些算法的执行环境条件。调度服务器可以将查询到的算法、算法的执行环境条件与执行设备关联之后返回给终端,终端可以显示算法和算法的执行环境条件,以供用户参考。
此外,如图3所示,调度服务器还可以向各执行设备发送用于查询各执行设备当前的执行环境信息的指示消息。各执行设备在接收到该指示消息之后,确定各自当前的执行环境信息,并将各自当前的执行环境信息发送到调度服务器。调度服务器可以获取各执行设备当前的执行环境信息。
或者,如果用户在方案开始并没有给调度服务器下达任务,只是想查询各执行设备当前的情况,和算法仓库服务器都能做哪些算法、这些算法的执行环境条件综合进行考虑,判断要给调度服务器下达哪些其所连接的执行设备能够做的任务。首先,用户可以在终端中进行预设的查询操作。终端可以检测到查询指令,生成查询消息,将查询消息发送到调度服务器。调度服务器可以向各执行设备查询各执行设备当前的执行环境信息。调度服务器将查询到的各执行设备当前的执行环境信息返回给终端,终端可以显示各执行设备当前的执行环境信息。进一步地,终端可以将算法、算法的执行环境条件、各执行设备当前的执行环境信息都进行显示。
步骤S230,在各执行设备中,确定执行环境信息满足执行环境条件的目标执行设备。
目标算法并非在任一执行设备上、或者以任一设备当前的情况都能成功执行,目标算法对执行环境是有条件的,具体条件由目标算法的执行环境条件记录。当任一执行设备的执行环境信息满足目标算法的执行环境条件时,可以由该设备执行该算法对应的待执行的目标任务。
可选地,获取各执行设备当前的执行环境信息的步骤可以包括:获取各执行设备当前的计算能力值、芯片型号和系统环境信息,其中,系统环境信息包括系统位宽和内核版本;在各执行设备中,确定执行环境信息满足执行环境条件的目标执行设备的步骤可以包括:在各执行设备中,确定计算能力值大于或者等于目标算法对应的计算能力值阈值、执行设备的芯片型号与目标算法对应的基准芯片型号相匹配、且系统环境信息与目标算法对应的基准系统环境信息相匹配的目标执行设备。
各执行设备可能不处于完全空闲的状态,有可能在调度服务器进行调度之前,就执行了某些任务。但是各执行设备不一定是完全忙碌的状态,即不一定不能再执行其他任务了,各执行设备能够执行其他任务的能力可以以计算能力值表示,该值可以以百分比的形式表示。当执行设备处于完全空闲的状态时,计算能力值可以是100%,当执行设备执行某一任务时,计算能力值可能变为43%,43%即为执行设备当前的计算能力值。
每个执行设备设置的芯片的芯片型号可能相同可能不相同。芯片型号包括CPU型号、GPU型号、同时集成CPU与GPU的芯片型号如TX1、显卡型号P4等。对于某些算法,对执行设备设置的芯片的芯片型号有要求。这是编写算法代码时决定的,当算法代码固定之后,需要的执行设备设置的芯片的芯片型号就固定。如果算法代码放在不匹配的执行设备设置上执行,可能会发生程序崩溃,或者运行错误。
系统位宽一般为32位、64位等,内核版本如24,它们同芯片型号相似,对于某些算法,对执行设备的系统位宽和内核版本有要求。这是编写算法代码时决定的,当算法代码固定之后,需要的执行设备的系统位宽和内核版本就固定。如果算法代码放在不匹配的执行设备上执行,可能会无法运行算法代码。当执行设备的系统位宽和内核版本都符合算法的需求时,算法代码才有可能成功执行。
各执行设备当前的执行环境信息可以以JSON(JavaScript Object Notation,JS对象简谱)表示,例如:
{
chip:tx1;
ability:0.5;
bitset:64;
kernel:24;
}
在各执行设备中,确定计算能力值大于或者等于目标算法对应的计算能力值阈值、执行设备的芯片型号与目标算法对应的基准芯片型号相匹配、且系统环境信息与目标算法对应的基准系统环境信息相匹配的目标执行设备。
可选地,获取各执行设备当前的计算能力值的步骤可以包括:基于各执行设备当前的CPU空闲比例、GPU空闲比例以及内存空闲比例确定各执行设备当前的计算能力值。
可以将算法对应的CPU空闲比例、GPU空闲比例以及内存空闲比例中的最大值确定为算法对应的计算能力值。将执行设备当前的CPU空闲比例、GPU空闲比例以及内存空闲比例中的最小值确定为执行设备当前的计算能力值。这样,当执行设备当前的CPU空闲比例、GPU空闲比例以及内存空闲比例中的最小值都能超过算法对应的CPU空闲比例、GPU空闲比例以及内存空闲比例中的最大值,执行设备当前的其他非最小值都能超过算法对应的其他非最大值,执行设备的计算能力值肯定可以大于或者等于算法对应的计算能力值阈值。
通过上述方式,可以将计算能力值对应的多个不同值,转换为一个值。当计算能力值对应的值增多时,也依然可以将多个原有值和增多值都转换为一个值。这样就可以不改变确定计算能力值的方式。
可选地,基于各执行设备当前的CPU空闲比例、GPU空闲比例以及内存空闲比例确定各执行设备当前的计算能力值的步骤可以包括:对于各执行设备中不是预设的基准执行设备的任一执行设备,将任一执行设备当前的CPU空闲比例乘以第一占比值,得到第一计算值;将任一执行设备当前的GPU空闲比例乘以第二占比值,得到第二计算值;将任一执行设备当前的内存空闲比例乘以第三占比值,得到第三计算值;确定第一计算值、第二计算值以及第三计算值中的最小值为任一执行设备当前的计算能力值,其中,第一占比值为任一执行设备的CPU基础性能值与基准执行设备的CPU基础性能值的比值,第二占比值为任一执行设备的GPU基础性能值与基准执行设备的GPU基础性能值的比值,第三占比值为任一执行设备的内存总容量与基准执行设备的内存总容量的比值;对于基准执行设备,确定基准执行设备当前的CPU空闲比例、GPU空闲比例以及内存空闲比例中的最小值为基准执行设备当前的计算能力值。
为了将所有执行设备进行统一管理、统一调度,可以将各执行设备的计算能力值进行归一化。可以在各执行设备中,选择一个基准执行设备,该基准执行设备可以是预先选择的市面上较为普通的执行设备。将基准执行设备在空闲并且没有存储任何数据的状态下的计算能力值设置为100%。对于各执行设备中不是预设的基准执行设备的任一执行设备,将任一执行设备当前的CPU空闲比例乘以第一占比值,得到第一计算值;将任一执行设备当前的GPU空闲比例乘以第二占比值,得到第二计算值;将任一执行设备当前的内存空闲比例乘以第三占比值,得到第三计算值。
例如,基准执行设备的CPU是双核的,如果不是预设的基准执行设备的任一执行设备是四核的,则第一占比值为任一执行设备的CPU基础性能值与基准执行设备的CPU基础性能值的比值,结果是2。因为相比于双核的CPU,四核的CPU的处理能力是其两倍。基准执行设备的CPU是双核的,如果不是预设的基准执行设备的任一执行设备是单核的,则第一占比值为任一执行设备的CPU基础性能值与基准执行设备的CPU基础性能值的比值,结果是0.5。因为相比于双核的CPU,单核的CPU的处理能力是其一半。
在确定了第一计算值、第二计算值以及第三计算值之后,选择其中的最小值为任一执行设备当前的计算能力值。基准执行设备的计算能力值也可以依照此方式确定。
可选地,本公开实施例提供的方法还包括:获取各执行设备当前执行的任务对应的算法;步骤S230可以包括:在各执行设备中,确定执行环境信息满足执行环境条件,且当前执行的任务对应的算法为目标算法的目标执行设备。
在执行环境信息满足执行环境条件,且当前执行的任务对应的算法为目标算法的目标执行设备中,由于目标执行设备已经下载了目标算法代码,因此可以省去下载目标算法代码的操作。算法代码的数据量可以达到几百兆,数据量较大,下载操作需要一定的耗时,尤其是算法仓库服务器和各执行设备之间的网络带宽较窄时,下载操作更加需要一定的耗时。
其次,由于目标执行设备已经加载过目标算法代码,因此省去加载目标算法代码的操作。
再者,目标执行设备当前的运行环境比较适合执行目标算法代码,目标算法代码的执行效率较高,从而目标任务的执行效率也较高。如果算法代码是在虚拟机或者容器中执行的,每当运行一种算法代码时,需要建立对应的虚拟机或者容器。在执行完毕时,可以销毁该虚拟机或者容器,以释放资源。由于目标执行设备已经建立了目标算法代码对应的虚拟机或者容器,目标任务对应的目标算法代码可以继续在该虚拟机或者容器中执行,省去建立虚拟机或者容器的操作,进而提高目标算法代码的执行效率。
步骤S240,向目标执行设备发送执行目标任务的控制消息。
如图3所示,在调度服务器确定了目标执行设备之后,可以向目标执行设备发送执行目标任务的控制消息。控制消息可以用于指示目标执行设备执行什么样的目标任务。同时,还可以将目标任务对应的文件发送到目标执行设备。其中,目标任务对应的文件可以包括图像、视频、音频等各种类型的文件。接着,执行设备可以对目标任务对应的文件通过目标算法进行相关处理。
可选地,本公开实施例提供的方法还包括:向算法仓库服务器发送指示消息,指示消息用于指示算法仓库服务器向目标执行设备发送目标算法对应的算法代码。
调度服务器可以向算法仓库服务器发送指示消息。如果所有算法代码都存储于算法仓库服务器中,调度服务器中没有存储任何算法代码,各执行设备中也没有存储任何算法代码,则目标执行设备在具体执行目标任务之前,需要从算法仓库服务器中下载目标算法,以能够执行目标任务。调度服务器可以向算法仓库服务器发送指示消息,算法仓库服务器在接收到指示消息之后,就可以确定哪台设备是目标执行设备,该目标执行设备需要什么样的算法代码。如图3所示,算法仓库服务器可以获取目标算法对应的算法代码,并发送至目标执行设备。
或者,目标执行设备在接收到执行目标任务的控制消息之后,确定执行目标任务所需的目标算法对应的算法代码。接着,从算法仓库服务器下载算法代码。
这样,各执行设备可以更加灵活地执行任务。相比于将某一或者某几种算法被固定在某一执行设备上,某一执行设备只能做某一或某几种个别的任务,本公开实施例提供的方法,使得执行设备执行任务的操作更加灵活。在有需求时,从算法仓库服务器动态地下载算法代码,可以使得任一执行设备可以执行所有算法仓库服务器能提供的算法代码对应的任务。
通过本公开实施例提供的方法,可以根据目标算法的执行环境条件以及各设备当前的执行环境信息,自动为目标算法寻找能够成功执行它的目标执行设备。这样,避免了挨个在多个执行设备上试执行目标任务,进而即使在任务的数量较多且执行设备的数量较多的情况下,也可以自动为不同算法匹配到能够成功执行它的执行设备,分配任务的效率较高,执行任务的效率也较高。
本公开又一示例性实施例提供了一种调度设备执行任务的装置,如图4所示,该装置包括:
获取模块410,用于获取待执行的目标任务对应的目标算法;
所述获取模块410,用于获取预设的所述目标算法的执行环境条件,以及各执行设备当前的执行环境信息;
确定模块420,用于在所述各执行设备中,确定执行环境信息满足所述执行环境条件的目标执行设备;
发送模块430,用于向所述目标执行设备发送执行所述目标任务的控制消息。
可选地,所述获取模块410,还用于获取所述各执行设备当前执行的任务对应的算法;
所述确定模块420,用于在所述各执行设备中,确定执行环境信息满足所述执行环境条件,且当前执行的任务对应的算法为所述目标算法的目标执行设备。
可选地,所述获取模块410,用于获取各执行设备当前的计算能力值、芯片型号和系统环境信息,其中,所述系统环境信息包括系统位宽和内核版本;
所述确定模块420,用于在所述各执行设备中,确定所述计算能力值大于或者等于所述目标算法对应的计算能力值阈值、所述执行设备的芯片型号与所述目标算法对应的基准芯片型号相匹配、且所述系统环境信息与所述目标算法对应的基准系统环境信息相匹配的目标执行设备。
可选地,所述获取模块410用于:
基于各执行设备当前的CPU空闲比例、GPU空闲比例以及内存空闲比例确定所述各执行设备当前的计算能力值。
可选地,所述获取模块410用于:
对于所述各执行设备中不是预设的基准执行设备的任一执行设备,将所述任一执行设备当前的CPU空闲比例乘以第一占比值,得到第一计算值;将所述任一执行设备当前的GPU空闲比例乘以第二占比值,得到第二计算值;将所述任一执行设备当前的内存空闲比例乘以第三占比值,得到第三计算值;确定所述第一计算值、所述第二计算值以及所述第三计算值中的最小值为所述任一执行设备当前的计算能力值,其中,所述第一占比值为所述任一执行设备的CPU基础性能值与所述基准执行设备的CPU基础性能值的比值,所述第二占比值为所述任一执行设备的GPU基础性能值与所述基准执行设备的GPU基础性能值的比值,所述第三占比值为所述任一执行设备的内存总容量与所述基准执行设备的内存总容量的比值;
对于所述基准执行设备,确定所述基准执行设备当前的CPU空闲比例、GPU空闲比例以及内存空闲比例中的最小值为所述基准执行设备当前的计算能力值。
可选地,所述发送模块430还用于:
向算法仓库服务器发送指示消息,所述指示消息用于指示所述算法仓库服务器向所述目标执行设备发送所述目标算法对应的算法代码。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
通过本公开实施例提供的装置,可以根据目标算法的执行环境条件以及各设备当前的执行环境信息,自动为目标算法寻找能够成功执行它的目标执行设备。这样,避免了挨个在多个执行设备上试执行目标任务,进而即使在任务的数量较多且执行设备的数量较多的情况下,也可以自动为不同算法匹配到能够成功执行它的执行设备,分配任务的效率较高,执行任务的效率也较高。
需要说明的是:上述实施例提供的调度设备执行任务的装置在调度设备执行任务时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的调度设备执行任务的装置与调度设备执行任务的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图5示出了本公开一个示例性实施例提供的计算机设备1900的结构示意图。该计算机设备1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)1910和一个或一个以上的存储器1920。其中,所述存储器1920中存储有至少一条指令,所述至少一条指令由所述处理器1910加载并执行以实现上述实施例所述的调度设备执行任务的方法。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (14)
1.一种调度设备执行任务的方法,其特征在于,所述方法包括:
获取待执行的目标任务对应的目标算法;
获取预设的所述目标算法的执行环境条件,以及各执行设备当前的执行环境信息;
在所述各执行设备中,确定执行环境信息满足所述执行环境条件的目标执行设备;
向所述目标执行设备发送执行所述目标任务的控制消息。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述各执行设备当前执行的任务对应的算法;
所述在所述各执行设备中,确定执行环境信息满足所述执行环境条件的目标执行设备,包括:
在所述各执行设备中,确定执行环境信息满足所述执行环境条件,且当前执行的任务对应的算法为所述目标算法的目标执行设备。
3.根据权利要求1所述的方法,其特征在于,获取各执行设备当前的执行环境信息,包括:
获取各执行设备当前的计算能力值、芯片型号和系统环境信息,其中,所述系统环境信息包括系统位宽和内核版本;
所述在所述各执行设备中,确定执行环境信息满足所述执行环境条件的目标执行设备,包括:
在所述各执行设备中,确定所述计算能力值大于或者等于所述目标算法对应的计算能力值阈值、所述执行设备的芯片型号与所述目标算法对应的基准芯片型号相匹配、且所述系统环境信息与所述目标算法对应的基准系统环境信息相匹配的目标执行设备。
4.根据权利要求3所述的方法,其特征在于,所述获取各执行设备当前的计算能力值,包括:
基于各执行设备当前的中央处理单元CPU空闲比例、图形处理器GPU空闲比例以及内存空闲比例确定所述各执行设备当前的计算能力值。
5.根据权利要求4所述的方法,其特征在于,所述基于各执行设备当前的CPU空闲比例、GPU空闲比例以及内存空闲比例确定所述各执行设备当前的计算能力值,包括:
对于所述各执行设备中不是预设的基准执行设备的任一执行设备,将所述任一执行设备当前的CPU空闲比例乘以第一占比值,得到第一计算值;将所述任一执行设备当前的GPU空闲比例乘以第二占比值,得到第二计算值;将所述任一执行设备当前的内存空闲比例乘以第三占比值,得到第三计算值;确定所述第一计算值、所述第二计算值以及所述第三计算值中的最小值为所述任一执行设备当前的计算能力值,其中,所述第一占比值为所述任一执行设备的CPU基础性能值与所述基准执行设备的CPU基础性能值的比值,所述第二占比值为所述任一执行设备的GPU基础性能值与所述基准执行设备的GPU基础性能值的比值,所述第三占比值为所述任一执行设备的内存总容量与所述基准执行设备的内存总容量的比值;
对于所述基准执行设备,确定所述基准执行设备当前的CPU空闲比例、GPU空闲比例以及内存空闲比例中的最小值为所述基准执行设备当前的计算能力值。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
向算法仓库服务器发送指示消息,所述指示消息用于指示所述算法仓库服务器向所述目标执行设备发送所述目标算法对应的算法代码。
7.一种调度设备执行任务的装置,其特征在于,所述装置包括:
获取模块,用于获取待执行的目标任务对应的目标算法;
所述获取模块,用于获取预设的所述目标算法的执行环境条件,以及各执行设备当前的执行环境信息;
确定模块,用于在所述各执行设备中,确定执行环境信息满足所述执行环境条件的目标执行设备;
发送模块,用于向所述目标执行设备发送执行所述目标任务的控制消息。
8.根据权利要求7所述的装置,其特征在于,所述获取模块,还用于获取所述各执行设备当前执行的任务对应的算法;
所述确定模块,用于在所述各执行设备中,确定执行环境信息满足所述执行环境条件,且当前执行的任务对应的算法为所述目标算法的目标执行设备。
9.根据权利要求7所述的装置,其特征在于,所述获取模块,用于获取各执行设备当前的计算能力值、芯片型号和系统环境信息,其中,所述系统环境信息包括系统位宽和内核版本;
所述确定模块,用于在所述各执行设备中,确定所述计算能力值大于或者等于所述目标算法对应的计算能力值阈值、所述执行设备的芯片型号与所述目标算法对应的基准芯片型号相匹配、且所述系统环境信息与所述目标算法对应的基准系统环境信息相匹配的目标执行设备。
10.根据权利要求9所述的装置,其特征在于,所述获取模块用于:
基于各执行设备当前的CPU空闲比例、GPU空闲比例以及内存空闲比例确定所述各执行设备当前的计算能力值。
11.根据权利要求10所述的装置,其特征在于,所述获取模块用于:
对于所述各执行设备中不是预设的基准执行设备的任一执行设备,将所述任一执行设备当前的CPU空闲比例乘以第一占比值,得到第一计算值;将所述任一执行设备当前的GPU空闲比例乘以第二占比值,得到第二计算值;将所述任一执行设备当前的内存空闲比例乘以第三占比值,得到第三计算值;确定所述第一计算值、所述第二计算值以及所述第三计算值中的最小值为所述任一执行设备当前的计算能力值,其中,所述第一占比值为所述任一执行设备的CPU基础性能值与所述基准执行设备的CPU基础性能值的比值,所述第二占比值为所述任一执行设备的GPU基础性能值与所述基准执行设备的GPU基础性能值的比值,所述第三占比值为所述任一执行设备的内存总容量与所述基准执行设备的内存总容量的比值;
对于所述基准执行设备,确定所述基准执行设备当前的CPU空闲比例、GPU空闲比例以及内存空闲比例中的最小值为所述基准执行设备当前的计算能力值。
12.根据权利要求7所述的装置,其特征在于,所述发送模块还用于:
向算法仓库服务器发送指示消息,所述指示消息用于指示所述算法仓库服务器向所述目标执行设备发送所述目标算法对应的算法代码。
13.一种计算机设备,其特征在于,所述计算机设备包括处理器、通信接口、存储器和通信总线,其中:
所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序,以实现权利要求1-6任一所述的方法步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一所述的方法步骤。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810551595.8A CN110554912B (zh) | 2018-05-31 | 2018-05-31 | 调度设备执行任务的方法和装置 |
EP19812398.6A EP3805925A4 (en) | 2018-05-31 | 2019-05-28 | METHOD AND DEVICE FOR EXECUTING A TASK BY A PLANNING DEVICE |
PCT/CN2019/088812 WO2019228346A1 (zh) | 2018-05-31 | 2019-05-28 | 调度设备执行任务的方法和装置 |
US15/733,872 US11526377B2 (en) | 2018-05-31 | 2019-05-28 | Method for executing task by scheduling device, and computer device and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810551595.8A CN110554912B (zh) | 2018-05-31 | 2018-05-31 | 调度设备执行任务的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110554912A true CN110554912A (zh) | 2019-12-10 |
CN110554912B CN110554912B (zh) | 2022-05-20 |
Family
ID=68697393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810551595.8A Active CN110554912B (zh) | 2018-05-31 | 2018-05-31 | 调度设备执行任务的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11526377B2 (zh) |
EP (1) | EP3805925A4 (zh) |
CN (1) | CN110554912B (zh) |
WO (1) | WO2019228346A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11354060B2 (en) * | 2018-09-11 | 2022-06-07 | Portworx, Inc. | Application snapshot for highly available and distributed volumes |
CN113687932B (zh) * | 2021-08-30 | 2024-07-12 | 上海商汤科技开发有限公司 | 一种任务调度的方法、装置、系统、电子设备及存储介质 |
CN114138473B (zh) * | 2021-11-23 | 2024-06-25 | 西安深信智行科技有限公司 | 一种基于混合模式的弹性调度装置及方法 |
CN114254156A (zh) * | 2021-12-24 | 2022-03-29 | 中电信数智科技有限公司 | 视频处理方法、算法仓创建方法、装置及服务器 |
CN114493672A (zh) * | 2021-12-30 | 2022-05-13 | 广州趣丸网络科技有限公司 | 虚拟物品的发放方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103366238A (zh) * | 2012-03-30 | 2013-10-23 | 北京千橡网景科技发展有限公司 | 自动分配计算任务的方法和设备 |
CN103500123A (zh) * | 2013-10-12 | 2014-01-08 | 浙江大学 | 异构环境中并行计算调度方法 |
CN105701099A (zh) * | 2014-11-25 | 2016-06-22 | 阿里巴巴集团控股有限公司 | 用于在分布式环境中执行任务的方法、装置及系统 |
CN106874120A (zh) * | 2017-02-28 | 2017-06-20 | 联想(北京)有限公司 | 计算节点的处理器资源优化方法、计算节点及服务器集群 |
CN107992359A (zh) * | 2017-11-27 | 2018-05-04 | 江苏海平面数据科技有限公司 | 一种云环境下代价感知的任务调度算法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7346186B2 (en) | 2001-01-30 | 2008-03-18 | Nice Systems Ltd | Video and audio content analysis system |
US20040205730A1 (en) * | 2001-06-11 | 2004-10-14 | Week Jon J. | System and method for building libraries and groups of computer programs |
US8336040B2 (en) * | 2004-04-15 | 2012-12-18 | Raytheon Company | System and method for topology-aware job scheduling and backfilling in an HPC environment |
US7596788B1 (en) * | 2004-05-11 | 2009-09-29 | Platform Computing Corporation | Support of non-trivial scheduling policies along with topological properties |
US7987075B2 (en) * | 2008-06-30 | 2011-07-26 | Hitachi, Ltd | Apparatus and method to develop multi-core microcomputer-based systems |
US8370472B2 (en) * | 2008-09-02 | 2013-02-05 | Ca, Inc. | System and method for efficient machine selection for job provisioning |
CN102624865B (zh) | 2012-01-09 | 2014-06-18 | 浙江大学 | 集群负载预测方法及分布式集群管理系统 |
US10902464B2 (en) | 2013-08-27 | 2021-01-26 | Verizon Media Inc. | Spark satellite clusters to HADOOP data stores |
US10069681B2 (en) * | 2015-12-31 | 2018-09-04 | Amazon Technologies, Inc. | FPGA-enabled compute instances |
CN107977257A (zh) * | 2016-10-25 | 2018-05-01 | 杭州海康威视数字技术股份有限公司 | 一种任务调度方法及装置 |
US10244034B2 (en) * | 2017-03-29 | 2019-03-26 | Ca, Inc. | Introspection driven monitoring of multi-container applications |
CN107092522B (zh) * | 2017-03-30 | 2020-07-21 | 阿里巴巴集团控股有限公司 | 实时数据的计算方法及装置 |
US20180314971A1 (en) * | 2017-04-26 | 2018-11-01 | Midea Group Co., Ltd. | Training Machine Learning Models On A Large-Scale Distributed System Using A Job Server |
US10990440B2 (en) * | 2018-02-06 | 2021-04-27 | Rubrik, Inc. | Real-time distributed job scheduler with job self-scheduling |
US20190250946A1 (en) * | 2018-02-13 | 2019-08-15 | International Business Machines Corporation | Migrating a software container taking into account resource constraints |
-
2018
- 2018-05-31 CN CN201810551595.8A patent/CN110554912B/zh active Active
-
2019
- 2019-05-28 EP EP19812398.6A patent/EP3805925A4/en active Pending
- 2019-05-28 WO PCT/CN2019/088812 patent/WO2019228346A1/zh unknown
- 2019-05-28 US US15/733,872 patent/US11526377B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103366238A (zh) * | 2012-03-30 | 2013-10-23 | 北京千橡网景科技发展有限公司 | 自动分配计算任务的方法和设备 |
CN103500123A (zh) * | 2013-10-12 | 2014-01-08 | 浙江大学 | 异构环境中并行计算调度方法 |
CN105701099A (zh) * | 2014-11-25 | 2016-06-22 | 阿里巴巴集团控股有限公司 | 用于在分布式环境中执行任务的方法、装置及系统 |
CN106874120A (zh) * | 2017-02-28 | 2017-06-20 | 联想(北京)有限公司 | 计算节点的处理器资源优化方法、计算节点及服务器集群 |
CN107992359A (zh) * | 2017-11-27 | 2018-05-04 | 江苏海平面数据科技有限公司 | 一种云环境下代价感知的任务调度算法 |
Also Published As
Publication number | Publication date |
---|---|
US11526377B2 (en) | 2022-12-13 |
CN110554912B (zh) | 2022-05-20 |
WO2019228346A1 (zh) | 2019-12-05 |
US20210224108A1 (en) | 2021-07-22 |
EP3805925A1 (en) | 2021-04-14 |
EP3805925A4 (en) | 2021-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110554912B (zh) | 调度设备执行任务的方法和装置 | |
CN115328663B (zh) | 基于PaaS平台进行资源调度的方法、装置、设备和存储介质 | |
CN109218133B (zh) | 网络速度测试系统、方法、装置及计算机可读存储介质 | |
US20180159920A1 (en) | Server load balancing method, apparatus, and server device | |
CN115237582B (zh) | 处理多个任务的方法、处理设备以及异构计算系统 | |
CN110933178B (zh) | 调整集群系统内的节点配置的方法及服务器 | |
CN110968331B (zh) | 应用程序运行的方法和装置 | |
CN111565154B (zh) | 图像识别请求处理方法、装置、计算机设备和存储介质 | |
CN114615340B (zh) | 一种请求处理方法、装置、计算机设备和存储装置 | |
CN110659131A (zh) | 任务处理方法、电子装置、计算机设备及存储介质 | |
CN112685148A (zh) | 海量终端的异步通信方法、装置、计算机设备和存储介质 | |
WO2019117767A1 (en) | Method, function manager and arrangement for handling function calls | |
CN114979286A (zh) | 容器服务的访问控制方法、装置、设备及计算机存储介质 | |
CN109840132B (zh) | 容器的编排方法、装置及存储介质 | |
CN111796906A (zh) | 一种容器管理方法、装置、设备及存储介质 | |
CN112491956B (zh) | 物联网设备中通讯模组的升级方法、装置和计算机设备 | |
CN112764897B (zh) | 任务请求的处理方法、装置、系统及计算机可读存储介质 | |
CN115221041A (zh) | 多设备的测试方法、装置、电子设备及存储介质 | |
CN114924888A (zh) | 资源配置方法、数据处理方法、装置、设备和存储介质 | |
CN112988339B (zh) | 一种数据管理方法及装置 | |
CN111309467A (zh) | 任务分发方法及装置、电子设备及存储介质 | |
CN110134502A (zh) | 任务处理方法、装置、系统、计算机设备和存储介质 | |
CN111382116B (zh) | 数据接收方法、装置及相关产品 | |
CN114710477B (zh) | 执行命令的方法和装置 | |
CN117349007A (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 |