フューチャー技術ブログ

Go Conference 2019 Autumn に登壇しました

こんにちは。TIG DXチーム 2の辻です。
先日開催された Go Conference 2019 Autumn に参加/登壇したので、その内容をレポートします。

The Gopher character is based on the Go mascot designed by Renée French.

きっかけ

マネージャーとの面談で、勉強会やカンファレンスで登壇して貢献していきたいと話していたところ Go Conference 2019 Autumn の CfP を募集を見かけたので応募しました。

アイデアの種

Go の goroutine や channel を用いることで並行処理をシンプルに書くことができます。基本的な計算をマルチスレッドで高速化する試みは、私が Qiita に書いた Golangを用いた様々な計算の高速化 の記事が詳しいです。
もちろん同じアルゴリズムを用いて Go 以外の言語でも実装できるのですが、Go でシンプルに実装でき、効率的に実行されることが確認できました。Qiita で 100 いいね程度の反響があり Go の並行処理をベースにしたネタで Go Conference に登壇したら面白いのではないか、と考えました。

私が競技プログラミング部にも所属していたのもあり HTTF といったマラソン形式のコンテストでよくもちいられる「焼きなまし法」を並行化したら面白いのではないかと考え、どのような並行化手法が存在するかサーベイしました。

サーベイする中で興味深かった論文が『温度並列シミュレーテッド・アニーリング法とその評価1です。従来のシミュレーテッドアニーリングは 1 プロセスで温度を少しずつ冷却して、良い結果を探索するアプローチです。本論文では、一定の温度を持つ複数のプロセスが並行してシミュレーテッドアニーリングをします。隣接する温度のプロセス間で、解を一定の条件で交換して最適な解を探索するアプローチです。基本的なアイデアはシンプルながら、最適化能力は劣化せず、並行化でき、処理時間の短縮に寄与します。

Go は並行処理が書きやすく、上記の研究のような並行化アプローチをシンプルに実装できます。Qiita に書いたような基本的な計算処理だけでなく、論文で示されているアルゴリズムを Go で実装して、なんなら Go のパッケージを用いて計算過程を可視化したら面白いと考えました。

準備

アイデアのブラッシュアップ

当社では TIG Friday というイベントが隔週で実施されています。当社の澁川のアイデアから生まれたイベントです。以下のようなコンセプトで運営されています。

外部の発表が怖い人の練習台とかになれるように。完璧な資料じゃなくて、発表のタネから目が出たぐらいの状態で書き出した箇条書きの資料とかベースで10分x2+質疑ぐらいでわいわいやりたい。準備を頑張らないのがコンセプト。

TIG Friday でどうですか? と声をかけていただき、社内で練習する機会をいただきました。準備を頑張らない、というコンセプトのイベントでしたが Go Conference の CfP に出すアイデアだったのでがっつり準備しました😋
アイデアを共有し、有識者からフィードバックをいただき改善できるので、非常によい機会だと感謝しています。

CfP

登壇のネタは決まったものの、 CfP は出したことがなかったので Go Conference への道は CfP の書き方を知ることからでした。

以下のサイトが特に参考になりました。

発表準備

しばらくして CfP が採択されたことをメールで確認しました。Go Conference 2019 Autumn への登壇が決まりました。初めての登壇でしたので、持てる力を十分に発揮できるよう、登壇の素振りは数回は実施しました。伝える内容がクリアになっているかどうかや、発表時間に気をつけていました。

発表

当日の発表は Vuls にコントリビュートしている有名な方の裏番組だったので、人が集まるか心配していましたが、杞憂でした。来ていただいた方、ありがとうございます。

資料は Speaker Deck に公開されています。

発表後の質問タイムでは、「実際に業務でシミュレーテッドアニーリングが使われる機会があるのか?」といった質問がありました。私は業務で実装したことはないですが、先進的 AI プロジェクトをリードしている当社の Strategic AI Group というチームでは実際の業務で使われています。

その他にも参加者や登壇者の方から面白かったなどのコメントをいただき、貢献できてよかったです。

Golangで並行シミュレーテッドアニーリング

中で何をやっているかは何やらなのですが、自分が全くわかっていない領域の話を聞けるのは楽しいですね。巡回セールスマン問題が実際に画面に表示されながら解かれて行くのは面白かったです!完全に解を出せなくても、最適解に近づけていくというアプローチがあるのですね。
http://gsagawa.hatenablog.com/entry/2019/10/29/092018

緊急登壇

ところで、当社から急遽、澁川も登壇しています。急遽というのは、登壇者が現れなかったというハプニングがあり、その代打登壇です。もともとのセッションは Multi-cloud portability for Go applications というテーマでした。澁川は Go Cloud について解説されていました。後日澁川から聞いた話では

セッションの PaperCall では Go Cloud を紹介します、となっていたので、当日発表されるであったであろう内容をエスパーしてエミュレーションしました

ということでした😁

Go Cloud はクラウドポーダブルなアプリケーションを開発する上で非常に興味深いプロダクトです。Go Cloud は本ブログで連載中です。こちらも是非見ていただければと思います。

参加してみて

はじめてのカンファレンス登壇でしたが、社内メンバーの手厚いサポートもあり、充実した機会になりました。

運営のみなさまには、このような貴重なカンファレンスを主催していただいたことに感謝しております。当社も Tofu on Fire(名札)枠としてサポートさせていただきました📛

Gopher のみなさんからの応募もお待ちしております!


  1. 1.小西健三、瀧和男、木村宏一:温度並列シミュレーテッド・アニーリング法とその評価、情報処理学会論文誌、Vol.36 No.4 (1995)
  2. 2.Technology Innovation Group の略で、フューチャーの中でも特に IT 技術に特化した部隊です。その中でも DX チームは特にデジタルトランスフォーメーションに関わる仕事を推進していくチームです。