Speedup the unskip and scheduler_start process
A bunch of performance and memory improvements:
- In
scheduler_start()
, do not reset the tasks'tic
andtoc
or task debugging properties (see #611 (closed)). - Make each cell that hosts a task carry a flag saying it has a task (see discussion in #523 (closed)).
- When unskipping, only recurse down to levels where tasks still exist (see discussion in #523 (closed)).
- When unskipping, duplicate the list of active cells in order to launch the threads not just on the cells but also on the different task types to enhance parallelization
- Move all the unskip logic to a separate file (part of #427 (closed)).
- Since we know at which level the tasks are, we can recurse less in the creation of send/recv tasks and use a lot fewer task links.
Edited by Matthieu Schaller
Merge request reports
Activity
We go from this: http://icc.dur.ac.uk/~jlvc76/SWIFT/master_unskip/threadpool-index.html to this: http://icc.dur.ac.uk/~jlvc76/SWIFT/unskip_speedup4/threadpool-index.html for an EAGLE-25 (non-MPI).
Note that the colours change so it can be confusing.
mentioned in issue #611 (closed)
added 1 commit
- cb5c2e2b - Fixes for Intel compiler. Better granularity for the task unskiping threadpool.
@rgb this is the change that will interest you.
Tried a larger test, EAGLE_50/IC, with full EAGLE physics and it aborted with:
[0002] [00349.3] timestep.h:get_part_timestep():177: part (id=3913482190279) wants a time-step (0.000000e+00) below dt_min (1.000000e-10) [0002] [00349.3] timestep.h:get_part_timestep():177: part (id=3909264098833) wants a time-step (0.000000e+00) below dt_min (1.000000e-10)
So it looks like something is being skipped that shouldn't. The run is in:
/cosma7/data/dp004/pdraper/swiftsim-by-ticks/examples/EAGLE_ICs/EAGLE_50
Please register or sign in to reply