PPL Logo

util/spanningTree.C File Reference

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'.
CmiSpanningTreeInfoST_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


Typedef Documentation

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.

Definition at line 12 of file spanningTree.C.

typedef std::unordered_map<int,CmiSpanningTreeInfo*> TreeInfoMap

Definition at line 610 of file spanningTree.C.


Function Documentation

static int modulo ( int  k,
int  n 
) [inline, static]

Definition at line 402 of file spanningTree.C.

Referenced by ST_RecursivePartition< Iterator >::translateCoordinates().

Here is the caller graph for this function:

template<typename Iterator>
void getNeighborsTopoTree_R ( Iterator  start,
Iterator  end,
int  myElem,
int  prevLvlParent,
bool  nodeTree,
unsigned int  bfactor,
CmiSpanningTreeInfo t 
) [inline]

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().

Here is the call graph for this function:

Here is the caller graph for this function:

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.

Here is the call graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:

void get_topo_tree_nbs ( int  root,
int parent,
int child_count,
int **  children 
)

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().

Here is the call graph for this function:

Here is the caller graph for this function:


Variable Documentation

TreeInfoMap trees [static]

Definition at line 612 of file spanningTree.C.

Referenced by ST_RecursivePartition_getTreeInfo().

Definition at line 613 of file spanningTree.C.

Referenced by ST_RecursivePartition_getTreeInfo().


Generated on Mon Sep 21 08:12:15 2020 for Charm++ by  doxygen 1.5.5