12 #ifndef SSTMAC_HARDWARE_NETWORK_TOPOLOGY_TILED_DRAGONFLY_H_INCLUDED 13 #define SSTMAC_HARDWARE_NETWORK_TOPOLOGY_TILED_DRAGONFLY_H_INCLUDED 25 typedef std::pair<int,int>
xy_t;
60 return "tiled_dragonfly";
93 node_id nodeaddr,
int ports[],
int &num_ports)
const;
97 node_id nodeaddr,
int ports[],
int &num_ports)
const;
113 port(
int replica,
int dim,
int dir);
122 return xy.second * tiles_x_ + xy.first;
142 if (n < 0 || n >=
x_)
149 if (n < 0 || n >=
y_)
156 if (n < 0 || n >=
g_)
163 if (n < 0 || n >= tiles_x_)
170 if (n < 0 || n >= tiles_y_)
std::list< connection > intragrp_conns_
switch_id endpoint_to_injection_switch(node_id nodeaddr, int ports[], int &num_ports) const
void read_intergroup_connections()
virtual ~tiled_dragonfly()
conn_map_t intragrp_conn_map_
virtual int port(int replica, int dim, int dir)
std::pair< int, int > xy_t
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 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
gconn_map_t intergrp_conn_map_
void check_switch_g(int n)
struct sstmac::hw::tiled_dragonfly::connection connection
void configure_geometric_paths(std::vector< int > &redundancies)
configure_geometric_paths For all possible geometric or structure paths, compute their redundances in...
virtual int convert_to_port(int dim, int dir) const
std::map< int, int > port_to_geomid_
virtual void init_factory_params(sprockit::sim_parameters *params)
void check_switch_y(int n)
void make_intragroup_connections(internal_connectable_map &objects)
void check_switch_xyg(int x, int y, int g)
std::vector< std::set< int > > switch_to_connected_groups_
virtual void eject_paths_on_switch(node_id dest_addr, switch_id sw_addr, structured_routable::path_set &paths) const
switch_id endpoint_to_ejection_switch(node_id nodeaddr, int ports[], int &num_ports) const
std::vector< coormap_xy_map_t * > gconn_map_t
void check_port_xy(int x, int y)
SUMI = Simulator unified messagine interface It is also the name for a solid ink in Japanese - i...
void connect_objects(internal_connectable_map &switches)
Given a set of connectables, connect them appropriately.
virtual bool xy_connected_to_group(int myX, int myY, int myG, int dstg) const
std::map< int, xy_list_t * > coormap_xy_map_t
std::list< xy_t > xy_list_t
std::vector< int > injection_ports_
std::string intergroup_file_
std::string intragroup_file_
virtual void minimal_route_to_coords(const coordinates ¤t_coords, const coordinates &dest_coords, structured_routable::path &path) const
Workhorse function for implementing minimal_route_to_switch and #minimal_route_to_node.
#define spkt_throw_printf(exc, template_str,...)
void read_intragroup_connections()
std::vector< coor_xy_map_t * > conn_map_t
void make_intergroup_connections(internal_connectable_map &objects)
virtual std::string to_string() const
std::list< connection > intergrp_conns_
xy_list_t::iterator xy_list_iter
void check_switch_x(int n)
std::vector< xy_list_t * > coor_xy_map_t
int xy_to_int(xy_t xy) const
Error indicating some internal value was unexpected.