#1512: LoopControl slows down with time when exloring new tilings -------------------------+-------------------------------------------------- Reporter: rhaas | Owner: eschnett Type: defect | Status: new Priority: major | Milestone: Component: Carpet | Version: development version Keywords: LoopControl | -------------------------+-------------------------------------------------- the attached parfile does nothing but apply the periodic boundary condition over and over again. The run slows down with time, and spends more and more time in Slab's apply routine (Periodic just uses lots of calls to Slab). Digging further this caused by LoopControl and in particular setting {{{ LoopControl::settle_after_iteration = 0 }}} restores the expected behaviour, namely that the runtime in Pariodic/apply increases linearly with the number of timesteps rather than superlinearly.
I blind guess for the culprit is the std::map inside of loopcontrol. I have done no further digging into the code though.
#1512: LoopControl slows down with time when exloring new tilings ---------------------+------------------------------------------------------ Reporter: rhaas | Owner: eschnett Type: defect | Status: new Priority: major | Milestone: Component: Carpet | Version: development version Resolution: | Keywords: LoopControl ---------------------+------------------------------------------------------
Comment (by eschnett):
Christian Ott reported a similar problem that was unrelated to thorn Slab, but where performance also improved when setting this parameter. As a work-around, I have now made this setting the default.
#1512: LoopControl slows down with time when exloring new tilings ---------------------+------------------------------------------------------ Reporter: rhaas | Owner: eschnett Type: defect | Status: new Priority: major | Milestone: Component: Carpet | Version: development version Resolution: | Keywords: LoopControl ---------------------+------------------------------------------------------
Comment (by rhaas):
is it possible that LoopControl gets confused since there is not obviously good way of tiling this? In slab the loop is just a copy and I would (naively) expect that since this is completely memory bandwidth dominated it does not matter how many threads compete in which manner for the limited bandwidth.
I attach LoopControl's statistics output for the parfile. As one can see there are very many params that loopcontrol explores. Since the loop in questions is small (just the boundary) the time to explore may well be comparable to the full runtime of the loop.
#1512: LoopControl slows down with time when exloring new tilings ---------------------+------------------------------------------------------ Reporter: rhaas | Owner: eschnett Type: defect | Status: new Priority: major | Milestone: Component: Carpet | Version: development version Resolution: | Keywords: LoopControl backport ---------------------+------------------------------------------------------ Changes (by rhaas):
* keywords: LoopControl => LoopControl backport
Comment:
Backport commit 7469d8a or an actual bugfix once it is known.
#1512: LoopControl slows down with time when exloring new tilings ---------------------+------------------------------------------------------ Reporter: rhaas | Owner: eschnett Type: defect | Status: new Priority: major | Milestone: Component: Carpet | Version: development version Resolution: | Keywords: LoopControl backport ---------------------+------------------------------------------------------
Comment (by rhaas):
Jim Healy reports that this slowdown did not occur in the Gauss release (http://lists.einsteintoolkit.org/pipermail/users/2014-January/003442.html).
I will backport commit 7469d8a on Monday unless objections are raised.
#1512: LoopControl slows down with time when exloring new tilings ---------------------+------------------------------------------------------ Reporter: rhaas | Owner: eschnett Type: defect | Status: closed Priority: major | Milestone: Component: Carpet | Version: development version Resolution: fixed | Keywords: LoopControl backport ---------------------+------------------------------------------------------ Changes (by rhaas):
* status: new => closed * resolution: => fixed
Comment:
Applied as hash d757874cef9b1e47c8f49628c50785cf4c67a81d "LoopControl: Set the default for settle_after_iteration to 0" of Carpet.
trac@lists.einsteintoolkit.org