-
-
-
-
-
-
-
-
Lapack(Linear Algebra Package)はその名の通り線形計算ライブラリです。連立1次方程式、行列の固有値・固有ベクトル等の計算ルーチンが集まっています。LAPACKは後述のBLASを利用しています。そのため、BLASが汎用のものか各CPU向けに最適化されたものかで、LAPACKの処理速度は大きく変わります(十倍から数十倍もかわることがある。)
BLASはベクトルと行列の基本演算を行います。「基本」というところがポイントで、あまり複雑な処理は行いません。BLASより複雑な処理を行うことができるLAPACKはこのBLASを利用しています。BLASにはLevel1,Level2,Level3があります。
非線形方程式・非線形最小二乗法問題の解を計算する。FORTRANのみ。
CLAPACKはもともとFORTRANで開発されたLAPACKをF2Cを用いてCに変換したものです。
http://phase.etl.go.jp/mirrors/netlib/clapack/からclapack.tgz をダウンロード
以下インストールの手順。Linuxにインストールする場合です。
tar zxvf clapack.tgz まず適当なディレクトリに解凍します。
cp -f INSTALL/make.inc.LINUX ./ make.incファイルは付属のものをそのまま使iいました。
make f2clib
make blaslib
cd SRC
make ここでlapack_LINUX.aができます。
cd ../TESTING/MATGEN/
make
cd ../../
ルートになって
cp lapack_LINUX.a /usr/local/lib/liblapack.a 名前をわかりやすく変更しました。lib-という風に名前を付けなければいけません。
cp blas_LINUX.a /usr/local/lib/libblas.a
cp F2CLIBS/libF77.a /usr/local/lib/ これは名前はそのまま。
最後に /sbin/ldconfig
コンパイルとリンクは gcc hoge.c -llapack
-lblas -lF77 とします。
ATLAS(Automatically Tuned Linear Algebra
Software)はBLASの一つですが、コンパイル時に自動的にCPUを識別しそのCPUに最適なBLASを構築してくれます。そのためLAPACKに付属の汎用BLASとは比較にならないほどのパフォーマンスをたたき出すことができます。LAPACKもATLASを利用することで高速化することができます。
http://www.netlib.org/atlas/からatlas3.2.1.tgzをダウンロードする。
tar zxvf atlas3.2.1.tgz
make 色々と質問されますが難しくはありません。焦らず答えていきましょう。アーキテクチャーを自動的に判別してくれます。
make install arch=<arch> 少し時間がかかります。終わるとATLAS/lib/<arch>にライブラリができています。
あとはCLAPACKのときと同じように、できたライブラリを/usr/local/libにコピーして/sbin/ldconfigとします。
解凍して、make.incファイルをコピーするところまでは「CLAPACKのインストール1」と同じです。
make cblaswrap
CLAPACKのディレクトリにあるmake.incのBLASLIB= の行を以下のように書き換えます。
BLASLIB = libcblaswr.a libcblas.a libatlas.a
それぞれのライブラリの前にはパスを指定してください。
あとは「CLAPACKのインストール1」と同じように(make
f2clib...)やればよいです。
コンパイルとリンクは gcc hoge.c -llapack
-lcblaswr -lcblas -lF77 -latlas とします。
http://www.oishi.info.waseda.ac.jp/~oishi/index-j.html
http://www.cs.utk.edu/~ghenry/hidden/h4GMHy2/blas.html
http://developer.intel.com/software/products/mkl/index.htm
http://phase.etl.go.jp/mirrors/netlib/
すでに最適化されているATLAS