1 \section{Network Topology}
2 \section{Node Topology}
3 chao to write this section.
5 The following calls provide information about the machines upon which the
6 parallel program is executing.  Processing Element refers to a single CPU.
7 Node refers to a single machine-- a set of processing elements which share
8 memory (i.e. an address space).  Processing Elements and Nodes are numbered,
9 starting from zero.
11 Thus if a parallel program is executing on one 4-processor workstation and one
12 2-processor workstation, there would be 6 processing elements (0, 1 ,2, 3, 4,
13 and 5) but only 2 nodes (0 and 1).  A given node's processing elements are
14 numbered sequentially.
16 \function{int CkMyRank()} \index{CkMyRank}
17 \desc{returns the rank number of the processor on which the call was made.
18 Processing elements within a node are ranked starting from zero.}
20 \function{int CkMyNode()} \index{CkMyNode}
21 \desc{returns the address space number (node number) on which the call was made.}
23 \function{int CkNumNodes()} \index{CkMyNodes}
24 \desc{returns the total number of address spaces.}
26 \function{int CkNodeFirst(int node)} \index{CkNodeFirst}
27 \desc{returns the processor number of the first processor in this address space.}
29 \function{int CkNodeSize(int node)} \index{CkNodeSize}
30 \desc{returns the number of processors in the address space on which the call was made.}
32 \function{int CkNodeOf(int pe)} \index{CkNodeOf}
33 \desc{returns the node number on which the call was made.}
35 \function{int CkRankOf(int pe)} \index{CkRankOf}
36 \desc{returns the rank of the given processor within its node.}