SST/macro
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
sstmac::hw::ugal_router Class Reference

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>

Inheritance diagram for sstmac::hw::ugal_router:
Inheritance graph
Collaboration diagram for sstmac::hw::ugal_router:
Collaboration graph

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 &current_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_topologyregtop_
 

Additional Inherited Members

- Protected Types inherited from sstmac::hw::valiant_router
enum  next_action_t { minimal, intermediate_switch, final_node }
 

Detailed Description

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.

Constructor & Destructor Documentation

sstmac::hw::ugal_router::ugal_router ( )
inline

Definition at line 20 of file ugal_routing.h.

References init_factory_params().

Here is the call graph for this function:

Member Function Documentation

virtual void sstmac::hw::ugal_router::finalize_init ( )
virtual

Reimplemented from sstmac::hw::valiant_router.

Referenced by to_string().

virtual int sstmac::hw::ugal_router::first_stage_vc ( int  topology_vc)
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).

Parameters
topology_vcThe geometry-specific virtual channel
Returns
The second stage virtual channel

Reimplemented from sstmac::hw::valiant_router.

Definition at line 52 of file ugal_routing.h.

virtual void sstmac::hw::ugal_router::init_factory_params ( sprockit::sim_parameters *  params)
virtual

Referenced by ugal_router().

next_action_t sstmac::hw::ugal_router::initial_step ( structured_routable rtbl,
packet pkt 
)
protectedvirtual

Different for pure valiant and UGAL.

Reimplemented from sstmac::hw::valiant_router.

Referenced by to_string().

void sstmac::hw::ugal_router::route ( packet pkt)
virtual

Reimplemented from sstmac::hw::valiant_router.

Referenced by to_string().

virtual int sstmac::hw::ugal_router::second_stage_vc ( int  topology_vc)
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).

Parameters
topology_vcThe geometry-specific virtual channel
Returns
The second stage virtual channel

Reimplemented from sstmac::hw::valiant_router.

Definition at line 67 of file ugal_routing.h.

std::string sstmac::hw::ugal_router::to_string ( ) const
inlinevirtual

Reimplemented from sstmac::hw::valiant_router.

Definition at line 27 of file ugal_routing.h.

References finalize_init(), initial_step(), and route().

Here is the call graph for this function:

int sstmac::hw::ugal_router::zero_stage_vc ( int  topology_vc)
inlineprotected

In adition to the valiant stages, ugal has a minimal stage.

This requires another set of virtual channels.

Parameters
topology_vcThe geometry-specific virtual channel
Returns
The zero stage virtual channel

Definition at line 78 of file ugal_routing.h.

Member Data Documentation

int sstmac::hw::ugal_router::val_preference_factor_
protected

Definition at line 84 of file ugal_routing.h.

int sstmac::hw::ugal_router::val_threshold_
protected

Definition at line 83 of file ugal_routing.h.


The documentation for this class was generated from the following file: