- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Following the instructions given in /opt/intel/compilers_and_libraries_2017.0.102/mac/mkl/interfaces/fftw3xf/makefile to compile the fftw3 wrapper, the following does not work, instead giving the fatal error "fatal error: 'fftw3.h' file not found":
dhcp-ccc-5977:~ mah$ source /opt/intel/bin/compilervars.sh intel64 dhcp-ccc-5977:~ mah$ cd /opt/intel/compilers_and_libraries_2017.0.102/mac/mkl/interfaces/fftw3xf dhcp-ccc-5977:fftw3xf mah$ sudo make libintel64 compiler=gnu Password: /Applications/Xcode.app/Contents/Developer/usr/bin/make -f makefile lib _IA=intel64 rm -rf ./obj_gnu mkdir -p ./obj_gnu gcc -m64 -Wall -Werror -I../../include -I../../include/fftw -c ../../interfaces/fftw3xf/wrappers/fftw_alignment_of.c -o obj_gnu/fftw_alignment_of.o In file included from ../../interfaces/fftw3xf/wrappers/fftw_alignment_of.c:29: ../../interfaces/fftw3xf/wrappers/fftw3_mkl.h:33:10: fatal error: 'fftw3.h' file not found #include "fftw3.h" ^ 1 error generated. make[1]: *** [obj_gnu/fftw_alignment_of.o] Error 1 make: *** [libintel64] Error 2
The header file did exist in the 2016 edition. Any ideas?
Melissa
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
There's no Fortran or even Intel here - you're invoking gcc and it can't find a .h file.
I'm going to move this over to the MKL forum.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The "sudo make" is likely to fail because (for security reasons) it will not pass all of the environment variables that you set in the first line.
Although it is possible to work around this, it is a much better idea to compile using an ordinary user account and use the root account only if required for the final "install" step.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
John,
Thanks for the advice; however, I am still confused. If I try to compile from a regular user account, I generate different errors:
Shadowfax:fftw3xf mah$ cd /opt/intel/compilers_and_libraries_2017.0.102/mac/mkl/interfaces/fftw3xf Shadowfax:fftw3xf mah$ make libintel64 compiler=gnu /Applications/Xcode.app/Contents/Developer/usr/bin/make -f makefile lib _IA=intel64 rm -rf ./obj_gnu rm: ./obj_gnu: Permission denied make[1]: [clean] Error 1 (ignored) mkdir -p ./obj_gnu gcc -m64 -Wall -Werror -I/opt/intel//compilers_and_libraries_2017.0.102/mac/mkl/include -I/opt/intel//compilers_and_libraries_2017.0.102/mac/mkl/include/fftw -c /opt/intel//compilers_and_libraries_2017.0.102/mac/mkl/interfaces/fftw3xf/wrappers/fftw_alignment_of.c -o obj_gnu/fftw_alignment_of.o error: unable to open output file 'obj_gnu/fftw_alignment_of.o': 'Permission denied' 1 error generated. make[1]: *** [obj_gnu/fftw_alignment_of.o] Error 1 make: *** [libintel64] Error 2
On the other hand, if I just copy the source over to my user account and try to compile that way, I am back to the original problem:
Shadowfax:fftw3xf mah$ cd /Users/mah/opt/intel/compilers_and_libraries_2017.0.102/mac/mkl/interfaces/fftw3xf Shadowfax:fftw3xf mah$ make libintel64 compiler=gnu /Applications/Xcode.app/Contents/Developer/usr/bin/make -f makefile lib _IA=intel64 rm -rf ./obj_gnu mkdir -p ./obj_gnu gcc -m64 -Wall -Werror -I/opt/intel//compilers_and_libraries_2017.0.102/mac/mkl/include -I/opt/intel//compilers_and_libraries_2017.0.102/mac/mkl/include/fftw -c /opt/intel//compilers_and_libraries_2017.0.102/mac/mkl/interfaces/fftw3xf/wrappers/fftw_alignment_of.c -o obj_gnu/fftw_alignment_of.o In file included from /opt/intel//compilers_and_libraries_2017.0.102/mac/mkl/interfaces/fftw3xf/wrappers/fftw_alignment_of.c:29: /opt/intel//compilers_and_libraries_2017.0.102/mac/mkl/interfaces/fftw3xf/wrappers/fftw3_mkl.h:33:10: fatal error: 'fftw3.h' file not found #include "fftw3.h" ^ 1 error generated. make[1]: *** [obj_gnu/fftw_alignment_of.o] Error 1 make: *** [libintel64] Error 2
Clearly, I am not understanding your suggestion. Would you please elaborate?
Thanks,
Melissa
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Melissa,
You mentioned, the fftw3.h in 2016 edition. Could you please check if the fftw3.h in 2017 edition ?
for example, > ls the fftw*.h
sh-3.2# ls /opt/intel/compilers_and_libraries_2017.0.102/mac/mkl/include/fftw/fftw*.h
/opt/intel/compilers_and_libraries_2017.0.102/mac/mkl/include/fftw/fftw.h
/opt/intel/compilers_and_libraries_2017.0.102/mac/mkl/include/fftw/fftw3-mpi.h
/opt/intel/compilers_and_libraries_2017.0.102/mac/mkl/include/fftw/fftw3-mpi_mkl.h
/opt/intel/compilers_and_libraries_2017.0.102/mac/mkl/include/fftw/fftw3.h
/opt/intel/compilers_and_libraries_2017.0.102/mac/mkl/include/fftw/fftw3_mkl.h
/opt/intel/compilers_and_libraries_2017.0.102/mac/mkl/include/fftw/fftw3_mkl_f77.h
/opt/intel/compilers_and_libraries_2017.0.102/mac/mkl/include/fftw/fftw_mpi.h
/opt/intel/compilers_and_libraries_2017.0.102/mac/mkl/include/fftw/fftw_threads.h
and build it make libintel64 compiler=gnu with your account and in your copy directory.
As the mkl install directory is under /opt, it don't allow general user to create new folder. So you saw the Permission denied. I may suggest the way you did, copy the directory fftw3xf to your local directory (please note, only copy the directory, keep original MKL install folder under /opt/intel).
for example,
macmini01:~ yhu5$ cp -R /opt/intel/compilers_and_libraries_2017.0.102/mac/mkl/interfaces/fftw3xf .
macmini01:~ yhu5$ cd fftw3xf/
macmini01:fftw3xf yhu5$ ls
fftw3xf.lst obj_intel wrappers
libfftw3xf_gnu.a readme.txt
makefile source
macmini01:fftw3xf yhu5$ source /opt/intel/compilers_and_libraries_2017.0.102/mac/mkl/bin/mklvars.sh intel64
macmini01:fftw3xf yhu5$ make libintel64 compiler=gnu
/Applications/Xcode.app/Contents/Developer/usr/bin/make -f makefile lib _IA=intel64
rm -rf ./obj_gnu
mkdir -p ./obj_gnu
gcc -m64 -Wall -Werror -I/opt/intel//compilers_and_libraries_2017.0.102/mac/mkl/include -I/opt/intel//compilers_and_libraries_2017.0.102/mac/mkl/include/fftw -c /opt/intel//compilers_and_libraries_2017.0.102/mac/mkl/interfaces/fftw3xf/wrappers/fftw_alignment_of.c -o obj_gnu/fftw_alignment_of.o
gcc -m64 -Wall -Werror -I/opt/intel//compilers_and_libraries_2017.0.102/mac/mkl/include -I/opt/intel//compilers_and_libraries_2017.0.102/mac/mkl/include/fftw -c /opt/intel//compilers_and_libraries_2017.0.102/mac/mkl/interfaces/fftw3xf/wrappers/fftw_alloc_complex.c -o obj_gnu/fftw_alloc_complex.o
gcc -m64 -Wall -Werror -I/opt/intel//compilers_and_libraries_2017.0.102/mac/mkl/include -I/opt/intel//compilers_and_libraries_2017.0.102/mac/mkl/include/fftw
......
macmini01:fftw3xf yhu5$ ls
fftw3xf.lst obj_intel wrappers
libfftw3xf_gnu.a readme.txt
makefile source
macmini01:fftw3xf yhu5$ ls -l
total 568
-rw-r--r-- 1 yhu5 staff 3992 Oct 29 03:00 fftw3xf.lst
-rw-r--r-- 1 yhu5 staff 273584 Oct 29 03:01 libfftw3xf_gnu.a
-rw-r--r-- 1 yhu5 staff 5267 Oct 29 03:00 makefile
drwxr-xr-x 13 yhu5 staff 442 Oct 29 03:00 obj_intel
-rw-r--r-- 1 yhu5 staff 2864 Dec 31 2013 readme.txt
drwxr-xr-x 42 yhu5 staff 1428 Jul 24 2014 source
drwxr-xr-x 234 yhu5 staff 7956 Oct 29 03:00 wrappers
Best Regards,
Ying
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ying,
My apologies — I should have said "2017" in my original post, not 2016. The 2016 version is fine, and I downgraded the Fortran installation back to 2016 because I found many problem with the MKL installed with the Fortran 2017 installer.
I just reinstalled 2017 to answer your question, putting it in intelNew instead of intel (so I can trash it). When I look at the MKL library as you suggest, there are no header files:
dhcp-ccc-1106:mkl mah$ ls /opt/intelNew/compilers_and_libraries_2017.0.102/mac/mkl/include/fftw/fftw*.h ls: /opt/intelNew/compilers_and_libraries_2017.0.102/mac/mkl/include/fftw/fftw*.h: No such file or directory dhcp-ccc-1106:mkl mah$ ls /opt/intelNew/compilers_and_libraries_2017.0.102/mac/mkl/include/fftw fftw3-mpi.f03 fftw3.f fftw3.f03 fftw3_mkl.f fftw_f77.i
dhcp-ccc-1106:mkl mah$ ls /opt/intel/compilers_and_libraries_2016.1.111/mac/mkl/include/fftw/fftw*.h /opt/intel/compilers_and_libraries_2016.1.111/mac/mkl/include/fftw/fftw.h /opt/intel/compilers_and_libraries_2016.1.111/mac/mkl/include/fftw/fftw3_mkl.h /opt/intel/compilers_and_libraries_2016.1.111/mac/mkl/include/fftw/fftw3-mpi.h /opt/intel/compilers_and_libraries_2016.1.111/mac/mkl/include/fftw/fftw3_mkl_f77.h /opt/intel/compilers_and_libraries_2016.1.111/mac/mkl/include/fftw/fftw3-mpi_mkl.h /opt/intel/compilers_and_libraries_2016.1.111/mac/mkl/include/fftw/fftw_mpi.h /opt/intel/compilers_and_libraries_2016.1.111/mac/mkl/include/fftw/fftw3.h /opt/intel/compilers_and_libraries_2016.1.111/mac/mkl/include/fftw/fftw_threads.h
First the 2017 directory:
dhcp-ccc-1106:mkl mah$ ls /opt/intelNew/compilers_and_libraries_2017.0.102/mac/mkl/lib/libmkl_scala* ls: /opt/intelNew/compilers_and_libraries_2017.0.102/mac/mkl/lib/libmkl_scala*: No such file or directory
And now the 2016 directory:
dhcp-ccc-1106:mkl mah$ ls /opt/intel/compilers_and_libraries_2016.1.111/mac/mkl/lib/libmkl_scala* /opt/intel/compilers_and_libraries_2016.1.111/mac/mkl/lib/libmkl_scalapack_ilp64.a /opt/intel/compilers_and_libraries_2016.1.111/mac/mkl/lib/libmkl_scalapack_lp64.a /opt/intel/compilers_and_libraries_2016.1.111/mac/mkl/lib/libmkl_scalapack_ilp64.dylib /opt/intel/compilers_and_libraries_2016.1.111/mac/mkl/lib/libmkl_scalapack_lp64.dylib
My conclusion was that the MKL libraries installed by the Fortran 2017 installer are incomplete. Whether this is intentional, I cannot tell.
Thank you for looking into this for me.
Melissa
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Melissa,
Nice comparison! I can tell the reason now.
You are right, the problem is in the Fortran 2017 installer. the name is Intel® Parallel Studio XE Composer Edition for Fortran , right?
In order to reduce the product's size, mot all Intel MKL components are selected for installation by default. the fftw.h seems a C ++ header files, so be missed . It is a bug, i will ask our install team to fix them.
for workaround, you may install standone MKL version and let us know if any issue. (i will send the link address to you by private message).
Regarding the Scalapack library, As not all Intel MKL components are selected for installation by default. you choose “Customize installation” option on “Installation summary” dialog, then they will be installed. For more details, please see https://software.intel.com/en-us/articles/intel-math-kernel-library-intel-mkl-2017-install-guide
Best Regards,
Ying
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ying,
Thanks a lot! You are correct that I am using Intel® Parallel Studio XE Composer Edition for Fortran. Your solution worked. Instead of using the standalone MKL installer, I was also able to do a custom install with the original installer to install the complete MKL package, which also installed the Scalapack library that I needed. Once the installation was correct and complete, there was no need to move the directory fftw3xf to compile the fftw3 wrapper.
It is unfortunate that this was moved out of the Fortran forum, since this problem is an issue with the Fortran installer.
Melissa
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page