Warning: file_get_contents(http://scicomp.stackexchange.com/questions/5380/intel-mkl-difference-between-mkl-intel-lp64-and-mkl-gf-lp64) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /home/windproject/www/hnagata/wp/wp-content/themes/mytheme/functions.php on line 65
ふつうの手順でできるので慣れていれば難しくはないと思う.メモ程度に.
前提として,コンパイラセットがインストールされていて,MKL を含め PATH や LD_LIBRARY_PATH が適切に設定されているものとする. なお,手元で実行した環境は icc 13.1.3 + MKL 11.0.5 + R 3.1.1.
config.site の編集
R ソースのルートディレクトリにある config.site を次のように編集して,Intel コンパイラツール一式を使うよう変更する.
#!/bin/sh CC=icc CFLAGS="-O2 -wd188 -ip -std=c99 -mieee-fp" F77=ifort FFLAGS="-O2 -mieee-fp -ip" CXX=icpc CXXFLAGS="-O2 -mieee-fp -ip" FC=ifort FCFLAGS="-O2 -mieee-fp -ip" AR=xiar LD=xild LDFLAGS= SHLIB_CXXLD=xild SHLIB_CXXLDFLAGS=-shared
-ip は icc の最適化オプション. MKL に LD_LIBRARY_PATH が通っていなければ,LDFLAGS=”-L$MKLROOT/lib/intel64″ などとする.
なお,この設定だと Objective C のコンパイラは依然として gcc が使われるので,Objective C コードを含むパッケージをインストールしようとすると失敗するかもしれない. いちおう OBJC= でコンパイラを指定することもできるが,そもそも Objective C 向けの Intel コンパイラはないので,どのみち適当にあしらうしかない.
configure
BLAS および LAPACK として MKL を使うようにオプション指定する.
$ ./configure --enable-R-shlib --with-blas="-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread" --with-lapack
MKL は環境によってリンクするライブラリが異なるが,何をリンクすればよいかは Intel Math Kernel Library Link Line Advisor を使って調べられる.
configure できたら,あとは make すればよい.
参考
2つ目のページは gcc + MKL で R をビルドする手順の解説.gcc でビルドする場合は,リンクする MKL ライブラリが libmkl_intel_lp64.so でなく libmkl_gf_lp64.so に代わる. この二つは double complex の扱いが異なる.詳細はこちら.
You’ve captured this peyclfter. Thanks for taking the time!
Hey, you’re the goto exeprt. Thanks for hanging out here.
sustainable and repeatable small business is key to continued success. In an earlier post I asked Is Your Business Suffering Enough for You to Embrace Change? Well what if your business is thriving? Does this mean that you can kickback and let the money roll