Cygwin (64 bit) への LAPACK のインストール
今度は LAPACK のインストール。
ALTAS を kkaneko.com に従ってインストールしてみたものの configure で上手くいかない。
あと
$ cat /proc/cpuinfo
で CPU のコア数を調べるとき、鵜呑みにしないで Intel や AMD のサイトを確認したほうがいいかも。(物理的なコア数と仮想コア数が一致しないらしい。)
結局、諦めて LAPACK の BLAS を使う。
スペックは PC 周りの設定 - potass' blog 参照。
結論
前提として Cygwin のインストールで gcc と gcc-fortran をインストールしておく。
Cygwin の setup.exe (私の場合は setup-x86_64.exe、ver. 2.850) を起動して*1、
Debug/lapack-debuginfo
Math/lapack
Math/liblapack-devel
Math/liblapack-doc
Math/liblapack 0
をインストールした。(version はすべて 3.5.0-2 だった。)
なお、今回 arpack 系もインストールしておいた。
うまく行ったかどうかは ここ のソースファイル (sample.c とする。) をコンパイルしてみればいい。
/*-- source: http://www.cazoo.jp/calcsoft/library/lapack/clapack/usage/dgesv/ --*/ #include <stdio.h> #define N 3 double A[N*N], x[N]; int main (void) { static long int i, n = N, inc = 1, info, piv[N]; A[0]=1.;A[1]=3.;A[2]=1.; A[3]=1.;A[4]=1.;A[5]=-2.; A[6]=1.;A[7]=-3.;A[8]=-5.; x[0]=1.;x[1]=5.;x[2]=10.; fprintf(stdout, "N = %d\n", N); dgesv_(&n, &inc, A, &n, piv, x, &n, &info); for(i = 0; i < N; i++) fprintf(stdout, "%lf\n", x[i]); return 0; }
$ gcc sample.c -o sample -llapack -lblas -lm $ ./sample
として、
N = 3 6.000000 -7.000000 2.000000
と表示されれば OK(なはず)。これでダメだったら(投げやりですが)頑張りましょう。*2
試したこと
1. Cygwin を起動して、
$ cd /tmp $ wget http://www.netlib.org/clapack/clapack.tgz $ tar zxvf clapack.tgz $ cd CLAPACK-3.2.1 $ cp make.inc.example make.inc
とする。
2. emacs を起動して make.inc の 61 行目を
#BLASLIB = ../../blas$(PLAT).a BLASLIB = /usr/lib/libblas.a
とする。*3
3. あとは make する。
$ make f2clib $ make blaslib $ cd SRC $ make $ cd ../TESTING/MATGEN/ $ make $ cd ../../
4. あとは出来たライブラリを lib ファイルへコピーするだけ…なのだが、lapack_LINUX.a も blas_LINUX.a も出来ていなかった。tmglib_LINUX.a なるものは出来ていた。ATLAS に引き続きここで断念…。