Re: [Libmesh-devel] new getpot NOW thread safe

2010-03-18 Thread Roy Stogner
On Thu, 11 Mar 2010, Roy Stogner wrote: > On Thu, 11 Mar 2010, Kirk, Benjamin (JSC-EG311) wrote: > >> tangential issue - did you find that ACX_TLS and is it sufficient to just >> throw TLS in front of a variable to make it so? > > Rhys Ulerich pointed me to it, IIRC. I'm afraid I haven't tested

Re: [Libmesh-devel] Parallel::/Threads:: interaction

2010-03-18 Thread Derek Gaston
On Mar 18, 2010, at 12:46 PM, Roy Stogner wrote: > The assert, or the assert and the bool both? I was thinking of > setting the bool even in opt mode, in case any user had a use for it, > on the theory that it's cheap compared to the TBB overhead... but I > wouldn't be using it except in debug/de

Re: [Libmesh-devel] Parallel::/Threads:: interaction

2010-03-18 Thread Roy Stogner
On Thu, 18 Mar 2010, Derek Gaston wrote: > On Mar 18, 2010, at 11:57 AM, Roy Stogner wrote: > >> I'd like to instead just "enforce" the current restrictions - set a >> Threads::_now_multithreaded bool to true at the start of and false at >> the end of any Threads::parallel_* call, and then do a

Re: [Libmesh-devel] [Libmesh-users] Parallel::/Threads:: interaction

2010-03-18 Thread Derek Gaston
On Mar 18, 2010, at 12:41 PM, Kirk, Benjamin (JSC-EG311) wrote: > Besides, at least mpich and derivatives allow configuration with no threads, > full mutlithreading, and some hybrid I don't understand. So presumably there > is enough of a performance impact - im sure some SC sites will continue

Re: [Libmesh-devel] [Libmesh-users] Parallel::/Threads:: interaction

2010-03-18 Thread Kirk, Benjamin (JSC-EG311)
I agree with roy about the usefulness or lack thereof... Besides, at least mpich and derivatives allow configuration with no threads, full mutlithreading, and some hybrid I don't understand. So presumably there is enough of a performance impact - im sure some SC sites will continue with mpis t

Re: [Libmesh-devel] Parallel::/Threads:: interaction

2010-03-18 Thread Derek Gaston
On Mar 18, 2010, at 11:57 AM, Roy Stogner wrote: > Most of the Parallel:: functions would break right now if called from > more than one thread at once. It would be possible in theory to > change that - e.g. Parallel::max() would first take the max over all > threads, then take the max over all r

Re: [Libmesh-devel] Parallel::/Threads:: interaction

2010-03-18 Thread Roy Stogner
On Thu, 18 Mar 2010, John Peterson wrote: > On Thu, Mar 18, 2010 at 12:57 PM, Roy Stogner > wrote: >> >> I'd like to instead just "enforce" the current restrictions - set a >> Threads::_now_multithreaded bool to true at the start of and false at >> the end of any Threads::parallel_* call, and t

Re: [Libmesh-devel] Parallel::/Threads:: interaction

2010-03-18 Thread John Peterson
On Thu, Mar 18, 2010 at 12:57 PM, Roy Stogner wrote: > > I'd like to instead just "enforce" the current restrictions - set a > Threads::_now_multithreaded bool to true at the start of and false at > the end of any Threads::parallel_* call, and then do a > assert(!Threads::now_multithreaded()) in e

[Libmesh-devel] Parallel::/Threads:: interaction

2010-03-18 Thread Roy Stogner
Thoughts? Right now we only call Parallel:: functions from thread 0, so we should be safe even on non-thread-safe MPI stacks. But should that change? And what should users be allowed to do? Most of the Parallel:: functions would break right now if called from more than one thread at once. It