CN117215732A - 任务调度方法、装置、系统及相关设备 - Google Patents

任务调度方法、装置、系统及相关设备 Download PDF

Info

Publication number
CN117215732A
CN117215732A CN202210901085.5A CN202210901085A CN117215732A CN 117215732 A CN117215732 A CN 117215732A CN 202210901085 A CN202210901085 A CN 202210901085A CN 117215732 A CN117215732 A CN 117215732A
Authority
CN
China
Prior art keywords
task
scheduling
cpu
target cpu
target
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
CN202210901085.5A
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 PCT/CN2023/097910 priority Critical patent/WO2023232127A1/zh
Publication of CN117215732A publication Critical patent/CN117215732A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

提供一种任务调度方法,该方法应用于包括多个CPU的异构硬件平台,该多个CPU采用大小核架构;在调度任务过程中,获取待处理的任务,并预测该多个CPU中的目标CPU处理该任务所产生的综合代价,该综合代价是根据目标CPU处理该任务产生的IO代价、CPU代价以及附加代价得到的,其中,附加代价根据该任务的需求特征或目标CPU的运行状态进行确定,从而当目标CPU处理该任务产生的综合代价满足调度条件,将该任务调度至目标CPU。如此,利用附加代价能够对任务调度进行纠偏,实现最优调度,避免异构硬件平台中的CPU因为分配到过多数量的任务而导致部分任务的处理效率较低,从而实现提高任务调度的合理性。此外,本申请还公开相应的任务调度装置、系统及相关设备。

Description

