The easiest way to do this is use -ksp_type preonly -pc_type redundant 
-redundant_ksp_type preonly -redundant_pc_type lu 
-redundant_pc_factor_mat_solver_package mkl_pardiso

   This automatically manages move the matrix and right hand side vector down 
to one process (this is what -pc_type redundant) does.

   Barry

Of course all the code exists in PETSc to help you manage the process of moving 
the matrix down to one process yourself but why bother when -pc_type redundant 
can do it for you. Plus with the same code you can try parallel solvers like 
mumps and superlu_dist and mkl_cpardiso.




> On May 2, 2016, at 4:00 PM, Matthew Overholt <[email protected]> wrote:
> 
> Petsc-users,
>  
> I want to use PARDISO for a KSPPREONLY solution in a parallel context.  I 
> understand that my FEA stiffness matrix for KSP (PARDISO) needs to be of type 
> MATSEQAIJ (according to MATSOLVERMKL_PARDISO), but I would like to assemble 
> this matrix in parallel (MATSBAIJ) and then collect it on root as a 
> sequential matrix for calling KSP/PARDISO.  For vectors there is 
> VecScatterCreateToZero() but I can't find the equivalent for matrices.  I can 
> avoid the parallel matrix stiffness altogether and use 3 vectors instead, but 
> I'm wondering if that is my best option.
>  
> What is the recommended practice for using PARDISO in a parallel context?  
> The only examples I've found so far are sequential.
>  
> Thanks in advance,
> Matt Overholt
>  
> 
>       Virus-free. www.avast.com

Reply via email to