[ET Trac] [Einstein Toolkit] #2072: Carpet: Disable OpenMP parallelization of transport operators

Einstein Toolkit trac-noreply at einsteintoolkit.org
Fri Aug 25 08:50:49 CDT 2017


#2072: Carpet: Disable OpenMP parallelization of transport operators
-------------------------+--------------------------------------------------
 Reporter:  eschnett     |       Owner:  eschnett           
     Type:  enhancement  |      Status:  new                
 Priority:  major        |   Milestone:                     
Component:  Carpet       |     Version:  development version
 Keywords:               |  
-------------------------+--------------------------------------------------
 This disables the OpenMP parallelization of Carpet's transport operators.
 I have observed that this leads to a significant speedup when many threads
 are used.

 The likely reason is that the regions which are parallelized are typically
 small. A typical reason would e.g. be the lower x-boundary of one
 component of one grid variable. The OpenMP thread startup overhead and the
 cache misses caused by parallelizing this are then larger than any
 benefit.

 See <https://bitbucket.org/eschnett/carpet/pull-requests/18/carpet-
 disable-openmp-parallelization-of/diff>.

 In a next step (not proposed here), we can parallelize transport operators
 again, but at a much higher level, e.g. at the level of the loop over all
 variables that need to be prolongated. However, Carpet currently (and
 quite unfortunately) uses static variables to hold pointers to timers, and
 these are not thread-safe. (Neither the static variables nor the timer
 implementation itself are.) This needs to be either corrected or disabled,
 which will be the topic of a further pull request.

 At this time, I ask some of those who are interested in performance in
 trying this pull request on a few iterations of a production simulation
 that uses many OpenMP threads and report back here.

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


More information about the Trac mailing list