Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

Bugs in recent MKLs?

Zhanghong_T_
Novice
654 Views
Dear administrator,

I found that some new versions of MKLs get incorrect result. Several days before I use the windows version "10.1.0.018" (em64t) and the result is reasonable and correct (the libs I used are: mkl_intel_lp64.lib mkl_intel_thread.lib mkl_core.lib libiomp5mt.lib impi.lib impicxx.lib mkl_blacs_intelmpi_lp64.lib mkl_scalapack_lp64.lib), however, after I upgraded the version to "10.1.2.026" the result is not reasonable, then I tested "10.1.1.022", the result is still not reasonable.

The project is very large and I don't know which functions have problems so I have to give up the new version and use the "10.1.0.018" again.

Is there any different settings to do for me to use latest version of MKL compare to the "10.1.0.018"?

Thanks,
Zhanghong Tang
0 Kudos
9 Replies
TimP
Honored Contributor III
654 Views
Among the cautions to observe with an upgrade would be to make sure you got the latest version of each library, not a mixture of old and new versions. This is one of the reasons for the docs recommending against the static libiomp5, as you may have several versions on the search path, or you may have linked the old static version into a part of your build which you didn't update.
0 Kudos
Zhanghong_T_
Novice
654 Views
Quoting - tim18
Among the cautions to observe with an upgrade would be to make sure you got the latest version of each library, not a mixture of old and new versions. This is one of the reasons for the docs recommending against the static libiomp5, as you may have several versions on the search path, or you may have linked the old static version into a part of your build which you didn't update.
Dear Tim,

Thank you very much for your kindly remind. Before I link my program I copied the necessary libs to the given folder and when I link the program, I specified the path to the folder.
The following are the libs which should be used in linking (unreasonable results):
2007-04-26 19:16 13,814 ifconsol.lib
2007-04-26 19:16 19,802 ifwin.lib
2008-03-31 12:36 435,336 impi.lib
2008-03-31 13:16 537,180 impicxx.lib
2007-04-26 19:16 1,644,336 libifcoremt.lib
2007-04-26 19:16 448,398 libifport.lib
2008-03-14 13:55 1,120,022 libiomp5mt.lib
2007-04-26 19:16 403,672 libirc.lib
2007-04-26 19:16 3,475,038 libmmt.lib
2009-04-02 04:35 621,320 mkl_blacs_intelmpi_lp64.lib
2009-04-02 06:06 124,432,680 mkl_core.lib
2009-04-02 06:05 6,314,370 mkl_intel_lp64.lib
2009-04-02 06:06 17,426,092 mkl_intel_thread.lib
2009-04-02 06:07 8,631,958 mkl_scalapack_lp64.lib
2007-04-26 19:16 969,618 svml_disp.lib


The following are the libs which should be used in linking (reasonable results):
2007-04-26 19:16 13,814 ifconsol.lib
2007-04-26 19:16 19,802 ifwin.lib
2008-03-31 12:36 435,336 impi.lib
2008-03-31 13:16 537,180 impicxx.lib
2007-04-26 19:16 1,644,336 libifcoremt.lib
2007-04-26 19:16 448,398 libifport.lib
2008-03-14 13:55 1,120,022 libiomp5mt.lib
2007-04-26 19:16 403,672 libirc.lib
2007-04-26 19:16 3,475,038 libmmt.lib
2008-09-26 02:33 621,266 mkl_blacs_intelmpi_lp64.lib
2008-09-26 01:52 121,208,798 mkl_core.lib
2008-09-26 01:52 6,085,026 mkl_intel_lp64.lib
2008-09-26 01:52 17,077,628 mkl_intel_thread.lib
2008-09-26 03:28 8,631,958 mkl_scalapack_lp64.lib
2007-04-26 19:16 969,618 svml_disp.lib

Do you think that there are some problems?

Thanks,
Zhanghong Tang
0 Kudos
TimP
Honored Contributor III
654 Views
I would be concerned about the older version of libiomp5. That is only a suspicion. Possibly someone on the MKL development team could confirm, but the design of libiomp5 assumes that you could use a newer one which comes with the MKL you are using. I don't know whether the new libiomp5 will work with a compiler which is close to 2 years old, but it is more likely than the hope that the libiomp5 of intermediate date will continue to work with the latest MKL.
0 Kudos
Zhanghong_T_
Novice
654 Views
Quoting - tim18
I would be concerned about the older version of libiomp5. That is only a suspicion. Possibly someone on the MKL development team could confirm, but the design of libiomp5 assumes that you could use a newer one which comes with the MKL you are using. I don't know whether the new libiomp5 will work with a compiler which is close to 2 years old, but it is more likely than the hope that the libiomp5 of intermediate date will continue to work with the latest MKL.
Dear Tim,

Thank you very much for your detailed explain. I replaced the original file "libiomp5mt.lib" by the one from the latest version of MKL and the result still unreasonable. So there must be some other problems.

Thanks,
Zhanghong Tang
0 Kudos
Gennady_F_Intel
Moderator
654 Views
MKL userguide is strongly encouraged to dynamically link in Intel Compatibility OpenMP* run-time
Library libiomp5md. Did you try to use this linking mode?
--Gennady
0 Kudos
Zhanghong_T_
Novice
654 Views
MKL userguide is strongly encouraged to dynamically link in Intel Compatibility OpenMP* run-time
Library libiomp5md. Did you try to use this linking mode?
--Gennady
Dear Gennady,

Thanks for your kindly reply. I also noticed this, but I would like to link to the static libs so that my program can run seperately on other machines without copying additional dynamic libs.



Thanks,
Zhanghong Tang
0 Kudos
Gennady_F_Intel
Moderator
654 Views
Well, how can we investigate this issue further? Your linking setting is fine.
Id recommend you to try libomp5md, only for checking the problem.
Can you get us the test-example for reproducing and investigating the cause of the problem?
--Gennady
0 Kudos
Zhanghong_T_
Novice
654 Views
Well, how can we investigate this issue further? Your linking setting is fine.
Id recommend you to try libomp5md, only for checking the problem.
Can you get us the test-example for reproducing and investigating the cause of the problem?
--Gennady
Dear Gennady,

Thank you very much for your kindly suggestion. Just as you said, after I linked with libomp5md, the program works and correct result got. When the program was run on some other machines without the Intel Compiler and MKL installed, the files "libifcoremd.dll, libifportmd.dll and libmmd.dll" are needed.

However, is there any method to let the program work when linked statically?

Thanks,
Zhanghong Tang
0 Kudos
Zhanghong_T_
Novice
654 Views
Sorry, it still can't work. Just now I run the one built by old method. When run the run by the method you suggested, the following message displayed:

This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem.


Which additional dynamical libs should I put to the folder of my program?

Thanks,
Zhanghong Tang
0 Kudos
Reply