>  As for selectively dumping some stats and not dumping others we don't
>  support anything like that currently.
Have we ever studied the Statistics overhead in M5?

I may be wrong on this, but it seems to me that if every SimObject has
some stats, if all stats in SimObjects are kept without option, and if
M5 is heavily modular than that means that being able to toggle
exactly which stats are kept and not kept during any simulation could
be pretty important for simulation performance.

Additionally, the performance degradation of not including this
capability would continue to increase as people try to simulate
10s/100s of cores and each core/cache has it's own particular set of
stats it's constantly trying to keep updated.

If this is indeed a problem worth looking at,
then any solution would probably be complicated (Python/SWIG magic?)
or it would be messy in the code (compiler directives everywhere?).

The compiler directives method probably wouldnt be very effective
because then if you have two objects of the same type and want to
collects stats from one and not the other you really aren't able to do
that. Also, you wouldn't be able to toggle different stats for
different objects at run-time.

Nate's example of enabling/disabling could be a way to make it work
asyou could set that in the regStats() function based on some
"stats_on" parameter defined in the SimObject class.

However, if you have code like:
void operator++() { if (enabled) data()->inc(1, params); }
is that really significantly faster then figuring out a way  to compile it out?

I dont know, but this may be something to look into after the tutorial...

-- 
----------
Korey L Sewell
Graduate Student - PhD Candidate
Computer Science & Engineering
University of Michigan
_______________________________________________
m5-users mailing list
m5-users@m5sim.org
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

Reply via email to