diff options
author | Ian Hinder <ian.hinder@aei.mpg.de> | 2013-10-21 15:14:30 +0200 |
---|---|---|
committer | Ian Hinder <ian.hinder@aei.mpg.de> | 2013-10-25 16:17:03 +0200 |
commit | cfaded9a3c86e20bda1e12de34da59e600801347 (patch) | |
tree | 3956c742e7d6b395d240571998c6090c6f20c5c7 | |
parent | 6a7fc6a508a64020bdd3dcd1618bc8a1c115037e (diff) |
CarpetInterp2: Add parameter "interp_barrier" to add a barrier before interpolating
Interpolation is a global operation, so adding a barrier should not affect performance, and makes timers much more useful.
-rw-r--r-- | Carpet/CarpetInterp2/param.ccl | 5 | ||||
-rw-r--r-- | Carpet/CarpetInterp2/src/fasterp.cc | 8 |
2 files changed, 13 insertions, 0 deletions
diff --git a/Carpet/CarpetInterp2/param.ccl b/Carpet/CarpetInterp2/param.ccl index f7b5fffef..5c624daa2 100644 --- a/Carpet/CarpetInterp2/param.ccl +++ b/Carpet/CarpetInterp2/param.ccl @@ -7,3 +7,8 @@ BOOLEAN verbose "Produce info output" STEERABLE=always BOOLEAN veryverbose "Produce debugging output" STEERABLE=always { } "no" + +BOOLEAN interp_barrier "Wait for all processes before interpolating" STEERABLE=always +{ +} "no" + diff --git a/Carpet/CarpetInterp2/src/fasterp.cc b/Carpet/CarpetInterp2/src/fasterp.cc index c32721fc9..3d3ac530a 100644 --- a/Carpet/CarpetInterp2/src/fasterp.cc +++ b/Carpet/CarpetInterp2/src/fasterp.cc @@ -1619,6 +1619,14 @@ namespace CarpetInterp2 { assert (values.size() == nvars); if (nvars == 0) return; + + if (interp_barrier) + { + static Timers::Timer barrier_timer ("Barrier"); + barrier_timer.start(); + CCTK_Barrier(cctkGH); + barrier_timer.stop(); + } for (size_t v=0; v<values.size(); ++v) { int const vi = varinds.AT(v); |