CN111694653A - 计算系统中调整计算算子类型分布的方法、装置及系统 - Google Patents

计算系统中调整计算算子类型分布的方法、装置及系统 Download PDF

Info

Publication number
CN111694653A
CN111694653A CN201910189636.8A CN201910189636A CN111694653A CN 111694653 A CN111694653 A CN 111694653A CN 201910189636 A CN201910189636 A CN 201910189636A CN 111694653 A CN111694653 A CN 111694653A
Authority
CN
China
Prior art keywords
calculation
operator
computing
computing system
operators
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
Application number
CN201910189636.8A
Other languages
English (en)
Other versions
CN111694653B (zh
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910189636.8A priority Critical patent/CN111694653B/zh
Publication of CN111694653A publication Critical patent/CN111694653A/zh
Application granted granted Critical
Publication of CN111694653B publication Critical patent/CN111694653B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请公开一种计算系统中调整计算算子类型分布的方法、装置及系统,其中,所述方法包括:获得计算系统实际数据处理过程中的计算算子的运算量数据记录,预测未来时段T对计算系统上计算算子的预测需求量,进而根据计算系统上计算算子的预测需求量,在未来时段T到来前调整计算系统上以可编程硬件方式实现的计算算子类型和分布比例。采用本申请所述的计算系统中调整计算算子类型分布的方法,可以实现将以可编程硬件方式实现的计算算子的算力尽可能服务于最繁忙数据处理任务,从而提高了整个计算系统的运算效率。

Description

计算系统中调整计算算子类型分布的方法、装置及系统
技术领域
本申请涉及智能控制领域,具体涉及一种计算系统中调整计算算子类型分布的方法。另外还涉及一种计算系统中调整计算算子类型分布的装置及系统。
背景技术
近年来,随着网络技术的快速发展,数据库数据的存储和管理规模正在呈指数级增长,用户通过应用向数据库发送数据处理请求也越来越多。如何加快数据处理速度,提高数据库系统的运行效率,成为本领域技术人员共同追求的技术目标。
为了解决上述技术问题,现有技术中通常采用将CPU(Central Processing Unit,中央处理器)+硬件加速器(可以为GPU、FPGA、ASIC芯片的一种或者多种组合)组成一体化异构硬件计算系统的方式,执行数据库中的数据处理任务,通过不同硬件的搭配,实现各展所长,有效提高数据库系统的运行效率。其中,CPU是通过执行提供给它们的指令提供运算能力,根据指令的不同,它们都可以随时执行不同的任务,GPU提供了多核并行计算的基础结构,可以支撑大量数据的并行计算任务加速;而FPGA则与CPU和GPU具有不同的工作方式。
FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)是专用集成电路(ASIC)领域中的一种半定制电路,其在使用前需要对其进行编程,使其特定的单元执行特定的任务;一旦编程完成,FPGA能够处理的工作任务就固定下来,直到下一次编程改变其作用。由于FPGA在执行特定任务过程中具有更高集成密度、更大容量、更低功耗的特点,经常被一些数据库厂商用作硬件级的加速器使用,在计算系统中承担运算需求量大的计算算子的工作。
但是,在使用FPGA以及类似的执行固定任务的可编程硬件进行加速时,现有技术往往只能根据设计者自己的估算将CPU中某一部分负载较高的计算算子实现到FPGA中。这种实现方式通常不够精确,导致算力需求大的计算算子得不到足够的算力支持,而算力需求小的计算算子却长期占用着算力资源,使得整个计算系统的加速效果较差,无法满足数据库系统高效运行的要求,并且降低了硬件的利用率。
发明内容
本申请提供一种计算系统中调整计算算子类型分布的方法,以解决现有技术中存在的人工配置计算算子类型分布的导致的运算效率低下的问题。本申请另外提供一种计算系统中调整计算算子类型分布的装置及系统。
本申请提供计算系统中调整计算算子类型分布的方法,包括:获得计算系统实际数据处理中的计算算子的运算量数据记录,所述计算算子用于完成数据处理任务;根据所述计算算子的运算量数据记录,获得未来时段T对所述计算系统上计算算子的预测需求量;根据所述计算系统上计算算子的预测需求量,在所述未来时段T到来前对所述计算系统上以可编程硬件方式实现的计算算子进行调整,所述调整包括如下至少一项:所述可编程硬件方式实现的计算算子的类型、所述可编程硬件方式实现的计算算子的分布比例。
可选的,所述根据所述计算系统上计算算子的预测需求量,在所述未来时段T到来前对所述计算系统上以可编程硬件方式实现的计算算子进行调整,具体包括:根据所述计算系统上计算算子的预测需求量,确定所述计算系统上计算算子中达到或超过预设需求量阈值的计算算子;将所述达到或超过预设需求量阈值的计算算子的类型确定为在所述未来时段T到来前需要所述计算系统上以可编程硬件方式实现的计算算子的类型;根据所述需要所述计算系统上以可编程硬件方式实现的计算算子的类型,在所述未来时段T到来前调整所述计算系统上预设的以可编程硬件方式实现的计算算子的类型。
可选的,所述根据需要所述计算系统上以可编程硬件方式实现的计算算子的类型,在所述未来时段T到来前调整所述计算系统上预设的以可编程硬件方式实现的计算算子的类型,具体包括:将需要所述计算系统上以可编程硬件方式实现的计算算子的类型与所述计算系统上预设的以可编程硬件方式实现的计算算子的实际类型进行比较,判断所述计算系统上是否存在相应类型的计算算子,若否,则在所述未来时段T到来前增加所述计算系统上相应类型的以可编程硬件方式实现的计算算子的类型。
可选的,所述根据所述计算系统上计算算子的预测需求量,在所述未来时段T到来前对所述计算系统上以可编程硬件方式实现的计算算子进行调整,具体包括:根据所述计算系统上计算算子的预测需求量,确定所述计算系统上计算算子中达到或超过预设需求量阈值的计算算子;将所述达到或超过预设需求量阈值的计算算子的预测需求量,确定为在所述未来时段T到来前所述计算系统上以可编程硬件方式实现的计算算子的需求量;根据所述计算系统上以可编程硬件方式实现的计算算子的需求量,在所述未来时段T到来前调整所述计算系统上预设的以可编程硬件方式实现的计算算子的分布比例。
可选的,所述根据所述计算系统上以可编程硬件方式实现的计算算子的需求量,在所述未来时段T到来前调整所述计算系统上预设的以可编程硬件方式实现的计算算子的分布比例,具体包括:当所述计算系统上以可编程硬件方式实现的计算算子的需求量降低时,在所述未来时段T到来前减少相应类型的以可编程硬件方式实现的计算算子的分布比例;当所述计算系统上以可编程硬件方式实现的计算算子的需求量升高时,在所述未来时段T到来前增加相应类型的以可编程硬件方式实现的计算算子的分布比例;当所述计算系统上以可编程硬件方式实现的计算算子的需求量稳定在预设区间范围内时,所述计算系统上相应类型的以可编程硬件方式实现的计算算子的分布比例维持不变。
可选的,所述根据所述计算系统上以可编程硬件方式实现的计算算子的需求量,在所述未来时段T到来前调整所述计算系统上预设的以可编程硬件方式实现的计算算子的分布比例,具体包括:将所述计算系统上以可编程硬件方式实现的计算算子的需求量与所述计算系统上预设的以可编程硬件方式实现的计算算子的分布情况进行比较,若匹配度低于预先设定的指标,则在所述未来时段T到来前调整所述计算系统上相应类型的以可编程硬件方式实现的计算算子的分布比例。
可选的,所述根据所述计算算子的运算量数据记录,获得未来时段T对所述计算系统上计算算子的预测需求量,包括:将所述计算算子的运算量数据记录输入到预设的计算算子需求预测模型,获得未来时段T对所述计算系统上计算算子的预测需求量,所述计算算子需求预测模型为根据预定时间段内的计算算子的运算量数据记录预测未来时段T针对所述计算算子的预测需求量的深度神经网络模型。
可选的,所述的计算系统中调整计算算子类型分布的方法还包括:获得所述预定时间段内的计算算子的运算量数据记录样本;获得与所述预定时间段内的计算算子的运算量数据记录样本匹配的未来时段T针对所述计算算子的实际需求量样本;利用所述预定时间段内的计算算子的运算量数据记录样本,以及与所述预定时间段内的计算算子的运算量数据记录样本匹配的所述未来时段T针对所述计算算子的实际需求量样本,训练所述深度神经网络模型,获得所述计算算子需求预测模型。
可选的,所述获得计算系统实际数据处理中的计算算子的运算量数据记录,具体包括:获得数据库中用于处理客户端的数据处理请求的所述计算系统中计算算子的运算量数据记录;相应的,所述计算算子是数据库内所述计算系统上为数据处理任务所设置的所有专用计算程式。
可选的,所述计算系统是由CPU模块和可编程硬件模块组成的用于处理数据库数据的异构硬件加速计算系统。
可选的,所述计算算子的运算量数据记录包括数据处理过程中所述计算算子的占用比例数据和使用时间数据中的至少一种数据。
可选的,所述计算算子的预测需求量为数据处理过程中所述计算算子的预测耗时时间。
相应的,本申请还提供一种计算系统中调整计算算子类型分布的装置,包括:监测单元、资源管理器单元以及可编程硬件管理单元;所述监测单元用于,获得计算系统实际数据处理中的计算算子的运算量数据记录,所述计算算子用于完成数据处理任务;所述资源管理器单元用于,根据所述计算算子的运算量数据记录,获得未来时段T对所述计算系统上计算算子的预测需求量;所述可编程硬件管理单元用于,根据所述计算系统上计算算子的预测需求量,在所述未来时段T到来前对所述计算系统上以可编程硬件方式实现的计算算子进行调整,所述调整包括如下至少一项:所述可编程硬件方式实现的计算算子的类型、所述可编程硬件方式实现的计算算子的分布比例。
可选的,所述可编程硬件管理单元具体用于:根据所述计算系统上计算算子的预测需求量,确定所述计算系统上计算算子中达到或超过预设需求量阈值的计算算子;将所述达到或超过预设需求量阈值的计算算子的类型确定为在所述未来时段T到来前需要所述计算系统上以可编程硬件方式实现的计算算子的类型;根据所述需要所述计算系统上以可编程硬件方式实现的计算算子的类型,在所述未来时段T到来前调整所述计算系统上预设的以可编程硬件方式实现的计算算子的类型。
可选的,所述可编程硬件管理单元具体用于:将需要所述计算系统上以可编程硬件方式实现的计算算子的类型与所述计算系统上预设的以可编程硬件方式实现的计算算子的实际类型进行比较,判断所述计算系统上是否存在相应类型的计算算子,若否,则在所述未来时段T到来前增加所述计算系统上相应类型的以可编程硬件方式实现的计算算子的类型。
可选的,所述可编程硬件管理单元具体用于:根据所述计算系统上计算算子的预测需求量,确定所述计算系统上计算算子中达到或超过预设需求量阈值的计算算子;将所述达到或超过预设需求量阈值的计算算子的预测需求量,确定为在所述未来时段T到来前所述计算系统上以可编程硬件方式实现的计算算子的需求量;根据所述计算系统上以可编程硬件方式实现的计算算子的需求量,在所述未来时段T到来前调整所述计算系统上预设的以可编程硬件方式实现的计算算子的分布比例。
可选的,所述可编程硬件管理单元具体用于:当所述计算系统上以可编程硬件方式实现的计算算子的需求量降低时,在所述未来时段T到来前减少相应类型的以可编程硬件方式实现的计算算子的分布比例;当所述计算系统上以可编程硬件方式实现的计算算子的需求量升高时,在所述未来时段T到来前增加相应类型的以可编程硬件方式实现的计算算子的分布比例;当所述计算系统上以可编程硬件方式实现的计算算子的需求量稳定在预设区间范围内时,所述计算系统上相应类型的以可编程硬件方式实现的计算算子的分布比例维持不变。
可选的,所述可编程硬件管理单元具体用于:将所述计算系统上以可编程硬件方式实现的计算算子的需求量与所述计算系统上预设的以可编程硬件方式实现的计算算子的分布情况进行比较,若匹配度低于预先设定的指标,则在所述未来时段T到来前调整所述计算系统上相应类型的以可编程硬件方式实现的计算算子的分布比例。
可选的,所述资源管理器单元具体用于:将所述计算算子的运算量数据记录输入到预设的计算算子需求预测模型,获得未来时段T对所述计算系统上计算算子的预测需求量,所述计算算子需求预测模型为根据预定时间段内的计算算子的运算量数据记录预测未来时段T针对所述计算算子的预测需求量的深度神经网络模型。
可选的,所述的计算系统中调整计算算子类型分布的装置还包括:运算量数据记录样本获得单元、实际需求量样本获得单元、训练单元;所述运算量数据记录样本获得单元用于,获得所述预定时间段内的计算算子的运算量数据记录样本;所述实际需求量样本获得单元用于,获得与所述预定时间段内的计算算子的运算量数据记录样本匹配的未来时段T针对所述计算算子的实际需求量样本;所述训练单元用于,利用所述预定时间段内的计算算子的运算量数据记录样本,以及与所述预定时间段内的计算算子的运算量数据记录样本匹配的所述未来时段T针对所述计算算子的实际需求量样本,训练所述深度神经网络模型,获得所述计算算子需求预测模型。
可选的,所述监测单元具体用于:获得数据库中用于处理客户端的数据处理请求的所述计算系统中计算算子的运算量数据记录;相应的,所述计算算子是数据库内所述计算系统上为数据处理任务所设置的所有专用计算程式。
可选的,所述计算系统是由CPU模块和可编程硬件模块组成的用于处理数据库数据的异构硬件加速计算系统。
可选的,所述计算算子的运算量数据记录包括数据处理过程中所述计算算子的占用比例数据和使用时间数据中的至少一种数据。
可选的,所述计算算子的预测需求量为数据处理过程中所述计算算子的预测需求时间。
相应的,本申请还提供一种计算系统中调整计算算子类型分布的系统,包括:上述任意一项所述的计算系统中调整计算算子类型分布的装置。
相应的,本申请还提供一种电子设备,包括:处理器和存储器,其中所述存储器用于存储计算系统中调整计算算子类型分布的方法的程序,该设备通电并通过所述处理器运行该计算系统中调整计算算子类型分布的方法的程序后,执行下述步骤:获得计算系统实际数据处理中的计算算子的运算量数据记录,所述计算算子用于完成数据处理任务;根据所述计算算子的运算量数据记录,获得未来时段T对所述计算系统上计算算子的预测需求量;根据所述计算系统上计算算子的预测需求量,在所述未来时段T到来前对所述计算系统上以可编程硬件方式实现的计算算子进行调整,所述调整包括如下至少一项:所述可编程硬件方式实现的计算算子的类型、所述可编程硬件方式实现的计算算子的分布比例。
相应的,本申请还提供一种存储设备,存储有计算系统中调整计算算子类型分布的方法的程序,该程序被处理器运行,执行下述步骤:获得计算系统实际数据处理中的计算算子的运算量数据记录,所述计算算子用于完成数据处理任务;根据所述计算算子的运算量数据记录,获得未来时段T对所述计算系统上计算算子的预测需求量;根据所述计算系统上计算算子的预测需求量,在所述未来时段T到来前对所述计算系统上以可编程硬件方式实现的计算算子进行调整,所述调整包括如下至少一项:所述可编程硬件方式实现的计算算子的类型、所述可编程硬件方式实现的计算算子的分布比例。
相应的,本申请还提供一种计算系统中调整计算算子类型分布的方法,其特征在于,包括:获得计算系统实际数据处理中的至少一部分类型的计算算子的运算量数据记录,所述计算算子用于完成数据处理任务;根据所述计算算子的运算量数据记录,获得未来时段T对所述计算系统上计算算子的预测需求量;根据所述计算系统上计算算子的预测需求量,在所述未来时段T到来前对所述计算系统上以硬件加速器方式实现的计算算子进行调整,所述调整包括如下至少一项:所述硬件加速器方式实现的计算算子的类型、所述硬件加速器方式实现的计算算子的分布比例。
与现有技术相比,本申请具有以下优点:
采用本申请提供的计算系统中调整计算算子类型分布的方法,可以通过分析数据处理过程中计算算子的运算量数据记录,获得未来时段对计算算子的预测需求量,进而准确调整所述计算系统上以可编程硬件方式实现的计算算子的类型和分布比例,将可编程硬件的算力尽可能服务于最繁忙数据处理任务,从而提高了整个计算系统的运算效率,并提高硬件使用效率。
附图说明
图1为本发明实施例提供的一种计算系统中调整计算算子类型分布的方法的流程图;
图2为本发明实施例提供的一种计算系统中调整计算算子类型分布的装置的示意图;
图3为本发明实施例提供的一种电子设备的示意图;
图4为本发明实施例提供的一种计算系统的应用场景流程图;
图5a为本发明实施例提供的一种计算系统中调整之前的计算算子类型分布的示意图;
图5b为本发明实施例提供的一种计算系统中调整之后的计算算子类型分布的示意图;
图6为本发明实施例提供的一种监测计算系统上计算算子的运算量数据的示意图;
图7a为本发明实施例提供的一种调整计算系统中调整之前的计算算子类型分布比例的示意图;
图7b为本发明实施例提供的一种调整计算系统中调整之后的计算算子类型分布比例的示意图;
图8为本发明实施例提供的一种计算系统中调整计算算子类型分布的系统的完整运行流程图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此,本发明不受下面公开的具体实施的限制。
下面基于本发明提供的计算系统中调整计算算子类型分布的方法,对其实施例进行详细描述。本实施例以处理数据库管理、查询处理任务的计算系统为例进行说明。
请参考图1所示,其为本发明实施例提供的一种计算系统中调整计算算子类型分布的方法的流程图。
本发明所述的实施例可以基于传统的提供数据存储和管理服务的数据库系统实现,具体实现过程包括以下步骤:
步骤S101:获得计算系统实际数据处理中的计算算子的运算量数据记录,所述计算算子用于完成数据处理任务。
在本发明实施例中,所述的计算系统可以是由CPU模块和可编程硬件FPGA模块组成的用于处理数据库数据的异构硬件加速计算系统,很多时候也包括GPU模块。
所述的计算算子用于完成数据处理任务。对于不同的计算场景,计算算子可以有不同的含义。其中,对于本实施例的用于数据库的计算系统,可以包括SQL处理任务中的Filter Operator(过滤算子)、Table Scan Operator(表扫描算子)、Hash Join Operator(哈希算子)、Aggregation Operator(集成算子)、Sort Operator(排序算子)和ProjectOperator(投影算子)等。如图4所示的一种计算系统的应用场景流程图,在具体实施过程中,用户通过APP应用向DS(Data Store;数据库)发送数据处理请求,由Load Balancer(负载均衡模块)实现数据处理请求的负载均衡,前端节点模块(Front node Pool)接收负载均衡模块分配的数据处理请求进行分析处理,分配给不同的FN(Front Node;前端节点),并生成相应的执行计划发送至上述CN(Compute node Pool;计算节点),进而返回DS(DataStore;数据库)中存储的相应数据。所述执行计划是由若干计算算子按照设定的逻辑顺序组成的AST(抽象语法树)。
在执行所述执行计划过程中,计算算子会分别分配给CPU、GPU以及设置为相应的计算算子的FPGA模块中的相应单元执行。由于可编程硬件FPGA模块中预设的计算算子的种类和分布比例通常是根据人工经验提前设置的,并且设置后只能执行特定的计算算子的运算任务。因此,在对数据处理进行计算加速过程中,可能由于设置不当,造成运算量实际需求大的计算算子得不到足够的算力,而运算量实际需求小的算子却长期占用着FPGA模块的算力资源,导致整个计算系统的运算效率较低。
为此,本发明提供了一种计算系统中调整计算算子类型分布的方法,该方法的前提是对整个计算系统实际数据处理过程的计算算子的运算量数据进行监控记录并进行统计汇总,从而掌握运算系统对各个计算算子的运算量需求。对计算算子的运算量数据进行监控记录可以根据不同的需求采用不同的方式。一种可能的方式是对计算系统的各个计算算子的运算量历史数据进行监控,该方式主要考虑到计算系统中计算需求往往具有历史的延续性,可以利用历史数据判断未来的计算需求。以下介绍采用该方法的一种具体实现方式。
如图6所示,该图是本发明实施例提供的一种监测计算系统上计算算子的运算量数据的示意图。通过颜色的不同表示不同类型的计算算子,其中包括:Filter Operator(过滤算子)、Table Scan Operator(表扫描算子)、Hash join Operator(哈希算子)、Aggregation Operator(集成算子)、Sort Operator(排序算子)以及Project Operator(投影算子)。分析11月1号-11月07号这段时间内监测的运算量数据记录,可以发现,在最耗时的几种类型的计算算子中,Filter Operator(过滤算子)和Table Scan Operator(表扫描算子)对于算力的需求在降低,而Hash join Operator(哈希算子)和AggregationOperator(集成算子)的算力需求则在不断增长中,Sort Operator(排序算子)的算力要求比较稳定,而Project Operator(投影算子)的算力需求虽然有波动,但整体波动不大。
步骤S102:根据所述计算算子的运算量数据记录,获得未来时段T对所述计算系统上计算算子的预测需求量。
上述步骤S101获得计算系统实际数据处理中的计算算子预定时间段内的运算量数据记录。为本步骤预测未来时段T对所述计算系统上计算算子的预测需求量做了数据准备工作。在步骤S102中,可以根据上述监测的计算算子的运算量数据记录,获得未来时段T对计算系统上计算算子的预测需求量。
通过持续不断的监控和收集数据处理过程中整个计算系统上负载的走势情况,可以将预测需求量达到或超过预设需求量阈值的计算算子确定为需要可编程硬件FPGA模块提供算力支持的计算算子。上述监测的计算算子的预测需求量为针对运算量的预测需求量,衡量运算量需求的方式,具体而言,可以采用运算时间作为衡量指标,即某一种计算算子的运算量需求,就是所述确定时间段内执行该计算算子的耗时时间。执行某个计算算子的时间,包括CPU、GPU以及FGPA或者其他可编程硬件执行该计算算子的时间。在同一个时刻,可以同时执行相当多的该类型计算算子,对于每一个被执行的计算算子,其运行时间都被计算在内并加总计算。当然,也可以使用计算算子在整个计算算子耗时时间中的占用比例数据衡量各个计算算子的运算量需求。将最耗时的几种类型计算算子确定为需要可编程硬件FPGA模块提供算力支持的计算算子。
例如:上述通过分析11月1号-11月07号这段时间内监测的运算量数据记录,可以发现,在最耗时的几种类型的计算算子中,Filter Operator(过滤算子)和Table ScanOperator(表扫描算子)对于算力的需求在降低,而Hash join Operator(哈希算子)和Aggregation Operator(集成算子)的算力需求则在不断增长中,Sort Operator(排序算子)的算力要求比较稳定,而Project Operator(投影算子)的算力需求虽然有波动,但整体波动不大。因此,可以在未来时间段T到来前可以得出针对运算量的需求趋势:1)Hash joinOperator(哈希算子)和Aggregation Operator(集成算子)的算力需求正在不断提高,需要及时补充算力,否则会造成计算系统更加繁忙、运算效率更低,这时可以提升可编程硬件FPGA模块中此类计算算子的分布比例;2)Filter Operator(过滤算子)和Table ScanOperator(表扫描算子)的算力需求在下降,因此可以释放可编程硬件FPGA模块中此类计算算子的分布比例,否则就可能会造成计算资源浪费;3)Sort Operator(排序算子)和Project Operator(投影算子)属于正常波动范围,暂时不需要调整此类计算算子的分布比例。
具体的,根据上述监测的计算算子的运算量数据记录,获得未来时段T对计算系统上计算算子的预测需求量,可采用如下方式实现:首先获取预定时间段内的计算算子的运算量数据记录样本,以及与所述预定时间段内的计算算子的运算量数据记录样本匹配的未来时段T针对计算算子的实际需求量样本;进而利用所述预定时间段内的计算算子的运算量数据记录样本,以及与所述预定时间段内的计算算子的运算量数据记录样本匹配的未来时段T针对计算算子的实际需求量样本训练预先设置的深度神经网络模型,最终得到计算算子需求预测模型。将监测的计算算子的运算量数据记录实时输入到该计算算子需求预测模型,可以准确获得未来时段T对计算系统上计算算子的预测需求量。需要说明的是,计算算子需求预测模型为根据预定时间段内的计算算子的运算量数据记录预测未来时段T针对所述计算算子的预测需求量的深度神经网络模型。需要说明的是,本发明所述的预测模型不限于上述所列举的通过收集训练样本对预先设置的深度神经网络模型进行训练获得,其也可以通过逻辑回归模型实现。在具体实施过程中,可以通过性能对比测试来选择合适的模型。
步骤S103:根据所述计算系统上计算算子的预测需求量,在所述未来时段T到来前对所述计算系统上以可编程硬件方式实现的计算算子进行调整,所述调整包括如下至少一项:所述可编程硬件方式实现的计算算子的类型、所述可编程硬件方式实现的计算算子的分布比例。
在上述步骤S102获得未来时段T对计算系统上计算算子的预测需求量后,本步骤通过分析预测需求量,可以在未来时段T到来前预先调整计算系统上以可编程硬件方式实现的计算算子的类型和分布比例。
具体的,根据预先监测的预定时间内的计算系统上计算算子的预测需求量,实现准确调整可编程硬件方式实现的计算算子的类型和分布比例,可采用如下方式实现:
1)根据计算系统上计算算子的预测需求量,首先确定计算系统上计算算子中达到或超过预设需求量阈值的计算算子。将达到或超过预设需求量阈值的计算算子的类型确定为在未来时段T到来前需要计算系统上以可编程硬件方式实现的计算算子的类型。根据需要计算系统上以可编程硬件方式实现的计算算子的类型,在未来时段T到来前调整计算系统上预设的以可编程硬件方式实现的计算算子的类型。在具体应用过程中,可以将需要计算系统上以可编程硬件方式实现的计算算子的类型与计算系统上预设的以可编程硬件方式实现的计算算子的实际类型进行比较,判断计算系统上是否存在相应类型的计算算子,若否,则在未来时段T到来前增加计算系统上相应类型的以可编程硬件方式实现的计算算子的类型。
由于在数据库系统处理数据过程中计算算子的负载情况通常是不断变化的,不仅不同类型计算算子对算力的需求不同,同类型算子在不同的时间段对算力的要求可能也不同,即算力需求具有时间上周期性的特点。因此,在上述确定时间段内监测到的计算算子的负载可能并不总是能够达到或超过预设负载阈值。因此,有时需要对FPGA模块中计算算子的类型或分布比例实时进行调整。如图5a和图5b所示的,其分别为本发明实施例提供的一种计算系统中调整之前的计算算子类型分布的示意图和调整之后的计算算子类型分布的示意图。其在前一个执行计划中,可能图5a中对应的两个Table Scan Operator(表扫描算子)需要利用可编程硬件FPGA模块来加速;而在后一个执行计划中,由于不同计算算子统计信息的变化,导致了可编程硬件FPGA模块的调度层自动平衡自身计算算子的类型。将最近一段时间内真正负载最高的Aggregation Operator(集成算子)和join Operator(连接算子)按一定比例装载到FPGA模块中,而卸载了其中一个算力需求较低的Table ScanOperator(表扫描算子)。因此,从用户的角度来说,在数据库系统对相同的SQL进行数据处理过程中,在不同的时间段执行时,FPGA模块都能够动态的调整提供不一样的算力支持。需要说明的是,计算算子的运算量数据记录包括数据处理过程中所述计算算子的占用比例数据和耗时时间数据中的至少一种数据。
2)根据计算系统上计算算子的预测需求量,确定计算系统上计算算子中达到或超过预设需求量阈值的计算算子。将达到或超过预设需求量阈值的计算算子的预测需求量,确定为在未来时段T到来前计算系统上以可编程硬件方式实现的计算算子的需求量。根据计算系统上以可编程硬件方式实现的计算算子的需求量,在未来时段T到来前调整计算系统上预设的以可编程硬件方式实现的计算算子的分布比例。
在具体应用过程中,一种实现方式是:将计算系统上以可编程硬件方式实现的计算算子的需求量与计算系统上预设的以可编程硬件方式实现的计算算子的分布情况进行比较,若匹配度低于预先设定的指标,则在未来时段T到来前调整计算系统上相应类型的以可编程硬件方式实现的计算算子的分布比例。另一种方式是:当监测到计算系统上以可编程硬件方式实现的计算算子的需求量降低时,在未来时段T到来前减少相应类型的以可编程硬件方式实现的计算算子的分布比例;当监测到计算系统上以可编程硬件方式实现的计算算子的需求量升高时,在未来时段T到来前增加相应类型的以可编程硬件方式实现的计算算子的分布比例;当监测到计算系统上以可编程硬件方式实现的计算算子的需求量稳定在预设区间范围内时,计算系统上相应类型的以可编程硬件方式实现的计算算子的分布比例维持不变。
如图7a和7b所示,其分别为本发明实施例提供的一种调整计算系统中调整之前的计算算子类型分布比例的示意图和调整之后的计算算子类型分布比例的示意图。
通过持续不断的监控和收集数据处理过程中整个计算系统上计算算子的运算量数据情况,可以预测出未来时间段T内计算算子的运算量需求情况,将运算量需求最大的几种类型计算算子确定需要可编程硬件FPGA模块提供算力支持的计算算子。通过一段时间的监测发现,在图7a所示的运算量需求最大的几种类型的算子中,Orc reader(Orc读取算子)对于算力的需求在降低,Hash Join Operator(哈希算子)、Json reader(Json读取算子)、Csv reader(Csv读取算子)以及Sorter Operator(排序算子)的算力需求则在不断增长中,而Filter Operator(过滤算子)的算力需求虽然有波动,但整体波动不大。因此,可以通过统计分析得出初步的结论:Hash Join Operator(哈希算子)、Json reader(Json读取算子)、Csv reader(Csv读取算子)以及Sorter Operator(排序算子)的算力要求正在不断提高,需要及时补充算力,否则会造成计算系统更加繁忙、运算效率更低,这是可以考虑提升可编程硬件FPGA模块中此类算子的分布比例。如图7b所示的,Orc reader(Orc读取算子)的算力要求在下降,因此可以释放其多余的可编程硬件FPGA模块中此类算子的分布比例,否则就可能会造成计算资源浪费;Filter Operator(过滤算子)属于正常待持续观察范围,暂时不需要调整此类算子的分布比例。
在本发明提供的一个完整实施例中,如图8所示,其为本发明实施例提供的一种计算系统中调整计算算子类型分布的系统的完整运行流程图。首先用户在数据库业务系统中创建逻辑库和逻辑表,并存入元数据模块(meta模块)中。然后,用户在自己的程序中基于数据库业务系统来提交SQL查询数据实施相应的数据查询操作,SQL查询数据过程主要经过分析模块(Performance&Cost Analyzer)、SQL优化控制模块(SQL Optimizer)、物理资源分配模块(Physical Resource Planer)、执行调度模块(Execution Scheduler)、执行模块(Stage Execution)以及合并结果模块(Result Merger)对用户的数据处理请求进行解析,形成逻辑执行计划树,进而生成执行计划,由计算系统为执行计划提供算力。最后,逐步汇总并返回给用户需要的数据。
本发明可以通过监控模块(Monitor)在计算过程中对计算算子做运算量数据统计,对计算算子的计算消耗时间也做统计,这些信息最终会汇集到统一的资源管理模块(Resource Manager)中,进而由FPGA管理模块(FPGA Manager)在数据处理是调整FPGA模块中的计算算子种类和分布比例,并将调整后的FPGA模块中的计算算子种类和分布比例信息同步到元数据模块(Meta模块)中,从而保证对下一个执行计划的提供准确的算力支持。
在实际应用过程中,在使用可编程结构硬件FPGA模块时,首先会根据以往的经验,提前规划FPGA模块内的逻辑门电路分配,把运算量需求可能最大的计算算子提前编写进FPGA模块。然后,监控和收集接下来一段时间内的数据处理过程中整个计算系统上负载的走势情况,对未来时间段T内计算算子的运算量需求进行预测,将预测的运算量需求最大的几种类型计算算子确定为需要可编程硬件FPGA模块提供算力支持的计算算子。数据库业务系统通过对比预设的FPGA模块内的计算算子规划与线上实际数据处理过程中预测的计算算子情况的差异,确定是否对FPGA模块内的计算算子进行动态调节。如果某些差异足够稳定(例如超过10天或1个月),且达到或超过了数据库业务系统预设的阈值范围时(例如5%),就会触发FPGA模块的FPGA管理器编排模块(Partial Reconfiguration)的进行调整。按照当前实际数据处理过程中预测的最新的计算算子分布比例来重新规划FPGA模块中逻辑门电路的编排,逐步调整和替换FPGA模块中的计算算子分布比例。在调整之后数据库业务系统接收到新的SQL查询数据时,数据库业务系统的SQL调整器模块(SQL Optimizer)会感知到调整后的计算算子的分布比例信息,为用户的SQL查询数据生成最新的执行计划。如果某些计算算子匹配到FPGA最新的计算算子列表,则把这些计算算子推送到FPGA模块中去执行,反之放在CPU模块中执行,并继续收集计算算子的统计信息。整个过程周而复始,数据库业务系统不断的运行时收集数据,动态反馈到FPGA模块的FPGA管理器编排模块,然后再动态调整FPGA模块中的计算算子的种类和分布比例,从而逐步提高数据库业务系统数据处理过程中计算系统的运算效率。
需要说明的是,本发明所述的数据处理过程不限于数据库业务系统的数据处理任务,所述的计算系统也不限于仅仅对数据库业务系统的数据处理任务进行加速,本发明所述的计算系统中调整计算算子类型分布的方法可以适用于加速不同类型的数据处理任务和运算场景。
采用本发明提供的计算系统中调整计算算子类型分布的方法,可以通过分析数据处理过程中计算算子的运算量数据记录,获得未来时段对计算算子的预测需求量,进而准确调整所述计算系统上以可编程硬件方式实现的计算算子的类型和分布比例,将可编程硬件模块的算力尽可能服务于最繁忙数据处理任务,从而提高了整个计算系统的运算效率。
与上述提供的计算系统中调整计算算子类型分布的方法相对应,本发明还提供一种计算系统中调整计算算子类型分布的装置。由于该装置的实施例相似于上述方法实施例,所以描述的比较简单,相关之处请参见上述方法实施例部分的说明即可,下面描述一种计算系统中调整计算算子类型分布的装置的实施例仅是示意性的。请参考图2所示,其为本发明实施例提供的一种计算系统中调整计算算子类型分布的装置的示意图。
本发明实施例所述的计算系统中调整计算算子类型分布的装置包括如下部分:
监测单元201,用于获得计算系统实际数据处理中的计算算子的运算量数据记录,所述计算算子是完成数据处理任务。
在本发明实施例中,所述的计算系统可以是由CPU模块和可编程硬件FPGA模块组成的用于处理数据库数据的异构硬件加速计算系统,很多时候也包括GPU模块。
所述的计算算子用于完成数据处理任务。对于不同的计算场景,计算算子可以有不同的含义。其中,对于本实施例的用于数据库的计算系统,可以包括SQL处理任务中的Filter Operator(过滤算子)、Table Scan Operator(表扫描算子)、Hash Join Operator(哈希算子)、Aggregation Operator(集成算子)、Sort Operator(排序算子)和ProjectOperator(投影算子)等。如图4所示的一种计算系统的应用场景流程图,在具体实施过程中,用户通过APP应用向DS(Data Store;数据库)发送数据处理请求,由Load Balancer(负载均衡模块)实现数据处理请求的负载均衡,前端节点模块(Front node Pool)接收负载均衡模块分配的数据处理请求进行分析处理,分配给不同的FN(Front Node;前端节点),并生成相应的执行计划发送至上述CN(Compute node Pool;计算节点),进而返回DS(DataStore;数据库)中存储的相应数据。所述执行计划是由若干计算算子按照设定的逻辑顺序组成的AST(抽象语法树)。
在执行所述执行计划过程中,计算算子会分别分配给CPU、GPU以及设置为相应的计算算子的FPGA模块中的相应单元执行。由于可编程硬件FPGA模块中预设的计算算子的种类和分布比例通常是根据人工经验提前设置的,并且设置后只能执行特定的计算算子的运算任务。因此,在对数据处理进行计算加速过程中,可能由于设置不当,造成运算量实际需求大的计算算子得不到足够的算力,而运算量实际需求小的算子却长期占用着FPGA模块的算力资源,导致整个计算系统的运算效率较低。
为此,本发明提供了一种计算系统中调整计算算子类型分布的方法,该方法的前提是对整个计算系统实际数据处理过程的计算算子的运算量数据进行监控记录并进行统计汇总,从而掌握运算系统对各个计算算子的运算量需求。对计算算子的运算量数据进行监控记录可以根据不同的需求采用不同的方式。一种可能的方式是对计算系统的各个计算算子的运算量历史数据进行监控,该方式主要考虑到计算系统中计算需求往往具有历史的延续性,可以利用历史数据判断未来的计算需求。以下介绍采用该方法的一种具体实现方式。
如图6所示,该图是本发明实施例提供的一种监测计算系统上计算算子的运算量数据的示意图。通过颜色的不同表示不同类型的计算算子,其中包括:Filter Operator(过滤算子)、Table Scan Operator(表扫描算子)、Hash join Operator(哈希算子)、Aggregation Operator(集成算子)、Sort Operator(排序算子)以及Project Operator(投影算子)。分析11月1号-11月07号这段时间内监测的运算量数据记录,可以发现,在最耗时的几种类型的计算算子中,Filter Operator(过滤算子)和Table Scan Operator(表扫描算子)对于算力的需求在降低,而Hash join Operator(哈希算子)和AggregationOperator(集成算子)的算力需求则在不断增长中,Sort Operator(排序算子)的算力要求比较稳定,而Project Operator(投影算子)的算力需求虽然有波动,但整体波动不大。
资源管理器单元202,用于根据所述计算算子的运算量数据记录,获得未来时段T对所述计算系统上计算算子的预测需求量。
上述监测单元201获得计算系统实际数据处理中的计算算子预定时间段内的运算量数据记录。为资源管理器单元202预测未来时段T对所述计算系统上计算算子的预测需求量做了数据准备工作。在资源管理器单元202中,可以根据上述监测的计算算子的运算量数据记录,获得未来时段T对计算系统上计算算子的预测需求量。
通过持续不断的监控和收集数据处理过程中整个计算系统上负载的走势情况,可以将预测需求量达到或超过预设需求量阈值的计算算子确定为需要可编程硬件FPGA模块提供算力支持的计算算子。上述监测的计算算子的预测需求量为针对运算量的预测需求量,衡量运算量需求的方式,具体而言,可以采用运算时间作为衡量指标,即某一种计算算子的运算量需求,就是所述确定时间段内执行该计算算子的耗时时间。执行某个计算算子的时间,包括CPU、GPU以及FGPA或者其他可编程硬件执行该计算算子的时间。在同一个时刻,可以同时执行相当多的该类型计算算子,对于每一个被执行的计算算子,其运行时间都被计算在内并加总计算。当然,也可以使用计算算子在整个计算算子耗时时间中的占用比例数据衡量各个计算算子的运算量需求。将最耗时的几种类型计算算子确定为需要可编程硬件FPGA模块提供算力支持的计算算子。
例如:上述通过分析11月1号-11月07号这段时间内监测的运算量数据记录,可以发现,在最耗时的几种类型的计算算子中,Filter Operator(过滤算子)和Table ScanOperator(表扫描算子)对于算力的需求在降低,而Hash join Operator(哈希算子)和Aggregation Operator(集成算子)的算力需求则在不断增长中,Sort Operator(排序算子)的算力要求比较稳定,而Project Operator(投影算子)的算力需求虽然有波动,但整体波动不大。因此,可以在未来时间段T到来前可以得出针对运算量的需求趋势:1)Hash joinOperator(哈希算子)和Aggregation Operator(集成算子)的算力需求正在不断提高,需要及时补充算力,否则会造成计算系统更加繁忙、运算效率更低,这时可以提升可编程硬件FPGA模块中此类计算算子的分布比例;2)Filter Operator(过滤算子)和Table ScanOperator(表扫描算子)的算力需求在下降,因此可以释放可编程硬件FPGA模块中此类计算算子的分布比例,否则就可能会造成计算资源浪费;3)Sort Operator(排序算子)和Project Operator(投影算子)属于正常波动范围,暂时不需要调整此类计算算子的分布比例。
具体的,根据上述监测的计算算子的运算量数据记录,获得未来时段T对计算系统上计算算子的预测需求量,可采用如下方式实现:首先获取预定时间段内的计算算子的运算量数据记录样本,以及与所述预定时间段内的计算算子的运算量数据记录样本匹配的未来时段T针对计算算子的实际需求量样本;进而利用所述预定时间段内的计算算子的运算量数据记录样本,以及与所述预定时间段内的计算算子的运算量数据记录样本匹配的未来时段T针对计算算子的实际需求量样本训练预先设置的深度神经网络模型,最终得到计算算子需求预测模型。将监测的计算算子的运算量数据记录实时输入到该计算算子需求预测模型,可以准确获得未来时段T对计算系统上计算算子的预测需求量。需要说明的是,计算算子需求预测模型为根据预定时间段内的计算算子的运算量数据记录预测未来时段T针对所述计算算子的预测需求量的深度神经网络模型。需要说明的是,本发明所述的预测模型不限于上述所列举的通过收集训练样本对预先设置的深度神经网络模型进行训练获得,其也可以通过逻辑回归模型实现。在具体实施过程中,可以通过性能对比测试来选择合适的模型。
可编程硬件管理单元203,用于根据所述计算系统上计算算子的预测需求量,在所述未来时段T到来前对所述计算系统上以可编程硬件方式实现的计算算子进行调整,所述调整包括如下至少一项:所述可编程硬件方式实现的计算算子的类型、所述可编程硬件方式实现的计算算子的分布比例。
在上述资源管理器单元202获得未来时段T对计算系统上计算算子的预测需求量后,可编程硬件管理单元203通过分析预测需求量,可以在未来时段T到来前预先调整计算系统上以可编程硬件方式实现的计算算子的类型和分布比例。
具体的,根据预先监测的预定时间内的计算系统上计算算子的预测需求量,实现准确调整可编程硬件方式实现的计算算子的类型和分布比例,可采用如下方式实现:
1)根据计算系统上计算算子的预测需求量,首先确定计算系统上计算算子中达到或超过预设需求量阈值的计算算子。将达到或超过预设需求量阈值的计算算子的类型确定为在未来时段T到来前需要计算系统上以可编程硬件方式实现的计算算子的类型。根据需要计算系统上以可编程硬件方式实现的计算算子的类型,在未来时段T到来前调整计算系统上预设的以可编程硬件方式实现的计算算子的类型。在具体应用过程中,可以将需要计算系统上以可编程硬件方式实现的计算算子的类型与计算系统上预设的以可编程硬件方式实现的计算算子的实际类型进行比较,判断计算系统上是否存在相应类型的计算算子,若否,则在未来时段T到来前增加计算系统上相应类型的以可编程硬件方式实现的计算算子的类型。
由于在数据库系统处理数据过程中计算算子的负载情况通常是不断变化的,不仅不同类型计算算子对算力的需求不同,同类型算子在不同的时间段对算力的要求可能也不同,即算力需求具有时间上周期性的特点。因此,在上述确定时间段内监测到的计算算子的负载可能并不总是能够达到或超过预设负载阈值。因此,有时需要对FPGA模块中计算算子的类型或分布比例实时进行调整。如图5a和图5b所示的,其分别为本发明实施例提供的一种计算系统中调整之前的计算算子类型分布的示意图和调整之后的计算算子类型分布的示意图。其在前一个执行计划中,可能图5a中对应的两个Table Scan Operator(表扫描算子)需要利用可编程硬件FPGA模块来加速;而在后一个执行计划中,由于不同计算算子统计信息的变化,导致了可编程硬件FPGA模块的调度层自动平衡自身计算算子的类型。将最近一段时间内真正负载最高的Aggregation Operator(集成算子)和join Operator(连接算子)按一定比例装载到FPGA模块中,而卸载了其中一个算力需求较低的Table ScanOperator(表扫描算子)。因此,从用户的角度来说,在数据库系统对相同的SQL进行数据处理过程中,在不同的时间段执行时,FPGA模块都能够动态的调整提供不一样的算力支持。需要说明的是,计算算子的运算量数据记录包括数据处理过程中所述计算算子的占用比例数据和耗时时间数据中的至少一种数据。
2)根据计算系统上计算算子的预测需求量,确定计算系统上计算算子中达到或超过预设需求量阈值的计算算子。将达到或超过预设需求量阈值的计算算子的预测需求量,确定为在未来时段T到来前计算系统上以可编程硬件方式实现的计算算子的需求量。根据计算系统上以可编程硬件方式实现的计算算子的需求量,在未来时段T到来前调整计算系统上预设的以可编程硬件方式实现的计算算子的分布比例。
在具体应用过程中,一种实现方式是:将计算系统上以可编程硬件方式实现的计算算子的需求量与计算系统上预设的以可编程硬件方式实现的计算算子的分布情况进行比较,若匹配度低于预先设定的指标,则在未来时段T到来前调整计算系统上相应类型的以可编程硬件方式实现的计算算子的分布比例。另一种方式是:当监测到计算系统上以可编程硬件方式实现的计算算子的需求量降低时,在未来时段T到来前减少相应类型的以可编程硬件方式实现的计算算子的分布比例;当监测到计算系统上以可编程硬件方式实现的计算算子的需求量升高时,在未来时段T到来前增加相应类型的以可编程硬件方式实现的计算算子的分布比例;当监测到计算系统上以可编程硬件方式实现的计算算子的需求量稳定在预设区间范围内时,计算系统上相应类型的以可编程硬件方式实现的计算算子的分布比例维持不变。
采用本发明提供的计算系统中调整计算算子类型分布的装置,可以通过监测单元获得数据处理过程中计算算子的运算量数据记录,由资源管理器对所述运算量数据记录进行分析获得未来时段对计算算子的预测需求量,进而通过可编程硬件管理单元准确调整所述计算系统上以可编程硬件方式实现的计算算子的类型和分布比例,将可编程硬件模块的算力尽可能服务于最繁忙数据处理任务,从而提高了整个计算系统的运算效率。
与上述提供的计算系统中调整计算算子类型分布的方法相对应,本发明还提供一种电子设备。请参见图3所示,其为本发明实施例提供的一种电子设备的示意图。
本发明提供的电子设备具体包括:处理器302和存储器301。其中,存储器301用于存储计算系统中调整计算算子类型分布的方法的程序,该设备通电并通过所述处理器302运行该计算系统中调整计算算子类型分布的方法的程序后,执行步骤一:获得计算系统实际数据处理中的计算算子的运算量数据记录,所述计算算子是完成数据处理任务;步骤二:根据所述计算算子的运算量数据记录,获得未来时段T对所述计算系统上计算算子的预测需求量;步骤三:根据所述计算系统上计算算子的预测需求量,在所述未来时段T到来前对所述计算系统上以可编程硬件方式实现的计算算子进行调整,所述调整包括如下至少一项:所述可编程硬件方式实现的计算算子的类型、所述可编程硬件方式实现的计算算子的分布比例。
与上述提供的计算系统中调整计算算子类型分布的方法相对应,本发明还提供一种存储设备,该存储设备存储有计算系统中调整计算算子类型分布的方法的程序,该程序被处理器运行,执行步骤一:获得计算系统实际数据处理中的计算算子的运算量数据记录,所述计算算子是完成数据处理任务;步骤二:根据所述计算算子的运算量数据记录,获得未来时段T对所述计算系统上计算算子的预测需求量;步骤三:根据所述计算系统上计算算子的预测需求量,在所述未来时段T到来前对所述计算系统上以可编程硬件方式实现的计算算子进行调整,所述调整包括如下至少一项:所述可编程硬件方式实现的计算算子的类型、所述可编程硬件方式实现的计算算子的分布比例。
本发明虽然以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此,本发明的保护范围应当以本发明权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

