2024年11月9日と10日に開催された FOSS4G 2024 Japan に参加してきました。
FOSS4G Japan とは
ジオ系OSSのイベント FOSS4G というイベントが世界中で、そして日本でも何カ所かで開催されています。”FOSS4G"という名前自体は一般名詞のようなもので、色々な人がそれぞれ自由に開催できるのですが*1、その中で OSGeo日本支部(OSGeo.JP)が主催する年1回の大規模大会が FOSS4G Japan です。去年は福井で、コロナ前には新潟で開催したりしています。
Day 1 ハンズオンデイ
あまりじっくりとハンズオンを受けることは、実は私はあまりないのですが、今回は @shi-works さんが講師という事で受講させてもらうことにしました。データ操作の部分に注目してジオ系と接しているので、ビジュアライズ部分がとても苦手なのです。 Twitter(X)上でいつも、目に付いたデータを片っ端からビジュアライズしている(ように見える)shi-worksさん(勝手に通称 shi- さん=しーさん=と呼んでいます(笑))に教われる機会など滅多にないので、この機会に!と飛びつきました。
ハンズオンというと、入力するために時間を取られたり(それも貴重な体験のための時間でもあるのですが)、その打ち間違いでのバグ探しに時間を取られたり(これも貴重な体験なのですが)という部分でどうしても時間密度が薄くなってしまうのですが、shi-さんの講座は予めワンセットになった動作するファイル群が7つほど用意され、それを部分的にコピペしながら(言い換えると部分的に有効にしながら)、そのコードによる効果を確認していくというスタイルでした。いいな、これ。私の実習系セミナーでも使わせてもらおう(笑)。
そんな感じで、細かいコードの意味とかは分からないけど「これくらいのこんな感じのコードでこんなことができる」ことを一通り駆け足で体験し、濃厚な3時間を過ごしたのでした。細かいコードは後から見れば良い。
それにしても、3Dデータは高さの概念、、というか、データのゼロメートルの概念がそれぞれで、難しいですね。実際に自分が使うデータを決めてしまえば、それについて一旦理解しておけば良いのですが、あれもこれも教えてもらったので、そのまちまちの仕様が印象に残りました。
Day 2 コアデイ
コアデイというのはようするにセミナーデイです。応募してくれた人になるべくお話してもらおうとの考えから(学校での開催なので部屋はあるから)、結局4トラックでの開催に。すごい。
私も(OSGeo.JPの団体会員でもある日本仮想化技術(株)さんの枠として)ひとつお話をさせていただきました。仕事として検証作業を続けている 「爆速DB Powered by PG-Strom」について、地理空間情報データの扱い、列指向Arrowファイルの扱い、登記所備付地図データの複雑なクエリ の3本立てをみっちり15分に詰め込みました。全体として駆け足の説明になりましたが「GPUパワーのデータベース」の面白さが伝わったかなという感触を、壇上からも感じておりました。終了後にも何人の方にお声がけいただき、追加で説明させていただいたりして、ここ最近の私の発表の中ではかなり「反応が良い」ものとなり、たいへんありがとうございました。
定期的にやっている「爆速DB "PG-Strom" 勉強会」、次回は12月16日に渋谷での開催を予定しています(Apache Arrowの話題です)。ぜひお越しください。(このブログを書いている時点ではまだ参加申込み始まっていませんが、以下のURLからイベント参照可能になる予定なのでチェックしていただけましたら)
https://bakusokudb.connpass.com/
[11/12 17:00追記] 12月16日の勉強会申込みページが公開されました!
bakusokudb.connpass.com
今回の発表資料は以下の場所で公開しています。
speakerdeck.com
他の皆さんの発表も大変興味深いものが多く、今回のテーマである「飛び出せ」つまり3Dデータに関するもの、みんな大好き登記所備付地図データのことなどのお話を聞かせてもらいました。FOSS4Gってジオ系つまり地理情報に関すること、という事しか言っていないので、範囲は非常に広い。データの収集、取得から格納、加工、分析、ビジュアライズ。データの種類自体も測量データからPOI、点群データまで様々。 自分のよく知らない分野のお話も聞かせてもらいつつ、私としてはデータをあれこれいじりまわす部分について特にもっと触れていきたいなとの意識を新たにしました。
最後のパネルディスカッションの枠は、もうちょっとパネリストの皆さんどうしが絡むような仕掛けが欲しかったなとは感じました。6人の登壇者がそれぞれ短く語るのが集まっただけで「ディスカッション」要素がほとんどなかったのが、惜しまれます*2。 それでもひとりひとりにじっくり語ってもらえるという部分では、それぞれのお話は非常に面白かったです。
懇親会
またやってしまいましたよ、最初にお寿司を3つくらい食べた後、あちこちでお喋りしていて全然ごはんを食べないやつ。まぁごはん取りに行くよりお話したいという意思で、ほぼ意図的にやっている部分はあるのですが(笑)。 そんな感じなので、いろいろな方と再会したり初めてだったりとお話をさせていただく貴重な時間になりました。 居た人とのお話はとても楽しかったのですが、遠く(特に関東以外)からお越しの方で月曜休めないから、と参加せずに帰られた方も少なからずいて、この点だけを見ると、土日開催よりも、金曜はハンズオン、土曜にセミナー形式という形にするメリットも大きいのかなとも感じました。
まとめ
数年前に初めて岡山だったか名古屋だったか(どちらが先か覚えていない)の関連イベントに初めて参加して以降、界隈の皆さんにいつもとても親切にしていただいています。ジオ系あたたかい。今回もこんな「専門外」の私ではありますが、会場で何人もの方に声をかけていただいたり、積もる話をしたり、(普通なら専門外すぎて居場所がないのに)自分の「居場所」のように感じさせられる暖かさがあります。ありがたい。
それぞれが、重なっているような重なっていないような経験と知識を持つ人が沢山集まるこういう場、大切にしていきたいですね。この大きなイベントの運営に関わられた皆さんに感謝申し上げます(私も運営委員という立場ではありますが、今回のイベントに関してはほぼ戦力外でした)。そして発表された皆さん、参加されたみなさんにも大きな感謝を!
追記:「PG-Stromに向かない処理とは」
私のセミナー発表の質疑にて「PG-Stromが速いことは分かった。逆に、向かないのはどういうところかを聞きたい」という質問をいただきました。限られた時間で回答をひねり出そうとして「向いているところ以外は向いていないんです」とか「向かないような処理の場合は実行計画でGPUではなくCPUを使うことを選択してくれるので大丈夫です」のような、答えになっているんだかなっていないんだか分からない説明になってしまいました(本人は一生懸命だったのですがw)。
改めて開発者含めてチーム内でも軽いディスカッションしてみて、求められていたものに近づきそうな感じが得られたのでここで説明させていただきます。3つあります。
まず「ある程度の規模(セミナーでも説明したような)のデータに対してストレージの読込やGPU並列処理で高速化するものなので、データ量が少ない場合は、あまり効果が得られない」というもの。 それから「GPUは同じ処理を同時並行でできることで高速を得られるものなので、色々な人が同時大量に色々なクエリを実行するもの(OLTP)での効果よりはOLAP的な使い方で効果を得られる」こと。そしてクエリ処理全体の中でのGPUの役割という視点から「PostgreSQLのエクステンションなので、CPUで最終処理をして結果を返す。GPUの役割はその最終処理に渡す結果を大きく絞り込むこと(射影や集約)とも言える。なので、そもそも絞り込めない(減らない)ものは、GPU-CPUのやりとりのコストが大きくなりがち」といったあたりです。
これを、さらっとあの場で返せたら良かったのですが(たぶん格好も良かったw)、後日となりましたがこちらで説明追加とさせていただきます。良い質問いただいて、ありがとうございました!