式が書ければ「京」が使える -高度なプログラムを自動生成できる新言語「Formura」を開発-

ターゲット
公開日

細野七月 総合生存学館特任助教、村主崇行 理化学研究所特別研究員、堀田英之 千葉大学特任助教、牧野淳一郎 神戸大学教授、井上晃 富士通株式会社マネージャーらの研究グループは、スーパーコンピュータ「京(けい)」を用いて、数式のような簡潔な指示を書くだけでスーパーコンピュータでの計算に必要となる高度なプログラムを自動生成できるプログラミング言語「Formura」を開発しました。

本研究成果は、2016年9月22日付けで関数型言語を扱う科学誌の高性能計算部門「FHPC 2016:Proceedings of the 5th International Workshop on Functional High-Performance Computing」に掲載されました。また高性能計算技術を扱う科学誌「SC '16 Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis Article No. 3」にも掲載され、高性能計算技術の国際的な賞であるゴードン・ベル賞のファイナリストに選ばれました。

研究者からのコメント

Formuraを開発したことで、規則格子シミュレーション分野においては、自然科学者が慣れ親しんだ方程式の記法を使ってシミュレーションしたい対象を記述することで、スーパーコンピュータの性能を引き出すための高度なプログラムが自動的に作成できるようになりました。気象、地震、宇宙、生態ネットワークの研究など、規則格子シミュレーションを用いる分野の研究の加速が期待されます。

概要

スーパーコンピュータでの計算に必要となるプログラムはときに数十万行にも及び、作成やチューニングは大変困難です。一方で、原理的にはシミュレーションしたい自然現象とその離散化法(もともと連続的である自然現象を、有限個の要素で近似的に表す方法)を指定すれば、プログラムは機械的に生成できます。しかし、プログラミングはシミュレーションとコンピュータ双方に深い知識が必要となる非常に高度な作業であり、多数の計算機を協調して動作させるスーパーコンピュータの性能を引き出す高度なプログラムを、自動かつ汎用的に生成することは不可能でした。

そこで本研究グループは、方程式がプログラムに変換されるまでの一連の段階に対応する数学的定義を作りました。スーパーコンピュータが持つ階層のすべての段階において、自然が元来備えている「並列性」と「局所性」を保持する変換を厳密に定めることで、新たなプログラミング言語「Formura」を開発しました。これによって、これまで不可能だったプログラミングの機械化に成功しました。Formuraは、同じアプリケーションに対して何万通りものプログラムを試し、最も速かったものを自動的に選択します。

また、実際にFormuraを用いて記述したプログラムで、地下に伸びる菌類の複雑な挙動をシミュレーションすることに成功しました。このときFormuraは、3万行以上ものプログラムを4万通り以上、自動的に生成しました。一方で、その元となったシミュレーションプログラムはわずか20行あまりで、はがき一枚に収まる程度でした。

図:Formuraで作成したプログラムによってシミュレートされた地下の生態ネットワーク

捕食者(緑)が被捕食者(赤)に対して優勢な領域が大規模なクラスタ(青線)を作ることが示された。縦軸・横軸の単位はミリメートル。先行研究であるPearsonらが1993年に2次元で行ったシミュレーションを3次元に拡張し、同じ振る舞いがおこることを再現して確かめた。解像度が大幅に上がったことで、大規模な捕食者クラスタの成長も観測できている。

詳しい研究内容について

書誌情報

【DOI】 http://doi.org/10.1145/2975991.2975994

Takayuki Muranushi, Seiya Nishizawa, Hirofumi Tomita, Keigo Nitadori, Masaki Iwasawa, Yutaka Maruyama, Hisashi Yashiro, Yoshifumi Nakamura, Hideyuki Hotta, Junichiro Makino, Natsuki Hosono, Hikaru Inoue. (2016). Automatic Generation of Efficient Codes from Mathematical Descriptions of Stencil Computation. FHPC 2016 Proceedings of the 5th International Workshop on Functional High-Performance Computing, Pages 17-22.

【DOI】 http://doi.org/10.1109/SC.2016.2

Takayuki Muranushi, Hideyuki Hotta, Junichiro Makino, Seiya Nishizawa, Hirofumi Tomita, Keigo Nitadori, Masaki Iwasawa, Natsuki Hosono, Yutaka Maruyama, Hikaru Inoue, Hisashi Yashiro and Yoshifumi Nakamura. (2016). Simulations of Below-Ground Dynamics of Fungi: 1.184 Pflops Attained by Automated Generation and Autotuning of Temporal Blocking Codes. SC16: International Conference for High Performance Computing, Networking, Storage and Analysis, Article No. 3, pp. 23-33.