[Ns-developers] [ns3] Statistical framework (draft)

Vincent Gauthier vglist at mac.com
Fri Apr 25 04:39:12 PDT 2008


Hi all,

I am proposing to start a statistical framework implementation. The  
aim of this framework is to provide an easy access to all the pre- 
defined variables in each layer of the simulator, offering to the  
users the most used a set of methods to perform statistical analysis  
(means, medians, confidence intervals) and giving to users a friendly  
way to analyze the outputs.

The proposal is driven by three ideas:
- All available statistical variables should be defined in each layer  
of the simulator,
- The statistical framework provides a useful help to define the  
variables properly and display them (give output),
- The variables are processed at the end of the simulation, the  
framework is in charge of gathering all the statistical variables and  
process them and push the output to another another interface more  
meaningful for the user (gui, file, ..etc).

Consequently, it will be easier for any add-on of the simulator to  
include their own set of variables to the one's previously defined in  
others layer/modules. At the end of the simulation, the end users will  
have access to all set of information in a raw format.

Two main sorts of statistical analysis can be perform by the framework.
One who doesn't need any extra memory than the space needed to store  
the variable itself:
- Continue mean (counter + begin and end time of the measurement),
- Discrete mean (counter + number of sample),
- Counter (simple variable),
- Min/Max (store the maximum value of a variable over the simulation  
time),
- Confidences Intervals,
- Among others  (to be defined).

And in the other one, the ones needing extra memory space (and some  
overhead) for example:
- Continuous evolution of the variable X (i.e.: the realtime  
throughput of flow #Y over the period T),
- Discrete evolution of the variable X (i.e.: the realtime throughput  
of TCP over a sample time dt),
- More to be defined.

Due to their different impact on the simulator performance each group  
must follow different process. The first type doesn't lead to any  
issue about simulation overhead (no more than updating a variable),  
and in the contrary the second type of variables could lead to a  
certain amount of memory overhead, and slowing the simulation. We  
propose to perform all the statistical analysis for the all variables  
of the first group for all simulations without the need to enable or  
disable the calculus (except for the output). For the second type we  
should perform the task on demand to avoid extra overhead, if the end  
user doesn't use it or need it.

I will appreciate your comments and feedback, and feel free to include  
some ideas I didn't mention (how to properly include it in the  
existing NS-3 structure and  so on).

Regards,
Vincent Gauthier



More information about the Ns-developers mailing list