計算機メモ目次 (目的のページと内容が一致しない場合, 目次から探してください)

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


計算機メモ目次 (目的のページと内容が一致しない場合, 目次から探してください)
海洋大循環分野
daigo@ocg.aori.u-tokyo.ac.jp