Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

ProxyNodeAwareSpanningTreeMsg Class Reference

#include <ProxyMgr.h>

List of all members.

Public Member Functions

void printOut (char *tag)

Static Public Member Functions

ProxyNodeAwareSpanningTreeMsggetANewMsg (PatchID pid, NodeID nid, proxyTreeNode *tree, int size)

Public Attributes

PatchID patch
NodeID procID
int numNodesWithProxies
int * numPesOfNode
int * allPes


Member Function Documentation

ProxyNodeAwareSpanningTreeMsg * ProxyNodeAwareSpanningTreeMsg::getANewMsg PatchID  pid,
NodeID  nid,
proxyTreeNode tree,
int  size
[static]
 

Definition at line 191 of file ProxyMgr.C.

References allPes, j, numNodesWithProxies, proxyTreeNode::numPes, numPesOfNode, patch, proxyTreeNode::peIDs, and procID.

Referenced by ProxyMgr::sendNodeAwareSpanningTreeToHomePatch().

00191                                                                                                                               {
00192     int numAllPes = 0;
00193     for(int i=0; i<size; i++) {
00194         numAllPes += tree[i].numPes;
00195     }
00196     ProxyNodeAwareSpanningTreeMsg *retmsg = new(size, numAllPes, 0) ProxyNodeAwareSpanningTreeMsg;
00197     retmsg->patch = pid;
00198     retmsg->procID = nid;
00199     retmsg->numNodesWithProxies = size;    
00200     int *pAllPes = retmsg->allPes;
00201     for(int i=0; i<size; i++) {
00202         retmsg->numPesOfNode[i] = tree[i].numPes;
00203         for(int j=0; j<tree[i].numPes; j++) {
00204             *pAllPes = tree[i].peIDs[j];
00205             pAllPes++;
00206         }
00207     }
00208     return retmsg;
00209 }

void ProxyNodeAwareSpanningTreeMsg::printOut char *  tag  ) 
 

Definition at line 212 of file ProxyMgr.C.

References j, numNodesWithProxies, numPesOfNode, patch, and procID.

Referenced by ProxyMgr::recvNodeAwareSpanningTree().

00212                                                      {
00213 #ifdef PROCTRACE_DEBUG
00214     DebugFileTrace *dft = DebugFileTrace::Object();
00215     dft->openTrace();
00216     const char *patchname = "ProxyPatch";
00217     if(procID == CkMyPe()) patchname = "HomePatch";
00218     dft->writeTrace("%s: %s[%d] on proc %d node %d has ST (src %d) with %d nodes: \n", tag, patchname, patch, CkMyPe(), CkMyNode(), procID, numNodesWithProxies);
00219     if(numNodesWithProxies==0) {
00220         dft->closeTrace();
00221         return;
00222     }
00223     dft->writeTrace("%s: ===%d===pes/node: ", tag, patch);
00224     for(int i=0; i<numNodesWithProxies; i++) {
00225         dft->writeTrace("%d ", numPesOfNode[i]);
00226     }
00227     dft->writeTrace("\n%s: ===%d===pe list: ", tag, patch);
00228     int *p = allPes;
00229     for(int i=0; i<numNodesWithProxies; i++) {
00230         for(int j=0; j<numPesOfNode[i]; j++) {
00231             dft->writeTrace("%d ", *p);
00232             p++;
00233         }
00234     }
00235     dft->writeTrace("\n");    
00236     dft->closeTrace();
00237 #endif
00238 }


Member Data Documentation

int* ProxyNodeAwareSpanningTreeMsg::allPes
 

Definition at line 171 of file ProxyMgr.h.

Referenced by getANewMsg(), ProxyMgr::recvNodeAwareSpanningTree(), and ProxyMgr::sendNodeAwareSpanningTree().

int ProxyNodeAwareSpanningTreeMsg::numNodesWithProxies
 

Definition at line 169 of file ProxyMgr.h.

Referenced by getANewMsg(), printOut(), and ProxyMgr::recvNodeAwareSpanningTree().

int* ProxyNodeAwareSpanningTreeMsg::numPesOfNode
 

Definition at line 170 of file ProxyMgr.h.

Referenced by getANewMsg(), printOut(), and ProxyMgr::recvNodeAwareSpanningTree().

PatchID ProxyNodeAwareSpanningTreeMsg::patch
 

Definition at line 167 of file ProxyMgr.h.

Referenced by getANewMsg(), printOut(), ProxyMgr::recvNodeAwareSpanningTree(), ProxyMgr::recvNodeAwareSpanningTreeOnHomePatch(), and ProxyMgr::sendNodeAwareSpanningTree().

NodeID ProxyNodeAwareSpanningTreeMsg::procID
 

Definition at line 168 of file ProxyMgr.h.

Referenced by getANewMsg(), printOut(), and ProxyMgr::recvNodeAwareSpanningTree().


The documentation for this class was generated from the following files:
Generated on Tue Nov 24 04:07:51 2009 for NAMD by  doxygen 1.3.9.1