On Sun, Mar 4, 2018 at 6:57 PM, Jed Brown <[email protected]> wrote: > "Zhang, Hong" <[email protected]> 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? Matt -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener https://www.cse.buffalo.edu/~knepley/ <http://www.caam.rice.edu/~mk51/>
