Improvements to Ruby's SimpleNetwork
Ruby's SimpleNetwork provides a high level performance model for interconnect switches and links, but lacks a few features such as the ability to introduce routing latency in the switches. It's helpful to have additional performance modeling knobs without having to use the detailed Garnet model.
This ticket tracks some changes I've made to SimpleNetwork to allow more configurability:
Modeling multiple physical channels: messages from all vnets share the same bandwidth from a link. This patch enables the emulation of multiple physical channels by assigning separate bandwidth budgets for each vnet
Modeling of routing latency and priorities
Refactoring of the routing algorithm
More stats and route tracing
Other improvements and fixes
I’d would be helpful if I could get some general feedback about this set of patch as a whole. One question I have is whether or not it would be more appropriate to create a separate network model based on SimpleNetwork (SimpleNetwork2.0 ?) with these features ?