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
 
 |