Draft: Refactoring of the time-step communication tasks
Compare changes
+ 36
− 23
@@ -228,36 +228,46 @@ struct pcell_step {
@@ -448,6 +458,9 @@ struct cell {
@@ -500,8 +513,8 @@ void cell_unpack_bpart_swallow(struct cell *c,
Significant re-factoring of the way the time-step sizes are being exchanged.
Summary:
engine_collect_end_of_step()
recurse.timestep
, timestep_limiter
, and timestep_sync
tasks all unlock that top-level task.engine_collect_end_of_step()
now only loops (via threadpool) over the local top-level cells. No recursion any more.tend
communication tasks that used to live at the super level are removed.engine_launch()
done every step to deal with the timestep limiter effect is removed (as it is now properly dealt with by the top-level task dependency)This should help speed up the smallest steps by reducing the level of the plateau we usually see in the "main sequence" plots.