Added documentation for CommLib support for MPI_Alltoall
authorChao Huang <chuang10@uiuc.edu>
Sat, 12 Apr 2003 16:46:42 +0000 (16:46 +0000)
committerChao Huang <chuang10@uiuc.edu>
Sat, 12 Apr 2003 16:46:42 +0000 (16:46 +0000)
doc/ampi/manual.tex

index aff2b22028610e1ebb304e7291ee8ebddca14939..c83cd01be8dd1b0d7748a8b47907f8f01dc39ee1 100644 (file)
@@ -639,7 +639,7 @@ One more function \verb+fpup_issizing+ is also available in module \texttt{pupmo
 that returns \verb+.TRUE.+ when the invocation is a sizing one. In practice one
 almost never needs to use it.
 
-\subsubsection{Extensions for Checkpointing}
+\subsection{Extensions for Checkpointing}
 
 The pack-unpack subroutines written for migrations make sure that the current
 state of the program is correctly packed (serialized) so that it can be
@@ -769,6 +769,34 @@ ierr = MPI_Recv(InitialTime, 1, MPI_DOUBLE, tag,
                 \emph{36, MPI_Comm_Universe(Solids_Comm)}, &stat);
 \end{alltt}
 
+\subsection{Communication Optimizations for AMPI}
+AMPI is powered by the \charmpp{} communication optimization support now!
+Currently the user needs to specify the communication pattern by command
+line option. In the future this can be done automatically by the system.
+
+Currently there are four strategies available: USE_DIRECT, USE_MESH,
+USE_HYPERCUBE and USE_GRID. USE_DIRECT sends the message directly. 
+USE_MESH imposes a 2d Mesh virtual topology on the processors so each 
+processor sends messages to its neighbors in its row and column of the 
+mesh which forward the messages to their correct destinations. USE_HYPERCUBE 
+and USE_GRID impose a hypercube and a 3d Grid topologies on the processors. 
+USE_HYPERCUBE will do best for very small messages and small number of 
+processors, 3d has better performance for slightly higher message sizes 
+and then Mesh starts performing best. The programmer is encouraged to try 
+out all the strategies. (Stolen from the CommLib manual by Sameer :)
+
+For more details please refer to the CommLib paper \footnote{L. V. Kale and 
+Sameer Kumar and Krishnan Vardarajan, 2002. 
+http://finesse.cs.uiuc.edu/papers/CommLib.pdf}. 
+
+Specifying the strategy is as simple as a command line option +strategy. For
+example:
+\begin{alltt}
+> ./charmrun +p64 alltoall +vp64 1000 100 +strategy USE_MESH
+\end{alltt}
+tells the system to use MESH strategy for CommLib. By default USE_DIRECT is
+used.
+
 \subsection{Compiling AMPI Programs}
 
 \charmpp{} provides a cross-platform compile-and-link script called \charmc{}