Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
地図用データを高速処理!
オープンソースGPUデータベースMapDの
魅力に迫る!!
今、GISが鬼熱い!
(Geographic Information System)
MariaDB/MySQL陣営も参入してきたGISの世界。
GISの匠(GIS歴20年)がデータベース技術者集団に転籍してきて
大注目のGPU DB:MapD...
井内 一史(インサイトテクノロジー)
データベース
 監査パッケージ
CADパッケージ
GISパッケージ
GIS業務システム
地図データベース
いまこ
こ
趣味:
地図データ入力は楽しい。
光半導体
今、GISが鬼熱いっ!
位置情報
動態管理
地図入力はこんな感じ。
1.GISの苦悩
2.データ膨張
3.そしていま、MapD。
4.MapDを検証してみます。
今日はこんなお話を…
今、GISが鬼熱いっ!
GISの苦悩
性能との闘いだった…
今ふり返ると、それは
今、GISが鬼熱いっ!
ビッグデータだったのだとおもう。…
GISは、当初から
今、GISが鬼熱いっ!今、GISが鬼熱いっ!
今、GISが鬼熱いっ!
はじめは CAD やりました。
ここに地図データを入れることを 無謀という。
CAD図面を繋ぎ合わせれば 地図 ができるっ!
今、GISが鬼熱いっ!
まぁ~動かない・・・
今、GISが鬼熱いっ!
● スクロールできない
● 縮小できない
● さわるな!さわるな!
今、GISが鬼熱いっ!
やっぱりデータ量が多かったです!
性能を出すために
どんなことをしたか。
今、GISが鬼熱いっ!
型は int でないと無理。
今、GISが鬼熱いっ!
当初、座標値の
41.029384
41.30 24.72 W
文字列なんて論外
計算に時間がかかる
レイヤー分け
今、GISが鬼熱いっ!
元データ
データ量が多いときは
間引いて表示
分割保存
今、GISが鬼熱いっ!
一般図をラスターに。
これは革命だったな~
今、GISが鬼熱いっ!
主題図(ベクター)
一般図(ラスター)
地図向けデータベース登場
PostGIS、MySQL
今、GISが鬼熱いっ!
ここでやっと
GeoHash
1
3 4
21
23 24
224
ちゃんと使える
システムになってきた。
今、GISが鬼熱いっ!
だがしかし・・・
それでもビッグデータは
大きすぎた。
今、GISが鬼熱いっ!
まだまだ増えるし~
データ膨張
...とHWの進化
データ量の変化
世界の情報量が年間59%の
割合で増加する時代に
今、GISが鬼熱いっ!
位置情報
動態管理
CPU性能の変化
2003年ころ
今、GISが鬼熱いっ!
頭打ち。
どうすれば…
一方で・・・
GPU性能の変化
今、GISが鬼熱いっ!
そこで、GPUの有効活用に
注目が集まりました。
今、GISが鬼熱いっ!
コア数は数千~
ようこそ
ビッグデータの時代へ。
今、GISが鬼熱いっ!
いまの DB に満足できないあなたに~
そしていま、MapD。
大注目のGPU DB:MapDに出会った。。。
(の割にはあまり日本では報告例がない)
MapDは…
● MapDを提供している会社
● 2013年 ボストンで設立
Todd Mostak、Tom Graham 氏による
● HQ サンフランシスコ
● 2017年5月 オープンソース化 Apache 2.0 Licence
Com...
資金を着実に集めています。
2017年ファンドBにより、New Enterprise Associates が筆頭投資家に。
その意向を受けてオープンソース化を進めた、とされる。
3月 NVIDIA Bronz
100k$
9月設立 3月 ファ...
MapDは何が得意? どんな特長なの?
・大量データセットの分析・可視化
   → 数十億行も。
・安く、そして速く
   → GPU活用(集計、描画)
・地図データ連携による可視化(ただのDBではない)
   → 大量データの傾向把握
   ...
