mutating operations are not thread safe. Operations that don't mutate
should be thread safe. I can't speak to what Evan said, but I would guess
that the way they're using += should be safe.


On Wed, Sep 3, 2014 at 11:58 AM, RJ Nowling <rnowl...@gmail.com> wrote:

> David,
>
> Can you confirm that += is not thread safe but + is?  I'm assuming +
> allocates a new object for the write, while += doesn't.
>
> Thanks!
> RJ
>
>
> On Wed, Sep 3, 2014 at 2:50 PM, David Hall <d...@cs.berkeley.edu> wrote:
>
>> In general, in Breeze we allocate separate work arrays for each call to
>> lapack, so it should be fine. In general concurrent modification isn't
>> thread safe of course, but things that "ought" to be thread safe really
>> should be.
>>
>>
>> On Wed, Sep 3, 2014 at 10:41 AM, RJ Nowling <rnowl...@gmail.com> wrote:
>>
>>> No, it's not in all cases.   Since Breeze uses lapack under the hood,
>>> changes to memory between different threads is bad.
>>>
>>> There's actually a potential bug in the KMeans code where it uses +=
>>> instead of +.
>>>
>>>
>>> On Wed, Sep 3, 2014 at 1:26 PM, Ulanov, Alexander <
>>> alexander.ula...@hp.com>
>>> wrote:
>>>
>>> > Hi,
>>> >
>>> > Is breeze library called thread safe from Spark mllib code in case when
>>> > native libs for blas and lapack are used? Might it be an issue when
>>> running
>>> > Spark locally?
>>> >
>>> > Best regards, Alexander
>>> > ---------------------------------------------------------------------
>>> > To unsubscribe, e-mail: dev-unsubscr...@spark.apache.org
>>> > For additional commands, e-mail: dev-h...@spark.apache.org
>>> >
>>> >
>>>
>>>
>>> --
>>> em rnowl...@gmail.com
>>> c 954.496.2314
>>>
>>
>>
>
>
> --
> em rnowl...@gmail.com
> c 954.496.2314
>

Reply via email to