I use MKL and IFORT for about 20 year. Now I have version 220.127.116.11.
Two days ago I spotted that zheevd of MKL produces wrong eigenvalues.
I could reproduce the error, and it looks like this:
produces a WRONG result
produces the correct result with the other settings left.
produces the correct result, whatever the number of threads and the other settings are.
My solution is to have OMP_DYNAMIC="FALSE" in all applications,
but I do not understand why the problem occurs. I have an old machine with
version 11.1 where the problem does not occur.
thank you for taking care of the case so quickly. You can download everything from
You probably have to modify the makefile. If you run run.sh it should do everything. The program diag reads a huge matrix, of which only a part is diagonalized. This can be set with ThisDim in diag.f. The error did not occur if the matrix is small, say smaller than 100x100, but it always occurs with 1000x1000. I usually treat much bigger matrices.
My omp-output is in run.out. The various eigenvalues are in diag-omp-*
I have more news:
- On my system (centos 7), ifort version 18.104.22.168 I can repeat the problem again and again.
- On a second system (centos 8), onto which I copied the binary, it does not occur.
- On one of Germany's supercomputers (supermuc-ng, Garching) it also does not occur; they run suse and ifort version 22.214.171.1241
It may be specific to my system or to the version ...
Thanks for investigating. Cheers, Juergen
you can download the result here:
A funny thing happened: after having set the variable in run.sh the outcome is
sometimes wrong, sometimes right. I have repeated it 4 times, and the version
I am sending you is one where the result is wrong.
We were not able to reproduce the problem with the current version of MKL 2020u4.
The only difference we see is the optimal workspace size, which changed from 130.0 to 149.0, but it is expected behavior.
The environment we tested: RH7.2 and CentOS 7.7,
two (AVX512 and AVX2 based systems) systems: Intel(R) Xeon(R) Platinum 8268 CPU @ 2.90GHz and Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz
MKL LP64, intel_threaded modes.
I thank you for trying. It might be a peculiar coincidence on my system.
Since I know that "OMP_DYNAMIC=FALSE" cures the problem, I can run problems with this setting.
I might as well download a new version of the MKL.
With best regards, Juergen