It appears that one problem is that the innermost parallel_reduce is 
being called within a parallel_for.  Regardless of the number of 
threads, calls to parallel_XXX call BoolAcquire(in_threads), and so the 
innermost call to parallel_reduce results in an assertion failure.

I'm not sure that this is the best solution, but everything seems to 
work if I comment out the assertion failures in the constructor and 
destructor for BoolAcquire.

-- Boyce

On 4/24/10 11:06 PM, Derek Gaston wrote:
> Hmmm.... this might have to do with some changes I made.  I was having
> trouble instantiating the PointLocator class in parallel for use with
> periodic BCs with threading and put some guards around it's creation...
> although it shouldn't be a problem if you're not actually using threads...
>
> I'll get back to you...
>
> Derek
>
> On Apr 24, 2010, at 2:34 PM, Boyce Griffith wrote:
>
>> Hi, Folks --
>>
>> I am getting an assertion failure when calling EquationSystems::init()
>> which which seems to be related to threading support when I add a
>> periodic boundary to a simple rectangular mesh. Everything seems to run
>> fine when I don't add the periodic boundary. I am not using multiple
>> threads (or I certainly don't think that I am!), so I'm not sure what is
>> going on here.
>>
>> Here's the error and stack trace:
>>
>> 8 0x00dbd674 in BoolAcquire (this=0xbfff85cc, b...@0x1b4e7da) at
>> threads.h:64
>> 64 BoolAcquire(bool& b) : _b(b) { libmesh_assert(!_b); _b = true; }
>> (gdb) where
>> #0 0x97aeae42 in __kill ()
>> #1 0x97aeae34 in kill$UNIX2003 ()
>> #2 0x97b5d23a in raise ()
>> #3 0x97b69679 in abort ()
>> #4 0x0334c30f in __gnu_cxx::__verbose_terminate_handler ()
>> #5 0x03349ec9 in __cxxabiv1::__terminate ()
>> #6 0x03349f0c in std::terminate ()
>> #7 0x0334a00b in __cxa_throw ()
>> #8 0x00dbd674 in BoolAcquire (this=0xbfff85cc, b...@0x1b4e7da) at
>> threads.h:64
>> #9 0x01470936 in parallel_reduce<ConstNodeRange, <unnamed>::FindBBox>
>> (ran...@0xbfff8c40, bo...@0xbfff8bf4) at threads.h:292
>> #10 0x01466764 in MeshTools::bounding_box (me...@0xbfffd77c) at
>> src/mesh/mesh_tools.C:290
>> #11 0x0168afec in PointLocatorTree::init (this=0x35656c0,
>> build_type=Trees::NODES) at src/utils/point_locator_tree.C:117
>> #12 0x0168a96b in PointLocatorTree (this=0x35656c0, me...@0xbfffd77c,
>> master=0x0) at src/utils/point_locator_tree.C:42
>> #13 0x01686f03 in PointLocatorBase::build (t=MeshEnums::TREE,
>> me...@0xbfffd77c, master=0x0) at src/utils/point_locator_base.C:64
>> #14 0x01398e11 in MeshBase::point_locator (this=0xbfffd77c) at
>> src/mesh/mesh_base.C:293
>> #15 0x00dbd210 in PeriodicBoundaries::neighbor (this=0x354f764,
>> boundary_id=3, me...@0xbfffd77c, e=0x3532340, side=3) at
>> src/base/dof_map_constraints.C:1342
>> #16 0x00eb2ff3 in FEBase::compute_periodic_constraints
>> (constrain...@0x354f740, dof_m...@0x354f610, boundari...@0x354f764,
>> me...@0xbfffd77c, variable_number=0, elem=0x3532340) at
>> src/fe/fe_base.C:1983
>> #17 0x00fa3a86 in FEInterface::compute_periodic_constraints
>> (constrain...@0x354f740, dof_m...@0x354f610, boundari...@0x354f764,
>> me...@0xbfffd77c, variable_number=0, elem=0x3532340) at
>> src/fe/fe_interface.C:1995
>> #18 0x00dab668 in operator() (this=0xbfffc6b4, ran...@0xbfffc600) at
>> src/base/dof_map_constraints.C:89
>> #19 0x00dbd28f in parallel_for<ConstElemRange,
>> <unnamed>::ComputeConstraints> (ran...@0xbfffc600, bo...@0xbfffc6b4) at
>> threads.h:267
>> #20 0x00dabdf9 in DofMap::create_dof_constraints (this=0x354f610,
>> me...@0xbfffd77c) at src/base/dof_map_constraints.C:168
>> #21 0x01648058 in System::init_data (this=0x354f340) at
>> src/systems/system.C:205
>> #22 0x0162dfa0 in ExplicitSystem::init_data (this=0x354f340) at
>> src/systems/explicit_system.C:72
>> #23 0x01647fdc in System::init (this=0x354f340) at
>> src/systems/system.C:182
>> #24 0x0161919c in EquationSystems::init (this=0xbfffd728) at
>> src/systems/equation_systems.C:116
>>
>> Thanks for any suggestions,
>>
>> -- Boyce
>>
>> ------------------------------------------------------------------------------
>>
>> _______________________________________________
>> Libmesh-users mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/libmesh-users
>

------------------------------------------------------------------------------
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to