MapDのコンセプトは…
● カラムナーデータベース
● GPU並列処理
● GPU描画処理
今、GISが鬼熱いっ!
処理の流れ
1. GPU内にメモリ展開(CPU→GPU)
2. それを使って並列処理(GPU)
3. GPU内で描画処理をして...
MapDの構成
https://www.mapd.com/platform/ より
今、GISが鬼熱いっ! 33
MapD Core はカラムナーデータベース
今、GISが鬼熱いっ!
ID NAME Value Date
1 AAA 1002 8/11...
2 BBB 33756 8/12...
... ... ... ...
ID NAME Value...
GPU内で並列統計処理。
今、GISが鬼熱いっ!
コア
集計
集計
集計
集計
● 固定長レコードをコアが並列集
計。
● SQL文はJITコンパイルされ、実
行される。
(環境依存しない中間コードを生成)
35
これまでのDB
GPUは、画像を返します。
(レンダリング機能)
アプリケーションサーバー
(またはクライアント)
MapD
多い
OpenGL
少ない
Hot Record
行データ
行データ
アプリケーションサーバー
(またはクライアント)...
ここまでくると、
バスの太さが気になってくる
今、GISが鬼熱いっ!
PCIe
16G/s
NVLink
80G/s
NVLink
80G/s一部の CPU のみ。
Intel は非サポート。
ほんとうのビッグデータにはもっと太い
バスがほしい...
MapD Immerse は可視化クライアント。
大量データの分析に特化した可視化クライアント。
Vega(D3由来)をバックエンドで利用(vega-jsonファイルを受け取って表示)
・地図
・グラフ
・ヒートマップ
・など。
※GISプロッ...
Vega の利用イメージ
const exampleVega = {
"width": 733,
"height": 530,
"data": [
{
"name": "heatmap_query",
"sql": "SELECT lon as...
MapDを検証してみます。
検証用マシンスペック
Supermicro SYS-1027GR-TF+
NVIDIA Tesla P40 × 1
 | コア数 3,840
 │ メモリ 24G
 │ 単精度演算 12TFLOPS
 │ 消費電力 250W
Xeon E5-2...
サンプルデータ
● フライトデータ
・2,000万件の発着、遅延の記録
今、GISが鬼熱いっ!
● MapD と PostGIS の比較
・MapD Core の性能
42
INSERT 処理時間
バルクインサート
copy flights_test from '/Data/Data/flights/flights.csv' with (format csv);
今、GISが鬼熱いっ! 43
SELECT 処理時間
まずは件数。
select count(*) from flights where
  st_x(origin_point) between 20 and 50 and
  st_y(origin_point) betw...
集計演算 SELECT AVG()
集計してみる。
select avg(遅延時間) from flights where
  st_x(origin_point) between 20 and 50 and
  st_y(origin_poi...
集計演算 SELECT ... GROUP BY
GROUP BY してみる。
select uniquecarrier, count(*), avg(遅延時間) from flights where
  st_x(origin_point) ...
では、GPUを使わなかったら、どうなるの?…
今、GISが鬼熱いっ! 47
MapDにはCPUモードもあるので、PostGIS と比較してみます。
今、GISが鬼熱いっ!
CPUモードでも速い
PostGIS
48
初回が遅いのは、メモリ展開が必要だから。
今、GISが鬼熱いっ!
GPU を使うとどこまで速くなっている?
初回
2回目
初回
2回目
49
まとめ:
 ~どうしてMapDはそんなに速いのか
今、GISが鬼熱いっ!
1. カラムナーデータベースだから。
(1)そもそも不要なカラムデータは持ってこない。
2. GPUコアが並列集計処理している。
3. GPUで描画しているから。
(1)...
そこで、試してみました・・・
● Twitter つぶやき 800万件
● シカゴ犯罪データ 600万件
● NY Taxi 2億8千万件
51
マシンスペックは同じです。
● NVIDIA Tesla P40 × 1
メモリ 24G (内、描画用に12Gを指定)
● CPU E5-2620 × 2
メモリ 384G
52
Twitter つぶやき 1,000万件
今、GISが鬼熱いっ! 53
54
シカゴ犯罪データ 600万件
今、GISが鬼熱いっ! 55
56
NY Taxi 2億8千万件
今、GISが鬼熱いっ! 57
58
MapD の現状
59
Community版とEnterprise版があります。
https://www.mapd.com/platform/downloads/ 今、GISが鬼熱いっ! 60
データサイズのめやす
GPU Count GPU RAM (GB) CPU RAM (GB) “Hot” Records
(NVIDIA P40) 8x GPU RAM L1
1 24 192 417M
2 48 384 834M
3 72 5...
MapDの特徴 1
1.とにかく、類をみない速さ…
2.その速さを低投資・低消費電力で実現できる。
3.今までできなかったことができるようになった。
 → 大量データの分析・可視化が得意
4.ストリーミング形式で取り込みができる。
 → ログデ...
MapDの特徴 2
5.UPDATE、DELETEは今のところない(TRUNCATEは8月サポート)
6.GISの機能はこれから充実(するでしょう)
 ・図形レンダリング
 ・レイヤー重ね合わせ
 ・ラスター表示
 ・GPU-GPUの活用
今、...
MapD まとめ
大量のGISデータをそのまま描画することはほ
ぼ不可能でした。
65
今までは
MapDによって
それが現実的になりました。
GISがますます盛り上がってきています。
どんな用途?
・交通情報(自動車、空、海、鉄、...)
・通信情報
・人流情報
・気象情報(台風、海流、気流、地震、地殻変動、...)
・流通情報
・犯罪情報
・観光情報
・いわゆるIoT情報
・その他のビッグデータ(金融、医療、商取引、......
まだ始めたばかりなので
まだまだ事例・データが足りていません。
ビッグデータをお持ちの方、
ご連絡お待ちしております。
今、GISが鬼熱いっ! 67
GISは今とっても鬼熱い!
ありがとうございました。
68
Upcoming SlideShare
Loading in …5
×

[db tech showcase Tokyo 2017] B35: 地図用データを高速処理!オープンソースGPUデータベースMapDの魅力に迫る!!by 株式会社インサイトテクノロジー 井内一史

220 views

Published on

ディープラーニング界隈で異常な盛り上がりを見せるGPUですが、ゲーム、画像処理、HPC、ディープラーニング以外の用途として、データベース処理の高速化への応用が期待されており、実際にMapD、Kinetica、SQreamなどの製品が登場しています。
今回、今年オープンソース化されたGPUデータベースのMapDを使い、地図の上に大量のデータを重ねて評価を行ってみました。その評価を通してわかったこと、向いてないことなど、GPUデータベースの特徴とその可能性に迫ります。

Published in: Technology
  • Be the first to comment

  • Be the first to like this

[db tech showcase Tokyo 2017] B35: 地図用データを高速処理!オープンソースGPUデータベースMapDの魅力に迫る!!by 株式会社インサイトテクノロジー 井内一史

  1. 1. 地図用データを高速処理! オープンソースGPUデータベースMapDの 魅力に迫る!!
  2. 2. 今、GISが鬼熱い! (Geographic Information System) MariaDB/MySQL陣営も参入してきたGISの世界。 GISの匠(GIS歴20年)がデータベース技術者集団に転籍してきて 大注目のGPU DB:MapDに出会った。。。
  3. 3. 井内 一史(インサイトテクノロジー) データベース  監査パッケージ CADパッケージ GISパッケージ GIS業務システム 地図データベース いまこ こ 趣味: 地図データ入力は楽しい。 光半導体 今、GISが鬼熱いっ! 位置情報 動態管理
  4. 4. 地図入力はこんな感じ。
  5. 5. 1.GISの苦悩 2.データ膨張 3.そしていま、MapD。 4.MapDを検証してみます。 今日はこんなお話を… 今、GISが鬼熱いっ!
  6. 6. GISの苦悩
  7. 7. 性能との闘いだった… 今ふり返ると、それは 今、GISが鬼熱いっ!
  8. 8. ビッグデータだったのだとおもう。… GISは、当初から 今、GISが鬼熱いっ!今、GISが鬼熱いっ!
  9. 9. 今、GISが鬼熱いっ! はじめは CAD やりました。 ここに地図データを入れることを 無謀という。
  10. 10. CAD図面を繋ぎ合わせれば 地図 ができるっ! 今、GISが鬼熱いっ!
  11. 11. まぁ~動かない・・・ 今、GISが鬼熱いっ!
  12. 12. ● スクロールできない ● 縮小できない ● さわるな!さわるな! 今、GISが鬼熱いっ! やっぱりデータ量が多かったです!
  13. 13. 性能を出すために どんなことをしたか。 今、GISが鬼熱いっ!
  14. 14. 型は int でないと無理。 今、GISが鬼熱いっ! 当初、座標値の 41.029384 41.30 24.72 W 文字列なんて論外 計算に時間がかかる
  15. 15. レイヤー分け 今、GISが鬼熱いっ! 元データ データ量が多いときは 間引いて表示
  16. 16. 分割保存 今、GISが鬼熱いっ!
  17. 17. 一般図をラスターに。 これは革命だったな~ 今、GISが鬼熱いっ! 主題図(ベクター) 一般図(ラスター)
  18. 18. 地図向けデータベース登場 PostGIS、MySQL 今、GISが鬼熱いっ! ここでやっと GeoHash 1 3 4 21 23 24 224
  19. 19. ちゃんと使える システムになってきた。 今、GISが鬼熱いっ! だがしかし・・・
  20. 20. それでもビッグデータは 大きすぎた。 今、GISが鬼熱いっ! まだまだ増えるし~
  21. 21. データ膨張 ...とHWの進化
  22. 22. データ量の変化 世界の情報量が年間59%の 割合で増加する時代に 今、GISが鬼熱いっ! 位置情報 動態管理
  23. 23. CPU性能の変化 2003年ころ 今、GISが鬼熱いっ! 頭打ち。 どうすれば…
  24. 24. 一方で・・・
  25. 25. GPU性能の変化 今、GISが鬼熱いっ!
  26. 26. そこで、GPUの有効活用に 注目が集まりました。 今、GISが鬼熱いっ! コア数は数千~
  27. 27. ようこそ ビッグデータの時代へ。 今、GISが鬼熱いっ! いまの DB に満足できないあなたに~
  28. 28. そしていま、MapD。 大注目のGPU DB:MapDに出会った。。。 (の割にはあまり日本では報告例がない)
  29. 29. MapDは… ● MapDを提供している会社 ● 2013年 ボストンで設立 Todd Mostak、Tom Graham 氏による ● HQ サンフランシスコ ● 2017年5月 オープンソース化 Apache 2.0 Licence Community版の利用が可能に。 今、GISが鬼熱いっ! 29
  30. 30. 資金を着実に集めています。 2017年ファンドBにより、New Enterprise Associates が筆頭投資家に。 その意向を受けてオープンソース化を進めた、とされる。 3月 NVIDIA Bronz 100k$ 9月設立 3月 ファンド Aシリーズ 10M$ 3月ファンドB シリーズ 25M$ 今、GISが鬼熱いっ! 2014 2015 2016 2017 2018 いまこ こ 2013 プロトタイプ オープンソース化 30
  31. 31. MapDは何が得意? どんな特長なの? ・大量データセットの分析・可視化    → 数十億行も。 ・安く、そして速く    → GPU活用(集計、描画) ・地図データ連携による可視化(ただのDBではない)    → 大量データの傾向把握     → GISデータ(kml、geojson、shp)インポート ・積極的な開発    →1-2Wごとにリビジョンアップ 今、GISが鬼熱いっ! 31
  32. 32. MapDのコンセプトは… ● カラムナーデータベース ● GPU並列処理 ● GPU描画処理 今、GISが鬼熱いっ! 処理の流れ 1. GPU内にメモリ展開(CPU→GPU) 2. それを使って並列処理(GPU) 3. GPU内で描画処理をしてしまう(GPU) 4. そして、描画後の画像を送る(GPU→CPU→Client)。 32
  33. 33. MapDの構成 https://www.mapd.com/platform/ より 今、GISが鬼熱いっ! 33
  34. 34. MapD Core はカラムナーデータベース 今、GISが鬼熱いっ! ID NAME Value Date 1 AAA 1002 8/11... 2 BBB 33756 8/12... ... ... ... ... ID NAME Value Date 1 03fac254 c90876ac 8/11... 2 03ff87b1 2ab096c9 8/12... ... ... ... ... 一般的な行指向データベース ・すべての列を読み込んでメモリ展開。 MapDのカラムナーデータベース ・必要な列だけ読み込んでメモリ展開。 ・できるだけGPUメモリに保持。 ・4,8,16バイトの固定長レコード。 34
  35. 35. GPU内で並列統計処理。 今、GISが鬼熱いっ! コア 集計 集計 集計 集計 ● 固定長レコードをコアが並列集 計。 ● SQL文はJITコンパイルされ、実 行される。 (環境依存しない中間コードを生成) 35
  36. 36. これまでのDB GPUは、画像を返します。 (レンダリング機能) アプリケーションサーバー (またはクライアント) MapD 多い OpenGL 少ない Hot Record 行データ 行データ アプリケーションサーバー (またはクライアント) データ コア 36
  37. 37. ここまでくると、 バスの太さが気になってくる 今、GISが鬼熱いっ! PCIe 16G/s NVLink 80G/s NVLink 80G/s一部の CPU のみ。 Intel は非サポート。 ほんとうのビッグデータにはもっと太い バスがほしい。 → 新しいハードウェアに期待も。 ディープラーニング向けDGX-1 37
  38. 38. MapD Immerse は可視化クライアント。 大量データの分析に特化した可視化クライアント。 Vega(D3由来)をバックエンドで利用(vega-jsonファイルを受け取って表示) ・地図 ・グラフ ・ヒートマップ ・など。 ※GISプロットのとき、Knuth's Mutiplicative Hashメソッドを利用 ※Vega I/F で結果をもらえば、他のプログラムでも連携できそう。 今、GISが鬼熱いっ! 38
  39. 39. Vega の利用イメージ const exampleVega = { "width": 733, "height": 530, "data": [ { "name": "heatmap_query", "sql": "SELECT lon as x, lat as y, SUM(amount) as cnt FROM contributions WHERE (lon between -124.39 AND -66.94) AND (lat between 20.61 AND 52.93) AND amount > 0 AND recipient_party = 'R' GROUP BY x, y" } ], "scales": [... 今、GISが鬼熱いっ! var vegaOptions = {} var connector = new MapdCon() .protocol("http") .host("192.168.0.xxx”) .dbName("mapd") .user("mapd") .password("******") .connect(function(error, con) { con.renderVega(1, JSON.stringify(exampleVega), vegaOptions, function(error, result) { if (error) { … } else { var blobUrl = `data:image/png;base64,${result.image}` var body = document.querySelector('body') var vegaImg = new Image() vegaImg.src = blobUrl body.append(vegaImg) } }); }); 39
  40. 40. MapDを検証してみます。
  41. 41. 検証用マシンスペック Supermicro SYS-1027GR-TF+ NVIDIA Tesla P40 × 1  | コア数 3,840  │ メモリ 24G  │ 単精度演算 12TFLOPS  │ 消費電力 250W Xeon E5-2620 (6core) ×2 DDR3-1333 384G 今、GISが鬼熱いっ! Special thanks NVIDIA様、サンウェイテクノロジー様 41
  42. 42. サンプルデータ ● フライトデータ ・2,000万件の発着、遅延の記録 今、GISが鬼熱いっ! ● MapD と PostGIS の比較 ・MapD Core の性能 42
  43. 43. INSERT 処理時間 バルクインサート copy flights_test from '/Data/Data/flights/flights.csv' with (format csv); 今、GISが鬼熱いっ! 43
  44. 44. SELECT 処理時間 まずは件数。 select count(*) from flights where   st_x(origin_point) between 20 and 50 and   st_y(origin_point) between -160 and -80; 今、GISが鬼熱いっ! PostGIS 44
  45. 45. 集計演算 SELECT AVG() 集計してみる。 select avg(遅延時間) from flights where   st_x(origin_point) between 20 and 50 and   st_y(origin_point) between -160 and -80; 今、GISが鬼熱いっ! PostGIS 45
  46. 46. 集計演算 SELECT ... GROUP BY GROUP BY してみる。 select uniquecarrier, count(*), avg(遅延時間) from flights where   st_x(origin_point) between 20 and 50 and   st_y(origin_point) between -160 and -80 group by uniquecarrier; 今、GISが鬼熱いっ! PostGIS 46
  47. 47. では、GPUを使わなかったら、どうなるの?… 今、GISが鬼熱いっ! 47
  48. 48. MapDにはCPUモードもあるので、PostGIS と比較してみます。 今、GISが鬼熱いっ! CPUモードでも速い PostGIS 48
  49. 49. 初回が遅いのは、メモリ展開が必要だから。 今、GISが鬼熱いっ! GPU を使うとどこまで速くなっている? 初回 2回目 初回 2回目 49
  50. 50. まとめ:  ~どうしてMapDはそんなに速いのか 今、GISが鬼熱いっ! 1. カラムナーデータベースだから。 (1)そもそも不要なカラムデータは持ってこない。 2. GPUコアが並列集計処理している。 3. GPUで描画しているから。 (1)GPUが得意な描画をしている。 (2)描画結果は PNG ファイルに。データ量がコンパクト。 50
  51. 51. そこで、試してみました・・・ ● Twitter つぶやき 800万件 ● シカゴ犯罪データ 600万件 ● NY Taxi 2億8千万件 51
  52. 52. マシンスペックは同じです。 ● NVIDIA Tesla P40 × 1 メモリ 24G (内、描画用に12Gを指定) ● CPU E5-2620 × 2 メモリ 384G 52
  53. 53. Twitter つぶやき 1,000万件 今、GISが鬼熱いっ! 53
  54. 54. 54
  55. 55. シカゴ犯罪データ 600万件 今、GISが鬼熱いっ! 55
  56. 56. 56
  57. 57. NY Taxi 2億8千万件 今、GISが鬼熱いっ! 57
  58. 58. 58
  59. 59. MapD の現状 59
  60. 60. Community版とEnterprise版があります。 https://www.mapd.com/platform/downloads/ 今、GISが鬼熱いっ! 60
  61. 61. データサイズのめやす GPU Count GPU RAM (GB) CPU RAM (GB) “Hot” Records (NVIDIA P40) 8x GPU RAM L1 1 24 192 417M 2 48 384 834M 3 72 576 1.25B ~中略~ 48 1,152 9,216 20.02B 56 1,344 10,752 23.35B 64 1,536 12,288 26.69B 128 3,072 24,576 53.38B 256 6,144 49,152 106.68B MapDコンフィグレーションガイドより抜粋https://www.mapd.com/docs/latest/getting-started/hwRefCfgGuide/ 今、GISが鬼熱いっ! 61
  62. 62. MapDの特徴 1 1.とにかく、類をみない速さ… 2.その速さを低投資・低消費電力で実現できる。 3.今までできなかったことができるようになった。  → 大量データの分析・可視化が得意 4.ストリーミング形式で取り込みができる。  → ログデータ収集できます 今、GISが鬼熱いっ! 62
  63. 63. MapDの特徴 2 5.UPDATE、DELETEは今のところない(TRUNCATEは8月サポート) 6.GISの機能はこれから充実(するでしょう)  ・図形レンダリング  ・レイヤー重ね合わせ  ・ラスター表示  ・GPU-GPUの活用 今、GISが鬼熱いっ! 63
  64. 64. MapD まとめ
  65. 65. 大量のGISデータをそのまま描画することはほ ぼ不可能でした。 65 今までは MapDによって それが現実的になりました。 GISがますます盛り上がってきています。
  66. 66. どんな用途? ・交通情報(自動車、空、海、鉄、...) ・通信情報 ・人流情報 ・気象情報(台風、海流、気流、地震、地殻変動、...) ・流通情報 ・犯罪情報 ・観光情報 ・いわゆるIoT情報 ・その他のビッグデータ(金融、医療、商取引、...) 今、GISが鬼熱いっ! 今後が楽しみなデータベースです 66
  67. 67. まだ始めたばかりなので まだまだ事例・データが足りていません。 ビッグデータをお持ちの方、 ご連絡お待ちしております。 今、GISが鬼熱いっ! 67
  68. 68. GISは今とっても鬼熱い! ありがとうございました。 68

×