Hello,
I have a problem with numerical accuracy, I think. I use Fortran.
I solve a sparse matrix with a direct method (Cholesky). All storage is done on a large onedimensional array placed in a common block. The problem (cfd) is non-linear, so after solving the matrix the coefficents have to be updated and the matrix has to be new assembled and solved again and again. When this has to be done with not too large martices about 100 times, everything is ok. But on large matrices and several hundred iterations, the result are not identical compared with a computation without OpenMP.
Doing this without openmp, the code works. Running it several times the results are identical each time. But when I compile it with openmp, the results are not identical. They differ between several computations. This is even the case, when I remove all !$OMP directives or compute with one thread only. So I'm shure I have no race conditions.
I use the latest Intel-Fortran-compiler.
I guess, the numerical precision is handeld different when using openmp and rounding errors occour or something else.
Do you have an idea or some advice for me?
Thank you and best regards,
Heinz
