[petsc-dev] plans for preconditioners for SeqSELL

Smith, Barry F. bsmith at mcs.anl.gov
Sun Mar 4 18:17:02 CST 2018



> On Mar 4, 2018, at 6:16 PM, Jed Brown <jed at jedbrown.org> wrote:
> 
> Matthew Knepley <knepley at gmail.com> writes:
> 
>> On Sun, Mar 4, 2018 at 6:57 PM, Jed Brown <jed at jedbrown.org> wrote:
>> 
>>> "Zhang, Hong" <hongzhang at anl.gov> writes:
>>> 
>>>> We have thought about subclassing long before. As Barry suggested, an
>>>> ideal solution is to make a base class (XAIJ ?) for AIJ, BAIJ, SBAIJ,
>>>> and SELL. The base class will have diagonal and off diagonal parts
>>>> without binding their storage format to CSR-type. This requires a lot
>>>> of efforts to refactor the current AIJ. But I think we should
>>>> eventually do it.
>>> 
>>> It sounds like we're mixing the concerns of parallel decomposition (for
>>> which "Seq*" isn't relevant) with the sequential format as some CSR-like
>>> variant.  And apart from a couple abstraction-breaking performance
>>> optimizations (that may not be necessary and could be done differently),
>>> they are nearly independent.
>>> 
>>> Now there are some good reasons why we might want SeqAIJ to run inside a
>>> different parallel decomposition.  MATIS is one such format.  If we're
>>> serious about working with irregular problems, we'll eventually need a
>>> 2D sparse decomposition.  We could get it from an existing package such
>>> as CombBLAS, but if we do preconditioners that depend on matrix format,
>>> we'll likely want it to work on some native format.
>>> 
>>> Also, we need a better way to do small-size specialization.  I
>>> personally like doing it via inline functions instead of macros and
>>> copy-pasta, though the XL compiler can be offensively negligent.
>>> 
>> 
>> I have missed the larger point. What do you think should be done?
> 
> I think the stuff that is currently called "MPIAIJ" should be refactored
> to not depend on AIJ at all.  That is kind of necessary anyway if SELL
> is going to be made to derive from AIJ without also maintaining
> AIJ-format storage.  Once refactored, that stuff that is currentnly
> called "MPIAJ" should be renamed to something that does not include the
> substring "AIJ".

   I think this is the plan.
> 
> Or are you asking about specialization?



More information about the petsc-dev mailing list