CN116089051A - 一种任务分配方法、装置及系统 - Google Patents

一种任务分配方法、装置及系统 Download PDF

Info

Publication number
CN116089051A
CN116089051A CN202111279123.XA CN202111279123A CN116089051A CN 116089051 A CN116089051 A CN 116089051A CN 202111279123 A CN202111279123 A CN 202111279123A CN 116089051 A CN116089051 A CN 116089051A
Authority
CN
China
Prior art keywords
computing
subtasks
subtask
resource
task
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
Application number
CN202111279123.XA
Other languages
English (en)
Inventor
蔡晨东
田行辉
黄全充
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202111279123.XA priority Critical patent/CN116089051A/zh
Publication of CN116089051A publication Critical patent/CN116089051A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种任务分配方法、装置及系统。该方法中,基于任务的目标处理速率、计算节点的计算资源阈值、预设的第一子任务的计算资源使用量值和资源预测模型,将该任务划分为n个子任务,其中,资源预测模型是基于训练数据采用机器学习算法进行训练得到的,所述训练数据包括多个子任务中每个子任务被所述计算节点执行时的处理速率和计算节点执行所述子任务的计算资源使用量;将所述n个子任务分配至所述m个计算节点,本申请使用包括子任务的处理速率的训练数据来训练资源预测模型,使得该资源预测模型能够更加准确的预测出计算节点执行子任务的资源利用率或处理速率,使得任务分配更加精确,可以提高计算节点的资源利用率和任务的处理性能。

Description