任务调度方法、装置、系统及相关设备
本申请要求于2022年06月02日提交中国国家知识产权局、申请号为202210625934.9、申请名称为“一种数据处理方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及数据处理技术领域,尤其涉及一种任务调度方法、装置、系统及相关设备。
背景技术
目前,多处理器核(core)架构,在终端、服务器等计算设备中得到广泛应用。在基于多处理器核架构处理任务时,通常会利用代价估算模型,预先估算各个处理器核执行该任务所产生的代价,包括输入输出(input/output,IO)代价(即读写数据所产生的代价)、CPU代价(即CPU执行运算所产生的代价),从而将该任务调度至代价最小的处理器核上,以使得多处理器核的性能达到较高水平。
但是,在包括大核以及小核的大小核架构(big.little architecture)中,在根据代价估算模型所预估出的代价进行任务调度时,容易出现任务调度不合理的问题,如部分处理器核分配到的任务数量过多而发生任务阻塞,同时另一部分处理器核未分配到任务而处于闲置状态,从而影响任务的处理效率。
发明内容
提供一种任务调度方法、任务调度装置、任务调度系统、计算设备、芯片、计算机可读存储介质以及计算机程序产品,以提高任务调度的合理性,从而提高任务的处理效率。
第一方面,本申请实施例提供一种任务调度方法,该方法应用于包括多个CPU的异构硬件平台,该多个CPU可以采用大小核架构,即多个CPU中的部分CPU包括大核,多个CPU中的部分CPU包括小核;在进行任务调度的过程中,获取待处理的任务,并预测该多个CPU中的目标CPU处理该任务所产生的综合代价,该综合代价是根据目标CPU处理该任务产生的IO代价、CPU代价以及附加代价得到的,其中,附加代价根据该任务的需求特征或目标CPU的运行状态进行确定,从而当目标CPU处理该任务产生的综合代价满足调度条件,将该任务调度至目标CPU。
由于在进行任务调度时,在考虑到IO代价和CPU代价的基础上,还根据任务的需求或CPU的运行状态,评估CPU处理该任务所对应的附加代价,从而可以利用附加代价对任务调度进行纠偏,实现最优调度,避免异构硬件平台中的CPU因为分配到过多数量的任务而导致部分任务的处理效率较低,从而实现提高任务调度的合理性。
进一步地,当目标CPU处理该任务产生的综合代价不满足调度条件,则可以将该任务调度至异构硬件平台中的其他CPU,如调度至综合代价满足该调度条件的其他CPU。
在一种可能的实施方式中,目标CPU为包括大核的CPU,从而在进行任务调度时,具体可以是根据该目标CPU处理任务产生的综合代价,确定将该任务调度至目标CPU的优先级,并且,当该任务调度至目标CPU的优先级为第一优先级时,将该任务至目标CPU。相应的,当该任务调度至目标CPU的优先级不为第一优先级时,可以将该任务调度至其他CPU。如此,可以将任务调度至综合代价对应的优先级较高的CPU中,以便利用大核的高性能算力处理任务,从而可以提高任务的处理效率。
在一种可能的实施方式中,目标CPU为包括小核的CPU,则在进行任务调度时,具体可以是根据该目标CPU处理任务产生的综合代价,确定将该任务调度至目标CPU的优先级,并且,当该任务调度至目标CPU的优先级为第二优先级时,将该任务至目标CPU,该第二优先级低于第一优先级。相应的,当该任务调度至目标CPU的优先级不为第二优先级时,可以将该任务调度至其他CPU。如此,可以将任务调度至综合代价对应的优先级较低的CPU中,以便利用小核的高性能算力处理任务,减少大核当前的任务负担,从而提高任务调度的合理性。
在一种可能的实施方式中,目标CPU为包括大核的CPU,则在调度多线程任务时,具体可以是根据该目标CPU处理任务产生的综合代价,确定将该任务调度至目标CPU的优先级,并且,当该任务调度至目标CPU的优先级为第三优先级时,将该任务至目标CPU以及包括小核的CPU,该第三优先级低于第一优先级,且第三优先级高于第二优先级。如,可以利用包括大核的CPU以及包括小核的CPU并行处理该多线程任务,在提高任务调度合理性的同时,也能尽可能提高任务处理效率。
在一种可能的实施方式中,在预测多个CPU中的目标CPU处理该任务产生的综合代价时,具体可以是当包括大核的CPU的可用资源大于阈值时,预测该多个CPU中的目标CPU处理任务产生的综合代价,以便在大核的可用资源有限的情况下,通过预测CPU处理任务所产生的综合代价来提高任务调度的合理性,避免包括大核的CPU上分配到的任务数量过多而影响部分任务的处理效率。
可选地,当包括大核的CPU的可用资源大于或者等于阈值时,可以直接将该任务调度至包括大核的CPU,以便利用大核的高性能算力提高任务处理效率。
在一种可能的实施方式中,目标CPU处理任务所产生的附加代价,根据该任务向目标CPU请求的次数、目标CPU在单位时间内被请求的次数、目标CPU的工作频率、目标CPU包括的处理器核的数量中的任意一种或多种得到。
在一种可能的实施方式中,在进行任务调度之前,还可以呈现配置界面,并响应于用户在该配置界面的操作,对异构硬件平台的任务调度模式进行配置,该任务调度模式包括在线模式或离线模式。其中,当处于在线模式时,可以根据CPU处理任务产生的综合代价进行任务调度,而当处于离线模式时,可以将任务调度至固定的一个或者多个CPU中。如此,可以在不同时间段或者不同场景实现任务的灵活、合理调度。
第二方面,本申请实施例提供一种任务调度方法,该方法应用于包括多个处理器核的异构硬件平台,该多个处理器核可以采用大小核架构,即多个处理器核中的部分处理器核包括大核,多个处理器核中的部分处理器核包括小核;在进行任务调度的过程中,获取待处理的任务,并预测该多个处理器核中的目标处理器核处理该任务所产生的综合代价,该综合代价是根据目标处理器核处理该任务产生的IO代价、计算代价以及附加代价得到的,其中,附加代价根据该任务的需求特征或目标处理器核的运行状态进行确定,从而当目标处理器核处理该任务产生的综合代价满足调度条件,将该任务调度至目标处理器核。
由于在进行任务调度时,在考虑到IO代价和计算代价的基础上,还根据任务的需求或处理器核的运行状态,评估处理器核处理该任务所对应的附加代价,从而可以利用附加代价对任务调度进行纠偏,实现最优调度,避免异构硬件平台中的处理器核因为分配到过多数量的任务而导致部分任务的处理效率较低,从而实现提高任务调度的合理性。
在一种可能的实施方式中,在进行任务调度时,当目标处理器核处理任务产生的综合代价在多个处理器核分别处理该任务所产生的综合代价中最小时,将该任务调度至目标处理器核,否则,将该任务调度至综合代价最小的其他处理器核。如此,通过利用综合代价最小的处理器核处理该任务,可以有效提高任务调度的合理性,避免部分处理器核上分配到过多的任务而导致部分任务的处理效率较低。
第三方面,本申请实施例提供一种任务调度装置,该装置应用于异构硬件平台,异构硬件平台包括多个CPU,多个CPU中的部分CPU包括大核,多个CPU中的部分CPU包括小核,该装置包括:获取模块,用于获取待处理的任务;预测模块,用于预测多个CPU中的目标CPU处理任务产生的综合代价,综合代价是根据目标CPU处理任务产生的输入输出IO代价、CPU代价以及附加代价得到的,附加代价根据任务的需求特征或目标CPU的运行状态进行确定;调度模块,用于当目标CPU处理任务产生的综合代价满足调度条件,将任务调度至目标CPU。
在一种可能的实施方式中,目标CPU包括大核,调度模块具体用于:根据目标CPU处理任务产生的综合代价,确定任务调度至目标CPU的优先级;当任务调度至目标CPU的优先级为第一优先级时,将任务调度至目标CPU。
在一种可能的实施方式中,目标CPU包括小核,调度模块具体用于:根据目标CPU处理任务产生的综合代价,确定任务调度至目标CPU的优先级;当任务调度至目标CPU的优先级为第二优先级时,将任务调度至目标CPU,第二优先级低于第一优先级。
在一种可能的实施方式中,目标CPU包括大核,任务为多线程任务,调度模块具体用于:根据目标CPU处理任务产生的综合代价,确定任务调度至目标CPU的优先级;当任务调度至目标CPU的优先级为第三优先级时,将任务调度至目标CPU以及包括小核的CPU,第三优先级低于第一优先级,且第三优先级高于第二优先级。
在一种可能的实施方式中,预测模块,具体用于当包括大核的CPU的可用资源小于阈值时,预测多个CPU中的目标CPU处理任务产生的综合代价。
在一种可能的实施方式中,附加代价根据任务向目标CPU请求的次数、目标CPU在单位时间内被请求的次数、目标CPU的工作频率、目标CPU包括的处理器核的数量中的任意一种或多种得到。
在一种可能的实施方式中,装置还包括:呈现模块,用于呈现配置界面;配置模块,用于响应于用户在配置界面的操作,对异构硬件平台的任务调度模式进行配置,任务调度模式包括在线模式或离线模式。
由于第三方面提供的任务调度装置,对应于第一方面提供的任务调度方法,因此,第三方面以及第三方面中各实施方式所具有技术效果,可以参见相应的第一方面以及第一方面中各实施方式所具有的技术效果,在此不做赘述。
第四方面,本申请实施例还提供了一种任务调度装置,该装置应用于异构硬件平台,异构硬件平台包括多个处理器核,多个处理器核包括大核以及小核,该装置包括:获取模块,用于获取待处理的任务;预测模块,用于预测多个处理器核中的目标处理器核处理任务产生的综合代价,综合代价是根据目标处理器核处理任务产生的输入输出IO代价、计算代价以及附加代价得到的,附加代价根据任务的需求特征或目标处理器核的运行状态进行确定;调度模块,用于当目标处理器核处理任务产生的综合代价满足调度条件,将任务调度至目标处理器核。
在一种可能的实施方式中,调度模块具体用于当目标处理器核处理任务产生的综合代价在多个处理器核分别处理任务所产生的综合代价中最小,将任务调度至目标处理器核。
由于第四方面提供的任务调度装置,对应于第二方面提供的任务调度方法,因此,第四方面以及第四方面中各实施方式所具有技术效果,可以参见相应的第二方面以及第二方面中各实施方式所具有的技术效果,在此不做赘述。
第五方面,本申请实施例提供一种计算设备,包括:处理器和存储器;该存储器用于存储指令,当该计算设备运行时,该处理器执行该存储器存储的该指令,以使该计算设备执行上述第一方面或第一方面的任一实现方式中所述的任务调度方法,或者以使该计算设备执行上述第二方面或第二方面的任一实现方式中所述的任务调度方法。需要说明的是,该存储器可以集成于处理器中,也可以是独立于处理器之外。计算设备还可以包括总线。其中,处理器通过总线连接存储器。其中,存储器可以包括可读存储器以及随机存取存储器。
第六方面,本申请实施例提供一种计算设备,包括:处理器和存储器;该存储器用于存储指令,当该计算设备运行时,该处理器执行该存储器存储的该指令,以使该计算设备执行上述第二方面或第二方面的任一实现方式中所述的任务调度方法。需要说明的是,该存储器可以集成于处理器中,也可以是独立于处理器之外。计算设备还可以包括总线。其中,处理器通过总线连接存储器。其中,存储器可以包括可读存储器以及随机存取存储器。
第七方面,本申请实施例提供了一种芯片,包括供电电路以及处理电路,所述供电电路用于对所述处理电路进行供电,所述处理电路用于获取待处理的任务,预测异构硬件平台包括的多个CPU中的目标CPU处理所述任务产生的综合代价,多个CPU中的部分CPU包括大核,多个CPU中的部分CPu包括小核,所述综合代价是根据所述目标CPU处理所述任务产生的输入输出IO代价、CPU代价以及附加代价得到的,所述附加代价根据所述任务的需求特征或所述目标CPU的运行状态进行确定;当所述目标CPU处理所述任务产生的综合代价满足调度条件,所述处理电路将所述任务调度至所述目标CPU。
第八方面,本申请实施例提供了一种芯片,包括供电电路以及处理电路,所述供电电路用于对所述处理电路进行供电,所述处理电路用于获取待处理的任务;预测所述多个处理器核中的目标处理器核处理所述任务产生的综合代价,该多个处理器核包括大核和小核,所述综合代价是根据所述目标处理器核处理所述任务产生的输入输出IO代价、计算代价以及附加代价得到的,所述附加代价根据所述任务的需求特征或所述目标处理器核的运行状态进行确定;当所述目标处理器核处理所述任务产生的综合代价满足调度条件,将所述任务调度至所述目标处理器核。
第九方面,本申请实施例还提供了一种任务调度系统,该任务调度系统包括用于生成待处理的任务的上层应用、上述第三方面至第四方面的任一实现方式中所述的任务调度装置,以及包括上述第一方面至第二方面的任一实现方式中所述的异构硬件平台。
第十方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有程序或指令,当其在计算机上运行时,使得上述第一方面或第一方面的任一实现方式中第一设备所述的任务调度方法被执行,或者使得上述第二方面或第二方面的任一实现方式中所述的任务调度方法被执行。
第十一方面,本申请实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一实现方式中所述的任务调度方法,或者使得计算机执行上述第二方面或第二方面的任一实现方式中所述的任务调度方法。
另外,第三方面至十一方面中任一种实现方式所带来的技术效果可参见第一方面以及第二方面中不同实现方式所带来的技术效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一示例性任务调度系统的结构示意图;
图2为本申请实施例提供的一种任务调度方法的流程示意图;
图3为本申请实施例提供的另一种任务调度方法的流程示意图;
图4为本申请实施例提供的另一种任务调度系统的结构示意图;
图5为本申请实施例提供的一示例性分布式数据库应用场景的系统结构示意图;
图6为本申请实施例提供的一示例性分布式数据库的结构示意图;
图7为本申请实施例提供的又一种任务调度方法的流程示意图;
图8为本申请实施例提供的一种任务调度装置的结构示意图;
图9为本申请实施例提供的另一种任务调度装置的结构示意图;
图10为本申请实施例提供的一种计算设备的硬件结构示意图。
具体实施方式
参见图1,为一示例性任务调度系统的结构示意图。如图1所示,任务调度系统100可以包括上层应用101、任务调度装置102以及异构硬件平台103。并且,上层应用101、任务调度装置102以及异构硬件平台之间可以进行数据通信。
其中,上层应用101包括一个或者多个应用1011,用于生成异构硬件平台103所需处理的任务,如数据读写任务、数据计算任务等。另外,上层应用101还包括主线程1012以及线程池控制器1013,并且,当上层应用101启动时,主线程1012可以向线程池控制器1013下发创建线程池的指令,从而线程池控制器1013基于该指令,创建线程池1014,并在线程池1014中进一步创建多个线程。在上层应用101启动运行后,主线程1012可以接收应用1011下发的任务,并利用线程池控制器1013从线程池1014中为该任务分配一个或者多个线程。其中,当为该任务分配一个线程时,该任务可以称为单线程任务;当为该任务分配多个线程时,该任务可以称为多线程任务。然后,线程池控制器1013可以将单线程任务或者多线程任务提供给任务调度装置102进行任务调度,即将任务调度至异构硬件平台103中的一个或者多个处理器核上进行处理。
任务调度装置102利用代价估算模型,预测异构硬件平台103中的处理器核执行任务所产生的代价,该代价例如可以是处理器核执行任务所产生的IO代价与CPU代价之和,然后,任务调度装置102根据各个处理器核处理该任务所产生的代价,将该任务调度至代价最小的处理器核上进行处理。
异构硬件平台103包括多个CPU,并且,该多个CPU采用大小核架构,即异构硬件平台103中的部分CPU包括大核(即性能较强的处理器核),其余CPU包括小核(即性能较弱的处理器核)。如图1所示,异构硬件平台103中的CPU1中包括4个大核,异构硬件平台103中的CPU2中包括4个小核。
实际应用场景中,任务调度装置102在利用代价估算模型预测任务代价时,可能会存在某个或者某些处理器核执行任务所产生的代价始终最小,因此,任务调度装置102可能会频繁向该处理器核调度任务,这容易使得该处理器核上的任务数量过多而发生任务阻塞,从而该处理器核上的部分业务因为排队等待处理而导致任务处理效率较低。同时,异构硬件平台103中的其余部分处理器核可能因为未分配到任务而长时间处于闲置状态,从而存在资源浪费。如此,任务调度装置102容易出现任务调度不合理的情况。
基于此,本申请实施例提供了一种任务调度方法,用以提高任务调度的合理性,从而能够提高任务的处理效率。具体地,任务调度装置102针对待处理的任务,预测异构硬件平台103中的多个CPU分别处理该任务所产生的代价,该代价是由CPU处理该任务产生的IO代价、CPU代价以及附加代价进行计算得到。其中,附加代价,可以用于评估CPU执行该任务所产生的额外代价,其根据任务的需求特征(如该任务要求CPU执行的指令数量、或者处理该任务时使用的内存的大小等)、或者CPU的运行状态(如工作频率等)进行确定。这样,当多个CPU中的目标CPU处理该任务所产生的代价满足调度条件,任务调度装置102将该任务调度至该目标CPU,以便由该目标CPU处理该任务。
由于任务调度装置102在进行任务调度时,在考虑到IO代价和CPU代价的基础上,还根据任务的需求或CPU的运行状态,评估CPU处理该任务所对应的附加代价,这使得任务调度装置102能够利用附加代价对任务调度进行纠偏,实现最优调度,可以避免异构硬件平台103中的CPU因为分配到过多数量的任务而导致部分任务的处理效率较低,从而实现提高任务调度的合理性。
示例性地,任务调度装置102可以通过软件实现,例如可以是通过虚拟机、容器、计算引擎中的至少一种实现等。或者,任务调度装置102可以通过包括处理器的物理设备实现,其中,处理器可以是CPU,以及专用集成电路(application-specific integratedcircuit,ASIC)、可编程逻辑器件(programmable logic device,PLD)、复杂程序逻辑器件(complex programmable logical device,CPLD)、现场可编程门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)、片上系统(system on chip,SoC)、软件定义架构(software-defined infrastructure,SDI)芯片、人工智能(artificial intelligence,AI)芯片等任意一种处理器或其任意组合。又或者,任务调度装置102可以通过软件+硬件实现等,如任务调度装置102可以通过硬件采集异构硬件平台103在运行时的相关信息,并通过软件实现任务调度等。
实际部署时,任务调度装置102可以独立于上层应用101以及异构硬件平台103进行部署,如图1所示。或者,任务调度装置102可以集成部署于上层应用101中,或者集成部署于异构硬件平台103中,本实施例对此并不进行限定。
值得注意的是,图1所示的系统架构仅作为一种示例,并不用于限定其具体实现局限于该示例。比如,在其它可能的系统架构中,异构硬件平台103可以包括更多数量的CPU,并且,不同CPU可以位于同一计算设备,或者可以位于不同的计算设备,本实施例对此并不进行限定。
并且,上述图1所示的任务调度系统100,可以适用于数据库应用场景,如上层应用可以生成针对数据库中数据的数据处理任务,并且可以通过任务调度装置102将该数据处理任务调度至异构硬件平台103中的CPU上进行执行,以便由该CPU读取数据库中的数据并对其执行相应的运算,然后再将运算得到的结果反馈给上层应用101。实际应用时,任务调度装置100还可以是应用于其它可适用的场景中,本申请对此并不进行限定。
为使本申请的上述目的、特征和优点能够更加明显易懂,下面将结合附图对本申请实施例中的各种非限定性实施方式进行示例性说明。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,基于上述内容所获得的所有其它实施例,都属于本申请保护的范围。
如图2所示,为本申请实施例中一种任务调度方法的流程示意图,该方法可以应用于如图1所示的任务调度系统100中。实际应用时,该方法也可以应用于其它可适用的任务调度系统中。为便于理解与描述,下面以应用于图1所示的任务调度系统100为例进行示例性说明,该方法具体可以包括:
S201:上层应用101生成待处理的任务。
本实施例中,上层应用101包括一个或者多个应用,并且,该一个或者多个应用在运行过程中可以请求异构硬件平台103提供相应的数据处理服务,如读写数据的服务、对业务数据进行运算的服务等。具体实现时,上层应用101可以生成待处理的任务,该任务可以是单线程任务,即执行一个线程来处理该任务;或者,该任务可以是多线程任务,即通过执行多个线程实现对该任务的处理,实际应用场景中,可以并发执行多个线程来加快处理该任务。
上层应用101在生成待处理的任务后,可以将该任务提供给任务调度装置102,以便任务调度装置102将该任务调度至异构硬件平台103中的CPU上进行处理。
S202:任务调度装置102预测异构硬件平台103包括的多个CPU中的目标CPU处理该任务产生的综合代价,该综合代价是根据目标CPU处理该任务产生的IO代价、CPU代价以及附加代价得到的,其中,该附加代价根据任务的需求特征或者目标CPU的运行状态进行确定。
实际应用时,针对异构硬件平台103中的各个CPU,任务调度装置102可以预测该CPU处理该任务所产生的综合代价。为便于理解,下面以任务调度装置102预测一个CPU(以下称之为目标CPU)处理该任务产生的综合代价为例进行示例性说明,预测其余各个CPU处理该任务所产生的综合代价的过程类似,可参照理解。
具体实现时,任务调度装置102可以对获取的任务进行性能分析,以便获取该任务的相关信息,如任务类型、该任务所要求的单个时钟周期(cycle)执行的指令数、时钟周期、该任务所需执行的指令(instructions)总数、该任务所需读写的数据页的数量等。其中,任务类型,可以包括计算密集型(core bound)和内存密集型(memory bound)。计算密集型,用于指示该任务对CPU的依赖程度高于对内存的依赖程度,即CPU在执行该任务时,所执行的操作多数为运算操作,可以用数值进行表征(如0~1之间的数值);内存密集型,用于指示该任务对内存的依赖程度高于对CPU的依赖程度,即CPU在执行该任务时,所执行的操作多数为读写数据的IO操作,可以用数值进行表征(如0~1之间的数值)。
进一步地,任务调度装置102还可以对该任务的相关信息进行缓存,从而任务调度装置102在接收到相同的任务后,可以直接从缓存中读取该任务的相关信息,无需重新对该任务进行性能分析,以此可以加快任务的处理效率。
然后,任务调度装置102可以根据该任务的相关信息,预测目标CPU处理该任务所产生的IO代价、CPU代价以及附加代价。
其中,IO代价,是指CPU处理该任务的过程中执行数据读写操作所产生的代价。示例性地,任务调度装置102可以通过公式(1)计算出IO代价。
IO代价=k1*M*P*T 公式(1)
其中,k1为归一化系数,用于将计算出的IO代价限制在0至1的取值范围内,其取值可以是小于1的正数。M表征memory bound,用于指示该任务对于内存的依赖程度,其取值范围可以是(0,1)。P为CPU处理该任务时所需访问的数据页的数量,其为大于或者等于1的正整数;通常情况下,由于每个数据页的数据量通常规定,因此,该数据页的数量与单个数据页上的数据量的乘积,可以作为该任务所需读写的数据量。T为转换开销,其为大于0的正数,由于CPU读取不同存储介质的开销通常存在差异,如CPU读取硬盘所需的开销通常高于CPU读取内存所需的开销等,因此,可以基于数据页所在的存储介质设定不同的转换开销。实际应用时,任务调度装置102可以预先配置有不同存储介质对应的转换开销,从而在获取到待处理的任务后,可以根据该任务所需访问的数据所在的存储介质,确定该转换开销。
CPU代价,是指CPU处理该任务的过程中执行数据运算操作所产生的代价。比如,在数据库应用场景中,执行查询任务中的数据过滤、投影、谓词下推等算子的过程中,或者进行数据寻址、数据计算等都需要消耗CPU的计算资源。示例性地,任务调度装置102可以通过公式(2)计算出CPU代价。
CPU代价=k2*C*I 公式(2)
其中,k2为归一化系数,用于将计算出的CPU代价限制在0至1的取值范围内,其取值可以是小于1的正数。C表征core bound,用于指示该任务对于CPU的依赖程度,其取值范围可以是(0,1)。I指示该任务所需执行的指令(instructions)总数,其为大于或者等于1的正整数。
附加代价,用于评估CPU执行该任务所产生的额外代价,可以利用该附加代价尽可能避免任务调度出现倾斜,即避免某个或者某些CPU分配的任务过多。本实施例中,任务调度装置102可以根据任务的需求特征或者CPU的运行状态计算附加代价。其中,任务的需求特征,例如可以是该任务请求CPU的次数(也即CPU所需执行的指令数量);CPU的运行状态,例如可以包括CPU在过去单位时间内执行的指令数量、CPU的工作频率、CPU中能够用于处理任务的处理器核的数量等。以根据任务的需求特征以及CPU的运行状态计算附加代价为例,任务调度装置102可以通过公式(3)计算出附加代价。
附加代价=k3*(Commands′+Commands)/(freq*cores) 公式(3)
其中,k3为归一化系数,用于将计算出的附加代价限制在0至1的取值范围内,其取值可以是小于1的正数。Commands′表征任务请求CPU执行指令的次数,其为大于或者等于1的正整数。Commands表征CPU在过去单位时间内执行的指令数量,可以通过对异构硬件平台103进行周期性的数据采样得到,其为大于或者等于0的整数。freq表征CPU的工作频率,可以根据CPU的时钟周期进行计算得到,其为大于或者等于1的正整数。cores,表征CPU中能够用于处理任务的处理器核的数量,其为大于或者等于1的正整数。
最后,任务调度装置102可以根据预测出的IO代价、CPU代价以及附加代价,计算出目标CPU处理该任务所产生的综合代价。比如,任务调度装置102可以基于下述公式(4)计算出目标CPU处理该任务所产生的综合代价W。
W=IO代价+CPU代价+附加代价 公式(4)
值得注意的是,上述公式(1)至公式(4)所示的计算代价的实现方式仅作为一些示例性说明,实际应用时,任务调度装置102也可以在上述示例性公式的基础上进行调整,或者采用其它公式计算目标CPU处理任务所产生的综合代价等。比如,在其它可能的实现示例中,任务的需求特征,也可以是该任务所要求的内存区域大小,从而任务调度装置102可以根据执行该任务所需的内存空间大小计算附加代价。或者,任务调度装置102可以根据任务向CPU请求的次数、CPU在单位时间内被请求的次数、CPU的工作频率、CPU包括的处理器核的数量中的任意一种或多种参数计算得到附加代价。或者,任务调度装置102可以对IO代价、CPU代价以及附加代价进行加权求和以计算得到综合代价等,本实施例对此并不进行限定。
作为一种示例,上述将任务调度装置102计算目标CPU处理任务的代价时所采用的公式(1)至公式(4),可以封装成一个代价估算模型,从而任务调度装置102在获取到待处理的任务后,可以将其输入至该代价估算模型中,从而可以由该代价估算模型推理出异构硬件平台103中的各个CPU处理该任务所分别产生的综合代价。
实际应用场景中,异构硬件平台103中可能存在部分CPU难以处理新的任务,如该部分CPU的当前可用资源不足以支持该CPU处理该新的任务。因此,在进一步可能的实施方式中,任务调度装置102可以对异构硬件平台103中的各个CPU的当前可用资源,从而对异构硬件平台103包括的多个CPU中当前可用资源不满足该任务需求的CPU进行过滤。相应的,任务调度装置102可以计算过滤后的各个CPU处理任务所产生的综合代价,以便进行任务调度。如此,可以减少任务调度装置102所需计算的产生处理任务代价的CPU数量,以此可以减少任务调度装置102实现任务调度所需消耗的计算量。
S203:当目标CPU处理任务产生的综合代价满足调度条件,任务调度装置102将该任务调度至目标CPU。
本实施例中,提供了以下几种确定将任务调度至目标CPU的实现示例。
在第一种实现示例中,任务调度装置102可以比较该目标CPU处理任务所产生的综合代价是否小于代价阈值,并且,若目标CPU处理任务所产生的综合代价小于代价阈值,则任务调度装置102可以直接将该任务调度至目标CPU,以便由目标CPU处理该任务。而若目标CPU处理该任务所产生的综合代价大于或者等于代价阈值,则任务调度装置102可以从异构硬件平台103的其余CPU中确定用于执行任务的CPU。由于该CPU上通常包括多个处理器核,因此,任务调度装置102在将任务调度至目标CPU时,还可以进一步指定该目标CPU中用于执行该任务的一个或者多个处理器核。
在第二种实现示例中,任务调度装置102在预测出异构硬件平台103中的各个CPU处理该任务所产生的综合代价后,根据各个CPU对应的综合代价确定出执行该任务的目标CPU。一种实现方式是,任务调度装置102根据各个CPU对应的综合代价获得一个门限值,从综合代价小于该门限值的CPU中选择目标CPU,门限值是可以调整的。另一种实现方式是,任务调度装置102对各个CPU对应的综合代价按照由小到大的顺序进行排序,从而任务调度装置102可以判断目标CPU是否为综合代价最小或相对较小的CPU,如果是,则任务调度装置102可以直接将该任务调度至目标CPU,并可以进一步指定该目标CPU中用于执行该任务的一个或者多个处理器核;如果不是,则任务调度装置102可以将任务调度至其它综合代价最小或相对较小的CPU,以便由其它CPU处理该任务。
在第三种实现示例中,目标CPU具体为包括大核的CPU,如图1中的CPU1等,并且,该目标CPU的可用资源较少,具体可以是可用资源小于阈值等。此时,在大核资源有限的情况下,任务调度装置102可以根据包括大核的CPU处理该任务所产生的代价、以及包括小核的CPU处理该任务所产生的代价,确定是否将该任务调度至目标CPU。
具体实现时,任务调度装置102在预设时间段内可能会接收到N个任务,并且,针对该N个任务中的每个任务,任务调度装置102可以计算包括大核的CPU处理该任务所产生的综合代价与包括小核的CPU处理该任务所产生的综合代价之间的比值,然后根据各个CPU对应的综合代价比值确定出执行该任务的目标CPU。
作为一种实现示例,任务调度装置102根据各个CPU对应的综合代价比值,可以确定一个门限值,并将该N个任务中综合代价比值小于该门限值的一个或者多个任务调度至包括大核的目标CPU中,其余综合代价比值大于该门限值的一个或者多个任务调度至包括小核的CPU中,而对于综合代价比值等于该门限值的任务,任务调度装置102可以随机将该任务调度至包括大核的CPU,或者将该任务调度至包括小核的CPU。
作为另一种实现,任务调度装置102可以根据各个CPU处于该任务所产生的综合代价,确定将该任务调度至各个CPU的优先级,并且,当确定该任务调度至包括大核的CPU的优先级为第一优先级时,任务调度装置102将该任务调度至包括大核的CPU。当确定该任务调度至包括小核的CPU的优先级为第二优先级时,任务调度装置102将该任务调度至包括小核的CPU。当该任务调度至包括大核的CPU的优先级为第三优先级时,若该任务为单线程任务,则任务调度装置102可以随机将其调度至包括大核的CPU或者包括小核的CPU,而若该任务为多线程任务,则任务调度装置102可以将该任务调度至包括大核的CPU以及包括小核的CPU。在本实施例中,第一优先级高于第二优先级,第二优先级高于第三优先级。
举例来说,任务调度装置102在得到各个任务分别对应的代价比值后,可以对N个任务分别对应的代价比值按照从小到大的顺序进行排序。如此,在对每个任务进行调度时,任务调度装置102可以先判断该任务是否属于排序靠前的i-1个任务(即判断该任务调度至包括大核的CPU的优先级是否为第一优先级),也即判断任务是否属于[1,i-1]的范围内,如果是,则任务调度装置102可以将该任务调度至包括大核的CPU,如目标CPU或者其他CPU,并可以进一步指定该CPU上的处理该任务的一个或者多个大核。如果不是,则任务调度装置可以进一步判断该任务是否属于排序为第i+1至第N个任务的范围(即判断该任务调度至包括小核的CPU的优先级是否为第二优先级),即判断任务是否属于[i+1,N]的范围内,如果是,则任务调度装置102可以将该任务调度至包括小核的CPU,并可以进一步指定由该CPU上的一个或者多个小核处理该任务。如果不是,则任务调度装置可以确定该任务为排序第i个任务(也即确定该任务调度至包括大核的CPU的优先级为第三优先级),并可以随机将该任务调度至包括大核的CPU,或者将该任务调度至包括小核的CPU。
进一步地,当待处理的任务为多线程任务时,任务调度装置102可以将该任务调度至一个或者多个CPU上,以便利用该CPU上的多个处理器核并发执行该多线程任务。如,当多线程任务属于[1,i-1]的范围内,则可以由目标CPU上的多个大核并发处理该多线程任务;当多线程任务属于[i+1,N]的范围内,则可以由多个小核并发处理该多线程任务;当多线程任务为排序第i个任务,则任务调度装置102可以同时将该多线程任务调度至包括大核的CPU以及包括小核的CPU,从而由部分大核以及部分小核并发执行该多线程任务。如此,可以简化任务调度装置102对于各个任务的调度过程,在提高任务调度效率的同时,也能减少任务调度所需的资源消耗。
当然,上述确定是否将任务调度至目标CPU的实现方式仅作为一些示例性说明,实际应用时,任务调度装置102也可以采用其它实现方式,根据目标CPU处理该任务产生的代价,确定是否将该任务调度至目标CPU,本实施例对此并不进行限定。
S204:异构硬件平台103利用目标CPU处理任务调度装置102提供的任务。
在任务调度装置102将任务调度至目标CPU后,异构硬件平台103即可利用该目标CPU中的处理器核处理该任务。其中,当该任务为单线程任务时,异构硬件平台103可以利用目标CPU中的一个处理器核执行该任务;而当该任务为多线程任务时,异构硬件平台103可以利用目标CPU中的多个处理器核并发执行该任务,以提高任务执行效率。
进一步地,异构硬件平台103在完成该任务后,还可以通过任务调度装置102向上层应用101返回该任务对应的执行结果,如查询任务对应的数据访问结果、计算任务对应的数据计算结果等。
本实施例中,主要是以任务调度装置102根据预测的各个CPU处理任务所产生的综合代价,将该任务调度至异构硬件平台103中包括大核的CPU或者包括小核CPU。实际应用时,由于异构硬件平台103中的大核性能远远高于小核的性能,并且,通常会更倾向于利用大核处理任务。因此,在一种可能的实施方式中,任务调度装置102在进行任务调度之前,可以先判断异构硬件平台103中的大核的可用资源是否充足,如通过周期性的对异构硬件平台103进行性能采样以确定包括大核的目标CPU的可用资源。并且,在大核的可用资源充足的情况下(例如大核的可用资源大于阈值),任务调度装置102可以直接将该任务调度至大核所在的CPU中。而当大核的可用资源有限的情况下(例如大核的可用资源小于该阈值),任务调度装置102可以通过执行上述步骤S202至步骤S204,根据预测的各个CPU处理该任务的综合代价,确定将该任务调度至包括大核的CPU,还是调度至包括小核的CPU,以此提高任务调度的合理性。
上述图2所示实施例中,任务调度装置102可以为接收到的各种未知的任务进行动态分配异构硬件平台103中硬件资源,并且,由于上述附加代价的存在,任务调度装置102在不同时刻针对相同任务所分配的硬件资源可以存在差异,以此可以实现任务调度的合理性。实际应用时,任务调度装置可以具有两种工作模式,分别为在线模式以及离线模式。
其中,当处于在线模式时,任务调度装置102基于上述过程为各种未知任务提供动态分配硬件资源的在线服务。而当任务调度装置102处于离线模式时,由于离线模式下异构硬件平台103所需处理的任务通常固定,如为固定的批量任务(或者称为已知任务),从而可以利用异构硬件平台103中的固定CPU资源来处理该任务。此时,任务调度装置102在为这些任务进行调度时,可以直接将该任务调度至预先指定的CPU。
在一种可能的实施方式中,任务调度装置102可以基于用户(如管理员等)的配置,确定采用在线模式或者离线模式进行任务调度。例如,任务调度系统100可以对外提供如图3所示的配置界面,从而用户可以在该配置界面上指定任务调度装置102当前采用在线模式或者离线模式进行任务调度。或者,用户可以在该配置界面上指定任务调度装置102采用在线模式进行任务调度的时间段、以及采用离线模式进行任务调度的时间段,从而任务调度装置102可以根据用户的配置操作,在不同的时间段按照指定的任务调度模式执行任务调度过程。
进一步地,针对在线模式,用户还可以在该配置界面上对用于计算CPU处理任务所产生的综合代价进行参数配置。比如,如图3所示,用户可以在配置界面上对归一化系数k(如上述k1、k2、k3等)、不同存储介质分别对应的转换开销、每个数据页所具有的数据量等参数进行配置,以便任务调度装置102基于用户配置的各个参数进行代价计算。
上述图2所示实施例中,主要介绍了以CPU为粒度进行任务调度的具体实现过程,而在其它可能的实施例中,任务调度装置102还可以以处理器核为粒度,确定该任务调度至哪个处理器核上。下面,结合图4,对本申请实施例提供的另一种任务调度方法进行示例性说明,该方法仍然可以应用于上述图1所示的任务调度系统100。如图4所示,该方法具体可以包括:
S401:上层应用101生成待处理的任务。
S402:任务调度装置102预测异构硬件平台103包括的多个处理器核中的目标处理器核处理该任务产生的综合代价,该综合代价是根据目标处理器核处理该任务产生的IO代价、计算代价以及附加代价得到的,其中,该附加代价根据任务的需求特征或者目标处理器核的运行状态进行确定。
与上述图2所示实施例不同的是,任务调度装置102可以分别预测异构硬件平台103中的各个处理器核处理该任务所产生的IO代价、计算代价以及附加代价,其中,该附加代价可以是根据任务的需求特征或者处理器核的运行状态进行确定。
作为一些示例,任务调度装置102在计算各个处理器核处理任务所产生的IO代价,可以根据下述公式(5)进行计算得到。
IO代价=k1*M*p*T公式(5)
其中,k1为归一化系数,用于将计算出的IO代价限制在0至1的取值范围内,其取值可以是小于1的正数。M表征memory bound,用于指示该任务对于内存的依赖程度,其取值范围可以是(0,1)。p为处理器核处理该任务时所需访问的数据页的数量,其为大于或者等于1的正整数。T为转换开销,其为大于0的正数,可以根据处理器核所需读取的存储介质的类型进行确定,不同类型的存储介质对应于不同大小的转换开销。
任务调度装置102在计算各个处理器核处理任务所产生的计算代价,可以根据下述公式(6)进行计算得到。
计算代价=k2*C*I 公式(6)
其中,k2为归一化系数,用于将计算出的计算代价限制在0至1的取值范围内,其取值可以是小于1的正数。C表征core bound,用于指示该任务对于处理器核的依赖程度,其取值范围可以是(0,1)。I指示该任务所需执行的指令(instructions)总数,其为大于或者等于1的正整数。
任务调度装置102在计算各个处理器核处理任务所产生的附加代价,可以根据下述公式(7)进行计算得到。
附加代价=k3*(Commands′+Commands)/freq 公式(7)
其中,k3为归一化系数,用于将计算出的附加代价限制在0至1的取值范围内,其取值可以是小于1的正数。Commands′表征任务请求处理器核执行指令的次数,其为大于或者等于1的正整数。Commands表征处理器核在过去单位时间内执行的指令数量,其为大于或者等于0的整数。freq表征处理器核的工作频率,其为大于或者等于1的正整数。
最后,任务调度装置102可以根据预测出的IO代价、计算代价以及附加代价,计算出目标处理器核处理该任务所产生的综合代价。比如,任务调度装置102可以基于下述公式(8)计算出目标处理器核处理该任务所产生的综合代价w。
w=IO代价+计算代价+附加代价 公式(8)
作为一种示例,上述将任务调度装置102计算目标处理器核处理任务的代价时所采用的公式(5)至公式(8),可以封装成一个代价估算模型,从而任务调度装置102在获取到待处理的任务后,可以将其输入至该代价估算模型中,从而可以由该代价估算模型推理出异构硬件平台103中的各个处理器核处理该任务所分别产生的综合代价。
S403:当目标处理器核处理任务产生的综合代价满足调度条件,任务调度装置102将该任务调度至目标处理器核。
作为一种实现示例,任务调度装置102可以比较该目标处理器核处理任务所产生的综合代价是否小于代价阈值,并且,若目标处理器核处理任务所产生的综合代价小于代价阈值,则任务调度装置102可以直接将该任务调度至目标处理器核,以便由目标处理器核处理该任务。而若目标处理器核处理该任务所产生的综合代价大于或者等于代价阈值,则任务调度装置102可以从异构硬件平台103的其余处理器核中确定用于执行任务的处理器核。
作为另一种实现示例,任务调度装置102在预测出异构硬件平台103中的各个处理器核处理该任务所产生的综合代价后,根据各个处理器核对应的综合代价确定出执行该任务的目标处理器核。在一种实现方式中,任务调度装置102根据各个处理器核对应的综合代价获得一个门限值,从综合代价小于该门限值的处理器核中选择目标处理器核,门限值是可以调整的。在另一种实现方式中,任务调度装置102可以对各个处理器核对应的综合代价按照由小到大的顺序进行排序,从而任务调度装置102可以判断目标处理器核是否为综合代价最小活相对较小的CPU,如果是,则任务调度装置102可以直接将该任务调度至目标处理器核,如果不是,则任务调度装置102可以将任务调度至其它综合代价最小或相对较小的处理器核,以便由其它处理器核处理该任务。
实际应用时,任务调度装置102也可以采用其它实现方式,确定是否将任务调度至该目标处理器核,本实施例对此并不进行限定。
S404:异构硬件平台103利用目标处理器核处理任务调度装置102提供的任务。
本实施例中,异构硬件平台103可以利用一个处理器核(即目标处理器核)执行任务。其中,该任务,可以是单线程任务,从而目标处理器核可以运行分配给任务的单个线程来处理任务。或者,该任务也可以是多线程任务,从而目标处理器核可以依次运行分配给任务的各个线程来处理任务。
本实施例中,主要是以任务调度装置102根据预测的各个处理器核处理任务所产生的综合代价,将该任务调度至异构硬件平台103中的目标处理器核。实际应用场景中,异构硬件平台103中可能存在部分处理器核难以处理新的任务,如该部分处理器核的当前可用资源不足以支持该处理器核处理该新的任务等。因此,在进一步可能的实施方式中,任务调度装置102可以监控异构硬件平台103中的各个处理器核的当前可用资源,从而对异构硬件平台103包括的多个处理器核中当前可用资源不满足该任务需求的处理器核进行过滤。相应的,任务调度装置102可以计算过滤后的各个处理器核处理任务所产生的综合代价,以便进行任务调度。如此,可以减少任务调度装置102所需计算的处理任务产生综合代价的处理器核数量,以此可以减少任务调度装置102实现任务调度所需消耗的计算量。
进一步地,异构硬件平台103在完成该任务后,还可以通过任务调度装置102向上层应用101返回该任务对应的执行结果,如查询任务对应的数据访问结果、计算任务对应的数据计算结果等。
实际应用时,图1所示的任务调度系统100可以应用于多种应用场景中,例如可以是图5所示的数据库应用场景中。其中,图5所示的数据库应用场景,可以是集中式数据库应用场景,或者可以是分布式数据库应用场景等。在图5所示数据库场景中,上层应用101为数据库应用,具体可以是支持与用户进行交互的客户端130、客户端131等,该客户端130或客户端131可以基于用户针对数据库110中数据的增删改查操作,生成相应的数据处理任务(如查询任务等),并请求任务调度装置102将该数据处理任务调度至异构硬件平台103中的相应CPU(或者处理器核)上进行执行。在执行该数据处理任务时,异构硬件平台103可以利用分配的CPU运行数据库引擎120,以访问数据库110并执行进行相应的数据读、写、计算等操作。
为便于理解,下面结合分布式数据库应用场景,对任务调度装置102执行任务调度的过程进行示例性说明。示例性地,参见图6所示的分布式数据库,包括数据库引擎120以及多个分区服务器(Region Server,RS)节点,图6中以包括RS节点101以及RS节点102为例进行示例性说明。其中,数据库引擎120对分布式数据库所存储和管理的数据进行划分,得到多个分区。每个分区中包括一条或者多条数据,属于不同分区的数据通常存在差异。作为一种划分分区的实现示例,分布式数据库中在存储和管理每条数据时,可以将该条数据中的部分内容作为该条数据对应的主关键字(primary key),主关键字用于在分布式数据库中对这条数据进行唯一标识。从而,数据库引擎120可以根据主关键字的可能取值范围进行区间划分,每个划分得到的区间对应于一个分区。
同时,数据库引擎120还用于为RS节点101以及RS节点102分配分区,每个RS节点所分配到的分区可以通过数据库引擎120所创建的管理表进行维护。RS节点101以及RS节点102分别用于执行属于不同分区的数据读写业务,如图1中RS节点102执行属于分区1至分区N的数据读写业务,而RS节点103执行属于分区N+1至分区M的数据读写业务。
通常情况下,RS节点会将客户端130发送的数据暂存在内存中,从而内存中所暂存的数据量会不断增加。当内存中的数据量达到阈值时,RS节点可以将内存中的数据持久化存储至文件系统,具体可以是以文件的形式写入分布式文件系统(图6未示出)。作为一些示例,该文件系统例如可以是分布式文件系统(distributed file system,DFS)、Hadoop分布式文件系统(hadoop distributed file system,HDFS)等,本实施例对此并不进行限定。文件系统用于以文件的形式存储数据,这里的文件可以包括一个或多个分区,也可以是仅包含一个分区的部分数据。
在上述图5以及图6所示的分布式数据库的基础上,参见图7,示出了本申请实施例提供的另一种任务调度方法的流程示意图,该方法具体可以包括:
S701:客户端130在启动时,创建线程池,该线程池包括一个或者多个线程。
实际应用时,客户端130在启动时还可以初始化部分线程,如创建日志写线程、检查点(checkpoint)线程等。其中,日志写进程,可以用于将数据库中的数据处理记录保持至日志中并写入相应的存储区域,如持久化存储区域等。检查点线程,用于控制数据库中的数据文件、控制文件和重做日志文件之间的协调同步,以便在数据库存在异常时,将数据恢复至检查点之前的正确数据。
S702:客户端130生成查询任务。
本实施例中,客户端130可以对外提供交互界面,从而用户可以在该交互界面输入SQL语句,如输入“select*from table_name where column=value”,用于查询表格“table_name”中值为“value”的一列或者多列数据。客户端130可以根据用户输入的SQL语句,生成相应的查询任务。
通常情况下,用户针对数据库的操作包括查询(select)、更新(update)、删除(delete)、添加(insert),或者可以是其它操作等。为便于理解,本实施例中以用户请求查询数据库中的数据为例进行示例性说明。
作为一种生成查询任务的实现示例,客户端130可以对用户输入的SQL语句进行语法分析以及语义分析。其中,语法分析,是指利用SQL语言的语法规则校验该SQL语句是否存在语法错误;语义分析,是指分析该SQL语句的语义是否合法。当SQL语句的语法以及语义均合法后,客户端130可以得到初始计划树,该初始计划树指示了针对访问数据的执行计划。然后,客户端130可以利用一个或者多个优化器对初始计划树进行优化,以便提高数据访问效率。接着,客户端130根据优化后的计划树中包括的多个算子,如扫描(scan)算子、聚合(aggregate)算子、分类(sort)算子、过滤(filter)算子等,确定执行计划树中的各个算子的线程,不同的线程负责执行不同的算子,并生成查询任务,该查询任务指示了执行计划树中的算子的多个线程。实际应用时,客户端130还可以是借助任务调度系统中的其它设备实现上述生成查询任务的过程,本实施例在此并不进行限定。
S703:客户端130将查询任务发送给查询任务调度装置102,以请求任务调度装置102为该查询任务分配相应的硬件资源。
S704:任务调度装置102判断异构硬件平台103中大核的可用资源是否大于阈值,若是,则执行步骤S705;若否,则执行步骤S706。
本实施例中,任务调度装置102可以持续监控异构硬件平台103中的各个CPU中的资源使用情况,以便根据异构硬件平台103中的可用资源确定是直接进行任务调度,还是根据处理任务所产生的综合代价进行任务调度。
S705:任务调度装置102将查询任务调度至异构硬件平台103中包括大核的CPU,并继续执行步骤S709。
当大核的可用资源充足时,任务调度装置102可以直接将查询任务调度至包括大核的CPU中进行处理,从而可以利用大核所具有的高算力来提高任务处理效率。
S706:任务调度装置102预测异构硬件平台103中的各个CPU处理该查询任务产生的综合代价,每个CPU处理该查询任务所产生的综合代价为该CPU处理该查询任务产生的IO代价、CPU代价以及附加代价之和,其中,附加代价根据任务的需求特征以及该CPU的运行状态进行确定。
本实施例中,当大核的可用资源有限时,任务调度装置102可以根据各个CPU处理查询任务产生的综合代价进行任务调度,以此提高任务调度的合理性。
具体实现时,任务调度装置102可以对查询任务进行性能分析,确定该查询任务对应的任务类型、该任务所要求的单个时钟周期(cycle)执行的指令数、时钟周期、该任务所需执行的指令(instructions)总数、该任务所需读写的数据页的数量等信息。然后,任务调度装置102可以根据这些信息计算异构硬件平台103中的各个CPU处理该查询任务所产生的IO代价、CPU代价以及附加代价。其中,任务调度装置102可以基于上述图2所示实施例中的公式(1)至公式(3)计算各个CPU处理该查询任务所产生的IO代价、CPU代价以及附加代价,并进一步根据公式(4)计算出各个CPU处理该查询任务所产生的总代价,具体可参见前述相关部分描述,本实施例在此不再进行赘述。
S707:任务调度装置102根据各个CPU处理该查询任务产生的代价,确定处理该查询任务所需代价最小的目标CPU。
S708:任务调度装置102将查询任务调度至异构硬件平台103中的目标CPU。
本实施例中,任务调度装置根据各个CPU处理查询任务所产生的综合代价,将查询任务调度至目标CPU的具体实现过程,可参见上述图2所示实施例中的步骤S202以及步骤S203的相关之处描述,在此不做赘述。
S709:异构硬件平台103处理该查询任务,并生成查询结果。
其中,异构硬件平台103可以利用包括大核的CPU或者上述目标CPU执行该查询任务后,并生成查询结果,该查询结果包括用户所需查询的数据。
具体实现时,异构硬件平台103可以基于包括大核的CPU或者上述目标CPU运行数据库引擎120,并根据该查询任务从分布式数据库中的RS节点101或者RS节点102的内存中读取数据(并执行相应的数据运算),得到查询结果。当RS节点的内存中未包括用户所需读取的数据时,数据库引擎120还可以进一步访问与分布式数据库连接的文件系统,以便从该文件系统中读取数据(并执行相应的数据运算),得到查询结果。
S710:异构硬件平台103向任务调度装置102返回该查询任务对应的查询结果。
S711:任务调度装置102将查询结果反馈给数据库应用,以便数据库应用将该查询结果提供给用户。
如此,不仅能够满足用户针对分布式数据库的数据查询需求,而且,基于上述过程也能实现对任务的合理调度,从而可以提高向用户反馈查询结果的效率。
上文中结合图1至图7,详细描述了本申请所提供的任务调度方法,下面将结合图8、图9和图10,描述根据本申请所提供的任务调度装置、计算设备。
与上述方法同样的发明构思,本申请实施例还提供一种任务调度装置。参见图8,示出了本申请实施例提供的一种任务调度装置的示意图。其中,图8所示的任务调度装置800应用于异构硬件平台,所述异构硬件平台包括多个CPU,所述多个CPU中的部分CPU包括大核,所述多个CPU中的部分CPU包括小核。
如图8所示,任务调度装置800包括:
获取模块801,用于获取待处理的任务;
预测模块802,用于预测所述多个CPU中的目标CPU处理所述任务产生的综合代价,所述综合代价是根据所述目标CPU处理所述任务产生的输入输出IO代价、CPU代价以及附加代价得到的,所述附加代价根据所述任务的需求特征或所述目标CPU的运行状态进行确定;
调度模块803,用于当所述目标CPU处理所述任务产生的综合代价满足调度条件,将所述任务调度至所述目标CPU。
在一种可能的实施方式中,所述目标CPU包括大核,所述调度模块803用于:
根据所述目标CPU处理所述任务产生的综合代价,确定所述任务调度至所述目标CPU的优先级;
当所述任务调度至所述目标CPU的优先级为第一优先级时,将所述任务调度至所述目标CPU。
在一种可能的实施方式中,所述目标CPU包括小核,所述调度模块803用于:
根据所述目标CPU处理所述任务产生的综合代价,确定所述任务调度至所述目标CPU的优先级;
当所述任务调度至所述目标CPU的优先级为第二优先级时,将所述任务调度至所述目标CPU,所述第二优先级低于第一优先级。
在一种可能的实施方式中,所述目标CPU包括大核,所述任务为多线程任务,所述调度模块803用于:
根据所述目标CPU处理所述任务产生的综合代价,确定所述任务调度至所述目标CPU的优先级;
当所述任务调度至所述目标CPU的优先级为第三优先级时,将所述任务调度至所述目标CPU以及包括小核的CPU,所述第三优先级低于第一优先级,且所述第三优先级高于第二优先级。
在一种可能的实施方式中,所述预测模块802,用于:
当包括大核的CPU的可用资源小于阈值时,预测所述多个CPU中的目标CPU处理所述任务产生的综合代价。
在一种可能的实施方式中,所述附加代价根据所述任务向所述目标CPU请求的次数、所述目标CPU在单位时间内被请求的次数、所述目标CPU的工作频率、所述目标CPU包括的处理器核的数量中的任意一种或多种得到。
在一种可能的实施方式中,所述任务调度装置800还包括:
呈现模块804,用于呈现配置界面;
配置模块805,用于响应于用户在所述配置界面的操作,对所述异构硬件平台的任务调度模式进行配置,所述任务调度模式包括在线模式或离线模式。
本实施例提供的任务调度装置800,对应于上述图2所示实施例中的任务调度方法,因此,本实施例中的各个模块的功能及其所具有的技术效果,可参见前述图2所示实施例中的相关之处描述,在此不做赘述。
另外,与上述方法同样的发明构思,本申请实施例还提供一种任务调度装置。参见图9,示出了本申请实施例提供的一种任务调度装置的示意图。其中,图9所示的任务调度装置900应用于异构硬件平台,所述异构硬件平台包括多个处理器核,所述多个处理器核包括大核以及小核,所述装置任务调度装置900包括:
获取模块901,用于获取待处理的任务;
预测模块902,用于预测所述多个处理器核中的目标处理器核处理所述任务产生的综合代价,所述综合代价是根据所述目标处理器核处理所述任务产生的输入输出IO代价、计算代价以及附加代价得到的,所述附加代价根据所述任务的需求特征或所述目标处理器核的运行状态进行确定;
调度模块903,用于当所述目标处理器核处理所述任务产生的综合代价满足调度条件,将所述任务调度至所述目标处理器核。
在一种可能的实施方式中,所述调度模块903用于当所述目标处理器核处理所述任务产生的综合代价在所述多个处理器核分别处理所述任务所产生的综合代价中最小,将所述任务调度至所述目标处理器核。
本实施例提供的任务调度装置900,对应于上述图4所示实施例中的任务调度方法,因此,本实施例中的各个模块的功能及其所具有的技术效果,可参见前述图4所示实施例中的相关之处描述,在此不做赘述。
此外,本申请实施例还提供一种计算设备,如图10所示,计算设备1000中可以包括通信接口1010、处理器1020。可选的,计算设备1000中还可以包括存储器1030。其中,存储器1030可以设置于计算设备1000内部,还可以设置于计算设备1000外部。示例性地,上述图2以及图4所示实施例中任务调度装置执行的各个动作均可以由处理器1020实现。处理器1020可以通过通信接口1010获取任务调度请求,并用于实现图2以及图4中所执行的任一方法。在实现过程中,处理流程的各步骤可以通过处理器1020中的硬件的集成逻辑电路或者软件形式的指令完成图2以及图4中执行的方法。为了简洁,在此不再赘述。处理器1020用于实现上述方法所执行的程序代码可以存储在存储器1030中。存储器1030和处理器1020连接,如耦合连接等。
本申请实施例的一些特征可以由处理器1020执行存储器1030中的程序指令或者软件代码来完成/支持。存储器1030上在加载的软件组件可以从功能或者逻辑上进行概括,例如,图8所示的预测模块802、调度模块803,或者图9所示的预测模块902、调度模块903。而图8所示的获取模块801,或者,图9所示的获取模块901的功能可以由通信接口1010实现。
本申请实施例中涉及到的任一通信接口可以是电路、总线、收发器或者其它任意可以用于进行信息交互的装置。比如计算设备1000中的通信接口1010,示例性地,该其它装置可以是与该计算设备1000相连的设备等。
本申请实施例中涉及的处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
本申请实施例中的耦合是装置、模块或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、模块或模块之间的信息交互。
处理器可能和存储器协同操作。存储器可以是非易失性存储器,比如硬盘或固态硬盘等,还可以是易失性存储器,例如随机存取存储器。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
本申请实施例中不限定上述通信接口、处理器以及存储器之间的具体连接介质。比如存储器、处理器以及通信接口之间可以通过总线连接。所述总线可以分为地址总线、数据总线、控制总线等。
基于以上实施例,本申请实施例还提供了一种芯片,包括供电电路以及处理电路,所述供电电路用于对所述处理电路进行供电,所述处理电路用于获取待处理的任务,预测异构硬件平台包括的多个CPU中的目标CPU处理所述任务产生的综合代价,多个CPU中的部分CPU包括大核,多个CPU中的部分CPu包括小核,所述综合代价是根据所述目标CPU处理所述任务产生的输入输出IO代价、CPU代价以及附加代价得到的,所述附加代价根据所述任务的需求特征或所述目标CPU的运行状态进行确定;当所述目标CPU处理所述任务产生的综合代价满足调度条件,所述处理电路将所述任务调度至所述目标CPU。
示例性地,供电电路包括但不限于如下至少一个:供电子系统、电管管理芯片、功耗管理处理器或功耗管理控制电路。
基于以上实施例,本申请实施例还提供了一种计算机存储介质,该存储介质中存储软件程序,该软件程序在被一个或多个计算设备读取并执行时可实现上述任意一个或多个实施例提供的任务调度装置102执行的方法。所述计算机存储介质可以包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理器以产生一个机器,使得通过计算机或其他可编程任务调度设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (22)

