Open MPI logo

Hardware Locality Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Hardware Locality Development mailing list

Subject: Re: [hwloc-devel] thread safety
From: Samuel Thibault (samuel.thibault_at_[hidden])
Date: 2010-03-12 11:31:20


Jeff Squyres, le Fri 12 Mar 2010 08:25:11 -0800, a écrit :
> On Mar 12, 2010, at 8:16 AM, Samuel Thibault wrote:
>
> > With a full memory barrier, you do not have any issue.
>
> So we're saying that the only way to use hwloc safely with multiple different thread readers and writers is to do a full memory barrier across the entire machine?

That is the only way to safely do anything with shared memory on a
parallel machine. Mutexes and spinlocks have to do it, or else they are
buggy.

> That seems like a big hammer,

It is a way smaller hammer than, say, a mutex or a spinlock.

> and can have performance implications on other parts of the system that you aren't even using.

It _has_ to be done, else your application is buggy, it is not just
hwloc.

> Is it sufficient, for example, for the app to mark the entire topology struct instance volatile? I.e.:

No, because that will not automatically issue hardware memory barriers,
which are needed on basically all architectures but x86 (which has
in-order stores) to ensure seeing writes coherently.

Samuel