一种任务分配方法、装置及系统
技术领域
本申请涉及计算机技术领域,尤其涉及一种任务分配方法、装置及系统。
背景技术
一种计算集群,包括管理节点和多个计算节点,管理节点用于接收待处理的任务,并将任务分散至多个计算节点上,若任务分配过多,会产生因调度竞争导致该计算节点的每秒响应数量(response per second,RPS)下降,从而降低整体任务的处理效率。若任务分配过少,会产生计算节点上的资源闲置,而部署更多的计算节点,导致成本开销增大。
发明内容
本申请提供一种任务分配的方法、装置及系统,可以提高计算节点的资源利用率。
第一方面,本申请实施例提供了一种任务分配方法,该方法可以应用于计算系统,该计算系统包括管理节点和多个计算节点。在该方法中,管理节点确定任务的目标处理速率;将所述任务划分为分配至m个计算节点的n个子任务;该n个子任务的处理速率之和等于该任务的目标处理速率;其中,该n个子任务至少包括L个计算资源使用量为U1的第一子任务和Q个第二子任务,第二子任务的预估计算资源使用量是基于计算节点的预设计算资源阈值和述计算节点被分配的第一子任务的数量确定的;第二子任务的处理速率是根据资源预测模型和该第二子任务的预估计算资源使用量确定的,资源预测模型是基于训练数据采用机器学习算法进行训练得到的,该训练数据包括多个子任务中每个子任务的处理速率和计算节点执行所述子任务的计算资源使用量;之后,将所述n个子任务分配至所述m个计算节点;所述n和m均取大于1的整数,所述L取正整数,所述Q取0或正整数;其中,每个计算节点用于处理所述n个子任务中的一个或多个子任务,以使每个计算节点用于执行被分配的一个或多个子任务的计算资源使用量之和达到所述计算节点的预设计算资源阈值。
通过上述方法,使用包括子任务的处理速率的训练数据来训练资源预测模型,使得该资源预测模型能够更加准确的预测出计算节点执行子任务的资源利用率,使得任务分配更加精确,可以提高计算节点的资源利用率和任务的处理性能。
在一种可能的实施方式中,该任务包括多个待处理的对象,所述任务的目标处理速率为所述m个计算节点在单位时间处理的对象的数量。
在一种可能的实施方式中,该m个计算节点中的一个计算节点被分配的一个或多个子任务包括a个所述第一子任务和b个所述第二子任务,所述第二子任务的计算资源使用量满足于:
U2=U0-a*U1;
其中,U2表示第二子任务的计算资源使用量,U0表示计算节点的预设计算资源阈值,a取大于0的整数;b取大于等于0的整数。
在一种可能的实施方式中,所述计算节点使用任务模型处理任一子任务;所述资源预测模型的输入数据包括所述任务模型的模型参数;所述模型参数包括:卷积层个数、池化层个数、线性层个数、激活函数个数、批处理数量batchsize中的一项或多项。
通过上述方法,使用包括任务模型的模型参数的训练数据来训练资源预测模型,使得该资源预测模型能够更加准确的预测出推理模型的资源利用率或处理速率。
在一种可能的实施方式中,任一个所述计算节点被分配的多个子任务满足于下列条件中的一项或多项:所述多个子任务的预估资源使用量未超过任一个所述计算节点的预设计算资源阈值;所述多个子任务的预估计算资源使用量为所述一个或多个子任务中每个子任务的预估计算资源使用量之和;所述多个子任务组合的极限资源使用量不小于所述多个子任务的预估计算资源使用量;所述多个子任务的极限资源使用量满足于:
Figure BDA0003330644070000021
Figure BDA0003330644070000022
其中,Ua表示k个子任务组合的极限资源值,k取正整数;Uexi表示子任务i的极限资源值,所述子任务i的极限资源值为预设值。
通过上述方法,基于计算节点运行多个推理模型时的极限资源值来确定可以分配至计算节点的多个子任务,相对于由于设备亲和性问题导致计算节点无法达到被分配的多个子任务的RPS的方式,可以进一步提高任务处理性能。
在一种可能的实施方式中,所述计算资源包括处理器资源、内存资源。
第二方面,本申请实施例还提供了一种任务分配装置,该任务分配装置具有实现上述第一方面的方法实例中管理节点相应的功能,有益效果可以参见第一方面的描述此处不再赘述。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,所述任务分配装置的结构中包括确定模块、处理模块和分配模块,这些模块可以执行上述第一方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
第三方面,本申请实施例还提供了一种任务分配装置,该任务分配装置具有实现上述第一方面的方法实例中管理节点相应的功能,有益效果可以参见第一方面的描述此处不再赘述。所述装置的结构中包括处理器和存储器,可选的,还可以包括通信接口。所述处理器被配置为支持所述任务分配装置执行上述第一方面方法中管理节点相应的功能。所述存储器与所述处理器耦合,其保存所述通信装置必要的计算机程序指令和数据。所述任务分配装置的结构中还包括通信接口,用于与其他设备进行通信,如可以接收待处理的任务。
第四方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面以及第一方面的各个可能的实施方式中所述的方法。
第六方面,本申请还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面以及第一方面的各个可能的实施方式中所述的方法。
第七方面,本申请还提供一种计算机芯片,所述芯片与存储器相连,所述芯片用于读取并执行所述存储器中存储的软件程序,执行上述第一方面以及第一方面的各个可能的实施方式中所述的方法。
第八方面,本申请实施例还提供了一种计算系统,该计算系统包括管理设备和多个计算设备,管理设备具有实现上述第一方面的方法实例中管理节点相应的功能,计算设备,用于执行管理设备分配给该计算设备的子任务;有益效果可以参见第一方面的描述此处不再赘述。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本申请实施例提供的一种可能的应用场景示意图;
图2为本申请实施例提供的一种计算设备的结构示意图;
图3为本申请实施例提供的一种确定资源预测模型的流程示意图;
图4为本申请实施例提供的一种任务分配方法所对应的流程示意图;
图5为本申请实施例提供的一种任务分配示例的示意图;
图6为本申请实施例提供的另一种任务分配方法所对应的流程示意图;
图7为本申请实施例提供的另一种任务分配示例的示意图;
图8为本申请提供的一种任务分配装置的结构示意图;
图9为本申请提供的另一种任务分配装置的结构示意图。
具体实施方式
图1为本申请实施例提供的一种应用场景示意图。
如图1所示,该应用场景示例性地示出了一条生产线,该生产线例如用于通过传送带传送产品,该生产线的某些位置安装有一个或多个摄像装置101(图1示出了摄像装置101-1、摄像装置101-2,但本申请实施例并不限于两个),摄像装置101用于对生产线上的通过的产品进行拍照,并将获得的图像传输到管理节点102,管理节点102将图像分配到不同的计算节点103上,计算节点103可以用于对图像进行检测、推理等处理,如检测图像中的产品是否存在缺陷等。
本申请中,管理节点102和计算节点103可以位于一个计算设备上,计算设备可以是物理机,也可以是虚拟机。物理机包括但不限于桌面电脑、服务器、笔记本电脑以及移动设备。管理节点102可以是计算设备上部署的一种软件或服务,用于管理任务,如将任务调度至计算节点103,103可以是计算设备上具有算力的组件。
图2为本申请实施例提供的一种计算设备的架构示意图。
在硬件层面,如图2所示,计算设备120包括一个或多个主处理器123(图1示出了一个主处理器123,但本申请不限于一个主处理器123)、一个或多个协处理器124(图1示出了三个协处理器124,但本申请不限于三个协处理器124)、内存125、网卡126。其中,主处理器123、协处理器124、内存125和网卡126之间通过总线127连接。
主处理器123可以执行本申请实施例提供的任务分配方法,以实现图1中管理节点102的功能。协处理器124可以是图1中的计算节点103。
主处理器123,可以是一个中央处理器(central processing unit,CPU),可以用于管理、调度任务,如主处理器123执行本申请实施例提供的任务分配方法,将任务分散至不同的协处理器124进行处理。示例性地,以图1的应用场景为例,主处理器123通过网卡126接收待处理的图像,将这些图像划分为多个子任务,每个子任务包括一帧或多帧图像,并将这些子任务分配给一个或多个协处理器124。
协处理器124,可以用于对数据进行计算或处理,例如图像检测、数据压缩、重复数据删除、文件查询、数据库查询等等。示例性地,协处理器124可以用于执行主处理器123分配的任务,如前述的,协处理器124可以使用推理模型对图像进行缺陷检测等,下文会对推理模型进行详细介绍,这里不做赘述。需要说明的是,上文中的图像,以及使用模型对任务进行处理仅为举例,本申请实施例中对任务的类型、以及对任务进行处理的方式不做限定。
协处理器124包括但不限于:图形处理器(graphics processing unit,GPU)、数据计算单元(data processing unit,DPU)、特殊应用集成电路(application specificintegrated circuit,ASIC)、系统级芯片(system on chip,SOC)、可编程门阵列(fieldprogrammable gate array,FPGA)、嵌入式神经网络处理器(neural network processingunit,NPU)、CPU等等。
值得注意的是,协处理器124可以是独立的部件,也可以与计算设备120的其他部件组合,如配置有协处理器124的网卡、配置有协处理器124的固态硬盘(Solid-statedrive/Solid-state disk,SSD)等。本申请实施例对协处理器的形态不做限定,任何具有运算功能的组件中的处理器均可以作为协处理器。
内存125,是指与处理器(如主处理器、协处理器)直接交换数据的内部存储器,它可以随时读写数据,而且速度很快,作为操作系统或其他正在运行中的程序的临时数据存储器。在本申请中,协处理器124在对图像进行检测时,内存125可以用于存储该图像、用于检测图像的模型以及协处理器124用于进行图像检测的程序代码。
内存125包括至少两种存储器,例如内存125既可以是随机存取存储器,也可以是只读存储器(read only memory,ROM)。举例来说,随机存取存储器是动态随机存取存储器(dynamic random access memory,DRAM),或者存储级存储器(storage class memory,SCM)。DRAM是一种半导体存储器,与大部分RAM一样,属于一种易失性存储器(volatilememory)设备。SCM是一种同时结合传统储存装置与存储器特性的复合型储存技术,存储级存储器能够提供比硬盘更快速的读写速度,但存取速度上比DRAM慢,在成本上也比DRAM更为便宜。然而,DRAM和SCM在本申请实施例中只是示例性的说明,内存还可以包括其他随机存取存储器,例如静态随机存取存储器(static random access memory,SRAM)等。而对于只读存储器,举例来说,可以是可编程只读存储器(programmable read only memory,PROM)、可抹除可编程只读存储器(erasable programmable read only memory,EPROM)等。另外,内存125还可以是双列直插式存储器模块或双线存储器模块(dual in-line memorymodule,DIMM),即由DRAM组成的模块。实际应用中,服务端20中可配置多个内存125,以及不同类型的内存125。本实施例不对内存125的数量和类型进行限定。
网卡126,用于计算设备120内部的组件之间通信,或与外部设备(如摄像装置101)通信,例如,计算设备120通过网卡126接收摄像装置101发送的图像。
需要说明的是,(1)图2所示的结构并不构成对计算设备120的具体限定。计算设备120可以包括比图示更多或更少的部件,如计算设备120还可以包括硬盘等,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。(2)上述架构仅为举例,在本申请另一种实施例中,管理节点102和计算节点103还可以位于不同的计算设备中,例如,计算设备120的主处理器123可以将任务调度至计算设备130的一个或多个协处理器上,本申请实施例对此不做限定。
接下来以附图2所示的系统为例,对本申请实施例提供的任务分配方法进行说明。为了便于描述,本申请以下实施例,均以管理节点102和计算节点103为例进行说明。如下以涉及的任务为以图像为粒度对图像进行检测为例,对本申请实施例提供的技术方案进行说明。
本申请实施例中,管理节点102可以将所有待检测的图像看作一个总的任务,然后将该总的任务划分为多个子任务,将其中的一个或多个子任务分配至不同的计算节点103进行处理。比如,管理节点102将任务划分为3个子任务,在一种可能的情况中,该3个子任务可以分配给3个计算节点103,每个计算节点103用于执行一个子任务,具体的,计算节点103可以通过一个进程执行一个子任务,如通过一个进程运行一个推理模型来处理子任务。在另一种可能的情况中,该3个子任务还可以分配给1个计算节点103,具体的,该计算节点103可以通过3个并发的进程分别执行该3个子任务,每个进程运行一个推理模型。应理解,这种分配方式能够执行的前提是该计算节点103可以提供并发运行3个推理模型所需的总的计算资源,如处理器资源、内存资源。
那么,如何量化推理模型执行子任务所需的计算资源便是任务分配中需要解决的问题,本申请实施例提供一种资源预测模型,管理节点102可以使用资源预测模型来预测计算节点103上运行推理模型所需的计算资源。
接下来以计算节点使用推理模型处理任务,以及计算资源为处理器资源为例,提供一种资源预测模型的训练方法。
图3为本申请实施例提供的一种资源预测模型的训练方法所对应的流程示意图,如图3所示,该方法包括如下步骤:
步骤301:采集用于训练资源预测模型的训练数据;
该资源预测模型可以是使用训练数据采用机器学习算法进行训练而得到的机器学习模型,机器学习模型例如是神经网络模型或深度学习模型等,本申请实施例对此做限定。
本申请中的资源预测模型可以用于预测计算节点103使用推理模型执行不同任务时的计算资源使用量。其中,计算资源包括但不限于处理器资源、内存资源。其中,处理器资源的使用量可以处理器的资源利用率来表征;内存资源的使用量可以以内存使用量来表征。当然,也可以通过其他参数来表征,本申请对此不做限定。应理解,这里的处理器资源是指计算节点103上的计算资源,如图1中计算节点103为协处理器124时,该处理器资源是指协处理器124的资源。
在一种实施方式中,每个预测模型可以与一种推理模型相对应,比如使用推理模型A得到的训练数据训练得到资源预测模型A,则预测模型A用于预测推理模型A执行子任务的资源利用率。使用推理模型B得到的训练数据训练得到资源预测模型B,则预测模型B用于预测推理模型A执行子任务的资源利用率。
示例性地,该资源预测模型的输入数据包括但不限于:推理模型处理任务时的响应速率(如每秒响应数量(response per second,RPS)、推理模型的模型参数。
其中,模型参数用于表征推理模型的结构或功能,示例性地,一种推理模型的模型参数包括但不限于卷积层个数、池化层个数、线性层个数、激活函数个数、批处理数量(batchsize)中的一项或多项。输出数据包括但不限于:处理器的资源利用率,可选的,还可以包括内存使用量。
接下来以图像为单位对部分参数进行介绍,其余模型参数这里不做重点说明。
(1)batchsize表示推理模型一个批次可以处理的图像的数量,如若推理模型的batchsize为8,则表示推理模型一个批次可以处理8帧图像。若推理模型的batchsize为16,则表示推理模型一个批次可以处理16帧图像。本申请存在两种推理模型,一种为推理模型的Batchsize固定不变,另一种推理模型为Batchsize的值可调整。应注意,即使推理模型的Batchsize可调整,在处理任务时,该Batchsize的值也是固定的,因此,下文中为便于说明,不论该推理模型的Batchsize是否可调整,均将不同Batchsize的推理模型看作不同的模型,如该推理模型的Batchsize为8时为一类推理模型,Batchsize为16时为另一类推理模型。
(2)RPS表示推理模型每秒能够输出的图像的数量,比如,推理模型的batchsize为8,该推理模型一秒能够处理完成4个批次,则该推理模型的RPS为32。
该资源预测模型的训练数据包括多组样本数据,与该资源预测模型相对应,每组样本数据包括前述的该资源预测模型的输入数据和输出数据。为便于说明,如下以资源预测模型的数据输入包括RPS和batchsize,输出数据包括处理器的资源利用率,即样本数据包括(RPS,Batchsize,U(表示处理器的资源利用率))为例,进行说明:
以一个推理模型为例,基于该推理模型的多组样本数据的采集流程可以包括:记录单个计算节点103运行单个推理模型时,该推理模型在不同RPS和Batchsize的组合下,计算节点103的(协处理器)资源利用率,通过该方式,得到该推理模型的多组样本数据。
值得注意的是,Batchsize固定,当达到推理模型的最大处理量时,资源利用率的值不再改变,即使请求速率增加,响应速率RPS也不再增长。如Batchsize=8,PRS=40时,U=30%。Batchsize=8,PRS=48时,U仍等于30%,此时,该Batchsize为8的推理模型具有一个资源利用率最大值即30%。示例性地,在采集该推理模型的样本数据时,可以取至该推理模型的资源利用率最大值为止,例如,采集的该推理模型的训练数据可以包括:(8,8,10%),(12,8,12%),(16,8,16%),(20,8,19%),(24,8,20%),(32,8,25%),(40,8,30%)。应注意,本申请还会记录该推理模型的资源利用率最大值,如推理模型执行RPS未40的子任务的资源利用率达到资源利用率最大值30%,后续在任务分配时,基于该资源利用率最大值进行任务分配,下文会进行详细说明。
需要说明的是,上述训练数据的取值方式和数值变化仅为举例,不构成对本申请训练数据的取值方式和数值的限定。另外,用户还可以对采集到的训练数据进行筛选,以提高训练精度,本申请实施例对此不做限定。
通过上述方式依此采集不同的推理模型的训练数据,以使用该训练数据得到该推理模型的资源预测模型。这里的推理模型,可以是部署在业务场景中用于处理实际任务的那些推理模型。比如,沿着图1所示的生产线部署有摄像机A和摄像B,分别用于拍摄不同生产流程的产品,假设ModelA用来处理摄像机A传输过来的图像,ModelB用来处理摄像机B传输过程的图像。则针对该业务场景,可以仅采集ModelA的训练数据和ModelB的训练数据。
步骤302,使用采集到的训练数据进行训练,得到训练后的资源预测模型。
仍以一个推理模型为例,使用该推理模型的训练数据对机器学习算法进行训练,训练完成后得到该推理模型对应的资源预测模型。该资源预测模型可以用于预测该推理模型在不同RPS下的资源利用率。如,训练后的资源预测模型可以得到该推理模型的(RPS,Batchsize)和U的函数关系,其中,Batchsize可以看作固定值,也就是说,训练后该资源预测模型可以得到该推理模型的RPS和U之间的函数关系。
上文是以资源利用率为例示出的。训练数据还可以是(RPS,Batchsize,U,内存使用量),同理,使用该样本数据训练出的资源预测模型,还可以用于确定该推理模型的RPS和内存使用量的函数关系,这里不再赘述。
应理解的是,一组样本数据的输入数据还可以包括该推理模型的其他静态参数,如前述的卷积层个数等,本申请实施例对此不做限定。
通过上述方式,依此训练各推理模型的资源预测模型。
接下来对使用该预测模型辅助任务分配的流程进行介绍。
图4为本申请实施例提供的一种任务分配方法的流程示意图,如图4所示,该方法包括如下步骤:
步骤400,管理节点获取任务。
本申请实施例中的任务可以是对图像进行处理、数据压缩、重复数据删除、数据库查询、基于文件的查询等,本申请实施例对此不做限定。
这里的任务可以以对象为粒度/单位,包括多个待处理的对象,如对象为图像,或变长字段,或定长字段,或文件,或目录,或音视频数据等。管理节点获取任务的途径有多种,如以图1为例,管理节点可以接收摄像装置101发送的图像,又如,管理节点还可以从其他设备如其他管理节点接收待处理的图像等。本申请实施例对此均不做限定。为便于说明,如下以图像为例进行说明。
步骤401,管理节点确定任务的目标处理速率。
目标处理速率是指单位时间内完成的该任务所包括的对象的数量,如该任务以图像为单位,则目标处理速率可以是每秒处理几帧图像(如RPS),或每分钟处理几帧图像等。如下以RPS为例来表示任务的处理速率。
确定任务的RPS的途径有多种,如以图1为例,基于生产线中摄像装置101传输图像的速率确定RPS,如摄像装置101-1每秒向管理节点102传输1000帧图像,则该任务的RPS为1000帧/s。可以理解的是,该参数可以是用户设置的,如设置摄像装置每秒拍1000帧图像。因此,还可以获取该摄像装置101-1的设定参数作为该任务的PRS。示例性地,摄像装置101-1可以将该设定参数传输给管理节点102,或者也可以管理节点102向摄像装置请求该设定参数。或通过其他方式获取,如从待处理数据的包头获取该任务的目标处理速率等参数,本申请实施例对此不做限定。
步骤402,管理节点基于资源预测模型将该任务划分为由一个或多个计算节点执行的n个子任务。
假设计算节点使用模型(如推理模型)来处理任务,一种划分子任务的策略为,该n个子任务的处理速率之和等于该任务的目标处理速率,以及每个计算节点被分配的一个或多个子任务所需的资源利用率之和不超过该计算节点的资源利用率阈值。其中,每个计算节点的资源利用率阈值可以相同,也可以不同,本申请实施例对此不做限定。
以计算节点使用推理模型处理图片为例,示例性地,该流程可以包括:
1)确定用于处理该任务的推理模型,该推理模型可以是预设的,或用户指定的,或管理节点自适应选择的,本申请实施例对此不做限定。
2)以达到尽量令单一类型的任务独占计算节点为目的,根据该推理模型的资源利用率最大值(参见步骤301)和计算节点的资源利用率阈值来确定可以分配给该计算节点的子任务,以使该计算节点尽量运行资源利用率最大值时对应的子任务(如称为第一子任务),且该计算节点被分配的一个或多个子任务的预估资源利用率之和达到该计算节点的资源利用率阈值。可以理解的是,当计算节点不能部署整数个第一子任务时,该计算节点还可以部署一个资源利用率小于资源利用率最大值的第二子任务。
3)据该推理模型对应的资源预测模型和子任务的资源利用率,计算该子任务的RPS,再基于该计算节点被分配的所有子任务的RPS,计算该计算节点的总RPS。其中,第一子任务的RPS可以是基于步骤301的记录确定的,也可以是基于资源预测模型确定的,本申请实施例对此不做限定。
4)基于任务的RPR和该计算节点的总RPS确定所需的计算节点的数量。
举例来说,为便于说明,如下以资源利用率来表示子任务,假设任务A的RPS为RPStarget,每个计算节点102的资源利用率阈值均为Utarget,用于处理该任务A的为推理模型A,基于步骤301可以确定该推理模型A处理第一子任务达到资源利用率最大值,记为Umax
参见图5所示,假设该一个计算节点(如图5中的device1)可以部署n(n可以由Utarger/Umax的商确定,如图5中n=2)个资源利用率为Umax的第一子任务和1个资源利用率为Uremain1(Utarger-n*Umax)的第二子任务。应理解,若Utarger/Umax可以整除,则不部署第二子任务,即第二子任务的Uremain1为0。
之后,基于资源预测模型(可以确定该推理模型A的RPS和U的函数关系)来确定Umax对应的RPSmax,以及Uremain1对应的RPS1。值得注意的是,RPSmax也可以基于步骤301采集的训练数据确定。
再计算该计算节点的总RPS(记为RPSdev),RPSdev=nRPSmax+RPS1。
最后,确定所需的计算节点的数量n=RPStarget/RPSdev。应注意的是,这里可能不是整除,若不能整除,则还需一个计算节点,该计算节点的RPSremain=RPStarget%RPSdev(其中,%表示取余),以使该n+1个计算节点的预估RPS之和达到任务A的RPS。
其中,若RPSremain大于RPSmax,则继续参见图5,该计算节点上可以分配的子任务可以包括1个处理速率为RPSmax(即资源利用率为Umax)的第一子任务和处理速率为RPS2的第三子任务。其中,第三子任务的RPS2=RPSremain-RPSmax,之后,基于该资源预测模型和RPS2确定第三子任务的资源利用率为Uremain2
若RPSremain小于或等于RPSmax,则该计算节点上可以分配的子任务可以包括1个RPS2=RPSremain的第三子任务,同理,基于该资源预测模型和RPS2确定第三子任务的资源利用率为Uremain2
管理节点102通过上述方式确定分配至各计算节点的子任务。
值得注意的是,当计算节点103达到Utarget时,不再为该计算节点103分配子任务。对于未达到Utarget的计算节点103,如图5中的device2,则管理节点还可以将其他任务(如任务B)的子任务分配至该device2,以令该device2的U值尽可能达到Utarget,具体实现方式参见上述说明,此处不再赘述。比如图1中,摄像装置101-1传输的图像属于任务A,摄像装置101-2传输的图像属于任务B,任务B的子任务的划分方式可以参见上述介绍,此处不再赘述。
上述为任务的预分配方式,即包括将任务划分为多少个子任务,各子任务的RPS是多少,将哪些子任务分配至哪个计算节点等。
步骤403,管理节点将一个或多个子任务分配/调度至对应的计算节点。
以图5所示的预分配方式为例,假设Utarget=80%,Umax=30%,RPSmax=56,Uremain1=20%,RPS1=40,Uremain2=10%,RPS2=24,N=1。为便于说明,假设每个计算节点103的Utarget都相同。
该场景下,管理节点102将2个Umax的第一子任务(RPSmax)和1个Uremain1的第二子任务(RPS1)分配至device1,以及将1个Umax的第一子任务(RPSmax)和1个Uremain2的第三子任务(RPS2)分配至device2。
具体的,以device1为例,管理节点102将子任务调度至device1,并每秒向该device1发送56+56+40帧图像。示例性地,device1上可以运行3个进程(包括进程1~进程3)分别执行3个子任务(包括2个第一子任务和一个第二子任务)。其中,用于执行该3个子任务的推理模型可以相同,如均为推理模型A。
进程1用于处理一个第一子任务,第一子任务为使用推理模型A每秒处理56帧图像,即RPS为56/s。进程2用于处理一个第一子任务。进程3用于处理第二子任务,第二子任务为使用推理模型A每秒处理40帧图像,即RPS为40/s。
在一种实施方式中,预测模型还可以用于预测各子任务所需的内存使用量,计算节点还可以设置内存使用量阈值,则在确定子任务的预分配方式时,除上述各子任务的资源利用率之和未超过计算节点的资源利用率阈值之外,还应满足各子任务的预估内存使用量之和未超过该计算节点的内存使用量阈值。具体方式参见上文说明,此处不再赘述。
应理解的是,上述用于实际执行任务的计算节点与采集训练数据时所应用的计算节点是相同的计算节点时,资源预测模型的预测准确度高。换而言之,使用计算节点A得到的训练数据训练出的资源预测模型,可以很好地预测计算节点A执行不同子任务的RPS或资源利用率。当然,也可以是不同的计算节点,比如两个计算节点的性能或算力相似时,如两者的算力差值处于一定的阈值范围内,本申请实施例对此不做限定。另外,每个计算节点的资源利用率阈值可以是相同的,也可以是不同的,本申请实施例对此不做限定。
上述方式,使用推理模型在不同RPS下的资源利用率来训练资源预测模型,可以该资源预测模型能够更加准确的预测出推理模型的资源利用率,使得任务分配更加精确,可以提高计算节点103的资源利用率和任务的处理性能。
图6为本申请实施例提供的另一种任务分配方法的流程示意图,该方法中,步骤600至步骤602可以分别参见步骤400至步骤402的描述,此处不再赘述,如下仅就不同之处进行说明:
步骤603,管理节点从预分配方式确定的多个子任务中,选择满足每个计算节点分配条件的一个或多个子任务。
计算节点的分配条件包括下列中的一项或多项:
分配条件1,被分配的一个或多个子任务的预估资源利用率未超过计算节点的资源利用率阈值;
分配条件2,被分配的一个或多个子任务的预估内存使用量未超过计算节点的内存使用量阈值;
分配条件3,被分配的一个或多个子任务的极限资源值不小于该一个或多个子任务的预估资源利用率。
其中,上述分配条件1和分配条件2请参考上述图4所示实施例的描述,此处不再赘述。如下对分配条件3进行详细介绍:
上述示例中,步骤301采集的为计算节点103运行单个推理模型(执行子任务)时的资源利用率,在分配任务时,按照资源利用率线性叠加的方式来确定一个计算节点103上可以分配的子任务的数量。实际上,通过研究发现,某些推理模型的资源利用率并不是线性叠加的,比如,上述示例中,device1运行3个推理模型来处理该3子任务的总的预估资源利用率=30%+30%+20%=80%,但该device1实际的资源利用率可能是小于80%的,原因是,运行多个推理模型时,存在推理模型与计算节点103的亲和性低的问题,从而导致资源利用率偏低。所谓的亲和性,可以理解为,模型处理任务在计算节点上的性能,可能受到模型算子执行,硬件资源调度等影响。如果多个模型处理任务,在竞争调度上仍能有接近线性叠加的利用率,说明其亲和性高。
示例性地,这里的极限资源值可以是计算节点103上运行多个相同的推理模型时,计算节点的资源利用率最大值。该极限资源值可以是在步骤301的数据采集过程确定的,如在确定计算节点103运行一个推理模型时的资源利用率最大值后,然后,逐步增加运行的该推理模型的个数,当计算设备的资源利用率不再变化时,即达到了该推理模型在多个叠加时的资源利用率最大值时,即极限资源值。
举例来说,如某个推理模型的资源利用率最大值Umax为30%,之后,测量运行两个资源利用率为Umax的推理模型时,该计算节点103的资源利用率,由于推理模型与设备亲和性低等原因,此时该计算节点103的资源利用率可以低于30%+30%,如可能是50%。再之后,测量运行三个该推理模型时,该计算节点103的资源利用率,若仍为50%,那么该50%便为该推理模型的极限资源值。若资源利用率仍有增长,则继续增加计算节点上运行的推理模型的数量,依此类推,直至计算节点的资源利用率不再增长。
本申请实施例记录推理模型的极限资源值。参见表1所示,为本申请实施例测量得到的部分推理模型的资源利用率和极限资源值。
表1
RPS Umax Uextreme(极限资源值)
ModelA 100(测量值) 30(测量值) 60(测量值)
ModelB 150(测量值) 80(测量值) 100(测量值)
应注意的是,上述仅是以推理模型的资源利用率为该模型的资源利用率最大值为例来介绍的,不论该推理模型执行的子任务的资源利用率是多少,同一推理模型的极限资源值是相同的,如,计算节点运行多个资源利用率为30的推理模型A的极限资源值与运行多个资源利用率为20的推理模型A的极限资源值是相同的。
通过上述方式,可以测量各任务所使用的推理模型的极限资源值。
值得注意的是,一个计算节点103上还可能分配多个不同类型的推理模型。在一种实现方式中,本申请实施例还可以测量一个计算节点103运行多个不同类型的推理模型的极限资源值。在另一种实现方式中,本申请实施例还提供了一种计算不同类型的推理模型组合的极限资源值的方式,示例性地,不同类型的推理模型组合的极限资源值=各推理模型的极限资源的加权平均和值,如基于表1,ModelA和ModelB组合的理论极限资源值=60*[60/(100+60)]+100*[100/(100+60)]=85。
本申请中,使用推理模型的极限资源值计算该计算节点103运行多个推理模型组合的理论极限资源值,若该组合的理论极限资源值小于该多个推理模型的预估资源利用率值(该多个推理模型的资源利用率的线性叠加和值),则不满足分配条件3,不允许组合。反之,则满足分配条件3,允许组合。
举例来说,对于ModelA和ModelA的组合,计算ModelA和ModelA组合的理论极限资源值=60*1/2+60*1/2=60。该组合的预估资源利用率值为2*(ModelA的资源利用率值Umax)=30+30=60,该组合的理论极限资源值等于该组合的预估资源利用率值,满足分配条件3,允许组合。
对于ModelA和ModelB的组合,ModelA和ModelB组合的理论极限资源值满足于60*60/160+100*100/160=85。而该组合的预估资源利用率值=modelA的Umax+modelB的Umax=110,由于资源利用率≤100,因此,该组合的预估资源利用率值取100。由于理论极限资源值85小于该组合的预估资源利用率值100,则不满足分配条件3,不允许组合。
参见表2,表2为本申请实施例提供将上述推理模型的组合放入单个计算节点103时的各测量值。
表2
RPS(测量值) U(测量值)
ModelA+ModelB 205=122+83 90=65+25
ModelA+ModelA 200=100+100 60=30+30
基于表2也可以看出,ModelA和ModelA组合时,计算节点的实际资源利用率为60,计算节点的性能未受影响。ModelA和ModelB组合时,计算节点103实际的资源利用率为90,RPS测量值为205,远小于RPS预估值250(100+150),性能较低,不适宜组合。
举例来说,参见图7,假设基于上述步骤402(或步骤602)将某任务划分为多个子任务,假设device1、device2的Utarger=80%,Umax=30%,Uremain1=20%,Uremain2=10%。如下以U来表示子任务,则device1的子任务包括2个30,1个20,device2的子任务包括1个30,一个10。则该任务的子任务按照降序排序包括:30,30,30,20,10。
在一种分配方式中,按照排列顺序,选择一个子任务,如30,判断该子任务是否满足device1的分配条件。
若满足(或者由于第一个子任务为单个任务,放置第一个子任务时也可以不进行判断,默认满足),则继续选择下一个子任务如30,放置于device1中,判断该两个子任务是否满足device1的分配条件,包括:1)该两个子任务组合的预估资源利用率值=30+30=60,小于device1资源利用率阈值80,满足分配条件1。2)两个子任务的组合的内存使用量之和小于device1的内存使用量阈值,假设满足分配条件2。3)该两个子任务的组合的理论极限资源值=60*1/2+60*1/2=60,等于该组合的预估资源利用率值=30+30=60,满足分配条件3。因此,该两个子任务的组合满足该device1的所有分配条件。
继续选择一个子任务如30,放置于device1中,判断该3个子任务是否满足该device1的分配条件,由于该3个子任务组合的预估资源利用率值=30+30+30=90,大于device1资源利用率阈值80%,因此该三个子任务的组合不满足该device1的分配条件,因此第三个子任务30不能分配给device1。
又由于该device1未达到资源利用率阈值,因此,再顺序选择一个资源利用率较小的子任务,如20放置于device1,计算该3个子任务是否满足该device1的分配条件,包括:1)3个子任务的组合的预估资源利用率值=30+30+20=80,等于device1资源利用率阈值80。2)假设满足。3)该3个子任务的理论极限值=60*1/3+60*1/3+60*1/3=60,小于该组合的预估资源利用率值=30+30+20=80,因此,该三个子任务的组合也不满足该device1的分配条件。
再顺序选择一个资源利用率较小的子任务,如10,继续判断该3个子任务是否满足device1的分配条件,直至达到device1的资源利用率阈值,或所有的子任务均判断完成。
由于该子任务10与子任务20的极限资源值均是60,因此,该3个子任务也不满足。管理节点确定将子任务30和子任务30的组合分配至该device1。
之后,再剩余的子任务30,20,10中,选择一个子任务,判断该子任务是否满足device2的分配条件。具体参见上述描述,直至确定可以分配至device2的一个或多个子任务。依此类推,直至将所有的子任务均分配完成。
步骤604,将一个或多个子任务分配/调度至对应的计算节点。
假设,管理节点将子任务30和子任务30分配至device1,将子任务30和子任务20分配至device2,将子任务10分配至device3。
需要说明的是,本申请实施例中推理模型的功能和名称仅为一种示例,本申请实施例对此不做限定,本申请实施例对此不做限定,另外,本申请实施例中的任务是以对图像进行检测为例描述的,本申请实施例对任务类型不做限定,任何可以由计算设备处理的任务类型均适用于本申请实施例。
上述方式,使用推理模型在不同RPS下的资源利用率来训练资源预测模型,可以该资源预测模型能够更加准确的预测出推理模型的资源利用率,使得任务分配更加精确,可以提高计算节点103的资源利用率和任务的处理性能。更进一步的,基于计算节点运行多个推理模型时的极限资源值来确定可以分配至计算节点的多个子任务,相对于由于设备亲和性问题导致计算节点无法达到被分配的多个子任务的RPS的方式,可以进一步提高任务处理性能。
基于与方法实施例同一发明构思,本申请实施例还提供了一种任务分配装置,该任务分配装置用于执行上述方法实施例中管理节点执行的方法。如图8所示,该任务分配装置800包括确定模块801、处理模块802和分配模块803;具体地,在任务分配装置800中,各模块之间通过通信通路建立连接。
确定模块801,用于确定任务的目标处理速率;具体实现方式请参见图4中的步骤401的描述,或图6中的步骤601的描述,此处不再赘述。
处理模块802,用于将所述任务划分为分配至m个计算节点的n个子任务;所述n个子任务的处理速率之和等于所述任务的目标处理速率,所述n个子任务至少包括L个计算资源使用量为U1的第一子任务和Q个第二子任务,所述第二子任务的预估计算资源使用量是基于所述计算节点的预设计算资源阈值和所述计算节点被分配的第一子任务的数量确定的;所述第二子任务的处理速率是根据资源预测模型和所述第二子任务的所述预估计算资源使用量确定的,所述资源预测模型是基于训练数据采用机器学习算法进行训练得到的,所述训练数据包括多个子任务中每个子任务的处理速率和所述计算节点执行所述子任务的计算资源使用量;具体实现方式请参见图4中的步骤402的描述,或图6中的步骤602的描述,此处不再赘述。
分配模块803,用于将所述n个子任务分配至所述m个计算节点;具体实现方式请参见图4中的步骤403的描述,或图6中的步骤604的描述,此处不再赘述。
所述n和m均取大于1的整数,所述L取正整数,所述Q取0或正整数;其中,每个计算节点用于处理所述n个子任务中的一个或多个子任务,以使每个计算节点用于执行被分配的一个或多个子任务的计算资源使用量之和达到所述计算节点的预设计算资源阈值。
作为一种可能的实施方式,所述计算资源包括处理器资源、内存资源。
作为一种可能的实施方式,所述任务包括多个待处理的对象,所述任务的目标处理速率为所述m个计算节点在单位时间处理的对象的数量。
作为一种可能的实施方式,所述m个计算节点中的一个计算节点被分配的一个或多个子任务包括a个所述第一子任务和b个所述第二子任务,所述第二子任务的计算资源使用量满足于:
U2=U0-a*U1;
其中,U2表示第二子任务的计算资源使用量,U0表示计算节点的预设计算资源阈值,a取大于0的整数;b取大于等于0的整数。
作为一种可能的实施方式,所述计算节点使用任务模型处理任一子任务;
所述资源预测模型的输入数据包括所述任务模型的模型参数;所述模型参数包括:卷积层个数、池化层个数、线性层个数、激活函数个数、批处理数量batchsize中的一项或多项。
作为一种可能的实施方式,任一个所述计算节点被分配的多个子任务满足于下列条件中的一项或多项:所述多个子任务的预估资源使用量未超过任一个所述计算节点的预设计算资源阈值;所述多个子任务的预估计算资源使用量为所述一个或多个子任务中每个子任务的预估计算资源使用量之和;
所述多个子任务组合的极限资源使用量不小于所述多个子任务的预估计算资源使用量;所述多个子任务的极限资源使用量满足于:
Figure BDA0003330644070000131
Figure BDA0003330644070000132
其中,Ua表示k个子任务组合的极限资源值,k取正整数;Uexi表示子任务i所需的极限资源值,所述子任务i的极限资源值为预设值。具体实现方式请参见图6中的步骤603的描述,此处不再赘述。
在一个简单的实施例中,本领域的技术人员可以想到如图4、6所示的实施例中管理节点102可采用图9所示的形式。
如图9所示的装置900,包括至少一个处理器901、存储器902,可选的,还可以包括通信接口903。
存储器902可以是易失性存储器,例如随机存取存储器;存储器也可以是非易失性存储器,例如只读存储器,快闪存储器,硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器902是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器902可以是上述存储器的组合。
本申请实施例中不限定上述处理器901以及存储器902之间的具体连接介质。
处理器901可以为中央处理器,该处理器901还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件、人工智能芯片、片上芯片等。通用处理器可以是微处理器或者是任何常规的处理器等。处理器1201在与其他设备进行通信时,可以通过通信接口903进行数据传输,如接收摄像装置101发送的图像。
当所述装置采用图9所示的形式时,图9中的处理器901可以通过调用存储器902中存储的计算机执行指令,使得所述检测装置可以执行上述任一方法实施例中的所述管理节点102执行的方法。
具体的,图8的确定模块801、处理模块802以及分配模块803的功能/实现过程均可以通过图9中的处理器901调用存储器902中存储的计算机执行指令来实现。图8的分配模块803中信息传输的功能/实现过程可以通过图9中的通信接口903来实现。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
本申请实施例中所描述的各种说明性的逻辑单元和电路可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列(FPGA)或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本申请实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件单元、或者这两者的结合。软件单元可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包括这些改动和变型在内。

