FFTW3 のインストール(Ubuntu 上)

FFTW とは, 離散フーリエ変換 (DFT) を行う C のプログラム集である.1次元に限らず,より高次元でも動く. このページでは,Ubuntu での FFTW バージョン 3 (FFTW3)インストール法を説明する. パッケージによるインストールと,ソースコードからのビルドによるインストールの2通りを説明する.

前準備

Ubuntu のシステム更新

Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する。これは、パッケージ情報を最新の状態に保ち、インストール済みのパッケージをセキュリティアップデートやバグ修正を含めて更新するためである。

Ubuntu のインストールはこちらの別ページで説明する。
# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt full-upgrade
# カーネル更新等で実際に再起動が必要な場合のみ実行を推奨
# sudo shutdown -r now

FFTW3 のインストール(Ubuntu のパッケージを使用)

最新版である必要がない場合は,Ubuntu の公式パッケージを使うのが簡単である. 端末で,次のコマンドを実行する。 libfftw3-dev には,倍精度 (fftw3),単精度 (fftw3f),long double 精度 (fftw3l) のライブラリとヘッダファイルが含まれる。

sudo apt -y install libfftw3-dev libfftw3-doc

インストールされたバージョンを確認するときは,端末で,次のコマンドを実行する。

pkg-config --modversion fftw3

FFTW3 最新版のインストール(ソースコードからのビルド)

C/C++ コンパイラと Make とビルドツールのインストール

ソフトウェアをソースコードからビルドするには、C/C++コンパイラ (通常はGCC) や make ユーティリティといった開発ツールが重要である。Ubuntuでは、これらのツールは build-essential パッケージにまとめられている。インストールするには,端末で,次のコマンドを実行する。

sudo apt -y install build-essential gfortran libtool texinfo dpkg-dev pkg-config

gfortran は Fortran インタフェースをビルドする場合に必要である。libtool, texinfo, dpkg-dev, pkg-config は、より複雑なビルドやパッケージ管理の際に役立つ開発関連ツールである。

FFTW3 のソースコードのダウンロードと展開

  1. FFTW の Web ページを開く

    https://www.fftw.org/

  2. Download」をクリック
  3. 最新バージョンを確認する
  4. ソースコードのダウンロードと展開

    端末で,次のコマンドを実行する。 バージョン番号の部分は,ダウンロードページで確認した最新版に読み替える(下記は 3.3.11 の場合)。

    cd /tmp
    wget https://www.fftw.org/fftw-3.3.11.tar.gz
    tar -xvzf fftw-3.3.11.tar.gz
    

FFTW3 のビルドとインストール

  1. 端末で,次のコマンドを実行する.
    configure の既定では倍精度 (double) のライブラリがビルドされる. 単精度 (float) のライブラリが必要な場合は「--enable-float」, long double 精度のライブラリが必要な場合は「--enable-long-double」を付けて, 精度ごとに configure と make を実行する(1回のビルドで生成できる精度は1つである).
    cd /tmp
    cd fftw-3.3.11
    ./configure --prefix=/usr/local --enable-shared --enable-threads --enable-openmp
    make
    sudo make install
    
  2. 確認

    エラーメッセージが出ていないことを確認すること.

共有ライブラリの設定

ソースコードからビルドしたライブラリは /usr/local/lib にインストールされる。 Ubuntu では /usr/local/lib/etc/ld.so.conf.d/libc.conf により既に検索対象となっているため, キャッシュの更新のみを行えばよい。端末で,次のコマンドを実行する。

sudo ldconfig

インストールされたライブラリが認識されていることを確認するときは,端末で,次のコマンドを実行する。

ldconfig -p | grep libfftw3