sdsc / p3dfft

P3DFFT stands for Parallel Three-Dimensional Fast Fourier Transforms. It is a library for large-scale computer simulations on parallel platforms. It implements 3D FFT and related algorithms such as Chebyshev transform (an important class of algorithm for simulations in a wide range of fields). P3DFFT uses 2D, or pencil, decomposition. For more information:
http://www.p3dfft.net
Other
54 stars 16 forks source link

Make error in p3dfft 2.7.6 #12

Closed rahulagrawal29 closed 5 years ago

rahulagrawal29 commented 5 years ago

HI

I am trying to install p3dfft v2.7.6 on my laptop. I run the following configure script : ./configure --prefix=/usr/local/lib --enable-single --enable-fftw --with-fftw=/usr/local FC=gfortran CC=gcc since my fftw header files are in /usr/local/include This configure script works properly. However, when I use make command after this, some error pops up.

make[1]: Entering directory '/home/rahul/Documents/p3dfft-2.7.6' Making all in build make[2]: Entering directory '/home/rahul/Documents/p3dfft-2.7.6/build' Makefile:589: recipe for target 'all-local' failed make[2]: [all-local] Error 1 (ignored) make[2]: Leaving directory '/home/rahul/Documents/p3dfft-2.7.6/build' Making all in sample make[2]: Entering directory '/home/rahul/Documents/p3dfft-2.7.6/sample' Making all in FORTRAN make[3]: Entering directory '/home/rahul/Documents/p3dfft-2.7.6/sample/FORTRAN' gfortran -DHAVE_CONFIG_H -I. -I../.. -I../../include/ -DSINGLE_PREC -DMEASURE -DFFTW -I../../include/ -g -O2 -c -o driver_sine_many.o driver_sine_many.F90 driver_sine_many.F90:57: Error: Can't open included file 'mpif.h Makefile:484: recipe for target 'driver_sine_many.o' failed make[3]: [driver_sine_many.o] Error 1 make[3]: Leaving directory '/home/rahul/Documents/p3dfft-2.7.6/sample/FORTRAN' Makefile:324: recipe for target 'all-recursive' failed make[2]: [all-recursive] Error 1 make[2]: Leaving directory '/home/rahul/Documents/p3dfft-2.7.6/sample' Makefile:425: recipe for target 'all-recursive' failed make[1]: [all-recursive] Error 1 make[1]: Leaving directory '/home/rahul/Documents/p3dfft-2.7.6' Makefile:345: recipe for target 'all' failed make: [all] Error 2

Now, i'm unsure of why this is happening. Can someone help me out please ? I believe I have successfully installed hdf5, mpich2, fftw before this and hence am getting a bit confused with the error

CyrilleBonamy commented 5 years ago

Try again with this command line :

./configure --prefix=/usr/local/lib --enable-single --enable-fftw --with-fftw=/usr/local FC=mpif90 CC=mpicc

