CN110134521A - 资源分配的方法、装置、资源管理器及存储介质 - Google Patents
资源分配的方法、装置、资源管理器及存储介质 Download PDFInfo
- Publication number
- CN110134521A CN110134521A CN201910453490.3A CN201910453490A CN110134521A CN 110134521 A CN110134521 A CN 110134521A CN 201910453490 A CN201910453490 A CN 201910453490A CN 110134521 A CN110134521 A CN 110134521A
- Authority
- CN
- China
- Prior art keywords
- task
- resource
- idling
- preempting resources
- execute
- 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本公开是关于一种资源分配方法、装置、资源管理器及存储介质,属于深度学习技术领域,该方法包括:当执行任务列表中的第一任务时,检测资源集群中的空闲资源;当空闲资源不足以执行第一任务时,检测资源集群中的可抢占资源,可抢占资源为正在运行的至少一个第二任务所占资源中的可被抢占资源;当空闲资源和可抢占资源足以执行第一任务时,调度资源集群中的空闲资源和可抢占资源执行第一任务,防止了因资源集群中空闲资源不足导致第一任务不能执行,资源集群中的空闲资源不能被占用,提高了资源集群中资源的利用率,使得资源集群中可以同时执行更多的任务,提高了任务执行的效率。
Description
技术领域
本公开涉及深度学习技术领域,尤其涉及一种资源分配的方法、装置、资源管理器及存储介质。
背景技术
目前,为了提高模型训练的效率,提出了基于PS(Parameter Server,参数服务)架构的分布式模型训练的方法。PS架构中包括parameter server(参数服务器)和多个worker(工作机),parameter server用于广播模型参数,每个worker用于接收parameter server广播的模型参数,计算模型参数的梯度,然后计算的梯度返回给parameter server。parameter server聚合每个worker传回的模型参数,然后更新模型参数,广播更新后的模型参数,以此进行模型训练。因此,基于PS架构进行模型训练时,需要搭建多个worker。为了突破个人硬件资源的限制,减少成本,出现了机器学习云平台。该机器学习云平台提供了硬件资源集群,该硬件资源集群中包括多个worker,在基于PS架构进行模型训练时,可以直接使用该硬件资源集群中的worker进行模型训练。
相关技术中,在训练模型时,当硬件资源集群中的空闲worker的数量不满足第一任务执行时所需的数量时,第一任务只能等到硬件资源集群中的空闲worker的数量满足第一任务执行时所需的数量时,才能占用硬件资源集群中的worker开始执行。
上述相关技术中,单个任务占用的worker需要在该任务结束后才能被释放,可能造成硬件资源集群中剩余worker无法被利用,硬件资源集群中的资源利用率低。
发明内容
本公开提供一种资源分配的方法、装置、资源管理器及存储介质,可以克服硬件资源集群中剩余worker无法被利用,硬件资源集群中的资源利用率低的问题。
根据本公开实施例的第一方面,提供了一种资源分配方法,所述方法包括:
当执行任务列表中的第一任务时,检测资源集群中的空闲资源;
当所述空闲资源不足以执行所述第一任务时,检测所述资源集群中的可抢占资源,所述可抢占资源为正在运行的至少一个第二任务所占资源中的可被抢占资源;
当所述空闲资源和所述可抢占资源足以执行所述第一任务时,调度所述资源集群中的空闲资源和可抢占资源执行所述第一任务。
在一种可能的实现方式中,所述调度所述资源集群中的空闲资源和可抢占资源执行所述第一任务,包括:
根据所述第一任务所需资源和所述空闲资源,确定所述资源集群中需要被抢占的资源;
根据所述需要被抢占的资源和每个第二任务的可抢占资源,从所述每个第二任务中选择第二任务,所述空闲资源和选择的第二任务的可抢占资源之和足以执行所述第一任务;
调度所述空闲资源执行所述第一任务,以及调度所述选择的第二任务的可抢占资源执行所述第一任务。
在另一种可能的实现方式中,所述根据所述需要被抢占的资源和每个第二任务的可抢占资源,从所述每个第二任务中选择第二任务,包括:
确定所述每个第二任务的任务类型;
根据所述需要被抢占的资源、所述每个第二任务的任务类型和所述每个第二任务的可抢占资源,从所述每个第二任务中选择任务类型为第一指定类型的第二任务。
在另一种可能的实现方式中,所述调度所述选择的第二任务的可抢占资源执行所述第一任务,包括:
当所述选择的第二任务为同步任务时,在执行完所述选择的第二任务时,调度所述选择的第二任务的可抢占资源执行所述第一任务;
当所述选择的第二任务为异步任务时,在执行完目标子任务时,调度所述选择的第二任务的可抢占资源执行所述第一任务,所述目标子任务为所述选择的第二任务的可抢占资源所执行的任务。
在另一种可能的实现方式中,所述调度所述资源集群中的空闲资源和可抢占资源执行所述任第一任务之后,所述方法还包括:
当所述任务列表中不存在位于所述第一任务之前的未执行任务时,将所述第一任务的资源标记为不可抢占资源;
当所述任务列表中存在位于所述第一任务之前的未执行任务时,将所述第一任务的资源标记为可抢占资源。
在另一种可能的实现方式中,所述将所述第一任务的资源标记为可抢占资源,包括:
当所述第一任务的任务类型为第一指定类型时,将所述第一任务所占资源中的部分资源标记为可抢占资源;
当所述第一任务的任务类型为第二指定类型时,将所述第一任务所占的全部资源标记为可抢占资源。
在另一种可能的实现方式中,所述方法还包括:
当所述空闲资源和所述可抢占资源不足以执行所述第一任务时,从所述任务列表中选择任务类型为第二指定类型的第三任务;
当所述空闲资源和所述可抢占资源足以执行所述第三任务时,调度所述资源集群中的空闲资源和可抢占资源执行所述第三任务。
在另一种可能的实现方式中,所述检测资源集群中的空闲资源之后,所述方法还包括:
当所述资源集群中的空闲资源足以执行第一任务时,调度所述空闲资源执行所述第一任务。
根据本公开实施例的第二方面,提供一种资源分配装置,所述装置包括:
第一检测模块,用于当执行任务列表中的第一任务时,检测资源集群中的空闲资源;
第二检测模块,用于当所述空闲资源不足以执行所述第一任务时,检测所述资源集群中的可抢占资源,所述可抢占资源为正在运行的至少一个第二任务所占资源中的可被抢占资源;
第一调度模块,用于当所述空闲资源和所述可抢占资源足以执行所述第一任务时,调度所述资源集群中的空闲资源和可抢占资源执行所述第一任务。
在一种可能的实现方式中,所述第一调度模块,还用于根据所述第一任务所需资源和所述空闲资源,确定所述资源集群中需要被抢占的资源;根据所述需要被抢占的资源和每个第二任务的可抢占资源,从所述每个第二任务中选择第二任务,所述空闲资源和选择的第二任务的可抢占资源之和足以执行所述第一任务;调度所述空闲资源执行所述第一任务,以及调度所述选择的第二任务的可抢占资源执行所述第一任务。
在另一种可能的实现方式中,所述第一调度模块,还用于确定所述每个第二任务的任务类型;根据所述需要被抢占的资源、所述每个第二任务的任务类型和所述每个第二任务的可抢占资源,从所述每个第二任务中选择任务类型为第一指定类型的第二任务。
在另一种可能的实现方式中,所述第一调度模块,还用于当所述选择的第二任务为同步任务时,在执行完所述选择的第二任务时,调度所述选择的第二任务的可抢占资源执行所述第一任务;当所述选择的第二任务为异步任务时,在执行完目标子任务时,调度所述选择的第二任务的可抢占资源执行所述第一任务,所述目标子任务为所述选择的第二任务的可抢占资源所执行的任务。
在另一种可能的实现方式中,所述装置还包括:
第一标记模块,用于当所述任务列表中不存在位于所述第一任务之前的未执行任务时,将所述第一任务的资源标记为不可抢占资源;
第二标记模块,用于当所述任务列表中存在位于所述第一任务之前的未执行任务时,将所述第一任务的资源标记为可抢占资源。
在另一种可能的实现方式中,第二标记模块,还用于当所述第一任务的任务类型为第一指定类型时,将所述第一任务所占资源中的部分资源标记为可抢占资源;当所述第一任务的任务类型为第二指定类型时,将所述第一任务所占的全部资源标记为可抢占资源。
在另一种可能的实现方式中,所述装置还包括:
选择模块,用于当所述空闲资源和所述可抢占资源不足以执行所述第一任务时,从所述任务列表中选择任务类型为第二指定类型的第三任务;
第二调度模块,用于当所述空闲资源和所述可抢占资源足以执行所述第三任务时,调度所述资源集群中的空闲资源和可抢占资源执行所述第三任务。
在另一种可能的实现方式中,所述装置还包括:
第三调度模块,用于当所述资源集群中的空闲资源足以执行第一任务时,调度所述空闲资源执行所述第一任务。
根据本公开实施例的第三方面,提供了一种资源管理器,所述资源管理器包括:
一个或多个处理器;
用于存储所述一个或多个处理器可执行指令的一个或多个存储器;
其中,所述一个或多个处理器被配置为执行本公开实施例的第一方面所述的资源分配方法。
根据本公开实施例的第四方面,提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由资源管理器的处理器执行时,使得资源管理器能够执行本公开实施例的第一方面所述的资源分配方法。
根据本公开实施例的第五方面,提供了一种应用程序,当所述应用程序中的指令由资源管理器的处理器执行时,使得资源管理器能够执行本公开实施例的第一方面所述的资源分配方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
在本公开实施例中,在执行任务列表中的第一任务时,检测资源集群中的空闲资源,当该空闲资源不足以执行该第一任务时,检测正在运行的第二任务的可抢占资源,当该空闲资源和可抢占资源组织执行该第一任务时,调度资源集群中的空闲资源和可抢占资源,执行任务列表中的任务,通过调度正在运行的第二任务的可抢占资源,防止了因资源集群中空闲资源不足导致任务列表中的第一任务不能执行的问题,使资源集群中的空闲资源可以被合理占用,提高了资源集群中资源的利用率,使得资源集群中可以同时执行更多的任务,提高了任务执行的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种资源分配方法所涉及的资源集群的示意图;
图2是根据一示例性实施例示出的一种资源分配方法的流程图;
图3是根据一示例性实施例示出的一种资源分配方法的流程图;
图4是根据一示例性实施例示出的一种资源分配方法的流程图;
图5是根据一示例性实施例示出的一种资源分配装置的框图;
图6是根据一示例性实施例示出的一种用于资源分配的资源管理器的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种资源分配方法所涉及的应用场景图,如图1所示,该应用场景中包括资源管理器和资源集群。该资源集群可以为硬件资源集群或者软件资源集群。在本公开实施例中,以资源集群为硬件资源集群为例进行说明。相应的,该资源集群中可以包括多个硬件资源。该多个硬件资源可以为worker、CPU(CentralProcessing Unit,中央处理器)或者GPU(Graphics Processing Unit,图形处理器)等。资源管理器用于对资源集群中的资源进行管理。该资源管理器可以为终端或者服务器。当资源管理器为终端时,该资源管理器可以为电脑或者手机等。
该应用场景中还包括parameter server(参数服务器),parameter server通过无线网络与资源管理器进行通信,且parameter server用于使用资源集群中的资源进行模型训练。当parameter server在训练模型时,向资源管理器发送资源分配请求,该资源分配请求至少携带该任务的任务标识,相应的,资源管理器接收该parameter server的资源分配请求,将该任务添加到任务列表中,按照FIFO(first input first output,先进先出)原则执行该任务列表中的任务。并且,资源管理器在执行任务时,从资源集群中为该任务调度资源,通过该资源集群中的资源执行该任务。在一种可能的实现方式中,该资源管理器接收到资源分配请求时,直接将该资源分配请求对应的任务添加到任务列表中,在另一种可能的实现方式中,当资源管理器接收到资源分配请求后,根据该资源分配请求确定该任务的任务标识,将该任务标识添加到任务列表中。
该资源分配请求还可以携带该任务的任务类型和/或任务信息。该任务信息可以包括该任务执行时所需资源、该任务执行时所需资源中可被抢占的资源和该任务被提交的时间等中的至少一个。该任务类型可以用于指示该任务为长期任务或者短期任务。相应的,该任务类型可以为第一指定类型或者第二指定类型。第一指定类型为预计执行时长超过预设时长的任务类型;第二指定类型为预计执行时长不超过预设时长的任务类型。
预设时长可以根据需要进行设置并更改,在本公开实施例中,对预设时长不作具体限定;例如,预设时长可以为七天或者15天等。该任务类型还可以用于指示该任务为大任务或小任务。相应的,该第一指定类型为执行所需资源超过预设资源的任务类型;第二指定类型为执行所需资源不超过预设资源的任务类型。资源管理器在进行资源调度时,可以根据任务的任务类型进行为该任务调度资源。
在本公开实施例中,在执行任务列表中的任务时,通过检测资源集群中的空闲资源和正在运行的第一任务的可抢占资源,调度资源集群中的空闲资源和可抢占资源,执行任务列表中的任务,通过调度正在运行的第一任务的可抢占资源,防止了任务列表中的任务因资源集群中空闲资源不足导致任务列表中的任务不能执行,使资源集群中的空闲资源可以被合理占用,提高了资源集群中资源的利用率,使得资源集群中可以同时执行更多的任务,提高了任务执行的效率。
图2是根据一示例性实施例示出的一种资源分配方法流程图,如图2所示,包括以下步骤:
在步骤S21中,当执行任务列表中的第一任务时,检测资源集群中的空闲资源。
在步骤S22中,当该空闲资源不足以执行该第一任务时,检测该资源集群中的可抢占资源,该可抢占资源为正在运行的至少一个第二任务所占资源中的可被抢占资源。
在步骤S23中,当该空闲资源和该可抢占资源足以执行该第一任务时,调度该资源集群中的空闲资源和可抢占资源执行该第一任务。
在本公开实施例中,在执行任务列表中的第一任务时,检测资源集群中的空闲资源,当该空闲资源不足以执行该第一任务时,检测正在运行的第二任务的可抢占资源,当该空闲资源和可抢占资源组织执行该第一任务时,调度资源集群中的空闲资源和可抢占资源,执行任务列表中的任务,通过调度正在运行的第二任务的可抢占资源,防止了因资源集群中空闲资源不足导致任务列表中的第一任务不能执行的问题,使资源集群中的空闲资源可以被合理占用,提高了资源集群中资源的利用率,使得资源集群中可以同时执行更多的任务,提高了任务执行的效率。
在一种可能的实现方式中,该调度该资源集群中的空闲资源和可抢占资源执行该第一任务,包括:
根据该第一任务所需资源和该空闲资源,确定该资源集群中需要被抢占的资源;
根据该需要被抢占的资源和每个第二任务的可抢占资源,从该每个第二任务中选择第二任务,该空闲资源和该选择的第二任务的可抢占资源之和足以执行该第一任务;
调度该空闲资源执行该第一任务,以及调度该选择的第二任务的可抢占资源执行该第一任务。
在本公开实施例中,资源管理器调度资源集群中的空闲资源和可抢占资源,执行任务列表中的任务,通过调度正在运行的第二任务的可抢占资源,防止了因资源集群中空闲资源不足导致任务列表中的第一任务不能执行的问题,使资源集群中的空闲资源可以被合理占用,提高了资源集群中资源的利用率,使得资源集群中可以同时执行更多的任务,提高了任务执行的效率。
在另一种可能的实现方式中,该根据该需要被抢占的资源和每个第二任务的可抢占资源,从该每个第二任务中选择第二任务,包括:
确定该每个第二任务的任务类型;
根据该需要被抢占的资源、该每个第二任务的任务类型和该每个第二任务的可抢占资源,从该每个第二任务中选择任务类型为第一指定类型的第二任务。
在本公开实施例中,通过抢占第一指定类型的第二任务的可抢占资源,为任务列表中的任务调度资源,使得资源集群中正在执行的第二指定类型的第二任务正常执行,保证了第二指定类型的第二任务所占用的资源可以被及时释放,进而使得资源集群中可以同时执行更多的任务,提高了任务执行的效率。
在另一种可能的实现方式中,该调度该选择的第二任务的可抢占资源执行该第一任务,包括:
当该选择的第二任务为同步任务时,在执行完该选择的第二任务时,调度该选择的第二任务的可抢占资源执行该第一任务;
当该选择的第二任务为异步任务时,在执行完目标子任务时,调度该选择的第二任务的可抢占资源执行该第一任务,该目标子任务为该选择的第二任务的可抢占资源所执行的任务。
在本公开实施例中,根据资源集群中数据传输的方法,资源集群中的第二任务以同步或异步的方式执行,相应的,资源管理器为任务列表中的任务调度资源时,也通过同步或异步的方式为任务列表中的任务调度资源,从而防止了任务列表中的任务因资源集群中空闲资源不足导致不能执行,使得资源集群中的空闲资源可以及时被占用,从而提高了资源集群中资源的利用率,使得资源集群中可以同时执行更多的任务,提高了任务执行的效率。
在另一种可能的实现方式中,该调度该资源集群中的空闲资源和可抢占资源执行该任第一任务之后,该方法还包括:
当该任务列表中不存在位于该第一任务之前的未执行任务时,将该第一任务的资源标记为不可抢占资源;
当该任务列表中存在位于该第一任务之前的未执行任务时,将该第一任务的资源标记为可抢占资源。
在本公开实施例中,通过确定该第一任务之前是否有未被执行的任务,来将第一任务确定为可被抢占资源或不可被抢占资源,当该第一任务之前没有未被执行的任务时,将该第一任务所占的资源被标记为不可抢占资源,使得第一任务可以被正常执行,不被其他任务打断,保证了第一任务的执行速率;当该第一任务之前有未被执行的任务时,将第一任务所占的资源被标记为可被抢占资源,使得当该资源集群中其他任务执行完成后,释放该任务所占用的资源时,该第一任务之前的未被执行任务可以被重新分配资源进而被执行,保证了任务列表中任一任务都可以被尽快执行,提高了任务执行的效率。
在另一种可能的实现方式中,该将该第一任务的资源标记为可抢占资源,包括:
当该第一任务的任务类型为第一指定类型时,将该第一任务所占资源中的部分资源标记为可抢占资源;
当该第一任务的任务类型为第二指定类型时,将该第一任务所占的全部资源标记为可抢占资源。
在本公开实施例中,根据第一任务的任务类型对该第一任务所占的资源全部资源标记为可被抢占或部分资源可被抢占,从而提高了资源集群中资源的利用率,使得资源集群中可以同时执行更多的任务,提高了任务执行的效率。
在另一种可能的实现方式中,该方法还包括:
当该空闲资源和该可抢占资源不足以执行该第一任务时,从该任务列表中选择任务类型为第二指定类型的第三任务;
当该空闲资源和该可抢占资源足以执行该第三任务时,调度该资源集群中的空闲资源和可抢占资源执行该第三任务。
在本公开实施例中,通过调度资源管理器调度资源集群中的资源执行任务列表中的任务时,先确定资源集群中的空闲资源和可抢占资源是否满足任务列表中将要执行的第一任务执行所需要的资源,当不满足时,继续检测该可抢占资源和该空闲资源之和是否满足任务列表中任务类型为第二指定类型的第三任务执行时,所需要的资源,若满足则为该第三资源调度资源集群中的资源,从而使资源集群中的空闲资源可以被合理占用,提高了资源集群中资源的利用率,使得资源集群中可以同时执行更多的任务,提高了任务执行的效率。
在另一种可能的实现方式中,该检测资源集群中的空闲资源之后,该方法还包括:
当该资源集群中的空闲资源足以执行第一任务时,调度该空闲资源执行该第一任务。
在本公开实施例中,当资源集群中的空闲资源足以执行该第一任务时,直接为该第一任务调度空闲资源,提高了资源调度的效率。
图3是根据一示例性实施例示出的一种资源分配方法的流程图,在本实施例中,以当前资源集群中有正在执行的任务为例进行说明,如图3所示,包括以下步骤:
步骤S31中,当执行任务列表中的第一任务时,资源管理器检测资源集群中的空闲资源;
资源管理器中存储任务列表,任务列表中存储至少一个待执行的任务。任务列表中的任务按照FIFO的原则执行,相应的,资源管理器根据FIFO的原则,为该列表中的任务调度资源集群中的资源。其中,资源管理器检测资源集群中的空闲资源的步骤可以为:资源管理器确定资源集群中的总资源和已被占用的资源,根据该总资源和该已被占用的资源,确定资源集群中的空闲资源。
需要说明的一点是,资源管理器可以在需要执行第一任务时才检测资源集群中的空闲资源。资源管理器还可以实时检测资源集群中的空闲资源,并记录检测到的空闲资源,当资源管理器检测到执行第一任务时,直接获取已记录的空闲资源。
需要说明的另一点是,每当检测到有新的任务占用资源集群中的资源后或有任务执行完成时,根据任务执行占用的资源量或任务结束释放的资源量,更新资源管理器中已记录的空闲资源。
需要说明的另一点是,资源管理器检测资源集群中的空闲资源之后,资源管理器检测该空闲资源是否足以执行第一任务;当该空闲资源足以执行第一任务时,说明资源集群中的空闲资源充足,直接调度空闲资源执行第一任务。当空闲资源不足以执行第一任务时,说明资源集群中的空闲资源不充足,资源管理器执行步骤S32,来确定当前是否有可抢占资源。
其中,当执行任务列表中的第一任务时,资源管理器还需要检测执行第一任务所需要的资源。相应的,资源管理器检测该空闲资源是否足以执行第一任务的步骤可以为:资源管理器确定该空闲资源是否少于执行第一任务所需要的资源;当该空闲资源少于执行第一任务所需的资源时,确定该空闲资源不足以执行第一任务。当该空闲资源不少于执行第一任务所需的资源时,确定该空闲资源足以执行第一任务。
在一种可能的实现方式中,用户可以直接向资源管理器输入执行第一任务所需资源。相应的,资源管理器检测执行第一任务所需要的资源的步骤可以为:资源管理器接收用户输入的执行第一任务执行所需资源。在另一种可能的实现方式中,资源管理器可以从第一任务的任务信息中获取执行第一任务所需资源。相应的,资源管理器检测执行第一任务所需的资源的步骤可以为:资源管理器获取第一任务的任务信息,其中,该第一任务的任务信息中包括该第一任务执行时所需资源。资源管理器从第一任务的任务信息中提取执行第一任务时所需资源。
例如,第一任务的parameter server在请求资源管理器为第一任务分配资源时,向资源管理器发送分配请求,该分配请求携带该第一任务的任务标识和任务信息。资源管理器接收该分配请求,关联存储该第一任务的任务标识和任务信息。相应的,资源管理器获取第一任务的任务信息的步骤可以为:资源管理器根据第一任务的任务标识,从任务标识和任务信息的对应关系中获取该第一任务的任务信息。
需要说明的另一点是,该第一任务可以为该任务列表中第一个任务或者该任务列表中除阻塞任务以外的第一个任务。在本公开实施例中,对此不作具体限定。
需要说明的另一点是,由于资源集群中资源往往大于一个任务执行时所需要的资源。因此,在当前时间没有正在执行的任务时,资源管理器可以仅确定执行第一任务所需要的资源,不确定资源集群中的空闲资源,直接根据执行第一任务所需要的资源,调度空闲资源,执行第一任务。如图4所示,当该第一任务为如图4所示的第一个任务时,资源管理器直接调度该资源集群中的资源执行该第一任务。相应的,该执行第一任务所占用的资源可以包括可抢占资源和不可抢占资源。当该第一任务在执行的过程中,没有其他任务抢占该第一任务的可抢占资源时,第一任务基于该资源管理器为该第一任务调度的所有资源执行该第一任务直到第一任务结束;当该第一任务在执行的过程中,其他任务抢占了该第一任务的可抢占资源时,该第一任务通过剩余的不可抢占资源执行该第一任务直到第一任务结束。
在步骤S32中,当该空闲资源不足以执行该第一任务时,资源管理器检测该资源集群中的可抢占资源,该可抢占资源为正在运行的至少一个第二任务所占资源中的可被抢占资源。
当资源管理器确认当前资源集群中的空闲资源不足以执行该第一任务时,从该资源集群中检测正在执行的至少一个第二任务的可被抢占资源。资源管理器可以检测所有正在执行的第二任务的可被强占资源,得到该资源集群中的可抢占资源。资源管理器还可以仅检测任务类型为第一指定任务类型的第二任务所占资源中的可被抢占资源,得到该资源集群中的可抢占资源。
第一种方式,资源管理器在为第二任务调度资源时,资源管理器记录该第二任务所占资源中的可被抢占资源。在本步骤中,资源管理器直接获取已记录的第二任务所占资源中的可被抢占资源。
第二种方式,在分布式模型架构中,一个任务可以分为多个并行执行的子任务。当该资源集群中执行分布式模型架构的任务时,每个子任务占用资源集群中不同的资源。相应的,资源管理器为第二任务的每个子任务调度资源时,记录每个子任务所占资源中的可被抢占资源。相应的,在本步骤中,资源管理器直接获取已记录的每个子任务所占资源中的可被抢占资源,根据每个子任务所占用的资源确定第二任务所占资源中的可被抢占资源。
例如,当该资源集群中资源为硬件资源时,该硬件资源可以为worker,一个子任务占用一个worker。相应的,资源管理器可以确定至少一个第二任务中多个可被抢占资源的子任务的数量来确定可抢占资源的数量。
在一种可能的实现方式中,资源管理器检测到资源集群中的空闲资源不足以执行该第一任务时,就检测资源集群中正在执行的第二任务的可抢占资源。在另一种可能的实现方式中,当资源管理器检测到资源集群中的空闲资源不足以执行该第一任务时,可以根据该第一任务的任务类型确定该第一任务是否为该第一任务调度可抢占资源,当该第一任务的任务类型为第二指定任务类型时,才检测当前资源集群中正在执行的第二任务的可抢占资源。
需要说明的一点是,该确定第一任务的任务类型的步骤可以在步骤S32之前的任一步骤执行,在本公开实施例中,对此不作具体限定。
在本公开实施例中,通过先确定第一任务的任务类型,当第一任务的任务类型为第二指定类型时,执行检测资源集群中的可抢占资源的步骤,可以优先执行任务列表中任务类型为指定类型的任务,使第一任务可以充分利用资源集群中的空闲资源,提高了资源的利用率,并且,可以优先执行第二指定类型的任务,防止任务阻塞。
需要说明的一点是,在本公开实施例中,可以根据任务的预计执行时长对任务进行分类,相应的,该任务类型包括第一指定类型和第二指定类型。其中,第一指定类型为预计执行时长大于预设时长的任务类型,第二指定类型为预计执行时长小于预设时长的任务类型。该预设时长可以根据需要进行设置并更改,在本公开实施例中,对预设时长的大小不作具体限定。例如,该预设时长可以为7天、15天等。该任务类型还可以用于指示该任务为大任务或小任务。相应的,该第一指定类型为执行所需资源超过预设资源的任务类型;第二指定类型为执行所需资源不超过预设资源的任务类型。
资源管理器检测该资源集群中的可抢占资源之后,检测该空闲资源和该可抢占资源是否足以执行第一任务,当该空闲资源和该可抢占资源足以执行该第一任务时,执行步骤S33;当该空闲资源和该可抢占资源不足以执行该第一任务时,执行步骤S34。
在步骤S33中,当该空闲资源和该可抢占资源足以执行该第一任务时,资源管理器调度资源集群中的空闲资源和可抢占资源执行第一任务。
本步骤可以通过以下步骤S331-S333实现,包括:
S331:资源管理器根据该第一任务所需资源和该空闲资源,确定该资源集群中需要被抢占的资源。
当该空闲资源和可抢占资源足以执行该第一任务时,资源管理器为该第一任务调度资源集群中的空闲资源和可抢占资源。其中,资源管理器在为第一任务调度资源时,可以先将资源集群中的空闲资源全部调度给第一任务,之后确定该第一任务仍需要的资源,根据该第一任务仍需要的资源确定资源集群中的需要被抢占的资源。
S332:资源管理器根据该需要被抢占的资源和每个第二任务的可抢被占资源,从该每个第二任务中选择第二任务,该空闲资源和该选择的第二任务的可被抢占资源之和足以执行该第一任务。
资源管理器根据需要被抢占的资源从多个第二任务中选择可以被抢占资源的第二任务。
第一种实现方式,资源管理器在选择第二任务时,可以从该资源集群中的多个第二任务中随机选择第二任务。其中,资源管理器可以随机选择该资源集群中一个第二任务,资源管理器也可以随机选择该资源集群中多个第二任务;在本公开实施例中,对此不作具体限定。例如,资源管理器可以选择2个、3个或5个第二任务的可抢占资源。
在本实现方式中,第二任务可以通过随机抢占资源集群中的资源为第一任务调度可用资源,减少可其他选择操作,提高了资源调度效率。
第二种实现方式,资源管理器也可以根据第二任务的优先级从资源集群的多个第二任务中选择第二任务。资源管理器可以先确定资源集群中每个第二任务的任务信息,根据第二任务的任务信息确定第二任务的优先级,资源管理器根据第二任务的优先级选择第二任务。相应的,资源管理器可以根据该资源集群中多个第二任务的优先级为第二任务进行排序,从该排序后的多个第二任务中依次选择至少一个第二任务。其中,第二任务的优先级可以根据该第二任务的预计执行时长进行设置。例如,第二任务的预计执行时长越长,其优先级越低。
在本实现方式中,资源管理器通过调用优先级低的第二任务的可抢占资源,从而保证了优先级高的第二任务可以正常执行,并及时完成,防止了优先级高的第二任务不能及时完成,对优先级高的第二任务造成影响。
第三种实现方式,资源管理器还可以选择资源集群中第二任务的可抢占资源与需要被抢占的资源相同的第二任务。资源管理器先确定执行第一任务时需要的资源和空闲资源的差,在多个第二任务中,选择可抢占资源与该空闲资源的差相同的第二任务,该第二任务可以为一个第二任务,也可以为多个第二任务,在本公开实施例中,对此不作具体限定。
在本实现方式中,资源管理器根据第二任务的可抢占资源和需要被抢占的资源确定第二任务,选择可抢占资源与需要被抢占资源相同的第二任务的资源,避免了选择多个第二任务进行抢占,影响多个第二任务的进程。
第四种实现方式,资源管理器可以选择指定类型的第二任务。相应的,本步骤可以以下步骤S3321-S3322实现,包括:
步骤S3321:资源管理器确定该每个第二任务的任务类型。
在本步骤中,对于每个第二任务,资源管理器可以根据该第二任务的标识确定该第二任务的任务类型。其中,资源管理器确定第二任务的任务类型的方法,与上述步骤S31中资源管理器确定第一任务的任务类型的步骤相似,在此不再赘述。
步骤S3322:资源管理器根据该需要被抢占的资源、该每个第二任务的任务类型和该每个第二任务的可抢占资源,从该每个第二任务中选择任务类型为第一指定类型的第二任务。
在本步骤中,资源管理器根据第二任务的任务类型选择任务类型为第一指定类型的第二任务。其中,第一指定类型为预计执行时长超过预设时长的任务类型。预设时长可以根据需要进行设置并更改,在本公开实施例中,对预设时长不作具体限定;例如,预设时长可以为七天或者15天等。该任务类型还可以用于指示该任务为大任务或小任务。相应的,该第一指定类型为执行所需资源超过预设资源的任务类型。
在本实现方式中,资源管理器根据第二任务的任务类型选择第二任务,通过选择指定任务类型的第二任务,保证了非指定类型的第二任务和第一任务可以正常执行,提高了资源集群中资源的利用率。
S333:资源管理器调度空闲资源执行第一任务,以及调度选择的第二任务的可抢占资源执行第一任务。
在本步骤中,资源管理器将资源集群中的空闲资源调度给第一任务,并抢占选择的第二任务的可抢占资源,相应的,第二任务将可抢占资源释放后,资源管理器将第二任务的可抢占资源调度给第一任务。
需要说明的一点是,由于资源集群中的资源传输数据的方法有两种:同步传输和异步传输,其中,通过同步传输方式传输数据时,第二任务所占的所有资源都执行完相应的任务后,才将执行结果传输给Parameter Server,相应的,第二任务占用的所有资源同时释放;通过异步传输方式传输数据时,第二任务中的目标子任务执行结束时,就将执行得到的结果发送给Parameter Server,相应的,该目标子任务执行完后就可以释放该目标子任务占用的资源。因此在本步骤中,资源管理器在将第二任务的可抢占资源分配给第一任务的方法也包括两种,第一种实现方式,当该选择的第二任务为同步任务时,资源管理器在执行完该选择的第二任务时,调度该选择的第二任务的可抢占资源执行该第一任务。第二种实现方式,当该选择的第二任务为异步任务时,资源管理器在执行完目标子任务时,调度该选择的第二任务的可抢占资源执行该第一任务,该目标子任务为该选择的第二任务的可抢占资源所执行的任务。
需要说明的一另点是,资源管理器为第二任务调度资源后,第二任务可以直接在该资源管理器调度的资源中执行;资源管理器也可以将调度给第二任务的资源的标识发送给Parameter Server,由Parameter Server将资源分配给第二任务。
需要说明的另一点是,当资源管理器为该第一任务调度资源后,需要为该第一任务标记资源是否可被抢占。
其中,该第一任务执行时所占的资源可以被标记为不可抢占资源,也可以被标记为可抢占资源,在一种可能的实现方式中,资源管理器将该第一任务中所占的资源全部标记为可抢占资源。在另一种可能的实现方式中,资源管理器将该第一任务所占的资源全部标记为不可抢占资源,在另一种可能的实现方式中,资源管理器根据该第一任务之前是否有未执行的任务,对第一任务所占的资源进行标记。当任务列表中不存在位于第一任务之前的未执行任务时,资源管理器将第一任务的资源标记为不可抢占资源;当任务列表中存在位于第一任务之前的未执行任务时,资源管理器将第一任务的资源标记为可抢占资源。并且,资源管理器将该第一任务的资源标记为可抢占的资源时,可以将该第一任务占用的资源全部标记为可抢占资源,也可以仅将该第一任务所占用的资源中的部分标记为可抢占资源,在本公开实施例中,可以根据第一任务的任务类型,对该第一任务所占用的资源进行标记。该过程可以通过以下步骤S3331-S3332实现,包括:
S3331:当第一任务的任务类型为第一指定类型时,资源管理器将第一任务的全部资源标记为可被抢占资源。
当该第一任务的任务类型为第一指定类型时,将该第一任务所占用的资源全部标记为可被抢占资源,当有新的任务需要在该资源集群中执行时,可以抢占该第一任务的子任务所占用的资源。继续参见图4,当该第二任务为图4中的第三个任务时,当该任务执行前有未被执行的任务时,将该第一任务的资源标记为可被抢占资源。当该第一任务之前的未被执行的任务抢占了该第一任务的资源时,该第一任务成暂停执行,若未被抢占,则该第一任务执行到结束。
S3332:当该第一任务的任务类型为第二指定类型时,资源管理器将该第一任务所占资源中的部分资源标记为可抢占资源。
当该资源集群中的资源为硬件资源时,在一种可能的实现方式中,资源管理器可以将第一任务占资源中选择第一预设数量个资源标记为可被抢占资源。其中,资源管理器可以从第一任务包括的子任务所占资源中随机选择第一预设数量个资源。该第一预设数量也可以根据需要进行设置并更改,在本公开实施例中,对此不作具体限定。例如,该第一预设数量可以为50、75等。
在另一种可能的实现方式中,资源管理器可以将第二任务所占资源中预设比例的资源标记为可被抢占资源,根据该比例和第二任务所占资源的数量确定可被抢占的资源数量。其中,该预设比例可以根据需要进行设置并更改,在本公开实施例中,对预设比例不作具体限定。例如,该预设比例可以为0.3、0.4或0.5等。
需要说明的另一点是,在一种可能的实现方式中,将第二任务所占用的可抢占资源调度给第一任务后,第二任务可以仅根据不可被抢占的资源继续执行到该任务结束,如图4所示,图4中第二个任务,当该第二任务中的可被抢占资源被抢占后,该第二任务通过不可被抢占资源继续执行到结束。在另一种可能的实现方式中,当第一任务执行结束后,被释放的资源中被抢占的资源可以继续由第二任务占用。
在步骤S34中,当该空闲资源和该可抢占资源不足以执行该第一任务时,资源管理器从该任务列表中选择任务类型为第二指定类型的第三任务。
在本步骤中,当可抢占资源和该空闲资源之和不足以执行该第一任务时,资源管理器按照FIFO的原则,确定该任务列表中的第三任务,该第三任务为任务类型为第二指定类型的任务。
需要说明的一点是,在一种可能的实现方式中,该资源管理器可以先确定任务列表中的任务类型为第二指定类型的任务,再按照FIFO的原则,从该第二指定类型的任务中确定第一任务之后的第一个第二指定类型的任务,将该任务作为第三任务;在另一种可能的实现方式中,该资源管理器根据FIFO的原则,确定第一任务之后的第一个任务,将该任务作为第四任务,确定该第四任务的任务类型,当该第四任务的任务类型为第二指定类型时,将该第四任务作为第三任务,当该第四任务的任务类型不是第二指定类型时,确定该第四任务之后的第五任务的任务类型,依此类推,直至检测到任务类型为第二指定类型的任务。
其中,资源管理器确定该第三任务的任务类型的过程,与步骤S32中资源管理器确定第一任务的任务类型的过程相似,在此不再赘述。
需要说明的一点是,资源管理器还可以直接根据FIFO的原则选择任务列表中,第一任务的下一个任务作为第三任务;资源管理器还可以直接从未执行的任务中选择执行时所需资源最少的任务作为第三任务。在本公开实施例中,对此不作具体限定。
需要说明的另一点是,在一种可能的实现方式中,资源管理器在选择第三任务之后,可以继续检测资源集群中的空闲资源,当该资源集群中的空闲资源足以执行该第三任务时,资源管理器直接为该第三任务调度该资源集群中的空闲资源,当该资源管理器中的空闲资源不足以执行该第三任务时,资源管理器检测该资源集群中的第二任务的可抢占资源,当该资源集群中的空闲资源和可抢占资源足以执行该第三任务时,为该第三任务调度该资源集群中的空闲资源和可抢占资源。其中,该资源管理器检测该资源集群中的空闲资源和可抢占资源的步骤与步骤S31-S32中资源管理器检测资源集群中的空闲资源和可抢占资源的步骤相同,在此不再赘述。
在本实现方式中,资源管理器在为第三任务调度资源时,再次检测资源集群中的空闲资源和可抢占资源,保证当前的空闲资源和可抢占资源都是有效资源,且防止了有第二任务执行结束后释放的资源不能被及时检测,保证了资源集群中的资源可以被及时调度。
在另一种可能的实现方式中,资源管理器在选择第三任务之后,可以不再执行检测资源集群中空闲资源和可抢占资源的步骤,而是直接执行当该空闲资源和可抢占资源足以执行该第三任务时,为该第三任务调度资源。在本实现方式中,资源管理器在选择第三任务后,当空闲资源和可抢占资源足以执行该第三任务时,资源管理器直接为该第三任务调度资源,减少了重复检测资源集群中空闲资源和可抢占资源的过程,提高了资源集群中任务执行的效率。
在步骤S35中,当该空闲资源和该可抢占资源足以执行该第三任务时,资源管理器调度该资源集群中的空闲资源和可抢占资源执行该第三任务。
本步骤与步骤S33相似,在此不再赘述。
需要说明的一点是,当资源管理器为该第三任务调度资源后,需要为该第三任务标记资源是否可被抢占。
当该资源权利器将该资源集群中的资源调度给第三任务后,资源管理器可以将该第三任务所占的资源全部标识为不可被抢占资源,也可以将该第三任务所占的资源全部标记为不可抢占资源。当该第三任务所占的全部资源被标记为可抢占资源时,资源集群中的资源有任务结束时,确定当前释放的资源、空闲资源、第三任务所占用的资源和当前第二任务中的可抢占资源是否满足第二资源,当满足时,暂停执行第三资源,将当前释放的资源、空闲资源、第三任务所占用的资源和当前第二任务中的可抢占资源调度给第二资源。
在本公开实施例中,在执行任务列表中的第一任务时,检测资源集群中的空闲资源,当该空闲资源不足以执行该第一任务时,检测正在运行的第二任务的可抢占资源,当该空闲资源和可抢占资源组织执行该第一任务时,调度资源集群中的空闲资源和可抢占资源,执行任务列表中的任务,通过调度正在运行的第二任务的可抢占资源,防止了因资源集群中空闲资源不足导致任务列表中的第一任务不能执行的问题,使资源集群中的空闲资源可以被合理占用,提高了资源集群中资源的利用率,使得资源集群中可以同时执行更多的任务,提高了任务执行的效率。
并且,当空闲资源和可抢占资源不足以执行该第一任务时,确定该任务列表中的第三任务,当该空闲资源和可抢占资源足以执行该第三任务时,资源管理器为第三任务调用该空闲资源和可抢占资源,防止了当空闲资源和可抢占资源不足以执行该第一任务时,造成的任务阻塞的问题,保证了资源集群中的资源可以被合理占用,提高了资源集群中资源的利用率,使得资源集群中可以同时执行更多的任务,提高了任务执行的效率。
图5是根据一示例性实施例示出的一种资源分配装置的框图,如图5所示,该装置包括:
第一检测模块501,用于当执行任务列表中的第一任务时,检测资源集群中的空闲资源;
第二检测模块502,用于当该空闲资源不足以执行该第一任务时,检测该资源集群中的可抢占资源,该可抢占资源为正在运行的至少一个第二任务所占资源中的可被抢占资源;
第一调度模块503,用于当该空闲资源和该可抢占资源足以执行该第一任务时,调度该资源集群中的空闲资源和可抢占资源执行该第一任务。
在一种可能的实现方式中,该第一调度模块503,还用于根据该第一任务所需资源和该空闲资源,确定该资源集群中需要被抢占的资源;根据该需要被抢占的资源和每个第二任务的可抢占资源,从该每个第二任务中选择第二任务,该空闲资源和该选择的第二任务的可抢占资源之和足以执行该第一任务;调度该空闲资源执行该第一任务,以及调度该选择的第二任务的可抢占资源执行该第一任务。
在另一种可能的实现方式中,该第一调度模块503,还用于确定该每个第二任务的任务类型;根据该需要被抢占的资源、该每个第二任务的任务类型和该每个第二任务的可抢占资源,从该每个第二任务中选择任务类型为第一指定类型的第二任务。
在另一种可能的实现方式中,该第一调度模块503,还用于当该选择的第二任务为同步任务时,在执行完该选择的第二任务时,调度该选择的第二任务的可抢占资源执行该第一任务;当该选择的第二任务为异步任务时,在执行完目标子任务时,调度该选择的第二任务的可抢占资源执行该第一任务,该目标子任务为该选择的第二任务的可抢占资源所执行的任务。
在另一种可能的实现方式中,该装置还包括:
第一标记模块,用于当该任务列表中不存在位于该第一任务之前的未执行任务时,将该第一任务的资源标记为不可抢占资源;
第二标记模块,用于当该任务列表中存在位于该第一任务之前的未执行任务时,将该第一任务的资源标记为可抢占资源。
在另一种可能的实现方式中,第二标记模块,还用于当该第一任务的任务类型为第一指定类型时,将该第一任务所占资源中的部分资源标记为可抢占资源;当该第一任务的任务类型为第二指定类型时,将该第一任务所占的全部资源标记为可抢占资源。
在另一种可能的实现方式中,该装置还包括:
选择模块,用于当该空闲资源和该可抢占资源不足以执行该第一任务时,从该任务列表中选择任务类型为第二指定类型的第三任务;
第二调度模块,用于当该空闲资源和该可抢占资源足以执行该第三任务时,调度该资源集群中的空闲资源和可抢占资源执行该第三任务。
在另一种可能的实现方式中,该装置还包括:
第三调度模块,用于当该资源集群中的空闲资源足以执行第一任务时,调度该空闲资源执行该第一任务。
在本公开实施例中,在执行任务列表中的第一任务时,检测资源集群中的空闲资源,当该空闲资源不足以执行该第一任务时,检测正在运行的第二任务的可抢占资源,当该空闲资源和可抢占资源组织执行该第一任务时,调度资源集群中的空闲资源和可抢占资源,执行任务列表中的任务,通过调度正在运行的第二任务的可抢占资源,防止了因资源集群中空闲资源不足导致任务列表中的第一任务不能执行的问题,使资源集群中的空闲资源可以被合理占用,提高了资源集群中资源的利用率,使得资源集群中可以同时执行更多的任务,提高了任务执行的效率。
关于上述实施例中资源分配装置,其中各个模块执行操作的具体方式已经在有关该资源分配方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6示出了本公开的一个示例性实施例提供的资源管理器600的结构框图。该资源管理器600可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts GroupAudio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture ExpertsGroup Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。资源管理器600还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,资源管理器600包括有:处理器601和存储器602。
处理器601可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器601可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器601也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器601可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器601还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器602可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器602还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器602中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器601所执行以实现本申请中方法实施例提供的资源分配方法。
在一些实施例中,资源管理器600还可选包括有:外围设备接口603和至少一个外围设备。处理器601、存储器602和外围设备接口603之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口603相连。具体地,外围设备包括:射频电路604、显示屏605、摄像头606、音频电路607、定位组件608和电源609中的至少一种。
外围设备接口603可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器601和存储器602。在一些实施例中,处理器601、存储器602和外围设备接口603被集成在同一芯片或电路板上;在一些其他实施例中,处理器601、存储器602和外围设备接口603中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路604用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路604通过电磁信号与通信网络以及其他通信设备进行通信。射频电路604将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路604包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路604可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路604还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏605用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏605是触摸显示屏时,显示屏605还具有采集在显示屏605的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器601进行处理。此时,显示屏605还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏605可以为一个,设置资源管理器600的前面板;在另一些实施例中,显示屏605可以为至少两个,分别设置在资源管理器600的不同表面或呈折叠设计;在再一些实施例中,显示屏605可以是柔性显示屏,设置在资源管理器600的弯曲表面上或折叠面上。甚至,显示屏605还可以设置成非矩形的不规则图形,也即异形屏。显示屏605可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-EmittingDiode,有机发光二极管)等材质制备。
摄像头组件606用于采集图像或视频。可选地,摄像头组件606包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件606还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路607可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器601进行处理,或者输入至射频电路604以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在资源管理器600的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器601或射频电路604的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路607还可以包括耳机插孔。
定位组件608用于定位资源管理器600的当前地理位置,以实现导航或LBS(Location Based Service,基于位置的服务)。定位组件608可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源609用于为资源管理器600中的各个组件进行供电。电源609可以是交流电、直流电、一次性电池或可充电电池。当电源609包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,资源管理器600还包括有一个或多个传感器610。该一个或多个传感器610包括但不限于:加速度传感器611、陀螺仪传感器612、压力传感器613、指纹传感器614、光学传感器615以及接近传感器616。
加速度传感器611可以检测以资源管理器600建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器611可以用于检测重力加速度在三个坐标轴上的分量。处理器601可以根据加速度传感器611采集的重力加速度信号,控制显示屏605以横向视图或纵向视图进行用户界面的显示。加速度传感器611还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器612可以检测资源管理器600的机体方向及转动角度,陀螺仪传感器612可以与加速度传感器611协同采集用户对资源管理器600的3D动作。处理器601根据陀螺仪传感器612采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器613可以设置在资源管理器600的侧边框和/或显示屏605的下层。当压力传感器613设置在资源管理器600的侧边框时,可以检测用户对资源管理器600的握持信号,由处理器601根据压力传感器613采集的握持信号进行左右手识别或快捷操作。当压力传感器613设置在显示屏605的下层时,由处理器601根据用户对显示屏605的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器614用于采集用户的指纹,由处理器601根据指纹传感器614采集到的指纹识别用户的身份,或者,由指纹传感器614根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器601授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器614可以被设置资源管理器600的正面、背面或侧面。当资源管理器600上设置有物理按键或厂商Logo时,指纹传感器614可以与物理按键或厂商Logo集成在一起。
光学传感器615用于采集环境光强度。在一个实施例中,处理器601可以根据光学传感器615采集的环境光强度,控制显示屏605的显示亮度。具体地,当环境光强度较高时,调高显示屏605的显示亮度;当环境光强度较低时,调低显示屏605的显示亮度。在另一个实施例中,处理器601还可以根据光学传感器615采集的环境光强度,动态调整摄像头组件606的拍摄参数。
接近传感器616,也称距离传感器,通常设置在资源管理器600的前面板。接近传感器616用于采集用户与资源管理器600的正面之间的距离。在一个实施例中,当接近传感器616检测到用户与资源管理器600的正面之间的距离逐渐变小时,由处理器601控制显示屏605从亮屏状态切换为息屏状态;当接近传感器616检测到用户与资源管理器600的正面之间的距离逐渐变大时,由处理器601控制显示屏605从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图6中示出的结构并不构成对资源管理器600的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种非临时性计算机可读存储介质,当存储介质中的指令由资源管理器的处理器执行时,使得资源管理器能够执行上述资源分配方法。
在示例性实施例中,还提供了一种应用程序,当应用程序中的指令由资源管理器的处理器执行时,使得资源管理器能够执行上述资源分配方法。
本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种资源分配方法,其特征在于,所述方法包括:
当执行任务列表中的第一任务时,检测资源集群中的空闲资源;
当所述空闲资源不足以执行所述第一任务时,检测所述资源集群中的可抢占资源,所述可抢占资源为正在运行的至少一个第二任务所占资源中的可被抢占资源;
当所述空闲资源和所述可抢占资源足以执行所述第一任务时,调度所述资源集群中的空闲资源和可抢占资源执行所述第一任务。
2.根据权利要求1所述的方法,其特征在于,所述调度所述资源集群中的空闲资源和可抢占资源执行所述第一任务,包括:
根据所述第一任务所需资源和所述空闲资源,确定所述资源集群中需要被抢占的资源;
根据所述需要被抢占的资源和每个第二任务的可抢占资源,从所述至少一个第二任务中选择第二任务,所述空闲资源和选择的第二任务的可抢占资源之和足以执行所述第一任务;
调度所述空闲资源执行所述第一任务,以及调度所述选择的第二任务的可抢占资源执行所述第一任务。
3.根据权利要求2所述的方法,其特征在于,所述根据所述需要被抢占的资源和每个第二任务的可抢占资源,从所述至少一个第二任务中选择第二任务,包括:
确定所述每个第二任务的任务类型;
根据所述需要被抢占的资源、所述每个第二任务的任务类型和所述每个第二任务的可抢占资源,从所述每个第二任务中选择任务类型为第一指定类型的第二任务。
4.根据权利要求2所述的方法,其特征在于,所述调度所述选择的第二任务的可抢占资源执行所述第一任务,包括:
当所述选择的第二任务为同步任务时,在执行完所述选择的第二任务时,调度所述选择的第二任务的可抢占资源执行所述第一任务;
当所述选择的第二任务为异步任务时,在执行完目标子任务时,调度所述选择的第二任务的可抢占资源执行所述第一任务,所述目标子任务为所述选择的第二任务的可抢占资源所执行的任务。
5.根据权利要求1所述的方法,其特征在于,所述调度所述资源集群中的空闲资源和可抢占资源执行所述任第一任务之后,所述方法还包括:
当所述任务列表中不存在位于所述第一任务之前的未执行任务时,将所述第一任务的资源标记为不可抢占资源;
当所述任务列表中存在位于所述第一任务之前的未执行任务时,将所述第一任务的资源标记为可抢占资源。
6.根据权利要求5所述的方法,其特征在于,所述将所述第一任务的资源标记为可抢占资源,包括:
当所述第一任务的任务类型为第一指定类型时,将所述第一任务所占资源中的部分资源标记为可抢占资源;
当所述第一任务的任务类型为第二指定类型时,将所述第一任务所占的全部资源标记为可抢占资源。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述空闲资源和所述可抢占资源不足以执行所述第一任务时,从所述任务列表中选择任务类型为第二指定类型的第三任务;
当所述空闲资源和所述可抢占资源足以执行所述第三任务时,调度所述资源集群中的空闲资源和可抢占资源执行所述第三任务。
8.一种资源分配装置,其特征在于,所述装置包括:
第一检测模块,用于当执行任务列表中的第一任务时,检测资源集群中的空闲资源;
第二检测模块,用于当所述空闲资源不足以执行所述第一任务时,检测所述资源集群中的可抢占资源,所述可抢占资源为正在运行的至少一个第二任务所占资源中的可被抢占资源;
第一调度模块,用于当所述空闲资源和所述可抢占资源足以执行所述第一任务时,调度所述资源集群中的空闲资源和可抢占资源执行所述第一任务。
9.一种资源管理器,其特征在于,所述资源管理器包括:
一个或多个处理器;
用于存储所述一个或多个处理器可执行指令的一个或多个存储器;
其中,所述一个或多个处理器被配置为执行权利要求1-7任一项所述的资源分配方法。
10.一种非临时性计算机可读存储介质,其特征在于,当所述存储介质中的指令由资源管理器的处理器执行时,使得资源管理器能够执行权利要求1-7任一项所述的资源分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910453490.3A CN110134521B (zh) | 2019-05-28 | 2019-05-28 | 资源分配的方法、装置、资源管理器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910453490.3A CN110134521B (zh) | 2019-05-28 | 2019-05-28 | 资源分配的方法、装置、资源管理器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110134521A true CN110134521A (zh) | 2019-08-16 |
CN110134521B CN110134521B (zh) | 2021-06-11 |
Family
ID=67582409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910453490.3A Active CN110134521B (zh) | 2019-05-28 | 2019-05-28 | 资源分配的方法、装置、资源管理器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110134521B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111950870A (zh) * | 2020-07-28 | 2020-11-17 | 中国西安卫星测控中心 | 天地基测控数传资源一体化按需调度方法及系统 |
CN111984382A (zh) * | 2020-08-14 | 2020-11-24 | 济南浪潮数据技术有限公司 | 一种资源调度方法、装置、设备及计算机可读存储介质 |
CN112269650A (zh) * | 2020-12-18 | 2021-01-26 | 北京达佳互联信息技术有限公司 | 任务调度方法、装置、电子设备和存储介质 |
CN112685158A (zh) * | 2020-12-29 | 2021-04-20 | 杭州海康威视数字技术股份有限公司 | 一种任务调度方法、装置、电子设备及存储介质 |
CN112905334A (zh) * | 2021-02-02 | 2021-06-04 | 深信服科技股份有限公司 | 资源管理方法、装置、电子设备和存储介质 |
CN113114731A (zh) * | 2021-03-19 | 2021-07-13 | 北京达佳互联信息技术有限公司 | 任务处理方法、装置、服务器及存储介质 |
CN113365116A (zh) * | 2020-03-04 | 2021-09-07 | 青岛海信传媒网络技术有限公司 | 音视频资源管理方法及装置 |
WO2022028059A1 (zh) * | 2020-08-07 | 2022-02-10 | 苏州浪潮智能科技有限公司 | 一种基于服务器集群的调度节点的选择抢占方法及系统 |
CN115061800A (zh) * | 2022-06-30 | 2022-09-16 | 中国联合网络通信集团有限公司 | 边缘计算任务的处理方法、边缘服务器及存储介质 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102866920A (zh) * | 2012-08-02 | 2013-01-09 | 杭州海康威视系统技术有限公司 | 主从结构分布式视频处理系统及其调度方法 |
CN103699445A (zh) * | 2013-12-19 | 2014-04-02 | 北京奇艺世纪科技有限公司 | 一种任务调度方法、装置及系统 |
CN103810045A (zh) * | 2012-11-09 | 2014-05-21 | 阿里巴巴集团控股有限公司 | 资源分配方法、资源管理器、资源服务器及系统 |
CN105183561A (zh) * | 2015-09-02 | 2015-12-23 | 浪潮(北京)电子信息产业有限公司 | 一种资源分配方法和系统 |
CN105373426A (zh) * | 2015-07-28 | 2016-03-02 | 哈尔滨工程大学 | 一种基于Hadoop的车联网内存感知实时作业调度方法 |
CN105718316A (zh) * | 2014-12-01 | 2016-06-29 | 中国移动通信集团公司 | 一种作业调度的方法及装置 |
CN105847891A (zh) * | 2016-03-31 | 2016-08-10 | 乐视控股(北京)有限公司 | 一种资源抢占方法和装置 |
US9424078B2 (en) * | 2011-11-14 | 2016-08-23 | Microsoft Technology Licensing, Llc | Managing high performance computing resources using job preemption |
CN107168782A (zh) * | 2017-04-24 | 2017-09-15 | 复旦大学 | 一种基于Spark与GPU的并行计算系统 |
CN108123980A (zh) * | 2016-11-30 | 2018-06-05 | 中移(苏州)软件技术有限公司 | 一种资源调度方法及系统 |
CN108415765A (zh) * | 2018-02-28 | 2018-08-17 | 百度在线网络技术(北京)有限公司 | 任务调度方法、装置及智能终端 |
US20180321979A1 (en) * | 2017-05-04 | 2018-11-08 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing a scheduler with preemptive termination of existing workloads to free resources for high priority items |
CN109213594A (zh) * | 2017-07-06 | 2019-01-15 | 阿里巴巴集团控股有限公司 | 资源抢占的方法、装置、设备和计算机存储介质 |
CN109428912A (zh) * | 2017-08-24 | 2019-03-05 | 阿里巴巴集团控股有限公司 | 一种分布式系统资源分配方法、装置及系统 |
CN109582436A (zh) * | 2018-10-15 | 2019-04-05 | 上海交通大学 | 基于容器集群平台的细粒度抢占式资源调度系统及方法 |
-
2019
- 2019-05-28 CN CN201910453490.3A patent/CN110134521B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9424078B2 (en) * | 2011-11-14 | 2016-08-23 | Microsoft Technology Licensing, Llc | Managing high performance computing resources using job preemption |
CN102866920A (zh) * | 2012-08-02 | 2013-01-09 | 杭州海康威视系统技术有限公司 | 主从结构分布式视频处理系统及其调度方法 |
CN103810045A (zh) * | 2012-11-09 | 2014-05-21 | 阿里巴巴集团控股有限公司 | 资源分配方法、资源管理器、资源服务器及系统 |
CN103699445A (zh) * | 2013-12-19 | 2014-04-02 | 北京奇艺世纪科技有限公司 | 一种任务调度方法、装置及系统 |
CN105718316A (zh) * | 2014-12-01 | 2016-06-29 | 中国移动通信集团公司 | 一种作业调度的方法及装置 |
CN105373426A (zh) * | 2015-07-28 | 2016-03-02 | 哈尔滨工程大学 | 一种基于Hadoop的车联网内存感知实时作业调度方法 |
CN105183561A (zh) * | 2015-09-02 | 2015-12-23 | 浪潮(北京)电子信息产业有限公司 | 一种资源分配方法和系统 |
CN105847891A (zh) * | 2016-03-31 | 2016-08-10 | 乐视控股(北京)有限公司 | 一种资源抢占方法和装置 |
CN108123980A (zh) * | 2016-11-30 | 2018-06-05 | 中移(苏州)软件技术有限公司 | 一种资源调度方法及系统 |
CN107168782A (zh) * | 2017-04-24 | 2017-09-15 | 复旦大学 | 一种基于Spark与GPU的并行计算系统 |
US20180321979A1 (en) * | 2017-05-04 | 2018-11-08 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing a scheduler with preemptive termination of existing workloads to free resources for high priority items |
CN109213594A (zh) * | 2017-07-06 | 2019-01-15 | 阿里巴巴集团控股有限公司 | 资源抢占的方法、装置、设备和计算机存储介质 |
CN109428912A (zh) * | 2017-08-24 | 2019-03-05 | 阿里巴巴集团控股有限公司 | 一种分布式系统资源分配方法、装置及系统 |
CN108415765A (zh) * | 2018-02-28 | 2018-08-17 | 百度在线网络技术(北京)有限公司 | 任务调度方法、装置及智能终端 |
CN109582436A (zh) * | 2018-10-15 | 2019-04-05 | 上海交通大学 | 基于容器集群平台的细粒度抢占式资源调度系统及方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113365116A (zh) * | 2020-03-04 | 2021-09-07 | 青岛海信传媒网络技术有限公司 | 音视频资源管理方法及装置 |
CN111950870A (zh) * | 2020-07-28 | 2020-11-17 | 中国西安卫星测控中心 | 天地基测控数传资源一体化按需调度方法及系统 |
CN111950870B (zh) * | 2020-07-28 | 2023-09-05 | 中国西安卫星测控中心 | 天地基测控数传资源一体化按需调度方法及系统 |
WO2022028059A1 (zh) * | 2020-08-07 | 2022-02-10 | 苏州浪潮智能科技有限公司 | 一种基于服务器集群的调度节点的选择抢占方法及系统 |
CN111984382A (zh) * | 2020-08-14 | 2020-11-24 | 济南浪潮数据技术有限公司 | 一种资源调度方法、装置、设备及计算机可读存储介质 |
CN112269650A (zh) * | 2020-12-18 | 2021-01-26 | 北京达佳互联信息技术有限公司 | 任务调度方法、装置、电子设备和存储介质 |
CN112685158A (zh) * | 2020-12-29 | 2021-04-20 | 杭州海康威视数字技术股份有限公司 | 一种任务调度方法、装置、电子设备及存储介质 |
CN112685158B (zh) * | 2020-12-29 | 2023-08-04 | 杭州海康威视数字技术股份有限公司 | 一种任务调度方法、装置、电子设备及存储介质 |
CN112905334A (zh) * | 2021-02-02 | 2021-06-04 | 深信服科技股份有限公司 | 资源管理方法、装置、电子设备和存储介质 |
CN113114731A (zh) * | 2021-03-19 | 2021-07-13 | 北京达佳互联信息技术有限公司 | 任务处理方法、装置、服务器及存储介质 |
CN113114731B (zh) * | 2021-03-19 | 2023-03-14 | 北京达佳互联信息技术有限公司 | 任务处理方法、装置、服务器及存储介质 |
CN115061800A (zh) * | 2022-06-30 | 2022-09-16 | 中国联合网络通信集团有限公司 | 边缘计算任务的处理方法、边缘服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110134521B (zh) | 2021-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110134521A (zh) | 资源分配的方法、装置、资源管理器及存储介质 | |
CN110209488A (zh) | 任务执行方法、装置、设备、系统及存储介质 | |
CN108762881A (zh) | 界面绘制方法、装置、终端及存储介质 | |
CN108304265A (zh) | 内存管理方法、装置及存储介质 | |
CN110022363A (zh) | 虚拟对象的运动状态修正方法、装置、设备及存储介质 | |
CN109861966B (zh) | 处理状态事件的方法、装置、终端及存储介质 | |
WO2020001564A1 (zh) | 一种处理任务的方法、装置及系统 | |
CN111352633B (zh) | 应用程序的资源下载方法、装置、终端及存储介质 | |
CN109931934A (zh) | 无人机作业任务的规划方法及装置 | |
CN110119305B (zh) | 任务执行方法、装置、计算机设备及存储介质 | |
CN110333834A (zh) | 帧频调整方法及装置、显示设备、计算机可读存储介质 | |
CN110532170A (zh) | 搭建测试环境的方法、装置、电子设备及介质 | |
CN108900925A (zh) | 设置直播模板的方法和装置 | |
CN110517032A (zh) | 资源转移方法、系统、装置、服务器及存储介质 | |
CN110673944B (zh) | 执行任务的方法和装置 | |
CN110378525A (zh) | 出行计划确定方法、装置、设备及存储介质 | |
CN110401898A (zh) | 输出音频数据的方法、装置、设备和存储介质 | |
CN109246228A (zh) | 资源获取、资源分配方法、装置、设备及存储介质 | |
CN109600301A (zh) | 消息处理方法及装置 | |
CN109858237A (zh) | 音频数据采集方法、装置、终端及存储介质 | |
CN110381155A (zh) | 任务管理方法、装置、存储介质及终端 | |
CN109107163A (zh) | 模拟按键检测方法、装置、计算机设备及存储介质 | |
CN108829464A (zh) | 服务启动方法、装置、计算机设备及存储介质 | |
CN109240823A (zh) | 多端联动处理任务的方法、装置和可读存储介质 | |
CN110505510A (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 |