I am using the trust region solver in MKL and having issues where dtrnlsp_solve takes significantly longer to complete. I have got many threads that all need to run an optimization using the trust region solver, each optimization problem has about 200 residuals and about 40-70 unknowns. When I get to a high number of threads needing to perform the optimization I start to see (though concurrency profiling) that many of the threads are blocked in the solve for up to 20 times longer than a normal solve. I start to see this behaviour when I have about 40-60 threads which could call the trust region solver. I have tried two versions of MKL. Initially I was using version 11.1.2 and seeing the trust region threads spinning with a call stack ending in mkl_serv_lock <- mkl_serv_deallocate. I then tried version 11.3.0 and saw the threads spinning or sleeping in tbb under mkl_serv_allocate.
I'm using external threading so I am running MKL in sequential mode. I'm also using the tbb allocator and 64 bit versions.
Ideally I would like to find a solution that works for MKL version 11.1.2. There appears to be a small change in the solution produced by the optimization between 11.1.2 and 11.3.0 with the older version appearing to converge to a smaller overall error.
Thanks in advance
Steven