|
SST/macro
|
#include <fat_tree.h>


Public Types | |
| enum | dimension_t { up_dimension = 1, down_dimension = 0 } |
Public Member Functions | |
| int | l () const |
| int | k () const |
| virtual void | init_factory_params (sprockit::sim_parameters *params) |
| virtual int | ndimensions () const |
| The number of distinct 'dimensions' in the topology. More... | |
| int | diameter () const |
| virtual int | num_leaf_switches () const |
| Structured topologies can be direct (torus) or indirect (fat tree). More... | |
| std::vector< node_id > | nodes_connected_to_injection_switch (switch_id swaddr) const |
| std::vector< node_id > | nodes_connected_to_ejection_switch (switch_id swaddr) const |
Public Member Functions inherited from sstmac::hw::structured_topology | |
| virtual | ~structured_topology () |
| virtual void | connect_objects (internal_connectable_map &objects)=0 |
| Given a set of connectables, connect them appropriately. More... | |
| virtual void | build_internal_connectables (internal_connectable_map &connectables, sprockit::factory< connectable > *factory, partition *part, int my_rank, sprockit::sim_parameters *params, connectable *dummy) |
| virtual void | build_endpoint_connectables (end_point_connectable_map &connectables, sprockit::factory< connectable > *factory, partition *part, int my_rank, sprockit::sim_parameters *params) |
| virtual void | build_interface_connectables (int conc, end_point_connectable_map &connectables, sprockit::factory2< connectable > *nic_factory, partition *part, int my_rank, sprockit::sim_parameters *params, sprockit::factory_type *interconnect) |
| virtual void | minimal_route_to_coords (const coordinates &src_coords, const coordinates &dest_coords, structured_routable::path &path) const =0 |
| Workhorse function for implementing minimal_route_to_switch and #minimal_route_to_node. More... | |
| virtual void | minimal_routes_to_coords (const coordinates &src_coords, const coordinates &dest_coords, structured_routable::path ¤t_path, structured_routable::path_set &paths) const |
| virtual int | minimal_distance (const coordinates &src_coords, const coordinates &dest_coords) const =0 |
| The function accepts either source or node coordinates. More... | |
| virtual switch_id | switch_number (const coordinates &coords) const =0 |
| virtual void | productive_path (int dim, const coordinates &src, const coordinates &dst, structured_routable::path &path) const =0 |
| virtual int | endpoints_per_switch (switch_id addr) const |
| Given a switch address, return number of nodes connected to it. More... | |
| virtual int | num_nodes () const |
| virtual int | num_endpoints () const |
| coordinates | switch_coords (switch_id swid) const |
| Compute coordinates (e.g. More... | |
| virtual coordinates | node_coords (node_id nid) const |
| Compute coordinates (e.g. More... | |
| coordinates | endpoint_coords (node_id nid) const |
| virtual switch_id | endpoint_to_ejection_switch (node_id nodeaddr, int &switch_port) const |
| virtual switch_id | endpoint_to_injection_switch (node_id nodeaddr, int &switch_port) const |
| virtual int | endpoint_to_ejection_port (node_id addr) const |
| virtual int | endpoint_to_injection_port (node_id addr) const |
| virtual int | endpoint_to_switch_port (node_id nid) const |
| void | finalize_init () |
| virtual void | productive_paths (structured_routable::path_set &paths, const coordinates ¤t, const coordinates &dst) |
| std::string | label (node_id nid) const |
| std::string | label (switch_id sid) const |
| virtual void | minimal_route_to_switch (switch_id current_sw_addr, switch_id dest_sw_addr, structured_routable::path &path) const |
| Implementation of topology::minimal_route_to_switch. More... | |
| virtual void | minimal_routes_to_switch (switch_id current_sw_addr, switch_id dest_sw_addr, structured_routable::path ¤t_path, structured_routable::path_set &paths) const |
| virtual void | eject_paths_on_switch (node_id dest_addr, switch_id sw_addr, structured_routable::path_set &paths) const |
| virtual int | num_hops_to_node (node_id src, node_id dst) const |
| virtual coordinates | neighbor_at_port (switch_id sid, int port) const |
| virtual node_id | node_addr (const coordinates &coords) const |
| virtual node_id | node_addr (const coordinates &sw_coords, int port) const |
| virtual void | send_partners (traffic_pattern::type_t ty, node_id src_node, std::vector< node_id > &partners) const |
| virtual void | recv_partners (traffic_pattern::type_t ty, node_id src_node, std::vector< node_id > &partners) const |
| virtual void | compute_switch_coords (switch_id swid, coordinates &coords) const =0 |
| Compute coordinates (e.g. More... | |
Static Public Member Functions | |
| static int | pow (int a, int exp) |
Protected Member Functions | |
| std::vector< node_id > | nodes_connected_to_switch (switch_id swaddr) const |
Protected Member Functions inherited from sstmac::hw::structured_topology | |
| void | configure_injection_geometry (std::vector< int > &redundancies) |
| structured_topology () | |
| void | partners (bool get_send_partner, traffic_pattern::type_t ty, node_id src, std::vector< node_id > &partner_list) const |
| virtual void | nearest_neighbor_partners (const coordinates &src_sw_coords, int port, std::vector< node_id > &partners) const |
| virtual void | tornado_recv_partners (const coordinates &src_sw_coords, int port, std::vector< node_id > &partners) const |
| virtual void | tornado_send_partners (const coordinates &src_sw_coords, int port, std::vector< node_id > &partners) const |
| virtual void | bit_complement_partners (const coordinates &src_sw_coords, int port, std::vector< node_id > &partners) const |
Protected Attributes | |
| int | l_ |
| int | k_ |
| int | numleafswitches_ |
| int | toplevel_ |
Protected Attributes inherited from sstmac::hw::structured_topology | |
| int | eject_geometric_id_ |
| int | injection_redundancy_ |
| bool | outputgraph_ |
Definition at line 25 of file fat_tree.h.
| Enumerator | |
|---|---|
| up_dimension | |
| down_dimension | |
Definition at line 29 of file fat_tree.h.
|
inlinevirtual |
Implements sstmac::hw::structured_topology.
Definition at line 63 of file fat_tree.h.
References l_.
|
virtual |
Reimplemented from sstmac::hw::structured_topology.
Reimplemented in sstmac::hw::simple_fat_tree, and sstmac::hw::fat_tree.
Referenced by k(), sstmac::hw::fat_tree::~fat_tree(), and sstmac::hw::simple_fat_tree::~simple_fat_tree().
|
inline |
Definition at line 40 of file fat_tree.h.
References init_factory_params(), and k_.
Referenced by sstmac::hw::fat_tree::switch_at_row_col().

|
inline |
Definition at line 35 of file fat_tree.h.
References l_.
|
inlinevirtual |
The number of distinct 'dimensions' in the topology.
This can correspond directly to standard X,Y,Z dimensions or the the number of levels in a fat tree. The keyword topology_redundant vector should have this many entries.
Implements sstmac::hw::structured_topology.
Definition at line 48 of file fat_tree.h.
|
virtual |
Reimplemented from sstmac::hw::structured_topology.
Referenced by num_leaf_switches().
|
virtual |
Reimplemented from sstmac::hw::structured_topology.
Referenced by num_leaf_switches().
|
protectedvirtual |
Reimplemented from sstmac::hw::structured_topology.
Referenced by num_leaf_switches().
|
inlinevirtual |
Structured topologies can be direct (torus) or indirect (fat tree).
We therefore need to distinguish the total number of switches and the number of leaf switches - i.e. those directly connected to nodes. For direct topologies, num_switches and num_leaf_switches are the same. For indirect, num_leaf_switches < num_switches.
Implements sstmac::hw::structured_topology.
Definition at line 68 of file fat_tree.h.
References nodes_connected_to_ejection_switch(), nodes_connected_to_injection_switch(), nodes_connected_to_switch(), and numleafswitches_.

|
inlinestatic |
Definition at line 54 of file fat_tree.h.
|
protected |
Definition at line 83 of file fat_tree.h.
Referenced by k().
|
protected |
Definition at line 83 of file fat_tree.h.
Referenced by diameter(), l(), and sstmac::hw::fat_tree::num_switches().
|
protected |
Definition at line 83 of file fat_tree.h.
Referenced by num_leaf_switches(), sstmac::hw::fat_tree::num_switches(), and sstmac::hw::fat_tree::switch_at_row_col().
|
protected |
Definition at line 84 of file fat_tree.h.
1.8.11