[petsc-dev] MATCOMPOSITE as fallback for matrix-matrix multiplication
Isaac, Tobin G
tisaac at cc.gatech.edu
Sat Mar 9 15:42:36 CST 2019
Let's say I want to do Newton-Krylov on some DAG of computations.
Building the Jacobian is programmatic from the chain rule, requiring
just a lot of matrix-matrix multiplications in the correct sequence.
If it really is more efficient for two Jacobians to be contracted into
a matrix with random access, that's great, but if it's not, or if
the appropriate implementation of MatMatMult_X_Y does not exist,
having a MATCOMPOSITE is better than nothing.
So why not make MATCOMPOSITE something that our matrix-matrix
multiplication routines return when a specialization isn't found?
It moves the "Not Implemented" warning from MatMatMult() to
whenever I try to do something other than multiply with the output,
but in some situations that's desirable.
I'd be interested to hear what people think.
More information about the petsc-dev