|
Orrery
A GPU-accelerated N-body gravitational simulator
|
Where the time of one force evaluation went. More...
#include <orrery/solvers/barnes_hut_solver.hpp>
Public Attributes | |
| backend::Duration | ordering {} |
| Computing and sorting the Morton codes. | |
| backend::Duration | construction {} |
| Building the octree over the sorted order, moments included. | |
| backend::Duration | gathering {} |
| Gathering the sorted positions and masses. | |
| backend::Duration | traversal {} |
| Walking the tree for every particle, which is the part that should dominate. | |
Where the time of one force evaluation went.
Three clock readings per evaluation, against a walk measured in milliseconds. They are taken unconditionally because the alternative, a build option or a template parameter, would mean the configuration that reports the breakdown is not the configuration that was measured.
This is not a substitute for the harness in benchmarks/. It is a division of one evaluation into its parts, and a benchmark still has to run many of them and report a median with its dispersion. What it answers is the question a single total cannot: whether a tree solver that is slower than expected is slow at building or slow at walking, which are different problems with different remedies.