Claims (13)

1.一种任务分配方法,其特征在于,所述方法包括:
确定任务的目标处理速率;
将所述任务划分为分配至m个计算节点的n个子任务;所述n个子任务的处理速率之和等于所述任务的目标处理速率,所述n个子任务至少包括L个计算资源使用量为U1的第一子任务和Q个第二子任务,所述第二子任务的计算资源使用量是基于所述计算节点的预设计算资源阈值和所述计算节点被分配的第一子任务的数量确定的;所述第二子任务的处理速率是根据资源预测模型和所述第二子任务的计算资源使用量确定的,所述资源预测模型是基于训练数据采用机器学习算法进行训练得到的,所述训练数据包括多个子任务中每个子任务的处理速率和所述计算节点执行所述子任务的计算资源使用量;
将所述n个子任务分配至所述m个计算节点;所述n和m均取大于1的整数,所述L取正整数,所述Q取0或正整数;其中,每个计算节点用于处理所述n个子任务中的一个或多个子任务,以使每个计算节点用于执行被分配的一个或多个子任务的计算资源使用量之和达到所述计算节点的预设计算资源阈值。
2.如权利要求1所述的方法,其特征在于,所述m个计算节点中的一个计算节点被分配的一个或多个子任务包括a个所述第一子任务和b个所述第二子任务,所述第二子任务的计算资源使用量满足于:
U2=U0-a*U1;
其中,U2表示第二子任务的计算资源使用量,U0表示计算节点的预设计算资源阈值,a取大于0的整数;b取大于等于0的整数。
3.如权利要求1或2所述的方法,其特征在于,所述计算节点使用任务模型处理任一子任务;
所述资源预测模型的输入数据包括所述任务模型的模型参数;所述模型参数包括:卷积层个数、池化层个数、线性层个数、激活函数个数、批处理数量batchsize中的一项或多项。
4.如权利要求1-3任一项所述的方法,其特征在于,任一个所述计算节点被分配的多个子任务满足于下列条件中的一项或多项:
所述多个子任务的预估资源使用量未超过任一个所述计算节点的预设计算资源阈值;所述多个子任务的预估计算资源使用量为所述一个或多个子任务中每个子任务的预估计算资源使用量之和;
所述多个子任务组合的极限资源使用量不小于所述多个子任务的预估计算资源使用量;所述多个子任务的极限资源使用量满足于:
Figure FDA0003330644060000011
Figure FDA0003330644060000012
其中,Ua表示k个子任务组合的极限资源值,k取正整数;Uexi表示子任务i的极限资源值,所述子任务i的极限资源值为预设值。
5.如权利要求1-4任一项所述的方法,其特征在于,所述计算资源包括处理器资源、内存资源。
6.一种任务分配装置,其特征在于,包括:
确定模块,用于确定任务的目标处理速率;
处理模块,用于将所述任务划分为分配至m个计算节点的n个子任务;所述n个子任务的处理速率之和等于所述任务的目标处理速率,所述n个子任务至少包括L个计算资源使用量为U1的第一子任务和Q个第二子任务,所述第二子任务的计算资源使用量是基于所述计算节点的预设计算资源阈值和所述计算节点被分配的第一子任务的数量确定的;所述第二子任务的处理速率是根据资源预测模型和所述第二子任务的计算资源使用量确定的,所述资源预测模型是基于训练数据采用机器学习算法进行训练得到的,所述训练数据包括多个子任务中每个子任务的处理速率和所述计算节点执行所述子任务的计算资源使用量;
分配模块,用于将所述n个子任务分配至所述m个计算节点;
所述n和m均取大于1的整数,所述L取正整数,所述Q取0或正整数;其中,每个计算节点用于处理所述n个子任务中的一个或多个子任务,以使每个计算节点用于执行被分配的一个或多个子任务的计算资源使用量之和达到所述计算节点的预设计算资源阈值。
7.如权利要求6所述的装置,其特征在于,所述m个计算节点中的一个计算节点被分配的一个或多个子任务包括a个所述第一子任务和b个所述第二子任务,所述第二子任务的计算资源使用量满足于:
U2=U0-a*U1;
其中,U2表示第二子任务的计算资源使用量,U0表示计算节点的预设计算资源阈值,a取大于0的整数;b取大于等于0的整数。
8.如权利要求6或7所述的装置,其特征在于,所述计算节点使用任务模型处理任一子任务;
所述资源预测模型的输入数据包括所述任务模型的模型参数;所述模型参数包括:卷积层个数、池化层个数、线性层个数、激活函数个数、批处理数量batchsize中的一项或多项。
9.如权利要求6-8任一项所述的装置,其特征在于,任一个所述计算节点被分配的多个子任务满足于下列条件中的一项或多项:
所述多个子任务的预估资源使用量未超过任一个所述计算节点的预设计算资源阈值;所述多个子任务的预估计算资源使用量为所述一个或多个子任务中每个子任务的预估计算资源使用量之和;
所述多个子任务组合的极限资源使用量不小于所述多个子任务的预估计算资源使用量;所述多个子任务的极限资源使用量满足于:
Figure FDA0003330644060000021
Figure FDA0003330644060000022
其中,Ua表示k个子任务组合的极限资源值,k取正整数;Uexi表示子任务i的极限资源值,所述子任务i的极限资源值为预设值。
10.如权利要求6-10任一项所述的装置,其特征在于,所述计算资源包括处理器资源、内存资源。
11.一种任务分配装置,其特征在于,所述装置包括处理器和存储器;
所述存储器,用于存储计算机程序指令;
所述处理器执行调用所述存储器中的计算机程序指令实现如权利要求1至5中任一项所述的系统中第一节点执行的功能。
12.一种计算机可读存储介质,其特征在于,包括程序代码,所述程序代码包括的指令用于实现如权利要求1至5中任一项所述的系统中第一节点执行的功能。
13.一种计算系统,其特征在于,所述计算系统包括管理设备和多个计算设备;
所述管理设备,用于执行如权利要求1~5任一所述的方法;
任一所述计算设备,用于执行所述管理设备分配给所述计算设备的子任务。
CN202111279123.XA 2021-10-31 2021-10-31 一种任务分配方法、装置及系统 Pending CN116089051A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111279123.XA CN116089051A (zh) 2021-10-31 2021-10-31 一种任务分配方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111279123.XA CN116089051A (zh) 2021-10-31 2021-10-31 一种任务分配方法、装置及系统