Claims (17)

1.一种计算系统中调整计算算子类型分布的方法,其特征在于,包括:
获得计算系统实际数据处理中的至少一部分类型的计算算子的运算量数据记录,所述计算算子用于完成数据处理任务;
根据所述计算算子的运算量数据记录,获得未来时段T对所述计算系统上计算算子的预测需求量;
根据所述计算系统上计算算子的预测需求量,在所述未来时段T到来前对所述计算系统上以可编程硬件方式实现的计算算子进行调整,所述调整包括如下至少一项:所述可编程硬件方式实现的计算算子的类型、所述可编程硬件方式实现的计算算子的分布比例。
2.根据权利要求1所述的计算系统中调整计算算子类型分布的方法,其特征在于,所述根据所述计算系统上计算算子的预测需求量,在所述未来时段T到来前对所述计算系统上以可编程硬件方式实现的计算算子进行调整,具体包括:
根据所述计算系统上计算算子的预测需求量,确定所述计算系统上计算算子中达到或超过预设需求量阈值的计算算子;
将所述达到或超过预设需求量阈值的计算算子的类型确定为在所述未来时段T到来前需要所述计算系统上以可编程硬件方式实现的计算算子的类型;
根据所述需要所述计算系统上以可编程硬件方式实现的计算算子的类型,在所述未来时段T到来前调整所述计算系统上预设的以可编程硬件方式实现的计算算子的类型。
3.根据权利要求2所述的计算系统中调整计算算子类型分布的方法,其特征在于,所述根据需要所述计算系统上以可编程硬件方式实现的计算算子的类型,在所述未来时段T到来前调整所述计算系统上预设的以可编程硬件方式实现的计算算子的类型,具体包括:
将需要所述计算系统上以可编程硬件方式实现的计算算子的类型与所述计算系统上预设的以可编程硬件方式实现的计算算子的实际类型进行比较,判断所述计算系统上是否存在相应类型的计算算子,若否,则在所述未来时段T到来前增加所述计算系统上相应类型的以可编程硬件方式实现的计算算子的类型。
4.根据权利要求1所述的计算系统中调整计算算子类型分布的方法,其特征在于,所述根据所述计算系统上计算算子的预测需求量,在所述未来时段T到来前对所述计算系统上以可编程硬件方式实现的计算算子进行调整,具体包括:
根据所述计算系统上计算算子的预测需求量,确定所述计算系统上计算算子中达到或超过预设需求量阈值的计算算子;
将所述达到或超过预设需求量阈值的计算算子的预测需求量,确定为在所述未来时段T到来前所述计算系统上以可编程硬件方式实现的计算算子的需求量;
根据所述计算系统上以可编程硬件方式实现的计算算子的需求量,在所述未来时段T到来前调整所述计算系统上预设的以可编程硬件方式实现的计算算子的分布比例。
5.根据权利要求4所述的计算系统中调整计算算子类型分布的方法,其特征在于,所述根据所述计算系统上以可编程硬件方式实现的计算算子的需求量,在所述未来时段T到来前调整所述计算系统上预设的以可编程硬件方式实现的计算算子的分布比例,具体包括:
当所述计算系统上以可编程硬件方式实现的计算算子的需求量降低时,在所述未来时段T到来前减少相应类型的以可编程硬件方式实现的计算算子的分布比例;
当所述计算系统上以可编程硬件方式实现的计算算子的需求量升高时,在所述未来时段T到来前增加相应类型的以可编程硬件方式实现的计算算子的分布比例;
当所述计算系统上以可编程硬件方式实现的计算算子的需求量稳定在预设区间范围内时,所述计算系统上相应类型的以可编程硬件方式实现的计算算子的分布比例维持不变。
6.根据权利要求4所述的计算系统中调整计算算子类型分布的方法,其特征在于,所述根据所述计算系统上以可编程硬件方式实现的计算算子的需求量,在所述未来时段T到来前调整所述计算系统上预设的以可编程硬件方式实现的计算算子的分布比例,具体包括:
将所述计算系统上以可编程硬件方式实现的计算算子的需求量与所述计算系统上预设的以可编程硬件方式实现的计算算子的分布情况进行比较,若匹配度低于预先设定的指标,则在所述未来时段T到来前调整所述计算系统上相应类型的以可编程硬件方式实现的计算算子的分布比例。
7.根据权利要求1中所述的计算系统中调整计算算子类型分布的方法,其特征在于,所述根据所述计算算子的运算量数据记录,获得未来时段T对所述计算系统上计算算子的预测需求量,包括:
将所述计算算子的运算量数据记录输入到预设的计算算子需求预测模型,获得未来时段T对所述计算系统上计算算子的预测需求量,所述计算算子需求预测模型为根据预定时间段内的计算算子的运算量数据记录预测未来时段T针对所述计算算子的预测需求量的深度神经网络模型。
8.根据权利要求7中所述的计算系统中调整计算算子类型分布的方法,其特征在于,还包括:
获得所述预定时间段内的计算算子的运算量数据记录样本;
获得与所述预定时间段内的计算算子的运算量数据记录样本匹配的未来时段T针对所述计算算子的实际需求量样本;
利用所述预定时间段内的计算算子的运算量数据记录样本,以及与所述预定时间段内的计算算子的运算量数据记录样本匹配的所述未来时段T针对所述计算算子的实际需求量样本,训练所述深度神经网络模型,获得所述计算算子需求预测模型。
9.根据权利要求1所述的计算系统中调整计算算子类型分布的方法,其特征在于,所述获得计算系统实际数据处理中的计算算子的运算量数据记录,具体包括:
获得数据库中用于处理客户端的数据处理请求的所述计算系统中计算算子的运算量数据记录;
相应的,所述计算算子是数据库内所述计算系统上为数据处理任务所设置的所有专用计算程式。
10.根据权利要求1所述的计算系统中调整计算算子类型分布的方法,其特征在于,所述计算系统是由CPU模块和可编程硬件模块组成的用于处理数据库数据的异构硬件加速计算系统。
11.根据权利要求1所述的计算系统中调整计算算子类型分布的方法,其特征在于,所述计算算子的运算量数据记录包括数据处理过程中所述计算算子的占用比例数据和使用时间数据中的至少一种数据。
12.根据权利要求1所述的计算系统中调整计算算子类型分布的方法,其特征在于,所述计算算子的预测需求量为数据处理过程中所述计算算子的预测耗时时间。
13.一种计算系统中调整计算算子类型分布的装置,其特征在于,包括:监测单元、资源管理器单元以及可编程硬件管理单元;
所述监测单元用于,获得计算系统实际数据处理中的计算算子的运算量数据记录,所述计算算子用于完成数据处理任务;
所述资源管理器单元用于,根据所述计算算子的运算量数据记录,获得未来时段T对所述计算系统上计算算子的预测需求量;
所述可编程硬件管理单元用于,根据所述计算系统上计算算子的预测需求量,在所述未来时段T到来前对所述计算系统上以可编程硬件方式实现的计算算子进行调整,所述调整包括如下至少一项:所述可编程硬件方式实现的计算算子的类型、所述可编程硬件方式实现的计算算子的分布比例。
14.一种计算系统中调整计算算子类型分布的系统,其特征在于,包括:上述权利要求13所述的计算系统中调整计算算子类型分布的装置。
15.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储计算系统中调整计算算子类型分布的方法的程序,该设备通电并通过所述处理器运行该计算系统中调整计算算子类型分布的方法的程序后,执行下述步骤:
获得计算系统实际数据处理中的计算算子的运算量数据记录,所述计算算子用于完成数据处理任务;
根据所述计算算子的运算量数据记录,获得未来时段T对所述计算系统上计算算子的预测需求量;
根据所述计算系统上计算算子的预测需求量,在所述未来时段T到来前对所述计算系统上以可编程硬件方式实现的计算算子进行调整,所述调整包括如下至少一项:所述可编程硬件方式实现的计算算子的类型、所述可编程硬件方式实现的计算算子的分布比例。
16.一种存储设备,其特征在于,存储有计算系统中调整计算算子类型分布的方法的程序,该程序被处理器运行,执行下述步骤:
获得计算系统实际数据处理中的计算算子的运算量数据记录,所述计算算子用于完成数据处理任务;
根据所述计算算子的运算量数据记录,获得未来时段T对所述计算系统上计算算子的预测需求量;
根据所述计算系统上计算算子的预测需求量,在所述未来时段T到来前对所述计算系统上以可编程硬件方式实现的计算算子进行调整,所述调整包括如下至少一项:所述可编程硬件方式实现的计算算子的类型、所述可编程硬件方式实现的计算算子的分布比例。
17.一种计算系统中调整计算算子类型分布的方法,其特征在于,包括:
获得计算系统实际数据处理中的至少一部分类型的计算算子的运算量数据记录,所述计算算子用于完成数据处理任务;
根据所述计算算子的运算量数据记录,获得未来时段T对所述计算系统上计算算子的预测需求量;
根据所述计算系统上计算算子的预测需求量,在所述未来时段T到来前对所述计算系统上以硬件加速器方式实现的计算算子进行调整,所述调整包括如下至少一项:所述硬件加速器方式实现的计算算子的类型、所述硬件加速器方式实现的计算算子的分布比例。
CN201910189636.8A 2019-03-13 2019-03-13 计算系统中调整计算算子类型分布的方法、装置及系统 Active CN111694653B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910189636.8A CN111694653B (zh) 2019-03-13 2019-03-13 计算系统中调整计算算子类型分布的方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910189636.8A CN111694653B (zh) 2019-03-13 2019-03-13 计算系统中调整计算算子类型分布的方法、装置及系统

