UbuntuでATLAS(3.9.51)とLAPACK(3.3.1)を入れる。

kkaneko.comを見ながら、新しいバージョンを入れてみたときのメモです。

方針

ATLAS3.9.51は私の環境ではだめでした。ATLASのインストールは問題がありませんが、LAPACKがctestのところでSegmentation faultで止まります。3.9.25は止まらないことを確認しています。

引き続きATLAS(1回目)→LAPACK→ATLAS(2回目)という手順で行います。LAPACK、ATLASともに、パッケージを使わずに自力で入れます。

sudo apt-get install gfortran
# ATLAS(1回目)
cd /tmp
wget http://sourceforge.net/projects/math-atlas/files/Developer%20%28unstable%29/3.9.25/atlas3.9.25.tar.bz2
tar -xvjof atlas3.9.25.tar.bz2
mv ATLAS ATLAS3.9.25
cd ATLAS3.9.25
mkdir B1
cd B1
sudo ../configure -t 2 -m 2660 -b 64 --prefix=/usr/local/atlas -Fa alg '-fopenmp -fPIC'
sudo make
sudo make time
cd lib
#ATLASの共有ライブラリ(.so)の作成は自力で行う。←New!
#以下のライブラリに対して、作業を繰り返し行う。
#libatlas.a
#libcblas.a
#libptcblas.a
#liblapack.a
#libf77blas.a
#libptf77blas.a
sudo rm -rf hoge
sudo mkdir hoge
cd hoge
sudo ar x ../ライブラリ.a
sudo gcc -shared -o ライブラリ.so *.o
sudo cp ライブラリ.so ../ライブラリ.so
cd ..
#
cd ..
sudo rm -f /usr/local/atlas/lib/*.so
sudo rm -f /usr/local/atlas/lib/*.a
sudo make install
#/etc/ld.so.confに、/usr/local/atlas/libをあらかじめ追加しておく。
sudo /sbin/ldconfig
#確認
#自力で作った共有ライブラリではない場合、
#以下のコマンドを使ってもリンクが見えない。
ldconfig -p|grep atlas
# LAPACK
cd /tmp
wget http://www.netlib.org/lapack/lapack-3.3.1.tgz
tar -xvzof lapack-3.3.1.tgz
cd /tmp/lapack-3.3.1
cp make.inc.example make.inc
sudo make cleanall
sudo make LOADER="gfortran -g -fPIC" FORTRAN="gfortran -fimplicit-none -g -m64 -fPIC" OPTS="-mieee-fp -fomit-frame-pointer -fno-schedule-insns2 -fopenmp -fno-tree-loop-optimize -funroll-all-loops -O3 -fno-tree-vectorize -fexceptions -march=native" LOADOPTS="-L/usr/local/atlas/lib" BLASLIB="-lptf77blas -latlas -lgfortran -lgomp -lpthread -ldl"
sudo cp lapack_LINUX.a /usr/local/lib/liblapack_LINUX.a
sudo cp tmglib_LINUX.a /usr/local/lib/libtmglib_LINUX.a
sudo chmod 755 /usr/local/lib/liblapack_LINUX.a
sudo chmod 755 /usr/local/lib/libtmglib_LINUX.a

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

cd /tmp/lapack-3.3.1
sudo rm -rf hoge
sudo mkdir hoge
cd hoge
sudo ar x ../tmglib_LINUX.a
sudo gcc -shared -o tmglib_LINUX.so *.o
sudo cp tmglib_LINUX.so /usr/local/lib/libtmglib_LINUX.so
# ATLAS(2回目)
cd /tmp
cd ATLAS3.9.25
mkdir B2
cd B2
#「-Ss flapack /tmp/lapack-3.3.1/SRC -Si latune 1」を加える。
sudo ../configure -t 2 -m 2660 -b 64 --prefix=/usr/local/atlas -Fa alg '-fopenmp -fPIC' -Ss flapack /tmp/lapack-3.3.1/SRC -Si latune 1
#1回目と全く同じ。
sudo make
sudo make time
cd lib
#ATLASの共有ライブラリ(.so)の作成は自力で行う。←New!
#以下のライブラリに対して、作業を繰り返し行う。
#libatlas.a
#libcblas.a
#libptcblas.a
#liblapack.a
#libf77blas.a
#libptf77blas.a
sudo rm -rf hoge
sudo mkdir hoge
cd hoge
sudo ar x ../ライブラリ.a
sudo gcc -shared -o ライブラリ.so *.o
sudo cp ライブラリ.so ../ライブラリ.so
cd ..
#
cd ..
sudo rm -f /usr/local/atlas/lib/*.so
sudo rm -f /usr/local/atlas/lib/*.a
sudo make install