[petsc-users] MKL Pardiso Solver Execution Step control
Matthew Overholt
overholt at capesim.com
Wed Jun 6 14:57:22 CDT 2018
On Wed, Jun 6, 2018 at 6:30 AM, Smith, Barry F. <bsmith at mcs.anl.gov> wrote:
>
>
>
> > On Jun 5, 2018, at 7:36 PM, Matthew Overholt <overholt at capesim.com>
> wrote:
> >
> >
> > On Tue, Jun 5, 2018 at 1:48 PM, Smith, Barry F. <bsmith at mcs.anl.gov>
> wrote:
> >
> >
> > > On Jun 5, 2018, at 4:08 PM, Matthew Overholt <overholt at capesim.com>
> wrote:
> > >
> > > Yes to Matthew - not repeating Phase 1: Fill-reduction analysis and
> symbolic factorization . Numerical factoring is required because the
> matrix values have changed (although only slightly) as well as the RHS.
> > >
> > > We are using KSPPREONLY with Picard iterations. Thank you, Barry, for
> the KSP*Preconditioner calls I wasn't aware of.
> > >
> > > It sounds like PETSc and/or Pardiso automatically determines whether
> Phase 1 is required or not, but if we want to force a new Phase 1 (such as
> in a long unsteady run), then I suppose we could just destroy KSP and
> remake it.
> >
> > I'm confused. Yes PETSc will do a new analysis if the nonzero
> structure changes otherwise it will never do a new analysis.
> >
> > Is your nonzero structure changing?
> >
> > If you nonzero structure is not changing you have to do nothing.
> >
> > If the nonzero structure does change than the code needs to do a new
> analysis because the old factors (for the numerical part) cannot work with
> the new nonzero locations of the matrix.
> >
> > I really don't see why you have to do anything?
> >
> > Barry
> >
> > No, the nonzero structure never changes. Redoing the analysis is not
> required, in the sense that a solution can still be obtained without it;
> however, for long unsteady runs (with heat sources turning on and off) the
> matrix values change so much that, without redoing the analysis, more
> iterations are required to converge at each time step, resulting in a
> doubling of the total solve time compared to when the analysis is
> periodically redone. I don't know exactly what Pardiso is doing "under the
> hood" but that has been our experience.
>
> Strange; I've never heard of this before, anyways,
>
> You could trick it by "saying" that the nonzero structure has changed
> even if it has not. The matrix struct has a field A->nonzerostate you
> could simply increase this value by 1 (include #include
> <petsc/private/matimpl.h> to get access to the field). Any time you change
> this value will trigger a new analysis stage.
>
> Thanks, I'll give this a try.
Matt...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20180606/5500f29a/attachment.html>
More information about the petsc-users
mailing list