いくつかのポピュラーなプラットフォーム上でのインストールに関するヒントを以下に記します。 OpenMXは、CとFORTRANのコンパイラ、およびScaLAPACK、BLACS、FFTW3ライブラリを必要とします。 更に、Cコンパイラはリンク時に使用されるため、ご使用のコンパイラに対応するFORTRANライブラリを明示的に 指定しなければなりません。下記に一般的なコンパイラおよびScaLAPACK、BLACSライブラリにおけるインストール設定例を記載します。 ここで、FFTライブラリは/usr/local/fftw3/にインストールされていると仮定しています。
MKLROOT = /opt/intel/mkl
CC = mpicc -O3 -xHOST -ip -no-prec-div -qopenmp -I/usr/local/fftw3/include
FC = mpif90 -O3 -xHOST -ip -no-prec-div -qopenmp
LIB= -L/usr/local/fftw3/lib -lfftw3 \
-L$MKLROOT/lib/intel64 -lmkl_scalapack_lp64 -lmkl_intel_lp64 \
-lmkl_intel_thread -lmkl_core -lmkl_blacs_open mpi_lp64 \
-lmpi_usempif08 -lmpi_usempi_ignore_tkr \
-lmpi_mpifh -liomp5 -lpthread -lm -ldl
MKLROOT = /opt/intel/mkl
CC = mpicc -O3 -xHOST -ip -no-prec-div -qopenmp -I/usr/local/fftw3/include
FC = mpif90 -O3 -xHOST -ip -no-prec-div -qopenmp
LIB= -L/usr/local/fftw3/lib -lfftw3 \
-L$MKLROOT/lib/intel64 -lmkl_scalapack_lp64 -lmkl_intel_lp64 \
-lmkl_intel_thread -lmkl_core -lmkl_blacs_open mpi_lp64 \
-lmpi_usempif08 -lmpi_usempi_ignore_tkr \
-lmpi_mpifh -liomp5 -lpthread -lm -ldl
CC = mpicc -O3 -ffast-math -fopenmp -Dkcomp -I/usr/local/include -I/home/ytl/openmpi-3.0.1/ompi/include
FC = mpif90 -O3 -ffast-math -fopenmp -Dkcomp -I/home/ytl/openmpi-3.0.1/ompi/include
LIB= -L/usr/local/lib -lfftw3 -L/home/ytl/openmpi-3.0.1/ompi -lmpi -lmpi_mpifh \
-L/home/ytl/Packages/lapack-3.7.0 -llapack -lrefblas -lgfortran
CC = mpifccpx -Kfast -Dnosse -Dkcomp
FC = mpifrtpx -Kfast -Dkcomp
LIB = -lfftw3 -SCALAPACK -SSL2BLAMP
その他のコンパイラとScaLAPACK、BLACSライブラリの組み合わせも同様に可能です。
下記のコマンドを使用することで、MPIが利用するコンパイラ(Intel、PGI、GNU等の)についての情報を表示することができます。
%mpicc -compile-info (MPICHの場合) %mpicc -help (OpenMPIの場合)
/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
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コンパイラの場合)
Intel Math Kernel Libraryについては以下のウェブサイト (Intel Math Kernel Library Link Line Advisor)を利用できます。
https://software.intel.com/en-us/articles/intel-mkl-link-line-advisorこのwebsiteを利用することで、使用環境に応じて、どの様にライブラリのリンクと コンパイルオプションを設定するべきかに関して詳細な情報が得られます。