トップページ -> インストール,設定,利用 -> Linux の C/C++ プログラミング用ツールとライブラリ -> Linux で LAPACK バージョン 3.4.0 のダウンロードとビルドとインストール (Ubuntu や Fedora を使用)
[サイトマップへ], [サイト内検索へ]

Linux で LAPACK バージョン 3.4.0 のダウンロードとビルドとインストール (Ubuntu や Fedora を使用)

In this Web page, download and build and install LAPACK 3.4.0 on Ubuntu / Fedora system are explained.

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

この Web ページでは,Linux での LAPACK のビルドとインストールの手順を図解で説明する.

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


謝辞

「octave for windowsメモの筆者」様から, http://c.2ch.net/ の「データ解析ツールoctaveを語ろう」掲示板を通し, さまざまな情報とご示唆を頂きました.敬意を込めて, 「octave for windowsメモの筆者」様の URL を記しておきます. http://www.tatsuromatsuoka.com/octave/jpn/OctaveWinMemo.html ⇒ この Web ページは,分かりやすく,また,Octave に関係する種々の有益な情報(ここにしか無いオンリー・ワンの情報)が載ったページと言ってよいでしょう.



この Web ページでは、以下,次の3通りの手順について説明している


Ubuntu で LAPACK のソースコードのダウンロードとビルドとインストールを行うシェルスクリプト

楽をしたいのでシェルスクリプトを作りました。 1つ1つコマンドを入力したい(シェルスクリプトにしたくない)場合については、この Web ページの下で説明している.

(Automated script to donwload, build and install LAPACK version 3.4.0 on Ubuntu System)

#!/bin/bash

sudo apt-get -yV install build-essential

# GNU gcc, g++, gfortran を使う場合: gcc, g++, gfortran
# Intel Compiler を使う場合: CC=icc, icpc, ifort 
if [ -x /opt/intel/bin/icc ]; then 
  if [ -x /opt/intel/bin/ifort ]; then 
    echo USE Intel Compiler 
    USEINTEL=YES
  fi
fi

if [ "$USEINTEL" = "YES" ]; then
  if [ `arch` = 'i686' ]; then
    source /opt/intel/bin/compilervars.sh ia32
  fi
  if [ `arch` = 'x86_64' ]; then
    source /opt/intel/bin/compilervars.sh intel64
  fi
fi

# LAPACK を Ubuntu でパッケージを用いてインストールを行う (install LAPACK using package)
mkdir /tmp/lapack
cd /tmp/lapack
apt-get source lapack
sudo apt-get -yV build-dep lapack
sudo apt-get -yV install liblapack-dev
sudo apt-get -yV install liblapack-doc
sudo apt-get -yV install liblapack-pic
sudo apt-get -yV install liblapack-test
sudo apt-get -yV install liblapack3gf

# BLAS 参照実装のダウンロードとビルド (Download BLAS reference implementarion and build it and install it) 
cd /tmp
if [ ! -f blas.tgz ]; then 
    wget http://netlib.org/blas/blas.tgz 
fi 
rm -rf BLAS
tar -xvzof blas.tgz
cd /tmp/BLAS
if [ "$USEINTEL" = "YES" ]; then
# Intel Compiler
  if [ `arch` = 'i686' ]; then
    make LOADER="ifort -fPIC" FORTRAN="ifort -m32 -fPIC" 
  elif [ `arch` = 'x86_64' ]; then
    make LOADER="ifort -fPIC" FORTRAN="ifort -m64 -fPIC" 
  fi
else
# GNU Compiler
  if [ `arch` = 'i686' ]; then
    make LOADER="gfortran -fPIC" FORTRAN="gfortran -m32 -fPIC" 
  elif [ `arch` = 'x86_64' ]; then
    make LOADER="gfortran -fPIC" FORTRAN="gfortran -m64 -fPIC" 
  fi
fi

# LAPACK バージョン 3.4.0 のダウンロードとビルドとインストール (Download lapack 3.4.0 and build it and install it) 
sudo cpufreq-selector -g performance

cd /tmp
if [ ! -f lapack-3.4.0.tgz ]; then 
    wget http://www.netlib.org/lapack/lapack-3.4.0.tgz
