Problem: I have translated Jacobian-Free Newton-Krylov solver written by C. T. Kelley to Fortran and now want to parallelize it on shared-memory system with OpenMP. In addition, I want to precondition the system with ILU0 or ILUT preconditioners.
Considered solution: I want to use FGMRES from Intel MKL library - I expect that it is higly optimized and threaded. Since it does not support complex numbers, I will follow Intel's solution to split the problem:
For ILU0 preconditioner I have decided to use piece of code from Yousef Saad book Iterative Methods for Sparse Linear Systems Second Edition and paralellize it.
Then I will use ?getri from MKL which "Computes the inverse of an LU-factored general matrix".
Question: Does it sounds reasonable? Any other solver for shared-memory systems?