Running FFTW Wrapper Library troubles
Hi, I asked my admins to built the FFTW wrapper library according to these instructions: http://www.intel.com/software/products/mkl/docs/fftw3xmkl_notes.htm It looks like everything has been done (new
library files have appeared) but for some reason my programmes having FFTW code have not been compiled (whilst
everything was working when using g++). I've tried also several Examples
(.../intel/Compiler/11.0/081/mkl/examples/fftw3xc) but still the compilation did not succeeded. Assuming that we
consider example file complex_3d_double_ex1.c the compilation returns: ------------------------------------------------------------------------------------ icpc dfti_example_support.c
complex_3d_double_ex1.c -lfftw
dfti_example_support.c(39): error: a value of type "void *" cannot be used to
initialize an entity of type "float *" float* x_in = x_init; ^ dfti_example_support.c(40): error: a
value of type "void *" cannot be used to initialize an entity of type "float *" float* x_exp = res_exp; ^ dfti_example_support.c(68): error: a value of type "void *" cannot be used to initialize an entity of type "double
*" double* x_in = x_init; ^ dfti_example_support.c(69): error: a value of type "void *" cannot be
used to initialize an entity of type "double *" double* x_exp = res_exp; ^ dfti_example_support.c(97):
error: a value of type "void *" cannot be used to initialize an entity of type "float *" float* x_in = x;
^ dfti_example_support.c(113): error: a value of type "void *" cannot be used to initialize an entity of type
"double *" double* x_in = x; ^ dfti_example_support.c(129): error: a value of type "void *" cannot be
used to initialize an entity of type "float *" float* x_in = x; ^ dfti_example_support.c(142): error:
a value of type "void *" cannot be used to initialize an entity of type "double *" double* x_in = x; ^ dfti_example_support.c(156): error: a value of type "void *" cannot be used to initialize an entity of type "float
*" float* x_in = x; ^ dfti_example_support.c(165): error: a value of type "void *" cannot be used to
initialize an entity of type "double *" double* x_in = x; ^ dfti_example_support.c(175): error: a
value of type "void *" cannot be used to initialize an entity of type "float *" float* x_in = x; ^ dfti_example_support.c(195): error: a value of type "void *" cannot be used to initialize an entity of type "float
*" float* x_2d = x; ^ dfti_example_support.c(228): error: a value of type "void *" cannot be used to
initialize an entity of type "double *" double* x_2d = x; ^ dfti_example_support.c(260): error: a value
of type "void *" cannot be used to initialize an entity of type "double *" double* x_in = x; ^ dfti_example_support.c(282): error: a value of type "void *" cannot be used to initialize an entity of type "float
*" float* x_in = x; ^ dfti_example_support.c(283): error: a value of type "void *" cannot be used to
initialize an entity of type "float *" float* x_exp = res_exp; ^ dfti_example_support.c(300): error:
a value of type "void *" cannot be used to initialize an entity of type "double *" double* x_in = x; ^ dfti_example_support.c(301): error: a value of type "void *" cannot be used to initialize an entity of type "double
*" double* x_exp = res_exp; ^ dfti_example_support.c(317): error: a value of type "void *" cannot be
used to initialize an entity of type "float *" float* x_in = x; ^ dfti_example_support.c(318):
error: a value of type "void *" cannot be used to initialize an entity of type "float *" float* x_exp = y;
^ dfti_example_support.c(332): error: a value of type "void *" cannot be used to initialize an entity of type
"double *" double* x_in = x; ^ dfti_example_support.c(333): error: a value of type "void *" cannot be
used to initialize an entity of type "double *" double* x_exp = y; ^ dfti_example_support.c(435):
error: a value of type "void *" cannot be used to initialize an entity of type "float *" float* x_2d = x;
^ dfti_example_support.c(467): error: a value of type "void *" cannot be used to initialize an entity of type
"double *" double* x_2d = x; ^ dfti_example_support.c(499): error: a value of type "void *" cannot be
used to initialize an entity of type "double *" double* x_2d = x; ^ dfti_example_support.c(865):
error: a value of type "void *" cannot be used to initialize an entity of type "double *" double* x_2d = x;
^ dfti_example_support.c(896): error: a value of type "void *" cannot be used to initialize an entity of type
"double *" double* x_2d = x; ^ compilation aborted for dfti_example_support.c (code 2) complex_3d_double_ex1.c(77): warning #181: argument is incompatible with corresponding format string conversion
printf(" DFTI_LENGTHS = {%d,%d,%d) n", m, nn[1], k); ^ complex_3d_double_ex1.c(77): warning #181: argument is incompatible with corresponding format string conversion
printf(" DFTI_LENGTHS = {%d,%d,%d) n", m, nn[1], k); ^ complex_3d_double_ex1.c(105): error: argument of type "fftw_complex (*)[13][15][12]" is incompatible with parameter of
type "fftw_complex *" Desc_Handle = fftw_plan_dft_3d(nn[0], nn[1], nn[2], &x_in, &x_in, FFTW_FORWARD,
FFTW_ESTIMATE); ^ complex_3d_double_ex1.c(105): error: argument of type "fftw_complex (*)[13][15][12]" is
incompatible with parameter of type "fftw_complex *" Desc_Handle = fftw_plan_dft_3d(nn[0], nn[1], nn[2],
&x_in, &x_in, FFTW_FORWARD, FFTW_ESTIMATE); ^ complex_3d_double_ex1.c(122): error: argument of type
"fftw_complex (*)[13][15][12]" is incompatible with parameter of type "fftw_complex *" Desc_Handle =
fftw_plan_dft_3d(nn[0], nn[1], nn[2], &x_in, &x_in, FFTW_BACKWARD, FFTW_ESTIMATE); ^ complex_3d_double_ex1.c(122): error: argument of type "fftw_complex (*)[13][15][12]" is incompatible with parameter of
type "fftw_complex *" Desc_Handle = fftw_plan_dft_3d(nn[0], nn[1], nn[2], &x_in, &x_in, FFTW_BACKWARD,
FFTW_ESTIMATE); ^ compilation aborted for complex_3d_double_ex1.c (code 2) ------------------------------------------------------------------------------------ And by using makefile
(.../intel/Compiler/11.0/081/mkl/examples/fftw3xc): make libem64t complex_3d_double_ex1 ------------------------------------------------------------------------------------ make wrap_lib _IA=em64t make[1]: Entering directory `/local/intel/Compiler/11.0/081/mkl/examples/fftw3xc' cd "../.."/interfaces/fftw3xc
&& make libem64t PRECISION=MKL_DOUBLE compiler=intel
INSTALL_DIR=/local/intel/Compiler/11.0/081/mkl/examples/fftw3xc/lib/em64t SPEC_OPT="" make[2]: Entering directory
`/local/intel/Compiler/11.0/081/mkl/interfaces/fftw3xc' make clean libfftw3xc_intel.a _IA=em64t make[3]:
Entering directory `/local/intel/Compiler/11.0/081/mkl/interfaces/fftw3xc' rm -rf
/local/intel/Compiler/11.0/081/mkl/examples/fftw3xc/lib/em64t/obj rm -f
/local/intel/Compiler/11.0/081/mkl/examples/fftw3xc/lib/em64t/libfftw3xc_intel.a mkdir -p
/local/intel/Compiler/11.0/081/mkl/examples/fftw3xc/lib/em64t/obj mkdir: cannot create directory
`/local/intel/Compiler/11.0/081/mkl/examples/fftw3xc/lib': Read-only file system make[3]: *** [libfftw3xc_intel.a]
Error 1 make[3]: Leaving directory `/local/intel/Compiler/11.0/081/mkl/interfaces/fftw3xc' make[2]: ***
[libem64t] Error 2 make[2]: Leaving directory `/local/intel/Compiler/11.0/081/mkl/interfaces/fftw3xc' make[1]:
*** [wrap_lib] Error 2 make[1]: Leaving directory `/local/intel/Compiler/11.0/081/mkl/examples/fftw3xc' make:
*** [libem64t] Error 2 ------------------------------------------------------------------------------------
I will be very grateful for any help. Thank you in advance. -- Kind regards, Kazik
| |
Re: Running FFTW Wrapper Library troubles
Can anybody help? Please. -- Best, Kazik
| |
Re: Running FFTW Wrapper Library troubles
Can anybody help? Please. -- Best, Kazik
Hello Kazik,
When you enter the comand : make libem64t complex_3d_double_ex1, It will
rebuild libfftw3xc_intel.a to current directory. But from the error message : mkdir: cannot create directory
`/local/intel/Compiler/11.0/081/mkl/examples/fftw3xc/lib': Read-only file system , looks you haven't write right
with the directory? Could you please check it and add write if possible?
Regarding icpc problem, icpc is
supposed for c++ file. Since dfti_example_support.c complex_3d_double_ex1.c are c language, you may use icc to build
them for example.
icc -I/opt/intel/Compiler/11.0/083/mkl/include/fftw source/complex_3d_double_ex1.c
source/dfti_example_support.c -L./lib/em64t -lfftw3xc_intel -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5
-lpthread -o complex_3d_double_ex1
You mentioned g++ can work? do you use special compiler option when
build the complex_3d_double_ex1.c ? (my test show g++ show many compiler error too, where if use gcc, the compile
processing is ok).
Best Regards, Ying
| |
Re: Running FFTW Wrapper Library troubles
Hello Ying,
I'm sorry for the delay in answering. To make the story short: 1) Yes, using icc helped and
I compiled the examples successfully. 2) My biggest mistake with the code that I have written on my own was that I
have implemented some functions from the previous version of FFTW, which were not supported by FFTW3 any more (as Was
suggested in one of the previous posts). When I've rewritten the code using FFTW3-functions everything went OK. So it
was basically very silly mistake...
Thank you for your post, I've almost lost a hope that this discussion
forum is alive. -- Kind regards, Kazik
| |
Re: Running FFTW Wrapper Library troubles
Hello Kazik,
Thank you for your reply. Sorry for our deley in Forum. In general, we encourage forum
participant to share information and solve problem each other first. And reply the probelm if no one can help :).
Kind Regards, Ying
| | |