Skip to content

Optimization roadmap #3

@Yomguithereal

Description

@Yomguithereal
  • possible to do attraction & repulsion in same loop to avoid double write to out?
  • multithreading
  • SoA for autovectorization
  • SoA for the BarnesHut itself
  • rten_simd
  • simd gravity etc.
  • cache friendly barnes hut (dfs sorting)
  • barnes hut with leaf bucket
  • use an enum for leaf or non leaf
  • merging attraction into repulsion for parallelization
  • numerical optimizations everywhere
  • branchless whenever possible
  • sorted csr for edges
  • niche optim for barnes hut options, use nonmax crate
  • document design choices
  • single consolidated loop node-wise for parallelization (must sort edges into CSR)
  • moving node masses into SoA layout for barnes hut tree?
  • find insights: https://github.com/gephi/gephi/tree/master/modules/LayoutPlugin/src/main/java/org/gephi/layout/plugin/forceAtlas2
  • weight scaling could happen when building the algorithm
  • try to parallelize force application also

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions