-
Notifications
You must be signed in to change notification settings - Fork 461
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
(Re)consider more condensed link events? #1228
Comments
I like the thinking on how we could optimize the amount of data MATSim generates and processes. Just some thinking from my side:
|
@mrieser thanks. I took the liberty to number your items. Just some clarification for some of them: Re 3.: The stuck event could report the link enter time. Also the vehicleLeavesTraffic event. Re 5.: We already have the option to write events to file only every Nth iteration. I was essentially thinking of not generating link enter/leave events in iterations where we do not write them to file anyways. Re. 6.: Yes, I completely agree. And, I think that Marcel took this in the right stride: This is just some thoughts I got during a seminar talk; nothing to immediately act upon. We should probably close the ticket eventually and then just keep it for reference. |
Re 5.: Not generating these events when the events are not written to files means that any analysis running in parallel to MATSim cannot use these events (e.g. the traveltime-calculator). Only post-processing analysis code would be able to use those events. Do we want such a divide between events, or analysis-code respectively? |
Personally, I consider the events file to be a dump of all the events created at some point during an iteration. It should be the most complete view on what happened. So any (also intermediate) dump should contain all events thrown at some point. I like the reasoning of 1-4. Squashing those two event types can make a difference - especially with the more and more detailed networks in use. So we would have Regarding 5: If we allow to make throwing an event optional... Guess, we would require some registry were each consumer of an event type, e.g. some on-the-fly analysis, is forced to explicitly name the required event types. The producers could then check the registry and throw only the required event types. However, I don't see how this would work with more generic event types like the LinkEnter/Leave. An analysis interested in e.g. only pt vehicles would still register for all LinkEnter events including those related to cars. We may gain some performance by dropping more special event types that link to a contrib. But then, not using the contrib would probably also not produce the special event types in the first place. |
As we know, processing link enter and link leave events uses up a lot of hardware resources. These events are used in the following places:
For Vis and possibly for emissions, in many situations it would be sufficient to output the corresponding events only at the end, or every 100 iterations. So the following concentrates on link travel time computation.
Concerning link ttime computation, one could think about the following accelerations:
The path to this would be, I think, a switch to an events format that has something like
cnt="1"
for the current processing, and something like "tTimesSum" or "tTimeMean" and some second moment, e.t. "tTimeVariance".The text was updated successfully, but these errors were encountered: