Adding another cpu topology accessor method that returns the first PE for a specified...
authorIsaac Dooley <idooley2@illinois.edu>
Wed, 1 Jul 2009 16:45:35 +0000 (16:45 +0000)
committerIsaac Dooley <idooley2@illinois.edu>
Wed, 1 Jul 2009 16:45:35 +0000 (16:45 +0000)
src/conv-core/converse.h
src/conv-core/cputopology.C

index 5ceeb16b17ea76184e089f6cd105981284f5c2cc..0c7fc284272eac96e8bcac98b693a5d3fcd7d727 100644 (file)
@@ -484,6 +484,7 @@ extern int CmiOnSamePhysicalNode(int pe1, int pe2);
 extern int CmiNumPhysicalNodes();
 extern int CmiNumPesOnPhysicalNode(int pe);
 extern void CmiGetPesOnPhysicalNode(int pe, int **pelist, int *num);
+extern int CmiGetFirstPeOnPhysicalNode(int pe);
 
 /** Return 1 if our outgoing message queue 
    for this node is longer than this many bytes. */
index 51ba5073cd4e44c641320d2c3df70b8b2f8dd38b..b6518a93ccd42911808c9dfbb0771ef2f571395a 100644 (file)
@@ -255,6 +255,14 @@ extern "C" void CmiGetPesOnPhysicalNode(int pe, int **pelist, int *num)
   if (pelist!=NULL && *num>0) *pelist = cpuTopo.bynodes[cpuTopo.nodeIDs[pe]].getVec();
 }
 
+extern "C"  int CmiGetFirstPeOnPhysicalNode(int pe)
+{
+  CmiAssert(pe >=0 && pe < CmiNumPes());
+  const CkVec<int> &v = cpuTopo.bynodes[cpuTopo.nodeIDs[pe]];
+  return v[0];
+}
+
+
 static int _noip = 0;
 
 extern "C" void CmiInitCPUTopology(char **argv)