Publications (1)

Publication Number Publication Date
CN116089051A true CN116089051A (zh) 2023-05-09

Family

ID=86208751

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111279123.XA Pending CN116089051A (zh) 2021-10-31 2021-10-31 一种任务分配方法、装置及系统

Country Status (1)

Country Link
CN (1) CN116089051A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116541179A (zh) * 2023-07-05 2023-08-04 支付宝(杭州)信息技术有限公司 一种计算资源预测方法和系统
CN116701001A (zh) * 2023-08-08 2023-09-05 国网浙江省电力有限公司信息通信分公司 目标任务分配方法、装置、电子设备及存储介质
CN116915805A (zh) * 2023-07-20 2023-10-20 中移互联网有限公司 云存储图像处理方法、装置及电子设备
CN117041259A (zh) * 2023-09-28 2023-11-10 新华三技术有限公司 计算资源的调度方法及装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116541179A (zh) * 2023-07-05 2023-08-04 支付宝(杭州)信息技术有限公司 一种计算资源预测方法和系统
CN116541179B (zh) * 2023-07-05 2023-12-05 支付宝(杭州)信息技术有限公司 一种计算资源预测方法和系统
CN116915805A (zh) * 2023-07-20 2023-10-20 中移互联网有限公司 云存储图像处理方法、装置及电子设备
CN116701001A (zh) * 2023-08-08 2023-09-05 国网浙江省电力有限公司信息通信分公司 目标任务分配方法、装置、电子设备及存储介质
CN116701001B (zh) * 2023-08-08 2023-10-20 国网浙江省电力有限公司信息通信分公司 目标任务分配方法、装置、电子设备及存储介质
CN117041259A (zh) * 2023-09-28 2023-11-10 新华三技术有限公司 计算资源的调度方法及装置
CN117041259B (zh) * 2023-09-28 2024-01-12 新华三技术有限公司 计算资源的调度方法及装置

