[Trilinos-Users] Tpetra::CrsMatrix caching related to C= A^T B and D = A*C

Chris Siefert csiefer at sandia.gov
Mon Sep 24 10:48:48 EDT 2018


Denis,

My apologies!  My email has been inaccessible for the last week (the 
wonders of modern technology, eh?).  Replies below inline.

On 09/24/2018 07:46 AM, Denis Davydov wrote:
> Hi Chris,
>
> Sorry to bother, but can you please reply to comment on the questions 
> (1) and (3) below?
> You said I can run C=A^T B with C being fillComplete() but as I 
> mention there is an exception thrown.
> I am also still curious what’s the distribution of C=A^T B when both A 
> and B and distributed row-wise.
> Perhaps based on our discussion the documentation 
> of Tpetra::MatrixMatrix::Multiply() could be improved.
>
> Regards,
> Denis.
>
>> On 14 Sep 2018, at 11:48, Denis Davydov <davydden at gmail.com 
>> <mailto:davydden at gmail.com>> wrote:
>>
>> Hi Chris,
>>
>>> On 12 Sep 2018, at 16:00, Siefert, Christopher <csiefer at sandia.gov 
>>> <mailto:csiefer at sandia.gov>> wrote:
>>>
>>> 1) The way this is usually used is row-wise, matching A.
>>
>> but I am doing A^T B where both A and B are distributed in MPI 
>> row-wise only.
>> So what’s the distribution of  C = A^T B in this case?

It should match the DomainMap of A, IIRC.

>>
>>> 3) Running with fillComplete'd matrices for is going to be much, 
>>> much faster than running w/o fillComplete.  You do *not* need to do 
>>> what you're doing.  Could you try removing the resumeFill and 
>>> redoing the timing?
>>
>> looks like I have to do this, otherwise I get:
>>
>> Exception on processing:
>> .../trilinos-12.12.1-oezdv7yojfjmbqdbsy57mvcmogm7qfrj/Trilinos-trilinos-release-12-12-1/packages/tpetra/core/ext/TpetraExt_MatrixMatrix_def.hpp:191:
>>
>> Throw number = 1
>>
>> Throw test that evaluated to true: C.isFillActive() == false
>>
>> Error!
>> Aborting!
>>
>> the check is here:
>> https://github.com/trilinos/Trilinos/blob/master/packages/tpetra/core/ext/TpetraExt_MatrixMatrix_def.hpp#L204 
>>
>>
>> So to me it looks like it’s not possible to call C = A^T B with C 
>> being fillComplete().

Huh.  That's weird.  I need to look into that.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://trilinos.org/pipermail/trilinos-users/attachments/20180924/48867225/attachment.html>


More information about the Trilinos-Users mailing list