(この記事は「技術的ポエム Advent Calendar 2018」の23日目です)
fukuoka.ex代表のpiacereです
ご覧いただいて、ありがとうございます
今年のAdvent Calendarは、宇宙ネタをぶっ込めるカレンダーが見当たらなかったので、「技術的ポエム」として、ここにぶっ込ませていただきます
ネタ的には、昨年、人気を博した宇宙コラム、重力プログラミング入門「第2回:Pythonで重力波を解析する」に纏わる、先端テクノロジーの紹介です
重力波を測定するハードウェア
「重力波」が、どの位の規模で発生するのか、重力プログラミング入門「第2回:Pythonで重力波を解析する」の解説から引用します
重力波の規模は、「10のマイナス21乗」とかなり小さく、これは「地球から太陽の距離で、水素原子1つ分が歪む」程度の微小な変化でしかありません
100年間、重力波を観測できなかったのは、このような微小な変化を捉えるための技術が無かったことが、主な要因だと考えられています
~
この100年で、デジタルコンピュータは飛躍的な進歩を遂げ、科学技術もその恩恵で大きく発展し、非常に精密な装置の開発も可能となりました
その結果、「地球から太陽の距離で、水素原子1つ分が歪む」程度の微小な変化も検出できるようになったのですが、具体的にどんな技術が使われているのでしょう?
この微小変化は、人間には絶対に感知できない現象なので、テクノロジーの恩恵無には検出できず、それを検出できるだけの技術が確立できたのは、ホンのつい最近だと言うことです
そして、この技術を実装したハードウェアが、「LIGOレーザー干渉計重力波天文台」でした(こちらも以下に引用します)
今回、初めて重力波を検出したのは、LIGO(Laser Interferometer Gravitational-Wave Observatory:レーザー干渉計重力波観測所)と呼ばれる、ワシントン州ハンフォード(アメリカ東海岸側)と、ルイジアナ州リビングストン(アメリカ西海岸側)の2ヵ所にある施設です
パイプ1本の長さが4Kmもある、巨大な観測施設によって、初めて観測可能となった訳です
では、ソフトウェア面は、どんな感じだったのでしょうか?
重力波を測定するソフトウェア
「そもそも、そんな情報、公開されてるの?」って思われるかもですが、ナント、普通にネットで拾えます
「情報処理学会」に掲載されている、コチラの解説コラムです
重力波の初検出と情報処理技術 -LIGOとKAGRAで活用されている情報処理技術-
→「IPSJ-MGN570504.pdf」を探して、ダウンロードしてください
この内容を、頭からお尻まで解説していっても、それはそれで楽しいのですが、内容が、とても熱くて、読んでいてワクワクするものなので、そのテイストを知っていただきたいから、ご自身で直接読んで欲しいです
一応、私の趣味/琴線に触れるものだけ、以下に参考程度として、挙げておきます
重力波データ解析ツール「GstLAL」
「GStreamer」という、オープンソースのマルチメディアアプリケーション開発用フレームワークは、信号処理パイプラインを構築できますが、これを使った重力波データ解析ツールが、「GstLAL」です
GStreamer自体は、「動画のストリーミング配信」や「複数の動画合成」等に使えます
GStreamer というマルチメディアフレームワーク
https://qiita.com/tetsukuz/items/e67be5f3bf5b6ca6b625
gstlal
https://lscsoft.docs.ligo.org/gstlal/
分散コンピューティングプラットフォーム「BOINC」
BOINCは、「Berkeley Open Infrastructure for Network Computing」の略で、20年前に、スクリーンセーバで宇宙データ分析をさせていた「SETI@home」での実績をベースに作られています
HTTPをベースプロトコルとしているので、比較的、容易に導入できることが特徴で、LIGOとは、「Einstein@home」という実装で接続・解析を行っています
重力波以外では、宇宙マイクロ波背景放射向けの「Cosmology@home」や、地球近傍小惑星の軌道をモニタリングする「Orbit@home」、天の川銀河の進化モデルを構築する「MilkyWay@home」等、幾つもBOINCをベースとする実装があります
オープンソースとして、GitHubにも公開されています
https://github.com/BOINC/boinc
世界各地にデータ転送するグリッド「LSC DataGrid」
LIGOの研究者達(LSC:LIGO Scientific Collaborationと呼ばれます)と、LIGOと一緒に共同研究を行っている、欧州のVirgo重力波検出器の研究者など、世界各地の共同研究者へ、データを誤りや見落とし無く、重力波データを各地へ転送するのに使われているデータグリッドです
LSC DataGrid
https://www.lsc-group.phys.uwm.edu/lscdatagrid/
オマケ:Haskell(LIGOでは無くKAGRA)
けっこう面白いことが書かれているし、関数型言語の特性についても触れられているので、ぜひコラムを読んでみてください
p.s.「いいね」よろしくお願いします
ページ左上の や のクリックを、どうぞよろしくお願いします
ここの数字が増えると、書き手としては「ウケている」という感覚が得られ、連載を更に進化させていくモチベーションになりますので、もっとElixirネタを見たいというあなた、私達と一緒に盛り上げてください!