パスワードを忘れた? アカウント作成
10408689 story
データベース

なぜオープンソースのデータベースはGPUを使わない? 52

ストーリー by headless
高速 部門より
insiderman 曰く、

米ジョージア工科大学の研究者らが、NVIDIAと共同でGPUによるデータベースのクエリ処理の高速化を研究しているそうだ(論文アブストラクト本家/.)。

論文ではLogiQLを実装した商用データベースLogicBlox 4.0を使い、GPUによる高速化を試みている。GPUを利用することで、並列クエリ処理はXeon E5-2670×2(16コア、32スレッド)のAmazon EC2ノードの6.48倍、PCIeの転送時間を除いた計算時間のみで比較すると7.86倍高速という結果が出ている。また、逐次クエリ処理の場合、12GBのメモリーを搭載したCore i7-920マシンの65.92倍、計算時間のみでは79.94倍高速という結果になったとのこと。

LogiQLはDatalogベースのクエリ言語で、SQLなどの一般的なクエリ言語とは異なるため単純にほかの分野に応用できる感じではなさそうだが、GPUならではの構成を使ったデータベースというのは面白そうだ。

なお、本家/.記事は、ここ数年GPUによるデータベース処理高速化の研究が次々に発表されているにもかかわらずオープンソースのデータベース向けのコードが出てこないことについて、何が障壁となっているのかという疑問で締めくくっている。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by DesKwa (35996) on 2013年12月29日 13時05分 (#2519998)

    まだ研究中だから実装レベルまでには至っていないからじゃないの?

    商用DBが実装しているなら違うけど、実装してるDBあるのかな。

    • Re:単に (スコア:3, 参考になる)

      by kemeco (41597) on 2013年12月29日 16時11分 (#2520085)

      いろいろ研究されてるそうだから、こんなことは全部解決されてるのかもしれませんが、
      素人なりに憶測すると、単にGPUが得意なことと、データベース処理に必要なこととが、微妙にズレてるからってだけな気がします。

      GPUは中で、中だけで完結して計算をぐるぐる回すようなことはめっぽう速いそうですけど、
      その計算の材料や、また計算結果であるデータ自体の、外部との受け渡しの速度は、別にそんなに特筆して爆速ってわけでもないのでは?と。

      つまり、たとえば、三角形の頂点3個ぽっちのような、少ないデータをGPUに渡して、その少ないデータから、様々な角度に回転させた何億通りもの頂点を瞬時に計算するような処理は得意だろうけど、
      一方、データベースから検索するような処理って、まず膨大なデータを検討材料として渡さないと始まらないから、とにかくGPUに渡すことになると思いますけど、渡す所はべつにそれほど速くないのだから、結局そこがボトルネックになって、GPUの計算速度というおいしい部分が相殺されてしまって効果がそれほど上がらないとか、そういうことなんじゃないかな?と思いました。
      適当なこと言ってます。

      親コメント
    • by TonboDama (31248) on 2013年12月29日 15時30分 (#2520058)

      バッチ処理ソリューションとかも利用するの無いのかな。

      請求計算とかSIMDチックにできそうな気がして適切な場面にならないかなぁと思っているのですが。

      親コメント
    • by Anonymous Coward

      GPUっていうか、専用の石があった方がよさそうには思うけど、なんちゃらプロファイルみたいなので、「このサーバーに必要な計算はコレだ!」って風には決められないのかなぁ。

      • Netezza は FPGA を使ってるらしいです。 2007 年のホワイトペーパー [datamgmt.com]には、専用の石 (ASIC) は柔軟性に欠けるから FPGA の方がいいよ、と書いていました。

        親コメント
      • by Anonymous Coward

        余ったPCIスロットに挿すだけでいい、という程度の安価なHWが出来たなら導入が進む気もする。
        でなければ、使われてないIntel HDGを使って処理を高速化するとか。

        いいグラボ挿してる人は、ゲームなりCGなり映像編集のために挿してるのであって、
        他のアプリケーションにGPUを使われても困る。

      • by Anonymous Coward

        Xeon Phiとか無かったっけ?

    • by Anonymous Coward

      だってサーバー用PCのGPUはオンボード程度じゃん
      長期に渡ってぶん回すようにできてないでしょう

    • by Anonymous Coward

      オラクルがHSA Foundationに参加したので順調に行けばオラクルから出るでしょうな

  • by ribbon (11750) on 2013年12月29日 13時06分 (#2519999) 日記

    これ [postgresql.org]はどうでしょう?

    • by Anonymous Coward

      私もニュース的に聞いたことがあったのを思い出しました。
      実際に動かしたことはない(動かせるものなの?)のですが、Amazon RDS で PostgreSQL が入ったので、実は少し期待してます。

  • ハードウェアお高いんでしょう?
  • 研究者は自分が思いついたor実行可能な研究ネタの内最も良さそうなものに着手します。
    大抵の研究者には自分より優れた能力の研究者がおり,そのような研究者は自分が思いつかなかったより良いネタを研究している中、自分は自分より優れた研究者なら誰もが気がついたにもかかわらず選ばれなかったネタを研究しているので、そのような研究ネタのソーティングに気がついていない研究者は自分の研究ネタは誰もが思いつくようなネタなのに何故誰もやっていないのだろう、と言う印象を抱くことになります。

    • by Anonymous Coward
      でもそういうプライオリティの低い研究からも時にびっくりするような成果が出ることがあるので、そういう中途半端な部分にいる研究者は研究者で存在価値があるのですよ。

      # と無理矢理自己肯定してみる
  • GPUの得意分野って、怒涛の積和演算であって、
    データベースといまいち相性が良くないような気がします。

    データベースでは比較演算が多そうなのですが、
    GPUはその比較演算処理を並列化できたりするんでしょうか?

  • by Anonymous Coward on 2013年12月29日 13時16分 (#2520002)

    計算がミスっていないことをどのように保証しましょう?

    • by Anonymous Coward

      前からずっと気になっていたのだけど
      ソフトウェア処理は正確で、ハードウェア処理は早いけどあまり正確じゃないのはなんでなんだろう。
      エミュレータで顕著だけど。
      DBにも同じことが言えるならいくら早くても何の役にも立たないとは思う。
      1分で1000の仕事だがミスは絶対にない奴と
      1分で100万の仕事をするが1/10000でミスをする奴なら前者の方がいいし。
      多少ミスっても許容できる仕事なら後者の方がいいけどさ。

      • Re:信頼性 (スコア:3, 参考になる)

        by KY Coward (42262) on 2013年12月29日 16時01分 (#2520075) 日記

        元々GPUは画像処理だけだったから多少エラーが多くても許されてたけど、最近ではGPUのエラー発生率もCPUと同じくらいになってる、って噂は聞いてる。
        ちなみにCPUだからって「ミスは絶対にない」なんて事は無い。ただ極端にエラー発生率が低いだけ。
        # 「何でもは知らないわよ。知ってることだけ」みたいな感じなのでIDで

        親コメント
      • by kcg (26566) on 2013年12月29日 16時02分 (#2520078) ホームページ 日記

        float精度の話?

        親コメント
        • by Anonymous Coward

          Firefoxだったか、doubleをfloatに変更する事で大幅に高速化とか

          • by Anonymous Coward

            「結果が変わらない場合のみ無駄な倍精度演算の命令を生成しなくなった」って話がなぜか歪曲されてる件

        • by Anonymous Coward

          最近ならハードウェアエンコーダとかじゃない、ソフトウェアより速いけど、質は良くない。バグがあっても直せないし。

      • by Anonymous Coward

        何を言っているのでしょう?

      • by Anonymous Coward

        どんな例なのか具体的にしりたいな。名前だけでいいので教えてください。

      • by Anonymous Coward
        > エミュレータで顕著だけど。

        ゲーム機のエミュレータでグラフィック設定をソフトウェアエミュレーションだと遅いけどうまくいくけど、
        ハードウェアエミュレーションにすると早いけど再現性が低いってことを言ってるの?

        あれはハードウェアでサポートしている似た機能にマッピングして擬似的に再現するか、すべての点を書くところまでソフトウェアで面倒見るかってことだとおもうんで、どっちもソフトウェアの範疇じゃないか?
  • by Anonymous Coward on 2013年12月29日 13時28分 (#2520007)

    この人は誰かにやるなと脅されているのか?

    あほなのか

    • by Anonymous Coward

      誰にでも出来ることを自分しかしてなかったら、
      不思議に思うのは普通のことだろう。

      • by Anonymous Coward

        既存のDB開発者はGPGPUに詳しくないんじゃね?長らく分野違いだったから。
        この人は詳しいというのなら、ぜひいろんなとこにコミットして欲しいものだ。

      • by Anonymous Coward

        必要性を切に感じてる人がいないor少ないんだろうね。

    • by Anonymous Coward

      OracleやMS SQL ServerのソースをNDAか何か結んで見たことがあるので貢献したくてもできないとか。

  • by Anonymous Coward on 2013年12月29日 13時38分 (#2520016)

    ・頻繁に変わるアーキテクチャ
    ・NDA

    あと、何がありましたっけ?

    • by Anonymous Coward on 2013年12月29日 13時47分 (#2520018)

      ・一般人が持ってるPCのGPUでは高速化されないむしろ遅くなるケースが多い

      親コメント
      • by SteppingWind (2654) on 2013年12月29日 14時48分 (#2520041)

        ボトルネックを明確にせずにチューニングを行なうのは, 往々にして徒労に終わりますからね.

        query中心の用途だと, まずはIOがネックになって, 次にデータを主記憶に貼り付けることが出来たとして主記憶-GPU間の帯域が問題になりそうってのが予想できますね. その辺が対応できるような環境・用途なら価値は有ると思いますけど, 汎用のオープンソースDBを使うような用途では無くはないけど主流ではないでしょうね.

        transaction系だと, ほとんど意味は無いでしょうし.

        親コメント
        • by Anonymous Coward

          そもそもRDBMSのボトルネックって、クエリ処理なの?

          HDDアクセスとかそっち方面じゃないかと言う気がしてならない。

          • by Anonymous Coward

            ミッションクリティカルなものだと、256コアのSMPで256GBのオンメモリDBなんてものを束ねて数十TBクラスのDBクラスタを構築するなんてことが存在している世界だからなあ。たかだか数GBメモリしか扱えないものに分散しても、制御および管理コストの方が高くついて、速度は出ないし実用的ではないんですよ。

        • by Anonymous Coward
          テンポラリテーブル作らないといけないような長大な集計かけるときとか
          GPUのメモリにドカドカ流し込んでグルグルポンできないかなぁとか思ったりします
        • by Anonymous Coward

          だから研究ではPCIeの転送時間を除いた計算時間のみで比較してるんでしょうね。
          GPUを使わないのにはそれなりの理由があるって事でしょう。

    • by Anonymous Coward

      ・そんなことに使うなんて勿体ない

  • by Anonymous Coward on 2013年12月29日 15時50分 (#2520067)

    まぁオプションとして存在するのはアリだと思いますが。

    • by Anonymous Coward

      規模のスケーリングと管理コスト、クエリのターンアラウンドタイムが稼げないから、割に合わないんです。
      GA上のメモリにオンメモリ展開できる数GBクラスのDBで、ターンアラウンドタイムに余裕があるケースならありだろうけれど。

  • by Anonymous Coward on 2013年12月29日 16時02分 (#2520077)

    仮想化された鯖も普及してますからねぇ
    そこがGPU仮想化対応しているかとか
    オーバーヘッドでむしろ遅くなるとか
    リソース占有率とか
    その辺も考慮しないとあかんよね

  • by Anonymous Coward on 2013年12月29日 17時26分 (#2520112)

    ・GPUを弄ってる人のなかにDBMSに興味のある人が少ない。
    ・DBMS弄ってる人のなかにGPUに詳しい人がいない。
    というだけじゃないですかね。

  • by Anonymous Coward on 2013年12月29日 21時40分 (#2520203)

    各種DBの集計・OLAP関数の計算速度には、みなさんあまり不満はないのでしょうか?計算はDBからデータを抽出した後でやるから関係ないとか?

typodupeerror

にわかな奴ほど語りたがる -- あるハッカー

読み込み中...