|
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.
1.8.11