16 #ifndef SSTMAC_HARDWARE_NETWORK_TOPOLOGY_HDTORUS_H_INCLUDED 17 #define SSTMAC_HARDWARE_NETWORK_TOPOLOGY_HDTORUS_H_INCLUDED 65 const std::vector<int> &
112 std::list<node_id>&
partners)
const;
125 std::vector<node_id>& partners)
const;
131 std::vector<node_id>& partners)
const;
137 std::vector<node_id>& partners)
const;
143 std::vector<node_id>& partners)
const;
166 distance(
int dim,
int dir,
int src,
int dst)
const;
const std::vector< int > & dimensions() const
Returns the vector giving each dimension of the torus.
bool shortest_path_positive(int dim, const coordinates &src, const coordinates &dst) const
virtual int convert_to_port(int dim, int dir) const
void up_path(int dim, const coordinates &src, const coordinates &dst, structured_routable::path &path) const
void bit_complement_partners(const coordinates &src_sw_coords, int port, std::vector< node_id > &partners) const
void pick_vc(structured_routable::path &path) const
coordinates neighbor_at_port(switch_id sid, int port) const
virtual void compute_switch_coords(switch_id uid, coordinates &coords) const
Compute coordinates (e.g.
int minimal_distance(const coordinates &src_coords, const coordinates &dest_coords) const
The function accepts either source or node coordinates.
void down_path(int dim, const coordinates &src, const coordinates &dst, structured_routable::path &path) const
virtual std::string to_string() const
virtual int num_switches() const
void tornado_recv_partners(const coordinates &src_sw_coords, int port, std::vector< node_id > &partners) const
void minimal_route_to_coords(const coordinates &src_coords, const coordinates &dest_coords, structured_routable::path &path) const
Workhorse function for implementing minimal_route_to_switch and #minimal_route_to_node.
The cartesian_topology class Encapsulates a topology like torus that can be naturally mapped onto an ...
virtual int num_leaf_switches() const
Structured topologies can be direct (torus) or indirect (fat tree).
SUMI = Simulator unified messagine interface It is also the name for a solid ink in Japanese - i...
int distance(int dim, int dir, int src, int dst) const
void partners(traffic_pattern::type_t ty, const coordinates &src_sw_coords, std::list< node_id > &partners) const
virtual void connect_dim(int dim, connectable *center, connectable *plus, connectable *minus)
std::vector< int > dimensions_
void init_factory_params(sprockit::sim_parameters *params)
switch_id switch_number(const coordinates &v) const
virtual void productive_path(int dim, const coordinates &src, const coordinates &dst, structured_routable::path &path) const
virtual void connect_objects(internal_connectable_map &switches)
Given a set of connectables, connect them appropriately.
void configure_geometric_paths(std::vector< int > &redundancies)
configure_geometric_paths For all possible geometric or structure paths, compute their redundances in...
int shortest_distance(int dim, int src, int dst) const
virtual int ndimensions() const
The number of distinct 'dimensions' in the topology.
void nearest_neighbor_partners(const coordinates &src_sw_coords, int port, std::vector< node_id > &partners) const
Implements a high dimensional torus network.
void tornado_send_partners(const coordinates &src_sw_coords, int port, std::vector< node_id > &partners) const
void configure_vc_routing(std::map< routing::algorithm_t, int > &m) const