Hi,
I have a problem in the precision of the MKL , with dsyevd by example, when using -openmp even though this part of the code is purely sequential. There is a difference between the solution without openmp , and with openmp ( free for the number of threads).
NOOMP eigvect -0.0000015360581732 -0.9999999999988203 -0.9999999999988203 0.0000015360581732
OMP 1 eigvect -0.0000015360581732 -0.9999999999988203 -0.9999999999988203 0.0000015360581732
OMP 2 eigvect -0.0000015360581732 -0.9999999999988203 -0.9999999999988203 0.0000015360581732
OMP 3 eigvect -0.0000015362783716 -0.9999999999988201 -0.9999999999988201 0.0000015362783716
OMP 4 eigvect -0.0000015360581732 -0.9999999999988203 -0.9999999999988203 0.0000015360581732
I have set MKL_ALL=1, if not then the result is different for 1 ,2 ,3, and 4 threads. The problem is that those small differences change the behavior later in the program. Considering that i dont want to use openmp in the mkl, i should have the same values. But another thing is, is that normal that the results are different using threads in mkl ?
Also, if i link with blas lapack instead of MKL, i don't have that problem.
thanks