[ET Trac] [Einstein Toolkit] #928: openmp parallelization within Exact broken

Einstein Toolkit trac-noreply at einsteintoolkit.org
Fri May 25 00:40:01 CDT 2012


#928: openmp parallelization within Exact broken
--------------------+-------------------------------------------------------
 Reporter:  knarf   |       Owner:            
     Type:  defect  |      Status:  new       
 Priority:  major   |   Milestone:  ET_2012_05
Component:  Other   |     Version:            
 Keywords:          |  
--------------------+-------------------------------------------------------
 Exact uses openmp for the loop over grid points. However, quite a few
 metrics (which get called pointwise) use static (saved) data. In all cases
 I have looked at this is only used to initialize some local variables with
 values from Cactus parameters - and only as long as a 'global' variable
 'firstcall' is true. This variable is set to 'false' after the other
 variables had been initialized, which should be ok even when using
 multiple threads. However, the compiler can switch the two (and does
 according to the assembly output), leading to another thread 'seeing'
 first_call being false, but the global variables not being initialized
 yet.

 The right solution would be to remove these variables. They are not really
 necessary, because the Cactus parameters could directly be used. However,
 that patch would be quite large.

 A simple and quick workaround would be to remove the openmp
 parallelization for that loop, at least for the upcoming release.

 We have to do one of the two - or something else in case someone comes up
 with another idea. This is currently breaking several testsuites
 (sometimes).

 In case you want to see an example: look at de_Sitter.F77 and
 firstcall and arad.
 Thoughts?

-- 
Ticket URL: <https://trac.einsteintoolkit.org/ticket/928>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit


More information about the Trac mailing list