Moved the functions from the node topology part to the basic utilities functions
authorChao Mei <chaomei2@illinois.edu>
Thu, 2 Aug 2012 23:38:46 +0000 (18:38 -0500)
committerChao Mei <chaomei2@illinois.edu>
Thu, 2 Aug 2012 23:38:46 +0000 (18:38 -0500)
as they are for the logical charm++ machine model, not for the physical machine.

doc/charm++/machineModel.tex
doc/charm++/topology.tex
doc/charm++/utilities.tex

index 2dcc822cc39c310370893623ea76b3daf5503338..b7e129039303af1366a933d4ca4e237f1741717a 100644 (file)
@@ -1,4 +1,5 @@
 \section{Machine Model}
 \section{Machine Model}
+\label{machineModel}
 At its basic level, \charmpp{} machine model is very simple: Think of
 each chare as a separate processor by itself. The methods of each
 chare can access its own instance variables (which are all private, at
 At its basic level, \charmpp{} machine model is very simple: Think of
 each chare as a separate processor by itself. The methods of each
 chare can access its own instance variables (which are all private, at
index b267cd8a1f18e82411085f037bfb362d87b8b9d7..4617c71db82ca4986dd3b63c7d180ddfca0001e3 100644 (file)
@@ -1,6 +1,5 @@
 \section{Network Topology}
 \section{Node Topology}
 \section{Network Topology}
 \section{Node Topology}
-chao to write this section.
 
 The following calls provide information about the machines upon which the
 parallel program is executing.  Processing Element refers to a single CPU.
 
 The following calls provide information about the machines upon which the
 parallel program is executing.  Processing Element refers to a single CPU.
@@ -8,30 +7,9 @@ Node refers to a single machine-- a set of processing elements which share
 memory (i.e. an address space).  Processing Elements and Nodes are numbered,
 starting from zero.
 
 memory (i.e. an address space).  Processing Elements and Nodes are numbered,
 starting from zero.
 
-Thus if a parallel program is executing on one 4-processor workstation and one
-2-processor workstation, there would be 6 processing elements (0, 1 ,2, 3, 4,
-and 5) but only 2 nodes (0 and 1).  A given node's processing elements are
-numbered sequentially.
+%Thus if a parallel program is executing on one 4-processor workstation and one
+%2-processor workstation, there would be 6 processing elements (0, 1 ,2, 3, 4,
+%and 5) but only 2 nodes (0 and 1).  A given node's processing elements are
+%numbered sequentially.
 
 
-\function{int CkMyRank()} \index{CkMyRank}
-\desc{returns the rank number of the processor on which the call was made.
-Processing elements within a node are ranked starting from zero.}
-
-\function{int CkMyNode()} \index{CkMyNode}
-\desc{returns the address space number (node number) on which the call was made.}
-
-\function{int CkNumNodes()} \index{CkMyNodes}
-\desc{returns the total number of address spaces.}
-
-\function{int CkNodeFirst(int node)} \index{CkNodeFirst}
-\desc{returns the processor number of the first processor in this address space.}
-
-\function{int CkNodeSize(int node)} \index{CkNodeSize}
-\desc{returns the number of processors in the address space on which the call was made.}
-
-\function{int CkNodeOf(int pe)} \index{CkNodeOf}
-\desc{returns the node number on which the call was made.}
-
-\function{int CkRankOf(int pe)} \index{CkRankOf}
-\desc{returns the rank of the given processor within its node.}
 
 
index e0ff830852cc4e8e7af675241674371d8c98cc59..21ad8817337657344c5053c41b00ad02045b68c5 100644 (file)
@@ -4,13 +4,7 @@
 
 The following calls provide basic rank information and utilities
 useful when running a Charm++ program. Other utilities are listed in
 
 The following calls provide basic rank information and utilities
 useful when running a Charm++ program. Other utilities are listed in
-Section~\ref{other Charm++ calls}.
-
-\function{int CkNumPes()} \index{CkNumPes} \desc{returns the total
-  number of processing elements (PEs), across all nodes.}
-
-\function{int CkMyPe()} \index{CkMyPe} \desc{returns the index of the
-  PE on which the call was made.}
+Section~\ref{other Charm++ calls}. 
 
 \function{void CkAssert(int expression)} \desc{Aborts the program 
 if expression is 0.}
 
 \function{void CkAssert(int expression)} \desc{Aborts the program 
 if expression is 0.}
@@ -30,6 +24,41 @@ if expression is 0.}
 \function{double CkWallTimer()} \index{CkWallTimer} \index{timers}
 \desc{Returns the elapsed time in seconds since the start of the program.}
 
 \function{double CkWallTimer()} \index{CkWallTimer} \index{timers}
 \desc{Returns the elapsed time in seconds since the start of the program.}
 
+\subsection{Information about Logical Machine Entities}
+As described in section~\ref{machineModel}, \charmpp{} recoginizes two
+logical machine entities: ``node'' and PE (processing element). 
+The following functions provide basic information about such logical machine 
+that a \charmpp{} program runs on. PE and ``node'' are numbered starting
+from zero.
+
+\function{int CkNumPes()} \index{CkNumPes} \desc{returns the total
+  number of PEs across all nodes.}
+
+\function{int CkMyPe()} \index{CkMyPe} \desc{returns the index of the
+  PE on which the call was made.}
+
+\function{int CkNumNodes()} \index{CkMyNodes}
+\desc{returns the total number of logical \charmpp{} nodes.}
+
+\function{int CkMyNode()} \index{CkMyNode}
+\desc{returns the index of the ``node'' on which the call was made.}
+
+\function{int CkMyRank()} \index{CkMyRank}
+\desc{returns the rank number of the PE on a ``node'' on which the call 
+was made. PEs within a ``node'' are also ranked starting from zero.}
+
+\function{int CkNodeFirst(int nd)} \index{CkNodeFirst}
+\desc{returns the index of the first PE on the logical node $nd$.}
+
+\function{int CkNodeSize(int nd)} \index{CkNodeSize}
+\desc{returns the number of PEs on the logical node $nd$ on which the call was made.}
+
+\function{int CkNodeOf(int pe)} \index{CkNodeOf}
+\desc{returns the ``node'' number that PE $pe$ belongs to.}
+
+\function{int CkRankOf(int pe)} \index{CkRankOf}
+\desc{returns the rank of the given PE within its node.}
+
 \subsection{Terminal I/O}
 
 \index{input/output}
 \subsection{Terminal I/O}
 
 \index{input/output}