3 #ifndef __INT_TOPOLOGY_H__ 4 #define __INT_TOPOLOGY_H__ 6 #include "../interface/common.h" 88 std::vector< topology* > & topovec);
123 int & num_sub_phys_dims,
std::vector< topology * > peel_torus(topology const *topo, CommData glb_comm)
folds specified topology into all configurations of lesser dimensionality
int find_topology(topology const *topo, std::vector< topology * > &topovec)
searches for an equivalent topology in avector of topologies
int get_best_topo(int64_t nvirt, int topo, CommData global_comm, int64_t bcomm_vol, int64_t bmemuse)
get the best topologoes (least nvirt) over all procs
std::vector< topology * > peel_perm_torus(topology *phys_topology, CommData cdt)
folds specified topology and all of its permutations into all configurations of lesser dimensionality...
topology * get_phys_topo(CommData glb_comm, TOPOLOGY mach)
get dimension and torus lengths of specified topology
int can_morph(topology const *topo_keep, topology const *topo_change)
determines if two topologies are compatible with each other
topology(topology const &other)
copy constructor
void extract_free_comms(topology const *topo, int order_A, mapping const *edge_map_A, int order_B, mapping const *edge_map_B, int &num_sub_phys_dims, CommData **psub_phys_comm, int **pcomm_idx)
extracts the set of physical dimensions still available for mapping
std::vector< topology * > get_generic_topovec(CommData cdt)
computes all topology configurations given undelying physical topology information ...
void morph_topo(topology const *new_topo, topology const *old_topo, int order, mapping *edge_map)
morphs a tensor topology into another