fortran66のブログ

fortran について書きます。

Intel Fortran Version 14.0 出る!

Intel Fortran Composer XE 2013 SP1 (compiler 14.0)

先日、Intel Fortran Composer XE 2013 SP1 (コンパイラとしては Ver. 14.0)が出ました。手違いからか数日前にサイトに現われたり消えたりしていましたが…

今回 Fortran2003 対応が若干進んで、ユーザー定義派生型のI/O機能が新たに実装されました。ユーザー定義派生型のI/O機能を使うと、派生型に contain されるメソッドに、所定の形式にのっとった入出力用サブルーチンを定義しておいて、fortmat文にユーザー定義派生型用へのフォーマット指定を書くことが出来るようになります。

これが無い場合、データ構造が複雑な派生型をフォーマット付きで入出力するとき、個々の要素に分けてフォーマットを指定する必要があります。

(詳しくは見ていないのですが Modern Fortran Explained の例題では再帰的な呼びだしの物がうまくコンパイルできないようです。)

Fortran2003 の重要な機能で未実装なものは、パラメータ付きユーザー定義型派生型のみとなったもようです。是非とも引き続き Fortran2008 規格の実装に邁進していただくことを切に希望いたします。

その他の update 内容については、intel の Steve Lionel がまとめています。

http://software.intel.com/en-us/forums/topic/472120

最近の Intel は、Nvidia の CUDA に対抗するための Xeon Phi 用のコンパイラ拡張に力を注いでいるようで、そちら以外は進展が遅いです。OpenMP 4.0への一部対応もなされましたが、それももっぱら Phi がらみのようです。

ちなみに Nvidia は PGI コンパイラを出している Portland Group を先日買収したので、今後は CUDA がらみは PGI が、Xeon Phi がらみは Intel がそれぞれ専用コンパイラを出すという形で競争が続くものと思われます。

Fortran 規格上では、データパラレルの並列言語機能は数多くありますが、タスクパラレル型の文法は存在しないので、OpenMP3.0 のコンパイラ指定子で実現するしかありません。