1.一种任务调度方法,其特征在于,所述方法应用于异构硬件平台,所述异构硬件平台包括多个CPU,所述多个CPU中的部分CPU包括大核,所述多个CPU中的部分CPU包括小核,所述方法包括:
获取待处理的任务;
预测所述多个CPU中的目标CPU处理所述任务产生的综合代价,所述综合代价是根据所述目标CPU处理所述任务产生的输入输出IO代价、CPU代价以及附加代价得到的,所述附加代价根据所述任务的需求特征或所述目标CPU的运行状态进行确定;
当所述目标CPU处理所述任务产生的综合代价满足调度条件,将所述任务调度至所述目标CPU。
2.根据权利要求1所述的方法,其特征在于,所述目标CPU包括大核,所述当所述目标CPU处理所述任务产生的综合代价满足调度条件,将所述任务调度至所述目标CPU,包括:
根据所述目标CPU处理所述任务产生的综合代价,确定所述任务调度至所述目标CPU的优先级;
当所述任务调度至所述目标CPU的优先级为第一优先级时,将所述任务调度至所述目标CPU。
3.根据权利要求1所述的方法,其特征在于,所述目标CPU包括小核,所述当所述目标CPU处理所述任务产生的综合代价满足调度条件,将所述任务调度至所述目标CPU,包括:
根据所述目标CPU处理所述任务产生的综合代价,确定所述任务调度至所述目标CPU的优先级;
当所述任务调度至所述目标CPU的优先级为第二优先级时,将所述任务调度至所述目标CPU,所述第二优先级低于第一优先级。
4.根据权利要求1所述的方法,其特征在于,所述目标CPU包括大核,所述任务为多线程任务,所述当所述目标CPU处理所述任务产生的综合代价满足调度条件,将所述任务调度至所述目标CPU,包括:
根据所述目标CPU处理所述任务产生的综合代价,确定所述任务调度至所述目标CPU的优先级;
当所述任务调度至所述目标CPU的优先级为第三优先级时,将所述任务调度至所述目标CPU以及包括小核的CPU,所述第三优先级低于第一优先级,且所述第三优先级高于第二优先级。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述预测所述多个CPU中的目标CPU处理所述任务产生的综合代价,包括:
当包括大核的CPU的可用资源小于阈值时,预测所述多个CPU中的目标CPU处理所述任务产生的综合代价。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述附加代价根据所述任务向所述目标CPU请求的次数、所述目标CPU在单位时间内被请求的次数、所述目标CPU的工作频率、所述目标CPU包括的处理器核的数量中的任意一种或多种得到。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
呈现配置界面;
响应于用户在所述配置界面的操作,对所述异构硬件平台的任务调度模式进行配置,所述任务调度模式包括在线模式或离线模式。
8.一种任务调度方法,其特征在于,所述方法应用于异构硬件平台,所述异构硬件平台包括多个处理器核,所述多个处理器核包括大核以及小核,所述方法包括:
获取待处理的任务;
预测所述多个处理器核中的目标处理器核处理所述任务产生的综合代价,所述综合代价是根据所述目标处理器核处理所述任务产生的输入输出IO代价、计算代价以及附加代价得到的,所述附加代价根据所述任务的需求特征或所述目标处理器核的运行状态进行确定;
当所述目标处理器核处理所述任务产生的综合代价满足调度条件,将所述任务调度至所述目标处理器核。
9.根据权利要求8所述的方法,其特征在于,所述当所述目标处理器核处理所述任务产生的综合代价满足调度条件,将所述任务调度至所述目标处理器核,包括:
当所述目标处理器核处理所述任务产生的综合代价在所述多个处理器核分别处理所述任务所产生的综合代价中最小,将所述任务调度至所述目标处理器核。
10.一种任务调度装置,其特征在于,所述装置应用于异构硬件平台,所述异构硬件平台包括多个CPU,所述多个CPU中的部分CPU包括大核,所述多个CPU中的部分CPU包括小核,所述装置包括:
获取模块,用于获取待处理的任务;
预测模块,用于预测所述多个CPU中的目标CPU处理所述任务产生的综合代价,所述综合代价是根据所述目标CPU处理所述任务产生的输入输出IO代价、CPU代价以及附加代价得到的,所述附加代价根据所述任务的需求特征或所述目标CPU的运行状态进行确定;
调度模块,用于当所述目标CPU处理所述任务产生的综合代价满足调度条件,将所述任务调度至所述目标CPU。
11.根据权利要求10所述的装置,其特征在于,所述目标CPU包括大核,所述调度模块用于:
根据所述目标CPU处理所述任务产生的综合代价,确定所述任务调度至所述目标CPU的优先级;
当所述任务调度至所述目标CPU的优先级为第一优先级时,将所述任务调度至所述目标CPU。
12.根据权利要求10所述的装置,其特征在于,所述目标CPU包括小核,所述调度模块用于:
根据所述目标CPU处理所述任务产生的综合代价,确定所述任务调度至所述目标CPU的优先级;
当所述任务调度至所述目标CPU的优先级为第二优先级时,将所述任务调度至所述目标CPU,所述第二优先级低于第一优先级。
13.根据权利要求10所述的装置,其特征在于,所述目标CPU包括大核,所述任务为多线程任务,所述调度模块用于:
根据所述目标CPU处理所述任务产生的综合代价,确定所述任务调度至所述目标CPU的优先级;
当所述任务调度至所述目标CPU的优先级为第三优先级时,将所述任务调度至所述目标CPU以及包括小核的CPU,所述第三优先级低于第一优先级,且所述第三优先级高于第二优先级。
14.根据权利要求10至13任一项所述的装置,其特征在于,所述预测模块,用于当包括大核的CPU的可用资源小于阈值时,预测所述多个CPU中的目标CPU处理所述任务产生的综合代价。
15.根据权利要求10至14任一项所述的装置,其特征在于,所述附加代价根据所述任务向所述目标CPU请求的次数、所述目标CPU在单位时间内被请求的次数、所述目标CPU的工作频率、所述目标CPU包括的处理器核的数量中的任意一种或多种得到。
16.根据权利要求10至15任一项所述的装置,其特征在于,所述装置还包括:
呈现模块,用于呈现配置界面;
配置模块,用于响应于用户在所述配置界面的操作,对所述异构硬件平台的任务调度模式进行配置,所述任务调度模式包括在线模式或离线模式。
17.一种任务调度装置,其特征在于,所述装置应用于异构硬件平台,所述异构硬件平台包括多个处理器核,所述多个处理器核包括大核以及小核,所述装置包括:
获取模块,用于获取待处理的任务;
预测模块,用于预测所述多个处理器核中的目标处理器核处理所述任务产生的综合代价,所述综合代价是根据所述目标处理器核处理所述任务产生的输入输出IO代价、计算代价以及附加代价得到的,所述附加代价根据所述任务的需求特征或所述目标处理器核的运行状态进行确定;
调度模块,用于当所述目标处理器核处理所述任务产生的综合代价满足调度条件,将所述任务调度至所述目标处理器核。
18.根据权利要求17所述的装置,其特征在于,所述调度模块用于当所述目标处理器核处理所述任务产生的综合代价在所述多个处理器核分别处理所述任务所产生的综合代价中最小,将所述任务调度至所述目标处理器核。
19.一种计算设备,其特征在于,所述计算设备包括处理器和存储器;
所述处理器用于执行所述存储器中存储的指令,以使得所述计算设备执行如权利要求1至7中任一项所述的方法,或执行如权利要求8或9所述的方法。
20.一种任务调度系统,其特征在于,所述任务调度系统包括上层应用、如权利要求10至18任一项所述的任务调度装置,以及如权利要求1至9任一项所述的异构硬件平台;
其中,所述上层应用,用于生成待处理的任务。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在至少一个计算设备上运行时,使得所述至少一个计算设备执行如权利要求1至9任一项所述的方法。
22.一种包含指令的计算机程序产品,其特征在于,当其在至少一个计算设备上运行时,使得所述至少一个计算设备执行如权利要求1至9中任一项所述的方法。
CN202210901085.5A 2022-06-02 2022-07-28 任务调度方法、装置、系统及相关设备 Pending CN117215732A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2023/097910 WO2023232127A1 (zh) 2022-06-02 2023-06-02 任务调度方法、装置、系统及相关设备

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210625934 2022-06-02
CN2022106259349 2022-06-02

