PPL Logo

conv-core/cputopology.C File Reference

Go to the source code of this file.

Namespaces

namespace  CpuTopoDetails

Data Structures

struct  _procInfo
struct  _hostnameMsg
struct  _nodeTopoMsg
struct  _topoDoneMsg
class  CpuTopology

Typedefs

typedef struct _hostnameMsg hostnameMsg
typedef struct _nodeTopoMsg nodeTopoMsg
typedef struct _topoDoneMsg topoDoneMsg

Functions

int getXTNodeID (int mpirank, int nummpiranks)
 This scheme relies on using IP address to identify physical nodes written by Gengbin Zheng 9/2008.
int CmiNumCores (void)
 CpuTopoDetails::CpvStaticDeclare (int, cpuTopoHandlerIdx)
 CpuTopoDetails::CpvStaticDeclare (int, cpuTopoRecvHandlerIdx)
 CpuTopoDetails::CpvStaticDeclare (int, topoDoneHandlerIdx)
static void printTopology (int numNodes)
static void cpuTopoHandler (void *m)
static void topoDoneHandler (void *m)
static void cpuTopoRecvHandler (void *msg)
static void * combineMessage (int *size, void *data, void **remote, int count)
static void * emptyReduction (int *size, void *data, void **remote, int count)
int LrtsCpuTopoEnabled ()
int LrtsPeOnSameNode (int pe1, int pe2)
int LrtsNumNodes ()
int LrtsNodeSize (int node)
void LrtsPeOnNode (int node, int **pelist, int *num)
int LrtsRankOf (int pe)
int LrtsNodeOf (int pe)
int LrtsNodeFirst (int node)
void LrtsInitCpuTopo (char **argv)
int CmiCpuTopologyEnabled ()
int CmiPeOnSamePhysicalNode (int pe1, int pe2)
int CmiNumPhysicalNodes ()
int CmiNumPesOnPhysicalNode (int node)
void CmiGetPesOnPhysicalNode (int node, int **pelist, int *num)
int CmiPhysicalRank (int pe)
int CmiPhysicalNodeID (int pe)
int CmiGetFirstPeOnPhysicalNode (int node)
void CmiInitCPUTopology (char **argv)

Variables

static nodeTopoMsgCpuTopoDetails::topomsg = NULL
static CmmTable CpuTopoDetails::hostTable
static CpuTopology CpuTopoDetails::cpuTopo
static CmiNodeLock CpuTopoDetails::topoLock = 0
static int CpuTopoDetails::done = 0
static int CpuTopoDetails::topoDone = 0
static int CpuTopoDetails::_noip = 0


Typedef Documentation

typedef struct _hostnameMsg hostnameMsg

typedef struct _nodeTopoMsg nodeTopoMsg

typedef struct _topoDoneMsg topoDoneMsg


Function Documentation

int getXTNodeID ( int  mpirank,
int  nummpiranks 
)

This scheme relies on using IP address to identify physical nodes written by Gengbin Zheng 9/2008.

last updated 10/4/2009 Gengbin Zheng added function CmiCpuTopologyEnabled() which retuens 1 when supported when not supported return 0 all functions when cputopology not support, now act like a normal non-smp case and all PEs are unique.

major changes 10/28/09 Gengbin Zheng

  • parameters changed from pe to node to be consistent with the function name
  • two new functions: CmiPhysicalNodeID and CmiPhysicalRank

3/5/2010 Gengbin Zheng

  • use CmiReduce to optimize the collection of node info

Definition at line 39 of file CrayNid.c.

int CmiNumCores ( void   ) 

Definition at line 57 of file cputopology.C.

References PUP::a, and PUP::b.

Referenced by _initCharm(), CmiInitCPUAffinity(), CmiSetCPUAffinity(), FuncCkLoop::createPThreads(), LrtsInitCpuTopo(), printTopology(), and XTTorusManager::XTTorusManager().

Here is the caller graph for this function:

static void printTopology ( int  numNodes  )  [static]

Definition at line 238 of file cputopology.C.

References CmiHwlocTopologyLocal, CmiNumCores(), CmiPrintf(), CmiHwlocTopology::num_cores, CmiHwlocTopology::num_pus, and CmiHwlocTopology::num_sockets.

Referenced by cpuTopoHandler(), and LrtsInitCpuTopo().

Here is the call graph for this function:

Here is the caller graph for this function:

static void cpuTopoHandler ( void *  m  )  [static]

static void topoDoneHandler ( void *  m  )  [static]

Definition at line 311 of file cputopology.C.

References CmiLock(), CmiUnlock(), CpuTopoDetails::topoDone, and CpuTopoDetails::topoLock.

Referenced by LrtsInitCpuTopo().

Here is the call graph for this function:

Here is the caller graph for this function:

static void cpuTopoRecvHandler ( void *  msg  )  [static]

Definition at line 318 of file cputopology.C.

References CmiFree(), CmiLock(), CmiUnlock(), CpuTopoDetails::cpuTopo, CpuTopoDetails::done, PUP::m, CpuTopology::nodeIDs, _nodeTopoMsg::nodes, CpuTopology::sort(), and CpuTopoDetails::topoLock.

Referenced by LrtsInitCpuTopo().

Here is the call graph for this function:

Here is the caller graph for this function:

static void* combineMessage ( int size,
void *  data,
void **  remote,
int  count 
) [static]

Definition at line 337 of file cputopology.C.

References CmiAlloc(), PUP::m, msg, _hostnameMsg::n, n, and _hostnameMsg::procs.

Referenced by LrtsInitCpuTopo().

Here is the call graph for this function:

