picongpu icon indicating copy to clipboard operation
picongpu copied to clipboard

Binning Plugin TODOs and Roadmap

Open ikbuibui opened this issue 2 years ago • 2 comments

TODOs for the flexible Binning plugin

  • [ ] Support binning of vector quantities
  • [ ] Support for binning only inside the moving window
  • [ ] Bin a particle multiple times - Useful for RNG based functors, say to generate distributions
  • [ ] Add ability to apply post processing functor on the histogram before doing a data dump
  • [ ] Discuss sane defaults, default examples and pre-define functors for common quantities (Maybe as a PICMI extension?)
  • [ ] Split the binning histogram across GPUs according to domain decomposition if position axes are defined.
    • Rather than holding the full binning on each GPU
    • This decomposition will enforce that bins should not cross GPU boundaries, and be multiples of supercells or a natural number of bins per supercell
  • [ ] Reduce (MPI) the binning histogram buffer in place
  • [ ] Auto binning ranges and splitting - Automatically and dynamically in the simulation choose binning range min, max and number of bins
  • [x] Profile the binning
    • [ ] Global memory atomics are super slow. Transition to using shared memory where possible.
  • [ ] Add more axes
    • [x] Log Axes
    • [ ] Generic Axes defined with edges
    • [ ] LogLinLog Axes (symlog)
    • [ ] String Axes
  • [x] Option to only bin particles which are leaving (#5039) (https://github.com/ComputationalRadiationPhysics/picongpu/issues/4946#issuecomment-2180457170)
  • [x] Restart and Checkpoint Support (#4766)
  • [x] Add ability to disable overflow bins (#4770)
  • [x] Particle Filtering - Bin/Don't bin particles matching certain criteria (#5249)
  • [x] Bin fields (also particles with fields) (#5319) (requested #4972)
  • [x] Add flexible accumulation methods (#5289)

ikbuibui avatar Dec 05 '23 10:12 ikbuibui

@ikbuibui If I do not miss something then the binning plugin is missing the OpenMPD annotation if a value is including the weighting and how it scales with the weighting. The only OpenPMD anotation the user can pass the openPMD unit description.

psychocoderHPC avatar Jan 16 '24 15:01 psychocoderHPC

As discussed in the office, the weighting is a particle property and not a property of bins, so the the weighting annotation for bins makes no sense. If the user needs special treatment of weighted quantities it can be done inside the functors.

ikbuibui avatar Jan 22 '24 09:01 ikbuibui