Review Board 2.0.15


Interface to integrate TOPAZ network simulator (http://code.google.com/p/tpzsimul/) within GEM5-RUBY

Review Request #1095 - Created March 11, 2012 and updated

Information
Valentin Puente
gem5
Reviewers
Default
beckmann, nilay
Interface to integrate TOPAZ network simulator (http://code.google.com/p/tpzsimul/)  within GEM5-RUBY. Does not replace ruby's interconnection network simulators (garnet and simple-network). It just adds the hookups required to connect ruby and TOPAZ. You have to download as "ext" TOPAZ from an external repo. 

To have a better perspective of the changes, you can follow the guide provided in http://code.google.com/p/tpzsimul/wiki/GEM5Integration. In order to integrate the compilation process of both simulators we have to slightly modify main SConstruct and ruby SCons files.  All the remaining changes are constrained to Ruby. Main modifications have been done in  "src/mem/ruby/network/simple/PerfectSwitch.cc"
Regression test seems to be working for the ruby protocols provided 

Issue Summary

47 7 39 1
Description From Last Updated Status
Instead of setting each individual parameter here, please create a new Topaz Network model that inherrits from the SimpleNetwork and ... Brad Beckmann March 13, 2012, 4:54 a.m. Open
Do not use #ifdefs. Brad Beckmann March 13, 2012, 4:54 a.m. Open
Why do you need these functions defined here? Pleaes explain. Brad Beckmann March 13, 2012, 4:54 a.m. Open
Instead of using an ifdef here, can you make a separate TopazSwitch object that inherits from PerfectSwitch? I think that ... Brad Beckmann March 13, 2012, 4:54 a.m. Open
Again, all this Topaz specific code should be moved to a separate TopazSwitch.cc file. Brad Beckmann March 13, 2012, 4:54 a.m. Open
Again, move to a new Topaz network file. Brad Beckmann March 13, 2012, 4:54 a.m. Open
Move to a new network oject called TopazNetwork. Stick to 80 char limit per line. Brad Beckmann March 13, 2012, 4:54 a.m. Open
Review request changed
Updated (March 19, 2012, 8:43 p.m.)
Posted (March 19, 2012, 9:08 p.m.)
The patch applies clearly with current "tip" (changeset 8903)
Posted (March 19, 2012, 9:57 p.m.)



  
configs/ruby/Ruby.py (Diff revision 8)
 
 
80 characters?
configs/ruby/Ruby.py (Diff revision 8)
 
 
Odd way of stating what you want.
src/mem/ruby/buffers/MessageBuffer.hh (Diff revision 8)
 
 
const?
src/mem/ruby/buffers/MessageBuffer.hh (Diff revision 8)
 
 
Prefix with set?
src/mem/ruby/network/Topology.cc (Diff revision 8)
 
 
It would be great if the comment explained a bit better what it is really doing.
Move up
const on all getters
Why returning a const unsigned?
const on all is/get methods
Whitespace
Whitespace
Whitespace, and 80 char?
Posted (March 19, 2012, 10 p.m.)
I do not intend to sound negative, but what does this patch bring to gem5 and what are the main limitations/assumptions on its use? It is quite a lot of code to maintain and I would really like to understand what works/does not work, and what it brings, and to whom.
Posted (March 20, 2012, 10:21 p.m.)
Thanks for reviewing the code Andreas. I've corrected your suggestions. 

I understand your concerns.... and not only the large code but the 50k+ lines of code that that sits out gem5 repo, i.e. TOPAZ network simulator itself. Due to that (let gem5 code depending on some external repository) we reach to the conclusion is to push back this patch and keep a gem5 clone repo in TOPAZ google code site. In the future, we might try to retry it with some kind of "abstractized" interface for external simulators.