Skip to main content
QUICK REVIEW

[论文解读] High-Throughput Transaction Executions on Graphics Processors

Bingsheng He, Jeffrey Xu Yu|arXiv (Cornell University)|Mar 16, 2011
Distributed systems and fault tolerance参考文献 15被引用 6
一句话总结

本文提出 GPUTx,一种利用 GPU 并行性加速内存数据库的高吞吐量 OLTP 引擎,通过将事务分组为批量任务并在 GPU 上并发执行。结合 GPU 优化的无锁与有锁策略,利用原子操作和 SPMD 执行,GPUTx 在标准基准测试中实现比基于 CPU 的系统高 4–10 倍的吞吐量。

ABSTRACT

OLTP (On-Line Transaction Processing) is an important business system sector in various traditional and emerging online services. Due to the increasing number of users, OLTP systems require high throughput for executing tens of thousands of transactions in a short time period. Encouraged by the recent success of GPGPU (General-Purpose computation on Graphics Processors), we propose GPUTx, an OLTP engine performing high-throughput transaction executions on the GPU for in-memory databases. Compared with existing GPGPU studies usually optimizing a single task, transaction executions require handling many small tasks concurrently. Specifically, we propose the bulk execution model to group multiple transactions into a bulk and to execute the bulk on the GPU as a single task. The transactions within the bulk are executed concurrently on the GPU. We study three basic execution strategies (one with locks and the other two lock-free), and optimize them with the GPU features including the hardware support of atomic operations, the massive thread parallelism and the SPMD (Single Program Multiple Data) execution. We evaluate GPUTx on a recent NVIDIA GPU in comparison with its counterpart on a quad-core CPU. Our experimental results show that optimizations on GPUTx significantly improve the throughput, and the optimized GPUTx achieves 4-10 times higher throughput than its CPU-based counterpart on public transaction processing benchmarks.

研究动机与目标

  • 为应对在线服务中用户负载增加带来的高吞吐量事务处理需求增长。
  • 探索使用通用 GPU 计算(GPGPU)加速 OLTP 工作负载的可行性与性能优势。
  • 设计一种基于 GPU 的 OLTP 引擎,以最小化同步开销高效管理并发事务执行。
  • 通过利用原子操作、大规模线程并行性和 SPMD 执行等硬件特性,优化 GPU 上的事务执行。

提出的方法

  • 提出一种批量执行模型,将多个事务分组为单个 GPU 内核启动,以提升并行性并减少内核启动开销。
  • 采用三种执行策略——两种无锁策略与一种有锁策略——针对 GPU 线程分支和内存访问模式进行优化。
  • 利用 GPU 原生原子操作,安全协调对共享数据结构的并发更新。
  • 利用 SPMD(单个程序多数据)执行,实现在数千个 GPU 线程上细粒度、数据并行的事务处理。
  • 设计内存访问模式,以最小化 GPU 全局内存和共享内存中的 bank 冲突,并最大化内存合并访问。
  • 实现一种混合方法,在无锁性能与高竞争情况下的正确性保证之间取得平衡。

实验结果

研究问题

  • RQ1与传统的基于 CPU 的系统相比,基于 GPU 的执行能否显著提升 OLTP 工作负载的吞吐量?
  • RQ2如何有效将事务批处理与批量执行策略适配到 GPU 架构,以实现高并发?
  • RQ3在 GPU 上,有锁与无锁事务执行策略之间的性能权衡是什么?
  • RQ4GPU 特有的功能(如原子操作和 SPMD 执行)在多大程度上提升了事务吞吐量?
  • RQ5在真实 OLTP 工作负载下,GPUTx 在事务并发度和数据集大小增加时的可扩展性如何?

主要发现

  • 在使用最新 NVIDIA GPU 的标准 OLTP 基准测试中,GPUTx 的吞吐量比其基于 CPU 的对应系统高出 4–10 倍。
  • 批量执行模型减少了内核启动开销并提高了 GPU 占用率,从而带来显著的性能提升。
  • 在低到中等竞争环境下,无锁策略优于有锁方法;而在高竞争环境下,有锁变体表现更可预测。
  • GPU 上的硬件原子操作对于实现高吞吐量事务处理中的可扩展性和正确性至关重要。
  • 优化后的 GPUTx 设计有效利用了 GPU 线程并行性和内存层次结构,最小化空闲周期并最大化吞吐量。
  • 性能提升在事务并发度高且数据竞争低的工作负载上最为显著。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。