PPL Logo

util/spanningTree.h File Reference

Go to the source code of this file.

Data Structures

class  SpanningTreeGenerator< Iterator >
 Abstract class (interface) to generate a spanning tree from a set of pes or logical (Charm++) nodes. More...
class  ST_RecursivePartition< Iterator >
 This strategy is phynode aware, and can form a tree of pes or logical nodes. More...

Functions

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'.
void get_topo_tree_nbs (int root, int *parent, int *child_count, int **children)
 C API to ST_RecursivePartition_getTreeInfo (see below).
CmiSpanningTreeInfoST_RecursivePartition_getTreeInfo (int root)
 obtain TreeInfo (parent and children) of CkMyNode() for tree rooted at specified node using ST_RecursivePartition.


Function Documentation

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:

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:

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:


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