トップページ -> コンピュータ -> 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 の設定

  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