Go to the source code of this file.
Data Structures | |
class | ST_RecursivePartition< Iterator >::PhyNode< Iterator > |
class | ST_RecursivePartition< Iterator >::PhyNodeCompare< Iterator > |
Typedefs | |
typedef std::unordered_map < int, int > | intMap |
Author: jjgalvez@illinois.edu (Juan Galvez) Uses recursive bisect/trisect functionality similar to what was in src/util/treeStrategy_3dTorus_minHops.h. | |
typedef std::unordered_map < int, CmiSpanningTreeInfo * > | TreeInfoMap |
Functions | |
static int | modulo (int k, int n) |
template<typename Iterator> | |
void | getNeighborsTopoTree_R (Iterator start, Iterator end, int myElem, int prevLvlParent, bool nodeTree, unsigned int bfactor, CmiSpanningTreeInfo &t) |
void | getNodeTopoTreeEdges (int node, int rootNode, int *nodes, int numnodes, unsigned int bfactor, int *parent, int *child_count, int **children) |
Calculate and return parent and children of 'node' in topo tree rooted at 'rootNode'. | |
void | getPETopoTreeEdges (int pe, int rootPE, int *pes, int numpes, unsigned int bfactor, int *parent, int *child_count, int **children) |
Calculate and return parent and children of 'pe' in topo tree rooted at 'rootPE'. | |
CmiSpanningTreeInfo * | ST_RecursivePartition_getTreeInfo (int root) |
obtain TreeInfo (parent and children) of CkMyNode() for tree rooted at specified node using ST_RecursivePartition. | |
void | get_topo_tree_nbs (int root, int *parent, int *child_count, int **children) |
C API to ST_RecursivePartition_getTreeInfo (see below). | |
Variables | |
static TreeInfoMap | trees |
CmiNodeLock | _treeLock |
Author: jjgalvez@illinois.edu (Juan Galvez) Uses recursive bisect/trisect functionality similar to what was in src/util/treeStrategy_3dTorus_minHops.h.
Definition at line 12 of file spanningTree.C.
typedef std::unordered_map<int,CmiSpanningTreeInfo*> TreeInfoMap |
Definition at line 610 of file spanningTree.C.
Definition at line 402 of file spanningTree.C.
Referenced by ST_RecursivePartition< Iterator >::translateCoordinates().
void getNeighborsTopoTree_R | ( | Iterator | start, | |
Iterator | end, | |||
int | myElem, | |||
int | prevLvlParent, | |||
bool | nodeTree, | |||
unsigned int | bfactor, | |||
CmiSpanningTreeInfo & | t | |||
) | [inline] |
Definition at line 531 of file spanningTree.C.
References ST_RecursivePartition< Iterator >::begin(), ST_RecursivePartition< Iterator >::buildSpanningTree(), CmiSpanningTreeInfo::child_count, CmiSpanningTreeInfo::children, std::distance(), ST_RecursivePartition< Iterator >::end(), malloc(), min(), and CmiSpanningTreeInfo::parent.
Referenced by getNodeTopoTreeEdges(), and getPETopoTreeEdges().
void getNodeTopoTreeEdges | ( | int | node, | |
int | rootNode, | |||
int * | nodes, | |||
int | numnodes, | |||
unsigned int | bfactor, | |||
int * | parent, | |||
int * | child_count, | |||
int ** | children | |||
) |
Calculate and return parent and children of 'node' in topo tree rooted at 'rootNode'.
The tree spans the specified 'nodes', or *all* nodes if nodes == NULL If nodes are given, rootNode must appear first in the array NOTE: caller is responsible for freeing array of children (if child_count > 0)
Definition at line 558 of file spanningTree.C.
References CmiSpanningTreeInfo::child_count, CmiSpanningTreeInfo::children, BGConverse::CkNumNodes(), getNeighborsTopoTree_R(), CmiSpanningTreeInfo::parent, and PUP::t.
Referenced by ST_RecursivePartition_getTreeInfo().
void getPETopoTreeEdges | ( | int | pe, | |
int | rootPE, | |||
int * | pes, | |||
int | numpes, | |||
unsigned int | bfactor, | |||
int * | parent, | |||
int * | child_count, | |||
int ** | children | |||
) |
Calculate and return parent and children of 'pe' in topo tree rooted at 'rootPE'.
The tree spans the specified 'pes', or *all* pes if pes == NULL If pes are given, rootPE must appear first in the array NOTE: caller is responsible for freeing array of children (if child_count > 0)
Definition at line 584 of file spanningTree.C.
References CmiSpanningTreeInfo::child_count, CmiSpanningTreeInfo::children, Converse::CkNumPes(), getNeighborsTopoTree_R(), CmiSpanningTreeInfo::parent, and PUP::t.
CmiSpanningTreeInfo* ST_RecursivePartition_getTreeInfo | ( | int | root | ) |
obtain TreeInfo (parent and children) of CkMyNode() for tree rooted at specified node using ST_RecursivePartition.
Tree is assumed to cover all nodes. This function allocates and caches the TreeInfo structure, so any subsequent calls don't recalculate the tree.
Definition at line 615 of file spanningTree.C.
References _treeLock, CmiSpanningTreeInfo::child_count, CmiSpanningTreeInfo::children, BGConverse::CkMyNode(), BGConverse::CkMyRank(), CmiCreateLock(), CmiLock(), CmiUnlock(), getNodeTopoTreeEdges(), CmiSpanningTreeInfo::parent, PUP::t, and trees.
Referenced by _initCharm(), and get_topo_tree_nbs().
C API to ST_RecursivePartition_getTreeInfo (see below).
Definition at line 638 of file spanningTree.C.
References CmiSpanningTreeInfo::child_count, CmiSpanningTreeInfo::children, CmiSpanningTreeInfo::parent, ST_RecursivePartition_getTreeInfo(), and PUP::t.
Referenced by SendSpanningChildren().
TreeInfoMap trees [static] |