[ET Trac] [Einstein Toolkit] #2035: NaNChecker should not use integer division

Einstein Toolkit trac-noreply at einsteintoolkit.org
Thu Apr 27 08:39:08 CDT 2017


#2035: NaNChecker should not use integer division
--------------------------+-------------------------------------------------
  Reporter:  eschnett     |       Owner:                     
      Type:  enhancement  |      Status:  new                
  Priority:  minor        |   Milestone:                     
 Component:  Other        |     Version:  development version
Resolution:               |    Keywords:                     
--------------------------+-------------------------------------------------

Comment (by eschnett):

 Here is an excerpt of the most expensive routines of a unigrid Cowling
 benchmark run:
 {{{
 +   18.10%    17.83%  cactus_sim  cactus_sim                    [.]
 ML_ADMConstraints::ML_ADMConstraints_evaluate_Body
 +   13.39%     0.35%  cactus_sim  cactus_sim                    [.] void
 HydroToyOpenMP::tiled_task_loop
 +    6.40%     6.21%  cactus_sim  cactus_sim                    [.]
 NaNChecker::CHECK_DATA<double>
 +    6.34%     2.08%  cactus_sim  libc-2.17.so                  [.]
 __memset_sse2
 }}}

 - ADMConstraints is much more expensive than it should be. I don't know
 yet why, but I also see it is not being vectorized.
 - The call to memset comes mostly from within Carpet, and is likely due to
 poisoning that I activated.
 - I don't show I/O here that is also taking significant time, but that is
 fine since the benchmark run lasts only for ten iterations, so output is
 relatively more expensive. Ditto for setting up initial conditions.
 - The second column shows how much time is spent in the particular routine
 itself. Since the hydro implementation calls subroutines, that time is
 very small.

-- 
Ticket URL: <https://trac.einsteintoolkit.org/ticket/2035#comment:2>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit


More information about the Trac mailing list