Sorry for the late reply, but it took some time to figure things out with intel support. It turned out  that the feature is at the present only available in the non-mpi MKL pardiso but not in the MKL cluster solver, so the MKL manual is actually wrong here. I filled a feature request at intel premium support but no clue how long this will take (if ever) to add it. in case it will be available in mkl at some point i will come back to you.
 
best and thanks
marius
 
 

Betreff: Re: Re: Re: [petsc-users] mkl cpardiso iparm 31
Marius,
  Thanks for the update. Once you get feedback from Intel, please let us know. If Intel supports it, we can add it.  I am new to pardiso, but I think it is doable. 
--Junchao Zhang
 
On Thu, May 7, 2020 at 11:56 PM Marius Buerkle <[email protected]> wrote:
Hi Junchao,
 
I contacted intel support regarding this, they told me that this is a typo in the manual and that iparm[30] is indeed used. However, while it works for the non-MPI (MKL_PARDISO) version, it does not work, or I could not get it working, for the cluster sparse solver (MKL_CPARDISO). I reported this also to intel support but no reply yet. I was also wondering about how perm(N) is distributed and I don't know at the moment.
 
Best,
Marius
 
 
 
Marius,
  You are right. perm is not referenced. I searched and found this, 
  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

Reply via email to