Hi list-
I'm looking closely at GEMS's default network simulation (non-Garnet)
and am a little confused by the g_endpoint_bandwidth parameter.
Specifically, this is where its default value is set:
-- ruby/config/rubyconfig.defaults:225
// bandwidth unit is 1/1000 byte per cycle. the following parameter is
multiplied by
// topology specific link weights
g_endpoint_bandwidth: 10000
---
However, the value is used as is here
-- ruby/network/simple/Throttle.C:155
int bw_remaining = getLinkBandwidth();
-- ruby/network/simple/Throttle.h:99
int getLinkBandwidth() const { return g_endpoint_bandwidth *
m_link_bandwidth_multiplier; }
--
essentially giving each link quasi-infinite bandwidth (confirmed in
ruby dump statistics file).
--
switch_7_inlinks: 7
switch_7_outlinks: 7
links_utilized_percent_switch_7: 1.26672
links_utilized_percent_switch_7_link_0: 0 bw: 800000 base_latency: 20
links_utilized_percent_switch_7_link_1: 0.584954 bw: 10000
base_latency: 1
links_utilized_percent_switch_7_link_2: 2.38933 bw: 10000
base_latency: 1
links_utilized_percent_switch_7_link_3: 1.28999 bw: 10000
base_latency: 1
links_utilized_percent_switch_7_link_4: 1.71208 bw: 10000
base_latency: 1
links_utilized_percent_switch_7_link_5: 1.50054 bw: 10000
base_latency: 1
links_utilized_percent_switch_7_link_6: 1.39014 bw: 10000
base_latency: 1
--
I guess my question is: is this intentional? It could make sense if
ruby by itself wasn't meant to model network bandwidth accurately, but
I just feel that this is a rather convoluted way to achieve that
effect - one doesn't really as sophisticated logic in Throttle::wakeup
() as what's already there to achieve this effect. That comment found
in rubyconfig.defaults is another mystery.
Any ideas?
Thanks,
Byn Choi
|