Intel Compiler & FFTW

Intel C++/Fortran Compiler 付属の Math Kernel Library(MKL) には Fast Fourier Transform(FFT) のライブラリも含まれている。
FFT のライブラリでは FFTW という free のライブラリがよく使われているようだが、MKL version 8.0 以降では FFTW のインターフェースそのままで MKL の FFT を使用するラッパーライブラリを使用することができる。
インストールは
Linux の場合

$ cd /opt/intel/mkl/X.X.XXX/interfaces/fftw3xc/
$ make libem64t

Mac OS X の場合

$ cd /Library/Frameworks/Intel_MKL.framework/Versions/Current/interfaces/fftw3xc
$ make libem64t

で使える。
X.X.XXX は MKL のバージョン fftw3xc の部分は FFTW3.x, FFTW2.x か、C, Fortran かによって
fftw3xc, fftw3xf, fftw2xc, fftw2xf の4パターン
make の引数は CPU 依存で lib32, lib64, libem64t の三つがいけるようだ。
参考:http://www.intel.com/software/products/mkl/docs/fftw3xmkl_notes.htm

コンパイル
/tools/environment/mklvarsem64t.sh
ライブラリへのリンクオプションは MKL ver 10.0 なら -lfftw3xc_intel -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core
ver 9.0 は -lfftw3xc_intel -lmkl_em64t -lguide -lpthread

ver 9.0 だと、
$ cd /opt/intel/mkl/X.X.XXX/interfaces/fftc/
$ make libem64t
しないといけなかった。

あと、できた .a はなぜか writable だったので直した。