[petsc-users] MatSetValues with openMP and no data races
Jed Brown
jed at jedbrown.org
Thu Oct 12 13:14:26 CDT 2017
Lawrence Mitchell <lawrence.mitchell at imperial.ac.uk> writes:
> On 12/10/17 14:40, Guillaume Emond wrote:
>> Goodmorning,
>>
>> I would like to clarify a point about the insertion of values with
>> MatSetValues in a openMP loop. I know these routines are not thread
>> safe. But, in our situation, we used a graph coloring algorithm on our
>> mesh to make sure no adjacent element is inserted at the same time so
>> no data races occurs when inserting values. Could these routines be
>> used with openmp then or is there some internal variables that would
>> not be thread safe?
>
> The MatStash used for saving and then later communicating off process
> entries during AssemblyEnd is, I believe, not thread safe.
Yeah, we could make a thread-safe MatSetValues (I would suggest per-row
or block-row locking), but it is not now, even with coloring.
More information about the petsc-users
mailing list