Improve memory efficiency of output processors

Problem to solve

Currently, the output processors keep all their data into memory and write everything to disk after the simulation is finished. For larger scenarios, this increases the memory immensely (which lowers the ability for parallel computations, e.g. with the suq-controller).

Generally, there are two types of processors:

  1. Only require information from the current state
  2. Require information from past states (e.g. speed average over the last 5 time steps, or a PCA over the entire data)

The second type is more tricky. In a discussion we agreed to handle the second case as follows:

  • Write out the information to a file (**)
  • After the simulation is done read the data again and transform it accordingly.

(**) Note: this should be asynchronously to not slow down the simulation too much (this part requires probably more discussion!)

List of processors that can write data in an online fashion:

  • AreaDensityCountingProcessor
  • AreaDensityVoronoiProcesor
  • AreaSpeedProcessor
  • BonnMotionTrajectoryProcessor (needs refactoring)
  • FundamentalDiagramAProcessor
  • FundamentalDiagramBProcessor
  • FundamentalDiagramCProcessor
  • FundamentalDiagramDProcessor
  • FundamentalDiagramEProcessor
  • GroupMemberEuclideanDistance
  • GroupMemberPotentialDist
  • GroupMemberSeparatedObstacle
  • PedestrianDensityCountingProcessor
  • PedestrianDensityGaussianProcessor
  • PedestrianFlowProcessor
  • PedestrianGroupIDProcessor
  • PedestrianGroupMaxDistProcessor
  • PedestrianGroupSizeProcessor
  • PedestrianLineCrossProcessor
  • PedestrianOffsetPositionProcessor
  • PedestrianOSMStrideLengthProcessor
  • PedestrianOverlapProcessor
  • PedestrianPositionProcessor
  • PedestrianSourceIdProcessor
  • PedestrianStartTimeProcessor
  • PedestrianStateProcessor
  • PedestrianStateProcessor
  • PedestrianTargetIdProcessor
  • PedestrianVelocityDefaultProcessor
  • PointDensityCountingAlgorithm
  • PointDensityGaussianAlgorithm
  • QueueWidthProcessor
  • SumVoronoiAlgorithm

List of processors that require past data (offline, delayed online, preprocess required)

  • EvacuationTimeProcessor
  • MaxOverlapProcessor
  • MeanPedestrianEvacuationTimeProcessor
  • NumberOverlapsProcessor
  • PedestrianLastPositionProcessor
  • PedestrianTrajectoryProcessor
  • PedestrianVelocityByTrajectoryProcessor
  • PedestrianVelocityProcessor

Unknown

  • PedestrianBehaviourProcessor
  • PedestrianCrossingTimeProcessor
  • PedestrianEndTimeProcessor
  • PedestrianFootStepProcessor
  • PedestrianWaitingEndTimeProcessor
  • PedestrianWaitingTimeProcessor
  • TargetFloorFieldGridProcessor
Edited Apr 27, 2023 by Schuhbaeck, Stefan
Assignee Loading
Time tracking Loading

LRZ Homepage | Datenschutz | Dokumentation und Betriebsbedingungen | Impressum