I've a relatively large program in Fortran90 that relies on the mkl library, in particular BLAS, LAPACK, and DFTI subroutines. These are called repeatedly within the program. There is no OpenMP threading of my own in the code, and i use Intel Fortran compiler (15.0.3) on linux. When executed as a single thread (OMP_NUM_THREADS=1; MKL_NUM_THREADS=1), the program runs without any problems. When I allow the MKL to thread, the process runs correctly for many iterations of the problem, then, after about 12 hours, it goes to sleep state. Using "strace", I found out that it freezes on a call to "futex" function. I've also noticed, using regular checks of the process by "pmap", that with threading enabled, the memory allocated to the program slowly creeps up. In single-thread regime, the memory stays constant (after some initial allocations). Obviously, the whole thing is difficult to debug given the time constraints, so far I still don't know which mkl subroutine is responsible for this. If I test the code on smaller-size, faster cases, the threading problem doesn't occur. I am a bit stuck with the problem, any ideas what to try are welcome. Thanks.
Jakub, if you use MKL bundled with Fortran Compiler 15.0 -- that's mean this is MKL v.11.2 and as I remember, a few memory leakage problems has been fixed in BLAS and in some another routines into MKL 11.2 update 4 and 11.3.*. Could you quick check the latest MKL 2017 ( you may take this version for evaluation for 30 days)?