fi 
rm -rf lapack-3.4.0
tar -xvzof lapack-3.4.0.tgz
cd /tmp/lapack-3.4.0

if [ "$USEINTEL" = "YES" ]; then
# Intel Compiler
  F1="-fPIC -fomit-frame-pointer -mfpmath=sse   -fexceptions -funroll-all-loops -O3 -march=native"
  cp INSTALL/make.inc.ifort make.inc
  if [ `arch` = 'i686' ]; then
    make LOADER="ifort -fPIC" FORTRAN="ifort -m32 -mieee-fp $F1 " BLASLIB="/tmp/BLAS/blas_LINUX.a -lpthread -ldl"
  elif [ `arch` = 'x86_64' ]; then
    make LOADER="ifort -fPIC" FORTRAN="ifort -m64 -mieee-fp $F1 " BLASLIB="/tmp/BLAS/blas_LINUX.a -lpthread -ldl"
  fi
else
# GNU Compiler
  F1="-fPIC -fomit-frame-pointer -mfpmath=sse -msse3 -fno-schedule-insns2 -fopenmp -fno-tree-loop-optimize  -fno-tree-vectorize -fexceptions -funroll-all-loops -O3 -march=native"
  cp make.inc.example make.inc
  if [ `arch` = 'i686' ]; then
    make LOADER="gfortran -fPIC" FORTRAN="gfortran -m32 -mieee-fp $F1" BLASLIB="/tmp/BLAS/blas_LINUX.a -lgfortran -lgomp -lpthread -ldl"
  elif [ `arch` = 'x86_64' ]; then
    make LOADER="gfortran -fPIC" FORTRAN="gfortran -m64 -mieee-fp $F1" BLASLIB="/tmp/BLAS/blas_LINUX.a -lgfortran -lgomp -lpthread -ldl"
  fi
fi

sudo cp liblapack.a /usr/local/lib/liblapack.a
sudo cp libtmglib.a /usr/local/lib/libtmglib.a
sudo chmod 755 /usr/local/lib/liblapack.a
sudo chmod 755 /usr/local/lib/libtmglib.a

# LAPACK の共有オブジェクト (LAPACK shared object)
cd /tmp/lapack-3.4.0
rm -rf hoge
mkdir hoge
cd hoge
ar x ../liblapack.a
gcc -shared -o liblapack.so *.o
sudo cp liblapack.so /usr/local/lib/liblapack.so

cd /tmp/lapack-3.4.0
rm -rf hoge
mkdir hoge
cd hoge
ar x ../libtmglib.a
gcc -shared -o libtmglib.so *.o
sudo cp libtmglib.so /usr/local/lib/libtmglib.so

■ Linux で,LAPACK をパッケージを用いてインストールしたい場合の手順 (Ubuntu や Fedora を使用)

事前準備

Ubuntu でパッケージを用いてインストールする場合の手順

