[petsc-users] MKL_PARDISO question

Smith, Barry F. bsmith at mcs.anl.gov
Wed Sep 18 13:38:55 CDT 2019



> On Sep 18, 2019, at 9:15 AM, Xiangdong via petsc-users <petsc-users at mcs.anl.gov> wrote:
> 
> Hello everyone,
> 
> From here,
> https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MATSOLVERMKL_PARDISO.html
> 
> It seems thatMKL_PARDISO only works for seqaij. I am curious that whether one can use mkl_pardiso in petsc with multi-thread.

   You can use  mkl_pardiso for multi-threaded and  mkl_cpardiso for MPI parallelism.

   In both cases you must use the master branch of PETSc (or the next release of PETSc) to do this this easily.

   Note that when you use mkl_pardiso with multiple threads the matrix is coming from a single MPI process (or the single program if not running with MPI). So it is not MPI parallel that matches the rest of the parallelism with PETSc. So one much be a little careful: for example if one has 4 cores and uses them all with mpiexec -n 4 and then uses mkl_pardiso with 4 threads (each) then you have 16 threads fighting over 4 cores. So you need to select the number of MPI processes and number of threads wisely.

> 
> Is there any reason that MKL_PARDISO is not listed in the linear solver table?
> https://www.mcs.anl.gov/petsc/documentation/linearsolvertable.html
> 

   Just an oversight, thanks for letting us know, I have added it.


> Thank you.
> 
> Best,
> Xiangdong



More information about the petsc-users mailing list