Here is the caller graph for this function:

static void* emptyReduction ( int size,
void *  data,
void **  remote,
int  count 
) [static]

Definition at line 364 of file cputopology.C.

References CmiAlloc(), CmiLock(), CmiMyPe(), CmiUnlock(), msg, CpuTopoDetails::topoDone, and CpuTopoDetails::topoLock.

Referenced by LrtsInitCpuTopo().

Here is the call graph for this function:

Here is the caller graph for this function:

int LrtsCpuTopoEnabled (  ) 

Definition at line 379 of file cputopology.C.

References CpuTopology::supported.

Referenced by CmiCpuTopologyEnabled().

Here is the caller graph for this function:

int LrtsPeOnSameNode ( int  pe1,
int  pe2 
)

Definition at line 384 of file cputopology.C.

References CmiNodeOf(), CpuTopoDetails::cpuTopo, CpuTopology::nodeIDs, and CpuTopology::supported.

Referenced by CmiPeOnSamePhysicalNode().

Here is the call graph for this function:

Here is the caller graph for this function:

int LrtsNumNodes (  ) 

Definition at line 392 of file cputopology.C.

References CpuTopoDetails::cpuTopo, CpuTopology::numUniqNodes(), and CpuTopology::supported.

Referenced by CmiNumPhysicalNodes().

Here is the call graph for this function:

Here is the caller graph for this function:

int LrtsNodeSize ( int  node  ) 

Definition at line 398 of file cputopology.C.

References CpuTopology::bynodes, CmiNodeSize(), CpuTopoDetails::cpuTopo, int, and CpuTopology::supported.

Referenced by CmiNumPesOnPhysicalNode().

Here is the call graph for this function:

Here is the caller graph for this function:

void LrtsPeOnNode ( int  node,
int **  pelist,
int num 
)

Definition at line 404 of file cputopology.C.

References CpuTopology::bynodes, and CpuTopoDetails::cpuTopo.

Referenced by CmiGetPesOnPhysicalNode().

Here is the caller graph for this function:

int LrtsRankOf ( int  pe  ) 

Definition at line 410 of file cputopology.C.

References CpuTopology::bynodes, CmiRankOf(), CpuTopoDetails::cpuTopo, CpuTopology::nodeIDs, npes, rank, and CpuTopology::supported.

Referenced by CmiPhysicalRank().

Here is the call graph for this function:

Here is the caller graph for this function:

int LrtsNodeOf ( int  pe  ) 

Definition at line 421 of file cputopology.C.

References CmiNodeOf(), CpuTopoDetails::cpuTopo, CpuTopology::nodeIDs, and CpuTopology::supported.

Referenced by CmiPhysicalNodeID().

Here is the call graph for this function:

Here is the caller graph for this function:

int LrtsNodeFirst ( int  node  ) 

Definition at line 428 of file cputopology.C.

References CpuTopology::bynodes, CmiNodeFirst(), CpuTopoDetails::cpuTopo, and CpuTopology::supported.

Referenced by CmiGetFirstPeOnPhysicalNode().

Here is the call graph for this function:

Here is the caller graph for this function:

void LrtsInitCpuTopo ( char **  argv  ) 

int CmiCpuTopologyEnabled ( void   ) 

Definition at line 672 of file cputopology.C.

References LrtsCpuTopoEnabled().

Referenced by _initCharm(), and CmiCheckAffinity().

Here is the call graph for this function:

Here is the caller graph for this function:

int CmiPeOnSamePhysicalNode ( int  pe1,
int  pe2 
)

Definition at line 676 of file cputopology.C.

References LrtsPeOnSameNode().

Referenced by CmiInterSendNetworkFunc(), and findTransferMode().

Here is the call graph for this function:

Here is the caller graph for this function:

int CmiNumPhysicalNodes ( void   ) 

int CmiNumPesOnPhysicalNode ( int  node  ) 

Definition at line 684 of file cputopology.C.

References LrtsNodeSize().

Referenced by CmiCheckAffinity(), CmiSendMessagePxshm(), TopoManager::coordinatesToRank(), topo::getSpanningTreeStrategy(), CkMemCheckPT::isMaster(), LBTOPO_MACRO(), and TopoManager::TopoManager().

Here is the call graph for this function:

Here is the caller graph for this function:

void CmiGetPesOnPhysicalNode ( int  node,
int **  pelist,
int num 
)

Definition at line 688 of file cputopology.C.

References LrtsPeOnNode().

Referenced by _initCharm(), CkMemCheckPT::BuddyPE(), topo::impl::buildNextGen_nodeAware_minBytes(), topo::impl::buildNextGen_nodeAware_minGens(), and LBTOPO_MACRO().

Here is the call graph for this function:

Here is the caller graph for this function:

int CmiPhysicalRank ( int  pe  ) 

Definition at line 692 of file cputopology.C.

References LrtsRankOf().

Referenced by CkMemCheckPT::BuddyPE(), LBTOPO_MACRO(), and TopoManager::rankToCoordinates().

Here is the call graph for this function:

Here is the caller graph for this function:

int CmiPhysicalNodeID ( int  pe  ) 

int CmiGetFirstPeOnPhysicalNode ( int  node  ) 

Definition at line 700 of file cputopology.C.

References LrtsNodeFirst().

Referenced by TopoManager::coordinatesToRank(), KLevelTree::KLevelTree(), LBTOPO_MACRO(), and ThreeLevelTree::ThreeLevelTree().

Here is the call graph for this function:

Here is the caller graph for this function:


Generated on Mon Sep 21 08:01:34 2020 for Charm++ by  doxygen 1.5.5