れっつFortranプログラミング!

卒業研究の中で数値計算が必要かもしれないことに(いまさら)気付いてしまったので,ノリでFortranの勉強を始めてみました*1

いまのところで,書法に関して参考にしているサイトを挙げておく.
http://www.nag-j.co.jp/fortran/index.html
http://www.mri-jma.go.jp/Project/mrinpd/coderule.html
http://ace.phys.h.kyoto-u.ac.jp/~tomita/education/fortran90/sec0.html
倍精度の浮動小数点数ってけっきょくどう書くのがいいのだろうか.

数値計算自体の参考書としては次のと,昔の数値計算の講義の残骸を見ている.といっても具体的な計算を始めているわけでもなかったり.

なんといってもこのベクトル計算機な感じがなんともいえない.

なんだかんだで,実際にどんなプログラムを書くより,今の段階ではどんなコンパイラを使うかで盛り上がってしまっていたり.考えている選択肢は次のみっつ.

  • gfortran
  • ifort
  • open64

gfortranはGCCに付属のため始めからインストールされていたので採用.g95という,これからのフォークもあるらしいけれども,公式のportageツリーにいないので,面倒になって試していない.

Intel Fortran Compilerについては,ツリーにいるやつはちょっくら古い上に,emergeに失敗してしまったので,公式ページからダウンロードしてきた.こいつのインストールはinstall.shを実行して指示に従うだけで済んでしまった.
ちなみに,この非商用ライセンスはアカデミックユースも駄目らしいので,今回の(きっかけとしての)目的からは,あんまり良くなさそう.

Open64は,IA-64(Itaniumなんかのこと)とx86/x86_64向けのコンパイラ.元々は,SGIが自社のMIPSマシン向けに開発してたのがGPLv2になって,それを元に開発されているらしい.現在ではAMDだったりNVIDIAだったり中国のスパコン開発周りだかが参加して開発されているとか.そのために高度な最適化機能(自動並列化とか)を持つとのこと.

こいつは何度か試してみたけど,ビルドに成功したことがないので,素直にバイナリパッケージを利用するのがよさそう.


追記

Open64コンパイラをビルドするときは,ソースコードのトップレベルと同じ位置へ別のディレクトリを作って,そこで./configureとmakeをしなければいけないらしい.そうすることでビルドできた.

そのほかにも,Oracle(Sun)のSolaris Studio(前はSun Studio)がLinuxでも利用できるらしい.
http://www.gentoo-wiki.info/HOWTO_Sun_Studio_12_on_Gentoo_Linux

*1:特に必然性があるわけではない.Fortranにも,ましてや数値計算にも