De: "Rahul Agrawal" notifications@github.com À: "sdsc" p3dfft@noreply.github.com Cc: "Subscribed" subscribed@noreply.github.com Envoyé: Lundi 29 Octobre 2018 19:35:33 Objet: [sdsc/p3dfft] Make error in p3dfft 2.7.6 (#12)

HI

I am trying to install p3dfft v2.7.6 on my laptop. I run the following configure script : ./configure --prefix=/usr/local/lib --enable-single --enable-fftw --with-fftw=/usr/local FC=gfortran CC=gcc since my fftw header files are in /usr/local/include This configure script works properly. However, when I use make command after this, some error pops up.

make[1]: Entering directory '/home/rahul/Documents/p3dfft-2.7.6' Making all in build make[2]: Entering directory '/home/rahul/Documents/p3dfft-2.7.6/build' Makefile:589: recipe for target 'all-local' failed make[2]: [all-local] Error 1 (ignored) make[2]: Leaving directory '/home/rahul/Documents/p3dfft-2.7.6/build' Making all in sample make[2]: Entering directory '/home/rahul/Documents/p3dfft-2.7.6/sample' Making all in FORTRAN make[3]: Entering directory '/home/rahul/Documents/p3dfft-2.7.6/sample/FORTRAN' gfortran -DHAVE_CONFIG_H -I. -I../.. -I../../include/ -DSINGLE_PREC -DMEASURE -DFFTW -I../../include/ -g -O2 -c -o driver_sine_many.o driver_sine_many.F90 driver_sine_many.F90:57: Error: Can't open included file 'mpif.h Makefile:484: recipe for target 'driver_sine_many.o' failed make[3]: [driver_sine_many.o] Error 1 make[3]: Leaving directory '/home/rahul/Documents/p3dfft-2.7.6/sample/FORTRAN' Makefile:324: recipe for target 'all-recursive' failed make[2]: [all-recursive] Error 1 make[2]: Leaving directory '/home/rahul/Documents/p3dfft-2.7.6/sample' Makefile:425: recipe for target 'all-recursive' failed make[1]: [all-recursive] Error 1 make[1]: Leaving directory '/home/rahul/Documents/p3dfft-2.7.6' Makefile:345: recipe for target 'all' failed make: [all] Error 2

Now, i'm unsure of why this is happening. Can someone help me out please ? I believe I have successfully installed hdf5, mpich2, fftw before this and hence am getting a bit confused with the error

— You are receiving this because you are subscribed to this thread. Reply to this email directly, [ https://github.com/sdsc/p3dfft/issues/12 | view it on GitHub ] , or [ https://github.com/notifications/unsubscribe-auth/AExJaWusF4I-nHSM6QWeVIyfISKjwkLAks5up0p0gaJpZM4X_z1i | mute the thread ] .

rahulagrawal29 commented 5 years ago

Hi

Thanks for your response. I think the error is partially corrected now. This is what I am getting

make all-recursive make[1]: Entering directory '/home/rahul/Documents/p3dfft-2.7.6' Making all in build make[2]: Entering directory '/home/rahul/Documents/p3dfft-2.7.6/build' Makefile:589: recipe for target 'all-local' failed make[2]: [all-local] Error 1 (ignored) make[2]: Leaving directory '/home/rahul/Documents/p3dfft-2.7.6/build' Making all in sample make[2]: Entering directory '/home/rahul/Documents/p3dfft-2.7.6/sample' Making all in FORTRAN make[3]: Entering directory '/home/rahul/Documents/p3dfft-2.7.6/sample/FORTRAN' mpif90 -DSINGLE_PREC -DMEASURE -DFFTW -I../../include/ -g -O2 -o test_sine_many_f.x driver_sine_many.o ../../build/libp3dfft.a /usr/local/lib/libfftw3.a /usr/local/lib/libfftw3f.a
mpif90 -DHAVE_CONFIG_H -I. -I../.. -I../../include/ -DSINGLE_PREC -DMEASURE -DFFTW -I../../include/ -g -O2 -c -o driver_sine.o driver_sine.F90 mpif90 -DSINGLE_PREC -DMEASURE -DFFTW -I../../include/ -g -O2 -o test_sine_f.x driver_sine.o ../../build/libp3dfft.a /usr/local/lib/libfftw3.a /usr/local/lib/libfftw3f.a
mpif90 -DHAVE_CONFIG_H -I. -I../.. -I../../include/ -DSINGLE_PREC -DMEASURE -DFFTW -I../../include/ -g -O2 -c -o driver_sine_pruned.o driver_sine_pruned.F90 mpif90 -DSINGLE_PREC -DMEASURE -DFFTW -I../../include/ -g -O2 -o test_sine_pruned_f.x driver_sine_pruned.o ../../build/libp3dfft.a /usr/local/lib/libfftw3.a /usr/local/lib/libfftw3f.a
mpif90 -DHAVE_CONFIG_H -I. -I../.. -I../../include/ -DSINGLE_PREC -DMEASURE -DFFTW -I../../include/ -g -O2 -c -o driver_sine_inplace.o driver_sine_inplace.F90 mpif90 -DSINGLE_PREC -DMEASURE -DFFTW -I../../include/ -g -O2 -o test_sine_inplace_f.x driver_sine_inplace.o ../../build/libp3dfft.a /usr/local/lib/libfftw3.a /usr/local/lib/libfftw3f.a
mpif90 -DHAVE_CONFIG_H -I. -I../.. -I../../include/ -DSINGLE_PREC -DMEASURE -DFFTW -I../../include/ -g -O2 -c -o driver_rand.o driver_rand.F90 mpif90 -DSINGLE_PREC -DMEASURE -DFFTW -I../../include/ -g -O2 -o test_rand_f.x driver_rand.o ../../build/libp3dfft.a /usr/local/lib/libfftw3.a /usr/local/lib/libfftw3f.a
mpif90 -DHAVE_CONFIG_H -I. -I../.. -I../../include/ -DSINGLE_PREC -DMEASURE -DFFTW -I../../include/ -g -O2 -c -o driver_spec.o driver_spec.F90 mpif90 -DSINGLE_PREC -DMEASURE -DFFTW -I../../include/ -g -O2 -o test_spec_f.x driver_spec.o ../../build/libp3dfft.a /usr/local/lib/libfftw3.a /usr/local/lib/libfftw3f.a
mpif90 -DHAVE_CONFIG_H -I. -I../.. -I../../include/ -DSINGLE_PREC -DMEASURE -DFFTW -I../../include/ -g -O2 -c -o driver_inverse.o driver_inverse.F90 mpif90 -DSINGLE_PREC -DMEASURE -DFFTW -I../../include/ -g -O2 -o test_inverse_f.x driver_inverse.o ../../build/libp3dfft.a /usr/local/lib/libfftw3.a /usr/local/lib/libfftw3f.a
mpif90 -DHAVE_CONFIG_H -I. -I../.. -I../../include/ -DSINGLE_PREC -DMEASURE -DFFTW -I../../include/ -g -O2 -c -o driver_cheby.o driver_cheby.F90 driver_cheby.F90:165:23:

    call cheby_test(mem,mem,coordX,coordY,coordZ,timer)
                   1

Warning: Type mismatch in argument ‘rmem’ at (1); passed COMPLEX(4) to REAL(4) mpif90 -DSINGLE_PREC -DMEASURE -DFFTW -I../../include/ -g -O2 -o test_cheby_f.x driver_cheby.o ../../build/libp3dfft.a /usr/local/lib/libfftw3.a /usr/local/lib/libfftw3f.a
mpif90 -DHAVE_CONFIG_H -I. -I../.. -I../../include/ -DSINGLE_PREC -DMEASURE -DFFTW -I../../include/ -g -O2 -c -o driver_noop.o driver_noop.F90 mpif90 -DSINGLE_PREC -DMEASURE -DFFTW -I../../include/ -g -O2 -o test_noop_f.x driver_noop.o ../../build/libp3dfft.a /usr/local/lib/libfftw3.a /usr/local/lib/libfftw3f.a
mpif90 -DHAVE_CONFIG_H -I. -I../.. -I../../include/ -DSINGLE_PREC -DMEASURE -DFFTW -I../../include/ -g -O2 -c -o driver_sine_inplace_many.o driver_sine_inplace_many.F90 mpif90 -DSINGLE_PREC -DMEASURE -DFFTW -I../../include/ -g -O2 -o test_sine_inplace_many_f.x driver_sine_inplace_many.o ../../build/libp3dfft.a /usr/local/lib/libfftw3.a /usr/local/lib/libfftw3f.a
mpif90 -DHAVE_CONFIG_H -I. -I../.. -I../../include/ -DSINGLE_PREC -DMEASURE -DFFTW -I../../include/ -g -O2 -c -o driver_rand_many.o driver_rand_many.F90 mpif90 -DSINGLE_PREC -DMEASURE -DFFTW -I../../include/ -g -O2 -o test_rand_many_f.x driver_rand_many.o ../../build/libp3dfft.a /usr/local/lib/libfftw3.a /usr/local/lib/libfftw3f.a
make[3]: Leaving directory '/home/rahul/Documents/p3dfft-2.7.6/sample/FORTRAN' Making all in C make[3]: Entering directory '/home/rahul/Documents/p3dfft-2.7.6/sample/C' mpicc -DHAVE_CONFIG_H -I. -I../.. -I../../include/ -DSINGLE_PREC -DMEASURE -DFFTW -g -g -O2 -c -o driver_sine.o driver_sine.c driver_sine.c: In function ‘main’: driver_sine.c:81:9: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result] fscanf(fp,"%d %d %d %d %d\n",&nx,&ny,&nz,&ndim,&n); ^ driver_sine.c:105:8: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result] fscanf(fp,"%d %d\n",dims,dims+1); ^ g -O2 -o test_sine_c.x driver_sine.o ../../build/libp3dfft.a /usr/local/lib/libfftw3.a /usr/local/lib/libfftw3f.a
/bin/bash: g: command not found Makefile:386: recipe for target 'test_sine_c.x' failed make[3]: [test_sine_c.x] Error 127 (ignored) mpicc -DHAVE_CONFIG_H -I. -I../.. -I../../include/ -DSINGLE_PREC -DMEASURE -DFFTW -g -g -O2 -c -o driver_sine_inplace.o driver_sine_inplace.c driver_sine_inplace.c: In function ‘main’: driver_sine_inplace.c:108:9: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result] fscanf(fp,"%d %d %d %d %d\n",&nx,&ny,&nz,&ndim,&n); ^ driver_sine_inplace.c:132:8: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result] fscanf(fp,"%d %d\n",dims,dims+1); ^ g -O2 -o test_sine_inplace_c.x driver_sine_inplace.o ../../build/libp3dfft.a /usr/local/lib/libfftw3.a /usr/local/lib/libfftw3f.a
/bin/bash: g: command not found Makefile:390: recipe for target 'test_sine_inplace_c.x' failed make[3]: [test_sine_inplace_c.x] Error 127 (ignored) mpicc -DHAVE_CONFIG_H -I. -I../.. -I../../include/ -DSINGLE_PREC -DMEASURE -DFFTW -g -g -O2 -c -o driver_rand.o driver_rand.c driver_rand.c: In function ‘main’: driver_rand.c:111:10: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result] fscanf(fp,"%d %d %d %d %d\n",&nx,&ny,&nz,&ndim,&n); ^ driver_rand.c:136:8: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result] fscanf(fp,"%d %d\n",dims,dims+1); ^ g -O2 -o test_rand_c.x driver_rand.o ../../build/libp3dfft.a /usr/local/lib/libfftw3.a /usr/local/lib/libfftw3f.a
/bin/bash: g: command not found Makefile:382: recipe for target 'test_rand_c.x' failed make[3]: [test_rand_c.x] Error 127 (ignored) mpicc -DHAVE_CONFIG_H -I. -I../.. -I../../include/ -DSINGLE_PREC -DMEASURE -DFFTW -g -g -O2 -c -o driver_spec.o driver_spec.c driver_spec.c: In function ‘main’: driver_spec.c:116:9: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result] fscanf(fp,"%d %d %d %d %d\n",&nx,&ny,&nz,&ndim,&n); ^ driver_spec.c:140:8: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result] fscanf(fp,"%d %d\n",dims,dims+1); ^ g -O2 -o test_spec_c.x driver_spec.o ../../build/libp3dfft.a /usr/local/lib/libfftw3.a /usr/local/lib/libfftw3f.a
/bin/bash: g: command not found Makefile:394: recipe for target 'test_spec_c.x' failed make[3]: [test_spec_c.x] Error 127 (ignored) mpicc -DHAVE_CONFIG_H -I. -I../.. -I../../include/ -DSINGLE_PREC -DMEASURE -DFFTW -g -g -O2 -c -o driver_inverse.o driver_inverse.c driver_inverse.c: In function ‘main’: driver_inverse.c:113:9: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result] fscanf(fp,"%d %d %d %d %d\n",&nx,&ny,&nz,&ndim,&n); ^ driver_inverse.c:137:8: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result] fscanf(fp,"%d %d\n",dims,dims+1); ^ g -O2 -o test_inverse_c.x driver_inverse.o ../../build/libp3dfft.a /usr/local/lib/libfftw3.a /usr/local/lib/libfftw3f.a
/bin/bash: g: command not found Makefile:378: recipe for target 'test_inverse_c.x' failed make[3]: [test_inverse_c.x] Error 127 (ignored) make[3]: Leaving directory '/home/rahul/Documents/p3dfft-2.7.6/sample/C' make[3]: Entering directory '/home/rahul/Documents/p3dfft-2.7.6/sample' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/home/rahul/Documents/p3dfft-2.7.6/sample' make[2]: Leaving directory '/home/rahul/Documents/p3dfft-2.7.6/sample' make[2]: Entering directory '/home/rahul/Documents/p3dfft-2.7.6' Build successful! make[2]: Leaving directory '/home/rahul/Documents/p3dfft-2.7.6' make[1]: Leaving directory '/home/rahul/Documents/p3dfft-2.7.6'

Since, it says, build successful, I am assuming it means there should be no error, however, there is a line Makefile:378: recipe for target 'test_inverse_c.x' failed Can you please help me with this too

Thanks!

spenceryr commented 5 years ago

Hello,

Can you try configuring with ./configure --enable-gnu --enable-single --enable-fftw --with-fftw=/usr/local FC=mpif90 CC=mpicc CFLAGS="-lm -fopenmp"

I added --enable-gnu because that specifies which compiler to use, as well as a few C flags. If this doesn't work, try adding --enable-openmpi if you have openmpi as your implementation of mpi.

rahulagrawal29 commented 5 years ago

Hi

Thanks for the reply. This made the code work properly. Thanks a lot for the help, i really appreciate it.

Rahul