■PG-Strom バージョン 2.0
「PG-Strom」は、最も広く使われているオープンソースのリレーショナルデータベースであるPostgreSQL向けに設計された拡張モジュールで、SQLコマンドから自動生成したGPUプログラムを、GPUの持つ数千コアと広帯域メモリを用いて並列実行することで、大量データの集計・解析処理を高速化するという。
中核機能の1つであるSSD-to-GPUダイレクトSQL実行は、NVMe-SSD上のPostgreSQLデータブロックの内容をGPUへ直接ロードし、データがホストシステムに到着するよりも先にGPUでSQLワークロードを実行する。これにより、CPUが処理すべきデータ量を数百分の1以下に削減し、I/O中心のワークロードである集計処理や全件探索といったワークロードを効率的に実行することが可能となるという。
「PG-Strom」は、PostgreSQLが公式にサポートする内部APIのみを用いて実装されており、SQL構文やデータ形式なども含め、ユーザやアプリケーションからは標準的なPostgreSQLであるかのように利用できる。クエリの特性を踏まえてオプティマイザがGPUを利用するかどうかを判断するため、特別なチューニングや設定は不要であり、またトランザクショナルなデータ形式(行データ)に対しても高速化を行うため、業務系システムと情報系システム間でデータ形式を変更する必要はない。
シングルノードのPostgreSQLという最も単純な構成に必要かつ十分な処理能力を増強することで、アプリケーションはよりシンプルな設計が可能となり、また定常的なDB管理作業の省力化にも繋がるとしている。
■PG-Stromの実行に最適なアプライアンスモデル
PG-Stromの提供する各種のアクセラレーション機能のプラットフォームとして、最適なハードウェアを選定して予め動作検証を行い、必要なソフトウェアが全てセットアップ済みとなっているアプライアンス製品を同時にリリースする。
- モデル名:HeteroServer GS120-P40
- CPU:Intel Xeon Gold 6126T (12C, 2.6GHz)× 1
- RAM:DDR4-2666 32GB × 6 (total 192GB)
- GPU:NVIDIA TESLA P40 (3840C, 24GB) × 1
- SSD:Intel SSD DC P4600 (2.0TB; HHHL)
- HDD:2.0TB (SATA; 7.2krpm) × 6
- その他:10Gb Ethernet × 2ports
■PG-Stromの特徴・主要機能
- PostgreSQLの一部として動作しクエリおよびデータの完全な互換性を実現
- SQLからGPUプログラムを自動生成し、SQLを透過的に高速化
- SSD-to-GPUダイレクトSQL実行
- インメモリ列指向キャッシュ
- GPUメモリストア(gstore_fdw)
- PL/CUDAユーザ定義関数