I am installing a third party application using FFTw3 on a HPC cluster. I would like to try out the FFTW interface that MKL provides, to see if I get some performance benefits.
Anyhow I am currently stuck with the compilation that fails with a missing symbol at linking time:
../channelflow/libchflow.so: undefined reference to `fftw_mpi_execute_r2r'
I generated the wrapper library following the instructions here:
with the command:
make libintel64 compiler=intel mpi=intelmpi
and looking at the symbols inside it I can find `fftw_mpi_execute_dft_r2r` but not `fftw_mpi_execute_r2r`. The documentation of FFTW:
seems to have an inconsistent naming for the APIs, so I was wondering if this is a "bug" in `mkl/interfaces/fftw3x_cdft/wrappers/execute.c` where line 65 should be changed from:
FFTW_EXTERN void FFTW_MPI_MANGLE(execute_dft_r2r)
FFTW_EXTERN void FFTW_MPI_MANGLE(execute_r2r)
I'll be waiting for your reply, thanks. Let me know if you need further details.
For more complete information about compiler optimizations, see our Optimization Notice.