理化学研究所と千葉大学、神戸大学、京都大学、富士通らの共同研究グループは12月2日、プログラミング言語「Formura」を開発したと発表した。数式のような簡潔な指示を書くだけで、スーパーコンピュータ「京」での計算に必要となる高度なプログラムを自動生成できるという。
原理的にはシミュレーションしたい自然現象とその離散化法を指定すればプログラムは機械的に生成できるが、スーパーコンピュータでの計算に必要となるプログラムは数十万行にも及ぶこともあり、作成やチューニングは大変困難で高度な作業である。そのため、多数の計算機を協調して動作させるスーパーコンピュータの性能を引き出す高度なプログラムを、自動かつ汎用的に生成することは不可能だった。
共同研究グループは、自然現象の「局在性」と「並列性」を保ったままスーパーコンピュータの動作に変換することを狙い、もともとの方程式からプログラムまでの変換を自動的に実現できる一連の段階を発見。それらすべての段階に対応する数学的定義を作ることで新たなプログラミング言語「Formura」を開発し、スーパーコンピュータのプログラミングを機械化することに成功した。
さらにFormuraは、同じアプリケーションに対して何万通りものプログラムを生成し、すべて実行して性能を測定。最も速かったものを自動的に選択するという。
実際にFormuraを使って地下に伸びる菌類の複雑な挙動シミュレーションを行ったところ、元となるミュレーションのプログラムはわずか20行あまりだったが、Formuraは3万桁以上のプログラムを4万通り以上自動的に生成してシミュレーションに成功した。
今後は、気象、地震、宇宙、生態ネットワークの研究など規則格子シミュレーションを用いる分野の研究の加速が期待できるとしている。