On Fri, Jul 28, 2017 at 12:12 PM, Dave May <dave.mayhe...@gmail.com> wrote:

>
> On Fri, 28 Jul 2017 at 20:58, Dave May <dave.mayhe...@gmail.com> wrote:
>
>> Hi Richard,
>>
>> On Fri, 28 Jul 2017 at 19:51, Richard Tran Mills <rtmi...@anl.gov> wrote:
>>
>>> Folks,
>>>
>>> I've been debugging my rmills/add-aijmkl branch, and I found that one
>>> bug I had was related to what happens when I am using the MKL sparse
>>> inspector-executor routines inside an AIJMKL matrix and then MatScale is
>>> called on the matrix. MatScale modifies the entries of the matrix, thereby
>>> invalidating the internal representation that the MKL routines use.
>>> Currently, I've set things up so that the MKL representation is only
>>> updated in MatAssemblyEnd_SeqAIJMKL and MatDuplicate_SeqAIJMKL. Looks like
>>> I also need a MatScale_SeqAIJMKL that will update the MKL representation
>>> when needed. Are there other routines that may modify the matrix entries
>>> without invoking MatAssemblyEnd?
>>>
>>
>> I believe MatDiagonalSet and MatDiagonalScale fall into this category
>>
>
> MatAXPY may, or may not, call AssemblyEnd depending on the MatStructure
> arg. If the non-zero pattern is the same AssembyEnd is not called, however
> it will be called if the non-zero pattern SUBSET or DIFFERENT is chosen.
>

Ah, thanks for pointing this out -- it may have taken me quite a while to
figure this out, otherwise!

Man, getting this mkl_sparse_optimize() stuff incorporated is more
complicated than I thought it was.  =)
(Things are fine when using the normal MKL routines that don't use the
inspector-executor stuff.)

--Richard


>
>
>
>> Thanks,
>>   Dave
>>
>>
>>>
>>> --Richard
>>>
>>

Reply via email to