Forum Jump

Select Group :
Select Forum :
Sorted By :
Sort Order :
From The :
 
Thread Tools  Search this thread 
Kazik
Total Points:
150
Status Points:
100
Green Belt
July 7, 2009 12:53 PM PDT
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
Kazik
Total Points:
150
Status Points:
100
Green Belt
July 8, 2009 4:06 AM PDT
Rate
 
#1
Can anybody help? Please.
--
Best,
Kazik


Ying H (Intel)
Total Points:
4,882
Status Points:
4,382
Brown Belt
July 14, 2009 5:40 AM PDT
Rate
 
#2 Reply to #1
Quoting - Kazik
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

Kazik
Total Points:
150
Status Points:
100
Green Belt
July 14, 2009 11:59 AM PDT
Rate
 
#3 Reply to #2
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



Ying H (Intel)
Total Points:
4,882
Status Points:
4,382
Brown Belt
July 14, 2009 8:23 PM PDT
Rate
 
#4 Reply to #3
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




Intel Software Network Forums Statistics

8285 users have contributed to 31229 threads and 99106 posts to date.
In the past 24 hours, we have 13 new thread(s) 50 new posts(s), and 68 new user(s).

In the past 3 days, the most popular thread for everyone has been comparison cilk++, openmp, pthreads first results The most posts were made to comparison cilk++, openmp, pthreads first results The post with the most views is Very amusing...  Escalated as

Please welcome our newest member tvinni