Overall goal: assess the load of MATSim on CPU to identify areas of performance optimization with enhanced efficiency and less bottlenecks.
Steps:
1 - Have the EventsManager log the distribution of event handlers among the threads
2 - Step further: Have the EventsManager log the time it takes for each thread to finish processing the events queue to see if there are huge bottlenecks
3 - Even further: Have the EventsManager log the processing time of each event by each event handler to find out where the bottlenecks come from
Expected outcome: an answer to the question: are there bottlenecks in the event processing ?
Possible solutions, beyond the scope of the code sprint, depend on the precise answer:
If it's a problem of more evenly distributing handlers, then we need better strategies for that.
If it's one or two handlers causing huge bottleneck, then they should be re-written to allow parallelism and having the same handler instance in multiple threads
To be labelled with Performance and Code Sprint
Overall goal: assess the load of MATSim on CPU to identify areas of performance optimization with enhanced efficiency and less bottlenecks.
Steps:
Expected outcome: an answer to the question: are there bottlenecks in the event processing ?
Possible solutions, beyond the scope of the code sprint, depend on the precise answer: