Fortranの表現力向上と開発効率向上を支えるSX-Aurora TSUBASA
最後に登壇したのは出川智啓氏。応募プログラムのタイトルは「izumi-Fortranの表現力向上と開発効率向上,それを支えるSX-Aurora TSUBASA」だ。
Fortranにどんなイメージを持っているか。多くの人は「古めかしい言語」と思っているのではないだろうか。確かにFortranはいまどきの開発者に好まれるプログラム言語でも、プログラミング環境でもない。だからこそ、出川氏は「このプログラミングコンテストを通じて、Fortranの状況を改善しようと考えました」と言う。
Fortranの課題はいまどきのプログラミング言語や環境と遜色のない、表現力と開発効率を有すること。つまり表現力向上と開発効率の向上である。表現力とは数式や自然言語に近い記述でプログラミングできること。出川氏はそれを実行する仕組みとして「izumi」を作成。また開発効率の向上については、Fortranのコミュニティが立ち上がっており、そこで作成されたエコシステムと組み合わせることで達成することにしたという。だが、表現力を向上させようとすると、複雑な処理が必要になる。Fortranの特長は高速な数値計算ができること。そこで「SX-Aurora TSUBASAを用いて数値計算でも有効に利用できることを確認することにしました」(出川氏)
作成したizumiの評価をするために流体シミュレーションに適用してみたという。それを表したのが次の図の式だ。
Fractional Step法による計算式をizumiで記述すると次のようになる。青色の部分がizumiによって定義した演算子で、緑色の部分がizumiによって定義された方を使った変数である。この中で毛色が異なるのは2番目の式、連立方程式を解くというもの。「ある基準を満たすまで、共役勾配法でポアソン方程式を解くという記述にしました」と出川氏は説明する。
この開発にあたっては、「次の4種類のコミュニティ製モダンエコシステムを活用した」と出川氏。それが「Fortran Package Manager(FPM:プロジェクト管理、ビルド、依存関係解決)」「Fortran Standard Library(標準ライブラリ)」「VTKFortran(VTK形式のファイル出力ライブラリ)」「FORD(APIドキュメント自動生成スクリプト)」である。
このプログラムの性能をSX-Aurora TSUBASAとXeonで測定したところ、Xenonで3459秒かかっていたものが、SX-Aurora TSUBASAを使うと126秒、27分の1に短縮できたという。「ここで強調したいのはプログラムの変更はまったくしていないこと」と出川氏。
この成果は、Fortranの再活性化を後押しし、市場の拡大と潜在顧客の増加に貢献できる可能性がある。例えばシミュレーションで物理現象を研究している学生や若手研究者、シミュレーションのフレームワークを開発している研究グループ、ソルバーを内製している企業のアーキテクトやテックリードなどがターゲットになるのではと出川氏は言う。
Fortranはこれまで水槽の中に英知をたくさん溜めてきたが、それを水槽の外に湧き出すことができなかった。「今回のプログラミングコンテストがその英知を泉から湧き出す一つのきっかけとなり、その湧き出した英知が社会問題を解決してくれると信じています」最後にこう語り、出川氏は発表を締めた。
質疑応答では、NECの浅田氏から「研究者がターゲットになるのではという話もありましたが、研究者がメインとする業務は研究です。どこまで研究者が踏み込んで、このようなシステムを扱っていくのか。そのバランスをどう考えて運用すべきでしょうか」という質問が投げかけられた。出川氏は「研究者がやりたいのはあくまでもシミュレーションで、プログラミングではありません。利便性向上のために時間を割くことは問題なので、考えていく必要があります。今は乱数生成などいろいろなアルゴリズムもあり、FPMと組み合わせることで外部との連携もより簡単にできるようになるので、ぜひ試してほしいです」と回答した。