*************************************
Lapack オプション(fortran)
*************************************
ifc -tpp7 -xiMKW -O3 prog.F90 -o prog -L/opt/intel/mkl/lib/32/ -lmkl_lapack
-lmkl_p4 -lpthread
*************************************
C++コンパイル、ライブラリpath (by Kenta Yamagiwa)
*************************************
NCS = -I$(ROOT)/usr/local/include -I$(ROOT)/usr/include -I$(ROOT)/usr/X11R6/include
-I./ \ -I$(ROOT)/usr/X11R6/include -I../Class
*******************************************************************************
/O1 速度の最適化を行いますが、コード・サイズが大きくなるだけでさほど高速化につながらない最適化を無効にします。/Og、/Oi、/Os、/Oy、/Ob1、および/Gsと等価です。
/O2 速度について最適化を行いますが、コード・サイズが大きくなるだけでさほど高速化につながらない最適化を無効にします。/O2オプションは、/Oxと同じ効果があります。
/O3 /O2オプションをさらに強力な最適化とともに有効にし、高レベル最適化(ループ変換、OpenMP、プリフェッチなど)を設定します。高レベル最適化では、高水準プログラミング言語で記述されたアプリケーションのループや配列などのソース・コード構造のプロパティを使用します。
最大速度について最適化を行いますが、パフォーマンスが向上しないプログラムもあります。
/Od すべての最適化を無効にします。/Odと/Ogの組み合わせなど、選択的な最適化に使用します。
/Og 広域的な最適化を有効にします。
/Os 速度の最適化を有効にしますが、コード・サイズが大きくなるだけでさほど高速化につながらない最適化は無効にします。
/Ot すべての速度の最適化を有効にします。
/Ox /O2オプションと同じです。/Gs、/Ob1、/Og、/Ot、/Oiを有効にします。
この節では、IA-32 専用の機能である対象とするプロセッサの指定とプロセッサ・ディスパッチ・オプションについて説明します。/G{5|6|7}オプションは、IA-32
プロセッサに対して最適化を行い、/Qx{i|M|K|W}および/Qax{i|M|K|W}オプションは、プロセッサの拡張命令に対応する専用コードを生成するためのサポートを提供します。
******************************************************************************
:: /G{5|6|7}
/G5?PentiumR プロセッサ
/G6?Pentium Pro プロセッサ、Pentium II プロセッサ、およびPentium III プロセッサ(デフォルト)
/G7?Pentium 4 プロセッサ
/Qx{i|M|K|W} i、M、K、Wコードで指定した拡張命令をサポートするプロセッサ上でのみ動作する専用コードを生成します。
/Qax{i|M|K|W} i、M、K、Wで指定した拡張命令をサポートするプロセッサ上でのみ動作する専用コードを生成するとともに、汎用の IA-32 コードも生成します。
例えば、Pentium III プロセッサにおいて、ほとんどが整数コードであり、浮動小数点コードはごくわずかである場合、整数データでは MMXR テクノロジの拡張命令が最適であるため、/QaxKオプションではなく、/QaxMオプションを使用してコンパイルを行えます。
これらのオプションは、サポートしている拡張命令と下位互換性があります。IntelR Pentium 4 プロセッサでは、K、M、またはiで指定したそれ以前のいずれかのプロセッサにコードの照準を合わせられます。
**************************************************************************************
Pentium 4に特化したオプティマイズ -tpp7