一种基于GPU的大数据快速检索系统及其使用方法与流程

文档序号:19418673发布日期:2019-12-14 01:11阅读:413来源:国知局
一种基于GPU的大数据快速检索系统及其使用方法与流程

本发明涉及数据检索技术领域,尤其涉及了一种基于gpu大数据快速检索系统及其使用方法。



背景技术:

传统的大数据平台,对大规模数据量的计算分析能力较弱,满足不了大数据领域的实时数据计算需求,大数据平台虽然采用了分布式的集群存储和计算架构,能够将计算任务分散到多个处理计算节点并行运算以提高计算速度与分析能力,解决了大规模数据的处理需求,但计算速度与分析性能受限于计算节点的硬件性能,无法实现大数据的实时处理。

在处理大规模数据的查询分析时,对硬件尤其是cpu的处理性能要求极高,造成了大数据技术架构高昂的硬件成本,在处理一般查询时,高配置的cpu查询又不能够发挥全部的硬件优势,造成算力闲置现象。



技术实现要素:

本发明针对现有技术中硬件要求高、处理效率差的缺点,提供了一种基于gpu大数据快速检索系统及其使用方法。

为了解决上述技术问题,本发明通过下述技术方案得以解决

一种基于gpu的大数据快速检索系统,包括:

分布式数据存储模块,包括多个分布式数据库节点,用于存储数据;

多个gpu模块,连接于每个分布式数据库节点,gpu模块包括gpu任务判断模块、任务创建模块、gpu数据广播模块、通用并行架构模块和gpu运行模块;gpu任务判断模块用于判断查询请求是否能完全或部分运行;任务创建模块用于创建需运行的查询任务;gpu数据广播模块,用于对多个gpu模块之间建立数据广播链路并同步数据传输消息;通用并行架构模块用于协调多个查询任务同时运行;gpu运行模块运行查询任务并返回数据。

作为优选,任务创建模块中,创建运行任务过程包括创建gpu本地二进制文件的源代码,在执行阶段前启动即时编译进程。

作为优选,gpu运行模块中,运行过程包括提取数据行集装载入直接存储器存储缓存并异步启动存储器传输和gpu内核执行。

作为优选,分布式数据库节点输出的数据为列式存储数据表。

作为优选,gpu运行模块中,还包括过滤、聚合和分组三种处理方式。

作为优选,gpu任务判断模块包括gpu处理器和cpu处理器,用于分配任务、判断运行成本和判断运行任务量。

作为优选,gpu数据广播模块运行过程为在数据发送gpu模块和数据接受gpu模块之间建立广播数据传输链路,同时对余下的gpu模块均与数据发送gpu模块生成转发树,通过转发树对数据传输消息进行发送。

一种基于gpu的大数据快速检索系统的使用方法,包括如下步骤:

(1)获取检索任务,系统调用gpu任务判断模块对给定查询是否可以在gpu上执行进行判断,判断过程包括:对任务量的是否能在gpu模块运行判断和对是否小于cpu处理器运行成本的判断,如判断结果都为是,则返回结果可以运行,则进入下一步,如不可以运行则跳出;

(2)判断任务是否可以在计算场景执行,如可以则调用gpu创建模块在运行中创建gpu本地二进制文件的源代码,在执行阶段前启动即时编译进程生成gpu可执行程序;

(3)系统提取数据行集装载入直接存储器缓存,并异步启动dma传输和gpu内核执行;

(4)通过gpu通用并行架构模块和gpu运行模块快速执行生成的gpu可执行程序对任务进行查询并返回结果。

作为优选,步骤(1)中,是否能在gpu模块运行判断包括对于sql查询运算类型判断和对于sql查询运算规则判断;是否小于cpu处理器运行成本的判断包括与gpu任务判断模块连接的查询优化器,在查询执行计划期间与查询优化器进行交互,选择执行成本较低的cpu处理器或gpu模块上进行运行。

作为优选,步骤(2)中,计算场景包括scan,join或groupby中的任何一项。

本发明由于采用了以上技术方案,具有显著的技术效果:本发明能够使用相对成本较低的gpu硬件辅助计算,在处理一般查询、对查询性能要求不高的操作时使用传统cpu运算,当处理高性能查询需求时运用gpu辅助运算,能够提供超越纯cpu架构的大数据平台的超高算力。基于gpu辅助的架构特点,本发明还能够在保证运算能力的前提下有效降低高性能大数据分布式存储计算平台的综合成本。在针对大量数据执行重复性操作时,采用分布式技术架构的大数据平台能够将数据动态均衡负载到各分布式数据库节点,从而能够充分利用各节点所配置的gpu平台的结构特点,将cpu的密集型数据计算工作负载转移至gpu处理,利用gpu的强大并行计算能力快速完成数据检索与计算任务,从而大大缩短大规模数据计算的执行处理时间。

附图说明

图1是本发明一种基于gpu大数据快速检索系统及其使用方法的结构示意图;

图2是本发明一种基于gpu大数据快速检索系统及其使用方法的查询原理示意图;

图3是本发明一种基于gpu大数据快速检索系统及其使用方法的试验结果数据柱状图。

图4是本发明一种基于gpu大数据快速检索系统及其使用方法的数据广播链路连接示意图。

具体实施方式

下面结合附图与实施例对本发明作进一步详细描述。

如图1至图4所示,一种基于gpu的大数据快速检索系统,包括:

分布式数据存储模块,包括多个分布式数据库节点,用于存储数据;

