[petsc-users] Parallel to sequential matrix scatter for PARDISO

Barry Smith bsmith at mcs.anl.gov
Mon May 2 16:40:27 CDT 2016


   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 <overholt at capesim.com> 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



More information about the petsc-users mailing list