- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I recently upgraded to a 64-bit processor but have been unable to obtain a working 64-bit executable. My code uses BLAS libraries and in the past (on 32-bit) I linked using mkl_c.lib which works perfectly fine. Initially, when trying to build the same on 64-bit machine, I was having linking issues which was solved by replacing mkl_c.lib with mkl_em64t.lib. However, the executable crashes due to NaNs in the very first step!
Please note that the source code has no OpenMP directives and the compilation script is straightforward:
#
ifort -c /Od prog1.f
ifort -c /Od prog2.f
ifort -o prog.exe prog1.obj prog2.obj libguide40.lib mkl_em64t.lib
#
Steps I have taken thus far:
Note that there are no errors/warnings when compiling or linking.
I have tried another set of code that does NOT require BLAS library which worked just fine. Further, in the past I used individual BLAS routine files (instead of MKL library) and tried doing the same in the 64-bit environment but that did not work either!
I am including the relevant details below.
Intel Compiler: 11.0.066 (Build 20081105)
MKL : 10.0.4.023
Processor : W5590 Xeon
Operating Sys : Windows 7 (64-bit)
What am I missing? doing wrong?
I saw an article specifically highlighting the MKL support for Nehalem architecture (http://software.intel.com/en-us/articles/mkl-supports-nehalem/). My version of MKL is older. Is it a compatibility issue related to 64-bit build?
UPDATE: 2009/12/04 (12:00 PST)
Interestingly, I also have noticed that if I run the 32-bit executable from the build environment, it ends unsuccessfully (yes, contrary to what I mentioned earlier). However, if I were to run it from the explorer window (that is, simply double-click the exe) then the run is successful! Any ideas?
Thanks for your help.
Ankur
I recently upgraded to a 64-bit processor but have been unable to obtain a working 64-bit executable. My code uses BLAS libraries and in the past (on 32-bit) I linked using mkl_c.lib which works perfectly fine. Initially, when trying to build the same on 64-bit machine, I was having linking issues which was solved by replacing mkl_c.lib with mkl_em64t.lib. However, the executable crashes due to NaNs in the very first step!
Please note that the source code has no OpenMP directives and the compilation script is straightforward:
#
ifort -c /Od prog1.f
ifort -c /Od prog2.f
ifort -o prog.exe prog1.obj prog2.obj libguide40.lib mkl_em64t.lib
#
Steps I have taken thus far:
- compiled with and without optimization on both 64-bit and 32-bit environment on the 64-bit machine.
- ran test case separately with the 2 executables.
- 32-bit executable works just fine (at least the one without optimization; did not test the one with, yet); 64-bit crashes (both with and without optimization).
- Followed MKL Link Line Advisor (http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/) and replaced mkl_64emt.lib with "mkl_solver_lp64_sequential.lib mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib" --> 64-bit crashes
- Replaced mkl_64emt.lib with "mkl_solver_ilp64_sequential.lib mkl_intel_ilp64.lib mkl_sequential.lib mkl_core.lib" --> 64-bit crashes
Note that there are no errors/warnings when compiling or linking.
I have tried another set of code that does NOT require BLAS library which worked just fine. Further, in the past I used individual BLAS routine files (instead of MKL library) and tried doing the same in the 64-bit environment but that did not work either!
I am including the relevant details below.
Intel Compiler: 11.0.066 (Build 20081105)
MKL : 10.0.4.023
Processor : W5590 Xeon
Operating Sys : Windows 7 (64-bit)
What am I missing? doing wrong?
I saw an article specifically highlighting the MKL support for Nehalem architecture (http://software.intel.com/en-us/articles/mkl-supports-nehalem/). My version of MKL is older. Is it a compatibility issue related to 64-bit build?
UPDATE: 2009/12/04 (12:00 PST)
Interestingly, I also have noticed that if I run the 32-bit executable from the build environment, it ends unsuccessfully (yes, contrary to what I mentioned earlier). However, if I were to run it from the explorer window (that is, simply double-click the exe) then the run is successful! Any ideas?
Thanks for your help.
Ankur
Link Copied
4 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
hi,
possible that the reason for this behaivior is that Compiler v.11.066 contains MKL version 10.1. see article to determine which version of Intel MKL is installed with Intel Compiler.
or
Windows 7 - is not supported by this version of MKL officially ( see the release notes for this version ).
--Gennady
possible that the reason for this behaivior is that Compiler v.11.066 contains MKL version 10.1. see article to determine which version of Intel MKL is installed with Intel Compiler.
or
Windows 7 - is not supported by this version of MKL officially ( see the release notes for this version ).
--Gennady
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ankur,
Can you check this problem on WinXP? or
Can you send us the test case for checking the problem on our side?
--Gennady
Can you check this problem on WinXP? or
Can you send us the test case for checking the problem on our side?
--Gennady
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Gennady Fedorov (Intel)
Ankur,
Can you check this problem on WinXP? or
Can you send us the test case for checking the problem on our side?
--Gennady
Can you check this problem on WinXP? or
Can you send us the test case for checking the problem on our side?
--Gennady
Thank you for you responses.
As far as the MKL contained inside the compiler is concerned, I tested the very version by altering the path to the independently installed MKL and it did not work out.
I unfortunately do not have XP 64-bit to test it on, but did test the same on Vista and worked without any hiccups. I am guessing its a compatibility issue with Windows 7. As far the test case is concerned, I unfortunately do not have the power to decide but will discuss with the powers that be and get back to you on that.
Do you have any thoughts about the weird behavior with 32-bit compiled executable?
Thanks.
Ankur
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ankur,
If you are linking your 64-bit application with MKL *_ilp64 libary then you need to add -i8 flag for Fortran compiler. So, INTEGER wil become as INTEGER*8. In case if you want to use just INTEGER please try to link with MKL *_lp64 library.
Thanks
-- Victor

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page