計算機メモ目次 (目的のページと内容が一致しない場合, 目次から探してください)
Fedora Core 5 にて Intel Fortran Compiler を用いて LAPACK 3.0 ライブラリを作成する
Fedora Core 5 の環境
Intel Core 2 Duo マシン上の coLinux 0.6.4 を使って起動したもの
コンパイラ
Intel の Fortran および C++ コンパイラが非商用利用に限り無償配布されている.
ただし GNU の c++ パッケージのインストールが必要.
http://www.intel.com/cd/software/products/asmo-na/eng/219771.htm
/opt 以下にインストールされるので利用する際は
LD_LIBRARY_PATH=/opt/intel/fc/9.1.036/lib:$LD_LIBRARY_PATH
PATH=/opt/intel/fc/9.1.036/bin:$PATH
などの環境の調整が必要
LAPACK 3.0 のありか
version 3.0 + UPDATES May 31, 2000
http://www.netlib.org/lapack/index.html
非公式パッチ
http://atlas.riken.jp/~shinkai/cactus/lapack-patch-oct4-2002.tgz
LAPACKのコンパイル
INSTALL/make.inc.LINUX をトップの make.inc に上書きコピーし
若干変更する
FORTRAN = ifort
OPTS = -funroll-loops -msse3 -O3
DRVOPTS = $(OPTS)
NOOPT = -O0
LOADER = ifort
LOADOPTS = -O0 -L/opt/intel/fc/9.1.036/lib -lsvml
(-msse3 は SSE3 対応[Core Duo/Core2 Duo/Pentium4など]の CPU 向け最適化オプション)
BLAS/SRC/Makefile の最終行に次の2行を追加
dcabs1.o:
$(FORTRAN) $(NOOPT) -c $*.f
コンパイル実行
cd BLAS/SRC; make
cd ../..; make
テストで下記のような不具合が出るが無視する.
(エラーの内容は "SIGSEGV, segmentation fault" なのでおそらく配列のオーバー)
Timing square REAL LAPACK linear equation routines
./xlintims < stime.in > stime.out 2>&1
make[1]: *** [stime.out] Error 174
make[1]: Leaving directory `/usr/home/daigo/LAPACK/TIMING'
目的のライブラリ lapack_LINUX.a と blas_LINUX.a はできているが,
念のために, やり残した make blas_timing を実行する (エラー無し).
ライブラリのコピー
cp lapack_LINUX.a /usr/local/lib/liblapack.a
cp blas_LINUX.a /usr/local/lib/libblas.a
参照
http://atlas.riken.jp/~shinkai/cactus/LinuxPCcluster.html#lapack
http://icl.cs.utk.edu/lapack-forum/viewtopic.php?t=78
http://icl.cs.utk.edu/lapack-forum/viewtopic.php?t=182
計算機メモ目次 (目的のページと内容が一致しない場合, 目次から探してください)