Docs: refer to illinois.edu, not uiuc.edu
[charm.git] / doc / charm++ / topology.tex
index 4617c71db82ca4986dd3b63c7d180ddfca0001e3..df9af4488aac70bc053a2e5b3e164a5777e149e1 100644 (file)
@@ -1,11 +1,41 @@
+The following calls provide information about the machine upon which the
+parallel program is executed. A processing element (PE) refers to a single CPU,
+whereas a node refers to a single machine -- a set of processing elements that share
+memory (i.e. an address space).  PEs and nodes are numbered separately starting
+from zero, i.e., PEs are numbered in range $[0,CmiNumPes())$, and nodes are
+numbered in range $[0,CmiNumNodes())$.
+
 \section{Network Topology}
+Charm++ provides a unified abstraction for querying topology of IBM's BG/L, BG/P
+and BG/Q, and Cray's XT3, XT4, XT5 and XE6. Class TopoManager, which can be used 
+by including TopoManager.h, contains following member functions:
+
+\begin{description}
+\item [TopoManager():] Default constructor.
+\item [getDimNX(), getDimNY(), getDimNZ():] Returns the length of X, Y and Z
+dimensions (except BG/Q).
+\item [getDimNA(), getDimNB(), getDimNC(), getDimND(), getDimNE():] Returns the
+length of A, B, C, D and E dimensions on BG/Q.
+\item [getDimNT():] Returns the length of T dimension. TopoManager uses T
+dimension to represent different cores that reside within a physical code.
+\item [rankToCoordinates(int pe, int \&x, int \&y, int \&z, int \&t):] Get the
+coordinates of PE with number {\em pe} (except BG/Q).
+\item [rankToCoordinates(int pe, int \&a, int \&b, int \&c, int \&d, int \&e, int
+\&t):] Get the coordinates of PE with number {\em pe} on BG/Q.
+\item [coordinatesToRank(int x, int y, int z, int t):] Returns the number of PE
+with given coordinates (except BG/Q).
+\item [coordinatesToRank(int a, int b, int c, int d, int e, int t):] Returns the
+number of PE with given coordinates on BG/Q.
+\item [getHopsBetweenRanks(int pe1, int pe2):] Returns the distance between the
+given PEs in terms of the hops count on the network between the two PEs.
+\item [printAllocation(FILE *fp):] Outputs the allocation for a particular
+execution to the given file.
+
+\end{description}
+
+
 \section{Node Topology}
 
-The following calls provide information about the machines upon which the
-parallel program is executing.  Processing Element refers to a single CPU.
-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.
 
 %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,