Marius, You are right. perm is not referenced. I searched and found this, https://software.intel.com/content/www/us/en/develop/documentation/mkl-developer-reference-c/top/sparse-solver-routines/parallel-direct-sparse-solver-for-clusters-interface/cluster-sparse-solver.html . It says "perm Ignored". But from other parts of the document, it seems perm is used. I'm puzzled whether Intel MKL pardiso supports this feature or not.
I am thinking about adding MatMkl_CPardisoSetPerm(Mat A, IS perm) or MatMkl_CPardisoSetPerm(Mat A, const PetscInt *perm). But I don't know whether perm(N) is distributed or every mpi rank has the same perm(N). Do you know good Intel MKL pardiso documentation or examples for me to reference? Thank you. --Junchao Zhang On Thu, May 7, 2020 at 3:14 AM Marius Buerkle <[email protected]> wrote: > Hi, > > Thanks for the info. But how do I set the values to be calculated. > According to the intel parallel sparse cluster solver manual the entries > have to be defined in the permutation vector (before each call). However, > if I understand what is happening in mkl_cpardiso.c. correctly, perm is > set to 0 during the initialization phase and then not referenced anymore. > Is this correct? How can I specify the necessary entries in perm? > > Best, > Marius > > > > > On Fri, May 1, 2020 at 3:33 AM Marius Buerkle <[email protected]> wrote: > >> Hi, >> >> Is the option "-mat_mkl_cpardiso_31" to calculate Partial solve and >> computing selected components of the solution vectors actually supported >> by PETSC? >> > From the code, it seems so. > >> >> Marius >> >
