Talk:Statistical Framework for Network Simulation
To remember: An important benefit of independent replications, particularly distributed setups, is fault tolerance, e.g. not losing all your data when someone kicks the cord out of the machine... --tjkopena 09:58, 31 May 2008 (EDT)
(discussion from tomh): I would like to add some goals and discussion
- I would like it to be really easy for a user to intrusively hack the core and use (some of) the statistics framework. Such as the ability to define a global Counter somewhere and avoid having users indirect through the attribute system. Not that I think it is bad to provide trace sources but I would like the quick and dirty approach to be possible and documented, alongside the supported ns-3 way of going through the tracing/attribute framework.
- I would like to consider to reuse/align as much as possible the use of third party tools like matlab, matplotlib. I kind of see a potential balance that we could reimplement bare-bones statistics processing objects like (mean, variance, std. dev) but if users want to do e.g. fourier analysis, we point them to one of these other tools.
I think it would be useful if we could define two or three concrete use cases and try to prototype them without fully building out the system. Here is a strawman off the top of my head:
- User wants simulator to output a count of the number of events, sim time elapsed, and some other counter (e.g. dropped packets in the system), to stdout at the end of the simulation. - User wants simulator to output a count of the number of dropped packets in the system, to a text file or database. - User wants to tell the simulator to terminate when the number of some counter exceeds a threshold. - User wants a CSV file of the byte count for each packets received in the system, that can be plotted by grace, gnuplot, etc., in a format such as [time, bytes] - User wants third-party plotting tool to generate a CDF of the received packet sizes on a given node.
We also need to decide on some framework for coordinating and terminating multiple simulation runs, which I haven't discussed above.