Dear list,
I've been using GEMS to develop a new cache
coherence protocol. I first used Ruby and Ruby Tester to verify its
correctness. Thanks to the many advices from GEMS authors and
users, the new protocol seems to have passed the tester. Now, I want
to use the Opal processor model together with my modified Ruby module on Simics
and run multiprogrammed SPEC benchmarks. I have a few questions to discuss with
you.
1. The simulation is very very slow and it seems
impossible to run the entire benchmark. 10 million cycles cost me more than one
hour. Although I can specify warm up length, it is best to cover the entire life
span of the benchmark. Has anyone tried to use a sampling approach? I guess
it's OK to wait on the completion of the entire benchmark when producing final
performance numbers, but it certainly is a pain whenever there is
modification to the code and we want to see how it affects the performance.
GEMS users, how do you handle this problem?
2. Exactly what performance number should I look at
to compare two systems, when both Opal and Ruby are used. I saw on FAQ that one
should use Ruby_cycles to measure the runtime of the simulated
system. But when I let Opal run the same number of cycles, shouldn't Ruby_cycles
be the same for both? If not, why?
I appreciate your comments!
Thanks,
Lei
|