はじめに
久しぶりにIntel One Api最新版をインストールしFFTW3をmake & Installしようとしたらエラーが発生。エラーメッセージをググっても役に立つ情報も見つからず少し手こずったのでメモ書きします。
Intel One Api最新版(2023/12)
2023年12月時点でIntel One Apiの最新版はバージョン2024.0.0。このオフラインインストーラーをダウンロードしインストール。設定はこちらを参考に行えば問題なくインストールできた。
FFTW3インストールしようとしたら、、
こちらからfftw3圧縮ファイルをダウンロード。2023年12月時点の最新版はバージョン3.3.10。こちらを参考に圧縮ファイルを解凍、fftw-3.3.10ディレクトリに移動し
./configure --prefix=/usr/local/fftw3 CC=icx MPICC=mpiicc F77=ifort --enable-mpi --enable-threads
を入力したら、could not find mpiicc library errorでconfigureが止まってしまった。
このエラーメッセージをググると古いQ & Aがヒットし、.bashrcなどにmpiライブラリディレクトリパスを通せば良いとあったが全く解決しなかった。mpiiccに問題がありそうな気がしたので
mpiicc -V
と入力したら
/opt/intel/oneapi/mpi/2021.11/bin/mpiicx: 1: eval: icc: not found
なるメッセージが返ってきた。One Api 2024.0.0ではmpiiccではなくmpiicxなのだとわかる。
そこで
./configure --prefix=/usr/local/fftw3 CC=icx MPICC=mpiicx F77=ifort --enable-mpi --enable-threads
としたら問題なくconfigureされ、その後のmakeとsudo make installもできた。
Intel One Api 2024.0.0のmpiバージョン
Intel One Api2024.0.0に含まれるmpiディレクトリを確認するとバージョン2021.11であり、それまでの2021.10.0からバージョンアップされていた。このバージョンアップによりコマンド名が変わったのかもしれない。
古いOne ApiではCCがiccだったのだがバージョンアップによりicxに変わった。今回のコマンド変更も同様なものなのかもしれない。というのもmpiiccはmpi + iccなのだからmpiバージョが上がればmpi + icxでmpiicxとするのが自然な感じだからだ。
最後に
いつも簡単にインストールできていたFFTW3インストールにトラブって少し焦ったが注意深く調べれば解決できてよかった。FFTW3のconfigure時のエラーメッセージをググっても有効な情報がヒットしなかったため少し苦労した話でした。