[petsc-dev] MATCOMPOSITE as fallback for matrix-matrix multiplication
Smith, Barry F.
bsmith at mcs.anl.gov
Mon Mar 11 13:09:55 CDT 2019
Sounds like overkill on the complexity meter.
Barry
> On Mar 11, 2019, at 6:15 AM, Isaac, Tobin G via petsc-dev <petsc-dev at mcs.anl.gov> wrote:
>
> One thought: we could extend MatReuse with MAT_INITIAL_MATRIX_GET_VALUES to indicate that a matrix that implements MatGetValues() is desired, to allow some user intent.
>
>
> On March 9, 2019 7:44:06 PM EST, Matthew Knepley <knepley at gmail.com> wrote:
>> On Sat, Mar 9, 2019 at 4:42 PM Isaac, Tobin G via petsc-dev <
>> petsc-dev at mcs.anl.gov> wrote:
>>
>>>
>>> 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.
>>>
>>
>> I think this is a good idea. The most important thing is to maintain
>> transparency, so that the output
>> makes this clear in -ksp_view and we are easily able to see what
>> someone
>> has produced.
>>
>> Matt
>>
>>
>>> Thanks,
>>> Toby
>>>
>>>
>>>
More information about the petsc-dev
mailing list