Hello!
I'm using IVF Compiler 11.0.066 and MKL 10.1
So, I have this subroutine which is called from parallel $omp do cycle. In this subroutine I calculate inverse of a matrix, like this:
call getrf(Matrix, ipiv)
call getri(Matrix, ipiv)
everything works great in sequential execution, but when there are more than one thread application crashes at call getri(Matrix, ipiv) with exceptions like "heap corruption" or "access violation"
when I modify this code like this:
call getrf(Matrix, ipiv)
!$omp critical
call getri(Matrix, ipiv)
!$omp end critical
everything works in parallel execution, but obviously this is a bad solution
why this is happening and how should I change my code to make it work without $critical section?