高并发gpu内存数据库系统的设计与实现开题报告
2020-02-20 10:31:44
1. 研究目的与意义(文献综述)
1 课题来源、目的、意义以及国内外研究
1.1 课题来源
本课题结合当今gpu内存数据库并发查询的数据传输速度慢,执行并行度低的现状而设计。1.2 研究目的及意义
1.2.1 研究目的
与cpu相比,通用计算图形处理器(gpgpu)具有大量的计算核心,其强大的并行处理能力被应用于各个领域。在数据库领域,高效处理sql查询语句是很重要的研究课题,因而如何利用gpu的高性能并行计算能力来加速查询语句成为了研究的热点[4, 5]。
1.2.2 研究意义
近年来,由于物理工艺的限制,cpu的单核计算性能已经接近瓶颈,摩尔定律也渐失效,无法单纯通过提升频率提高计算性能。然而在当今大数据的时代背景下,需要处理的数据量高速增长,呈现4v特征,即数据体积量大(volume),数据类型变化范围广(variety),数据新增速度快(velocity)以及具有巨大的价值(value)。这些新的数据特征使得cpu的单核处理性能难以应对日益增长的数据处理需求。
gpu加速计算是指同时利用图形处理器 (gpu)和cpu,加快科学、分析、工程、消费和企业应用程序的运行速度。gpu能将应用程序计算密集部分的工作负载转移到gpu,同时仍由cpu运行其余程序代码。gpu 则拥有一个由数以千计的更小、更高效的核心(专为同时处理多重任务而设计)组成的大规模并行计算架构,可以很好提高并行计算能力。
如何应用gpu强大的计算能力到sql语句查询优化当中是当今数据库领域的一项重要课题[9]。通过将计算密集型的查询任务分担至gpu上,可以极大的提升数据处理的能力,方便对数据进行后续研究。
1.2 国内外的研究现状
由于gpu强大的性能,并且数据库的条件查询和哈希连接工作均适合于gpu的向量计算模型处理,因此近年来有一系列关于gpu数据库的研究工作。
1.2.1 gpu加速的数据库操作
govindaraju等人[10]利用cpu的单指令多数据(simd)能力,将连接选择、聚合等计算密集型的关系型代数操作实现成gpu kernel,与优化过的cpu版本相比,计算性能得到了显著的提升。govindaraju等人[11]实现的gputerasort算法利用gpu进行大量数据库记录的键值排序操作,达到了当时60gb数据的最高性价比。b.he等人[12]利用gpu的随机内存地址写入、高效进程间通讯等最新特性,设计并实现了新的关系型数据库join算法,与优化过的cpu版本相比带来了2-7倍的性能提升。t.kaldewey等人[13]提出并论证了gpu数据库受限于gpu内存,并利用当时最新的nvidia gpu能够在cpu和gpu间统一地址空间的特性,有效提升了gpu能处理的最大数据上限。b.he等人[14]实现的gputx原型利用gpu处理数据库事务,达到了cpu版本4-10倍吞吐量的优化效果。
1.2.2 gpu数据库系统
上述工作均利用gpu对内存数据库的各种操作进行了加速,并取得了较好的研究结果。除此之外,还存在不少从数据库系统的角度对gpu数据库进行研究于分析的课题。针对系统的整体设计,s.bress [15]设计并实现了一个cpu-gpu混合的查询处理引擎,能根据查询自动生成cpu和gpu代码来完成查询任务。bakkum等人的工作支持了sqlite的一个子集操作在gpu上的加速[3]。y.yuan等人总结了先前的工作,实现了针对分析型任务的功能较为完善的ydb数据库系统[1]。该研究工作通过实证和分析,明确了gpu数据库系统的几个关键的性能瓶颈,其中最主要的是pcie总线数据传输,为后续工作提供了前提和基础。
基于ydb的系统框架,k.wang等人实现了multiqx-gpu系统[2],multiqx-gpu系统通过在查询间共享gpu资源的机制,支持了并发查询请求,在并发查询请跨下能提升55%的查询任务处理吞吐量。在ydb系统中,每个sql语句会被编译成一个包含cpu和gpu部分的可执行程序,利用cuda runtime apu调用gpu完成查询任务的计算。为了支持并发查询的执行,mutiqx-gpu采用了动态链接库的方式,将进程间的协作功能实现了一个单独的动态链接库,利用ld_preload环境变量进行预加载,从而拦截了查询任务中发起cuda runtime api调用。不同查询任务中的cuda context会被gpu的分时调度器进行调度,意味着不同的查询任务可以同时使用gpu的pcie带宽和计算资源,从而提升并发效率。
2. 研究的基本内容与方案
2 研究内容与方法
2.1 研究内容
由于物理工艺的限制,近年来cpu的单核性能已经难以得到大幅提升。
然而,在大数据时代数据量快速增长,这使得cpu越来越难以应对日益增长的数据处理需求。
与此同时,随着通用图形处理器(gpgpu)计算技术的流行,利用gpu的并行计算能力来优化查询执行的性能成为数据库方向的研究热点。
3. 研究计划与安排
3 进度安排
(1) 2019/1/14—2019/2/28:确定选题,查阅文献,外文翻译和撰写开题报告;
(2) 2019/3/1—2019/4/30:系统架构、程序设计与开发、系统测试与完善;
(3) 2019/5/1—2019/5/25:撰写及修改毕业论文;
(4) 2019/5/26—2019/6/5:准备答辩。
4. 参考文献(12篇以上)
[1] Y Yuan, R Lee, X Zhang. The Yin and Yang of processing data warehousing queries on GPU devices[J]. Proc. VLDB Endow., 2013, 6(10): 817–828.
[2] Wang K, Zhang K, Yuan Y, et al. Concurrent analytical query processing with GPUs[J]. Proc. VLDB Endow., 2014, 7(11): 1011-1022.
[3] Peter B, Kevin S. Accelerating SQL database operations on a GPU with CUDA[C]. Proceedings of the 3rd Workshop on General-Purpose Computation on Graphics Processing Units. ACM, 2010: 94-103.
[4] Heimel M, Michael S, Holger P, Stefan M, Volker M. Hardware-oblivious parallelism for in-memory column-stores[C]. Proceedings of the VLDB Endowment 6.9 (2013): 709-720.
[5] Naga K. G, Brandon L, Wei W, Ming L, Dinesh Manocha. Fast computation of database operations using graphics processors[C]. In SIGMOD, 2004: p206.
[6] 李逸龙, 张凯, 何震瀛, 王晓阳. 基于GPU数据库系统的并发查询性能优化[J]. 计算机应用与软件. 2018(08).
[7] https://docs.nvidia.com/cuda/cuda-c-programming-guide
[8] https://zh.wikipedia.org/zh/CUDA
[9] Peter Bakkum, Kevin Skadron. Accelerating SQL database operations on a GPU with CUDA[C]//Proceedings of the 3rd Workshop on General-Purpose Computation on Graphics Processing Units. ACM, 2010: 94-103.
[10] Naga K. Govindaraju, Brandon Lloyd, Wei Wang, Ming Lin, Dinesh Manocha. Fast computation of database operations using graphics processors[C]//In SIGMOD, 2004: p206.
[11] Naga Govindaraju, Jim Gray, Ritesh Kumar, and Dinesh Manocha. GPUTeraSort: High performance graphics co-processor sorting for large database management[C]//In SIGMOD, 2006: 325-336.
[12] Bingsheng He, Ke Yang, Rui Fang, Mian Lu, Naga Govindaraju, Qiong Luo, Pedro Sander. Relational joins on graphics processors[C]//In SIGMOD, 2008: 511-524.
[13] Tim Kaldewey, Guy Lohman, Rene Mueller, Peter Volk. GPU join processing revisited[C]// In DaMoN, 2012: 55-62.
[14] Bingsheng He, Jeffrey Xu Yu. High-throughput transaction executions on graphics processors[C]//Proceedings of the VLDB Endowment 4.5 (2011): 314-325.
[15] S. Bress. Why it is time for a HyPE: A hybrid query processing engine for efficient GPU coprocessing in DBMS[C]//Proceedings of the VLDB Endowment 6.12 (2013): 1398-1403.