[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