SST/macro
|
The ugal_router class Encapsulates a router that performs Univeral Globally Adaptive Load-balanced routing as described in PhD Thesis "Load-balanced in routing in interconnection networks" by A Singh. More...
#include <ugal_routing.h>
Public Member Functions | |
ugal_router () | |
virtual void | init_factory_params (sprockit::sim_parameters *params) |
std::string | to_string () const |
void | route (packet *pkt) |
virtual void | finalize_init () |
Public Member Functions inherited from sstmac::hw::valiant_router | |
valiant_router () | |
virtual | ~valiant_router () |
virtual void | route (packet *pkt, structured_routable::path_set &paths) |
Public Member Functions inherited from sstmac::hw::minimal_router | |
minimal_router () | |
virtual | ~minimal_router () |
std::string | to_string () const |
virtual void | set_topology (topology *top) |
set_topology Set the topology to be used for route computations. More... | |
Public Member Functions inherited from sstmac::hw::structured_router | |
virtual | ~structured_router () |
virtual void | set_switch (network_switch *sw) |
set_switch Set the parent switch using this router to perform route computations More... | |
void | minimal_route_to_node (node_id node_addr, structured_routable::path &path) |
void | minimal_routes_to_node (node_id node_addr, structured_routable::path ¤t_path, structured_routable::path_set &paths) |
minimal_routes_to_node Special version of routing function that computes all possible minimal paths. More... | |
virtual void | minimal_route_to_switch (switch_id sw_addr, structured_routable::path &path) |
virtual void | productive_paths_to_switch (switch_id dst, structured_routable::path_set &paths) |
Protected Member Functions | |
next_action_t | initial_step (structured_routable *rtbl, packet *pkt) |
Different for pure valiant and UGAL. More... | |
virtual int | first_stage_vc (int topology_vc) |
The topology object specifies a virtual channel based purely on geometry. More... | |
virtual int | second_stage_vc (int topology_vc) |
The topology object specifies a virtual channel based purely on geometry. More... | |
int | zero_stage_vc (int topology_vc) |
In adition to the valiant stages, ugal has a minimal stage. More... | |
Protected Member Functions inherited from sstmac::hw::valiant_router | |
valiant_router (routing::algorithm_t algo) | |
next_action_t | intermediate_step (structured_routable *rtbl, packet *pkt) |
intermediate_step More... | |
next_action_t | next_routing_stage (packet *pkt) |
next_routing_stage Figure out which action is required for the packet More... | |
void | configure_intermediate_path (structured_routable::path &path) |
configure_intermediate_path Once the packet has switched to Valiant, compute a path to the chosen intermediate switch More... | |
void | configure_final_path (structured_routable::path &path) |
configure_final_path Once the packet has switched to Valiant and reached the intermediate switch, compute a path to the final ejection switch More... | |
void | route_valiant (packet *pkt) |
route_valiant Figure out if in intermediate or final stage and make appropriate routing computation More... | |
Protected Member Functions inherited from sstmac::hw::minimal_router | |
minimal_router (routing::algorithm_t algo) | |
Protected Member Functions inherited from sstmac::hw::structured_router | |
structured_router (routing::algorithm_t algo) | |
Protected Attributes | |
int | val_threshold_ |
int | val_preference_factor_ |
Protected Attributes inherited from sstmac::hw::structured_router | |
structured_topology * | regtop_ |
Additional Inherited Members | |
Protected Types inherited from sstmac::hw::valiant_router | |
enum | next_action_t { minimal, intermediate_switch, final_node } |
The ugal_router class Encapsulates a router that performs Univeral Globally Adaptive Load-balanced routing as described in PhD Thesis "Load-balanced in routing in interconnection networks" by A Singh.
Definition at line 15 of file ugal_routing.h.
|
inline |
Definition at line 20 of file ugal_routing.h.
References init_factory_params().
|
virtual |
Reimplemented from sstmac::hw::valiant_router.
Referenced by to_string().
|
inlineprotectedvirtual |
The topology object specifies a virtual channel based purely on geometry.
However, the final virtual channel depends on both geometry and routing algorithm. In this case, we need a separate set of virtual channels depending on whether we are in the first stage (routing to the intermediate switch) or the second stage (routing to the final switch).
topology_vc | The geometry-specific virtual channel |
Reimplemented from sstmac::hw::valiant_router.
Definition at line 52 of file ugal_routing.h.
|
virtual |
Referenced by ugal_router().
|
protectedvirtual |
Different for pure valiant and UGAL.
Reimplemented from sstmac::hw::valiant_router.
Referenced by to_string().
|
virtual |
Reimplemented from sstmac::hw::valiant_router.
Referenced by to_string().
|
inlineprotectedvirtual |
The topology object specifies a virtual channel based purely on geometry.
However, the final virtual channel depends on both geometry and routing algorithm. In this case, we need a separate set of virtual channels depending on whether we are in the first stage (routing to the intermediate switch) or the second stage (routing to the final switch).
topology_vc | The geometry-specific virtual channel |
Reimplemented from sstmac::hw::valiant_router.
Definition at line 67 of file ugal_routing.h.
|
inlinevirtual |
Reimplemented from sstmac::hw::valiant_router.
Definition at line 27 of file ugal_routing.h.
References finalize_init(), initial_step(), and route().
|
inlineprotected |
In adition to the valiant stages, ugal has a minimal stage.
This requires another set of virtual channels.
topology_vc | The geometry-specific virtual channel |
Definition at line 78 of file ugal_routing.h.
|
protected |
Definition at line 84 of file ugal_routing.h.
|
protected |
Definition at line 83 of file ugal_routing.h.