FFTW(Fastest Fourier Transform in the West)
1. はじめに
FFTWはFastest Fourier Transform in the Westの略称です。
離散フーリエ変換(DFT)を計算するためのライブラリです。
DDBJ スパコンではmodule loadをすることで以下のバージョンが利用できます。
2. 使用可能なバージョン
3.3.8 environmental modulesの配下
2.1.5 environmental modulesの配下
FFTW公式ページではFFTW3以降の利用が推奨されています。
ただしFFTW3のAPIはFFTW2のものとは互換性がないためご注意ください。
利用可能なノード/キュー
login.q(AMD)
epyc.c(AMD)
intel.q(Intel)
login_gpu.q(Intel+Volta)
gpu.q(Intel+Volta)
short.q(Intel)
medium.q(Intel)
3. (参考)外部ドキュメント
FFTWの詳細利用については、マニュアル等を参照してください。
4. 使用方法
FFTW3モジュールの使い方
例:fftw3/openmpi/gcc/64/3.3.8の場合
(1)モジュール内容の確認
$ module show fftw3/openmpi/gcc/64/3.3.8
-------------------------------------------------------------------
/cm/shared/modulefiles/fftw3/openmpi/gcc/64/3.3.8:
module-whatis {Adds FFTW library for 64 bits to your environment}
prepend-path LD_RUN_PATH /cm/shared/apps/fftw/openmpi/gcc/64/3.3.8/lib/
prepend-path LD_LIBRARY_PATH /cm/shared/apps/fftw/openmpi/gcc/64/3.3.8/lib/
prepend-path MANPATH /cm/shared/apps/fftw/openmpi/gcc/64/3.3.8/share/man/
setenv FFTWDIR /cm/shared/apps/fftw/openmpi/gcc/64/3.3.8/lib
setenv FFTWINCLUDE /cm/shared/apps/fftw/openmpi/gcc/64/3.3.8/include
setenv FFTWLIB fftw3
-------------------------------------------------------------------
(2)モジュールの読み込み
$ module load fftw3/openmpi/gcc/64/3.3.8
(3)C言語で、FFTWライブラリを利用するソースを記載
#include <stdio.h>
#include <complex.h>
#include <fftw3.h>
int main( void ){
<以下省略>
(4)IntelCompilerを利用し、C言語のソースをコンパイル
icc XXXXX.c -I/cm/shared/apps/fftw/openmpi/gcc/64/3.3.8/include -L/cm/shared/apps/fftw/openmpi/gcc/64/3.3.8/lib -lfftw3
(5)プログラムa.outの実行
$ ./a.out
(6)モジュールのアンロード
$ module unload fftw3/openmpi/gcc/64/3.3.8
FFTW2モジュールについての紹介
例1:fftw2/openmpi/gcc/64/float/2.1.5の場合
(1)モジュール内容の確認
$ module show fftw2/openmpi/gcc/64/float/2.1.5
-------------------------------------------------------------------
/cm/shared/modulefiles/fftw2/openmpi/gcc/64/float/2.1.5:
module-whatis Adds FFTW library for 64 bits to your environment
prepend-path LD_RUN_PATH /cm/shared/apps/fftw/openmpi/gcc/64/2.1.5/float/lib/
prepend-path LD_LIBRARY_PATH /cm/shared/apps/fftw/openmpi/gcc/64/2.1.5/float/lib/
setenv FFTWDIR /cm/shared/apps/fftw/openmpi/gcc/64/2.1.5/float/lib
setenv FFTWINCLUDE /cm/shared/apps/fftw/openmpi/gcc/64/2.1.5/float/include
setenv FFTWLIB fftw
-------------------------------------------------------------------
(2)モジュールのロード
$ module load fftw2/openmpi/gcc/64/float/2.1.5
(3)モジュールのアンロード
$ module unload fftw2/openmpi/gcc/64/float/2.1.5
例2:fftw2/openmpi/gcc/64/double/2.1.5の場合
(1)モジュール内容の確認
$ module show fftw2/openmpi/gcc/64/double/2.1.5
-------------------------------------------------------------------
/cm/shared/modulefiles/fftw2/openmpi/gcc/64/double/2.1.5:
module-whatis Adds FFTW library for 64 bits to your environment
prepend-path LD_RUN_PATH /cm/shared/apps/fftw/openmpi/gcc/64/2.1.5/double/lib/
prepend-path LD_LIBRARY_PATH /cm/shared/apps/fftw/openmpi/gcc/64/2.1.5/double/lib/
setenv FFTWDIR /cm/shared/apps/fftw/openmpi/gcc/64/2.1.5/double/lib
setenv FFTWINCLUDE /cm/shared/apps/fftw/openmpi/gcc/64/2.1.5/double/include
setenv FFTWLIB fftw
-------------------------------------------------------------------
(2)モジュールのロード
$ module load fftw2/openmpi/gcc/64/double/2.1.5
(3)モジュールのアンロード
$ module unload fftw2/openmpi/gcc/64/double/2.1.5