x86 Solaris プラットフォーム向け Fortran 95 リリース
このリリースの Solaris Studio では、x86 プラットフォーム版 Solaris で Fortran コンパイラが使用できるようになっています。Solaris x86 プラットフォームで実行可能なファイルを生成するには、-xtarget 値として generic、native、386、486、pentium、pentium_pro、pentium3、pentium4 のいずれかをコンパイル時に指定します。x86 プラットフォームでのデフォルトは -xtarget=generic です。
x86 プラットフォームの場合、次の f95 機能はまだ実装されていません。使用できるのは、SPARC プラットフォーム上のみです。
区間演算 (コンパイラオプション -xia および -xinterval)
Quad (128 ビット) 演算 (REAL*16 など)
IEEE 組み込みモジュール の IEEE_EXCEPTIONS、IEEE_ARITHMETIC、および IEEE_FEATURES
sun_io_handler モジュール
-autopar、-openmp などの並列化オプション
次の f95 コマンド行オプションは、x86 プラットフォームでのみ使用できます。SPARC プラットフォーム では使用できません。-fprecision、-fstore、および -nofstore
次の f95 コマンド行オプションは、SPARC プラットフォームでのみ使用できます。x86 プラットフォームでは使用できません。-xcode、-xmemalign、-xprefetch、-xcheck、-xia、-xinterval、-xipo、-xjobs、-xlang、-xlinkopt、 -xloopinfo、-xpagesize、-xprofile_ircache、-xreduction、-xvector、 -depend、-openmp、-autopar、-vpara、-XlistMP。また、x86 プラットフォームの場合、-fast は -nofstore を追加します。
実行時のパフォーマンスの向上
今回のリリースでは、多くのアプリケーションの実行時のパフォーマンスが向上するとみられます。最良の結果を得るには、最適化レベルを高くして (-xO4 または -xO5) コンパイルしてください。これらのレベルでは、コンパイラが内部手続きや、形状引き継ぎ、割り付け、あるいはポインタ引数を持つ手続きをインライン化することができます。
Fortran 2003 のコマンド行組み込み関数
Fortran 2003 規格では、コマンド行引数および環境変数を処理するための新しい組み込み関数が紹介されています。今回のリリースの f95 コンパイラには、これらの組み込み関数が実装されています。新しい組み込み関数は次のとおりです。
GET_COMMAND(command, length, status)
command で、プログラムを呼び出すコマンド行全体を返します。
GET_COMMAND_ARGUMENT(number, value, length, status)
value でコマンド行引数を返します。
GET_ENVIRONMENT_VARIABLE(name, value, length, status, trim_name)
環境変数の値を返します。
f95 コマンド行オプションの追加および変更
このリリースの f95 では、次のコマンド行オプションが新しく追加されています。詳細は第 3 章を参照してください。
-xipo_archive={ none | readonly | writeback }
クロスファイル最適化でアーカイブ (.a) ライブラリを取り込むことができます。(SPARC のみ)
-xprefetch_auto_type=[no%]indirect_array_access
間接アクセスされるデータ配列に対して間接先読み命令を生成します。(SPARC のみ)
-xprofile_pathmap=collect_prefix:use_prefix
プロファイルデータファイルのパスマッピングを設定します。以前に -xprofile=collect を使ってコンパイルしたときに使用したディレクトリとは異なるディレクトリにプロファイリングする場合は、-xprofile_pathmap オプションを -xprofile=use オプションと併用してください。
このリリースの f95 では、次のコマンド行オプションのデフォルト値が変更されています。
-xprefetch のデフォルト値は -xprefetch=no%auto,explicit です。
-xmemalign のデフォルト値は -xmemalign=8i です。ただし、-xarch=v9 オプションのいずれかを付けたコンパイルでは、デフォルト値は -xmemalign=8f になります。
-xarch=v9 オプションのいずれかを付けたコンパイルでの -xcode のデフォルト値は abs44 になります。
以前のリリースのコンパイラで使用されていたデフォルト値でコンパイルにするには、次のオプションを明示的に指定します。
32 ビットコンパイルの場合: -xarch=v8 -xmemalign=4s -xprefetch=no 64 ビットコンパイルの場合: -xcode=abs 64 -xprefetch=no
デフォルトの SPARC アーキテクチャーを V8PLUS に変更
デフォルトの SPARC アーキテクチャーは V7 でなくなりました。この Solaris Studio 9 リリースでは、-xarch=v7 のサポートに制限があります。新しいデフォルトは V8PLUS (UltraSPARC) です。-xarch=v8 以上をサポートしているのは Solaris 8 OS だけであるため、-xarch=v7 によるコンパイルは、-xarch=v8 として扱われます。
SPARC V8 システム (SPARCStation 10 など) に配備するには、明示的に -xarch=v8 を使ってコンパイルします。提供のシステムライブラリは、SPARC V8 アーキテクチャーで動作します。
SPARC V7 システム (SPARCStation 1 など) に配備するには、明示的に -xarch=v7 を使ってコンパイルします。提供のシステムライブラリは、SPARC V8 命令セットを利用します。この Solaris Studio リリースでは、SPARC V7 アーキテクチャーをサポートするのは、Solaris 8 だけです。SPARC V8 命令が検出されると、OS はソフトウェアでその命令を解釈します。このためプログラムは実行されますが、パフォーマンスは低下します。
OpenMP: 最大スレッド数を増加
OMP_NUM_THREADS およびマルチタスクライブラリの最大スレッド数が 128 から 256 に増加しました。
OpenMP: 変数の自動スコープ
このリリースの Fortran コンパイラに実装されている、共有メモリー並列プログラミング用の OpenMP API には、並列領域における変数の自動スコープ機能があります。詳細は、『OpenMP API ユーザーズガイド』を参照してください。このリリースでは、OpenMP は SPARC プラットフォームにのみ実装されます。