[petsc-dev] plans for preconditioners for SeqSELL

Jed Brown jed at jedbrown.org
Sun Mar 4 18:16:06 CST 2018


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".

Or are you asking about specialization?


More information about the petsc-dev mailing list