概要
ポエムです.
第5回並列Fortranシンポジウム
今年8月2日に,第5回並列Fortranシンポジウムが開催されました。これは,Fortran規格について議論するISO/IEC Fortran Committee WG5国際会議が東京で開催される事を受けての開催であり,WG5の前議長John Reid氏と現議長Steve Lionel氏の両名を招いて,Fortranの将来についての講演と,フリーディスカッションが行われました.
当日のプログラムは,以下のようになっています.
- 日本における Fortran 規格化の歴史
- Coarrays in Fortran 2008 and Fortran 2018
- Fortran Today and Fortran Tomorrow
- フリーディスカッション
シンポジウム開催にあたり,事前に質問の受付がありました.それらの質問に対してフリーディスカッションで議論したと聞いています.
残念ながら我々は参加できなかったのですが,モダンFortran勉強会としていくつか意見や質問を送りました.
質問に対する回答
本日,第5回並列Fortranシンポジウムで出た意見や質問,事前に受け付けていた質問に対する回答が公開されました.
モダンFortran勉強会として送った意見・質問については,実のところ締切を大幅に過ぎており,主催者の方からその旨と質問に対するコメントは頂いていたのですが,どうやら両方にも繋いで頂けたようです.この場を借りて,ご対応にお礼申し上げます.
回答からは,Fortranという言語として,下記2点を維持し続けようとしている姿が見えてきます.
- 効率的な実行
- 古いプログラムとの互換性の担保
また,最も印象的だったのは,Q25(数値計算用の言語としてすら不親切で不十分)に対する回答です.
この要望には,共感する部分もありますが,Fortranの強みは,特にスーパーコンピューター上での高性能にあります。MATLABと競争しようとするのは,間違っているでしょう。(主催者訳)
While we are sympathetic to this wish, Fortran’s strength lies in high performance, especially on super-computers. It would be a mistake to try to compete with MATLAB.(原文)
回答に対して思うこと
Fortranの強みは何か,何を目指しているかが非常に明快な回答だと感じました.
Fortran 2003で導入されたオブジェクト指向プログラミングの評判(使い勝手ではなく,機能があること自体)が悪いと聞いており,非常に不思議だったのですが,確かにこの方向を目指すのであれば,オブジェクト指向プログラミングは鈍重だし,使う人は多くないでしょう.
回答を眺めると,規格策定の場において以下の様な共通認識がある印象を受けました.
- Fortranで重要なのは,実行効率と後方互換である
- 規格でサポートしない範囲は,ライブラリがサポートすればよい
- 各ベンダの実装の負担になるような大きな機能は避けたい
WGとしては保守的なのでしょうが,必須と思われる機能(変数のバイト数を指定する定数等)の導入が遅かったり,それより前にやることあるんじゃない?と思われる機能が導入されたりと,委員の趣向が色濃く反映されているのかな?とも思います.また,物理定数を規格で用意して欲しいとの要望がこれまで無かった,というのも意外でした.
さて,最も印象的だった回答に対して,「なるほど,Fortranのターゲットは非常に明快だ」と思う一方で,「スーパーコンピュータで性能を出すことを目的としてFortranに乗り換える人は,どれくらいいるのだろう?」という疑問も湧いてきます.
現代では様々な言語が存在し,それぞれが使い勝手を改良しています.Matlab,C/C++言語,Python,Juliaなど,Fortranの代替となりうる言語は多く存在します.ここでいうFortranの代替とは,数値計算を行うためのプログラミング環境だけでなく,大学で取り扱われる,プログラミング学習用の言語という意味もあります.
プログラミングの講義でPythonを習い,実験でMatlabを使っていた学生が,スーパーコンピュータで数値計算をやりたいからFortranを使い出す,という状況がどれくらいあるでしょうか?その学生に,C++ではなくFortranを選ばせるような魅力は何でしょうか?乗り換えた後に(満足はしなくても)使い続けるだけの使い勝手を備えているでしょうか?
我々は,完璧ではないにしても,使い続けるだけの魅力がFortranにはあると思っています.しかし,奇しくも昨年度のAdvent Calendarの記事の最後で述べたように,高い性能を得るにはFortranでなくてもよいという状況になっており,過去の資産とコンパイラ最適化でパワープレイをしていたFortranという恐竜が,柔軟性のなさから環境変化に対応できず,頭数を減らしたような印象も持っています.
Fortran規格が使い勝手を重要視しないのであれば,コミュニティあるいは個人がその役割を担うしかありません.今後,Fortran規格が改定されていくとして,やらなければいけないのは
- Fortran自体の使い勝手を改善する機能の提供
- 数値計算等のライブラリの充実(インタフェースの改良も含む)
- 情報発信
の3点でしょうか.
回答の中には「その機能はすでに提供している」旨の回答がいくつも見受けられます.これは明らかに情報発信不足に起因するので,まずはよい情報も悪い情報も積極的に公開することから始めなければならないでしょう.
Fotranよ,どこへ行く?
Fortranの行き先は極めて明確でした.しかし,そこに向かうユーザの姿は,明確ではありません.