多个gpu模块,连接于每个分布式数据库节点,gpu模块包括gpu任务判断模块、任务创建模块、gpu数据广播模块、通用并行架构模块和gpu运行模块;gpu任务判断模块用于判断查询请求是否能完全或部分运行;任务创建模块用于创建需运行的查询任务;gpu数据广播模块,用于对多个gpu模块之间建立数据广播链路并同步数据传输消息;通用并行架构模块用于协调多个查询任务同时运行;gpu运行模块运行查询任务并返回数据。

任务创建模块中,创建运行任务过程包括创建gpu本地二进制文件的源代码,在执行阶段前启动即时编译进程。

gpu运行模块中,运行过程包括提取数据行集装载入直接存储器存储缓存并异步启动存储器传输和gpu内核执行。

分布式数据库节点输出的数据为列式存储数据表。

gpu运行模块中,还包括过滤、聚合和分组三种处理方式。

gpu任务判断模块包括gpu处理器和cpu处理器,用于分配任务、判断运行成本和判断运行任务量。

gpu数据广播模块运行过程为在数据发送gpu模块和数据接受gpu模块之间建立广播数据传输链路,同时对余下的gpu模块均与数据发送gpu模块生成转发树,通过转发树对数据传输消息进行发送。

传统环模式计算分配由于每个链路都是双向的,如图4a所示,可构建两个环:从一个环开始是a->b->d->c->a,另一个反方向是a->c->d->b->a。要做广播a可以将数据分成两部分,并在每个环上发送一个部分。因此,如果数据大小为n并且链路带宽大小为b,则所花费的时间将是n除以2b,但是a<->d和b<->c(虚线表示)的两个交叉链接没有被有效利用起来。

为实现更高的gpu链路利用率,加快速度传输,借鉴使用基于广播的数据传输方案的协议,充分利用相连的gpu组来实现更高效率。该策略旨在克服拓扑异构性的困难,这种困难是由于使用的gpu数量不同、硬件层的异构性,多机器训练而引起的。在图4b展示了一个基于广播的数据传输模式,在这种情况下,从gpua发送到gpub的数据,然后再被广播到gpuc和gpud,可构造三个这样的转发树,因此链路利用率提高,并且所花费的总时间变为n除以3b。通过上述并行运算架构的应用,在gpu辅助运算中,能够发挥gpu集群的超高算力,大幅提升运算效率,减少执行运算的耗时。

一种基于gpu的大数据快速检索系统的使用方法,包括如下步骤:

(1)获取检索任务,系统调用gpu任务判断模块对给定查询是否可以在gpu上执行进行判断,判断过程包括:对任务量的是否能在gpu模块运行判断和对是否小于cpu处理器运行成本的判断,如判断结果都为是,则返回结果可以运行,则进入下一步,如不可以运行则跳出;

(2)判断任务是否可以在计算场景执行,如可以则调用gpu创建模块在运行中创建gpu本地二进制文件的源代码,在执行阶段前启动即时编译进程生成gpu可执行程序;

(3)系统提取数据行集装载入直接存储器缓存,并异步启动dma传输和gpu内核执行;

(4)通过gpu通用并行架构模块和gpu运行模块快速执行生成的gpu可执行程序对任务进行查询并返回结果。

步骤(1)中,是否能在gpu模块运行判断包括对于sql查询运算类型判断和对于sql查询运算规则判断;是否小于cpu处理器运行成本的判断包括与gpu任务判断模块连接的查询优化器,在查询执行计划期间与查询优化器进行交互,选择执行成本较低的cpu处理器或gpu模块上进行运行。

sql查询运算类型判断例如数据类型必须是数字类型,日期和时间类型,可变长度字符串。sql查询运算规则判断;运算符支持算术运算,比较运算符和一些内置运算符。

是否小于cpu处理器运行成本中,如果此估算成本比在cpu上运行的其他查询执行计划要好,则选择在gpu设备上运行替代查询执行计划,否则在cpu设备上运行传统查询执行计划。

步骤(2)中,计算场景包括scan,join或groupby中的任何一项。

存储管理器中储存了查询所需的数据,cpu将查询语句所需的数据分配到不同的gpu计算单元中,gpu计算单元通过存储管理器中的共享缓存直接读取数据,此处的数据由gpu通过pci-e总线直接读取而无需到存储管理器外的机器缓存中读取,减少了机器缓存重新加载存储管理器里数据的延迟。query查询语句在执行前经过用户自定义扫描的过滤,能够转移到gpu模块里的查询操作将会通过gpu扫描后经过二进制解析建表并排序后形成gpu中可执行的gpu代码。此时的gpu任务通过cpu控制的消息总线经行进程调度,gpu程序管理器取消息总线中的gpu任务进程分配到不同的gpu运算模块中进行并行计算。

本发明能够使用相对成本较低的gpu硬件辅助计算,在处理一般查询、对查询性能要求不高的操作时使用传统cpu运算,当处理高性能查询需求时运用gpu辅助运算,能够提供超越纯cpu架构的大数据平台的超高算力。基于gpu辅助的架构特点,本发明还能够在保证运算能力的前提下有效降低高性能大数据分布式存储计算平台的综合成本。在针对大量数据执行重复性操作时,采用分布式技术架构的大数据平台能够将数据动态均衡负载到各分布式数据库节点,从而能够充分利用各节点所配置的gpu平台的结构特点,将cpu的密集型数据计算工作负载转移至gpu处理,利用gpu的强大并行计算能力快速完成数据检索与计算任务,从而大大缩短大规模数据计算的执行处理时间。

实施例

如图3所示,以一个的管理信息分析系统查询为例,该系统中包含100gb的数据,执行40个典型的复杂报表查询,基于gpu的大数据快速检索系统和传统数据库性能对比如图所示,查询响应时间可减少到传统数据库的四分之一左右。

总之,以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所作的均等变化与修饰,皆应属本发明专利的涵盖范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1