[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