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
ひとこと要約

本稿では、GPUの並列処理を活用してメモリ内データベースのための高スループットOLTPエンジンGPUTxを提案する。GPUTxは、トランザクションをバッチ化してGPU上で同時に実行する。GPUに最適化されたロックフリーおよびロックベースの戦略を原子演算およびSPMD実行と組み合わせることで、標準ベンチマークにおいて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エンジンの設計を目的とする。
  • GPUのハードウェア機能(原子演算、多数のスレッドによる並列処理、SPMD実行)を活用して、トランザクション実行を最適化することを目的とする。

提案手法

  • 複数のトランザクションを1つのGPUカーネル起動にまとめるバッチ実行モデルを提案し、並列処理を向上させるとともに、カーネル起動のオーバーヘッドを削減する。
  • GPUのスレッド分岐およびメモリアクセスパターンに最適化された、2つのロックフリーおよび1つのロックベースの実行戦略を採用する。
  • 共有データ構造への同時に更新を安全に制御するために、GPUネイティブの原子演算を使用する。
  • SPMD(Single Program Multiple Data)実行を活用して、数千のGPUスレッドにわたる細粒度のデータ並列処理によるトランザクション処理を実現する。
  • GPUのグローバルメモリおよび共有メモリにおけるバンク衝突を最小限に抑え、メモリコalescingを最大化するメモリアクセスパターンを設計する。
  • ロックフリーの性能と高負荷状態での正しさの保証を両立させるハイブリッドアプローチを実装する。

実験結果

リサーチクエスチョン

  • RQ1GPUベースの実行は、従来のCPUベースのシステムと比較して、OLTPワークロードのスループットを顕著に向上させることができるか?
  • RQ2高並列処理を実現するために、トランザクションバッチ化およびバッチ実行戦略をGPUアーキテクチャに効果的に適合させることは可能か?
  • RQ3GPU上でのロックベースとロックフリーのトランザクション実行戦略には、どのような性能的トレードオフがあるか?
  • RQ4原子演算やSPMD実行といったGPU固有の機能が、トランザクションスループットにどの程度向上効果をもたらすか?
  • RQ5実際のOLTPワークロード下で、トランザクションの並列実行数およびデータセットサイズの増加に伴い、GPUTxはどの程度スケーリングするか?

主な発見

  • GPUTxは、最近のNVIDIA GPUを用いて、標準OLTPベンチマークにおいてCPUベースの実装と比較して4–10倍の高いスループットを達成する。
  • バッチ実行モデルにより、カーネル起動のオーバーヘッドが低減され、GPUの利用度が向上し、顕著な性能向上が得られる。
  • 低~中程度の競合状態ではロックフリー戦略がロックベースのアプローチを上回るが、高負荷状態ではロックベースのバージョンがより予測可能である。
  • GPU上の原子演算は、高スループットのトランザクション処理におけるスケーラブルで正しい同時更新を実現するために不可欠である。
  • 最適化されたGPUTxの設計は、GPUのスレッド並列処理とメモリ階層を効果的に活用し、無駄なサイクルを最小限に抑え、スループットを最大化する。
  • 性能向上は、高並列処理と低データ競合が特徴のワークロードで特に顕著に現れる。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。