Publications (2)

Publication Number Publication Date
CN111694653A true CN111694653A (zh) 2020-09-22
CN111694653B CN111694653B (zh) 2025-02-21

Family

ID=72475658

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910189636.8A Active CN111694653B (zh) 2019-03-13 2019-03-13 计算系统中调整计算算子类型分布的方法、装置及系统

Country Status (1)

Country Link
CN (1) CN111694653B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112199196A (zh) * 2020-10-21 2021-01-08 上海交通大学 一种资源配置方法、介质及服务端
CN112631781A (zh) * 2020-12-29 2021-04-09 上海商汤智能科技有限公司 一种算子执行方法、装置、电子设备及存储介质
CN113064599A (zh) * 2021-04-06 2021-07-02 顶象科技有限公司 机器学习模型预测在线服务的部署方法和装置
CN114398095A (zh) * 2021-12-29 2022-04-26 浙江大华技术股份有限公司 算子的卸载及注册方法、装置、存储介质及电子装置
US11775584B1 (en) * 2019-04-26 2023-10-03 Amazon Technologies, Inc. Dynamically scaling query plan operations for query processing
CN117933496A (zh) * 2024-03-21 2024-04-26 深圳威尔视觉科技有限公司 算力需求预测方法、装置及计算机设备
CN119292790A (zh) * 2024-12-11 2025-01-10 深圳开鸿数字产业发展有限公司 脉动阵列重构方法、设备、存储介质及计算机程序产品
CN119576250A (zh) * 2025-02-08 2025-03-07 腾讯科技(深圳)有限公司 数据流写入控制方法、系统、装置、设备和可读存储介质
WO2025055752A1 (zh) * 2023-09-13 2025-03-20 中兴通讯股份有限公司 Ai处理器的加速方法、系统及芯片

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103118273A (zh) * 2012-12-12 2013-05-22 张力 一种安防视频硬编码芯片内存资源分配的预测方法
CN103390070A (zh) * 2012-05-07 2013-11-13 北京大学深圳研究生院 一种可重构算子阵列结构
CN105786808A (zh) * 2014-12-15 2016-07-20 阿里巴巴集团控股有限公司 一种用于分布式执行关系型计算指令的方法与设备
CN106506266A (zh) * 2016-11-01 2017-03-15 中国人民解放军91655部队 基于GPU、Hadoop/Spark混合计算框架的网络流量分析方法
CN106528171A (zh) * 2016-11-24 2017-03-22 郑州云海信息技术有限公司 一种异构计算平台子系统间的接口设计方法、装置及系统
EP3226186A1 (de) * 2016-03-31 2017-10-04 DextraData GmbH Kapazitätsanalyse- und -planungswerkzeug, insbesondere für eine informationstechnologie(-infrastruktur)
US20170308504A1 (en) * 2016-04-20 2017-10-26 International Business Machines Corporation System and method for hardware acceleration for operator parallelization with streams
CN107958297A (zh) * 2016-10-17 2018-04-24 华为技术有限公司 一种产品需求预测方法及产品需求预测装置
CN107980145A (zh) * 2015-06-29 2018-05-01 因斯布鲁克大学 量子处理设备和方法
US20180218038A1 (en) * 2017-01-30 2018-08-02 International Business Machines Corportation Database optimization based on forecasting hardware statistics using data mining techniques
CN108459905A (zh) * 2017-02-17 2018-08-28 华为技术有限公司 资源池容量规划方法及服务器

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103390070A (zh) * 2012-05-07 2013-11-13 北京大学深圳研究生院 一种可重构算子阵列结构
CN103118273A (zh) * 2012-12-12 2013-05-22 张力 一种安防视频硬编码芯片内存资源分配的预测方法
CN105786808A (zh) * 2014-12-15 2016-07-20 阿里巴巴集团控股有限公司 一种用于分布式执行关系型计算指令的方法与设备
CN107980145A (zh) * 2015-06-29 2018-05-01 因斯布鲁克大学 量子处理设备和方法
EP3226186A1 (de) * 2016-03-31 2017-10-04 DextraData GmbH Kapazitätsanalyse- und -planungswerkzeug, insbesondere für eine informationstechnologie(-infrastruktur)
US20170308504A1 (en) * 2016-04-20 2017-10-26 International Business Machines Corporation System and method for hardware acceleration for operator parallelization with streams
CN107958297A (zh) * 2016-10-17 2018-04-24 华为技术有限公司 一种产品需求预测方法及产品需求预测装置
CN106506266A (zh) * 2016-11-01 2017-03-15 中国人民解放军91655部队 基于GPU、Hadoop/Spark混合计算框架的网络流量分析方法
CN106528171A (zh) * 2016-11-24 2017-03-22 郑州云海信息技术有限公司 一种异构计算平台子系统间的接口设计方法、装置及系统
US20180218038A1 (en) * 2017-01-30 2018-08-02 International Business Machines Corportation Database optimization based on forecasting hardware statistics using data mining techniques
CN108459905A (zh) * 2017-02-17 2018-08-28 华为技术有限公司 资源池容量规划方法及服务器

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
STEFAN WERNER等: "Automated composition and execution of hardware-accelerated operator graphs", 2015 10TH INTERNATIONAL SYMPOSIUM ON RECONFIGURABLE COMMUNICATION-CENTRIC SYSTEMS-ON-CHIP (RECOSOC), 3 September 2015 (2015-09-03), pages 1 - 8 *
吕小巧: "一种基于FPGA的改进遗传算法硬件设计研究", 中国优秀硕士学位论文全文数据库信息科技辑, 15 August 2010 (2010-08-15), pages 140 - 67 *
陆俊;李俊;李宁;刘松;: "资源管理系统中用户资源需求量预测及其调度算法", 电子技术, no. 10, 25 October 2009 (2009-10-25) *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11775584B1 (en) * 2019-04-26 2023-10-03 Amazon Technologies, Inc. Dynamically scaling query plan operations for query processing
CN112199196A (zh) * 2020-10-21 2021-01-08 上海交通大学 一种资源配置方法、介质及服务端
CN112631781A (zh) * 2020-12-29 2021-04-09 上海商汤智能科技有限公司 一种算子执行方法、装置、电子设备及存储介质
CN113064599A (zh) * 2021-04-06 2021-07-02 顶象科技有限公司 机器学习模型预测在线服务的部署方法和装置
CN114398095A (zh) * 2021-12-29 2022-04-26 浙江大华技术股份有限公司 算子的卸载及注册方法、装置、存储介质及电子装置
CN114398095B (zh) * 2021-12-29 2025-02-14 浙江大华技术股份有限公司 算子的卸载及注册方法、装置、存储介质及电子装置
WO2025055752A1 (zh) * 2023-09-13 2025-03-20 中兴通讯股份有限公司 Ai处理器的加速方法、系统及芯片
CN117933496A (zh) * 2024-03-21 2024-04-26 深圳威尔视觉科技有限公司 算力需求预测方法、装置及计算机设备
CN117933496B (zh) * 2024-03-21 2024-06-07 深圳威尔视觉科技有限公司 算力需求预测方法、装置及计算机设备
CN119292790A (zh) * 2024-12-11 2025-01-10 深圳开鸿数字产业发展有限公司 脉动阵列重构方法、设备、存储介质及计算机程序产品
CN119292790B (zh) * 2024-12-11 2025-07-04 深圳开鸿数字产业发展有限公司 脉动阵列重构方法、设备、存储介质及计算机程序产品
CN119576250A (zh) * 2025-02-08 2025-03-07 腾讯科技(深圳)有限公司 数据流写入控制方法、系统、装置、设备和可读存储介质

