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 192 of file ProxyMgr.C.

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

Referenced by ProxyMgr::sendNodeAwareSpanningTreeToHomePatch().

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

void ProxyNodeAwareSpanningTreeMsg::printOut char *  tag  ) 
 

Definition at line 213 of file ProxyMgr.C.

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

Referenced by ProxyMgr::recvNodeAwareSpanningTree().

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


Member Data Documentation

int* ProxyNodeAwareSpanningTreeMsg::allPes
 

Definition at line 202 of file ProxyMgr.h.

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

int ProxyNodeAwareSpanningTreeMsg::numNodesWithProxies
 

Definition at line 200 of file ProxyMgr.h.

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

int* ProxyNodeAwareSpanningTreeMsg::numPesOfNode
 

Definition at line 201 of file ProxyMgr.h.

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

PatchID ProxyNodeAwareSpanningTreeMsg::patch
 

Definition at line 198 of file ProxyMgr.h.

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

NodeID ProxyNodeAwareSpanningTreeMsg::procID
 

Definition at line 199 of file ProxyMgr.h.

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


The documentation for this class was generated from the following files:
Generated on Sun Feb 12 04:08:04 2012 for NAMD by  doxygen 1.3.9.1