2012-05-07

SimulationBound & Benchmarking

To compare performance of data structures as the distribution of events changes, using the "simulationBound" (which stops the simulation when the simulation reaches a certain time) is not ideal. For example, by changing the distribution from 10-1000 to 1-10, the simulation would take 100 times longer if the same simulationBound is kept. So it would be difficult to graph the time for a run when parameters change (which is something I'd like to do).

I just tried it out, and my benchmark machine, when running with 10 nodes and the Java priority queue, in 1 minute about 824000 events can processed. So that comes to 8 240 000 events per minute or 137 333 events per second (running on 1 core).

A small problem when actually setting the number of events to process to 8 240 000, is that the simulation does not stop. The entities stop running but the simulation (process) keeps on running.
I guess I could use System.exit() or other dirtyness, but I'll ask Kurt at the next meeting what the preferred way of making the simulator stop is. One problem I can see with the simple System.exit() is that this exit would happen after a *single* Entity completes its work, but other Entities may still have work remaining.

Geen opmerkingen:

Een reactie posten