I am facing error while trying to compile fftw3 with intel compiler for mpi+openmp configuration.
i configured using:
CC=$MPIC_COMP CXX=$MPICXX_COMP F77=$MPIF77_COMP CFLAGS="-fPIC " FFLAGS="-fPIC " LDFLAGS="" LIBS="-lifcore -lifport -lmpi" ./configure --prefix=$ROOT_DIR/common_dependencies --enable-openmp --enable-mpi --enable-single
where:-
MPIC_COMP=mpiicc
CXX=mpiicpc
F77=mpiifort
configure succeeds , but during make i get:
mpicc -fopenmp -fPIC -o mpi-bench mpi_bench-mpi-bench.o mpi_bench-fftw-bench.o mpi_bench-hook.o ./.libs/libfftw3f_mpi.a ../threads/.libs/libfftw3f_omp.a /home/puneet/NAMD_BUILD/fftw-3.3.4/.libs/libfftw3f.a ../.libs/libfftw3f.a ../libbench2/libbench2.a -lm -lifcore -lifport -lmpi -fopenmp ../threads/.libs/libfftw3f_omp.a(libfftw3f_omp_la-openmp.o): In function `fftwf_spawn_loop': openmp.c:(.text+0x5c): undefined reference to `__kmpc_global_thread_num' openmp.c:(.text+0x6e): undefined reference to `__kmpc_ok_to_fork' openmp.c:(.text+0xae): undefined reference to `__kmpc_fork_call' openmp.c:(.text+0xc6): undefined reference to `__kmpc_serialized_parallel' openmp.c:(.text+0x11b): undefined reference to `__kmpc_end_serialized_parallel' openmp.c:(.text+0x205): undefined reference to `__kmpc_for_static_init_4' openmp.c:(.text+0x275): undefined reference to `__kmpc_for_static_fini' /home/puneet/NAMD_BUILD/fftw-3.3.4/.libs/libfftw3f.a(trig.o): In function `fftwf_mktriggen': trig.c:(.text+0x5cf): undefined reference to `__svml_sincos2' trig.c:(.text+0x77f): undefined reference to `__svml_sincos2' trig.c:(.text+0xa5a): undefined reference to `__svml_sincos2' trig.c:(.text+0xc71): undefined reference to `__svml_sincos2'
this issue might be due to default openmp flag (-fopenmp). Now When i specify intel's openmp flag in configure , configure fails!
CC=$MPIC_COMP CXX=$MPICXX_COMP F77=$MPIF77_COMP CFLAGS="-fPIC -openmp" FFLAGS="-fPIC -openmp" LIBS="-lifcore -lifport -lmpi" ./configure --prefix=$ROOT_DIR/common_dependencies --enable-openmp --enable-mpi --enable-single
checking whether to build static libraries... yes checking for ocamlbuild... no checking for mpicc... mpicc checking for MPI_Init... no checking for MPI_Init in -lmpi... no checking for MPI_Init in -lmpich... no configure: error: could not find mpi library for --enable-mpi
so when i supply -openmp flag , the compiler choses mpicc instead of mpiicc. what might be the reason for this behaviour,
any help / hint will be very fruitful.
Eagerly awaiting your reply.