smash-transport / sparkx

SPARKX - Software Package for Analyzing Relativistic Kinematics in Collision eXperiments
https://smash-transport.github.io/sparkx/
GNU General Public License v3.0
5 stars 0 forks source link

Line-by-line/event-by-event mode #304

Open NGoetz opened 2 weeks ago

NGoetz commented 2 weeks ago

Following a chat with @elfnerhannah and @LucasConstantin today, this is an idea for a future improvement. Usually, we create Storer objects which are the representation of an input file, and perform analysis on this. This allows for minimal RAM operation guaranteeing fast execution. Modern RAM allows to easily hold thousands of central ultrarelativistic AuAu events in memory. Even if this becomes to less, one can comfortably switch to an event-by-event analysis by reading single events into a Storer object iterativly. However, the user has to do this manually. In a future improvement, for our main analysis classes, aka Flow and BulkObservables, we could offer a mode which loads single events, or even single lines the RAM and processes them (the latter, though, is a considerably more involved change). This would allow to drastically reduce RAM consumption. This could be relevant when looking at LHC energies.

NGoetz commented 1 week ago

Alternativly, for the flows we could support an event-by-event computation mode - this might be relevant for @Hendrik1704. BaseStorers could provide an iterator to the events and load them from the file on demand. A flow object could, for example for the scalar product method, keep track of the numerator and denominator and could calculate the average flow once all events have been processed.