Similar Documents

Publication Publication Date Title
CN116089051A (zh) 一种任务分配方法、装置及系统
CN110096349B (zh) 一种基于集群节点负载状态预测的作业调度方法
CN106776005B (zh) 一种面向容器化应用的资源管理系统及方法
WO2021136137A1 (zh) 一种资源调度方法、装置及相关设备
CN105389211B (zh) 适用于numa架构的内存分配方法及延时感知-内存分配装置
US20070067606A1 (en) Heterogeneous parallel processing based on processor performance
US11496413B2 (en) Allocating cloud computing resources in a cloud computing environment based on user predictability
CN111225050B (zh) 云计算资源分配方法及装置
JP2016042284A (ja) 並列計算機システム、管理装置、並列計算機システムの制御方法及び管理装置の制御プログラム
CN113590307A (zh) 边缘计算节点优化配置方法、装置及云计算中心
CN116467082A (zh) 一种基于大数据的资源分配方法及系统
US10942850B2 (en) Performance telemetry aided processing scheme
CN107370783B (zh) 一种云计算集群资源的调度方法及装置
CN110178119B (zh) 处理业务请求的方法、装置与存储系统
CN117032937B (zh) 基于gpu的任务调度方法、电子装置和存储介质
US9563532B1 (en) Allocation of tasks in large scale computing systems
CN115878332B (zh) 深度学习网络中的内存资源分配方法、装置、设备及介质
CN116302327A (zh) 资源调度方法及相关设备
CN116643875A (zh) 一种任务调度方法、服务器及服务器集群
US20120042322A1 (en) Hybrid Program Balancing
CN106844037B (zh) 一种基于knl的测试方法及系统
CN116048773A (zh) 一种基于波函数坍缩的分布式协作任务指派方法和系统
CN114546652A (zh) 一种参数预估方法、装置及电子设备
CN114780250A (zh) 函数内存分配方法、装置、计算机设备、存储介质和产品
CN113626162A (zh) 基于动态资源共享的数据中心任务混合部署方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication