ニュース

理研、たった20行の記述だけで複雑なプログラムを自動生成。スパコン京用プログラミング言語「Formura」

スーパーコンピュータ「京」

 理化学研究所(理研)は2日、スーパーコンピュータ「京」を簡便に利用するためのプログラミング言語「Formura」を開発したと発表した。

 これまでスーパーコンピュータを利用したプログラムを組む際は、シミュレーションとコンピュータの両方に対して深い知識が要求され、その性能を引き出すために多数の演算を協調動作させる高度かつ手間のかかるプログラムを書く必要があった。

 理研、千葉大学、神戸大学、京都大学、富士通株式会社らによる共同研究グループは、自然が元来備えている「局在性」と「並列性」に着目。これに対して、なるべく分解せずにスーパーコンピュータの動作に変換できればよいと考え、もともとの方程式が表す自然現象を一気にシミュレーションできるスーパーコンピュータがあると仮定し、方程式が表す対象をその仮想スーパーコンピュータのプログラムに翻訳するという方式を考案した。

 これにより、方程式からプログラムまでの変換を自動的に実現できる一連の段階を発見。全ての段階に対応する数学的定義を作ることで新たなプログラミング言語として「Formura」が生み出された。

 Formuraは、数式のような簡潔な指示を書くだけで、スーパーコンピュータが必要とする高度なプログラムを自動的に生成。同じアプリに対して何万通りものプログラムを生成するが、京の性能を活かしてそれら候補を全て実際に実行するとともに、その中でもっとも速かったプログラムを自動的に選択する。

 実際にFormuraを使って地下に伸びる菌類の複雑な挙動シミュレーションを行なったところ、Formuraは3万桁以上のプログラムを4万通り以上自動的に生成したが、その元となったシミュレーションのプログラムはわず20行あまりだったという。

 今後は気象、地震、宇宙、生体ネットワークの研究など、規格格子シミュレーションを用いる分野において研究が加速するとともに、アプリや情報科学からの研究者の参入を促し、プログラム自動生成技術の実現に向けた研究の活性化が期待できるとしている。

【お詫びと訂正】初出時に言語名のスペルを間違っておりました。お詫びして訂正させていただきます。