Also Published As

Publication number Publication date
CN111694653B (zh) 2025-02-21

Similar Documents

Publication Publication Date Title
CN111694653A (zh) 计算系统中调整计算算子类型分布的方法、装置及系统
JP7511477B2 (ja) データクエリ方法、装置、およびデバイス
CN104298550B (zh) 一种面向Hadoop的动态调度方法
US20180144251A1 (en) Server and cloud computing resource optimization method thereof for cloud big data computing architecture
CN104050042B (zh) Etl作业的资源分配方法及装置
US9870269B1 (en) Job allocation in a clustered environment
CN103701635B (zh) 一种在线配置Hadoop参数的方法和装置
Arkian et al. Model-based stream processing auto-scaling in geo-distributed environments
CN112835698A (zh) 一种基于异构集群的请求分类处理的动态负载均衡方法
CN107861796B (zh) 一种支持云数据中心能耗优化的虚拟机调度方法
CN108595254B (zh) 一种查询调度方法
CN106101196B (zh) 一种基于概率模型的云渲染平台任务调度系统
WO2025015849A1 (zh) 网络数据分析模型调度方法、装置和计算机设备
JP2024543115A (ja) 集積回路の自動並列シミュレーション方法及びシミュレーション装置
CN103713935A (zh) 一种在线管理Hadoop集群资源的方法和装置
CN104753977A (zh) 基于模糊聚类的地震处理解释基础设施云资源调度方法
Chen et al. Cost-effective resource provisioning for spark workloads
CN104077188A (zh) 一种用于任务调度的方法和装置
CN117666947A (zh) 一种数据存储方法、装置、电子设备及计算机可读介质
CN106502790A (zh) 一种基于数据分布的任务分配优化方法
CN116166443A (zh) 一种游戏任务系统的负载优化方法及系统
CN110069319B (zh) 一种面向朵云资源管理的多目标虚拟机调度方法及系统
CN119781990A (zh) 异构算力调度方法、装置、设备、存储介质及产品
Al Jawarneh et al. SpatialSSJP: QoS-aware adaptive approximate stream-static spatial join processor
Kim et al. Towards the design of a system and a workflow model for medical big data processing in the hybrid cloud

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