FreeBSD 9.0-R での Fortran 試用

備忘録。
FreeBSDports で利用できる Fortran コンパイラ(fortran95対応)

  • lang/g95
  • lang/gcc* (gfortran* コマンド)

g95

インストール
# portinstall -PP g95
実行
$ export LIBRARY_PATH=/usr/local/lib
$ g95 -o hoge hoge.f95
補足

g95 コマンド実行時に下のように表示された場合は,exportされていない可能性大。

ld: cannot find -lf95

gcc* (gfortran* コマンド)

今回はgcc46。gcc42などでも同じ。

インストール
# portinstall -PP gcc46
実行
$ gfortran46 -o hoge hoge.f95

比較

おまけ。

環境
CPU Core 2 Duo T7200 @ 2.00[GHz]
Memory (avail memory) 2929 [MB]
OS FreeBSD 9.0-RELEASE amd64

FreeBSD 用に新しい機材がほしいところ。

ファイルサイズ

定番の Hello World プログラム。

program hello
  print *, 'Hello World!'
end program hello
コマンド名 サイズ [B]
g95 739333
gfortran46 7592

g95 で生成したバイナリのサイズが大きすぎる。
readelf コマンドで見てみると .symtab のシンボルが 705個。
必要ないものも含めてリンクされている様子。

ベンチマーク

理化学研究所で提供されいている「姫野ベンチマーク」を利用。
http://accc.riken.jp/HPC/HimenoBMT.html
クラスタでもなんでもない,単一マシンでの計測なので不適切な選択だろう。

計算サイズは XS 。最適化オプションはどちらも -O3 のみ。

コマンド名 MFLOPS(3回の平均)
g95 507.4465
gfortran46 846.0841

この場合,個別の性能値にはあまり意味はない。
ただ,両者の結果を比較すると,gfortran46 でコンパイルしたバイナリの方が 1.67 倍高い性能を出している。
他のベンチマークなら違う結果かもしれない。