◆ Ubuntu での操作手順(例)(パッケージを用いてインストールする場合

sudo apt-get -yV install liblapack-dev
sudo apt-get -yV install liblapack-doc
sudo apt-get -yV install liblapack-pic
sudo apt-get -yV install liblapack-test
sudo apt-get -yV install liblapack3gf

◆ Ubuntu での操作手順(例)(ソースパッケージを用いてビルドとインストールを行う場合

※ソースパッケージに関する設定については,別のページで説明している.

mkdir /tmp/lapack
cd  /tmp/lapack

apt-get source lapack
sudo apt-get -yV build-dep lapack
cd lapack-3.3.0
sudo dpkg-buildpackage -uc -us -rfakeroot 
cd ..
sudo dpkg -i *.deb

Fedora でパッケージを用いてインストールする場合の手順

◆ Fedora での操作手順(例)(パッケージを用いてインストールする場合

sudo yum -y install lapack-devel
sudo yum -y install lapack-static 
sudo yum -y install lapack

■ Linux で, コマンドを手入力して,LAPACK のソースコードのダウンロードとビルドとインストールを行う場合の手順 (Ubuntu や Fedora を使用)

最新版を追いかけたい場合など

◆ LAPACK バージョン 3.4.0 のソースコードのダウンロード

LAPACK の Web ページ: http://www.netlib.org/lapack

  1. ダウンロード
    cd /tmp
    wget http://www.netlib.org/lapack/lapack-3.4.0.tgz
    
  2. ダウンロードしたファイルを /tmp にコピーする
  3. ソースコードの展開
    cd /tmp
    rm -rf lapack-3.4.0
    tar -xvzof lapack-3.4.0.tgz 
    

    ◆ ソフトウエア開発環境などのインストール

    ◆ LAPACK のビルドとインストール

    1. make.inc を作成
      cd /tmp/lapack-3.4.0
      cp make.inc.example make.inc
      
    2. LAPACK のmake.inc の設定
      • FORTRAN の設定

        ■ 設定例

        • 32 ビット Linux の場合: FORTRAN="gfortran -m32 -fPIC"
        • 64 ビット Linux の場合: FORTRAN="gfortran -m64 -fPIC"

        -fPIC」を入れている理由は,あとで,共有ライブラリ(.so)を作りたいから.

        Core, i3, i5, i72 プロセッサの場合のFORTRAN の設定例

        • 32 ビット Linux の場合: FORTRAN="gfortran -m32 -fPIC -mieee-fp -fomit-frame-pointer -mfpmath=sse -msse3 -fno-schedule-insns2 -fopenmp -fno-tree-loop-optimize -fimplicit-none -fno-tree-vectorize -fexceptions -funroll-all-loops -O3 -fimplicit-none -march=native"
        • 64 ビット Linux の場合: FORTRAN="gfortran -m64 -fPIC -mieee-fp -fomit-frame-pointer -mfpmath=sse -msse3 -fno-schedule-insns2 -fopenmp -fno-tree-loop-optimize -fimplicit-none -fno-tree-vectorize -fexceptions -funroll-all-loops -O3 -fimplicit-none -march=native"

        ※ -mnative は Pentium 系のマシンにおいて「そのマシンの CPU に特化したコードを生成する」という意味.詳しくは「gcc -E -v -march=native -」

      • BLASLIB, LOADOPTS の設定

        BLASLIIB の行 には,BLAS のライブラリファイル名(1つ)を書きます.

        ■ GotoBLAS の設定例

        BLASLIB = /usr/lib/libgoto2.a -lpthread
        

        ■ ATLAS のマルチスレッド版ライブラリファイルを使う設定例

        BLASLIB = /usr/atlas/lib/libptf77blas.a -latlas -lpthread =lgomp
        LOADOPTS = -L/usr/atlas/lib 
        

        ※ ATLAS のインストール時の設定によって変わるので, 詳細を,別の Web ページに記述している

        ■ ATLAS のシングルスレッド版ライブラリファイルを使う設定例

        BLASLIB = /usr/atlas/lib/libf77blas.a -latlas
        LOADOPTS = -L/usr/atlas/lib 
        
    3. ビルド
      make
      
    4. ビルド結果の確認

      ※ LAPACK のテストの時点で,ATLAS が原因でエラーが出ている場合 「rm /usr/atlas/lib/*.so」を実行すると,改善される場合がある.

    5. インストール
      sudo cp liblapack.a /usr/local/lib/liblapack.a
      sudo cp libtmglib.a /usr/local/lib/libtmglib.a
      sudo chmod 755 /usr/local/lib/liblapack.a
      sudo chmod 755 /usr/local/lib/libtmglib.a
      
      # LAPACK の共有オブジェクト (lapack shared object)
      cd /tmp/lapack-3.4.0
      rm -rf hoge
      mkdir hoge
      cd hoge
      ar x ../liblapack.a
      gcc -shared -o liblapack.so *.o
      sudo cp liblapack.so /usr/local/lib/liblapack.so
      
      cd /tmp/lapack-3.4.0
      rm -rf hoge
      mkdir hoge
      cd hoge
      ar x ../libtmglib.a
      gcc -shared -o libtmglib.so *.o
      sudo cp libtmglib.so /usr/local/lib/libtmglib.so
      
    6. (オプション)variants のビルド
      make variants
      
    7. (オプション)make variants_testing の実行とインストール
      make variants_testing
      cd SRC/VARIANTS/LIB
      cp *.a /usr/lib
      

    本サイトのサイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.

    問い合わせ先: 金子邦彦(かねこ くにひこ) [image]