Orrery
A GPU-accelerated N-body gravitational simulator
Loading...
Searching...
No Matches
Related Pages
Here is a list of all related documentation pages:
 The validation report
 The performance report
 The Python bindings
 Visualisation
 The instrument
 ADR-0000: Title in the imperative
 ADR-0001: Record architecture decisions
 ADR-0002: Pin dependencies to exact commits fetched at configure time
 ADR-0003: Carry build settings on interface targets rather than global flags
 ADR-0004: Store particles as one array per component
 ADR-0005: Allocate particle arrays on cache-line boundaries
 ADR-0006: Select the scalar precision when the project is configured
 ADR-0007: Work in units where the gravitational constant is one
 ADR-0008: Share one softening definition between the solver and the diagnostics
 ADR-0009: Generate the random distributions in the project rather than with the standard library
 ADR-0010: Give initial conditions their own layer
 ADR-0011: Prefer a symplectic second-order integrator to a non-symplectic fourth-order one
 ADR-0012: Give the integrators an abstract acceleration field of their own
 ADR-0013: Carry the acceleration between steps as an interface invariant
 ADR-0014: Give the force solvers an interface of their own above the acceleration field
 ADR-0015: Compute every pair from both ends rather than applying Newton's third law
 ADR-0016: Balance the threads dynamically by stealing ranges
 ADR-0017: Thread the solver through an executor it does not own
 ADR-0018: Compile the vector kernel apart and choose it at run time
 ADR-0019: Report the median with its dispersion, and measure the throttling
 ADR-0020: Keep the arithmetic IEEE and measure what vectorising changed
 ADR-0021: Sort a copy of the configuration rather than the caller's particles
 ADR-0022: Rebuild the tree on every force evaluation
 ADR-0023: Open a cell on the distance to its centre of mass, corrected for where that is
 ADR-0024: Make quadrupole moments an option that is off by default
 ADR-0025: Write the GPU backend in SYCL
 ADR-0026: Put the GPU behind the solver interface, not behind the executor
 ADR-0027: Stage particle data into the solver's own shared allocations
 ADR-0028: Build the tree on the host and walk it on the device
 ADR-0029: Mask the accepted cells rather than descending together
 ADR-0030: Send the node array to the device narrowed rather than transposed
 ADR-0031: Define a configuration format rather than adopting one
 ADR-0032: Store the whole state in a checkpoint, accelerations included
 ADR-0033: Keep the trajectory and the checkpoint apart
 ADR-0034: Draw with OpenGL 3.3 through GLFW
 ADR-0035: Resolve the OpenGL entry points by hand
 ADR-0036: Tone map exported frames on the host
 ADR-0037: Write frames as PPM and leave the encoding to an external tool
 ADR-0038: Sample the galaxy as a scenario rather than as an equilibrium model
 ADR-0039: Bind to Python with pybind11
 ADR-0040: Expose the component arrays rather than arrays of triples
 ADR-0041: Give a running simulation's state a read-only type of its own
 ADR-0042: Package the whole project from the repository root
 ADR-0043: Generate the site with the tool that generates the reference
 ADR-0044: Write the validation report rather than generating it
 ADR-0045: Keep the browser client in this repository
 ADR-0046: Put the renderer's device behind one interface
 ADR-0047: Decode trajectories off the main thread
 ADR-0048: Read the diagnostics the run wrote
 ADR-0049: Put the run and the moment in the address
 ADR-0050: Serve the reading half as static pages
 The checkpoint format
 The configuration format
 The trajectory format
 The tree solver, against the algorithm it replaces
 Vectorisation, and the kernels against this machine's measured limits
 The GPU direct kernel, against the CPU it shares its memory with
 The tree traversal on the GPU, and what coherence is worth inside it
 CPU threading on a hybrid processor