16 #ifndef SSTMAC_HARDWARE_NETWORK_TOPOLOGY_butterfly_H_INCLUDED 17 #define SSTMAC_HARDWARE_NETWORK_TOPOLOGY_butterfly_H_INCLUDED 157 int &switch_port)
const;
160 convert_to_port(
int dim,
int dir)
const;
188 return last_col_index_start_;
void compute_switch_coords(switch_id uid, coordinates &coords) const
Compute coordinates (e.g.
virtual int minimal_distance(const coordinates &src_coords, const coordinates &dest_coords) const =0
The function accepts either source or node coordinates.
virtual void connect_objects(internal_connectable_map &objects)=0
Given a set of connectables, connect them appropriately.
virtual int num_switches() const
virtual std::string to_string() const
The abstract_butterfly class Encapsulates operations common to both butterfly and flattened_butterfly...
virtual std::vector< node_id > nodes_connected_to_injection_switch(switch_id swaddr) const
int num_switches_per_col() const
num_switches_per_col The butterfly is physically laid out as a 2D-graid of cols and rows ...
virtual switch_id endpoint_to_ejection_switch(node_id nodeaddr, int &switch_port) const
virtual int num_leaf_switches() const
num_switches_per_col The butterfly is physically laid out as a 2D-graid of cols and rows...
int last_col_index_start() const
switch_id switch_number(const coordinates &coords) const
SUMI = Simulator unified messagine interface It is also the name for a solid ink in Japanese - i...
The butterfly class Encapsulates a butterfly topology as described in "High Performance Datacenter Ne...
virtual void init_factory_params(sprockit::sim_parameters *params)
virtual void productive_path(int dim, const coordinates &src, const coordinates &dst, structured_routable::path &path) const
long last_col_index_start_
int ndimensions() const
Each level in a kary-nfly counts as a dimension.
virtual std::vector< node_id > nodes_connected_to_ejection_switch(switch_id swid) const
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.
virtual void productive_paths(structured_routable::path_set &paths, const coordinates ¤t, const coordinates &dst)
Encapsulates a topology like torus, fat tree, butterfly which has a regular, well-defined structure...
void configure_vc_routing(std::map< routing::algorithm_t, int > &m) const
virtual ~abstract_butterfly()