トップページ -> 情報工学,情報スキルの教材 -> Windows で開発環境やツールを整備 -> Windows に LAPACK バージョン 3.1.1 をインストール(Windows 上の Cygwin にインストール)
[サイトマップへ]  

Windows に LAPACK バージョン 3.1.1 をインストール(Windows 上の Cygwin にインストール)

LAPACK とは,行列に関する種々の問題(連立1次方程式,固有値問題,などなど多数).FORTRAN で書かれています.LAPACK は,BLAS の機能を利用して,種々の機能を実現します.(BLAS を速いものに入れ替えれば,LAPACK も速くなる).

この Web ページでは,LAPACK のインストール手順を説明します.

LAPACK バージョン 3.2.1 のビルドとインストールについては,別の Web ページで説明しています.

参考 Web ページ: http://cygwin.com/packages/lapack/lapack-3.0-8-src


前準備

前もってインストールしておくべきソフトウエア

前もって調べておく事項


LAPACK のコンパイルに必要なソフトウエア等を Cygwin のパッケージを使ってインストール

Cygwin のセットアッププログラム setup.exe を使って LAPACK バージョン 3.1.1 をソースプログラムからコンパイルするのに必要となる他のソフトウエアをインストールします.簡単にインストールできます.

  1. セットアッププログラムの開始

  2. パッケージ選択画面 (Select Packages)」(下図)まで進む

  3. パッケージ選択画面で,パッケージを選ぶ

    下記のパッケージを選ぶ.

    「keep」になっている場合には,インストール済みなので,keep のままでよい.

  4. 終了の確認


インストール手順

  1. LAPACK の Web ページを開く

    http://www.netlib.org/lapack

  2. バージョン 3.1.1 をダウンロード

    ※ マシンによっては,LAPACK バージョン 3.2 がうまくビルドできないことがあります. 原因は不明です.ですので、この Web ページでは、 バージョン 3.1.1 の手順を書いています。

  3. ダウンロードしたファイルを解凍

    解凍は, lhaplus のような解凍ツールを使って,簡単に行える.

    C:\cygwin\tmp の下に丸ごとコピー.

  4. make.inc を作成

    Cygwin のコンソール で,次のコマンドを実行

    cd /tmp/lapack-3.1.1
    cp make.inc.example make.inc
    

  5. make.inc を編集

    BLASLIIB の行Fを書き換えます。

    BLASLIB = /usr/lib/libgoto.a  
    

    ※ LAPACK バージョン 3.1.1 では,「-O」を付けないほうがよいです.

  6. パッチ

    Windows に GotoBLAS と CBLAS をインストールの Web ページの記述に従って,GotoBLAS のインストールしたときに出来たソースコードに, lapack バージョン 3.1.1 用のパッチが入っている

    patch -p1 ../GotoBLAS/patch.for_lapack-3.1.1
    

  7. ビルド
    make -k
    

  8. インストール
    cd /tmp/lapack-3.1.1
    cp lapack_LINUX.a /usr/lib/liblapack_LINUX.a
    cp tmglib_LINUX.a /usr/lib/libtmglib_LINUX.a
    

参考

上記の手順で,苦労して LAPACK を,ソースコードを使ってインストールするのと Cygwin のパッケージを使ってインストールするのと,どちらがよいか判断に迷いました. Octave を使って,ごく簡単な性能比較を行ってみました

※ Cygwin のパッケージの LAPACK は,liblapack.a, 上記の手順でインストールした LAPACK は, liblapack_LINUX.a と libtmglib_LINUX.a です.ファイル名が違うので,区別がつきます.

下記の Octave のプログラム を私のパソコンで実行してみました.

a = rand(1000)
tic(); b=eig(a); toc();

以上の理由で,「LAPACK をソースコードを使ってインストールする手順」をこの Web ページに書いたのは意味があった,と少し安心しました.

※ 「私のパソコン」と,ぼやかして書いているのは理由があります.必ずしも速くなるとは限らないと考えているからです.本格的に使うのなら,各自,自分のパソコンで比較してみる価値はあるでしょう.