いくつかのポピュラーなプラットフォーム上でのインストールに関するヒントを以下に記します。 OpenMXは、CとFORTRANのコンパイラ、およびLAPACK、BLAS、FFTライブラリを必要とします。 更に、Cコンパイラはリンクのために使用されるため、コンパイラに対応するFORTRANライブラリを明示的に 指定しなければなりません。下記に一般的なコンパイラおよびLAPACK、BLASライブラリにおけるインストール設定例を記します。 ここで、FFTライブラリは/usr/local/fftw3/にインストールされていると仮定します。
MKLROOT=/opt/intel/mkl
CC=mpicc -O3 -xHOST -openmp -I/usr/local/fftw3/include -I/$MKLROOT/include
FC=mpiifort -O3 -xHOST -openmp -I/$MKLROOT/include
LIB= -L/usr/local/fftw3/lib -lfftw3 -L/$MKLROOT/lib/intel64/ -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lpthread -lifcore
CC=mpicc -fast -mp -Dnosse -I/usr/local/fftw3/include -I/usr/local/acml/gnu64/include
FC=mpif90 -fast -mp -I/usr/local/acml/gnu64/include
LIB= -L/usr/local/fftw3/lib -lfftw3 /usr/local/acml/gnu64/lib/libacml.a /usr/lib64/libg2c.a -pgf90libs
重要:PGI Cコンパイラで-mpオプションを使ってOpenMPを有効にする場合は、プリプロセッサオプション-Dnosseを指定しなければなりません。
MKLROOT=/opt/intel/mkl
CC=mpicc -O3 -ffast-math -fopenmp -I/usr/local/fftw3/include -I/$MKLROOT/include
FC=mpif90 -O3 -ffast-math -fopenmp -I/$MKLROOT/include
LIB= -L/usr/local/fftw3/lib -lfftw3 -L/$MKLROOT/lib/intel64/ -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lpthread -lgfortran
CC=mpicc -O3 -ffast-math -fopenmp -I/usr/local/fftw3/include -I/usr/local/acml/gnu64/include
FC=mpif90 -O3 -ffast-math -fopenmp -I/usr/local/acml/gnu64/include
LIB= -L/usr/local/fftw3/lib -lfftw3 /usr/local/acml/gnu64/lib/libacml.a -lgfortran
その他のコンパイラとLAPACK、BLASライブラリの組み合わせも同様に可能です。 下記のコマンドを使用することで、MPIが利用するコンパイラ(Intel、PGI、GNU等の)についての情報を表示することができます。
%mpicc -compile-info (MPICHの場合) %mpicc -help (OpenMPIの場合)CコンパイラがFORTRANライブラリの保存場所を見つけることができない場合、次のようなリンクエラーが生じることがあります。
Intelコンパイラの場合:
/usr/bin/ld: cannot find -lifcorePGIコンパイラの場合:
/usr/bin/ld: cannot find -lpgf90あるいは
-lpgf90_rpm1, -lpgf902, -lpgf90rtl, -lpgftnrtl
(-pgf90libsは、これらへのショートカットにすぎないため)
GNUコンパイラの場合:
/usr/bin/ld: cannot find -lgfortran
このリンクに関する問題を解決するには、以下の手順でFORTRANライブラリを明示的に指定する必要があります。 まずFORTRANコンパイラの保存場所は次のコマンドで確認することができます。
%which ifort (Intelコンパイラの場合) /opt/intel/fce/10.0.026/bin/ifort %which pgf90 (PGIコンパイラの場合) /opt/pgi/linux86-64/7.0/bin/pgf90 %which gfortran (GNUコンパイラの場合) /usr/bin/gfortran次に、FORTRANライブラリは通常、上記/binディレクトリの親ディレクトリの下にある/libディレクトリにあるため、次のようにLIBを指定します。
LIB= ... -L/opt/intel/fce/10.0.026/lib -lifcore (Intelコンパイラの場合) LIB= ... -L/opt/pgi/linux86-64/7.0/lib -pgf90libs (PGIコンパイラの場合) LIB= ... -L/usr/lib -lgfortran (GNUコンパイラの場合)