Limit Breaker
Of
PostgreSQL
Tell Me More
PostgreSQLの
限界を越えろ
詳しく見る

How it works

No Pain for Performance Gain 既存環境の変更なく性能向上を狙う

PG-Strom works as an extension of PostgreSQL, to provide new GPU-based implementation for several SQL workloads like relations-join, aggregation/group-by, and so on. PG-StromはPostgreSQLの拡張モジュールとして動作し、表結合(JOIN)や集約(GROUP BY)などいくつかのSQL処理に対して、GPUを用いた実装を新たなオプションとして追加します。

It works transparently to the existing PostgreSQL systems, never affects to the SQL statement issued by user/application and data format stored in the storage, thus, it allows to improve the query performance with neither database nor application migration. 既存のPostgreSQL環境に対して透過的に動作し、ユーザやアプリケーションが発行するSQL構文やストレージに格納されたデータ形式には一切変更を伴わないため、データベースやアプリケーションのマイグレーションなしに性能向上を狙う事ができます。 PostgreSQL v9.5 or later supports PG-Strom, so no special patches or binaries are needed. 標準のPostgreSQL v9.5以降がPG-Stromに対応しており、特別なパッチやバイナリは必要ありません。

Unleash the Power of Multi-Thousands Cores GPUが持つ数千コアの能力を引き出す

The core features of PG-Strom are, automatic generation of GPU binary code from the supplied SQL statement and asynchronous massive parallel execution by multi-hundred to multi-thousand cores on the millions of records transferred to GPU device at once. PG-Stromの中核機能は、与えられたSQL文からGPU向けのバイナリコードを生成する事と、一度に数万レコードをGPUに転送し数百~数千コアの非同期・並列処理によって各レコードを高速に処理する事です。

GPU mounts much larger number of computing cores and broader-bandwidth memory, thus it has much higher price-performance ratio than CPU. On the other hands, it needs re-design of algorithm due to architecture difference, therefore, software have to get GPU support feature explicitly. GPUには非常の多くの計算コアと広帯域のメモリが搭載されており、CPUに比べ非常に高い価格対性能比を有しています。一方で、アーキテクチャの差異に伴うアルゴリズムの再設計が必要となるため、ソフトウェアの側が明示的にGPUに対応する必要があります。

PG-Strom intermediates the world of PostgreSQL with GPU. It is designed to shorten analytic SQL response time with GPU capability and reduction of the CPU workload. PG-Stromは、PostgreSQLの世界とGPUを橋渡しし、解析系SQLの処理に際してGPUの能力を引き出し、CPUの負荷を軽減する事で、クエリ応答時間の短縮を目的として設計されたソフトウェアです。

Features 機能

SQL workloads supported with GPU execution GPU処理に対応したSQLワークロード

PG-Strom support GPU execution for SCAN, JOIN, GROUP BY and Projection. If supplied SQL query contains GPU executable portion and estimated cost of GPU implementation is enough reasonable than CPU's one, it replaces the standard SQL execution logic by GPU version. PG-StromはSCAN、JOIN、GROUP BY、およびProjectionの各処理をGPUで実行する事が可能です。 ユーザが要求したSQLクエリがGPUで実行可能な部分を含んでおり、GPUでの処理コスト推定値がCPUよりも十分小さければ、PG-Stromは標準のSQL処理をGPU実装で代替します。

GPU code generator

Automatic GPU binary generation to process SQL workloads on GPU device. SQLワークロードをGPUで実行するためのGPU命令バイナリを自動生成。

asynchronous parallel execution

CPU and GPU focus on its advantaged task for each. Maximize the throughput with asynchronous parallel execution. CPUとGPUはそれぞれ得意な処理に専念。非同期・並列処理により最大のスループットで処理。       

Incredible Acceleration

These mechanisms enabled significant performance improvement towards vanilla PostgreSQL, on the CPU intensive workloads like Join or Aggregation especially. これらの機構により、特にJOINや集約演算が中心のワークロードでは、標準のPostgreSQLに比べ大幅な高速化、応答時間の削減を実現。

Use Cases 利用シーン

In-Database Analytics

PG-Strom enabled to integrate computing capability of GPU with RDBMS. People have usually exported their database into external tools for statistical analytics. Nowadays, PG-Strom allows running complicated statistical analytic calculation on RDBMS and SQL queries, then returning the only calculation results to users. PG-StromによりGPUの計算能力をRDBMSに統合する事ができるようになりました。従来はデータを一旦外部専用ツールへエクスポートしてから統計解析処理を行っていましたが、これにより、SQLクエリ・RDBMS上で複雑な統計解析計算を行ってその結果だけを利用者に返却する事ができるようになります。

rapid batch processing

PG-Strom's specialty area is massive reports processing on tables join and aggregation. These workloads are more commonly used for batch processing that transforms transactional data into OLAP system. Acceleration by PG-Strom reduces the time for batch processing, and allows applying the reduced time for making report of new insight. 大量のレコードを処理するテーブル結合や集計処理において、PG-Stromは最も効果を発揮します。このようなワークロードは、業務系トランザクションデータを情報系システムに移送する際のバッチ処理において多用され、バッチ処理時間の短縮や、浮いた時間でこれまでとは異なった切り口でのレポート作成に充てる事が可能です。

PG-Strom Development Team

We are open source project. We are all welcome your participant, feedbacks, contributions and so on. 私たちはオープンソースのプロジェクトであり、皆様の参加、評価、貢献などを常に歓迎しています。

KaiGai Kohei 海外 浩平

Architect, Lead developer

Kashiwagi Takehiko 柏木 岳彦

Evangelist

...and You

Volunteers