I would like to employ MKL to solve the key Poisson linear system. Basically it is the classic A x = b and I want to solver for x. My matrix is positive definition and symmetric. As it is an adaptive tetrahedral solver, it is not a band matrix. My matrix can grow to larger than 10M x 10M.
Currently I am using a custom iterative solver, specifically a conjugate gradient method solver along with an incomplete Choleski preconditioner.
If I wanted to get the most speed out of MKL, what method should I employ of MKL's in order to solve this linear system? I ask because I couldn't find a mention of "incomplete Choleski" in the Intel MKL documentation and thus I wonder whether MKL has an alternative approach that could be as effect.
BTW is Intel every thought of implementing an algebraic multi-grid solver? I understand that multi-grid lends itself to parallelization much better than conjugate gradient methods and that algebraic multi-grid methods are more flexible and easier to use than the more traditional multi-grid approaches.
Firstly you can useiterativesolver from IntelMKL with own preconditioner or some variants of incomplete LU preconditioner that realized inIntelMKL (more detailed could be find in IntelMKLReferenceManual, chapter 8). If you would like to solve your sparse matrix by any kind of direct solver you could use PARDISO functionality - solver based on full Cholesky decomposition - this functionality describe in chapter 8 ofIntelMKLReferenceManual too.
Thanks Alexander. For positive definite symmetric matrices such as Poisson equations (Laplacian) matrices in the 10M x 10M size range, would you know whether one would expect direct or preconditioned iterative solvers to be faster?
It is the main question of lastcentury- what kind of solver is better for different matrix -iterativesolver or direct. Nobody could answer on it before try both of them. But I need to say that IntelMKL have direct solver for solving 2D/3D Poisson equation forparallelepiped domains with different type of boundary condition. Could it help you to solve your problem? For more detailed please read Chapter 13 of IntelMKL Reference Manual.