The MKL version that I have has bugs, and I need to update it. I need help getting it updated.
I am confused about what version of Intel Fortran I have installed.
The Help About box in Visual Studio says: Intel(R) Visual Fortran Composer XE 2013 Update 4 Integration for Microsoft Visual Studio* 2012, 13.0.3624.11
When compiling code, the output window says: Compiling with Intel(R) Visual Fortran Compiler XE 184.108.40.206
The MKL library that I have calls itself: Intel(R) Math Kernel Library Version 11.0.4 Product Build 20130517
I downloaded the "community" MKL library 220.127.116.11. w_mkl_18.104.22.168.exe about 565 megabytes. I installed it and rebuilt my project, but my project still uses 11.0.4.
The folder where 22.214.171.124 installed to was nearly 2 GB, and completely separate from where Composer XE 2013 is installed.
It is possible (and not unusual) to have more than one version of the compiler and more than one version of MKL installed on one computer. Within Visual Studio, if more than one compiler has been "integrated", it is possible to choose which compiler to use in a particular project.
When building in a command window, the batch file used to launch the window determines which versions of MKL and compiler are used. If you know the directories where your various versions have been installed, you can configure a new batch file to choose a specific combination of MKL and compiler, using one of the existing batch files as a template. However, this method is not advised for users who are not regular users of command line development tools.
If you rely on Visual Studio to give you the latest combination possible, the various installers would be required to run in a specific order and, if they were run in the wrong order or something malfunctioned, problems can arise. Although the installers generate voluminous log files of embedded SQLite database transactions which could be inspected to find out what went wrong, the size of the log files, lack of documentation available to end users regarding what a normal log file should contain and the amount of information in the log file all combine to create a de-facto situation in which the cure-all prescription is "remove and reinstall", but this situation is what I assume the majority of customers prefer.
When do you rest, mecej4?
I prefer to stick with Visual Studio (for better or worse). The code management and debugging environment work well enough for me, and besides I don't know how to do it any other way. My days of compiling at the command line are distant memories.
Win7 Add Remove Programs shows an item for "Intel Composer XE 2013 Update 4 for Windows." I also have Microsoft Visual Studio Professional 2012, which was installed prior to installing IVF. There is also an item for "IMSL Fortran Library 6.0 for Intel VF Composer XE 2013". The IMSL works, but I prefer not to use it, so I could probably uninstall it and not miss having it.
I have a bought-and-paid-for license code for Composer XE 2013. When I downloaded w_mkl_126.96.36.199.exe the Intel web site sent me another license code. When I ran it earlier this morning, I think it installed something called Composer Parallel XE 2016 or something like that. Visual Studio 2012 still used the old Intel compiler and MKL when I subsequently rebuilt my program. At this time it is no longer installed. I used Add Remove Programs to remove it.
Let me see if I got this right. I should remove XE 2013, and then install w_mkl_188.8.131.52.exe using the new license code ? This download came from an Intel web page for "free software". So won't I lose the Intel Fortran compiler when I do this?
I should remove XE 2013, and then install w_mkl_184.108.40.206.exe using the new license code ?
Probably not. You would have no Fortran compiler then, and getting MKL to work with, say, GFortran on Windows is not trivial.
Look at the release notes for MKL 11.3 at https://software.intel.com/en-us/articles/intel-mkl-113-system-requirements . I do not see Composer XE 2013 there, so that is a hurdle that you will have to overcome. One of the issues with using an older compiler with a newer MKL is that the newer module files (*.MOD) may be unreadable for the older compiler. Intel provides the source (*.f90) files from which you can regenerate the module files to match your compiler, but you will have to do this work yourself.
I would advise against removing IMSL. MKL is young and fast, but it simply does not cover the broad range of numerical algorithms that IMSL does. Even old versions of IMSL will do fine if you find yourself needing to use routines from IMSL for which no MKL equivalent exists.
If you limit yourself to packages that install themselves and are then "ready to go out of the box", you probably have to upgrade to a current compiler.
Hmmm. The MKL version I already have is working for me in 32 bit flavor except for zcsrcoo. And you have generously provided me with a very nice routine to take its place. I could:
- Use your routine, or
- Try to get the newer MKL installed and working with Composer XE 2013 and VS 2012 (and also VS 2010 on another system).
I do also need to build an x64 bit version of my application, hopefully without encountering any issues with MKL.
I am hopeful that before too long my sponsor will get me the very latest Intel Fortran and its MKL. So I think for the time being, I will use your coo2csr.
My reason for not using IMSL is because of IMSL's change in distribution licensing. Fortunately, I can do without it.
Here is some potentially good news for you. If I am not mistaken, the only problem you have is with mkl_z_csrcoo() in MKL 11.0.4. I found that as part of some third party package I have MKL 11.0.1 dated 20121016, and it exhibits the bug that you described in your other thread at https://software.intel.com/en-us/forums/intel-math-kernel-library/topic/593383#comment-1839438 . I also happen to have 11.0.5, dated 20130612, and this (last) update of MKL 11.0 does not have the bug! Furthermore, you should be able to replace 11.0.4 with 11.0.5 without any compiler-MKL compatibility issues.
You have 11.0.4, and it has a bug that is a show-stopper for you, and the next update, 11.0.5, will get you going again (assuming that it has no new bugs that will affect you). Whether Intel's licensing/support policy entitles you to download 11.0.5 or not, they may be willing to let you obtain 11.0.5 out of goodwill, as they have done in similar situations. I suggest that you make a request at the companion licensing forum, https://software.intel.com/en-us/forums/intel-software-development-products-download-registration-licensing , describing your predicament.
Of course, you should continue to pursue the possibility of getting your sponsor to help with upgrading to the current version of IFort + MKL.
I just now posted a request for 11.0.5 in that other forum.
In the meantime I have successfully implemented your coo2csr routine in my application, and it's working perfectly (you must be thinking, "of course!").