CN116795647A - 一种数据库异构资源管理与调度方法、装置、设备及介质 - Google Patents
一种数据库异构资源管理与调度方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116795647A CN116795647A CN202310777226.1A CN202310777226A CN116795647A CN 116795647 A CN116795647 A CN 116795647A CN 202310777226 A CN202310777226 A CN 202310777226A CN 116795647 A CN116795647 A CN 116795647A
- Authority
- CN
- China
- Prior art keywords
- acceleration
- kernel
- target
- data
- communication bandwidth
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000001133 acceleration Effects 0.000 claims abstract description 194
- 238000004891 communication Methods 0.000 claims abstract description 88
- 238000013500 data storage Methods 0.000 claims abstract description 37
- 238000012544 monitoring process Methods 0.000 claims abstract description 23
- 238000007781 pre-processing Methods 0.000 claims abstract description 17
- 230000015654 memory Effects 0.000 claims description 58
- 230000006870 function Effects 0.000 claims description 21
- 238000007726 management method Methods 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 16
- 238000004458 analytical method Methods 0.000 claims description 14
- 230000006872 improvement Effects 0.000 claims description 10
- 239000002699 waste material Substances 0.000 abstract description 8
- 230000008569 process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 7
- 238000000354 decomposition reaction Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据库异构资源管理与调度方法、装置、设备及介质,涉及数据库及异构计算技术领域,包括:接收用户发送的查询指令,并对查询指令执行预设预处理操作,以得到目标算子;读取数据加速卡监测到的空闲通信带宽,并基于目标算子以及空闲通信带宽执行加速内核部署操作,以得到目标加速内核;向目标加速内核发送数据存储地址,以便目标加速内核基于数据存储地址读取待运算数据并进行运算;接收得到运算结果后目标加速内核返回的完成信号,读取运算结果。本申请在调取加速内核时,通过监测数据加速卡上的空闲通信带宽自适应部署相应数量的加速内核,以最大化利用通信带宽,提高数据交换效率,减少了异构资源浪费。
Description
技术领域
本发明涉及数据库及异构计算技术领域,特别涉及一种数据库异构资源管理与调度方法、装置、设备及介质。
背景技术
数据库作为一种数据记录存储的集成系统,采用多种不同的模型来组织数据,其以行、列、表等不同形式存储数据。数据库支持数据的全方位存储、搜索和解析,现已被广泛应用于商业、工业、智能家居和医疗保健等领域。随着人工智能时代的到来,大数据与信息化进程不断推进,数据库的装机容量呈现指数上涨,对数据库数据查询的速度需求与日俱增。
现阶段的数据库大多通过服务器搭载的CPU(Central Processing Unit/Processor,中央处理器)实现用户访问数据的查询处理。然而CPU处理计算密集型任务时会对进程、内存造成巨大负担,影响服务器其他进程的任务调度与处理速度,因此使用FPGA(Field-Programmable Gate Array,现场可编程门阵列)、GPU(Graphics ProcessingUnit,图形处理器)作为协处理器分担数据库计算密集型任务成为新兴技术方向。CPU+X异构体系对异构资源的调度和加速kernel(操作系统内核)的部署通常通过监测加速卡的资源需求和kernel空闲状态来确定,但常常忽略通信带宽对并行加速kernel的限制,造成多个并行加速kernel因为通信带宽限制只能顺序执行,既不能实现并行加速,还浪费了额外的异构资源。
发明内容
有鉴于此,本发明的目的在于提供一种数据库异构资源管理与调度方法、装置、设备和介质,能够最大化利用通信带宽,提高数据交换效率,减少了异构资源浪费。其具体方案如下:
第一方面,本申请公开了一种数据库异构资源管理与调度方法,应用于数据库服务器,包括:
接收用户发送的查询指令,并对所述查询指令执行预设预处理操作,以得到目标算子;
读取数据加速卡监测到的空闲通信带宽,并基于所述目标算子以及所述空闲通信带宽执行加速内核部署操作,以得到目标加速内核;
向所述目标加速内核发送数据存储地址,以便所述目标加速内核基于所述数据存储地址读取待运算数据并进行运算;
接收得到运算结果后目标加速内核返回的完成信号,并读取所述运算结果。
可选的,所述对所述查询指令执行预设预处理操作,以得到目标算子,包括:
将所述查询指令分解为目标数量个算子;
通过预设质量提升算法处理每个所述算子,以得到对应的所述目标算子;其中,所述预设质量提升算法包含非相关算法。
可选的,所述通过预设质量提升算法处理每个所述算子,以得到对应的所述目标算子之后,还包括:
通过预设指令解析操作解析所述目标算子,以便将所述目标算子翻译为目标代码;其中,所述目标代码为中央处理器可处理的底层代码。
可选的,所述读取数据加速卡监测到的空闲通信带宽之前,还包括:
通过所述数据加速卡上的带宽与资源监测区域实时监测所述数据加速卡异构资源的空闲信息,以得到所述空闲通信带宽。
可选的,所述读取数据加速卡监测到的空闲通信带宽之前,还包括:
通过直接存储器访问将与所述查询指令对应的所述待运算数据从主机内存传输至片上存储器,以得到所述待运算数据对应的所述数据存储地址。
可选的,所述基于所述目标算子以及所述空闲通信带宽执行加速内核部署操作,以得到目标加速内核,包括:
基于所述目标算子调取对应的API函数,并基于所述空闲通信带宽获取当前数据总线对应的带宽利用率;
基于所述API函数、所述带宽利用率执行加速内核部署操作,以得到所述目标加速内核。
可选的,所述基于所述API函数、所述带宽利用率执行加速内核部署操作,以得到所述目标加速内核,包括:
基于所述API函数确定当前加速内核集合;
基于所述带宽利用率从所述当前加速内核集合匹配满足当前需求的待部署加速内核集合;
对所述待部署加速内核集合执行加速内核部署操作,以得到对应的所述目标加速内核。
第二方面,本申请公开了一种数据库异构资源管理与调度装置,应用于数据库服务器,包括:
算子获取模块,用于接收用户发送的查询指令,并对所述查询指令执行预设预处理操作,以得到目标算子;
加速内核部署模块,用于读取数据加速卡监测到的空闲通信带宽,并基于所述目标算子以及所述空闲通信带宽执行加速内核部署操作,以得到目标加速内核;
数据运算模块,用于向所述目标加速内核发送数据存储地址,以便所述目标加速内核基于所述数据存储地址读取待运算数据并进行运算;
运算结果读取模块,用于接收得到运算结果后目标加速内核返回的完成信号,并读取所述运算结果。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如前述公开的数据库异构资源管理与调度方法的步骤。
第四方面,本申请公开了一种计算机可读介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如前述公开的数据库异构资源管理与调度方法。
可见,本申请提供了一种数据库异构资源管理与调度方法,包括:接收用户发送的查询指令,并对所述查询指令执行预设预处理操作,以得到目标算子;读取数据加速卡监测到的空闲通信带宽,并基于所述目标算子以及所述空闲通信带宽执行加速内核部署操作,以得到目标加速内核;向所述目标加速内核发送数据存储地址,以便所述目标加速内核基于所述数据存储地址读取待运算数据并进行运算;接收得到运算结果后目标加速内核返回的完成信号,并读取所述运算结果。由此可见,本申请在调取加速内核时,通过监测数据加速卡上的空闲通信带宽自适应部署相应数量的加速内核,以最大化利用通信带宽,提高数据交换效率,减少了异构资源浪费。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种数据库异构资源管理与调度方法流程图;
图2为本申请公开的数据库异构资源管理方法整体架构图;
图3为本申请公开的基于带宽监测的数据库异构资源管理与调度方法实现示意图;
图4为本申请公开的一种具体的数据库异构资源管理与调度方法流程图;
图5为本申请公开的通信带宽分配示意图;
图6为本申请提供的数据库异构资源管理与调度装置结构示意图;
图7为本申请提供的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,数据库大多通过服务器搭载的CPU实现用户访问数据的查询处理。然而CPU处理计算密集型任务时会对进程、内存造成巨大负担,影响服务器其他进程的任务调度与处理速度,因此使用FPGA、GPU作为协处理器分担数据库计算密集型任务成为新兴技术方向。CPU+X异构体系对异构资源的调度和加速kernel的部署通常通过监测加速卡的资源需求和kernel空闲状态来确定,但常常忽略通信带宽对并行加速kernel的限制,造成多个并行加速kernel因为通信带宽限制只能顺序执行,既不能实现并行加速,还浪费了额外的异构资源。为此,本申请提供了一种数据库异构资源管理与调度方法,能够最大化利用通信带宽,提高数据交换效率,减少了异构资源浪费。
本发明实施例公开了一种数据库异构资源管理与调度方法,参见图1所示,应用于数据库服务器,该方法包括:
步骤S11:接收用户发送的查询指令,并对所述查询指令执行预设预处理操作,以得到目标算子。
本实施例中,接收用户发送的查询指令,并对所述查询指令执行预设预处理操作,以得到目标算子。具体的,将所述查询指令分解为目标数量个算子;通过预设质量提升算法处理每个所述算子,以得到对应的所述目标算子;其中,所述预设质量提升算法包含非相关算法。可以理解的是,如图2所示,数据库异构资源管理方法主要包含用户应用层、指令解析层、加速接口层、任务管理层、设备驱动层和查询加速层。用户应用层为数据库服务器提供数据库管理应用,同时用户在应用层为数据库行为设定指令,以便接收应用层发送的查询指令;指令解析层中包含指令解析、指令分解、指令优化;加速接口层包含排序API(Application Program Interface,应用程序接口)、连接API、聚合API以及过滤API;任务管理层包含资源管理、数据传输以及任务调度;设备驱动层包含Xilinx Runtime Library、XDMA以及PCIE(PCI-Express,总线和接口标准);查询加速层包含带宽与资源监测、数据加载、Sort kernel、Join kernel、Aggregation kernel、Filter kernel。
接收用户发送的查询指令后,首先通过指令解析层的指令分解将原始的查询指令分解为若干个算子,这些算子协同完成该条指令功能;然后通过指令优化将分解出的算子通过算法(即预设质量提升算法,例如非相干并行化、算法优化等)进行优化,以得到目标算子,从而最大化的提高指令的运行效率和加速效率。
可以理解的是,设备驱动层包括数据加速卡正常工作所需的设备驱动,以及数据库CPU与数据加速卡之间数据传输所需的通信协议与驱动,例如XRT,PCIE、XDMA等。
步骤S12:读取数据加速卡监测到的空闲通信带宽,并基于所述目标算子以及所述空闲通信带宽执行加速内核部署操作,以得到目标加速内核。
本实施例中,接收用户发送的查询指令,并对所述查询指令执行预设预处理操作,以得到目标算子之后,读取数据加速卡监测到的空闲通信带宽,并基于所述目标算子以及所述空闲通信带宽执行加速内核部署操作,以得到目标加速内核。具体的,基于所述目标算子调取对应的API函数,并基于所述空闲通信带宽获取当前数据总线对应的带宽利用率;基于所述API函数、所述带宽利用率执行加速内核部署操作,以得到所述目标加速内核。其中,所述基于所述API函数、所述带宽利用率执行加速内核部署操作,以得到所述目标加速内核,包括:基于所述API函数确定当前加速内核集合;基于所述带宽利用率从所述当前加速内核集合匹配满足当前需求的待部署加速内核集合;对所述待部署加速内核集合执行加速内核部署操作,以得到对应的所述目标加速内核。
可以理解的是,加速接口层包含相应查询操作的API函数,根据指令所需算子调取加速接口层的相应API,以部署加速kernel,用户通过对API函数的调用完成数据加速卡逻辑功能的动态重构。任务管理层中任务调度对算子运行、数据加密、压缩与传输等进程进行综合性调度管理,保证指令执行和数据处理过程的有序进行;资源管理根据查询加速层的带宽与资源监测结果,对异构资源进行合理的分配,根据带宽利用率合理部署加速kernel,最大化的利用通信带宽和异构资源;数据传输保证数据在CPU和加速卡之间的数据传输。
步骤S13:向所述目标加速内核发送数据存储地址,以便所述目标加速内核基于所述数据存储地址读取待运算数据并进行运算。
本实施例中,基于所述目标算子以及所述空闲通信带宽执行加速内核部署操作,以得到目标加速内核之后,向所述目标加速内核发送数据存储地址,以便所述目标加速内核基于所述数据存储地址读取待运算数据并进行运算。可以理解的是,如图3所示,基于带宽监测的数据库异构资源管理与调度方法具体实现过程如下:数据库服务器CPU在接收到查询操作指令后,对指令进行解析和优化;数据库CPU通过DMA(Direct Memory Access,直接存储器访问)将待运算数据从主机内存传输到片上存储器;数据库CPU读取此时数据加速卡监测到的空闲通信带宽,并根据查询操作对应kernel的所需通信带宽完成协处理器加速kernel的动态部署;完成kernel部署后,CPU向kernel发送待运算数据在片上存储器的存储地址,并启动kernel;kernel启动后,从相应存储地址中读取待运算数据,并进行运算,之后将运算结果重新写入存储器,并返回完成信号。
步骤S14:接收得到运算结果后目标加速内核返回的完成信号,并读取所述运算结果。
本实施例中,向所述目标加速内核发送数据存储地址,以便所述目标加速内核基于所述数据存储地址读取待运算数据并进行运算之后,接收得到运算结果后目标加速内核返回的完成信号,并读取所述运算结果。可以理解的是,在数据库CPU接收到完成信号后,从相应的存储器地址中将运算结果读回主机内存,完成查询操作。
本发明的数据库服务器架构为CPU+X(FPGA、GPU、DPU等)异构结构,CPU负责数据库的整体任务调度、低密集型计算任务、逻辑管理进程等控制性任务,计算密集型的任务则交由X完成,以充分利用CPU和X的优点,提高数据库性能。本发明通过监测数据加速卡上协处理器与片上存储器的带宽利用率,在CPU调取加速kernel时,根据当前带宽空闲与kernel所需带宽,自适应部署相应数量的加速kernel,以最大化利用通信带宽,提高数据交换效率,节省由于通信带宽溢出所造成的异构资源浪费。
可见,本申请提供了一种数据库异构资源管理与调度方法,包括:接收用户发送的查询指令,并对所述查询指令执行预设预处理操作,以得到目标算子;读取数据加速卡监测到的空闲通信带宽,并基于所述目标算子以及所述空闲通信带宽执行加速内核部署操作,以得到目标加速内核;向所述目标加速内核发送数据存储地址,以便所述目标加速内核基于所述数据存储地址读取待运算数据并进行运算;接收得到运算结果后目标加速内核返回的完成信号,并读取所述运算结果。由此可见,本申请在调取加速内核时,通过监测数据加速卡上的空闲通信带宽自适应部署相应数量的加速内核,以最大化利用通信带宽,提高数据交换效率,减少了异构资源浪费。
参见图4所示,本发明实施例公开了一种数据库异构资源管理与调度方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。
步骤S21:接收用户发送的查询指令,并对所述查询指令执行预设预处理操作,以得到目标算子。
步骤S22:通过预设指令解析操作解析所述目标算子,以便将所述目标算子翻译为目标代码。
本实施例中,接收用户发送的查询指令,并对所述查询指令执行预设预处理操作,以得到目标算子之后,通过预设指令解析操作解析所述目标算子,以便将所述目标算子翻译为目标代码;所述目标代码为中央处理器可处理的底层代码。可以理解的是,经过指令解析层的指令分解与指令优化操作后,通过指令解析层的指令解析对目标算子进行解析,以便将经过指令分解与指令优化的查询指令翻译为CPU可理解的底层代码。
步骤S23:通过所述数据加速卡上的带宽与资源监测区域实时监测所述数据加速卡异构资源的空闲信息,以得到所述空闲通信带宽。
本实施例中,将所述目标算子翻译为目标代码之后,通过所述数据加速卡上的带宽与资源监测区域实时监测所述数据加速卡异构资源的空闲信息,以得到所述空闲通信带宽。可以理解的是,查询加速层即为数据加速卡,包含带宽与资源监测、数据加载和加速kernel。数据加载模块接收由数据库CPU发送的待运算数据,带宽与资源监测模块监测数据加速卡异构资源的空闲情况。
步骤S24:通过直接存储器访问将与所述查询指令对应的所述待运算数据从主机内存传输至片上存储器,以得到所述待运算数据对应的所述数据存储地址。
本实施例中,得到所述空闲通信带宽之后,通过直接存储器访问将与所述查询指令对应的所述待运算数据从主机内存传输至片上存储器,以得到所述待运算数据对应的所述数据存储地址。可以理解的是,数据库CPU将待运算数据传输到片上存储器后,会分析存储器当前空闲带宽,并根据加速kernel所需通信带宽动态部署,最大化利用通信带宽。
步骤S25:读取数据加速卡监测到的空闲通信带宽,并基于所述目标算子以及所述空闲通信带宽执行加速内核部署操作,以得到目标加速内核。
本实施例中,在部署kernel时反馈当前数据总线的带宽利用率,根据带宽利用率将加速kernel与API接口层的函数相对应,根据用户应用层调取的不同API函数部署相应的加速kernel。具体的,实时监测数据加速卡上协处理器异构资源的使用情况和数据总线带宽利用率,在CPU执行计算密集型任务时,通过调取相应的操作算子API在数据加速卡上进行kernel的动态部署,任务管理层通过带宽的空闲情况以及当前部署kernel的所需带宽,综合异构加速卡上存储器的空闲情况,动态部署加速kernel数量,以充分利用片上存储器的通信带宽,节省不必要的异构资源。
在一种具体实施方式中,数据库CPU将待运算数据传输到片上存储器后分析存储器当前空闲带宽,并根据加速kernel所需通信带宽动态部署,最大化利用通信带宽,设存储器1空闲带宽为B1,kernel所需带宽为B1,因此仅部署一个kernel与存储器1进行通信,存储器3空闲带宽为2B3/3,kernel所需带宽为B3/3,因此可部署两个kernel与存储器3通信。若超出通信带宽,如部署3个kernel与存储器3进行通信,由于此时通信带宽已达最大值,3个kernel同时只能运行其中两个,第三个则需要等待前两个kernel运行完成并释放带宽后才能继续运行,这样没有达到理想的3个加速kernel并行运行的目的,还浪费了额外的异构资源来部署不必要的kernel。
例如图5所示,数据加速卡共有三块片上存储器,如DDR4(新一代的内存规格)或HBM等,其总通信带宽分别为B1,B2,B3,此时若数据库CPU需执行排序操作,排序kernel所需通信带宽以存储器带宽量化为B1,B2/2,B3/3,片上存储器空闲通信带宽分别为B1,B2/2,2B3/3。存储器1空闲带宽为B1,kernel所需带宽为B1,因此部署一个kernel与存储器1进行通信;存储器2空闲带宽为B2/2,kernel所需带宽为B2/2,因此部署一个kernel与存储器2通信;存储器3空闲带宽为2B3/3,kernel所需带宽为B3/3,因此可部署两个kernel与存储器3通信。此时,若超出通信带宽,如部署3个kernel与存储器3进行通信,由于通信带宽已达最大值,kernel 1、kernel 2和kernel 5同时只能运行其中两个,第三个则需要等待kernel 1或kernel 2运行完成并释放带宽后才能继续运行,无法达到理想的3个加速kernel并行运行的目的,还浪费了额外的异构资源。
步骤S26:向所述目标加速内核发送数据存储地址,以便所述目标加速内核基于所述数据存储地址读取待运算数据并进行运算。
步骤S27:接收得到运算结果后目标加速内核返回的完成信号,并读取所述运算结果。
关于上述步骤S21、S26、S27的具体内容可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本申请实施例通过接收用户发送的查询指令,并对所述查询指令执行预设预处理操作,以得到目标算子;通过预设指令解析操作解析所述目标算子,以便将所述目标算子翻译为目标代码;通过所述数据加速卡上的带宽与资源监测区域实时监测所述数据加速卡异构资源的空闲信息,以得到所述空闲通信带宽;通过直接存储器访问将与所述查询指令对应的所述待运算数据从主机内存传输至片上存储器,以得到所述待运算数据对应的所述数据存储地址;读取数据加速卡监测到的空闲通信带宽,并基于所述目标算子以及所述空闲通信带宽执行加速内核部署操作,以得到目标加速内核;向所述目标加速内核发送数据存储地址,以便所述目标加速内核基于所述数据存储地址读取待运算数据并进行运算;接收得到运算结果后目标加速内核返回的完成信号,并读取所述运算结果,最大化利用通信带宽,提高数据交换效率,减少了异构资源浪费。
参见图6所示,本申请实施例还相应公开了一种数据库异构资源管理与调度装置,应用于数据库服务器,包括:
算子获取模块11,用于接收用户发送的查询指令,并对所述查询指令执行预设预处理操作,以得到目标算子;
加速内核部署模块12,用于读取数据加速卡监测到的空闲通信带宽,并基于所述目标算子以及所述空闲通信带宽执行加速内核部署操作,以得到目标加速内核;
数据运算模块13,用于向所述目标加速内核发送数据存储地址,以便所述目标加速内核基于所述数据存储地址读取待运算数据并进行运算;
运算结果读取模块14,用于接收得到运算结果后目标加速内核返回的完成信号,并读取所述运算结果。
可见,本申请包括:接收用户发送的查询指令,并对所述查询指令执行预设预处理操作,以得到目标算子;读取数据加速卡监测到的空闲通信带宽,并基于所述目标算子以及所述空闲通信带宽执行加速内核部署操作,以得到目标加速内核;向所述目标加速内核发送数据存储地址,以便所述目标加速内核基于所述数据存储地址读取待运算数据并进行运算;接收得到运算结果后目标加速内核返回的完成信号,并读取所述运算结果。由此可见,本申请在调取加速内核时,通过监测数据加速卡上的空闲通信带宽自适应部署相应数量的加速内核,以最大化利用通信带宽,提高数据交换效率,减少了异构资源浪费。
在一些具体实施例中,所述算子获取模块11,具体包括:
指令接收单元,用于接收用户发送的查询指令;
指令分解单元,用于将所述查询指令分解为目标数量个算子;
算子处理单元,用于通过预设质量提升算法处理每个所述算子,以得到对应的所述目标算子;其中,所述预设质量提升算法包含非相关算法;
指令解析单元,用于通过预设指令解析操作解析所述目标算子,以便将所述目标算子翻译为目标代码;其中,所述目标代码为中央处理器可处理的底层代码。
在一些具体实施例中,所述加速内核部署模块12,具体包括:
空闲通信带宽获取单元,用于通过所述数据加速卡上的带宽与资源监测区域实时监测所述数据加速卡异构资源的空闲信息,以得到所述空闲通信带宽;
数据存储地址获取单元,用于通过直接存储器访问将与所述查询指令对应的所述待运算数据从主机内存传输至片上存储器,以得到所述待运算数据对应的所述数据存储地址;
空闲通信带宽读取单元,用于读取数据加速卡监测到的空闲通信带宽;
API函数调取单元,用于基于所述目标算子调取对应的API函数;
带宽利用率获取单元,用于基于所述空闲通信带宽获取当前数据总线对应的带宽利用率;
当前加速内核集合确定单元,用于基于所述API函数确定当前加速内核集合;
待部署加速内核集合确定单元,用于基于所述带宽利用率从所述当前加速内核集合匹配满足当前需求的待部署加速内核集合;
目标加速内核获取单元,用于对所述待部署加速内核集合执行加速内核部署操作,以得到对应的所述目标加速内核。
在一些具体实施例中,所述数据运算模块13,具体包括:
数据运算单元,用于向所述目标加速内核发送数据存储地址,以便所述目标加速内核基于所述数据存储地址读取待运算数据并进行运算。
在一些具体实施例中,所述运算结果读取模块14,具体包括:
运算结果读取单元,用于接收得到运算结果后目标加速内核返回的完成信号,并读取所述运算结果。
进一步的,本申请实施例还提供了一种电子设备。图7是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图7为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的数据库异构资源管理与调度方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的数据库异构资源管理与调度方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请实施例还公开了一种介质,所述介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的数据库异构资源管理与调度方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种数据库异构资源管理与调度方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种数据库异构资源管理与调度方法,其特征在于,应用于数据库服务器,包括:
接收用户发送的查询指令,并对所述查询指令执行预设预处理操作,以得到目标算子;
读取数据加速卡监测到的空闲通信带宽,并基于所述目标算子以及所述空闲通信带宽执行加速内核部署操作,以得到目标加速内核;
向所述目标加速内核发送数据存储地址,以便所述目标加速内核基于所述数据存储地址读取待运算数据并进行运算;
接收得到运算结果后目标加速内核返回的完成信号,并读取所述运算结果。
2.根据权利要求1所述的数据库异构资源管理与调度方法,其特征在于,所述对所述查询指令执行预设预处理操作,以得到目标算子,包括:
将所述查询指令分解为目标数量个算子;
通过预设质量提升算法处理每个所述算子,以得到对应的所述目标算子;其中,所述预设质量提升算法包含非相关算法。
3.根据权利要求2所述的数据库异构资源管理与调度方法,其特征在于,所述通过预设质量提升算法处理每个所述算子,以得到对应的所述目标算子之后,还包括:
通过预设指令解析操作解析所述目标算子,以便将所述目标算子翻译为目标代码;其中,所述目标代码为中央处理器可处理的底层代码。
4.根据权利要求1所述的数据库异构资源管理与调度方法,其特征在于,所述读取数据加速卡监测到的空闲通信带宽之前,还包括:
通过所述数据加速卡上的带宽与资源监测区域实时监测所述数据加速卡异构资源的空闲信息,以得到所述空闲通信带宽。
5.根据权利要求1所述的数据库异构资源管理与调度方法,其特征在于,所述读取数据加速卡监测到的空闲通信带宽之前,还包括:
通过直接存储器访问将与所述查询指令对应的所述待运算数据从主机内存传输至片上存储器,以得到所述待运算数据对应的所述数据存储地址。
6.根据权利要求1至5任一项所述的数据库异构资源管理与调度方法,其特征在于,所述基于所述目标算子以及所述空闲通信带宽执行加速内核部署操作,以得到目标加速内核,包括:
基于所述目标算子调取对应的API函数,并基于所述空闲通信带宽获取当前数据总线对应的带宽利用率;
基于所述API函数、所述带宽利用率执行加速内核部署操作,以得到所述目标加速内核。
7.根据权利要求6所述的数据库异构资源管理与调度方法,其特征在于,所述基于所述API函数、所述带宽利用率执行加速内核部署操作,以得到所述目标加速内核,包括:
基于所述API函数确定当前加速内核集合;
基于所述带宽利用率从所述当前加速内核集合匹配满足当前需求的待部署加速内核集合;
对所述待部署加速内核集合执行加速内核部署操作,以得到对应的所述目标加速内核。
8.一种数据库异构资源管理与调度装置,其特征在于,应用于数据库服务器,包括:
算子获取模块,用于接收用户发送的查询指令,并对所述查询指令执行预设预处理操作,以得到目标算子;
加速内核部署模块,用于读取数据加速卡监测到的空闲通信带宽,并基于所述目标算子以及所述空闲通信带宽执行加速内核部署操作,以得到目标加速内核;
数据运算模块,用于向所述目标加速内核发送数据存储地址,以便所述目标加速内核基于所述数据存储地址读取待运算数据并进行运算;
运算结果读取模块,用于接收得到运算结果后目标加速内核返回的完成信号,并读取所述运算结果。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的数据库异构资源管理与调度方法的步骤。
10.一种计算机可读介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的数据库异构资源管理与调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310777226.1A CN116795647A (zh) | 2023-06-28 | 2023-06-28 | 一种数据库异构资源管理与调度方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310777226.1A CN116795647A (zh) | 2023-06-28 | 2023-06-28 | 一种数据库异构资源管理与调度方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116795647A true CN116795647A (zh) | 2023-09-22 |
Family
ID=88047855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310777226.1A Pending CN116795647A (zh) | 2023-06-28 | 2023-06-28 | 一种数据库异构资源管理与调度方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116795647A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117331945A (zh) * | 2023-10-31 | 2024-01-02 | 中科驭数(北京)科技有限公司 | 数据处理方法、装置、计算机存储介质及加速卡 |
CN117331970A (zh) * | 2023-10-31 | 2024-01-02 | 中科驭数(北京)科技有限公司 | 数据查询方法、装置、计算机存储介质及加速卡 |
CN118377750A (zh) * | 2024-06-25 | 2024-07-23 | 山东浪潮科学研究院有限公司 | 一种基于fpga的数据库异构加速内核配置系统 |
-
2023
- 2023-06-28 CN CN202310777226.1A patent/CN116795647A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117331945A (zh) * | 2023-10-31 | 2024-01-02 | 中科驭数(北京)科技有限公司 | 数据处理方法、装置、计算机存储介质及加速卡 |
CN117331970A (zh) * | 2023-10-31 | 2024-01-02 | 中科驭数(北京)科技有限公司 | 数据查询方法、装置、计算机存储介质及加速卡 |
CN118377750A (zh) * | 2024-06-25 | 2024-07-23 | 山东浪潮科学研究院有限公司 | 一种基于fpga的数据库异构加速内核配置系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10831562B2 (en) | Method and system for operating a data center by reducing an amount of data to be processed | |
CN116795647A (zh) | 一种数据库异构资源管理与调度方法、装置、设备及介质 | |
CN112035238B (zh) | 任务调度处理方法、装置、集群系统及可读存储介质 | |
CN111258744A (zh) | 一种基于异构计算的任务处理方法及软硬件框架系统 | |
CN112738060B (zh) | 微服务数据的处理方法、装置、微服务处理平台及介质 | |
CN111679911B (zh) | 云环境中gpu卡的管理方法、装置、设备及介质 | |
EP4361808A1 (en) | Resource scheduling method and device and computing node | |
CN115756822A (zh) | 高性能计算应用性能调优的方法及系统 | |
CN108563509A (zh) | 数据查询实现方法、装置、介质及电子设备 | |
CN114912618A (zh) | 一种量子计算任务调度方法、装置及量子计算机操作系统 | |
CN110442446B (zh) | 实时处理高速数字信号数据流的方法 | |
CN111400034B (zh) | 一种面向多核处理器的波形资源分配方法 | |
CN116361120B (zh) | 一种数据库异构资源管理与调度方法、装置、设备及介质 | |
CN113094395A (zh) | 数据查询方法、计算机设备和存储介质 | |
CN114466088B (zh) | 扫地机器人的数据传输方法、装置、存储介质及终端 | |
CN111190731A (zh) | 基于权重的集群任务调度系统 | |
CN111190607B (zh) | 任务插件处理方法和装置、任务调度服务器及存储介质 | |
CN116383240A (zh) | 基于fpga多数据库加速查询方法、装置、设备及介质 | |
CN115712524A (zh) | 数据恢复方法及装置 | |
CN115829826A (zh) | 模型存储优化方法及电子设备 | |
CN115167985A (zh) | 一种虚拟化的算力提供方法及系统 | |
CN112540858A (zh) | 任务处理方法、服务器、客户端及系统 | |
CN115292053B (zh) | 移动端cnn的cpu、gpu、npu统一调度方法 | |
CN116032928B (zh) | 数据协同计算方法、装置、系统、电子装置和存储介质 | |
CN117435367B (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 |