- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi. I just installed Composer 15 and the associated MKL libraries and integrated them with my previously existing version of Parallel Studio 2010. The web told me that Composer 15 would replace Composer 13, which I had not uninstalled, but it appears to have installed Composer 15 in its own folder, while leaving Composer 13 alone.
I rebooted my computer and tried to compile and link some code using a makefile. I got the following errors:
Wal83.f(5): error #7002: Error in opening the compiled module file. Check INCLUDE paths. [MKL95_LAPACK]
USE mkl95_LAPACK, ONLY: GEEV
----------^
Wal83.f(241): error #6406: Conflicting attributes or multiple declaration of name. [GEEV]
CALL GEEV(TestMat,WR,WI,INFO=INFO)
-------------^
Wal83.f(5): error #6580: Name in only-list does not exist. [GEEV]
USE mkl95_LAPACK, ONLY: GEEV
------------------------------^
compilation aborted for Wal83.f (code 1)
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Intel\Composer XE 2015\bin\intel64\ifort.EXE"' :
return code '0x1'
Stop.
According to information given at https://software.intel.com/en-us/node/528327, I ran the following command from the command line, while in the following directory: C:\Program Files (x86)\Intel\Composer XE 2015\mkl\bin.
mklvars intel64 mod
I tried running the makefile again, rebooted my computer again, and tried running the makefile a third time. Each time I got the same errors as before.
It appears that the compiler can’t find the mkl library, but I don’t know what else to do to set the path.
The code for the makefile I am using for composer 2015 is:
LINCL=C:\Program Files (x86)\Intel\Composer XE 2015\mkl\include
LINCL_95=C:\Program Files (x86)\Intel\Composer XE 2015\mkl\include\intel64\lp64
L1=C:\Program Files (x86)\Intel\Composer XE 2015\mkl\lib\intel64\mkl_intel_lp64.lib
L2=C:\Program Files (x86)\Intel\Composer XE 2015\mkl\lib\intel64\mkl_intel_thread.lib
L3=C:\Program Files (x86)\Intel\Composer XE 2015\mkl\lib\intel64\mkl_core.lib
L4=C:\Program Files (x86)\Intel\Composer XE 2015\mkl\lib\intel64\mkl_sequential.lib
L5=C:\Program Files (x86)\Intel\Composer XE 2015\mkl\lib\intel64\mkl_blas95_lp64.lib
L6=C:\Program Files (x86)\Intel\Composer XE 2015\mkl\lib\intel64\mkl_lapack95_lp64.lib
all:
ifort /I"$(LINCL)" /I"$(LINCL_95)" Wal83.f Wmod83.f ModApril2013.f \
"$(L1)" "$(L2)" "$(L3)" "$(L4)" "$(L5)" "$(L6)"
cls:
del -f *.obj *.exe *.log
If anyone can help me, I would be most grateful!
Rebecca
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
They have simplified the module names for Lapack95 (but not the library names).
Look in the ...\mkl\include\ia32 or ..\mkl\include\intel64\lp64 directories for the new module names. In your source code, instead of "USE MKL95_LAPACK" you should put "USE LAPACK95".
Alternatively, and especially if you want your code to work with old and new versions of MKL, make a copy of the new module file and rename the copy to the old name.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear mecej4,
Thank you so much for your prompt, clear and helpful response! I copied and renamed the Lapack module, and that did indeed get rid of the aforementioned problem.
Unfortunately, another problem is now apparent from the following error messages:
mkl_intel_thread.lib(mkl_print_verbose.obj) : error LNK2019: unresolved external symbol omp_get_thread_num referenced in function mkl_serv_print_verbose_info
mkl_intel_thread.lib(mkl_threading.obj) : error LNK2019: unresolved external symbol omp_in_parallel referenced in function mkl_serv_get_max_threads
mkl_intel_thread.lib(mkl_threading.obj) : error LNK2019: unresolved external symbol omp_get_max_threads referenced in function mkl_serv_get_max_threads
mkl_intel_thread.lib(mkl_threading.obj) : error LNK2019: unresolved external symbol omp_get_num_procs referenced in function count_cores_impl_win32_or_ver_6_0_or_less
Wal83.exe : fatal error LNK1120: 4 unresolved externals
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Intel\Composer XE 2015\bin\intel64\ifort.EXE"' :
return code '0x460'
Stop.
I looked around to see if something else in my source code or makefile needed to be renamed, but could not find anything. Can you (or can anyone else) help with these new errors?
Thank you!
Mrs. Swan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It's a bit doubtful if adding the /Qopenmp option will take care of the problem (since you did not list the options used to compile and build), but it may do the trick.
With any but the simplest applications, it is good to use the MKL Link Line Advisor (available on line or installed locally). See https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor .
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi mecej4,
I was not using any compiler options, and adding the /Qopenmp option did indeed take care of the problem. Thank you.
Does this mean that the MKL associated with Composer 15 requires openmp, whereas the MKL associated with Composer 13 did not? I did not use openmp in any of my scripts, and the makefile (that does not use any compiler options) that I showed in my first post worked perfectly with the exact same scripts using Composer 13.
Thank you again for the help.
Cygnetmama
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
There are many places (even more so on Windows) where pieces of the option set for IFort are kept, so it is difficult to answer without looking at all those places, for the new compiler and the old compiler.
The Intel compiler has a large number of options, some of which may change from version to version. Some options are even allowed to stay after they cease to have any effect, in order to allow old makefiles to continue working. It would be nice to see "warning: option xxx is ignored".
You can see the IFort options related to parallelization at https://software.intel.com/en-us/node/525010 .
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
mecej4,
Thank you again for all of your help!
cygnetmama
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
MKL has made changes over the years which require users to change build options and even sources. Looking at the current MKL documentation, it specifies linking with the OpenMP library (libiomp5md.lib) in all cases.
You should assume that when the MKL version changes that you may need to make build or source changes. Be sure to read the MKL release notes carefully.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page