Publications (1)

Publication Number Publication Date
CN117215732A true CN117215732A (zh) 2023-12-12

Family

ID=89043068

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210901085.5A Pending CN117215732A (zh) 2022-06-02 2022-07-28 任务调度方法、装置、系统及相关设备

Country Status (1)

Country Link
CN (1) CN117215732A (zh)

Similar Documents

Publication Publication Date Title
Jeon et al. Multi-tenant GPU clusters for deep learning workloads: Analysis and implications
Buchmann et al. Time-critical database scheduling: A framework for integrating real-time scheduling and concurrency control
Cho et al. Natjam: Design and evaluation of eviction policies for supporting priorities and deadlines in mapreduce clusters
US8527997B2 (en) Energy-aware job scheduling for cluster environments
CN109542603B (zh) 一种提高不同优先级任务间隔离性的多维资源隔离系统
US8042119B2 (en) States matrix for workload management simplification
CN115373835A (zh) Flink集群的任务资源调整方法、装置及电子设备
CN110427258B (zh) 基于云平台的资源调度控制方法及装置
Chen et al. Retail: Opting for learning simplicity to enable qos-aware power management in the cloud
CN109885642B (zh) 面向全文检索的分级存储方法及装置
CN112685153A (zh) 微服务调度方法、装置以及电子设备
US20090132602A1 (en) Virtual data maintenance
CN110807145A (zh) 查询引擎获取方法、设备和计算机可读存储介质
CN111061762A (zh) 分布式任务处理方法、相关设备、系统及存储介质
CN113807046A (zh) 一种测试激励优化回归验证方法、系统及介质
CA2824357C (en) "method and system for processing data for database modification"
CN114416849A (zh) 数据处理方法、装置、电子设备及存储介质
CN113886111A (zh) 一种基于工作流的数据分析模型计算引擎系统及运行方法
Barletta et al. Criticality-aware monitoring and orchestration for containerized industry 4.0 environments
JP2009037369A (ja) データベースサーバへのリソース割当て方法
CN110909023B (zh) 一种查询计划的获取方法、数据查询方法及装置
CN117215732A (zh) 任务调度方法、装置、系统及相关设备
Yu et al. CERES: Container-based elastic resource management system for mixed workloads
WO2023232127A1 (zh) 任务调度方法、装置、系统及相关设备
CN114020446A (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