I have been trying to use the MKL FFT through the FFTW3 interface and now am stuck with plan creation. The following line of code produces a NULL value, which is subsequently caught and kills the program:
plan_t_XY = fftw_mpi_plan_many_transpose(g.nxrtot, g.nyrtot, (g.nzrtot+2), g.nxrtot/g.nProc, g.nyrtot/g.nProc, wr1, wr1, MPI_COMM_WORLD, FFT_PLANNING);
Each of the *tot variables is an integer power of 2, ditto with g.nproc. wr1 is a pointer to a float work array, and FFT_PLANNING is set to FFTW_MEASURE.
Any ideas why
plan_t_XY = NULL
The FFTW3 wrappers in MKL are not the interfaces on a function-per-function basis. The return of a NULL may indicates that the functionality is not supported. It may also caused by a few other problems. You may find more information here https://software.intel.com/en-us/mkl-developer-reference-c-using-fftw3-wrappers. Thanks!