Skip to content

Improvements to the drift all

Matthieu Schaller requested to merge smarter_drift_all into master

Some changes to drift_all to improve performance:

  • When recursing, abort early if there are no particles of that type in the cell.
  • Split the drift_all into three different mappers, part, gpart, multipoles.
  • Call the part/gpart ones only on local cells, the multipole one on local and foreign cells with tasks.

This makes the drift all ~35% faster on the EAGLE-50 with cosmo+grav+hydro (1.42s per call vs. 1.01s).

I have also moved all the drift_all related functions to a separate file to try to improve the code's maintainability. This makes the code review a bit more tricky but the changes highlighted above can be seen by comparing c4bf98ea...97c99293

Edited by Matthieu Schaller

Merge request reports