GPUを使用したビッグデータの操作:データベースを数十倍高速化





数年間、多くの企業のデータセンターはGPUアクセラレーションコンピューティングを使用してきました。 この種のコンピューティングがますます普及しているため、当社は現在この問題を研究しています。 したがって、GPUアクセラレーションコンピューティングを使用して、ディープラーニング、分析、設計などの分野で動作するように設計されたリソース集約型アプリケーションを高速化することができます。 この方法は、大企業のデータセンター、研究機関の研究所、企業で使用されています。



高速化のおかげで、多くのサービスがGPUで動作しており、ニューラルネットワークの操作を提供したり、スマートカーからのデータを処理したりします。 この方法の利点は、大量の計算能力を必要とするアプリケーションのリソース集約的な部分がGPUで処理され、その他すべてがCPUで実行されることです。 過去数年で、高速データベースの作成に基づいた複合ソリューションが登場し始めました。 このようなソリューションは、たとえば大量のデータを視覚化するために使用する必要があります。



このようなサービスを自宅で開始する可能性を検討しているため、この問題を詳細に調査しました。 使用したいソリューションをいくつか選択しました。 それらのすべてが開かれているわけではありませんが、機会は楽しいものです。



Map-d







このプロジェクトの名前は「大規模並列データベース」を意味します。 これにより、大量のデータを視覚化できます。 たとえば、インフルエンザウイルスの発生の動きをほぼリアルタイムで追跡する場合。



Map-Dを使用すると、さまざまな災害に関するメッセージのマップを作成できます。 これはすべて、既成のプライマリデータの配列が利用できることを条件として、わずか数ミリ秒で実行されます。



Map-Dは数年前に登場したプラットフォームであり、それ以来このソリューションは改善され続けています。 その助けを借りて、並列GPUコンピューティングの能力を使用する大規模なデータ配列を分析することが可能です。 これにより、データ自体のタイプに応じて、データ配列の分析が70〜1000倍高速化されます。



サービスデータベースは、多数のGPUと個々のクラスターのメモリに統合されています。 これにより、数十億のベースポイントを処理し、分析結果をグラフィカルな形でほぼ瞬時に出力できます。 プロジェクトの作成者によると、SQLデータベースはMap-Dを非常に高速に処理できます。



キネティカ



文字通り今月、Kineticaと呼ばれる別の興味深いプロジェクトが更新されました。 その動作原理は、前のケースとほぼ同じです。 視覚化するデータの膨大な配列を操作する必要がある場合に、このソリューションを使用することをお勧めします。 データはその場で処理され、結果の客観的な全体像がすぐにわかります。



以前、会社はGPUdbと呼ばれ、データベースとの関係をすでに暗示していました。 このソリューションは、企業への支援として位置付けられています。 そのため、SQL-92クエリ、クラスタリング、ワンクリックインストールなどの標準的な商用機能がサポートされています。



開発者によると、GPUの使用とは、CPUを使用する場合の8-32コアに対して、1つのデバイスで4000以上のコアの作業を意味します。 Kineticaには、ネイティブレンダリングエンジンに加えて、サードパーティ企業のプラグインが含まれています。 このすべては、プラットフォームの作成者によると、CPUに比べて生産性を100倍向上させることができます。



ブレイジング







これはかなり具体的なプロジェクトであり、PostgreSQL、MySQL、Amazon Redshiftを使用する企業向けのソリューションとして位置付けられています。 開発者は、これらすべての製品のパフォーマンスが複数向上することを約束しています。



プラットフォームと他のソリューションの主な違いは、サードパーティ開発者からのローカルおよびクラウドインスタンスの提供です。 AmazonまたはAzureに既にデータがある場合は、BlazingDBを追加してパフォーマンスの向上を比較できます。



以前は、同社は非営利団体であり、開発者は6月になってサービスの収益化を試み始めました。 BlazingDBを使用するには、Linux用のNvidia CUDAドライバーが必要です。 残念ながら、現在サポートされているプラ​​ットフォームはUbuntu 14.04のみです。



ブレイズグラフ







すべてのデータベースがSQLシステムではありません。 それらのいくつかは、特定のデータタスク用に最適化されています。 たとえば、個々のオブジェクトと分析後に得られた情報の視覚化との関係が分析されるグラフを使用します。



そのような作業にはリソースが必要であり、GPU指向のコンピューティングはまさにあなたが必要とするものです。 このようなタスクを実行するためのプラットフォームの「基盤」の1つはBlazegraphです。 これは、2つのGPUベースのコンピューティングアクセラレーションメソッドを備えたJavaで記述されたオープンソースソリューションであることに注意してください。



開発者は、BlazegraphがCPUソリューションと比較して200〜300倍のパフォーマンス向上をもたらすと言います。 実際、最初の解決策は、コンピューティングにGPUを使用することです。



2番目のオプションは、Blazegraph DASLを使用してリソース集約型アプリケーションを簡単に書き換えることです。 これは、GPUでの並列操作を可能にするために設計された言語です。 「SparkをCUDAとGPUで使用すると、CPU上で同じアプリケーションを実行するのに比べて、多くのアプリケーションの実行が1000倍速くなります」と開発者は言います。



PGStrom



これは、多くの利点がある人気のあるオープンソースPostgreSQLデータベースです。 まず、このデータベースはスケーラブルであり、NoSQL / JSONおよびその他の機能をサポートしています。



興味深いことに、すぐに使えるGPUベースのアクセラレーションはサポートしていません。 このような機能を取得するには、 PGStromと呼ばれるサードパーティのプロジェクトを使用する必要があります。 PG-Stromは、リクエストを受信すると、GPUを使用してこのリクエストを実行できるかどうかを判断します。 その場合、要求のGPU最適化バージョンが作成されます。 結果は、GPUからのリダイレクトとクエリの実行です。



PG-Stromのセットアップは大変な作業です。 Nvidi CUDAツールキットが必要であり、いつオリジナルからコンパイルする必要があります。 しかし、PG-StromがPostgreSQLに統合されるとすぐに、GPUで使用するために何かを書き換える必要なく動作し始めます。



All Articles