Oracle® Solaris Studio 12.4: 数値計算ガイド

印刷ビューの終了

更新: 2015 年 1 月
 
 

5.1 サポートされているオペレーティングシステム、ハードウェア、およびメモリーモデル

Oracle Solaris Studio 12.4 は、Update 10 以降の Oracle Solaris 10、Oracle Solaris 11、Oracle および Red Hat Enterprise Linux リリース 5 および 6 をサポートしています。

Oracle Solaris Studio は、対応する Oracle Solaris リリースと同じハードウェアをサポートしています。SPARC の場合、Oracle Solaris 10 および 11 は 64 ビットアドレス空間メモリーモデルをサポートする SPARC プロセッサのみをサポートします。x86 の場合、Oracle Solaris 11 は 64 ビットアドレス空間メモリーモデルをサポートする x86 プロセッサのみをサポートします。Oracle Solaris 10 は、32 ビットアドレス空間メモリーモデルのみをサポートする多くの x86 プロセッサもサポートします。

すべての 64 ビットプロセッサは、32 ビットと 64 ビットのどちらのアドレス空間用にコンパイルされたプログラムでも実行できます。Oracle Solaris 10 および 11 は、64 ビットオペレーティングシステムでの 32 ビットプログラムの実行をサポートしています。

32 ビットおよび 64 ビットのアドレス指定は、コンパイル時に –m32 および –m64 コマンド行オプションで選択されます。これらは C の整数型およびポインタ変数のサイズに影響します。オペレーティングシステムには、32 ビットおよび 64 ビットのランタイムライブラリが複数用意され、コンパイラは特定の言語用に追加ライブラリを提供します。

64 ビットアドレス空間を必要とするプログラムは、–m64 を使用してコンパイルする必要があります。ほとんどのプログラムは、どのアドレスモデルでもコンパイル可能であり、正しく実行できるため、当然、どのモデルがより速いかが問題になります。大量の整数とポインタデータをメモリーに対して出し入れする C プログラムでは、–m64 を使用すると速度が半減する可能性があります。ただし、64 ビットアプリケーションバイナリインタフェース (ABI) は 32 ビット ABI より多くのレジスタを含むため、必要なメモリー移動が少なくてすむ可能性があります。ほとんどのプログラムにとって、パフォーマンスに大きな差はありませんが、特定のプログラムの場合は、両方の方法でコンパイルし、正確さとパフォーマンスのテストを実施して確認することをお勧めします。


注 -  Sun Studio 11 以前のリリースでは、メモリーモデルは、–m32–m64 などの明示的なオプションではなく、メモリーモデルに応じて異なる名前が付けられた –xarch オプションに組み込まれていました。Sun Studio 12 では、メモリーモデルオプションとアーキテクチャーオプションは切り離されています。