SST/macro
|
The cartesian_topology class Encapsulates a topology like torus that can be naturally mapped onto an n-dimensional Cartesian (integer) coordinate system. More...
#include <cartesian_topology.h>
Public Member Functions | |
virtual void | configure_geometric_paths (std::vector< int > &redundancies)=0 |
configure_geometric_paths For all possible geometric or structure paths, compute their redundances in terms of number of ports that go in the same geometric or structural direction, e.g. 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 |
Public Member Functions inherited from sstmac::hw::structured_topology | |
virtual | ~structured_topology () |
virtual int | num_leaf_switches () const =0 |
Structured topologies can be direct (torus) or indirect (fat tree). More... | |
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 int | ndimensions () const =0 |
The number of distinct 'dimensions' in the topology. More... | |
virtual int | diameter () const =0 |
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 | 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 std::vector< node_id > | nodes_connected_to_injection_switch (switch_id swaddr) const |
virtual std::vector< node_id > | nodes_connected_to_ejection_switch (switch_id swid) 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... | |
Protected Member Functions | |
virtual void | init_factory_params (sprockit::sim_parameters *params) |
Protected Member Functions inherited from sstmac::hw::structured_topology | |
void | configure_injection_geometry (std::vector< int > &redundancies) |
virtual std::vector< node_id > | nodes_connected_to_switch (switch_id swaddr) const |
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 | |
std::vector< int > | red_ |
The number of redundant links (ports) comprising a geometric or structure direction in the topology. More... | |
Protected Attributes inherited from sstmac::hw::structured_topology | |
int | eject_geometric_id_ |
int | injection_redundancy_ |
bool | outputgraph_ |
The cartesian_topology class Encapsulates a topology like torus that can be naturally mapped onto an n-dimensional Cartesian (integer) coordinate system.
Definition at line 14 of file cartesian_topology.h.
|
pure virtual |
configure_geometric_paths For all possible geometric or structure paths, compute their redundances in terms of number of ports that go in the same geometric or structural direction, e.g.
might be 3 ports that all go +X on a router
[in,out] | redundancies |
Implemented in sstmac::hw::dragonfly, sstmac::hw::hdtorus, and sstmac::hw::tiled_dragonfly.
Referenced by sstmac::hw::multipath_router< ParentRouter >::set_topology().
|
protectedvirtual |
Reimplemented from sstmac::hw::structured_topology.
Reimplemented in sstmac::hw::tiled_dragonfly, sstmac::hw::dragonfly, sstmac::hw::hdtorus, sstmac::hw::hypercube, and sstmac::hw::tiled_torus.
|
virtual |
Reimplemented from sstmac::hw::structured_topology.
Reimplemented in sstmac::hw::tiled_dragonfly.
|
protected |
The number of redundant links (ports) comprising a geometric or structure direction in the topology.
Definition at line 44 of file cartesian_topology.h.